Project1

标题: 关于装备技能的事件方法 [打印本页]

作者: pl04644972    时间: 2014-2-5 18:26
标题: 关于装备技能的事件方法
设置好佩戴装备获得技能的条件分歧之后,不知道该怎么让人物在佩戴装备之后就执行公共事件(语文水平不好,大致就是在公共事件里设置好佩戴装备获得技能之后该怎么执行事件吧。。)
作者: 恐惧剑刃    时间: 2014-2-5 19:10
  1. # 装备附带技能
  2. # 举例
  3. # 铜剑,10  该武器附带ID为10的特技
  4. # 防具亦然




  5. module RPG
  6.   class Weapon
  7.     def name
  8.       return @name.split(",")[0] == nil ? "" : @name.split(",")[0]
  9.     end
  10.     def skill
  11.       return @name.split(",")[1] == nil ? 0 : @name.split(",")[1].to_i
  12.     end
  13.   end
  14.   class Armor
  15.     def name
  16.       return @name.split(",")[0] == nil ? "" : @name.split(",")[0]
  17.     end
  18.     def skill
  19.       return @name.split(",")[1] == nil ? 0 : @name.split(",")[1].to_i
  20.     end
  21.   end
  22. end
  23. class Game_Actor < Game_Battler
  24.   def equip(equip_type, id)
  25.     case equip_type
  26.     when 0
  27.       if id == 0 or $game_party.weapon_number(id) > 0
  28.         $game_party.gain_weapon(@weapon_id, 1)
  29.         if $data_weapons[@weapon_id] != nil and
  30.           $data_weapons[@weapon_id].skill != 0
  31.           forget_skill($data_weapons[@weapon_id].skill)
  32.         end
  33.         @weapon_id = id
  34.         $game_party.lose_weapon(id, 1)
  35.         if $data_weapons[id] != nil and
  36.           $data_weapons[id].skill != 0
  37.           learn_skill($data_weapons[id].skill)
  38.         end
  39.       end
  40.     when 1
  41.       if id == 0 or $game_party.armor_number(id) > 0
  42.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  43.         $game_party.gain_armor(@armor1_id, 1)
  44.         if $data_armors[@armor1_id] != nil and
  45.           $data_armors[@armor1_id].skill != 0
  46.           forget_skill($data_armors[@armor1_id].skill)
  47.         end
  48.         @armor1_id = id
  49.         $game_party.lose_armor(id, 1)
  50.         if $data_armors[id] != nil and
  51.           $data_armors[id].skill != 0
  52.           learn_skill($data_armors[id].skill)
  53.         end
  54.       end
  55.     when 2
  56.       if id == 0 or $game_party.armor_number(id) > 0
  57.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  58.         $game_party.gain_armor(@armor2_id, 1)
  59.         if $data_armors[@armor2_id] != nil and
  60.           $data_armors[@armor2_id].skill != 0
  61.           forget_skill($data_armors[@armor2_id].skill)
  62.         end
  63.         @armor2_id = id
  64.         $game_party.lose_armor(id, 1)
  65.         if $data_armors[id] != nil and
  66.           $data_armors[id].skill != 0
  67.           learn_skill($data_armors[id].skill)
  68.         end
  69.       end
  70.     when 3
  71.       if id == 0 or $game_party.armor_number(id) > 0
  72.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  73.         $game_party.gain_armor(@armor3_id, 1)
  74.         if $data_armors[@armor3_id] != nil and
  75.           $data_armors[@armor3_id].skill != 0
  76.           forget_skill($data_armors[@armor3_id].skill)
  77.         end
  78.         @armor3_id = id
  79.         $game_party.lose_armor(id, 1)
  80.         if $data_armors[id] != nil and
  81.           $data_armors[id].skill != 0
  82.           learn_skill($data_armors[id].skill)
  83.         end
  84.       end
  85.     when 4
  86.       if id == 0 or $game_party.armor_number(id) > 0
  87.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  88.         $game_party.gain_armor(@armor4_id, 1)
  89.         if $data_armors[@armor4_id] != nil and
  90.           $data_armors[@armor4_id].skill != 0
  91.           forget_skill($data_armors[@armor4_id].skill)
  92.         end
  93.         @armor4_id = id
  94.         $game_party.lose_armor(id, 1)
  95.         if $data_armors[id] != nil and
  96.           $data_armors[id].skill != 0
  97.           learn_skill($data_armors[id].skill)
  98.         end
  99.       end
  100.     end
  101.   end
  102. end
