Project1
标题:
RTAB整合公共事件特效脚本具体使用方法
[打印本页]
作者:
htx1219
时间:
2010-8-2 09:41
标题:
RTAB整合公共事件特效脚本具体使用方法
原帖地址
http://rpg.blue/htm/Topic_19484.htm
先求范例吧……我觉得有范例这个问题就直接解决了……
然后开始问
我觉得RTAB和这个公共事件都是极其强大的系统……拼到一起大部分效果应该都OK的……
(公共事件战斗特效的地址
http://rpg.blue/portal.php?mod=view&aid=40019
)
因为范例是ftp的……所以下载不了,对于这个脚本如何使用有点无法理解(本人脚本盲啊脚本盲)……是直接修改RTAB的某个位置么?还是跟一般的一样插入到main前面就成……
求各位大神指点@@
原帖叶子的代码如下
==============================================================================
RTAB公共事件战斗特效 v1.1
==============================================================================
By 叶子
6-12-2006 v1.0
先行体验版
6-16-2006 v1.1
修正对己方技能二次行动的BUG
--------------------------------------------------------------------------
使用说明
--------------------------------------------------------------------------
核心思想来自SailCat的“23种战斗特效的公共事件版”
地址:http://www.66rpg.com/shownews.asp?id=19
范例中也附带了一份
请先阅读并理解“23种战斗特效的公共事件版”,再使用本脚本
这个脚本是将公共事件实现战斗特效的原理带进RTAB战斗系统,原理是将公共事件的执行
提前,这与“23种战斗特效的公共事件版”是一样的
注意:由于RTAB战斗系统比较复杂,所以不保证这个脚本不会出现BUG。如发现BUG,请上
rpg.blue 发贴说明
具体特效的实现脚本请参考“23种战斗特效的公共事件版”的原文
不过用在RTAB中的特效脚本将会有一点不同,以下逐一讲解:
1、所有与hp有关的操作全部删除。因为RTAB中,HP并不是在应用技能效果的同时减去,
而是在显示伤害的时候减去,所以只需要对伤害进行修改,事件执行完就会自动减去HP
2、所有target_battlers全部改成active_battler.target
3、原来的 目标.damage 要改成 目标.damage[使用者] ,因为RTAB的伤害是以Hash表的
方式储存,主键为造成伤害者
其实光这样讲比较枯燥,请参考范例工程中的战斗特效公共事件,测试可以用战斗测试
还有一些需注意的地方写在了公共事件的注释中
=end
#==============================================================================
# ■ Scene_Battle (分割定義 4)
#------------------------------------------------------------------------------
# バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :active_battler
attr_reader :skill
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 3 : 行動側アニメーション)
# 行动回合步骤3:行动方动画,插入执行公共事件
#--------------------------------------------------------------------------
alias common_event_effects_update_phase4_step3 update_phase4_step3
def update_phase4_step3(battler)
# コモンイベント ID が有効の場合
# 公共事件ID有效的情况下
if battler.event > 0
# 战斗者代入实例变量
@active_battler = battler
@skill = $data_skills[battler.current_action.skill_id]
# イベントをセットアップ
# 设置事件解释器
common_event = $data_common_events[battler.event]
$game_system.battle_interpreter.setup(common_event.list, 0)
# 清除公共事件ID
battler.event = 0
end
common_event_effects_update_phase4_step3(battler)
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
#--------------------------------------------------------------------------
alias common_event_effects_update_phase4_step5 update_phase4_step5
def update_phase4_step5(battler)
common_event_effects_update_phase4_step5(battler)
# 行动者伤害表示
for target in battler.target
if battler.damage[target] != nil
battler.damage_pop[target] = true
end
end
# 刷新全部状态窗口
status_refresh(0)
end
end
复制代码
厄……
我用的RTAB是很久远的66rpg整合脚本中带的那个,貌似是1.05版本的,如果我没猜错的话应该是改这一部分……
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 3 : 行動側アニメーション)
#--------------------------------------------------------------------------
def update_phase4_step3(battler)
# ヘルプウィンドウの更新。アクションの種別で分岐
case battler.current_action.kind
when 0 # 基本
if battler.current_action.basic == 1
@help_window.set_text($data_system.words.guard, 1)
@help_wait = @help_time
end
if battler.is_a?(Game_Enemy) and battler.current_action.basic == 2
@help_window.set_text("逃げる", 1)
@help_wait = @help_time
end
when 1 # スキル
skill = $data_skills[battler.current_action.skill_id]
@help_window.set_text(skill.name, 1)
@help_wait = @help_time
when 2 # アイテム
item = $data_items[battler.current_action.item_id]
@help_window.set_text(item.name, 1)
@help_wait = @help_time
end
# 行動側アニメーション (ID が 0 の場合は白フラッシュ)
if battler.anime1 == 0
battler.white_flash = true
battler.wait = 5
# カメラ設定
if battler.target[0].is_a?(Game_Enemy)
camera_set(battler)
end
else
battler.animation.push([battler.anime1, true])
speller = synthe?(battler)
if speller != nil
for spell in speller
if spell != battler
if spell.current_action.spell_id == 0
spell.animation.push([battler.anime1, true])
else
skill = spell.current_action.spell_id
spell.animation.push([$data_skills[skill].animation1_id, true])
spell.current_action.spell_id = 0
end
end
end
end
battler.wait = 2 * $data_animations[battler.anime1].frame_max - 10
end
# ステップ 4 に移行
battler.phase = 4
end
复制代码
和这一部分
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
#--------------------------------------------------------------------------
def update_phase4_step5(battler)
# ダメージ表示
for target in battler.target
if target.damage[battler] != nil
target.damage_pop[battler] = true
target.damage_effect(battler, battler.current_action.kind)
battler.wait = @damage_wait
# ステータスウィンドウをリフレッシュ
status_refresh(target)
end
end
# ステップ 6 に移行
battler.phase = 6
end
复制代码
不过前面那个class和attr的部分插到哪里呢……还有这两部分是替换还是增加……替换的话那个XXX3少的东西有点太多了吧……
而且根据
http://rpg.blue/portal.php?mod=view&aid=40020
,是不是那个phase6也要改……
还有那个23种特效主帖里面提到的战斗不能改成无限制啥的还要不要动了……
自己没有试过,因为实在是无从下手……求支援啊!
作者:
htx1219
时间:
2010-8-2 14:29
自顶一下……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1