| 赞 | 46 |
| VIP | |
| 好人卡 | |
| 积分 | 97 |
| 经验 | |
| 最后登录 | 2026-6-17 |
| 在线时间 | 2775 小时 |
梦石0
星屑9716
在线时间2775 小时
注册时间2008-9-5
回帖3458
   
|
发表于 2017-1-23 16:50:12
|
显示全部楼层
本帖最后由 cinderelmini 于 2017-1-23 17:50 编辑
写了一个核心代码,未测试,也许有BUG,
使用方法的话,代码丢进Main前,然后,在事件(物品关联公共事件)中使用【脚本】输入:
- $game_system.set_hack_time(秒数)
复制代码 设置不遇敌时间。
之后还有就是得在遇敌处理的时候,加一个判定:
- if $game_system.party_hacking?
复制代码 来判定队伍是否处于不遇敌状态。
【代码】- class Game_System
- # 剧情开关ID,打开的时候停止不遇敌计时(不用时填nil或0)
- StorySwitch = 50
-
- # 设置不遇敌时间(单位:秒)
- def set_hack_time(sec = 30)
- @hack_time = (sec.to_f * Graphics.frame_rate).round
- end
- # 更新不遇敌计时
- def update_hack_time
- if (StorySwitch or StorySwitch == 0)
- return if $game_switches[StorySwitch]
- end
- return if (@hack_time.nil? or @hack_time <= 0)
- @hack_time -= 1
- # 时间到了提示
- if @hack_time <= 0
- $game_message.position = 1 # 对话框位置,0, 1, 2:上,中,下
- $game_message.background = 1 # 对话框类型,0, 1, 2:普通,暗色,透明
- $game_message.add("不遇敌时间到了")
- end
- end
- # 队伍处于不遇敌状态?
- def party_hacking?
- return false if @hack_time.nil?
- return true if @hack_time > 0
- return false
- end
- end
- # 如果需要在任何界面都更新不遇敌计时,
- # 则去掉下面Scene_Base行的注释,并注释掉Scene_Map行,
- # 如果只需要在地图时计时,则反过来。
- #~ class Scene_Base
- class Scene_Map < Scene_Base
- alias sny46_170123_update update
- def update
- sny46_170123_update
- $game_system.update_hack_time
- end
- end
- class Game_Player < Game_Character
- # 监视遇敌处理,如果处于不遇敌计时,则视为不遇敌
- alias sny46_170123_encounter encounter
- def encounter
- return false if $game_system.party_hacking?
- return sny46_170123_encounter
- end
- end
复制代码 |
评分
-
查看全部评分
|