Project1

标题: 求个装备附加技能 脚本, [打印本页]

作者: j1747532399l    时间: 2013-9-18 23:42
标题: 求个装备附加技能 脚本,
在论坛能搜索到,可是一点击就进了主页,不知道怎么办
作者: myownroc    时间: 2013-9-18 23:50
解决方案:右击超链接,单击属性。
                复制属性里的url地址,粘贴在浏览器的地址栏里,把66rpg改为cgyouxi即可
作者: RyanBern    时间: 2013-9-19 12:38
楼主可以试试这个脚本,大概能满足你的要求。
  1. #============================================================================
  2. # 武器技能系统
  3. #----------------------------------------------------------------------------
  4. # 作者:RyanBern
  5. #============================================================================
  6. # 功能:就是让角色装备某武器,就会拥有这个武器上的技能,如果卸下武器,就会失
  7. #       去这个技能
  8. #----------------------------------------------------------------------------
  9. # 使用方法:
  10. #     在下面的定义武器与技能的对应关系函数中,定义武器和技能的对应关系
  11. #     例如,让ID为1号的武器具有ID为1的技能,就写上data[1] = [1]
  12. #           让ID为2号的武器具有ID为1和2的仅能,就用data[2] = [1,2]
  13. # 注意:你不能定义数据库中不存在的武器
  14. #============================================================================
  15. def get_weapon_skill
  16.   # 生成空的Hash
  17.   data = {}
  18.   #==========================================================================
  19.   # 在这条注释后面写上你所希望武器和技能的对应,可以逐条添加
  20.   # 例如 data[1] = [1]
  21.   #==========================================================================
  22.   data[1] = [1]
  23.   #==========================================================================
  24.   # 定义完毕
  25.   #==========================================================================
  26.   return data
  27. end

  28. class Game_Actor
  29.   #--------------------------------------------------------------------------
  30.   # ● 设置
  31.   #     actor_id : 角色 ID
  32.   #--------------------------------------------------------------------------
  33.   def setup(actor_id)
  34.     actor = $data_actors[actor_id]
  35.     @actor_id = actor_id
  36.     @name = actor.name
  37.     @character_name = actor.character_name
  38.     @character_hue = actor.character_hue
  39.     @battler_name = actor.battler_name
  40.     @battler_hue = actor.battler_hue
  41.     @class_id = actor.class_id
  42.     @weapon_id = actor.weapon_id
  43.     @armor1_id = actor.armor1_id
  44.     @armor2_id = actor.armor2_id
  45.     @armor3_id = actor.armor3_id
  46.     @armor4_id = actor.armor4_id
  47.     [url=home.php?mod=space&uid=22147]@level[/url] = actor.initial_level
  48.     @exp_list = Array.new(101)
  49.     make_exp_list
  50.     [url=home.php?mod=space&uid=13302]@exp[/url] = @exp_list[@level]
  51.     @skills = []
  52.     @hp = maxhp
  53.     @sp = maxsp
  54.     @states = []
  55.     @states_turn = {}
  56.     @maxhp_plus = 0
  57.     @maxsp_plus = 0
  58.     @str_plus = 0
  59.     @dex_plus = 0
  60.     @agi_plus = 0
  61.     @int_plus = 0
  62.     # 学会特技
  63.     for i in 1..@level
  64.       for j in $data_classes[@class_id].learnings
  65.         if j.level == i
  66.           learn_skill(j.skill_id)
  67.         end
  68.       end
  69.     end
  70.     # 学会武器特技
  71.     skill_weapon(@weapon_id)
  72.     # 刷新自动状态
  73.     update_auto_state(nil, $data_armors[@armor1_id])
  74.     update_auto_state(nil, $data_armors[@armor2_id])
  75.     update_auto_state(nil, $data_armors[@armor3_id])
  76.     update_auto_state(nil, $data_armors[@armor4_id])
  77.   end
  78.   # 学会武器对应的技能
  79.   def skill_weapon(weapon_id)
  80.     # 取得武器与技能对应Hash
  81.     skill = get_weapon_skill
  82.     # 装备特定武器就学会对应技能
  83.     if skill.keys.include?(weapon_id)
  84.       for i in skill[weapon_id]
  85.         learn_skill(i)
  86.       end
  87.       # 删除其它对应技能
  88.       m = skill.keys
  89.       m.delete(weapon_id)
  90.       n = []
  91.       for i in m
  92.         n += skill[i]
  93.       end
  94.       for j in n
  95.         forget_skill(j)
  96.       end
  97.     else
  98.       # 卸下装备就删除对应技能
  99.       m = skill.keys
  100.       n = []
  101.       for i in m
  102.         n += skill[i]
  103.       end
  104.       for j in n
  105.         forget_skill(j)
  106.       end
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 变更装备
  111.   #     equip_type : 装备类型
  112.   #     id    : 武器 or 防具 ID  (0 为解除装备)
  113.   #--------------------------------------------------------------------------
  114.   def equip(equip_type, id)
  115.     case equip_type
  116.     when 0  # 武器
  117.       if id == 0 or $game_party.weapon_number(id) > 0
  118.         $game_party.gain_weapon(@weapon_id, 1)
  119.         @weapon_id = id
  120.         $game_party.lose_weapon(id, 1)
  121.         skill_weapon(id)
  122.       end
  123.     when 1  # 盾
  124.       if id == 0 or $game_party.armor_number(id) > 0
  125.         update_auto_state($data_armors[@armor1_id], $data_armors[id])
  126.         $game_party.gain_armor(@armor1_id, 1)
  127.         @armor1_id = id
  128.         $game_party.lose_armor(id, 1)
  129.       end
  130.     when 2  # 头
  131.       if id == 0 or $game_party.armor_number(id) > 0
  132.         update_auto_state($data_armors[@armor2_id], $data_armors[id])
  133.         $game_party.gain_armor(@armor2_id, 1)
  134.         @armor2_id = id
  135.         $game_party.lose_armor(id, 1)
  136.       end
  137.     when 3  # 身体
  138.       if id == 0 or $game_party.armor_number(id) > 0
  139.         update_auto_state($data_armors[@armor3_id], $data_armors[id])
  140.         $game_party.gain_armor(@armor3_id, 1)
  141.         @armor3_id = id
  142.         $game_party.lose_armor(id, 1)
  143.       end
  144.     when 4  # 装饰品
  145.       if id == 0 or $game_party.armor_number(id) > 0
  146.         update_auto_state($data_armors[@armor4_id], $data_armors[id])
  147.         $game_party.gain_armor(@armor4_id, 1)
  148.         @armor4_id = id
  149.         $game_party.lose_armor(id, 1)
  150.       end
  151.     end
  152.   end
  153. end
