Project1

标题: 如何让某个装备能减少角色的攻击等能力? [打印本页]

作者: 蓝色蝴蝶    时间: 2007-8-13 04:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 蓝色蝴蝶    时间: 2007-8-13 04:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: K’    时间: 2007-8-13 04:53
除了攻防 4样能力都是可以输入负值的 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 蓝色蝴蝶    时间: 2007-8-13 04:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 十二月夜    时间: 2007-8-13 05:16
以下引用蓝色蝴蝶于2007-8-12 20:47:05的发言:


本贴悬赏额度如下:VIP:0   积分:100   好人卡:1

魔力宝贝里通常有这样的首饰装备:

减少攻击力,增加防御..或者是减少防御提高闪躲.

那么在RM里要如何实现,让装备能减少一部分能力?


这样的装备应该不多吧?

如果游戏里的角色也不多的话,可以考虑写并行事件判断~
作者: K’    时间: 2007-8-13 05:26
  1. module RPG
  2. class Armor
  3.    def name
  4.      name = @name.split(/,/)[0]
  5.      return name != nil ? name : ""
  6.    end
  7.    
  8.    def a_atk
  9.      name = @name.split(/,/)[1]
  10.      return name != nil ? name.to_i : 0
  11.    end
  12.    
  13.    def a_pdef
  14.      name = @name.split(/,/)[2]
  15.      return name != nil ? name.to_i : 0
  16.    end   
  17.    
  18.     def a_mdef
  19.      name = @name.split(/,/)[3]
  20.      return name != nil ? name.to_i: 0
  21.    end
  22.    
  23. end

  24. class Weapon
  25.    def name
  26.      name = @name.split(/,/)[0]
  27.      return name != nil ? name : ""
  28.    end
  29.    
  30.    def a_atk
  31.      name = @name.split(/,/)[1]
  32.      return name != nil ? name.to_i : 0
  33.    end
  34.    
  35.    def a_pdef
  36.      name = @name.split(/,/)[2]
  37.      return name != nil ? name.to_i : 0
  38.    end   
  39.    
  40.     def a_mdef
  41.      name = @name.split(/,/)[3]
  42.      return name != nil ? name.to_i: 0
  43.    end
  44.    
  45. end
  46. end
  47. class Game_Actor < Game_Battler
  48.    #--------------------------------------------------------------------------
  49.   # ● 获取基本攻击力
  50.   #--------------------------------------------------------------------------
  51.   def base_atk
  52.     weapon = $data_weapons[@weapon_id]
  53.     armor1 = $data_armors[@armor1_id]
  54.     armor2 = $data_armors[@armor2_id]
  55.     armor3 = $data_armors[@armor3_id]
  56.     armor4 = $data_armors[@armor4_id]
  57.     atk1 = weapon != nil ? weapon.a_atk : 0
  58.     atk2 = armor1 != nil ? armor1.a_atk : 0
  59.     atk3 = armor2 != nil ? armor2.a_atk : 0
  60.     atk4 = armor3 != nil ? armor3.a_atk : 0
  61.     atk5 = armor4 != nil ? armor4.a_atk : 0   
  62.     n = atk1 + atk2 + atk3 + atk4 + atk5
  63.     return weapon != nil ? weapon.atk + n > 0 ? weapon.atk + n : 0 : n > 0 ? n : 0
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 获取基本物理防御
  67.   #--------------------------------------------------------------------------
  68.   def base_pdef
  69.     weapon = $data_weapons[@weapon_id]
  70.     armor1 = $data_armors[@armor1_id]
  71.     armor2 = $data_armors[@armor2_id]
  72.     armor3 = $data_armors[@armor3_id]
  73.     armor4 = $data_armors[@armor4_id]
  74.     pdef1 = weapon != nil ? weapon.pdef : 0
  75.     pdef2 = armor1 != nil ? armor1.pdef : 0
  76.     pdef3 = armor2 != nil ? armor2.pdef : 0
  77.     pdef4 = armor3 != nil ? armor3.pdef : 0
  78.     pdef5 = armor4 != nil ? armor4.pdef : 0
  79.    
  80.     a_pdef1 = weapon != nil ? weapon.a_pdef : 0
  81.     a_pdef2 = armor1 != nil ? armor1.a_pdef : 0
  82.     a_pdef3 = armor2 != nil ? armor2.a_pdef : 0
  83.     a_pdef4 = armor3 != nil ? armor3.a_pdef : 0
  84.     a_pdef5 = armor4 != nil ? armor4.a_pdef : 0   
  85.    
  86.     n = pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + a_pdef1 + a_pdef2 + a_pdef3 + a_pdef4 + a_pdef5
  87.     return n > 0 ? n : 0
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 获取基本魔法防御
  91.   #--------------------------------------------------------------------------
  92.   def base_mdef
  93.     weapon = $data_weapons[@weapon_id]
  94.     armor1 = $data_armors[@armor1_id]
  95.     armor2 = $data_armors[@armor2_id]
  96.     armor3 = $data_armors[@armor3_id]
  97.     armor4 = $data_armors[@armor4_id]
  98.     mdef1 = weapon != nil ? weapon.mdef : 0
  99.     mdef2 = armor1 != nil ? armor1.mdef : 0
  100.     mdef3 = armor2 != nil ? armor2.mdef : 0
  101.     mdef4 = armor3 != nil ? armor3.mdef : 0
  102.     mdef5 = armor4 != nil ? armor4.mdef : 0
  103.    
  104.     a_mdef1 = weapon != nil ? weapon.a_mdef : 0
  105.     a_mdef2 = armor1 != nil ? armor1.a_mdef : 0
  106.     a_mdef3 = armor2 != nil ? armor2.a_mdef : 0
  107.     a_mdef4 = armor3 != nil ? armor3.a_mdef : 0
  108.     a_mdef5 = armor4 != nil ? armor4.a_mdef : 0   
  109.     n = mdef1 + mdef2 + mdef3 + mdef4 + mdef5 + a_mdef1 + a_mdef2 + a_mdef3 + a_mdef4 + a_mdef5
  110.     return n > 0 ? n : 0
  111.   end
  112. end
