Project1

标题: 请教一个关于属性有效度的问题 [打印本页]

作者: 939034448    时间: 2021-8-7 02:22
标题: 请教一个关于属性有效度的问题
本帖最后由 939034448 于 2021-8-7 16:31 编辑

因为人物很多而且人物a和人物b是同一职业,但技能不同,在设置属性有效度的时候就需要重新再设定一遍,玩家角色还好,主要是敌人的属性有效度的设置太麻烦了,有什么办法可以让某个属性有效度的设置生效于所有同名职业吗?
比如说,敌人a是火系的,敌人b也是火系的,能不能通过属性有效度代表敌人的属性来达到属性克制的效果,同理,用属性有效度代表某职业的属性,让属性克制生效于拥有此职业的精灵
(敌人的属性有效度一栏选择火系a,代表敌人是火系精灵这样)
作者: 陈大帅帅帅哥    时间: 2021-8-7 02:22
本帖最后由 陈大帅帅帅哥 于 2021-8-9 08:12 编辑

我的宝可梦引擎可以设置主副属性,另一个赛尔号同人游戏也在用里面的脚本,符合要求的话可以参考一下

这段插入到main前
RUBY 代码复制
  1. def elements_correct(skill_element,first_element,second_element)
  2.   #卐 属性相克系数初始化
  3.   x = 1.0
  4.   for s_e in skill_element
  5.     if TYPE[s_e]
  6.       n = TYPE[s_e][first_element] ? TYPE[s_e][first_element] : 1
  7.       m = TYPE[s_e][second_element] ? TYPE[s_e][second_element] : 1
  8.       x *= n * m
  9.     end
  10.   end
  11.   return x
  12. end
  13.  
  14. class Game_Actor
  15.   #--------------------------------------------------------------------------
  16.   # 卐 获取 主属性
  17.   #--------------------------------------------------------------------------
  18.   def first_element
  19.     result = nil
  20.     for i in 1..$data_classes[@class_id].element_ranks.xsize
  21.       if $data_classes[@class_id].element_ranks[i] == 1
  22.         break result = i
  23.       end
  24.     end
  25.     return result
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # 卐 获取 副属性
  29.   #--------------------------------------------------------------------------
  30.   def second_element
  31.     result = nil
  32.     for i in 1..$data_classes[@class_id].element_ranks.xsize
  33.       if $data_classes[@class_id].element_ranks[i] == 2
  34.         break result = i
  35.       end
  36.     end
  37.     return result
  38.   end
  39. end
  40.  
  41.  
  42. class Game_Enemy
  43.   #--------------------------------------------------------------------------
  44.   # 卐 获取 主属性
  45.   #--------------------------------------------------------------------------
  46.   def first_element
  47.     result = nil
  48.     for i in 1..$data_enemies[@enemy_id].element_ranks.xsize
  49.       if $data_enemies[@enemy_id].element_ranks[i] == 1
  50.         break result = i
  51.       end
  52.     end
  53.     return result
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # 卐 获取 副属性
  57.   #--------------------------------------------------------------------------
  58.   def second_element
  59.     result = nil
  60.     for i in 1..$data_enemies[@enemy_id].element_ranks.xsize
  61.       if $data_enemies[@enemy_id].element_ranks[i] == 2
  62.         break break result = i
  63.       end
  64.     end
  65.     return result
  66.   end
  67. end



在Game_Battler 3里找到
RUBY 代码复制
  1. # 属性修正
  2.       self.damage *= elements_correct(skill.element_set)
  3.       self.damage /= 100

用这两行替换之
RUBY 代码复制
  1. # 属性修正
  2. self.damage *= elements_correct(skill.element_set,self.first_element,self.second_element)