复制代码

作者: chd114    时间: 2013-9-19 12:59
  1. #------------------------------------------------------------
  2. # 脚本来自www.66rpg.com,作者柳柳,转载和使用请保留此信息
  3. #------------------------------------------------------------
  4. class Game_Actor < Game_Battler   
  5. C3_W_SKILL = []
  6. C3_A1_SKILL = []
  7. C3_A2_SKILL = []
  8. C3_A3_SKILL = []
  9. C3_A4_SKILL = []
  10.   
  11. C3_W_SKILL.push [1,0,"剑_"] #武器编号,武器附带技能编号,战斗图前缀
  12. C3_W_SKILL.push [2,7,"剑_"]  
  13. C3_W_SKILL.push [3,7,"剑_"]  
  14. C3_W_SKILL.push [3,8,"剑_"]  
  15. C3_W_SKILL.push [3,9,"剑_"]  
  16. C3_W_SKILL.push [6,14,"枪_"]  
  17. C3_W_SKILL.push [7,15,"枪_"]  
  18. C3_W_SKILL.push [5,0,"枪_"]  
  19. C3_W_SKILL.push [9,0,"斧头_"]  
  20. C3_W_SKILL.push [10,0,"大剑_"]  
  21. #战斗图前缀后面会自动跟上角色的数据库编号。
  22. #比如你使用上面的设定,你的1、2、3、4号角色可以用1号武器(铜剑)
  23. #则你的battlers/下面应改有"剑_1.png","剑_2.png","剑_3.png","剑_4.png"
  24. #一个武器可以重复设置多种技能,防具也是。
  25.   
  26. C3_A1_SKILL.push [1,15]                    #盾编号,附带技能编号
  27. C3_A2_SKILL.push [6,15]                    #头盔编号,附带技能编号
  28. C3_A3_SKILL.push [14,15]                   #甲编号,附带技能编号
  29. C3_A4_SKILL.push [25,15]                   #装饰品编号,附带技能编号
  30. #--------------------------------------------------------------------------
  31. # ● 变更装备
  32. #     equip_type : 装备类型
  33. #     id    : 武器 or 防具 ID  (0 为解除装备)
  34. #--------------------------------------------------------------------------
  35. def equip(equip_type, id)
  36.    case equip_type
  37.    when 0  # 武器
  38.      if id == 0 or $game_party.weapon_number(id) > 0
  39.        old_weapon_id = @weapon_id
  40.        weapon_i = 0
  41.        for weapon_i in C3_W_SKILL           
  42.          if weapon_i[0] == old_weapon_id
  43.            if weapon_i[1] != 0
  44.              forget_skill(weapon_i[1])
  45.            end
  46.          end      
  47.        end
  48.        for weapon_i in C3_W_SKILL           
  49.          if weapon_i[0] == id
  50.            if weapon_i[1] != 0
  51.              learn_skill(weapon_i[1])
  52.            end
  53.            if weapon_i[2] != ""
  54.              @battler_name = weapon_i[2]+@actor_id.to_s
  55.            else
  56.              @battler_name = $data_actors[@actor_id].battler_name
  57.            end
  58.          end
  59.        end
  60.        $game_party.gain_weapon(@weapon_id, 1)
  61.        @weapon_id = id
  62.        $game_party.lose_weapon(id, 1)
  63.      end
  64.    when 1  # 盾
  65.      if id == 0 or $game_party.armor_number(id) > 0
  66.        old_am_id = @armor1_id
  67.        am_i = 0
  68.        for am_i in C3_A1_SKILL           
  69.          if am_i[0] == old_am_id
  70.            if am_i[1] != 0
  71.              forget_skill(am_i[1])
  72.            end
  73.          end      
  74.        end
  75.        for am_i in C3_A1_SKILL
  76.          if am_i[0] == id
  77.            if am_i[1] != 0
  78.              learn_skill(am_i[1])
  79.            end
  80.          end
  81.        end
  82.        update_auto_state($data_armors[@armor1_id], $data_armors[id])
  83.        $game_party.gain_armor(@armor1_id, 1)
  84.        @armor1_id = id
  85.        $game_party.lose_armor(id, 1)
  86.      end
  87.    when 2  # 头
  88.      if id == 0 or $game_party.armor_number(id) > 0
  89.        old_am_id = @armor2_id
  90.        am_i = 0
  91.        for am_i in C3_A2_SKILL           
  92.          if am_i[0] == old_am_id
  93.            if am_i[1] != 0
  94.              forget_skill(am_i[1])
  95.            end
  96.          end     
  97.        end
  98.        for am_i in C3_A2_SKILL   
  99.          if am_i[0] == id
  100.            if am_i[1] != 0
  101.              learn_skill(am_i[1])
  102.            end
  103.          end
  104.        end
  105.        update_auto_state($data_armors[@armor2_id], $data_armors[id])
  106.        $game_party.gain_armor(@armor2_id, 1)
  107.        @armor2_id = id
  108.        $game_party.lose_armor(id, 1)
  109.      end
  110.    when 3  # 身体
  111.      if id == 0 or $game_party.armor_number(id) > 0
  112.        old_am_id = @armor3_id
  113.        am_i = 0
  114.        for am_i in C3_A3_SKILL           
  115.          if am_i[0] == old_am_id
  116.            if am_i[1] != 0
  117.              forget_skill(am_i[1])
  118.            end
  119.          end      
  120.        end
  121.        for am_i in C3_A3_SKILL   
  122.          if am_i[0] == id
  123.            if am_i[1] != 0
  124.              learn_skill(am_i[1])
  125.            end
  126.          end
  127.        end
  128.        update_auto_state($data_armors[@armor3_id], $data_armors[id])
  129.        $game_party.gain_armor(@armor3_id, 1)
  130.        @armor3_id = id
  131.        $game_party.lose_armor(id, 1)
  132.      end
  133.    when 4  # 装饰品
  134.      if id == 0 or $game_party.armor_number(id) > 0
  135.        old_am_id = @armor4_id
  136.        am_i = 0
  137.        for am_i in C3_A4_SKILL           
  138.          if am_i[0] == old_am_id
  139.            if am_i[1] != 0
  140.              forget_skill(am_i[1])
  141.            end
  142.          end      
  143.        end
  144.        for am_i in C3_A4_SKILL   
  145.          if am_i[0] == id
  146.            if am_i[1] != 0
  147.              learn_skill(am_i[1])
  148.            end
  149.          end
  150.        end
  151.        update_auto_state($data_armors[@armor4_id], $data_armors[id])
  152.        $game_party.gain_armor(@armor4_id, 1)
  153.        @armor4_id = id
  154.        $game_party.lose_armor(id, 1)
  155.      end
  156.    end
  157. end
  158. end
  159. #------------------------------------------------------------
  160. # 脚本来自www.66rpg.com,作者柳柳,转载和使用请保留此信息
  161. #------------------------------------------------------------
复制代码
推荐新手用这个,可以给防具和武器都设定技能,麻烦的事情就是当你需要给一件装备设置多个技能时要多写几句脚本···
作者: chd114    时间: 2013-9-19 16:05
http://bbs.cgyouxi.com/thread-332805-1-1.html你也可以考虑用这个,不过是要收费的哦= =至于这个和上面那个的区别···其实就是你可以在设定技能上更简便···而且多了使用说明等等···




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