じ☆ve冰风 发表于 2026-8-1 19:02:37

Event triggers Event

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:

Event triggering another Event

Able to check who triggered the event

Able to set up conditional branches to have different trigger actions depending on who triggered the event.

http://s9.postimg.org/cm76nik5r/npcvsnpcbattlefield.png

(possible usage example: npc vs npc battle field)

http://s22.postimg.org/js6vzrh2p/randomkillerevent.png

(possible usage example: random killer)

http://s15.postimg.org/mwk9bjftj/flipswitchevent.png

(possible usage example: randomly flip switches)

How to Use:
Paste this below Material and above Main
Add <eet> in the event's name to enable it to trigger another event.
Set trigger type to on the event with <eet> name tag
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.

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 == 0Check if triggered by Any Event:

$game_map.events[@event_id].triggered_by != 0Check 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:# Paste this below Material and above Main# Add <eet> in the event's name to enable it to trigger another event.# Set trigger type to on the event with <eet> name tag# 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?()  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.meowname.include?('<eer>')          event.triggered_by = @event.id          event.meow_start          $game_map.events.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:



Updated to add a demo game.



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.



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/
页: [1]
查看完整版本: Event triggers Event