Project1

标题: 自定义事件触发条件 [打印本页]

作者: zh99998    时间: 2008-8-23 01:16
标题: 自定义事件触发条件
自定义事件触发条件,就是不用RMVX自带的事件触发条件,而是指定别的条件
例如角色位置 等

使用方法:
建立一个事件,触发方式为自动触发
在第一句写上条件

注意:如果事件不能正常终止,请在事件最后加一句脚本
$game_map.need_refresh = true

范例:http://rpg.blue/upload_program/files/Project4_99853904.rar

  1. class Game_Player < Game_Character
  2.   attr_accessor:refresh_by_step_zh99998
  3.   alias check_event_trigger_here_zh99998 check_event_trigger_here
  4.   alias initialize_zh99998 initialize
  5.   def initialize
  6.     @refresh_by_step_zh99998 = []
  7.     initialize_zh99998
  8.   end
  9.   def check_event_trigger_here(triggers) #定义每步刷新
  10.     refresh_by_step_zh99998.each do |i|  #循环每个条件
  11.       unless eval(i[0]) == i[1]          #如果与登记的结果不同
  12.         $game_map.need_refresh = true      #地图刷新
  13.         $game_player.refresh_by_step_zh99998 = [] # 清空条件
  14.       end
  15.     end
  16.     check_event_trigger_here_zh99998(triggers)
  17.   end
  18. end
  19. class Game_Event < Game_Character
  20.   alias conditions_met_zh99998? conditions_met?
  21.   def conditions_met?(page)
  22.     c = page.list[0]
  23.     return conditions_met_zh99998?(page) unless c.code == 108
  24.     c = c.parameters[0]                   #取出注释内容
  25.     $game_player.refresh_by_step_zh99998.push([c,eval(c)]) #登记条件和结果
  26.     return eval(c)                        #判断是否符合
  27.   end
  28. end
复制代码


附上几个常用的条件:
$game_player.x < 5 and $game_player.y < 5
$game_player.in_area?($data_areas[1])
$game_actors[3].skill_learn?(1)
$game_party.gold > 100

更多请看小幽的脚本查询手册
http://rpg.blue/viewthread.php?tid=73347&ntime=2008%2D7%2D25+8%3A42%3A55
[LINE]1,#dddddd[/LINE]这个脚本用截图看不出任何效果,所以就不发截图了

              [本贴由 八云紫 于 2008-10-30 15:01:39 进行了编辑]
作者: CIS狂人    时间: 2008-8-23 02:48
..直接用 并行处理 就得了嘛..
作者: 越前リョーマ    时间: 2008-8-23 02:53
角色位置…… - -
好像直接放个事件或者用并行事件都能做……
作者: zh99998    时间: 2008-8-23 03:24
除了角色位置还有别的用处,而且用一句注释比并行+判断省事得多
当有多个需要自定义条件的事件时用这个比用并行流畅,因为这个是每步刷新的[LINE]1,#dddddd[/LINE]另外,这就是火鸡说的【并行(hang)事件】
作者: 沉影不器    时间: 2008-8-23 06:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 经典怀旧者    时间: 2008-8-23 08:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2008-8-24 19:24
自己顶一下……召唤火鸡 [LINE]1,#dddddd[/LINE]版主对此帖的评论:『干什么????』,积分『-0』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 黑之翅膀    时间: 2009-5-28 20:11
哈哈,做射击成武器直接打 [LINE]1,#dddddd[/LINE]版主对此帖的评论:『灌水+挖坟』,积分『-10』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 黑之翅膀    时间: 2009-12-18 21:34
是不是等于  别人NPC跟这个NPC接触都可以的?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1