复制代码

作者: pl04644972    时间: 2014-2-5 19:30
恋′挂机 发表于 2014-2-5 19:10

木有事件版的办法么。。
作者: pl04644972    时间: 2014-2-5 22:48
恋′挂机 发表于 2014-2-5 19:10

不太明白应该把数字和名字插在哪里。。试了30分钟都没试出来
作者: 天地有正气    时间: 2014-2-6 02:32
设置并行处理的公共事件。
作者: pl04644972    时间: 2014-2-6 09:25
天地有正气 发表于 2014-2-6 02:32
设置并行处理的公共事件。

每个地图都设置么
作者: pl04644972    时间: 2014-2-6 22:58
恋′挂机 发表于 2014-2-5 19:10

如果是把防具技能的话,用铜剑,10的方法放在这几个(",")或者是 ""里都没反应。。
class Armor
    def name
      return @name.split(",")[0] == nil ? "" : @name.split(",")[0]
    end
    def skill
      return @name.split(",")[1] == nil ? 0 : @name.split(",")[1].to_i
    end
作者: pl04644972    时间: 2014-2-6 23:03
恋′挂机 发表于 2014-2-5 19:10

好像已经可以了,不过第一次出场的角色在初始装备上设置好带技能装备后第一次战斗并不能拥有技能,这个有没有办法解决
作者: pl04644972    时间: 2014-2-6 23:07
恋′挂机 发表于 2014-2-5 19:10

方法是用的公共事件的方法,脚本的还是不知道添哪。。
作者: 恐惧剑刃    时间: 2014-2-6 23:15
本帖最后由 恋′挂机 于 2014-2-7 09:22 编辑

脚本无误!只是改变了定义技能的方式而已(降低冲突,@name.split 很多人都用)!!!!!!

