Made for a
request here.
This allows an event with a name tag <eet> to trigger another event with name tag <eer> it came into collision with.
Features:
[1] Event triggering another Event
[2] Able to check who triggered the event
[3] Able to set up conditional branches to have different trigger actions depending on who triggered the event.
(possible usage example: npc vs npc battle field)
(possible usage example: random killer)
(possible usage example: randomly flip switches)
How to Use:
[1] Paste this below Material and above Main
[2] Add <eet> in the event's name to enable it to trigger another event.
[3] Set trigger type to [event trigger] on the event with <eet> name tag
[4] Add <eer> in the target event's name to enable it to be trigger-able by another event
Note:
Event with <eet> name tag will still be able to trigger itself when it comes into collide with the player.
It will be counted as triggered by player.
[5] To check if it's a player/event that triggers the event, use the script calls below in your conditional branches
script box.
Script calls for Conditional Branches:
Check if triggered by Player:
$game_map.events[@event_id].triggered_by == 0
Check if triggered by Any Event:
$game_map.events[@event_id].triggered_by != 0
Check if triggered by Event ID N:
$game_map.events[@event_id].triggered_by == N(where N is the event id number)
Compatibility:
This script overwrites the event trigger method, there might be a chance of conflict if you have another custom script overwriting the event triggers.
Terms of Use:
Free for both commercial and non-commercial
Sample Map:
Simply make a new project, add this script and extract the Map001.rvdata2 file into your Data Folder
NPC vs NPC Battle Field with 3rd Party Medic:
Map001.rar
Demo Game:
http://forums.rpgmakerweb.com/index.php?/topic/53887-medic-medic/
Script:
Spoiler#==============================================================================# ■ Meow Face Event - Event Trigger#------------------------------------------------------------------------------# Allow Event with name tag to trigger other events with name tag on collision#==============================================================================# How to Use:# [1] Paste this below Material and above Main# [2] Add <eet> in the event's name to enable it to trigger another event.# [3] Set trigger type to [event tigger] on the event with <eet> name tag# [4] Add <eer> in the target event's name to enable it to be trigger-able by another event## Script calls for Conditional Branches:# Check If triggered by player:# $game_map.events[@event_id].triggered_by == 0# Check If triggered by event:# $game_map.events[@event_id].triggered_by != 0# Check If triggered by event id N:# $game_map.events[@event_id].triggered_by == N (where N = event id number)#==============================================================================class Game_Player < Game_Character def start_map_event(x, y, triggers, normal) #overwrite return if $game_map.interpreter.running? $game_map.events_xy(x, y).each do |event| if event.trigger_in?(triggers) && event.normal_priority? == normal event.triggered_by = 0 event.start end end endendclass Game_Event < Game_Character attr_reader :meowname attr_accessor :triggered_by alias meow_ee_name initialize def initialize(map_id, event) meow_ee_name(map_id, event) @meowname = event.name @lock_timer = 0 @triggered_by = 0 end def meow_lock @locked = true @lock_timer = 60 end def meow_start return if empty? @starting = true meow_lock if trigger_in?([2]) end def check_event_trigger_touch(x, y) #overwrite return if $game_map.interpreter.running? if @trigger == 2 && $game_player.pos?(x, y) @triggered_by = 0 start if !jumping? && normal_priority? end $game_map.events_xy(x, y).each do |event| if @trigger == 2 && @event.name.include?('<eet>') if !jumping? && normal_priority? && $game_map.events[event.id].meowname.include?('<eer>') event.triggered_by = @event.id event.meow_start $game_map.events[event.id].turn_toward_character($game_map.events[@event.id]) if !@direction_fix meow_lock end end end end alias meow_ee_update update def update meow_ee_update if @lock_timer > 0 @lock_timer -= 1 @locked = false if @lock_timer <= 0 end endend
Update:
[29-Dec-2015]
Updated to add a demo game.
[19-Dec-2015]
Updated the script so it can now checks who triggered the event.
Also added a sample map for those who wish to see how the battle field is done.
[18-Dec-2015]
Fixed the facing problem with the triggered event <eer> so that it will be facing the triggering event <eet> properly.
Also added a 1 second cool down timer to prevent the triggering event <eet> to spam the trigger continuously.
本贴来自国际rpgmaker官方论坛作者:MeowFace处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:
https://forums.rpgmakerweb.com/threads/event-triggers-event.53173/