Project1

标题: [已解决]技能提升角色能力,如何通过脚本节省状态数量? [打印本页]

作者: miantouchi    时间: 2024-10-3 19:58
标题: [已解决]技能提升角色能力,如何通过脚本节省状态数量?
本帖最后由 miantouchi 于 2024-10-4 21:22 编辑

制作一个效果,就是使用这个技能给我方人员,提升N回合的力量。





比如,我只做了10个增加力量的技能,分别提升10%-100%这10个档位,那么我就得做对应10个状态。

有没有什么办法,只通过一个状态,去对应这10个技能呢。


作者: 魔法丶小肉包    时间: 2024-10-3 22:07
1.在特技的说明里写<param 2,10>   这里的数字2代表力量,3代表灵巧,4代表速度,5代表魔力;数字10代表增幅%,也就是按照110%计算
2.不用担心写在说明里会在游戏里描绘出来,已经处理过了
3.随便附加个状态就行,但是持续时间会按照该特技附加的第一个状态来计算

RUBY 代码复制
  1. class Window_Skill
  2.   def update_help
  3.     text = self.skill == nil ? "" : self.skill.description.clone
  4.     text.gsub!(/<.+>/,'') if text =~ /<.+>/
  5.     @help_window.set_text(text)
  6.   end
  7. end
  8. class Scene_Battle
  9.   alias mf241003make_skill_action_result make_skill_action_result
  10.   def make_skill_action_result
  11.     mf241003make_skill_action_result
  12.     for target in @target_battlers
  13.       target.skill_param_effect(@skill)
  14.     end
  15.   end
  16. end
  17. class Game_Battler
  18.   def skill_param_effect(skill)
  19.     param = {2=>:@str_rate,3=>:@dex_rate,4=>:@agi_rate,5=>:@int_rate}
  20.     if skill.description =~ /<param\s+(.+)>/
  21.       a = $1.split(",")
  22.       state = $data_states[skill.plus_state_set[0]]
  23.       state.instance_variable_set(param[a[0].to_i],100+a[1].to_i)
  24.     end
  25.   end
  26. end





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