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

Project1

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

[已经解决] 请教大佬,我想做个可以回到前几回合状态的技能

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
跳转到指定楼层
1
发表于 2020-3-24 09:04:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv4.逐梦者

梦石
2
星屑
6634
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

2
发表于 2020-3-24 09:29:43 | 只看该作者
如果只需要回复HP和MP,可以用六个变量记录每回合的数值,然后使用技能时恢复各项数值。
祝好。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1388
在线时间
343 小时
注册时间
2016-7-17
帖子
132
3
发表于 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]
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
4
 楼主| 发表于 2020-3-24 13:06:46 | 只看该作者
b200077 发表于 2020-3-24 09:50
这个应该可以用数组做,每个回合记录血量和法力。
下面这段每个回合执行一次,
$HP[$game_system.battle_co ...


我报错了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
5
 楼主| 发表于 2020-3-24 13:11:10 | 只看该作者
b200077 发表于 2020-3-24 09:50
这个应该可以用数组做,每个回合记录血量和法力。
下面这段每个回合执行一次,
$HP[$game_system.battle_co ...


有点难受qwq

$QW60XWQWH29093VCRY%SVY.png (10.33 KB, 下载次数: 36)

$QW60XWQWH29093VCRY%SVY.png

_9`ZBWZO4~O0GU88H@$`C7B.png (10.54 KB, 下载次数: 26)

_9`ZBWZO4~O0GU88H@$`C7B.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

6
发表于 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 认可答案

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
7
 楼主| 发表于 2020-3-24 13:30:04 | 只看该作者
KB.Driver 发表于 2020-3-24 13:22
在技能备注栏写,效果范围必须设置为使用者

谢谢大佬了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 17:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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