赞 | 40 |
VIP | 559 |
好人卡 | 234 |
积分 | 47 |
经验 | 251834 |
最后登录 | 2024-10-11 |
在线时间 | 5240 小时 |
Lv3.寻梦者 (版主) 八宝粥的基叔
- 梦石
- 0
- 星屑
- 4684
- 在线时间
- 5240 小时
- 注册时间
- 2009-4-29
- 帖子
- 14318
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 雪流星 于 2009-7-15 21:43 编辑
其实我自己也只是接触VX才几个月,通过这几个月的摸索,发现了一个妙招,可能老手们早就懂得了。本次发帖的目的就是让更多的朋友学会这一妙招,已经会的朋友请勿见笑。
不要看本帖子长就没有耐心看,其实说明的道理很容易理解,绝对对你有很大的帮助!
有时候,想在脚本里实现某一目标会很困难,但是使用事件法却很容易,可是事件法却没有开始条件,遇到这种情况怎么办?
例如:想在角色会心一击的时候让画面变成全红色0.3秒,怎么实现?
当然,你可以直接写脚本:- $game_troop.screen.start_flash(Color.new(255,0,0,255),30) if @critical == true
复制代码 可是,对于我们出学者来说,很多脚本都不会编写,而事件里又有“画面的闪烁”设置,这样我们就可以用调用公共事件的方法直接实现目标而避开困难的脚本。
调用公共事件可以使用以下5行脚本实现(例如调用16号公共事件,在Game_Battler类的“@critical = false if prevent_critical # 防止会心一击? ” 下面的一行添加):- if @critical == true
- common_event = $data_common_events[16]
- $game_troop.interpreter.setup(common_event.list,0)
- $game_troop.interpreter.update
- end
复制代码 这样,我们就可以在16号公共事件里设置画面闪烁即可。
又比如:想让某角色在装备了连击宝剑后会有某一特殊效果,比如连续地攻击,可是判断是否持有某武器的脚本我们不会写,于是我们就可以这样设置:
首先,在Game_BattleAction类的def make_speed的最后一个end上面插入:- common_event = $data_common_events[2]
- $game_troop.interpreter.setup(common_event.list,0)
- $game_troop.interpreter.update
复制代码 即调用2号公共事件。因为def make_speed是在战斗前比较行动速度,所以可以作为战前武器判断起用事件的开始条件。这样,我们在公共事件2里面写入,条件分歧:如果某角色持有连击宝剑,设置开关10号为打开,否则为关闭。
然后在Scene_Battle类的def execute_action_attack里设置:- if $game_switches[10] ==ture
- ……
- else
- ……
- end
复制代码 例如,我就是这样实现1号角色连击的:(再写脚本太长了,不写了,估计写了也没有人看,如果有朋友强烈要求我写出,我会在后面跟帖补充。)
要是掌握得好的话,还可以用脚本启动事件并用事件启动脚本乃至多次反复来实现我们预期的目的,我在游戏制作中也常使用这些手法,在此顺便提下。
我也是初学者,有说得不对的地方也请大家指教。谢谢。 |
评分
-
查看全部评分
|