Project1
标题:
有什么方法能让一些状态死亡时仍然保留么?
[打印本页]
作者:
wuwei123
时间:
2019-1-30 14:30
标题:
有什么方法能让一些状态死亡时仍然保留么?
虽然想到的一个蠢方法是将死亡时的clear_states,
变成把需要被消去的状态一个个移除,以达到保留需要的状态的效果……
作者:
MCCF
时间:
2019-1-30 14:39
不是很困难。调用clear_states之前定义一个临时变量,存储当前状态数组。清除所有状态之后,遍历这个数组,如果某个状态的ID是需要保留的状态ID,那么就附加这个状态。
作者:
灯笼菜刀王
时间:
2019-1-30 17:48
本帖最后由 灯笼菜刀王 于 2019-1-30 17:53 编辑
可以用一个符号搞定 ——"交集"
@state = @state
&
Need_keep_state
作者:
wuwei123
时间:
2019-1-30 20:25
MCCF 发表于 2019-1-30 14:39
不是很困难。调用clear_states之前定义一个临时变量,存储当前状态数组。清除所有状态之后,遍历这个数组, ...
谢谢指点
作者:
JasperCrazy
时间:
2019-2-10 15:03
主站里找的:
#使用方法:打开脚本编辑器,将脚本插入到main上。
#在状态备注:<残留>
#==============================================================================
# ■ RGSS3 戦闘不能時残留ステート Ver1.01 by 星潟
#------------------------------------------------------------------------------
# 戦闘不能に陥った際、消去されないステートを作成します。
# 用于那些全恢复时也不想要他消除的状态
# 設定方法.
# ステート欄に<残留>と記入する。
#
# Ver1.01
# 全回復時・逃走の処理でも戦闘不能時残留ステートの効果が表れていた問題を修正。
#==============================================================================
module UnclearableState
#ステートのメモ欄に記入する為の設定用ワード
WORD = "<残留>"
end
#==============================================================================
# ■ Game_BattlerBase
#------------------------------------------------------------------------------
# バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
# のクラスは Game_Battler クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_un_s initialize
def initialize
initialize_un_s
clear_states2
end
#--------------------------------------------------------------------------
# ● 全回復
#--------------------------------------------------------------------------
# alias recover_all_un_s recover_all
# def recover_all
# recover_all_un_s
# clear_states2
# end
#--------------------------------------------------------------------------
# ● ステート情報をクリア
#--------------------------------------------------------------------------
def clear_states
@states = [] if @states == nil
stc = 0
stcl = []
stcl_turns = {}
stcl_steps = {}
for state in @states
if state != nil && $data_states[state].note.include?(UnclearableState::WORD)
stcl.push(@states[stc])
stcl_turns[state] = @state_turns[state]
stcl_steps[state] = @state_steps[state]
end
stc += 1
end
@states = stcl
@state_turns = stcl_turns
@state_steps = stcl_steps
end
#--------------------------------------------------------------------------
# ● ステート情報をクリア
#--------------------------------------------------------------------------
def clear_states2
@states = []
@state_turns = {}
@state_steps = {}
end
end
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 逃げる
#--------------------------------------------------------------------------
alias escape_un_s escape
def escape
escape_un_s
clear_states2
end
end
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1