夜狠简单 发表于 2017-2-8 20:31 RUBY 代码复制
|
guoxiaomi 发表于 2017-2-6 19:29 #-------------------------------------------------------------------------- # ● 生成特技行动结果 #-------------------------------------------------------------------------- alias xrxs19_make_skill_action_result make_skill_action_result def make_skill_action_result(battler, plus_id) # 获取特技 @skill = $data_skills[battler.current_action.skill_id + plus_id] # 获取行动者特技附加的战斗特效 battler.set_xrxs19_special_effect(battler.skill_element_set(@skill)) # 行动时附加自身状态 if battler.current_action.p_state > 0 battler.pp_state(battler,battler.current_action.p_state) end # 行动时解除自身状态 if battler.current_action.m_state > 0 battler.remove_state(battler.current_action.m_state) end # recall xrxs19_make_skill_action_result(battler, plus_id) end 战斗特效这段 |
guoxiaomi 发表于 2017-2-6 19:29 我在战斗特效这个脚本里发现了一句make_skill_action_result(battler, plus_id),之后把原来RTAB脚本里的make_skill_action_result(battler)改成这句结果1782还是错 不过变成了NameError |
#-------------------------------------------------------------------------- # ● スキルアクション 結果作成 #-------------------------------------------------------------------------- def make_skill_action_result(battler) # スキルを取得 @skill = $data_skills[battler.current_action.skill_id] # 連携スキルであるかどうか確認 speller = synthe?(battler) # 強制アクションでなければ unless battler.current_action.forcing # SP 切れなどで使用できなくなった場合 if speller == nil unless battler.skill_can_use?(@skill.id) # ステップ 6 に移行 battler.phase = 6 return end end end # SP 消費 temp = false if speller != nil for spell in speller if spell.current_action.spell_id == 0 spell.sp -= @skill.sp_cost else spell.sp -= $data_skills[spell.current_action.spell_id].sp_cost end # ステータスウィンドウをリフレッシュ status_refresh(spell) end else battler.sp -= @skill.sp_cost # ステータスウィンドウをリフレッシュ status_refresh(battler) end # アニメーション ID を設定 battler.anime1 = @skill.animation1_id battler.anime2 = @skill.animation2_id # コモンイベント ID を設定 battler.event = @skill.common_event_id # 対象側バトラーを設定 set_target_battlers(@skill.scope, battler) # スキルの効果を適用 for target in battler.target if speller != nil damage = 0 d_result = false effective = false state_p = [] state_m = [] for spell in speller if spell.current_action.spell_id != 0 @skill = $data_skills[spell.current_action.spell_id] end effective |= target.skill_effect(spell, @skill) if target.damage[spell].class != String d_result = true damage += target.damage[spell] elsif effective effect = target.damage[spell] end state_p += target.state_p[spell] state_m += target.state_m[spell] target.damage.delete(spell) target.state_p.delete(spell) target.state_m.delete(spell) end if d_result target.damage[battler] = damage elsif effective target.damage[battler] = effect else target.damage[battler] = 0 end target.state_p[battler] = state_p target.state_m[battler] = state_m else target.skill_effect(battler, @skill) end end end |
guoxiaomi 发表于 2017-2-6 19:29 #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始) #-------------------------------------------------------------------------- def update_phase4_step2(battler) # 強制アクションでなければ unless battler.current_action.forcing # 制約が [敵を通常攻撃する] か [味方を通常攻撃する] の場合 if battler.restriction == 2 or battler.restriction == 3 # アクションに攻撃を設定 battler.current_action.kind = 0 battler.current_action.basic = 0 end end # アクションの種別で分岐 case battler.current_action.kind when 0 # 基本 if fin? battler.phase = 6 return end make_basic_action_result(battler) when 1 # スキル if fin? and $data_skills[battler.current_action.skill_id].scope == 1..2 battler.phase = 6 return end make_skill_action_result(battler) when 2 # アイテム if fin? and $data_items[battler.current_action.item_id].scope == 1..2 battler.phase = 6 return end make_item_action_result(battler) end if battler.phase == 2 # ステップ 3 に移行 battler.phase = 3 end end 这是搜索make_skill_action_result出来的第一个地方 楼下第二个地方 大大帮看一看有没有问题 |
guoxiaomi 发表于 2017-2-6 19:29 make_skill_action_result(battler) 就这一句 不明白什么意思没法改 |
没用过rtab,这个报错一般是你把 1 个参数传递给了需要 2 个参数的方法。1782 行是哪个方法呢?可以发出来看看吗 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-25 06:47
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.