Project1

标题: 冰冰套装系统V1.00修正&V1.04 [打印本页]

作者: 凌冰    时间: 2008-2-18 10:29
标题: 冰冰套装系统V1.00修正&V1.04
我看到主站上的套装系统有些问题,就写了这个脚本,虽然我自己的也不是很完善,但是会不断更新的(unless这张帖子被54,{/dk}那我自己留着好了)
貌似我的脚本都太过花哨(包括此脚本),不实用,所以管理员一直没把我的脚本顶到主站,虽然很伤心{/ll},但是我还是冒着被54的风险含泪写了这个脚本。
具体用法我在脚本里说的很清楚了,就不废话了。
至于冲突,主要是装备扩展,假如你重定义了Game_Actor里的相关项,也有可能产生冲突。以上两种情况整合起来并不麻烦,对高手就不用说了,新手的话自己整合一下也有助于技术提高,如果有问题可以去提问区提问,我长期在那儿蹲点(因为是提问区的斑竹{/gg})。其他冲突,不明。

  1. #-------------------------------------------------------------------------------
  2. #冰冰套装系统 version 1.00(修正) By 凌冰
  3. #(附带加MAXHP、加MAXSP装备、加回避的武器和加攻击的防具功能)
  4. #(修正信息:支持多防具套装)
  5. #================================套装的设置================================
  6. #如范例数据库
  7. #凌冰套装包含:凌冰之铜剑、凌冰之铜盾、凌冰之铜盔、凌冰之铜铠
  8. #或:          凌冰之铜枪、凌冰之铜盾、凌冰之铜盔、凌冰之铜铠
  9. #只要全部在武器、防具前面加上套装名"凌冰"和"之"
  10. #接着设置套装附加属性
  11. #在防具里新建防具,无所谓是盾还是头盔什么的,只要名字是套装名"凌冰"
  12. #设置附加属性
  13. #直接在物防、魔防、回避、力量、敏捷、速度、魔力里设置相应的附加值
  14. #至于攻击、MAXHP、MAXSP的附加值,则需要用到附加功能
  15. #在说明里添加精+数值、灵+数值、攻+数值(要有+号)设置相应附加值
  16. #具体设置参考范例
  17. #当然设置的这个防具在游戏中也是可用的,但是不算在套装里
  18. #然后说明一下☆附加功能☆
  19. #同上文关于套装附加属性的设置
  20. #武器在说明里添加精+数值、灵+数值、避+数值(要有+号)设置相应值
  21. #防具在说明里添加精+数值、灵+数值、攻+数值(要有+号)设置相应值
  22. #================================脚本的缺陷================================
  23. #我不说你们早晚也会发现的,所以还不如事先承认了
  24. #第一、不能设置套装不全的部分附加,暗黑破坏神里,如果套装不全,而装备的套装数量
  25. #      大于一,就会实现套装属性的部分附加。但是本脚本暂时不具备此功能,也就是说
  26. #      想附加套装属性缺一不可
  27. #第二、其他属性附加,例如:套装特技、自动状态、属性、属性防御、状态变化、状态防
  28. #      御……暂时还不能实现
  29. #其他缺陷和BUG望大家及时反馈给我,发站内短信给我就行
  30. #-------------------------------------------------------------------------------
  31. module RPG
  32.   class Weapon
  33.     def tao
  34.       return nil if @name.split(/之/)[1] == nil
  35.       return @name.split(/之/)[0]
  36.     end
  37.     def maxhp_plus
  38.      return 0 if @description.split(/精+/)[1] == nil
  39.      return @description.split(/精+/)[1].to_i
  40.    end
  41.    def maxsp_plus
  42.      return 0 if @description.split(/灵+/)[1] == nil
  43.      return @description.split(/灵+/)[1].to_i
  44.    end
  45.    def eva_plus
  46.      return 0 if @description.split(/避+/)[1] == nil
  47.      return @description.split(/避+/)[1].to_i
  48.    end
  49. end
  50.   class Armor
  51.     def tao
  52.       return nil if @name.split(/之/)[1] == nil
  53.       return @name.split(/之/)[0]
  54.     end
  55.     def maxhp_plus
  56.      return 0 if @description.split(/精+/)[1] == nil
  57.      return @description.split(/精+/)[1].to_i
  58.    end
  59.    def maxsp_plus
  60.      return 0 if @description.split(/灵+/)[1] == nil
  61.      return @description.split(/灵+/)[1].to_i
  62.    end
  63.    def atk_plus
  64.      return 0 if @description.split(/攻+/)[1] == nil
  65.      return @description.split(/攻+/)[1].to_i
  66.    end
  67.   end
  68. end
  69. class Game_Actor < Game_Battler
  70.   def get_tao_num(tao)
  71.     tao_num = 0
  72.     @tao = tao
  73.     armors = []
  74.     for i in 0...4
  75.       armors[i] = []
  76.     end
  77.     for i in 1...$data_armors.size
  78.       case $data_armors[i].kind
  79.       when 0
  80.         armors[0].push(i)
  81.       when 1
  82.         armors[1].push(i)
  83.       when 2
  84.         armors[2].push(i)
  85.       when 3
  86.         armors[3].push(i)
  87.       end
  88.     end
  89.     for i in 0...4
  90.       for id in armors[i]
  91.         armor = $data_armors[id]
  92.         if @tao == armor.tao
  93.           tao_num += 1
  94.           break
  95.         end
  96.       end
  97.     end
  98.     for i in 1...$data_weapons.size
  99.       weapon = $data_weapons[i]
  100.       if weapon.tao == @tao
  101.         tao_num += 1
  102.         break
  103.       end
  104.     end
  105.     return tao_num
  106.   end
  107.   def get_plus(parameter)
  108.     @now_tao_num = 0
  109.     weapon = $data_weapons[@weapon_id]
  110.     if weapon != nil and weapon.tao != nil
  111.       tao = weapon.tao
  112.       @tao_num = get_tao_num(tao)
  113.     else
  114.       for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  115.         armor = $data_armors[i]
  116.         if armor != nil and armor.tao != nil
  117.           tao = armor.tao
  118.           @tao_num = get_tao_num(tao)
  119.           break
  120.         end
  121.       end
  122.     end
  123.     if weapon != nil and weapon.tao != nil and weapon.tao == tao
  124.       @now_tao_num += 1
  125.     end
  126.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  127.       armor = $data_armors[i]
  128.       unless armor == nil
  129.       if armor != nil and armor.tao != nil and armor.tao == tao
  130.         @now_tao_num += 1
  131.       end
  132.       end
  133.     end
  134.     if @now_tao_num == @tao_num
  135.       return get_tao_plus(tao,parameter)
  136.     end
  137.     return 0
  138.   end
  139.   def get_tao_plus(tao,parameter)
  140.     for i in 1...$data_armors.size
  141.       armor = $data_armors[i]
  142.       if armor.name == tao
  143.         case parameter
  144.         when 0
  145.           return armor.maxhp_plus
  146.         when 1
  147.           return armor.maxsp_plus
  148.         when 2
  149.           return armor.str_plus
  150.         when 3
  151.           return armor.dex_plus
  152.         when 4
  153.           return armor.agi_plus
  154.         when 5
  155.           return armor.int_plus
  156.         when 6
  157.           return armor.atk_plus
  158.         when 7
  159.           return armor.pdef
  160.         when 8
  161.           return armor.mdef
  162.         when 9
  163.           return armor.eva
  164.         else
  165.           return 0
  166.         end
  167.       end
  168.     end
  169.     return 0
  170.   end
  171.   def base_maxhp
  172.     n = $data_actors[@actor_id].parameters[0, @level]
  173.     weapon = $data_weapons[@weapon_id]
  174.     armor1 = $data_armors[@armor1_id]
  175.     armor2 = $data_armors[@armor2_id]
  176.     armor3 = $data_armors[@armor3_id]
  177.     armor4 = $data_armors[@armor4_id]
  178.     n += weapon != nil ? weapon.maxhp_plus : 0
  179.     n += armor1 != nil ? armor1.maxhp_plus : 0
  180.     n += armor2 != nil ? armor2.maxhp_plus : 0
  181.     n += armor3 != nil ? armor3.maxhp_plus : 0
  182.     n += armor4 != nil ? armor4.maxhp_plus : 0
  183.     n += get_plus(0)
  184.     return n
  185.   end
  186.   def base_maxsp
  187.     n = $data_actors[@actor_id].parameters[1, @level]
  188.     weapon = $data_weapons[@weapon_id]
  189.     armor1 = $data_armors[@armor1_id]
  190.     armor2 = $data_armors[@armor2_id]
  191.     armor3 = $data_armors[@armor3_id]
  192.     armor4 = $data_armors[@armor4_id]
  193.     n += weapon != nil ? weapon.maxsp_plus : 0
  194.     n += armor1 != nil ? armor1.maxsp_plus : 0
  195.     n += armor2 != nil ? armor2.maxsp_plus : 0
  196.     n += armor3 != nil ? armor3.maxsp_plus : 0
  197.     n += armor4 != nil ? armor4.maxsp_plus : 0
  198.     n += get_plus(1)
  199.     return n
  200.   end
  201.   def base_str
  202.     n = $data_actors[@actor_id].parameters[2, @level]
  203.     weapon = $data_weapons[@weapon_id]
  204.     armor1 = $data_armors[@armor1_id]
  205.     armor2 = $data_armors[@armor2_id]
  206.     armor3 = $data_armors[@armor3_id]
  207.     armor4 = $data_armors[@armor4_id]
  208.     n += weapon != nil ? weapon.str_plus : 0
  209.     n += armor1 != nil ? armor1.str_plus : 0
  210.     n += armor2 != nil ? armor2.str_plus : 0
  211.     n += armor3 != nil ? armor3.str_plus : 0
  212.     n += armor4 != nil ? armor4.str_plus : 0
  213.     n += get_plus(2)
  214.     return [[n, 1].max, 999].min
  215.   end
  216.   def base_dex
  217.     n = $data_actors[@actor_id].parameters[3, @level]
  218.     weapon = $data_weapons[@weapon_id]
  219.     armor1 = $data_armors[@armor1_id]
  220.     armor2 = $data_armors[@armor2_id]
  221.     armor3 = $data_armors[@armor3_id]
  222.     armor4 = $data_armors[@armor4_id]
  223.     n += weapon != nil ? weapon.dex_plus : 0
  224.     n += armor1 != nil ? armor1.dex_plus : 0
  225.     n += armor2 != nil ? armor2.dex_plus : 0
  226.     n += armor3 != nil ? armor3.dex_plus : 0
  227.     n += armor4 != nil ? armor4.dex_plus : 0
  228.     n += get_plus(3)
  229.     return [[n, 1].max, 999].min
  230.   end
  231.   def base_agi
  232.     n = $data_actors[@actor_id].parameters[4, @level]
  233.     weapon = $data_weapons[@weapon_id]
  234.     armor1 = $data_armors[@armor1_id]
  235.     armor2 = $data_armors[@armor2_id]
  236.     armor3 = $data_armors[@armor3_id]
  237.     armor4 = $data_armors[@armor4_id]
  238.     n += weapon != nil ? weapon.agi_plus : 0
  239.     n += armor1 != nil ? armor1.agi_plus : 0
  240.     n += armor2 != nil ? armor2.agi_plus : 0
  241.     n += armor3 != nil ? armor3.agi_plus : 0
  242.     n += armor4 != nil ? armor4.agi_plus : 0
  243.     n += get_plus(4)
  244.     return [[n, 1].max, 999].min
  245.   end
  246.   def base_int
  247.     n = $data_actors[@actor_id].parameters[5, @level]
  248.     weapon = $data_weapons[@weapon_id]
  249.     armor1 = $data_armors[@armor1_id]
  250.     armor2 = $data_armors[@armor2_id]
  251.     armor3 = $data_armors[@armor3_id]
  252.     armor4 = $data_armors[@armor4_id]
  253.     n += weapon != nil ? weapon.int_plus : 0
  254.     n += armor1 != nil ? armor1.int_plus : 0
  255.     n += armor2 != nil ? armor2.int_plus : 0
  256.     n += armor3 != nil ? armor3.int_plus : 0
  257.     n += armor4 != nil ? armor4.int_plus : 0
  258.     n += get_plus(5)
  259.     return [[n, 1].max, 999].min
  260.   end
  261.   def base_atk
  262.     weapon = $data_weapons[@weapon_id]
  263.     armor1 = $data_armors[@armor1_id]
  264.     armor2 = $data_armors[@armor2_id]
  265.     armor3 = $data_armors[@armor3_id]
  266.     armor4 = $data_armors[@armor4_id]
  267.     n = 0
  268.     n += weapon != nil ? weapon.atk : 0
  269.     n += armor1 != nil ? armor1.atk_plus : 0
  270.     n += armor2 != nil ? armor2.atk_plus : 0
  271.     n += armor3 != nil ? armor3.atk_plus : 0
  272.     n += armor4 != nil ? armor4.atk_plus : 0
  273.     n += get_plus(6)
  274.   end
  275.   def base_pdef
  276.     weapon = $data_weapons[@weapon_id]
  277.     armor1 = $data_armors[@armor1_id]
  278.     armor2 = $data_armors[@armor2_id]
  279.     armor3 = $data_armors[@armor3_id]
  280.     armor4 = $data_armors[@armor4_id]
  281.     pdef1 = weapon != nil ? weapon.pdef : 0
  282.     pdef2 = armor1 != nil ? armor1.pdef : 0
  283.     pdef3 = armor2 != nil ? armor2.pdef : 0
  284.     pdef4 = armor3 != nil ? armor3.pdef : 0
  285.     pdef5 = armor4 != nil ? armor4.pdef : 0
  286.     return pdef1 + pdef2 + pdef3 + pdef4 + pdef5 + get_plus(7)
  287.   end
  288.   def base_mdef
  289.     weapon = $data_weapons[@weapon_id]
  290.     armor1 = $data_armors[@armor1_id]
  291.     armor2 = $data_armors[@armor2_id]
  292.     armor3 = $data_armors[@armor3_id]
  293.     armor4 = $data_armors[@armor4_id]
  294.     mdef1 = weapon != nil ? weapon.mdef : 0
  295.     mdef2 = armor1 != nil ? armor1.mdef : 0
  296.     mdef3 = armor2 != nil ? armor2.mdef : 0
  297.     mdef4 = armor3 != nil ? armor3.mdef : 0
  298.     mdef5 = armor4 != nil ? armor4.mdef : 0
  299.     return mdef1 + mdef2 + mdef3 + mdef4 + mdef5 + get_plus(8)
  300.   end
  301.   def base_eva
  302.     weapon = $data_weapons[@weapon_id]
  303.     armor1 = $data_armors[@armor1_id]
  304.     armor2 = $data_armors[@armor2_id]
  305.     armor3 = $data_armors[@armor3_id]
  306.     armor4 = $data_armors[@armor4_id]
  307.     eva0 = weapon != nil ? weapon.eva_plus : 0
  308.     eva1 = armor1 != nil ? armor1.eva : 0
  309.     eva2 = armor2 != nil ? armor2.eva : 0
  310.     eva3 = armor3 != nil ? armor3.eva : 0
  311.     eva4 = armor4 != nil ? armor4.eva : 0
  312.     return eva1 + eva2 + eva3 + eva4 + eva0 + get_plus(9)
  313.   end
  314. end
