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

Project1

 找回密码
 注册会员
搜索
查看: 4673|回复: 13

[已经过期] 如何设置被动触发条件

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
发表于 2019-1-28 18:08:56 | 显示全部楼层 |阅读模式

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

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

x
我想做个被动技能,就是人物死亡时自动满血复活,一局只能触发一次,望大佬指点

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

发表于 2019-1-28 21:31:49 | 显示全部楼层
你要的东西
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
 楼主| 发表于 2019-1-28 21:41:49 | 显示全部楼层
jianyulei 发表于 2019-1-28 21:31
[fold=你要的东西]

#==============================================================================

哦哦!谢谢大佬!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
 楼主| 发表于 2019-1-28 21:45:19 | 显示全部楼层
jianyulei 发表于 2019-1-28 21:31
[fold=你要的东西]

#==============================================================================

等等,这样设置的话会无限重生耶

点评

备注里状态的破损率设置成100,让状态生效之后自己解除就不无限复活了。就是这个<自動蘇生破損:100>  发表于 2019-1-28 21:54
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
 楼主| 发表于 2019-1-28 21:54:09 | 显示全部楼层
jianyulei 发表于 2019-1-28 21:31
[fold=你要的东西]

#==============================================================================

而且没用啊,死后并没有复活

点评

<自動蘇生:500,42,100> <自動蘇生破損:100> 500是恢复的血量,42是播放的动画,100是几率。  发表于 2019-1-28 22:00
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4863
在线时间
485 小时
注册时间
2018-6-18
帖子
613
发表于 2019-1-29 05:20:06 手机端发表。 | 显示全部楼层
很实用的功能耶
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
 楼主| 发表于 2019-1-29 11:04:58 | 显示全部楼层
造小梦 发表于 2019-1-28 21:54
而且没用啊,死后并没有复活

还是没有,会显示错误,一进游戏就说什么“发生SystemStackError。stack level too deep”
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

R考场第七期纪念奖

发表于 2019-1-29 12:02:00 | 显示全部楼层


RUBY 代码复制
  1. module CLD99
  2.   module YOMIGAERU
  3.  
  4.     SKILL_ID = 5
  5.     # 死后满血复活的被动技能,只能设置一个
  6.  
  7.     FMT = "因为某个被动技能,%s满血复活了。"
  8.     # 复活后显示的消息,%s处会变为复活者的名字
  9.  
  10.     SOUND = "Audio/SE/Saint7"
  11.     # 复活时的音效
  12.  
  13.   end
  14. end
  15.  
  16. class << BattleManager
  17.   #--------------------------------------------------------------------------
  18.   # ● [别名修改]设置
  19.   #--------------------------------------------------------------------------
  20.   alias :setup_for_yomigaeru :setup
  21.   def setup(*args)
  22.     setup_for_yomigaeru(*args)
  23.     $yomigaeru = {} # 是否重生过的标志
  24.   end  
  25.   #--------------------------------------------------------------------------
  26.   # ● [别名修改]判断胜负
  27.   #--------------------------------------------------------------------------
  28.   alias judge_win_loss_for_yomigaeru judge_win_loss
  29.   def judge_win_loss
  30.     return false if $wait_yomigaeru # 先等待重生
  31.     judge_win_loss_for_yomigaeru
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● [追加]战斗消息
  35.   #--------------------------------------------------------------------------
  36.   def show_log(text)
  37.     return unless SceneManager.scene_is?(Scene_Battle)
  38.     SceneManager.scene.show_log(text)
  39.   end
  40. end
  41.  
  42. class Scene_Battle
  43.   #--------------------------------------------------------------------------
  44.   # ● [追加]战斗消息
  45.   #--------------------------------------------------------------------------
  46.   def show_log(text)
  47.     @log_window.add_text(text)
  48.     @log_window.wait
  49.   end
  50. end
  51.  
  52. class Game_Actor
  53.   #--------------------------------------------------------------------------
  54.   # ● [别名修改]刷新
  55.   #--------------------------------------------------------------------------
  56.   alias refresh_for_yomigaeru refresh
  57.   def refresh
  58.     return refresh_for_yomigaeru unless $game_party.in_battle # 非战斗中不触发
  59.     $wait_yomigaeru = true # 延迟胜负判断
  60.     refresh_for_yomigaeru # 原方法
  61.     if @states.include?(death_state_id)
  62.       if @skills.include?(CLD99::YOMIGAERU::SKILL_ID) && !$yomigaeru[@actor_id]
  63.         remove_state(death_state_id)
  64.         change_hp(self.mhp, enable_death = false)
  65.         BattleManager.show_log(sprintf(CLD99::YOMIGAERU::FMT, @name))
  66.         Audio.se_play(CLD99::YOMIGAERU::SOUND)
  67.         $yomigaeru[@actor_id] = true
  68.       end
  69.     end
  70.     $wait_yomigaeru = false # 恢复胜负判断
  71.   end
  72. end


自己写的一次复活,比较随意。
新建工程测试通过,如果有问题请报告。
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1422
在线时间
245 小时
注册时间
2019-1-18
帖子
190
 楼主| 发表于 2019-1-29 12:16:59 | 显示全部楼层
KB.Driver 发表于 2019-1-29 12:02
module CLD99
  module YOMIGAERU
   

没用,无法复活
回复 支持 反对

使用道具 举报

Lv5.捕梦者

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

R考场第七期纪念奖

发表于 2019-1-29 12:48:55 | 显示全部楼层

1.gif

我在新建工程里是可以复活的。
你先检查一下技能id有没有弄错,然后看看测试的时候人物是否学习了技能。
如果用的不是默认的战斗系统,麻烦贴一下。
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 08:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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