设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
搜索附件  
同能RPG制作大师 › 附件中心 › 同能RM技术讨论区 › RPG Maker VA 讨论区 › Event triggers Event: Map001.rar

Event triggers Event: Map001.rar

 

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:

[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 == 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:# [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/
简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)
关闭

幸运抽奖

社区每日抽奖来袭,快来试试你是欧皇还是非酋~

立即查看

Loading...

QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

GMT+8, 2026-10-5 05:06 , Processed in 0.095296 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部