Project1
标题:
口袋妖怪NPC訓練家式遇敵
[打印本页]
作者:
superyeha
时间:
2014-3-28 18:56
标题:
口袋妖怪NPC訓練家式遇敵
若果我想弄出像口袋妖怪NPC那種會左望又望,而看到你時會走過來開戰的那樣,
除了在整條路上都鋪滿事件,請問還有沒有其他方法?
作者:
江户川洛奇
时间:
2014-3-28 19:07
http://rpg.blue/thread-238914-1-1.html
看看是不是这个
作者:
gaogs123456
时间:
2014-3-28 19:37
这个简单些(从整合脚本发现的,具体是什么忘了)。
使用方法:
在事件的名称里标注<SensorX>
X代表距离(一格一格计算,任何相邻的两格都算2距离)
第二页用独立开关D,并设置为自动处理(如果用开关打开第三页,这个触发就不会再有效果了)
#==============================================================================
# +++ 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
复制代码
作者:
superyeha
时间:
2014-3-29 01:38
感謝兩位回答,
不過2樓那個我不懂使用,
而3樓那個,不知是我沒弄好還是本來就是這樣,
它現在是全方位探測,就連事件背向主角時也會觸發事件,
並不是我期待的那樣:事件面向的主角時才探測到...
另外,我期望探測的範圍只是單純的一直線
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1