这段是属性相克表,也是插入到main前,按照需求自行调整
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # 卐 属性提示
  3.   #     8:火     7:水    9:草    2:飞行  10:电
  4.   #     4:地面  14:机械 11:冰   12:超能  1:普通
  5.   #     3:战斗   5:暗影  6:光   13:龙   16:神秘
  6.   #    15:圣灵  29:次元 18:远古 19:邪灵 20:无
  7.   #    21:属性  22:自然 23:王   24:混沌 25:神灵
  8.   #    26:轮回  27:虫   28:虚空
  9.   #--------------------------------------------------------------------------
  10. TYPE=
  11. {
  12. 8=># 火
  13. {9=>2, 14=>2, 11=>2, 8=>0.5, 7=>0.5, 15=>0.5, 22=>0.5, 24=>0.5, 25=>0.5},
  14. 7=># 水
  15. {8=>2, 4=>2, 2=>0.5, 9=>0.5, 15=>0.5, 22=>0.5, 24=>0.5, 25=>0.5},
  16. 9=># 草
  17. {7=>2, 4=>2, 6=>2, 8=>0.5, 9=>0.5, 2=>0.5, 14=>0.5, 15=>0.5, 18=>0.5, 24=>0.5, 25=>0.5},
  18. 2=># 飞行
  19. {9=>2, 3=>2, 27=>2, 10=>0.5, 14=>0.5, 29=>0.5, 19=>0.5, 22=>0.5, 24=>0.5},
  20. 10=># 电
  21. {7=>2, 2=>2, 5=>2, 29=>2, 24=>2, 28=>2, 9=>0.5, 10=>0.5, 15=>0.5, 16=>0.5, 22=>0.5, 25=>0.5, 4=>0},
  22. 4=># 地面
  23. {8=>2, 10=>2, 14=>2, 23=>2, 26=>2, 9=>0.5, 12=>0.5, 5=>0.5, 13=>0.5, 15=>0.5, 22=>0.5, 25=>0.5, 27=>0.5, 2=>0},
  24. 14=># 机械
  25. {11=>2, 3=>2, 18=>2, 19=>2, 25=>2, 8=>0.5, 7=>0.5, 10=>0.5, 14=>0.5, 29=>0.5},
  26. 11=># 冰
  27. {9=>2, 2=>2, 4=>2, 29=>2, 18=>2, 26=>2, 27=>2, 8=>0.5, 7=>0.5, 14=>0.5, 11=>0.5, 15=>0.5, 24=>0.5, 25=>0.5},
  28. 12=># 超能
  29. {3=>2, 16=>2, 22=>2, 14=>0.5, 12=>0.5, 27=>0.5, 6=>0},
  30. 1=># 普通
  31. { },
  32. 3=># 战斗
  33. {14=>2, 11=>2, 13=>2, 15=>2, 12=>0.5, 3=>0.5, 5=>0.5, 23=>0.5},
  34. 5=># 暗影
  35. {12=>2, 5=>2, 29=>2, 14=>0.5, 11=>0.5, 6=>0.5, 15=>0.5, 19=>0.5, 25=>0.5},
  36. 6=># 光
  37. {12=>2, 5=>2, 27=>2, 14=>0.5, 11=>0.5, 6=>0.5, 15=>0.5, 19=>0.5, 22=>0.5, 25=>0.5, 26=>0.5, 28=>0.5, 9=>0},
  38. 13=># 龙
  39. {11=>2, 13=>2, 15=>2, 19=>2, 8=>0.5, 7=>0.5, 9=>0.5, 10=>0.5, 18=>0.5, 27=>0.5},
  40. 16=># 神秘
  41. {10=>2, 15=>2, 16=>2, 22=>2, 23=>2, 25=>2, 26=>2, 4=>0.5, 3=>0.5, 19=>0.5, 24=>0.5, 27=>0.5},
  42. 15=># 圣灵
  43. {8=>2, 7=>2, 9=>2, 10=>2, 11=>2, 18=>2, 28=>2, 3=>0.5, 13=>0.5, 25=>0.5, 26=>0.5},
  44. 29=># 次元
  45. {2=>2, 14=>2, 12=>2, 19=>2, 22=>2, 27=>2, 28=>2, 11=>0.5, 23=>0.5, 24=>0.5, 25=>0.5, 26=>0.5},
  46. 18=># 远古
  47. {8=>2, 2=>2, 13=>2, 16=>2, 28=>2, 14=>0.5, 11=>0.5, 23=>0.5, 26=>0.5},
  48. 19=># 邪灵
  49. {5=>2, 6=>2, 16=>2, 29=>2, 22=>2, 14=>0.5, 11=>0.5, 12=>0.5, 15=>0.5, 23=>0.5, 24=>0.5, 26=>0.5, 25=>0},
  50. 20=># 无
  51. { },
  52. 22=># 自然
  53. {8=>2, 7=>2, 9=>2, 2=>2, 10=>2, 4=>2, 6=>2, 23=>2, 26=>2, 14=>0.5, 12=>0.5, 3=>0.5, 5=>0.5, 16=>0.5, 29=>0.5, 19=>0.5, 24=>0.5, 28=>0},
  54. 23=># 王
  55. {3=>2, 5=>2, 29=>2, 19=>2, 12=>0.5, 29=>0.5, 27=>0.5},
  56. 24=># 混沌
  57. {2=>2, 11=>2, 16=>2, 29=>2, 19=>2, 22=>2, 25=>2, 10=>0.5, 14=>0.5, 3=>0.5, 26=>0.5, 28=>0},
  58. 25=># 神灵
  59. {8=>2, 7=>2, 9=>2, 10=>2, 11=>2, 18=>2, 19=>2, 24=>2, 14=>0.5, 3=>0.5, 13=>0.5},
  60. 26=># 轮回
  61. {5=>2, 6=>2, 15=>2, 29=>2, 19=>2, 24=>2, 11=>0.5, 12=>0.5, 22=>0.5, 28=>0.5},
  62. 27=># 虫
  63. {9=>2, 4=>2, 3=>2, 24=>2, 27=>2, 8=>0.5, 7=>0.5, 11=>0.5, 6=>0.5},
  64. 28=># 虚空
  65. {12=>2, 3=>2, 6=>2, 16=>2, 22=>2, 26=>2, 2=>0.5, 5=>0.5, 15=>0.5, 29=>0.5}
  66. }


全部弄好后,属性有效度为A的属性即为主属性,为B的即为副属性
作者: guoxiaomi    时间: 2021-8-7 09:57
敌人也没有职业吧
作者: 939034448    时间: 2021-8-7 16:24
本帖最后由 939034448 于 2021-8-7 16:28 编辑
guoxiaomi 发表于 2021-8-7 09:57
敌人也没有职业吧


是这样,我是做赛尔号同人的,精灵是有不同属性的,然后每个敌人都要重新设定属性有效度,很麻烦,特别是我新出了一个属性的话,所以敌人都要重新再依据敌人的属性来设定有效度




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