//============================================================================= // RTK_EventMatch.js ver1.01 2016/07/24 // The MIT License (MIT) //============================================================================= /*: * @plugindesc Set switch when all conditions are met in map events * @author Toshio Yamashita (yamachan) * * @param tag name * @desc Tag name used in Event's note. * @default event match * * @help This plugin does not provide plugin commands. * * Event Note: * # Switch s' condition is this event is in r region * # Switch s' condition is this event is not in r region * # Add 1 to variable v, if this event is in r region * # Add 1 to variable v, if this event is not in r region * # Switch s' condition is this event and e event is in a same location * # Switch s' condition is this event and e event is not in a same location * # Add 1 to variable v, if this event and e event is in a same location * # Add 1 to variable v, if this event and e event is not in a same location */ /*:ja * @plugindesc マップでイベントの条件が全て揃うとスイッチをON * @author Toshio Yamashita (yamachan) * * @param tag name * @desc イベントのメモ欄で使用するタグ名 * @default event match * * @help このプラグインにはプラグインコマンドはありません。 * * イベントのメモ: * # スイッチ s の条件はこのイベントが r リージョンにあること * # スイッチ s の条件はこのイベントが r リージョンにないこと * # このイベントが r リージョンにあれば変数 v に1を加える * # このイベントが r リージョンになければ変数 v に1を加える * # スイッチ s の条件はこのイベントが e イベントと同じ位置にあること * # スイッチ s の条件はこのイベントが e イベントと同じ位置にないこと * # このイベントが e イベントと同じ位置にあれば変数 v に1を加える * # このイベントが e イベントと同じ位置になければ変数 v に1を加える * * 解説ページ: * https://github.com/yamachan/jgss-hack/blob/master/RTK_EventMatch.ja.md */ //----------------------------------------------------------------------------- (function(_global) { var N = 'RTK_EventMatch'; var param = PluginManager.parameters(N); var tag_name = param['tag name'] || "event match"; var _Game_Map_updateEvents = Game_Map.prototype.updateEvents; Game_Map.prototype.updateEvents = function() { _Game_Map_updateEvents.call(this); var sws = []; var vars = []; this.events().forEach(function(event) { var meta = event.event().meta || {}; var ret = String(meta[tag_name + "_sr"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var sw = Number(ret[1]); if (sw > 0) { sws[sw] = (sws[sw] === undefined ? true : sws[sw]) && event.regionId() == Number(ret[2]); } } ret = String(meta[tag_name + "_!sr"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var sw = Number(ret[1]); if (sw > 0) { sws[sw] = (sws[sw] === undefined ? true : sws[sw]) && event.regionId() != Number(ret[2]); } } ret = String(meta[tag_name + "_vr"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var v = Number(ret[1]); if (v > 0 && event.regionId() == Number(ret[2])) { vars[v] = vars[v] || 0; vars[v]++; } } ret = String(meta[tag_name + "_!vr"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var v = Number(ret[1]); if (v > 0 && event.regionId() != Number(ret[2])) { vars[v] = vars[v] || 0; vars[v]++; } } ret = String(meta[tag_name + "_se"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var sw = Number(ret[1]); var ev = $gameMap.event(Number(ret[2])) || {}; if (sw > 0) { sws[sw] = (sws[sw] === undefined ? true : sws[sw]) && event.x == ev.x && event.y == ev.y; } } ret = String(meta[tag_name + "_!se"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var sw = Number(ret[1]); var ev = $gameMap.event(Number(ret[2])) || {}; if (sw > 0) { sws[sw] = (sws[sw] === undefined ? true : sws[sw]) && (event.x != ev.x || event.y != ev.y); } } ret = String(meta[tag_name + "_ve"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var v = Number(ret[1]); var ev = $gameMap.event(Number(ret[2])) || {}; if (sw > 0 && event.x == ev.x && event.y == ev.y) { vars[v] = vars[v] || 0; vars[v]++; } } ret = String(meta[tag_name + "_!ve"]||"").match(/^\s*(\d+),(\d+)\s*$/); if (ret) { var v = Number(ret[1]); var ev = $gameMap.event(Number(ret[2])) || {}; if (sw > 0 && (event.x != ev.x || event.y != ev.y)) { vars[v] = vars[v] || 0; vars[v]++; } } }); for (var l=0; l