Project1
标题:
关于持续一定次数的状态
[打印本页]
作者:
shadowearl1
时间:
2017-7-5 23:17
标题:
关于持续一定次数的状态
请问,如何制作出一个无回合限制,持续一定次数的状态?
比如一个状态加防御,持续被攻击3次
作者:
午睡的风铃
时间:
2017-7-6 10:17
最不擅长的就是找到规约,于是把能贴的都贴出来吧。
==============
脚本原址
http://kaisou-ryouiki.sakura.ne.jp/
脚本
=begin
RGSS3
★ 衝撃回数解除ステート ★
指定回数ダメージを受けた際に解除されるステートを作ることができます。
● 仕様 ●==========================================================
衝撃カウントは1以上のダメージを与えた時に限り変動します。
--------------------------------------------------------------------
解除確率はいまのところ一律100%となります。
====================================================================
● 使い方 ●========================================================
データベースのステートのメモ欄に
「衝撃回数解除:n」という文字列を含ませて下さい。nには整数値を。
====================================================================
ver1.00
Last Update : 2011/12/17
12/17 : RGSS2からの移植
ろかん http://kaisou-ryouiki.sakura.ne.jp/
=end
$rsi ||= {}
$rsi["衝撃回数解除ステート"] = true
class RPG::State < RPG::BaseItem
def get_remove_shockcount
self.note.each_line{|line|
return $1.to_i if line =~ /衝撃回数解除:(\d+)/i
}
0
end
end
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● ステート情報をクリア
#--------------------------------------------------------------------------
alias remove_shockcount_state_clear clear_states
def clear_states
remove_shockcount_state_clear
@shockcount_states = {}
end
end
class Game_Battler
#--------------------------------------------------------------------------
# ● 新しいステートの付加
#--------------------------------------------------------------------------
alias add_shockcount_state add_new_state
def add_new_state(state_id)
add_shockcount_state(state_id)
set_count_state(state_id)
end
#--------------------------------------------------------------------------
# ● ステートの解除
#--------------------------------------------------------------------------
alias remove_shockcount_state remove_state
def remove_state(state_id)
remove_shockcount_state(state_id)
out_count_state(state_id)
end
#--------------------------------------------------------------------------
# ● 新しく付加されたステートに解除衝撃回数がある場合、専用ハッシュに加える
#--------------------------------------------------------------------------
def set_count_state(state_id)
shock_count = $data_states[state_id].get_remove_shockcount
@shockcount_states[state_id] = shock_count unless shock_count.zero?
end
#--------------------------------------------------------------------------
# ● 解除されたステートが専用ハッシュに存在する場合に削除
#--------------------------------------------------------------------------
def out_count_state(state_id)
@shockcount_states.delete(state_id) if @shockcount_states.include?(state_id)
end
#--------------------------------------------------------------------------
# ● ダメージによるステート解除
#--------------------------------------------------------------------------
alias shockcount_state_remove_states_by_damage remove_states_by_damage
def remove_states_by_damage
shockcount_state_remove_states_by_damage
@shockcount_states.each_key{|key|
@shockcount_states[key] -= 1
if @shockcount_states[key].zero?
remove_state(key)
@result.removed_states << key
end
}
end
end
复制代码
作用是制作一个受到指定回数伤害才解除的状态
状态备注栏内标记——
衝撃回数解除:n
n替换为数字,表示此状态受n次伤害后解除
如果所受伤害为0,则n不会减少
这个脚本我也没用过,从你的需求和脚本简介上看很符合。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1