复制代码



5分钟  over
武器名为  铜剑,-10,-10,10
的武器效果 是 减10 攻 减10防 加10魔防
效果可正可负 防具同样有效。 注意逗号为半角。
作者: cftx    时间: 2007-8-13 05:29
另一种方法...........

你可以弄一项属性,比如叫"防御减少",然后在脚本Game_Actor中判断,如果装备有这项属性防御力增量就变就负值
以防御减少的武器为例子,设置25号属性为“防御减少”,在武器属性里把这项钩上
armor.guard_element_set.include?(element_id)
找到
def base_pdef
    weapon = $data_weapons[@weapon_id]
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    pdef1 = weapon != nil ? weapon.pdef : 0
    pdef2 = armor1 != nil ? armor1.pdef : 0
    pdef3 = armor2 != nil ? armor2.pdef : 0
    pdef4 = armor3 != nil ? armor3.pdef : 0
    pdef5 = armor4 != nil ? armor4.pdef : 0
    return pdef1 + pdef2 + pdef3 + pdef4 + pdef5
  end
在pdef1 = weapon != nil ? weapon.pdef : 0下面加上这么一句:
pdef1 *= -1 if weapon != nil and weapon.element_set.include?(25) [LINE]1,#dddddd[/LINE]版主对此帖的认可:『呵呵,思路不错, but 防具是没有攻击力的框框的哦。{/hx}』,积分『+100』。
作者: 蓝色蝴蝶    时间: 2007-8-13 05:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 尝古    时间: 2007-8-13 06:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: 孤独de思念    时间: 2007-8-13 06:55
也可以用状态吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1