设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2440|回复: 2
打印 上一主题 下一主题

[已经解决] 如果做一个装备装备上给角色加一些状态的效果?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1606
在线时间
149 小时
注册时间
2018-12-27
帖子
321
跳转到指定楼层
1
发表于 2019-3-6 15:02:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
比如说,我这个装备叫做X宝石,然后装备这个的时候角色获得状态栏里的一个状态X?

搜索没搜到类似的,可能是我不知道关键词吧

Lv4.逐梦者

梦石
1
星屑
14503
在线时间
2086 小时
注册时间
2017-9-28
帖子
662
2
发表于 2019-5-25 23:43:43 | 只看该作者
脚本汉化合集里找


  1. #==============================================================================
  2. #
  3. # ▼ Yanfly Engine Ace - 被动状态 v1.02
  4. # -- 最后更新: 2012.01.23
  5. # -- 使用难度: 简单
  6. # -- 需要脚本: 无
  7. #
  8. #==============================================================================

  9. $imported = {} if $imported.nil?
  10. $imported["YEA-PassiveStates"] = true

  11. #==============================================================================
  12. # ▼ Updates
  13. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  14. # 2012.01.23 - Compatibility Update: Doppelganger
  15. # 2012.01.08 - Added passive state checks for adding/removing states.
  16. # 2011.12.14 - Started Script and Finished.
  17. #
  18. #==============================================================================
  19. # ▼ 介绍
  20. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  21. # 本脚本可以使角色/职业/武器/护甲/敌人拥有被动状态的效果.
  22. # 被动状态在任何时候都会生效。在对象死亡后被动状态全部会自动解除,当对象被复活
  23. # 时,被动状态会自动重新附加到其身上.
  24. #
  25. #==============================================================================
  26. # ▼ 安装方式
  27. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  28. # 打开脚本编辑器,将本脚本拷贝/复制到一个在▼ 插件脚本之下▼ Main之上的新
  29. # 脚本页/槽中.记得保存你的工程以使脚本生效.
  30. #
  31. # -----------------------------------------------------------------------------
  32. # 角色备注 - 在数据库-角色中可以使用的备注.
  33. # -----------------------------------------------------------------------------
  34. # <被动状态: x>
  35. # <被动状态: x, x>
  36. # 使x号始终附加在该角色身上(除非角色死亡).
  37. #
  38. # -----------------------------------------------------------------------------
  39. # 职业备注 - 在数据库-职业中可以使用的备注.
  40. # -----------------------------------------------------------------------------
  41. # <被动状态: x>
  42. # <被动状态: x, x>
  43. # 使x号始终附加在该职业的角色身上(除非角色死亡).
  44. #
  45. # -----------------------------------------------------------------------------
  46. # 武器备注 - 在数据库-武器中可以使用的备注.
  47. # -----------------------------------------------------------------------------
  48. # <被动状态: x>
  49. # <被动状态: x, x>
  50. # 使x号始终附加在装备该武器的角色身上(除非角色死亡).
  51. #
  52. # -----------------------------------------------------------------------------
  53. # 护甲备注 - 在数据库-护甲中可以使用的备注.
  54. # -----------------------------------------------------------------------------
  55. # <被动状态: x>
  56. # <被动状态: x, x>
  57. # 使x号始终附加在装备该护甲的角色身上(除非角色死亡).
  58. #
  59. # -----------------------------------------------------------------------------
  60. # 敌人备注 - 在数据库-敌人中可以使用的备注.
  61. # -----------------------------------------------------------------------------
  62. # <被动状态: x>
  63. # <被动状态: x, x>
  64. # 使x号始终附加在该敌人身上(除非敌人死亡).
  65. #
  66. #==============================================================================
  67. # ▼ 兼容性
  68. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  69. # 本脚本仅为RPG Maker VX Ace编写.极不可能在无任何修改的情况下运行于RPG Maker VX.
  70. #
  71. #==============================================================================
  72. # ▼ 编辑以下内容可能会出现电脑损坏、死机,电脑主人脑袋爆炸、昏迷、死亡或口臭
  73. # 所以编辑了后果自负。
  74. #==============================================================================

  75. module YEA
  76.   module REGEXP
  77.   module BASEITEM
  78.    
  79.     PASSIVE_STATE =
  80.       /<(?:PASSIVE_STATE|被动状态):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
  81.    
  82.   end # BASEITEM
  83.   end # REGEXP
  84. end # YEA

  85. #==============================================================================
  86. # ■ DataManager
  87. #==============================================================================

  88. module DataManager
  89.   
  90.   #--------------------------------------------------------------------------
  91.   # alias method: load_database
  92.   #--------------------------------------------------------------------------
  93.   class <<self; alias load_database_pst load_database; end
  94.   def self.load_database
  95.     load_database_pst
  96.     load_notetags_pst
  97.   end
  98.   
  99.   #--------------------------------------------------------------------------
  100.   # new method: load_notetags_pst
  101.   #--------------------------------------------------------------------------
  102.   def self.load_notetags_pst
  103.     groups = [$data_actors, $data_classes, $data_weapons, $data_armors,
  104.       $data_enemies]
  105.     for group in groups
  106.       for obj in group
  107.         next if obj.nil?
  108.         obj.load_notetags_pst
  109.       end
  110.     end
  111.   end
  112.   
  113. end # DataManager

  114. #==============================================================================
  115. # ■ RPG::BaseItem
  116. #==============================================================================

  117. class RPG::BaseItem
  118.   
  119.   #--------------------------------------------------------------------------
  120.   # public instance variables
  121.   #--------------------------------------------------------------------------
  122.   attr_accessor :passive_states
  123.   
  124.   #--------------------------------------------------------------------------
  125.   # common cache: load_notetags_pst
  126.   #--------------------------------------------------------------------------
  127.   def load_notetags_pst
  128.     @passive_states = []
  129.     #---
  130.     self.note.split(/[\r\n]+/).each { |line|
  131.       case line
  132.       #---
  133.       when YEA::REGEXP::BASEITEM::PASSIVE_STATE
  134.         $1.scan(/\d+/).each { |num|
  135.         @passive_states.push(num.to_i) if num.to_i > 0 }
  136.       #---
  137.       end
  138.     } # self.note.split
  139.     #---
  140.   end
  141.   
  142. end # RPG::BaseItem

  143. #==============================================================================
  144. # ■ Game_BattlerBase
  145. #==============================================================================

  146. class Game_BattlerBase
  147.   
  148.   #--------------------------------------------------------------------------
  149.   # alias method: state?
  150.   #--------------------------------------------------------------------------
  151.   alias game_battlerbase_state_check_pst state?
  152.   def state?(state_id)
  153.     return true if passive_state?(state_id)
  154.     return game_battlerbase_state_check_pst(state_id)
  155.   end
  156.   
  157.   #--------------------------------------------------------------------------
  158.   # alias method: states
  159.   #--------------------------------------------------------------------------
  160.   alias game_battlerbase_states_pst states
  161.   def states
  162.     array = game_battlerbase_states_pst
  163.     array |= passive_states
  164.     return array
  165.   end
  166.   
  167.   #--------------------------------------------------------------------------
  168.   # new method: passive_state?
  169.   #--------------------------------------------------------------------------
  170.   def passive_state?(state_id)
  171.     @passive_states = [] if @passive_states.nil?
  172.     return @passive_states.include?(state_id)
  173.   end
  174.   
  175.   #--------------------------------------------------------------------------
  176.   # new method: passive_states
  177.   #--------------------------------------------------------------------------
  178.   def passive_states
  179.     array = []
  180.     if actor?
  181.       for state_id in self.actor.passive_states
  182.         array.push($data_states[state_id]) if passive_state_addable?(state_id)
  183.       end
  184.       for state_id in self.class.passive_states
  185.         array.push($data_states[state_id]) if passive_state_addable?(state_id)
  186.       end
  187.       for equip in equips
  188.         next if equip.nil?
  189.         for state_id in equip.passive_states
  190.           array.push($data_states[state_id]) if passive_state_addable?(state_id)
  191.         end
  192.       end
  193.     else # enemy
  194.       for state_id in self.enemy.passive_states
  195.         array.push($data_states[state_id]) if passive_state_addable?(state_id)
  196.       end
  197.       if $imported["YEA-Doppelganger"] && !self.class.nil?
  198.         for state_id in self.class.passive_states
  199.           array.push($data_states[state_id]) if passive_state_addable?(state_id)
  200.         end
  201.       end
  202.     end
  203.     create_passive_state_array(array)
  204.     sort_passive_states(array)
  205.     set_passive_state_turns(array)
  206.     return array
  207.   end
  208.   
  209.   #--------------------------------------------------------------------------
  210.   # new method: create_passive_state_array
  211.   #--------------------------------------------------------------------------
  212.   def create_passive_state_array(array)
  213.     @passive_states = []
  214.     for state in array
  215.       @passive_states.push(state.id)
  216.     end
  217.   end
  218.   
  219.   #--------------------------------------------------------------------------
  220.   # new method: passive_state_addable?
  221.   #--------------------------------------------------------------------------
  222.   def passive_state_addable?(state_id)
  223.     return false if $data_states[state_id].nil?
  224.     return alive?
  225.   end
  226.   
  227.   #--------------------------------------------------------------------------
  228.   # new method: set_passive_state_turns
  229.   #--------------------------------------------------------------------------
  230.   def sort_passive_states(array)
  231.     array.sort! do |state_a, state_b|
  232.       if state_a.priority != state_b.priority
  233.         state_b.priority <=> state_a.priority
  234.       else
  235.         state_a.id <=> state_b.id
  236.       end
  237.     end
  238.     return array
  239.   end
  240.   
  241.   #--------------------------------------------------------------------------
  242.   # new method: set_passive_state_turns
  243.   #--------------------------------------------------------------------------
  244.   def set_passive_state_turns(array)
  245.     for state in array
  246.       @state_turns[state.id] = 0 unless @states.include?(state.id)
  247.       @state_steps[state.id] = 0 unless @states.include?(state.id)
  248.     end
  249.   end
  250.   
  251. end # Game_BattlerBase

  252. #==============================================================================
  253. # ■ Game_Battler
  254. #==============================================================================

  255. class Game_Battler < Game_BattlerBase
  256.   
  257.   #--------------------------------------------------------------------------
  258.   # alias method: state_addable?
  259.   #--------------------------------------------------------------------------
  260.   alias game_battler_state_addable_ps state_addable?
  261.   def state_addable?(state_id)
  262.     return false if passive_state?(state_id)
  263.     return game_battler_state_addable_ps(state_id)
  264.   end
  265.   
  266.   #--------------------------------------------------------------------------
  267.   # alias method: remove_state
  268.   #--------------------------------------------------------------------------
  269.   alias game_battler_remove_state_ps remove_state
  270.   def remove_state(state_id)
  271.     return if passive_state?(state_id)
  272.     game_battler_remove_state_ps(state_id)
  273.   end
  274.   
  275. end # Game_Battler

  276. #==============================================================================
  277. #
  278. # ▼ End of File
  279. #
  280. #==============================================================================
复制代码

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 我很赞同

查看全部评分

VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-20 16:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表