另外你说的技能无法使用,是你数据库设置技能有误与本脚本无关!!!!!
  1. # -----------------------------------------------
  2. # 装备附加技能
  3. # -----------------------------------------------

  4. Weapon_Skill = {}
  5. Armor_Skill = {}

  6. # -----------------------------------------------
  7. # 武器设置
  8. # -----------------------------------------------
  9. Weapon_Skill[1] = 10 # 1号武器附加10号技能
  10. Weapon_Skill[2] = 11 # 2号武器附加11号技能
  11. Weapon_Skill[3] = 12 # 3号武器附加12号技能

  12. # -----------------------------------------------
  13. # 防具设置
  14. # -----------------------------------------------
  15. Armor_Skill[1] = 13 # 1号防具附加13号技能
  16. Armor_Skill[5] = 14 # 5号防具附加14号技能



  17. # -----------------------------------------------
  18. # 正文
  19. # -----------------------------------------------

  20. class Game_Actor < Game_Battler
  21.   alias setup_old_plus_skill setup
  22.   def setup(actor_id)
  23.     setup_old_plus_skill(actor_id)
  24.     # 如果角色装备有武器,并且该武器附带技能
  25.     if $data_weapons[@weapon_id] != nil and
  26.       Weapon_Skill[@weapon_id] != nil
  27.       # 学会该技能
  28.       learn_skill(Weapon_Skill[@weapon_id])
  29.     end
  30.     # 如果角色装备有防具,并且该防具附带技能
  31.     if $data_armors[@armor1_id] != nil and
  32.       Armor_Skill[@armor1_id] != nil
  33.       # 学会该技能
  34.       learn_skill(Armor_Skill[@armor1_id])
  35.     end
  36.     # 如果角色装备有防具,并且该防具附带技能
  37.     if $data_armors[@armor2_id] != nil and
  38.       Armor_Skill[@armor2_id] != nil
  39.       # 学会该技能
  40.       learn_skill(Armor_Skill[@armor2_id])
  41.     end
  42.     # 如果角色装备有防具,并且该防具附带技能
  43.     if $data_armors[@armor3_id] != nil and
  44.       Armor_Skill[@armor3_id] != nil
  45.       # 学会该技能
  46.       learn_skill(Armor_Skill[@armor3_id])
  47.     end
  48.     # 如果角色装备有防具,并且该防具附带技能
  49.     if $data_armors[@armor4_id] != nil and
  50.       Armor_Skill[@armor4_id] != nil
  51.       # 学会该技能
  52.       learn_skill(Armor_Skill[@armor4_id])
  53.     end
  54.   end
  55.   def equip(equip_type, id)
  56.     case equip_type
  57.     when 0
  58.       if id == 0 or $game_party.weapon_number(id) > 0
  59.         $game_party.gain_weapon(@weapon_id, 1)
  60.         # 如果原装备有武器,并且该武器附带技能
  61.         if $data_weapons[@weapon_id] != nil and
  62.           Weapon_Skill[@weapon_id] != nil
  63.           # 遗忘该技能
  64.           forget_skill(Weapon_Skill[@weapon_id])
  65.         end
  66.         @weapon_id = id
  67.         $game_party.lose_weapon(id, 1)
  68.         # 如果当前装备的武器附带技能
  69.         if $data_weapons[id] != nil and
  70.           Weapon_Skill[id] != nil
  71.           # 学会该技能
  72.           forget_skill(Weapon_Skill[id])
  73.         end
  74.       end
  75.     when 1
  76.       if id == 0 or $game_party.armor_number(id) > 0
  77.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  78.         $game_party.gain_armor(@armor1_id, 1)
  79.         # 如果原装备有防具,并且该防具附带技能
  80.         if $data_armors[@armor1_id] != nil and
  81.           Armor_Skill[@armor1_id] != nil
  82.           # 遗忘该技能
  83.           forget_skill(Armor_Skill[@armor1_id])
  84.         end
  85.         @armor1_id = id
  86.         $game_party.lose_armor(id, 1)
  87.         # 如果当前装备的防具附带技能
  88.         if $data_armors[id] != nil and
  89.           Armor_Skill[id] != nil
  90.           # 学会该技能
  91.           forget_skill(Armor_Skill[id])
  92.         end
  93.       end
  94.     when 2
  95.       if id == 0 or $game_party.armor_number(id) > 0
  96.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  97.         $game_party.gain_armor(@armor2_id, 1)
  98.         # 如果原装备有防具,并且该防具附带技能
  99.         if $data_armors[@armor2_id] != nil and
  100.           Armor_Skill[@armor2_id] != nil
  101.           # 遗忘该技能
  102.           forget_skill(Armor_Skill[@armor2_id])
  103.         end
  104.         @armor2_id = id
  105.         $game_party.lose_armor(id, 1)
  106.         # 如果当前装备的防具附带技能
  107.         if $data_armors[id] != nil and
  108.           Armor_Skill[id] != nil
  109.           # 学会该技能
  110.           forget_skill(Armor_Skill[id])
  111.         end
  112.       end
  113.     when 3
  114.       if id == 0 or $game_party.armor_number(id) > 0
  115.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  116.         $game_party.gain_armor(@armor3_id, 1)
  117.         # 如果原装备有防具,并且该防具附带技能
  118.         if $data_armors[@armor3_id] != nil and
  119.           Armor_Skill[@armor3_id] != nil
  120.           # 遗忘该技能
  121.           forget_skill(Armor_Skill[@armor3_id])
  122.         end
  123.         @armor3_id = id
  124.         $game_party.lose_armor(id, 1)
  125.         # 如果当前装备的防具附带技能
  126.         if $data_armors[id] != nil and
  127.           Armor_Skill[id] != nil
  128.           # 学会该技能
  129.           forget_skill(Armor_Skill[id])
  130.         end
  131.       end
  132.     when 4
  133.       if id == 0 or $game_party.armor_number(id) > 0
  134.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  135.         $game_party.gain_armor(@armor4_id, 1)
  136.         # 如果原装备有防具,并且该防具附带技能
  137.         if $data_armors[@armor4_id] != nil and
  138.           Armor_Skill[@armor4_id] != nil
  139.           # 遗忘该技能
  140.           forget_skill(Armor_Skill[@armor4_id])
  141.         end
  142.         @armor4_id = id
  143.         $game_party.lose_armor(id, 1)
  144.         # 如果当前装备的防具附带技能
  145.         if $data_armors[id] != nil and
  146.           Armor_Skill[id] != nil
  147.           # 学会该技能
  148.           forget_skill(Armor_Skill[id])
  149.         end
  150.       end
  151.     end
  152.   end
  153. end
复制代码

作者: pl04644972    时间: 2014-2-8 09:40
顶一下。。。




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