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

Project1

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

[已经解决] 战斗死亡时,状态不解除

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
跳转到指定楼层
1
发表于 2017-6-3 16:52:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我方角色死亡时,有第7,8,9三个状态,不会随着死亡解除,这个可以实现吗,知道的告诉下,谢谢

Lv4.逐梦者

梦石
0
星屑
6260
在线时间
1481 小时
注册时间
2015-7-25
帖子
652

开拓者

2
发表于 2017-6-3 18:02:39 | 只看该作者
本帖最后由 魔法丶小肉包 于 2017-6-3 18:29 编辑

unremove设定状态ID

RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2. $unre = []
  3.   def die
  4.     unremove = [7,8,9]
  5.     states.each do |s|
  6.       if unremove.include?(s.id)
  7.         $unre.push(s.id)
  8.       end
  9.     end
  10.     @hp = 0
  11.     clear_states
  12.     clear_buffs
  13.   end
  14.   def add_state(state_id)
  15.     if state_addable?(state_id)
  16.       add_new_state(state_id) unless state?(state_id)
  17.       $unre.each do |id|
  18.       add_new_state(id) unless state?(id)
  19.       reset_state_counts(id)
  20.       @result.added_states.push(id).uniq!
  21.       end
  22.       reset_state_counts(state_id)
  23.       @result.added_states.push(state_id).uniq!
  24.     end
  25.   end
  26. end
笨肉包的首款像素OC游戏《花城梦之心》尝试制作中~
目前的坑 【不可思议的迷宫】幽灵契约外传:歌莉娅
持续更新中~ 当前进度 v0.28
大版本更新时才会更新网盘文件,预计下次大版本更新:v0.30
完成度:
主线 15% 支线 0% 数据库 6% 系统 86% 美术 6%
两边同时填坑~
( 这里是笨肉包~专修魔法!目标是大魔法师!
( 坑太大啦,一个人填不完啦hhh 一定会填完的嗯...
( 每天都和bug们比试魔力~吾之魔法将扫平一切!
( 弱点是美术,魔法修行之余再补补课吧~
( 哼哼哼~这便是魔法的力量!
大家都离开啦,笨肉包也不知道还能坚持多久呀...
这是属于笨肉包一个人的旅行(再见了...蚊子湯,七重酱,笨肉包永远想你们!TwT
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
3
 楼主| 发表于 2017-6-3 18:13:48 | 只看该作者
魔法丶小肉包 发表于 2017-6-3 18:02
unremove设定状态ID

class Game_Battler < Game_BattlerBase

感谢肉包,不过第18行发生错误了

QQ截图9988888.png (6.18 KB, 下载次数: 26)

QQ截图9988888.png

点评

fjm
感谢肉包,现在已经没问题了  发表于 2017-6-3 19:43
编辑了一下,再测试一下试试呢?  发表于 2017-6-3 18:31
新工程测试一下呢?  发表于 2017-6-3 18:20
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1394
在线时间
268 小时
注册时间
2017-2-18
帖子
101

开拓者

4
发表于 2017-6-3 19:46:09 | 只看该作者
额,那试试这个?
  1. #使用方法:打开脚本编辑器,将脚本插入到main上。
  2. #在状态备注:<残留>
  3. #==============================================================================
  4. # ■ RGSS3 戦闘不能時残留ステート Ver1.01 by 星潟
  5. #------------------------------------------------------------------------------
  6. # 戦闘不能に陥った際、消去されないステートを作成します。
  7. # 用于那些全恢复时也不想要他消除的状态
  8. # 設定方法.
  9. # ステート欄に<残留>と記入する。
  10. #
  11. # Ver1.01
  12. # 全回復時・逃走の処理でも戦闘不能時残留ステートの効果が表れていた問題を修正。
  13. #==============================================================================
  14. module UnclearableState

  15.   #ステートのメモ欄に記入する為の設定用ワード
  16.   WORD = "<残留>"

  17. end
  18. #==============================================================================
  19. # ■ Game_BattlerBase
  20. #------------------------------------------------------------------------------
  21. #  バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
  22. # のクラスは Game_Battler クラスのスーパークラスとして使用されます。
  23. #==============================================================================
  24. class Game_BattlerBase
  25.   #--------------------------------------------------------------------------
  26.   # ● オブジェクト初期化
  27.   #--------------------------------------------------------------------------
  28.   alias initialize_un_s initialize
  29.   def initialize
  30.     initialize_un_s
  31.     clear_states2
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 全回復
  35.   #--------------------------------------------------------------------------
  36.   alias recover_all_un_s recover_all
  37.   def recover_all
  38.     recover_all_un_s
  39.     clear_states2
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● ステート情報をクリア
  43.   #--------------------------------------------------------------------------
  44.   def clear_states
  45.     @states = [] if @states == nil
  46.     stc = 0
  47.     stcl = []
  48.     stcl_turns = {}
  49.     stcl_steps = {}
  50.     for state in @states
  51.       if state != nil && $data_states[state].note.include?(UnclearableState::WORD)
  52.         stcl.push(@states[stc])
  53.         stcl_turns[state] = @state_turns[state]
  54.         stcl_steps[state] = @state_steps[state]
  55.       end
  56.       stc += 1
  57.     end
  58.     @states = stcl
  59.     @state_turns = stcl_turns
  60.     @state_steps = stcl_steps
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● ステート情報をクリア
  64.   #--------------------------------------------------------------------------
  65.   def clear_states2
  66.     @states = []
  67.     @state_turns = {}
  68.     @state_steps = {}
  69.   end
  70. end
  71. class Game_Battler < Game_BattlerBase
  72.   #--------------------------------------------------------------------------
  73.   # ● 逃げる
  74.   #--------------------------------------------------------------------------
  75.   alias escape_un_s escape
  76.   def escape
  77.     escape_un_s
  78.     clear_states2
  79.   end
  80. end
复制代码

在状态的备注里写上<残留>即可,这个文字可以在"WORD"处设定

点评

fjm
非常感谢  发表于 2017-6-3 19:51

评分

参与人数 1星屑 +200 收起 理由
RaidenInfinity + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 06:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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