赞 | 2 |
VIP | 0 |
好人卡 | 20 |
积分 | 5 |
经验 | 26304 |
最后登录 | 2024-2-11 |
在线时间 | 487 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 473
- 在线时间
- 487 小时
- 注册时间
- 2011-10-12
- 帖子
- 407
|
这是一个靠近一定距离触发的脚本,使用方法是在事件的名称中加入 <SensorX> X值=距离,1就是1格距离。
要注意:1格以1距离来计算,不论拐弯还是斜对角都是,事件本身的那一格不计算在距离内。
然后第二页事件以D作为独立开关开启条件,用并行处理或者自动执行就OK啦。- #==============================================================================
- # +++ MOG - Event Sensor Range (v1.0) +++
- #==============================================================================
- # By Moghunter
- # http://www.atelier-rgss.com
- #==============================================================================
- # Permite que o evento tenha dois comportamentos, de curta distância e de
- # longa distância.
- #===============================================================================
- # - Utilização
- # Crie uma página com a condição de ativação Self Switch D, está página será
- # usada quando o player estiver perto do evento.
- # Defina a area do sensor do evento colocando este nome no evento.
- #
- # <SensorX>
- #
- # X = Area do Sensor
- #
- #===============================================================================
- module MOG_EVENT_SENSOR
- #Definição da letra da Self Switch que ativará a página de curta distância.
- SENSOR_SELF_SWITCH = "D"
- end
- #===============================================================================
- # ■ GAME EVENT
- #===============================================================================
- class Game_Event < Game_Character
-
- attr_reader :sensor_range
-
- #--------------------------------------------------------------------------
- # ● Initialize
- #--------------------------------------------------------------------------
- alias mog_event_sensor_initialize initialize
- def initialize(map_id, event)
- mog_event_sensor_initialize(map_id, event)
- setup_event_sensor
- end
-
- #--------------------------------------------------------------------------
- # ● Setup Event Sensor
- #--------------------------------------------------------------------------
- def setup_event_sensor
- @sensor_range = @event.name =~ /<Sensor(\d+)>/ ? $1.to_i : 0
- end
-
- #--------------------------------------------------------------------------
- # ● Update
- #--------------------------------------------------------------------------
- alias mog_event_sensor_update update
- def update
- mog_event_sensor_update
- update_event_sensor
- end
-
- #--------------------------------------------------------------------------
- # ● Update Sensor
- #--------------------------------------------------------------------------
- def update_event_sensor
- return if @sensor_range == 0
- distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
- enable = (distance <= @sensor_range)
- key = [$game_map.map_id, self.id, MOG_EVENT_SENSOR::SENSOR_SELF_SWITCH]
- last_enable = $game_self_switches[key]
- execute_sensor_effect(enable,key) if enable != last_enable
- end
- #--------------------------------------------------------------------------
- # ● Execute_Sensor Effect
- #--------------------------------------------------------------------------
- def execute_sensor_effect(enable,key)
- @pattern = 0
- @pattern_count = 0
- $game_self_switches[key] = enable
- self.refresh
- end
-
- end
- $mog_rgss3_event_sensor = true
复制代码 |
评分
-
查看全部评分
|