复制代码

http://rpg.blue/upload_program/f ... 修正_83829712.rar
截图:
套装的设置,如图只要设置装备名称就行了,人性化吧{/cy}

附加值的设置,这是关键,参考下图与脚本注释中的那些“废话”




---------------------------version1.04----------------------------------------





之所以保留v1.00,是因为随着脚本功能的增加,貌似冲突也越来越多,整合也变得越来越难,建议新手还是使用v1.00,稍后我会发布v1.00的修正版本。
更新信息
1.增加套装特技
2.支持每套套装中可以有N多武器N多同类防具
3.完善套装附加属性

  1. #-------------------------------------------------------------------------------
  2. #冰冰套装系统 version 1.04 By 凌冰
  3. #(附带加MAXHP、加MAXSP装备、加回避的武器和加攻击的防具功能)
  4. #(更新信息v1.01:1、增加套装特技。2、增加双防具套装。3、增加套装属性设置)
  5. #(更新信息v1.02:1、支持双套装)
  6. #(更新信息v1.03:1、增加隐藏套装功能)
  7. #(更新信息v1.04:1、增加套装多种附加属性功能)
  8. #================================套装的设置================================
  9. #如范例数据库
  10. #只要全部在武器、防具前面加上套装名"凌冰"和"之"
  11. #设置☆套装特技☆
  12. #在特技名称前加套装名"凌冰"和"之",支持多个技能
  13. #接着设置套装附加属性
  14. #在防具里新建防具,无所谓是盾还是头盔什么的,只要名字是套装名"凌冰"
  15. #设置附加属性
  16. #直接在物防、魔防、回避、力量、敏捷、速度、魔力、自动状态、状态防御、属性防御里
  17. #设置相应的附加值。至于攻击、MAXHP、MAXSP的附加值,则需要用到附加功能
  18. #在说明里添加精+数值、灵+数值、攻+数值(要有+号)设置相应附加值
  19. #在武器里新建武器,名字是套装名"凌冰"
  20. #这个只用于描述物理攻击属性、物理攻击附加状态、物理攻击清楚状态(感觉有些浪费)
  21. #,只要设置相应值就行了
  22. #(如果不需要可以不新建这个武器,orz不需要的话不新建那个防具都可以)
  23. #具体设置参考范例
  24. #当然设置的这个防具在游戏中也是可用的,但是不算在套装里
  25. #然后说明一下☆附加功能☆
  26. #同上文关于套装附加属性的设置
  27. #武器在说明里添加精+数值、灵+数值、避+数值(要有+号)设置相应值
  28. #防具在说明里添加精+数值、灵+数值、攻+数值(要有+号)设置相应值
  29. #☆双武器双防具套装功能说明☆
  30. #凌冰套装包含:凌冰之铜剑、凌冰之铜盾、凌冰之铜盔、凌冰之铜铠
  31. #或:          凌冰之铜枪、凌冰之铜盾、凌冰之铜盔、凌冰之铜铠
  32. #上面是version 1.00的范例的设置,你现在可以打开范例工程看,除了密斯利尔和塞因特
  33. #(对比用)全被我改成了凌冰套装,也就是说实现了vesion 1.00不能实现的双防具套装
  34. #功能,其实是N防具N武器套装,只要穿上凌冰套装中任意5件(你也只能穿5件),就能附
  35. #加套装属性。这样,同时也暴露了本脚本的另一个缺陷,见下文第二。当然并没有限制套
  36. #装一定包含5类装备。例如:某套装:武器、头盔1、头盔2、身体、盾。只要装备其中四
  37. #项就行
  38. #☆双套装功能☆说明
  39. #如工程中的范例,除凌冰套装外,还有夏桀凌和魔敬轩套装,夏桀凌套装只包括头和身体
  40. #两类,而魔敬轩套装只包括盾和装饰两类。夏桀凌套装的套装属性是精+100,魔敬轩套装
  41. #套装属性是灵+100,同时装备着两个套装后,可以同时附加maxhp+100和maxsp+100。如果
  42. #可以整合装备扩展的话,可以实现三套装、四套装甚至更多(orz)(其实,现在就可以
  43. #实现五套装,但显然没什么太大意义)
  44. #隐藏套装☆New!
  45. #按照禾西的建议我做了隐藏套装功能,在数据库系统里新加一个属性,名称为隐藏套装,
  46. #所需要隐藏的套装的每一个武器、防具、技能都要勾上这个属性。
  47. #套装多种附加属性功能☆New!
  48. #根据套装成分不同变化附加属性。例如上文的凌冰套装,同时装备其他装备,再装备凌冰
  49. #之铜剑和凌冰之铜枪效果是不一样的(在有的游戏中这种情况效果是不一样的)。设置方
  50. #法:在武器、防具的说明里添加“类型:***”***为类型名,再在数据库里设置描述防具
  51. #和描述武器,名称为***,设置方法与套装的描述防具和描述武器设置方法相同。而所要
  52. #增加的技能名称为套装的名称+“之”+???,另外要在技能说明里增加“类型:***”
  53. #如范例,凌冰之铜剑的剑类型附加属性为物防+100,也就是说在原来的套装属性上再叠加
  54. #物防100,如果装备了凌冰之铁枪,则在叠加魔防100,并且学会凌冰之淫荡,换成其他装
  55. #备凌冰之淫荡则被遗忘。
  56. #如果想更灵活的改变套装属性,那就多设置几个类型就OK了,这也就是为什么我没有用防
  57. #具在数据库里设置的类别进行类别判定的原因。
  58. #================================脚本的缺陷================================
  59. #我不说你们早晚也会发现的,所以还不如事先承认了
  60. #第一、不能设置套装不全的部分附加,暗黑破坏神里,如果套装不全,而装备的套装数量
  61. #      大于一,就会实现套装属性的部分附加。但是本脚本暂时不具备此功能,也就是说
  62. #      想附加套装属性缺一不可。
  63. #解释:不是我做不到,只是实现这个功能会增加使用这个脚本的人的工作量,而且增加的
  64. #      不是一般的多。
  65. #其他缺陷和BUG望大家及时反馈给我,发站内短信给我就行
  66. #-------------------------------------------------------------------------------
  67. module RPG
  68.   class Weapon
  69.     def tao
  70.       return nil if @name.split(/之/)[1] == nil
  71.       return @name.split(/之/)[0]
  72.     end
  73.     def maxhp_plus
  74.       return 0 if @description.split(/精+/)[1] == nil
  75.       return @description.split(/精+/)[1].to_i
  76.     end
  77.     def maxsp_plus
  78.       return 0 if @description.split(/灵+/)[1] == nil
  79.       return @description.split(/灵+/)[1].to_i
  80.     end
  81.     def eva_plus
  82.       return 0 if @description.split(/避+/)[1] == nil
  83.       return @description.split(/避+/)[1].to_i
  84.     end
  85.     def name
  86.       a = @name
  87.       if tao != nil and tao_hide?
  88.         return a.split(/之/)[1]
  89.       end
  90.       return a
  91.     end
  92.     def get_hide_id
  93.       if @hide_id == nil
  94.         result = nil
  95.         for i in 1 ... $data_system.elements.size
  96.           if $data_system.elements[i] == "隐藏套装"
  97.             result = i
  98.             break
  99.           end
  100.         end
  101.         @hide_id = result == nil ? 0 : result
  102.       end
  103.       return @hide_id
  104.     end
  105.     def tao_hide?
  106.       id = get_hide_id
  107.       if element_set.include?(id)
  108.         return true
  109.       end
  110.       return false
  111.     end
  112.     def plus_kind
  113.       return nil if @description.split(/类型:/)[1] == nil
  114.       return @description.split(/类型:/)[1].to_s
  115.     end
  116.   end
  117.   class Armor
  118.     def tao
  119.       return nil if @name.split(/之/)[1] == nil
  120.       return @name.split(/之/)[0]
  121.     end
  122.     def maxhp_plus
  123.       return 0 if @description.split(/精+/)[1] == nil
  124.       return @description.split(/精+/)[1].to_i
  125.     end
  126.     def maxsp_plus
  127.       return 0 if @description.split(/灵+/)[1] == nil
  128.       return @description.split(/灵+/)[1].to_i
  129.     end
  130.     def atk_plus
  131.       return 0 if @description.split(/攻+/)[1] == nil
  132.       return @description.split(/攻+/)[1].to_i
  133.     end
  134.     def name
  135.       a = @name
  136.       if tao != nil and tao_hide?
  137.         return a.split(/之/)[1]
  138.       end
  139.       return a
  140.     end
  141.     def get_hide_id
  142.       if @hide_id == nil
  143.         result = nil
  144.         for i in 1 ... $data_system.elements.size
  145.           if $data_system.elements[i] == "隐藏套装"
  146.             result = i
  147.             break
  148.           end
  149.         end
  150.         @hide_id = result == nil ? 0 : result
  151.       end
  152.       return @hide_id
  153.     end
  154.     def tao_hide?
  155.       id = get_hide_id
  156.       if guard_element_set.include?(id)
  157.         return true
  158.       end
  159.       return false
  160.     end
  161.     def plus_kind
  162.       return nil if @description.split(/类型:/)[1] == nil
  163.       return @description.split(/类型:/)[1].to_s
  164.     end
  165.   end
  166.   class Skill
  167.     def tao
  168.       return nil if @name.split(/之/)[1] == nil
  169.       return @name.split(/之/)[0]
  170.     end
  171.     def name
  172.       a = @name
  173.       if tao != nil and tao_hide?
  174.         return a.split(/之/)[1]
  175.       end
  176.       return a
  177.     end
  178.     def get_hide_id
  179.       if @hide_id == nil
  180.         result = nil
  181.         for i in 1 ... $data_system.elements.size
  182.           if $data_system.elements[i] == "隐藏套装"
  183.             result = i
  184.             break
  185.           end
  186.         end
  187.         @hide_id = result == nil ? 0 : result
  188.       end
  189.       return @hide_id
  190.     end
  191.     def tao_hide?
  192.       id = get_hide_id
  193.       if element_set.include?(id)
  194.         return true
  195.       end
  196.       return false
  197.     end
  198.     def plus_kind
  199.       return nil if @description.split(/类型:/)[1] == nil
  200.       return @description.split(/类型:/)[1].to_s
  201.     end
  202.   end
  203. end
  204. class Game_Actor < Game_Battler
  205.   def get_tao_num(tao)
  206.     tao_num = 0
  207.     @tao = tao
  208.     armors = []
  209.     for i in 0...4
  210.       armors[i] = []
  211.     end
  212.     for i in 1...$data_armors.size
  213.       case $data_armors[i].kind
  214.       when 0
  215.         armors[0].push(i)
  216.       when 1
  217.         armors[1].push(i)
  218.       when 2
  219.         armors[2].push(i)
  220.       when 3
  221.         armors[3].push(i)
  222.       end
  223.     end
  224.     for i in 0...4
  225.       for id in armors[i]
  226.         armor = $data_armors[id]
  227.         if @tao == armor.tao
  228.           tao_num += 1
  229.           break
  230.         end
  231.       end
  232.     end
  233.     for i in 1...$data_weapons.size
  234.       weapon = $data_weapons[i]
  235.       if weapon.tao == @tao
  236.         tao_num += 1
  237.         break
  238.       end
  239.     end
  240.     return tao_num
  241.   end
  242.   def get_tao
  243.     tao = []
  244.     weapon = $data_weapons[@weapon_id]
  245.     tao.push(weapon.tao) if weapon != nil and weapon.tao != nil
  246.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  247.       armor = $data_armors[i]
  248.       unless armor == nil or tao.include?(armor.tao)
  249.         tao.push(armor.tao) if armor.tao != nil
  250.       end
  251.     end
  252.     return tao
  253.   end
  254.   def tao_whole?(tao)
  255.     @now_tao_num = 0
  256.     @tao_num = get_tao_num(tao)
  257.     weapon = $data_weapons[@weapon_id]
  258.     if weapon != nil and weapon.tao != nil and weapon.tao == tao
  259.       @now_tao_num += 1
  260.     end
  261.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  262.       armor = $data_armors[i]
  263.       unless armor == nil
  264.       if armor != nil and armor.tao != nil and armor.tao == tao
  265.         @now_tao_num += 1
  266.       end
  267.       end
  268.     end
  269.     if @now_tao_num == @tao_num
  270.       return true
  271.     end
  272.     return false
  273.   end
  274.   def get_tao_plus(tao,parameter)
  275.     for i in 1...$data_armors.size
  276.       armor = $data_armors[i]
  277.       if armor.name == tao
  278.         case parameter
  279.         when 0
  280.           return armor.maxhp_plus
  281.         when 1
  282.           return armor.maxsp_plus
  283.         when 2
  284.           return armor.str_plus
  285.         when 3
  286.           return armor.dex_plus
  287.         when 4
  288.           return armor.agi_plus
  289.         when 5
  290.           return armor.int_plus
  291.         when 6
  292.           return armor.atk_plus
  293.         when 7
  294.           return armor.pdef
  295.         when 8
  296.           return armor.mdef
  297.         when 9
  298.           return armor.eva
  299.         when 10
  300.           return [armor.auto_state_id]
  301.         when 11
  302.           return armor.guard_element_set
  303.         when 12
  304.           return armor.guard_state_set
  305.         end
  306.       end
  307.     end
  308.     for i in 1...$data_weapons.size
  309.       weapon = $data_weapons[i]
  310.       if weapon.name == tao
  311.         case parameter
  312.         when 13
  313.           return weapon.element_set
  314.         when 14
  315.           return weapon.plus_state_set
  316.         when 15
  317.           return weapon.minus_state_set
  318.         end
  319.       end
  320.     end
  321.     if parameter < 10
  322.       return 0
  323.     else
  324.       return []
  325.     end
  326.   end
  327.   def get_tao_skill(tao)
  328.     tao_skill_list = []
  329.     for i in 1...$data_skills.size
  330.       skill = $data_skills[i]
  331.       if skill.tao == tao
  332.         tao_skill_list.push(i)
  333.       end
  334.     end
  335.     return tao_skill_list
  336.   end
  337.   def base_maxhp
  338.     n = $data_actors[@actor_id].parameters[0, @level]
  339.     weapon = $data_weapons[@weapon_id]
  340.     armor1 = $data_armors[@armor1_id]
  341.     armor2 = $data_armors[@armor2_id]
  342.     armor3 = $data_armors[@armor3_id]
  343.     armor4 = $data_armors[@armor4_id]
  344.     n += weapon != nil ? weapon.maxhp_plus : 0
  345.     n += armor1 != nil ? armor1.maxhp_plus : 0
  346.     n += armor2 != nil ? armor2.maxhp_plus : 0
  347.     n += armor3 != nil ? armor3.maxhp_plus : 0
  348.     n += armor4 != nil ? armor4.maxhp_plus : 0
  349.     tao_list = get_tao
  350.     for tao in tao_list
  351.       if tao_whole?(tao)
  352.         n += tao_kind_plus(tao,0)
  353.         #n += get_tao_plus(tao,0)
  354.       end
  355.     end
  356.     return n
  357.   end
  358.   def base_maxsp
  359.     n = $data_actors[@actor_id].parameters[1, @level]
  360.     weapon = $data_weapons[@weapon_id]
  361.     armor1 = $data_armors[@armor1_id]
  362.     armor2 = $data_armors[@armor2_id]
  363.     armor3 = $data_armors[@armor3_id]
  364.     armor4 = $data_armors[@armor4_id]
  365.     n += weapon != nil ? weapon.maxsp_plus : 0
  366.     n += armor1 != nil ? armor1.maxsp_plus : 0
  367.     n += armor2 != nil ? armor2.maxsp_plus : 0
  368.     n += armor3 != nil ? armor3.maxsp_plus : 0
  369.     n += armor4 != nil ? armor4.maxsp_plus : 0
  370.     tao_list = get_tao
  371.     for tao in tao_list
  372.       if tao_whole?(tao)
  373.         n += tao_kind_plus(tao,1)
  374.         #n += get_tao_plus(tao,1)
  375.       end
  376.     end
  377.     return n
  378.   end
  379.   def base_str
  380.     n = $data_actors[@actor_id].parameters[2, @level]
  381.     weapon = $data_weapons[@weapon_id]
  382.     armor1 = $data_armors[@armor1_id]
  383.     armor2 = $data_armors[@armor2_id]
  384.     armor3 = $data_armors[@armor3_id]
  385.     armor4 = $data_armors[@armor4_id]
  386.     n += weapon != nil ? weapon.str_plus : 0
  387.     n += armor1 != nil ? armor1.str_plus : 0
  388.     n += armor2 != nil ? armor2.str_plus : 0
  389.     n += armor3 != nil ? armor3.str_plus : 0
  390.     n += armor4 != nil ? armor4.str_plus : 0
  391.     tao_list = get_tao
  392.     for tao in tao_list
  393.       if tao_whole?(tao)
  394.         n += tao_kind_plus(tao,2)
  395.         #n += get_tao_plus(tao,2)
  396.       end
  397.     end
  398.     return [[n, 1].max, 999].min
  399.   end
  400.   def base_dex
  401.     n = $data_actors[@actor_id].parameters[3, @level]
  402.     weapon = $data_weapons[@weapon_id]
  403.     armor1 = $data_armors[@armor1_id]
  404.     armor2 = $data_armors[@armor2_id]
  405.     armor3 = $data_armors[@armor3_id]
  406.     armor4 = $data_armors[@armor4_id]
  407.     n += weapon != nil ? weapon.dex_plus : 0
  408.     n += armor1 != nil ? armor1.dex_plus : 0
  409.     n += armor2 != nil ? armor2.dex_plus : 0
  410.     n += armor3 != nil ? armor3.dex_plus : 0
  411.     n += armor4 != nil ? armor4.dex_plus : 0
  412.     tao_list = get_tao
  413.     for tao in tao_list
  414.       if tao_whole?(tao)
  415.         n += tao_kind_plus(tao,3)
  416.         #n += get_tao_plus(tao,3)
  417.       end
  418.     end
  419.     return [[n, 1].max, 999].min
  420.   end
  421.   def base_agi
  422.     n = $data_actors[@actor_id].parameters[4, @level]
  423.     weapon = $data_weapons[@weapon_id]
  424.     armor1 = $data_armors[@armor1_id]
  425.     armor2 = $data_armors[@armor2_id]
  426.     armor3 = $data_armors[@armor3_id]
  427.     armor4 = $data_armors[@armor4_id]
  428.     n += weapon != nil ? weapon.agi_plus : 0
  429.     n += armor1 != nil ? armor1.agi_plus : 0
  430.     n += armor2 != nil ? armor2.agi_plus : 0
  431.     n += armor3 != nil ? armor3.agi_plus : 0
  432.     n += armor4 != nil ? armor4.agi_plus : 0
  433.     tao_list = get_tao
  434.     for tao in tao_list
  435.       if tao_whole?(tao)
  436.         n += tao_kind_plus(tao,4)
  437.         #n += get_tao_plus(tao,4)
  438.       end
  439.     end
  440.     return [[n, 1].max, 999].min
  441.   end
  442.   def base_int
  443.     n = $data_actors[@actor_id].parameters[5, @level]
  444.     weapon = $data_weapons[@weapon_id]
  445.     armor1 = $data_armors[@armor1_id]
  446.     armor2 = $data_armors[@armor2_id]
  447.     armor3 = $data_armors[@armor3_id]
  448.     armor4 = $data_armors[@armor4_id]
  449.     n += weapon != nil ? weapon.int_plus : 0
  450.     n += armor1 != nil ? armor1.int_plus : 0
  451.     n += armor2 != nil ? armor2.int_plus : 0
  452.     n += armor3 != nil ? armor3.int_plus : 0
  453.     n += armor4 != nil ? armor4.int_plus : 0
  454.     tao_list = get_tao
  455.     for tao in tao_list
  456.       if tao_whole?(tao)
  457.         n += tao_kind_plus(tao,5)
  458.         #n += get_tao_plus(tao,5)
  459.       end
  460.     end
  461.     return [[n, 1].max, 999].min
  462.   end
  463.   def base_atk
  464.     weapon = $data_weapons[@weapon_id]
  465.     armor1 = $data_armors[@armor1_id]
  466.     armor2 = $data_armors[@armor2_id]
  467.     armor3 = $data_armors[@armor3_id]
  468.     armor4 = $data_armors[@armor4_id]
  469.     n = 0
  470.     n += weapon != nil ? weapon.atk : 0
  471.     n += armor1 != nil ? armor1.atk_plus : 0
  472.     n += armor2 != nil ? armor2.atk_plus : 0
  473.     n += armor3 != nil ? armor3.atk_plus : 0
  474.     n += armor4 != nil ? armor4.atk_plus : 0
  475.     tao_list = get_tao
  476.     for tao in tao_list
  477.       if tao_whole?(tao)
  478.         n += tao_kind_plus(tao,6)
  479.         #n += get_tao_plus(tao,6)
  480.       end
  481.     end
  482.     return n
  483.   end
  484.   def base_pdef
  485.     weapon = $data_weapons[@weapon_id]
  486.     armor1 = $data_armors[@armor1_id]
  487.     armor2 = $data_armors[@armor2_id]
  488.     armor3 = $data_armors[@armor3_id]
  489.     armor4 = $data_armors[@armor4_id]
  490.     pdef1 = weapon != nil ? weapon.pdef : 0
  491.     pdef2 = armor1 != nil ? armor1.pdef : 0
  492.     pdef3 = armor2 != nil ? armor2.pdef : 0
  493.     pdef4 = armor3 != nil ? armor3.pdef : 0
  494.     pdef5 = armor4 != nil ? armor4.pdef : 0
  495.     n = pdef1 + pdef2 + pdef3 + pdef4 + pdef5
  496.     tao_list = get_tao
  497.     for tao in tao_list
  498.       n += tao_whole?(tao) ? tao_kind_plus(tao,7): 0
  499.       #n += tao_whole?(tao) ? get_tao_plus(tao,7): 0
  500.     end
  501.     return n
  502.   end
  503.   def base_mdef
  504.     weapon = $data_weapons[@weapon_id]
  505.     armor1 = $data_armors[@armor1_id]
  506.     armor2 = $data_armors[@armor2_id]
  507.     armor3 = $data_armors[@armor3_id]
  508.     armor4 = $data_armors[@armor4_id]
  509.     mdef1 = weapon != nil ? weapon.mdef : 0
  510.     mdef2 = armor1 != nil ? armor1.mdef : 0
  511.     mdef3 = armor2 != nil ? armor2.mdef : 0
  512.     mdef4 = armor3 != nil ? armor3.mdef : 0
  513.     mdef5 = armor4 != nil ? armor4.mdef : 0
  514.     n = mdef1 + mdef2 + mdef3 + mdef4 + mdef5
  515.     tao_list = get_tao
  516.     for tao in tao_list
  517.       n += tao_whole?(tao) ? tao_kind_plus(tao,8): 0
  518.       #n += tao_whole?(tao) ? get_tao_plus(tao,8): 0
  519.     end
  520.     return  n
  521.   end
  522.   def base_eva
  523.     weapon = $data_weapons[@weapon_id]
  524.     armor1 = $data_armors[@armor1_id]
  525.     armor2 = $data_armors[@armor2_id]
  526.     armor3 = $data_armors[@armor3_id]
  527.     armor4 = $data_armors[@armor4_id]
  528.     eva0 = weapon != nil ? weapon.eva_plus : 0
  529.     eva1 = armor1 != nil ? armor1.eva : 0
  530.     eva2 = armor2 != nil ? armor2.eva : 0
  531.     eva3 = armor3 != nil ? armor3.eva : 0
  532.     eva4 = armor4 != nil ? armor4.eva : 0
  533.     n = eva1 + eva2 + eva3 + eva4 + eva0
  534.     tao_list = get_tao
  535.     for tao in tao_list
  536.       n += tao_whole?(tao) ? tao_kind_plus(tao,9): 0
  537.       #n += tao_whole?(tao) ? get_tao_plus(tao,9): 0
  538.     end
  539.     return  n
  540.   end
  541.   alias tao_element_rate element_rate
  542.   def element_rate(element_id)
  543.     result = tao_element_rate(element_id)
  544.     tao_list = get_tao
  545.     for tao in tao_list
  546.       if tao_whole?(tao)
  547.         tao_element_guard = tao_kind_plus(tao,11)
  548.         result/= 2 if tao_element_guard.include?(element_id)
  549.       end
  550.     end
  551.     return result
  552.   end
  553.   alias tao_state_guard? state_guard?
  554.   def state_guard?(state_id)
  555.     tao_list = get_tao
  556.     result = tao_state_guard?(state_id)
  557.     for tao in tao_list
  558.       if !result and tao_whole?(tao)
  559.         tao_state_guard = tao_kind_plus(tao,12)
  560.         result = true if tao_state_guard.include?(state_id)
  561.       end
  562.     end
  563.     return result
  564.   end
  565.   alias tao_element_set element_set
  566.   def element_set
  567.     tao_list = get_tao
  568.     result = tao_element_set
  569.     for tao in tao_list
  570.       if tao_whole?(tao)
  571.         tao_element = tao_kind_plus(tao,13)
  572.         for i in tao_element
  573.           result.push(i) if !result.include?(i)
  574.         end
  575.       end
  576.     end
  577.     return result
  578.   end
  579.   alias tao_plus_state_set plus_state_set
  580.   def plus_state_set
  581.     tao_list = get_tao
  582.     result = tao_plus_state_set
  583.     for tao in tao_list
  584.       if tao_whole?(tao)
  585.         tao_plus_state = tao_kind_plus(tao,14)
  586.         for i in tao_plus_state
  587.           result.push(i) if !result.include?(i)
  588.         end
  589.       end
  590.     end
  591.     return result
  592.   end
  593.   alias tao_minus_state_set minus_state_set
  594.   def minus_state_set
  595.     tao_list = get_tao
  596.     result = tao_minus_state_set
  597.     for tao in tao_list
  598.       if tao_whole?(tao)
  599.         tao_minus_state = tao_kind_plus(tao,15)
  600.         for i in tao_minus_state
  601.           result.push(i) if !result.include?(i)
  602.         end
  603.       end
  604.     end
  605.     return result
  606.   end
  607.   def tao_kind_plus(tao,parameter)
  608.     weapon = $data_weapons[@weapon_id]
  609.     armor1 = $data_armors[@armor1_id]
  610.     armor2 = $data_armors[@armor2_id]
  611.     armor3 = $data_armors[@armor3_id]
  612.     armor4 = $data_armors[@armor4_id]
  613.     n = get_tao_plus(tao,parameter)
  614.     if weapon != nil and tao == weapon.tao
  615.       n += get_tao_plus(weapon.plus_kind,parameter)
  616.     end
  617.     if armor1 != nil and tao == armor1.tao
  618.       n += get_tao_plus(armor1.plus_kind,parameter)
  619.     end
  620.     if armor2 != nil and tao == armor2.tao
  621.       n += get_tao_plus(armor2.plus_kind,parameter)
  622.     end
  623.     if armor3 != nil and tao == armor3.tao
  624.       n += get_tao_plus(armor3.plus_kind,parameter)
  625.     end
  626.     if armor4 != nil and tao == armor4.tao
  627.       n += get_tao_plus(armor4.plus_kind,parameter)
  628.     end
  629.     return n
  630.   end
  631.   alias tao_equip equip
  632.   def equip(equip_type, id)
  633.     tao_equip(equip_type, id)
  634.     tao_list = get_tao
  635.     for tao in tao_list
  636.       tao_skill_list = get_tao_skill(tao)
  637.       for i in tao_skill_list
  638.         learn_skill(i) if tao_whole?(tao)
  639.         forget_skill(i) if skill_learn?(i) and !tao_whole?(tao)
  640.         if $data_weapons[@weapon_id] != nil and
  641.           $data_weapons[@armor1_id] != nil and
  642.           $data_weapons[@armor2_id] != nil and
  643.           $data_weapons[@armor3_id] != nil and
  644.           $data_weapons[@armor4_id] != nil
  645.           if $data_skills[i].plus_kind != $data_weapons[@weapon_id].plus_kind and
  646.             $data_skills[i].plus_kind != $data_weapons[@armor1_id].plus_kind and
  647.             $data_skills[i].plus_kind != $data_weapons[@armor2_id].plus_kind and
  648.             $data_skills[i].plus_kind != $data_weapons[@armor3_id].plus_kind and
  649.             $data_skills[i].plus_kind != $data_weapons[@armor4_id].plus_kind and
  650.             $data_skills[i].plus_kind != nil
  651.             forget_skill(i)
  652.           end
  653.         end
  654.       end
  655.       state_id = get_tao_plus(tao,10)
  656.       for id in state_id
  657.         add_state(id, true) if tao_whole?(tao)
  658.         remove_state(id, true) if state?(id) and !tao_whole?(tao)
  659.       end
  660.     end
  661.   end
  662.   alias tao_setup setup
  663.   def setup(actor_id)
  664.     tao_setup(actor_id)
  665.     tao_list = get_tao
  666.     for tao in tao_list
  667.       tao_skill_list = get_tao_skill(tao)
  668.       for i in tao_skill_list
  669.         if tao_whole?(tao) and
  670.           ($data_skills[i].plus_kind == $data_weapons[@weapon_id].plus_kind or
  671.           $data_skills[i].plus_kind == $data_weapons[@armor1_id].plus_kind or
  672.           $data_skills[i].plus_kind == $data_weapons[@armor2_id].plus_kind or
  673.           $data_skills[i].plus_kind == $data_weapons[@armor3_id].plus_kind or
  674.           $data_skills[i].plus_kind == $data_weapons[@armor4_id].plus_kind)
  675.           learn_skill(i)
  676.         end
  677.       end
  678.       state_id = get_tao_plus(tao,10)
  679.       for id in state_id
  680.         add_state(id, true) if tao_whole?(tao)
  681.       end
  682.     end
  683.   end
  684. end
