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

Project1

 找回密码
 注册会员
搜索

请教大佬,我想做个可以回到前几回合状态的技能

查看数: 2586 | 评论数: 6 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-24 09:04

正文摘要:

我想做一个技能,类似于lol时间刺客大招(回到3回合前的生命值和法力值),这可以实现吗

回复

小姐姐一个 发表于 2020-3-24 13:30:04
KB.Driver 发表于 2020-3-24 13:22
在技能备注栏写,效果范围必须设置为使用者

谢谢大佬了
KB.Driver 发表于 2020-3-24 13:22:55
本帖最后由 KB.Driver 于 2020-3-24 13:25 编辑



在技能备注栏写<回溯>,效果范围必须设置为使用者

RUBY 代码复制
  1. module CLD99
  2.   module REWIND_HP_MP
  3.  
  4.     # 回溯的回合数
  5.     DEPTH = 3
  6.  
  7.     # 信息格式(请不要修改汉字以外的部分)
  8.     FMT = "%s的%s与%s恢复到了#{DEPTH}回合之前"
  9.  
  10.   end  
  11. end
  12.  
  13. #--------------------------------------------------------------------------#
  14. #              ● 修改以下部分所造成的后果由修改者本人负责 ●              #
  15. #--------------------------------------------------------------------------#
  16.  
  17. class RPG::Skill
  18.   def rewind_skill?
  19.     self.note =~ /<回溯>/
  20.   end
  21. end
  22.  
  23. class Game_Actor
  24.   #--------------------------------------------------------------------------
  25.   # ● 战斗开始处理
  26.   #--------------------------------------------------------------------------
  27.   def on_battle_start
  28.     super
  29.     store_hp_mp
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 回合结束处理
  33.   #--------------------------------------------------------------------------
  34.   def on_turn_end
  35.     super
  36.     store_hp_mp
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 战斗结束处理
  40.   #--------------------------------------------------------------------------
  41.   def on_battle_end
  42.     super
  43.     clear_stroring_hp_mp
  44.   end
  45.  
  46.   def store_hp_mp
  47.     if skills.any?{|s| s.rewind_skill? }
  48.       @storing_hp ||= []
  49.       @storing_mp ||= []
  50.       @storing_hp << @hp
  51.       @storing_mp << @mp
  52.     end
  53.   end
  54.  
  55.   def rewind_hp_mp
  56.     turn = [$game_troop.turn_count - CLD99::REWIND_HP_MP::DEPTH, 0].max
  57.     @hp = @storing_hp[turn]
  58.     @mp = @storing_mp[turn]
  59.   end
  60.  
  61.   def clear_stroring_hp_mp
  62.     if skills.any?{|s| s.rewind_skill? }
  63.       @storing_hp && @storing_hp.clear
  64.       @storing_mp && @storing_mp.clear
  65.     end
  66.   end
  67. end
  68.  
  69. class Scene_Battle
  70.   #--------------------------------------------------------------------------
  71.   # ● 发动技能/物品
  72.   #--------------------------------------------------------------------------
  73.   alias invoke_item_for_rewind_hp_mp invoke_item
  74.   def invoke_item(target, item)
  75.     invoke_item_for_rewind_hp_mp(target, item)
  76.     if item.is_a?(RPG::Skill) && item.rewind_skill?
  77.       target.rewind_hp_mp
  78.     end
  79.   end
  80. end
  81.  
  82. class Window_BattleLog
  83.   #--------------------------------------------------------------------------
  84.   # ● 显示行动结果
  85.   #--------------------------------------------------------------------------
  86.   alias display_action_results_for_rewind_hp_mp display_action_results
  87.   def display_action_results(target, item)
  88.     if item.is_a?(RPG::Skill) && item.rewind_skill?
  89.       add_text(CLD99::REWIND_HP_MP::FMT % [target.name, Vocab.hp, Vocab.mp])
  90.     end
  91.     display_action_results_for_rewind_hp_mp(target, item)
  92.   end
  93. end

评分

参与人数 1星屑 +10 +1 收起 理由
寂静的夜里 + 10 + 1 认可答案

查看全部评分

小姐姐一个 发表于 2020-3-24 13:06:46
b200077 发表于 2020-3-24 09:50
这个应该可以用数组做,每个回合记录血量和法力。
下面这段每个回合执行一次,
$HP[$game_system.battle_co ...


我报错了
b200077 发表于 2020-3-24 09:50:07
这个应该可以用数组做,每个回合记录血量和法力。
下面这段每个回合执行一次,
$HP[$game_system.battle_count] +=   $game_actors[角色编号].hp
$MP[$game_system.battle_count] +=  $game_actors[角色编号].mp

技能使用公共事件开启开关,然后开关的脚本
$game_actors[角色编号].hp = $HP[$game_system.battle_count - 3]
$game_actors[角色编号].mp = $MP[$game_system.battle_count - 3]
MCCF 发表于 2020-3-24 09:29:43
如果只需要回复HP和MP,可以用六个变量记录每回合的数值,然后使用技能时恢复各项数值。
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-5-3 13:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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