复制代码

范例工程:
http://rpg.blue/upload_program/f ... �v1.04_85864596.rar
套装成分的设置
武器设置:一个套装可以有N多武器

防具设置:一个套装可以有N多防具

套装附加属性的设置
描述用防具:可以全填满

描述用武器:只填这两项(其实是三项)和名称(还是为套装名)

套装特技的设置
还是只要设置名称就行,人性化吧{/cy}

作者: shangdihk    时间: 2008-2-18 17:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-2-18 19:30
貌似真的再次被54{/dk}
作者: 沉影不器    时间: 2008-2-18 19:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-2-18 21:43
其实新版本已经做出来了,我明天再发,如果明天回帖数还没超过一页,干脆不发了{/fn}
orz
作者: 沉影不器    时间: 2008-2-19 00:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-2-19 03:04
之所以保留v1.00,是因为随着脚本功能的增加,貌似冲突也越来越多,整合也变得越来越难,建议新手还是使用v1.00,稍后我会发布v1.00的修正版本。
更新信息
1.增加套装特技
2.支持每套套装中可以有N多武器N多同类防具
3.完善套装附加属性

  1. #-------------------------------------------------------------------------------
  2. #冰冰套装系统 version 1.02 By 凌冰
  3. #(附带加MAXHP、加MAXSP装备、加回避的武器和加攻击的防具功能)
  4. #(更新信息v1.01:1、增加套装特技。2、增加双防具套装。3、增加套装属性设置)
  5. #(更新信息v1.02:1、支持双套装)
  6. #================================套装的设置================================
  7. #如范例数据库
  8. #只要全部在武器、防具前面加上套装名"凌冰"和"之"
  9. #设置☆套装特技☆
  10. #在特技名称前加套装名"凌冰"和"之",支持多个技能
  11. #接着设置套装附加属性
  12. #在防具里新建防具,无所谓是盾还是头盔什么的,只要名字是套装名"凌冰"
  13. #设置附加属性
  14. #直接在物防、魔防、回避、力量、敏捷、速度、魔力、自动状态、状态防御、属性防御里
  15. #设置相应的附加值。至于攻击、MAXHP、MAXSP的附加值,则需要用到附加功能
  16. #在说明里添加精+数值、灵+数值、攻+数值(要有+号)设置相应附加值
  17. #在武器里新建武器,名字是套装名"凌冰"
  18. #这个只用于描述物理攻击属性、物理攻击附加状态、物理攻击清楚状态(感觉有些浪费)
  19. #,只要设置相应值就行了
  20. #(如果不需要可以不新建这个武器,orz不需要的话不新建那个防具都可以)
  21. #具体设置参考范例
  22. #当然设置的这个防具在游戏中也是可用的,但是不算在套装里
  23. #然后说明一下☆附加功能☆
  24. #同上文关于套装附加属性的设置
  25. #武器在说明里添加精+数值、灵+数值、避+数值(要有+号)设置相应值
  26. #防具在说明里添加精+数值、灵+数值、攻+数值(要有+号)设置相应值
  27. #☆双武器双防具套装功能说明☆
  28. #凌冰套装包含:凌冰之铜剑、凌冰之铜盾、凌冰之铜盔、凌冰之铜铠
  29. #或:          凌冰之铜枪、凌冰之铜盾、凌冰之铜盔、凌冰之铜铠
  30. #上面是version 1.00的范例的设置,你现在可以打开范例工程看,除了密斯利尔和塞因特
  31. #(对比用)全被我改成了凌冰套装,也就是说实现了vesion 1.00不能实现的双防具套装
  32. #功能,其实是N防具N武器套装,只要穿上凌冰套装中任意5件(你也只能穿5件),就能附
  33. #加套装属性。这样,同时也暴露了本脚本的另一个缺陷,见下文第二。当然并没有限制套
  34. #装一定包含5类装备。例如:某套装:武器、头盔1、头盔2、身体、盾。只要装备其中四
  35. #项就行
  36. #☆双套装功能说明☆New!
  37. #如工程中的范例,除凌冰套装外,还有夏桀凌和魔敬轩套装,夏桀凌套装只包括头和身体
  38. #两类,而魔敬轩套装只包括盾和装饰两类。夏桀凌套装的套装属性是精+100,魔敬轩套装
  39. #套装属性是灵+100,同时装备着两个套装后,可以同时附加maxhp+100和maxsp+100。如果
  40. #可以整合装备扩展的话,可以实现三套装、四套装甚至更多(orz)(其实,现在就可以
  41. #实现五套装,但显然没什么太大意义)
  42. #================================脚本的缺陷================================
  43. #我不说你们早晚也会发现的,所以还不如事先承认了
  44. #第一、不能设置套装不全的部分附加,暗黑破坏神里,如果套装不全,而装备的套装数量
  45. #      大于一,就会实现套装属性的部分附加。但是本脚本暂时不具备此功能,也就是说
  46. #      想附加套装属性缺一不可。
  47. #解释:不是我做不到,只是实现这个功能会增加使用这个脚本的人的工作量,而且增加的
  48. #      不是一般的多。
  49. #第二、不能根据套装成分不同变化附加属性。例如上文的凌冰套装,同时装备其他装备,
  50. #      再装备凌冰之铜剑和凌冰之铜枪效果是一样的(在有的游戏中这种情况效果是不一
  51. #      样的)。
  52. #解释:同第一,如果和第一个功能都实现,那……
  53. #其他缺陷和BUG望大家及时反馈给我,发站内短信给我就行
  54. #-------------------------------------------------------------------------------
  55. module RPG
  56.   class Weapon
  57.     def tao
  58.       return nil if @name.split(/之/)[1] == nil
  59.       return @name.split(/之/)[0]
  60.     end
  61.     def maxhp_plus
  62.       return 0 if @description.split(/精+/)[1] == nil
  63.       return @description.split(/精+/)[1].to_i
  64.     end
  65.     def maxsp_plus
  66.       return 0 if @description.split(/灵+/)[1] == nil
  67.       return @description.split(/灵+/)[1].to_i
  68.     end
  69.     def eva_plus
  70.       return 0 if @description.split(/避+/)[1] == nil
  71.       return @description.split(/避+/)[1].to_i
  72.     end
  73.   end
  74.   class Armor
  75.     def tao
  76.       return nil if @name.split(/之/)[1] == nil
  77.       return @name.split(/之/)[0]
  78.     end
  79.     def maxhp_plus
  80.       return 0 if @description.split(/精+/)[1] == nil
  81.       return @description.split(/精+/)[1].to_i
  82.     end
  83.     def maxsp_plus
  84.       return 0 if @description.split(/灵+/)[1] == nil
  85.       return @description.split(/灵+/)[1].to_i
  86.     end
  87.     def atk_plus
  88.       return 0 if @description.split(/攻+/)[1] == nil
  89.       return @description.split(/攻+/)[1].to_i
  90.     end
  91.   end
  92.   class Skill
  93.     def tao
  94.       return nil if @name.split(/之/)[1] == nil
  95.       return @name.split(/之/)[0]
  96.     end
  97.   end
  98. end
  99. class Game_Actor < Game_Battler
  100.   def get_tao_num(tao)
  101.     tao_num = 0
  102.     @tao = tao
  103.     armors = []
  104.     for i in 0...4
  105.       armors[i] = []
  106.     end
  107.     for i in 1...$data_armors.size
  108.       case $data_armors[i].kind
  109.       when 0
  110.         armors[0].push(i)
  111.       when 1
  112.         armors[1].push(i)
  113.       when 2
  114.         armors[2].push(i)
  115.       when 3
  116.         armors[3].push(i)
  117.       end
  118.     end
  119.     for i in 0...4
  120.       for id in armors[i]
  121.         armor = $data_armors[id]
  122.         if @tao == armor.tao
  123.           tao_num += 1
  124.           break
  125.         end
  126.       end
  127.     end
  128.     for i in 1...$data_weapons.size
  129.       weapon = $data_weapons[i]
  130.       if weapon.tao == @tao
  131.         tao_num += 1
  132.         break
  133.       end
  134.     end
  135.     return tao_num
  136.   end
  137.   def get_tao
  138.     tao = []
  139.     weapon = $data_weapons[@weapon_id]
  140.     tao.push(weapon.tao) if weapon != nil and weapon.tao != nil
  141.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  142.       armor = $data_armors[i]
  143.       unless armor == nil or tao.include?(armor.tao)
  144.         tao.push(armor.tao) if armor.tao != nil
  145.       end
  146.     end
  147.     return tao
  148.   end
  149.   def tao_whole?(tao)
  150.     @now_tao_num = 0
  151.     @tao_num = get_tao_num(tao)
  152.     weapon = $data_weapons[@weapon_id]
  153.     if weapon != nil and weapon.tao != nil and weapon.tao == tao
  154.       @now_tao_num += 1
  155.     end
  156.     for i in [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
  157.       armor = $data_armors[i]
  158.       unless armor == nil
  159.       if armor != nil and armor.tao != nil and armor.tao == tao
  160.         @now_tao_num += 1
  161.       end
  162.       end
  163.     end
  164.     if @now_tao_num == @tao_num
  165.       return true
  166.     end
  167.     return false
  168.   end
  169.   def get_tao_plus(tao,parameter)
  170.     for i in 1...$data_armors.size
  171.       armor = $data_armors[i]
  172.       if armor.name == tao
  173.         case parameter
  174.         when 0
  175.           return armor.maxhp_plus
  176.         when 1
  177.           return armor.maxsp_plus
  178.         when 2
  179.           return armor.str_plus
  180.         when 3
  181.           return armor.dex_plus
  182.         when 4
  183.           return armor.agi_plus
  184.         when 5
  185.           return armor.int_plus
  186.         when 6
  187.           return armor.atk_plus
  188.         when 7
  189.           return armor.pdef
  190.         when 8
  191.           return armor.mdef
  192.         when 9
  193.           return armor.eva
  194.         when 10
  195.           return armor.auto_state_id
  196.         when 11
  197.           return armor.guard_element_set
  198.         when 12
  199.           return armor.guard_state_set
  200.         end
  201.       end
  202.     end
  203.     for i in 1...$data_weapons.size
  204.       weapon = $data_weapons[i]
  205.       if weapon.name == tao
  206.         case parameter
  207.         when 13
  208.           return weapon.element_set
  209.         when 14
  210.           return weapon.plus_state_set
  211.         when 15
  212.           return weapon.minus_state_set
  213.         end
  214.       end
  215.     end
  216.     if parameter <= 0
  217.       return 0
  218.     else
  219.       return []
  220.     end
  221.   end
  222.   def get_tao_skill(tao)
  223.     tao_skill_list = []
  224.     for i in 1...$data_skills.size
  225.       skill = $data_skills[i]
  226.       if skill.tao == tao
  227.         tao_skill_list.push(i)
  228.       end
  229.     end
  230.     return tao_skill_list
  231.   end
  232.   def base_maxhp
  233.     n = $data_actors[@actor_id].parameters[0, @level]
  234.     weapon = $data_weapons[@weapon_id]
  235.     armor1 = $data_armors[@armor1_id]
  236.     armor2 = $data_armors[@armor2_id]
  237.     armor3 = $data_armors[@armor3_id]
  238.     armor4 = $data_armors[@armor4_id]
  239.     n += weapon != nil ? weapon.maxhp_plus : 0
  240.     n += armor1 != nil ? armor1.maxhp_plus : 0
  241.     n += armor2 != nil ? armor2.maxhp_plus : 0
  242.     n += armor3 != nil ? armor3.maxhp_plus : 0
  243.     n += armor4 != nil ? armor4.maxhp_plus : 0
  244.     tao_list = get_tao
  245.     for tao in tao_list
  246.       if tao_whole?(tao)
  247.         n += get_tao_plus(tao,0)
  248.       end
  249.     end
  250.     return n
  251.   end
  252.   def base_maxsp
  253.     n = $data_actors[@actor_id].parameters[1, @level]
  254.     weapon = $data_weapons[@weapon_id]
  255.     armor1 = $data_armors[@armor1_id]
  256.     armor2 = $data_armors[@armor2_id]
  257.     armor3 = $data_armors[@armor3_id]
  258.     armor4 = $data_armors[@armor4_id]
  259.     n += weapon != nil ? weapon.maxsp_plus : 0
  260.     n += armor1 != nil ? armor1.maxsp_plus : 0
  261.     n += armor2 != nil ? armor2.maxsp_plus : 0
  262.     n += armor3 != nil ? armor3.maxsp_plus : 0
  263.     n += armor4 != nil ? armor4.maxsp_plus : 0
  264.     tao_list = get_tao
  265.     for tao in tao_list
  266.       if tao_whole?(tao)
  267.         n += get_tao_plus(tao,1)
  268.       end
  269.     end
  270.     return n
  271.   end
  272.   def base_str
  273.     n = $data_actors[@actor_id].parameters[2, @level]
  274.     weapon = $data_weapons[@weapon_id]
  275.     armor1 = $data_armors[@armor1_id]
  276.     armor2 = $data_armors[@armor2_id]
  277.     armor3 = $data_armors[@armor3_id]
  278.     armor4 = $data_armors[@armor4_id]
  279.     n += weapon != nil ? weapon.str_plus : 0
  280.     n += armor1 != nil ? armor1.str_plus : 0
  281.     n += armor2 != nil ? armor2.str_plus : 0
  282.     n += armor3 != nil ? armor3.str_plus : 0
  283.     n += armor4 != nil ? armor4.str_plus : 0
  284.     tao_list = get_tao
  285.     for tao in tao_list
  286.       if tao_whole?(tao)
  287.         n += get_tao_plus(tao,2)
  288.       end
  289.     end
  290.     return [[n, 1].max, 999].min
  291.   end
  292.   def base_dex
  293.     n = $data_actors[@actor_id].parameters[3, @level]
  294.     weapon = $data_weapons[@weapon_id]
  295.     armor1 = $data_armors[@armor1_id]
  296.     armor2 = $data_armors[@armor2_id]
  297.     armor3 = $data_armors[@armor3_id]
  298.     armor4 = $data_armors[@armor4_id]
  299.     n += weapon != nil ? weapon.dex_plus : 0
  300.     n += armor1 != nil ? armor1.dex_plus : 0
  301.     n += armor2 != nil ? armor2.dex_plus : 0
  302.     n += armor3 != nil ? armor3.dex_plus : 0
  303.     n += armor4 != nil ? armor4.dex_plus : 0
  304.     tao_list = get_tao
  305.     for tao in tao_list
  306.       if tao_whole?(tao)
  307.         n += get_tao_plus(tao,3)
  308.       end
  309.     end
  310.     return [[n, 1].max, 999].min
  311.   end
  312.   def base_agi
  313.     n = $data_actors[@actor_id].parameters[4, @level]
  314.     weapon = $data_weapons[@weapon_id]
  315.     armor1 = $data_armors[@armor1_id]
  316.     armor2 = $data_armors[@armor2_id]
  317.     armor3 = $data_armors[@armor3_id]
  318.     armor4 = $data_armors[@armor4_id]
  319.     n += weapon != nil ? weapon.agi_plus : 0
  320.     n += armor1 != nil ? armor1.agi_plus : 0
  321.     n += armor2 != nil ? armor2.agi_plus : 0
  322.     n += armor3 != nil ? armor3.agi_plus : 0
  323.     n += armor4 != nil ? armor4.agi_plus : 0
  324.     tao_list = get_tao
  325.     for tao in tao_list
  326.       if tao_whole?(tao)
  327.         n += get_tao_plus(tao,4)
  328.       end
  329.     end
  330.     return [[n, 1].max, 999].min
  331.   end
  332.   def base_int
  333.     n = $data_actors[@actor_id].parameters[5, @level]
  334.     weapon = $data_weapons[@weapon_id]
  335.     armor1 = $data_armors[@armor1_id]
  336.     armor2 = $data_armors[@armor2_id]
  337.     armor3 = $data_armors[@armor3_id]
  338.     armor4 = $data_armors[@armor4_id]
  339.     n += weapon != nil ? weapon.int_plus : 0
  340.     n += armor1 != nil ? armor1.int_plus : 0
  341.     n += armor2 != nil ? armor2.int_plus : 0
  342.     n += armor3 != nil ? armor3.int_plus : 0
  343.     n += armor4 != nil ? armor4.int_plus : 0
  344.     tao_list = get_tao
  345.     for tao in tao_list
  346.       if tao_whole?(tao)
  347.         n += get_tao_plus(tao,5)
  348.       end
  349.     end
  350.     return [[n, 1].max, 999].min
  351.   end
  352.   def base_atk
  353.     weapon = $data_weapons[@weapon_id]
  354.     armor1 = $data_armors[@armor1_id]
  355.     armor2 = $data_armors[@armor2_id]
  356.     armor3 = $data_armors[@armor3_id]
  357.     armor4 = $data_armors[@armor4_id]
  358.     n = 0
  359.     n += weapon != nil ? weapon.atk : 0
  360.     n += armor1 != nil ? armor1.atk_plus : 0
  361.     n += armor2 != nil ? armor2.atk_plus : 0
  362.     n += armor3 != nil ? armor3.atk_plus : 0
  363.     n += armor4 != nil ? armor4.atk_plus : 0
  364.     tao_list = get_tao
  365.     for tao in tao_list
  366.       if tao_whole?(tao)
  367.         n += get_tao_plus(tao,6)
  368.       end
  369.     end
  370.     return n
  371.   end
  372.   def base_pdef
  373.     weapon = $data_weapons[@weapon_id]
  374.     armor1 = $data_armors[@armor1_id]
  375.     armor2 = $data_armors[@armor2_id]
  376.     armor3 = $data_armors[@armor3_id]
  377.     armor4 = $data_armors[@armor4_id]
  378.     pdef1 = weapon != nil ? weapon.pdef : 0
  379.     pdef2 = armor1 != nil ? armor1.pdef : 0
  380.     pdef3 = armor2 != nil ? armor2.pdef : 0
  381.     pdef4 = armor3 != nil ? armor3.pdef : 0
  382.     pdef5 = armor4 != nil ? armor4.pdef : 0
  383.     n = pdef1 + pdef2 + pdef3 + pdef4 + pdef5
  384.     tao_list = get_tao
  385.     for tao in tao_list
  386.       n += tao_whole?(tao) ? get_tao_plus(tao,7): 0
  387.     end
  388.     return n
  389.   end
  390.   def base_mdef
  391.     weapon = $data_weapons[@weapon_id]
  392.     armor1 = $data_armors[@armor1_id]
  393.     armor2 = $data_armors[@armor2_id]
  394.     armor3 = $data_armors[@armor3_id]
  395.     armor4 = $data_armors[@armor4_id]
  396.     mdef1 = weapon != nil ? weapon.mdef : 0
  397.     mdef2 = armor1 != nil ? armor1.mdef : 0
  398.     mdef3 = armor2 != nil ? armor2.mdef : 0
  399.     mdef4 = armor3 != nil ? armor3.mdef : 0
  400.     mdef5 = armor4 != nil ? armor4.mdef : 0
  401.     n = mdef1 + mdef2 + mdef3 + mdef4 + mdef5
  402.     tao_list = get_tao
  403.     for tao in tao_list
  404.       n += tao_whole?(tao) ? get_tao_plus(tao,8): 0
  405.     end
  406.     return  n
  407.   end
  408.   def base_eva
  409.     weapon = $data_weapons[@weapon_id]
  410.     armor1 = $data_armors[@armor1_id]
  411.     armor2 = $data_armors[@armor2_id]
  412.     armor3 = $data_armors[@armor3_id]
  413.     armor4 = $data_armors[@armor4_id]
  414.     eva0 = weapon != nil ? weapon.eva_plus : 0
  415.     eva1 = armor1 != nil ? armor1.eva : 0
  416.     eva2 = armor2 != nil ? armor2.eva : 0
  417.     eva3 = armor3 != nil ? armor3.eva : 0
  418.     eva4 = armor4 != nil ? armor4.eva : 0
  419.     n = eva1 + eva2 + eva3 + eva4 + eva0
  420.     tao_list = get_tao
  421.     for tao in tao_list
  422.       eva_t = tao_whole?(tao) ? get_tao_plus(tao,9): 0
  423.     end
  424.     return  n
  425.   end
  426.   alias tao_equip equip
  427.   def equip(equip_type, id)
  428.     tao_equip(equip_type, id)
  429.     tao_list = get_tao
  430.     for tao in tao_list
  431.       tao_skill_list = get_tao_skill(tao)
  432.       for i in tao_skill_list
  433.         learn_skill(i) if tao_whole?(tao)
  434.         forget_skill(i) if skill_learn?(i) and !tao_whole?(tao)
  435.       end
  436.       state_id = get_tao_plus(tao,10)
  437.       add_state(state_id, true) if tao_whole?(tao)
  438.       remove_state(state_id, true) if state?(state_id) and !tao_whole?(tao)
  439.     end
  440.   end
  441.   alias tao_setup setup
  442.   def setup(actor_id)
  443.     tao_setup(actor_id)
  444.     tao_list = get_tao
  445.     for tao in tao_list
  446.       tao_skill_list = get_tao_skill(tao)
  447.       for i in tao_skill_list
  448.         learn_skill(i) if tao_whole?(tao)
  449.       end
  450.       state_id = get_tao_plus(tao,10)
  451.       add_state(state_id, true) if tao_whole?(tao)
  452.     end
  453.   end
  454.   alias tao_element_rate element_rate
  455.   def element_rate(element_id)
  456.     result = tao_element_rate(element_id)
  457.     tao_list = get_tao
  458.     for tao in tao_list
  459.       if tao_whole?(tao)
  460.         tao_element_guard = get_tao_plus(tao,11)
  461.         result/= 2 if tao_element_guard.include?(element_id)
  462.       end
  463.     end
  464.     return result
  465.   end
  466.   alias tao_state_guard? state_guard?
  467.   def state_guard?(state_id)
  468.     tao_list = get_tao
  469.     result = tao_state_guard?(state_id)
  470.     for tao in tao_list
  471.       if !result and tao_whole?(tao)
  472.         tao_state_guard = get_tao_plus(tao,12)
  473.         result = true if tao_state_guard.include?(state_id)
  474.       end
  475.     end
  476.     return result
  477.   end
  478.   alias tao_element_set element_set
  479.   def element_set
  480.     tao_list = get_tao
  481.     result = tao_element_set
  482.     for tao in tao_list
  483.       if tao_whole?(tao)
  484.         tao_element = get_tao_plus(tao,13)
  485.         for i in tao_element
  486.           result.push(i) if !result.include?(i)
  487.         end
  488.       end
  489.     end
  490.     return result
  491.   end
  492.   alias tao_plus_state_set plus_state_set
  493.   def plus_state_set
  494.     tao_list = get_tao
  495.     result = tao_plus_state_set
  496.     for tao in tao_list
  497.       if tao_whole?(tao)
  498.         tao_plus_state = get_tao_plus(tao,14)
  499.         for i in tao_plus_state
  500.           result.push(i) if !result.include?(i)
  501.         end
  502.       end
  503.     end
  504.     return result
  505.   end
  506.   alias tao_minus_state_set minus_state_set
  507.   def minus_state_set
  508.     tao_list = get_tao
  509.     result = tao_minus_state_set
  510.     for tao in tao_list
  511.       if tao_whole?(tao)
  512.         tao_minus_state = get_tao_plus(tao,15)
  513.         for i in tao_minus_state
  514.           result.push(i) if !result.include?(i)
  515.         end
  516.       end
  517.     end
  518.     return result
  519.   end
  520. end
复制代码

范例工程:
http://rpg.blue/upload_program/f ... �v1.02_83829929.rar
套装成分的设置
武器设置:一个套装可以有N多武器

防具设置:一个套装可以有N多防具

套装附加属性的设置
描述用防具:可以全填满

描述用武器:只填这两项(其实是三项)和名称(还是为套装名)

套装特技的设置
还是只要设置名称就行,人性化吧{/cy}

作者: 水迭澜    时间: 2008-2-19 03:49
个人觉得这个名字定义的东西不是很个性化.....还是改成用其他东西设置吧-v-,比如说名字后面跟数字之类~
除此之外都不错啊...不发布可能是因为还要等一下或者与已有的脚本重复了= =
我发布的第一个脚本MS等了一个多月orz...
作者: 凌冰    时间: 2008-2-19 03:53
以下引用水迭澜于2008-2-18 19:49:12的发言:

个人觉得这个名字定义的东西不是很个性化.....还是改成用其他东西设置吧-v-
除此之外都不错啊...不发布可能是因为还要等一下或者与已有的脚本重复了= =
我发布的第一个脚本MS等了一个多月orz...

个性化?
实在想不到怎么才能个性化,MS套装设置起来这是比较简单的一种方式,我是从这方面考虑的。另外如果用属性判定,MS更不个性化了
作者: 水迭澜    时间: 2008-2-19 04:35
其实还是用属性判定之类的比较好
我的意思是,有的人不喜欢用XX之XX之类的名字...这样不大方便他们使用=v=
加油~
作者: 凌冰    时间: 2008-2-19 04:39
以下引用水迭澜于2008-2-18 20:35:43的发言:

其实还是用属性判定之类的比较好
我的意思是,有的人不喜欢用XX之XX之类的名字...这样不大方便他们使用=v=
加油~

不要告诉我是水水姐姐是你自己不喜欢用XX之XX之类的名字材这样说的
作者: 凌冰    时间: 2008-2-19 14:07
更新至 version1.00修正 和 version1.02
作者: 禾西    时间: 2008-2-19 15:41
怎麼說呢……實際上感覺作用不大==(無Pia我)。
套裝的作用的應該是特殊效果吧?如果單單是屬性增加的實際用途不大(製作魔石系統時候悟出的道理。)套裝系統真正要做到的應該是裝備套裝後附加「一個自動狀態」或者「多個自動狀態」。否則的話,這個系統的意義真的不大。
再說,如果使用名字來判斷真是一個笨方法(抱頭,别打我--)。
先不說設定方便上的困難(打這麼多字,就算複製粘貼都很累的。),同樣使得製作「隱藏」套裝的可能性爲「零」。
以上就是我的小小意見。
作者: 凌冰    时间: 2008-2-19 15:51
以下引用禾西于2008-2-19 7:41:13的发言:

怎麼說呢……實際上感覺作用不大==(無Pia我)。
套裝的作用的應該是特殊效果吧?如果單單是屬性增加的實際用途不大(製作魔石系統時候悟出的道理。)套裝系統真正要做到的應該是裝備套裝後附加「一個自動狀態」或者「多個自動狀態」。否則的話,這個系統的意義真的不大。
再說,如果使用名字來判斷真是一個笨方法(抱頭,别打我--)。
先不說設定方便上的困難(打這麼多字,就算複製粘貼都很累的。),同樣使得製作「隱藏」套裝的可能性爲「零」。
以上就是我的小小意見。

附加一个自动状态在version1.02是可以实现的,当然还有套装特技。另外一些游戏里的套装就是增加属性的orz,MS发布到主站那个就是增加属性的。
使用名字判断我的本意是为该脚本的使用者考虑。MS就算用其他方法,也不会很省事。例如用element,如果不追加脚本,你还是要在名称里设定,好让玩家知道这是套装。更何况,用鼠标点一下,和用鼠标点一下再按一下ctrl+v又有多大区别呢?至于隐藏套装的功能,我确实没有考虑,可以考虑增加进去。
最后再pia你一下
不是我不虚心接受建议,只是思维方式确实不同(MS我最擅长用的还是element)
作者: 禾西    时间: 2008-2-19 16:38
病得迷迷糊糊一時沒有留意……==
不好意思。
作者: 凌冰    时间: 2008-2-19 16:43
以下引用禾西于2008-2-19 8:38:28的发言:

病得迷迷糊糊一時沒有留意……==
不好意思。

orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz orz
病了还坚持上6r{/qiang}
作者: shanely    时间: 2008-2-20 04:55
过来支持下冰冰~我不懂脚本,不过冰冰的精神可嘉!相信他做出来的东西也很棒!

支持个!{/cy}
作者: sunzhaozhi    时间: 2008-2-22 06:19
师傅的,一定要顶的.
作者: 凌冰    时间: 2008-3-13 00:49
更新至V1.03,增加隐藏套装功能
作者: 凌冰    时间: 2008-3-14 03:28
更新至V1.04,增加套装多种附加属性功能
作者: 火鸡三毛老大    时间: 2008-3-14 04:18
不错 ...拿走...
作者: 凌冰    时间: 2008-3-15 00:13
为什么灰掉我的帖子
作者: 殤。    时间: 2008-3-15 04:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 水迭澜    时间: 2008-3-15 05:54
同问……
作者: 凌冰    时间: 2008-7-2 05:21
斑竹是不是考虑一下给这篇帖子一个名份,总蓝着看着碍眼。话说我也不想直接结帖。就算感谢共享,心里也舒服点
作者: hide秀    时间: 2008-7-2 17:13
呵呵~不错 类似于暗黑的套装 附加效果等~
8过脚本可以更加精炼一些 比如把一些算法写在模块里
然后在相关类里面调用模块或者include 可以减少很多行~{/cy}
作者: 幻耶    时间: 2008-7-2 17:54
强烈要求和装备扩展整合啊!!!!!!!!!!!!
作者: 凌冰    时间: 2008-7-2 20:07
以下引用hide秀于2008-7-2 9:13:09的发言:

呵呵~不错 类似于暗黑的套装 附加效果等~
8过脚本可以更加精炼一些 比如把一些算法写在模块里
然后在相关类里面调用模块或者include 可以减少很多行~

那时用Module还不熟练


以下引用幻耶于2008-7-2 9:54:32的发言:

强烈要求和装备扩展整合啊!!!!!!!!!!!!


这个。。。。等暑假吧!最近考试太紧了。。。
作者: HзO    时间: 2008-7-2 20:52
和二刀流会有冲突么?
作者: 凌冰    时间: 2008-7-2 21:03
以下引用HзO于2008-7-2 12:52:11的发言:

和二刀流会有冲突么?

如果不出意外的话。。。。有
作者: 灯笼菜刀王    时间: 2008-7-2 22:59
很不错的东东~~~

不过,缺点也不少,首先就是冲突了...毕竟套装算可有可无的东东,总不能满箱子都是套装。
如果和某些系统冲突(装备整理,换颜色,二刀流,魔石镶嵌,AP制等) 后者都是核心系统,当然人家会选择放弃套装.....

RPG游戏,重视剧情的有之,重视人物的有之,重视怪物的也有之,但是,似乎没有重视装备的。所以,不受重视也是必然的。

ARPG类的游戏会好些吧,或者不可思议迷宫类,但是这两类制作都需要改变战斗核心。战斗模式,操作模式,人物动作,怪物AI,怪物动作,技能使用,技能效果,技能表现,道具使用,最后才考虑装备.....一般坚持到最后的少之又少吧...所以....

作者的精神支持一下~~~~ 给个建议,把装备更改颜色的系统整合进去吧,毕竟,套装要用不同的颜色表示才拉风。
作者: HзO    时间: 2008-7-3 00:15
希望穿齐了套装之后能自动附加状态{/ll}
作者: 凌冰    时间: 2008-7-3 18:16
以下引用HзO于2008-7-2 16:15:40的发言:

希望穿齐了套装之后能自动附加状态


[本贴由作者于 2008-7-2 16:17:59 最后编辑]

有这个功能
以下引用灯笼菜刀王于2008-7-2 14:59:56的发言:

很不错的东东~~~

不过,缺点也不少,首先就是冲突了...毕竟套装算可有可无的东东,总不能满箱子都是套装。
如果和某些系统冲突(装备整理,换颜色,二刀流,魔石镶嵌,AP制等) 后者都是核心系统,当然人家会选择放弃套装.....

RPG游戏,重视剧情的有之,重视人物的有之,重视怪物的也有之,但是,似乎没有重视装备的。所以,不受重视也是必然的。

ARPG类的游戏会好些吧,或者不可思议迷宫类,但是这两类制作都需要改变战斗核心。战斗模式,操作模式,人物动作,怪物AI,怪物动作,技能使用,技能效果,技能表现,道具使用,最后才考虑装备.....一般坚持到最后的少之又少吧...所以....

作者的精神支持一下~~~~ 给个建议,把装备更改颜色的系统整合进去吧,毕竟,套装要用不同的颜色表示才拉风。

谢谢建议。。。。。
作者: HзO    时间: 2008-7-3 18:27
好像1.00版不能添加自动状态,1.02可以了..

一件套装如果既有描述用武器又有描述用防具的话,那么添加的属性是不是两样叠加起来的?
作者: 幻耶    时间: 2008-7-4 00:20
我定义了一套新的套装名称,装备齐了怎么没有附加属性啊?自己新添加一套装备还要做哪些?
作者: 凌冰    时间: 2008-7-4 03:19
以下引用幻耶于2008-7-3 16:20:52的发言:

我定义了一套新的套装名称,装备齐了怎么没有附加属性啊?自己新添加一套装备还要做哪些?

描述用防具和描述用武器
具体看脚本开头的说明
以下引用HзO于2008-7-3 10:27:09的发言:

好像1.00版不能添加自动状态,1.02可以了..

一件套装如果既有描述用武器又有描述用防具的话,那么添加的属性是不是两样叠加起来的?


[本贴由作者于 2008-7-3 15:06:40 最后编辑]

脚本开头说明里的原话- -
#在武器里新建武器,名字是套装名"凌冰"
#这个只用于描述物理攻击属性、物理攻击附加状态、物理攻击清楚状态(感觉有些浪费)#具体设置参考范例
#当然设置的这个防具在游戏中也是可用的,但是不算在套装里

作者: 幻耶    时间: 2008-7-4 17:23
那个1.04版本中,角色的前三项:武器、盾、头部装备的前缀“凌冰之”怎么都没有了?



作者: HзO    时间: 2008-7-4 22:23
如果用了这个脚本,进入装备窗口替换武器或防具就会变得很卡,尤其是选择装备移动光标的时候延迟特别厉害。缺省的情况下就是如此,如果游戏稍微复杂一些就变得其慢无比,有什么办法优化速度么?
作者: 怪乖小韩呀    时间: 2008-7-4 22:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: HзO    时间: 2008-7-8 18:38
速度问题希望能解决吧...
作者: 凌冰    时间: 2008-7-9 01:08
以下引用HзO于2008-7-8 10:38:09的发言:

速度问题希望能解决吧...

可能刷新太多了
会考虑重写脚本的

不过,现在连回家的火车票还没买到

以下引用幻耶于2008-7-4 9:23:16的发言:

那个1.04版本中,角色的前三项:武器、盾、头部装备的前缀“凌冰之”怎么都没有了?



不要点那个隐藏属性
作者: 星语心の梦    时间: 2008-8-2 01:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-8-2 06:21
以下引用星语心の梦于2008-8-1 17:25:35的发言:

能解释一下不 不太懂n多武器?
又不能同时都装备

战士只能装备铜剑,骑士只能装备铜枪
如果套装中只有铜剑,那么其实若想实现相同的套装功能,就只能再定义一套套装
但是如果设置成现在这样,就不需要了,只要定义到同一套套装就可以了
作者: 星语心の梦    时间: 2008-8-2 19:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 白字老先生    时间: 2008-8-8 07:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: q414393702    时间: 2008-8-9 21:03
赞一个```
作者: B_Bpl_ayl    时间: 2008-8-10 20:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 凌冰    时间: 2008-8-12 02:05
以下引用B_Bpl_ayl于2008-8-10 12:22:52的发言:

貌似只能做“凌冰”套装

不是的,只是名字问题,什么名字都可以,多少个也没问题




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