State Common Events

● ARCHIVED · READ-ONLY
Started by gilgamar 20 posts View original ↗
  1. State Common Events v1.02


    Instruction
    State add/remove common events via notetags. Ex:

    <StateCE Event: 1 onadd>
    <StateCE Event: 2 onremove>


    <StateCE Event: 3 onexpire>


    The preceding lines will run common event ID 0001 on add, common event ID 0002 on remove, and common event ID 0003 on expire for the state tagged. The expire flag will cause the common event to occur if the state is removed by walking/damage/turn/tick or action removal based on the state settings.


    I could take this one step further and add flags for each of the above mentioned removal cases for finer control over progressive states.


    Version 1.02


    Added 2 new parameters that assign information to game variables. Parameter Actor will store the actor ID in the chosen game variable. Parameter Occurs will store if state is add remove or expire (1, 2, and 3)  in the chosen game variable. You can then check these variables in the state's common event.


    Compatibility


    Should be compatible with most everything but let me know if you encounter issues. Verified working with Yanfly's ATB and turn-based battle engine.


    Use Case Examples


    Want to have Haste remove Slow? Stop remove Haste? Venom become the more deadly Poison? Poison inflict death after 10 turns? These are some of the things you can do with state events.


    Tips


    - Use Tsukihime's CommonEventQueue if you want to queue multiple events.


    http://himeworks.com/2015/10/common-event-queue-mv/


    Script v1.02

    Spoiler
    /*=============================================================================
    * Gilgamar - State Common Event
    * By Gilgamar
    * G_StateCE.js
    * Version: 1.02
    * Free for commercial and non commercial use.
    *=============================================================================*/

    var Imported = Imported || {};
    Imported.G_StateCE = true;

    var StateCE = {};

    /*:
    * @plugindesc v1.02 Enable state common events.
    * @author Gilgamar
    *
    * @param Actor
    * @desc ID of game variaable to use.
    * Contains ID of actor affected by state change.
    * @default 0
    *
    * @param Occurs
    * @desc ID of game variaable to use.
    * Shows if state is onadd, onremove or onexpire.
    * @default 0
    *
    * @help
    * ============================================================================
    * Introduction
    * ============================================================================
    * Enables state add/remove common events via notetags. Ex:
    *
    * <StateCE Event: 1 onadd>
    * <StateCE Event: 2 onremove>
    * <StateCE Event: 3 onexpire>
    *
    * The precedling lines will run common event ID 001 on state add, ID 002
    * on state remove, and ID 003 on state expire for the state tagged.
    *
    * Use the game variable assigned in param Actor to determine which actor was
    * affected by state change in your common event.
    *
    * Use the game variable assigned in param Occurs to determine which state
    * change was applied. You can use this instead of separate common events.
    * 1 = onadd
    * 2 = onremove
    * 3 = onexpire
    *
    * ============================================================================
    * Changelog
    * ============================================================================
    * Version 1.02:
    * - Added Actor param so we can see who was affected by state change
    * - Added Occurs param so we can if state is add/remove or expire
    *
    * Version 1.01:
    * - Added onexpire notetag for progressive states
    * - Compatibile with Yanfly BattleEngine (turn-based and tick-based)
    *
    * Version 1.00:
    * - Enables state add/remove common events via notetags
    */

    //=============================================================================
    // Parameters
    //=============================================================================

    StateCE.Parameters = PluginManager.parameters('G_StateCE');
    StateCE.Param = StateCE.Param || {};
    StateCE.Param.Actor = String(StateCE.Parameters['Actor']);
    StateCE.Param.Occurs = String(StateCE.Parameters['Occurs']);

    //=============================================================================
    // Notetags
    //=============================================================================

    StateCE.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
    DataManager.isDatabaseLoaded = function() {
    if (!StateCE.DataManager_isDatabaseLoaded.call(this)) return false;
    DataManager.processSTATECENotetags1($dataStates);
    return true;
    };

    DataManager.processSTATECENotetags1 = function(group) {
    // Check if function called more than once
    if (DataManager.processSTATECENotetags1.calledTimes++ > 1) return;

    var note1 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONADD)>/i;
    var note2 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONREMOVE)>/i;
    var note3 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONEXPIRE)>/i;

    for (var n = 1; n < group.length; n++) {
    var obj = group[n];
    var notedata = obj.note.split(/[\r\n]+/);
    // console.log(notedata)
    obj.commonEvents = [];
    for (var i = 0; i < notedata.length; i++) {
    var line = notedata;
    if (line.match(note1)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onadd'
    });
    } else if (line.match(note2)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onremove'
    });
    } else if (line.match(note3)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onexpire'
    });
    }
    }
    }
    // console.log(group)

    };
    DataManager.processSTATECENotetags1.calledTimes = 0;

    //=============================================================================
    // StateCE Functions
    //=============================================================================

    // Queue the common event associated with the state
    StateCE.changeState = function(actor, stateId, occurs) {
    var state = $dataStates[stateId];
    for (var i = 0; i < state.commonEvents.length; i++){
    var commonEvent = state.commonEvents;
    if (commonEvent.occurs === occurs) {

    // DEBUGGING
    console.log('Actor', actor._actorId)
    console.log('State', occurs)
    console.log(commonEvent)

    // Saving ID of actor affected by state change
    $gameVariables.setValue(StateCE.Param.Actor, actor._actorId);
    // Saving state occurs
    if (occurs === 'onadd') $gameVariables.setValue(StateCE.Param.Occurs, 1);
    if (occurs === 'onremove') $gameVariables.setValue(StateCE.Param.Occurs, 2);
    if (occurs === 'onexpire') $gameVariables.setValue(StateCE.Param.Occurs, 3);
    // Update common events
    $gameTemp.reserveCommonEvent(commonEvent.eventId);
    }
    }
    }
    StateCE.onAdd = function(actor, stateId) {this.changeState(actor, stateId, 'onadd')}
    StateCE.onRemove = function(actor, stateId) {this.changeState(actor, stateId, 'onremove')}
    StateCE.onExpire = function(actor, stateId) {this.changeState(actor, stateId, 'onexpire')}

    // Borrowed this function from Himeworks progressive states
    Game_Battler.prototype.compareStates = function(oldStates, newStates) {
    for (var i = 0, len = oldStates.length; i < len; i++) {
    var stateId = oldStates;
    var state = $dataStates[stateId];
    if (!newStates.contains(stateId)) {
    StateCE.onExpire(this, stateId);
    }
    }
    }

    //=============================================================================
    // RPG Maker Overrides for State Add/Remove
    //=============================================================================

    StateCE.Game_Battler_removeState = Game_Battler.prototype.removeState;
    Game_Battler.prototype.removeState = function(stateId) {
    StateCE.Game_Battler_removeState.call(this, stateId);
    StateCE.onRemove(this, stateId);
    };

    StateCE.Game_Battler_addState = Game_Battler.prototype.addState;
    Game_Battler.prototype.addState = function(stateId) {
    StateCE.Game_Battler_addState.call(this, stateId);
    StateCE.onAdd(this, stateId);
    };

    //=============================================================================
    // RPG Maker Overrides for State Expiry
    //=============================================================================

    /* Remove by walking */
    StateCE.GameActor_updateStateSteps = Game_Actor.prototype.updateStateSteps;
    Game_Actor.prototype.updateStateSteps = function(state) {
    StateCE.GameActor_updateStateSteps.call(this, state);
    if (!this.isStateAffected(state.id)) { StateCE.onExpire(this, state.id) }
    };

    /* Remove by damage */
    StateCE._GameBattler_removeStatesByDamage = Game_Battler.prototype.removeStatesByDamage;
    Game_Battler.prototype.removeStatesByDamage = function() {
    var oldStates = this._states.clone();
    StateCE._GameBattler_removeStatesByDamage.call(this);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    /* Remove by turn end and action end */
    if (Imported.YEP_BattleEngineCore) {

    StateCE.Game_BattlerBase_updateStateTurnTiming = Game_BattlerBase.prototype.updateStateTurnTiming;
    Game_BattlerBase.prototype.updateStateTurnTiming = function(timing) {
    var oldStates = this._states.clone();
    StateCE.Game_BattlerBase_updateStateTurnTiming.call(this, timing);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    StateCE.Game_BattlerBase_updateStateTicks = Game_BattlerBase.prototype.updateStateTicks;
    Game_BattlerBase.prototype.updateStateTicks = function() {
    var oldStates = this._states.clone();
    StateCE.Game_BattlerBase_updateStateTicks.call(this);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    } else {

    StateCE._GameBattler_removeStatesAuto = Game_Battler.prototype.removeStatesAuto;
    Game_Battler.prototype.removeStatesAuto = function(timing) {
    var oldStates = this._states.clone();
    StateCE._GameBattler_removeStatesAuto.call(this, timing);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    };

    //=============================================================================
    // RPG Maker Code References
    //=============================================================================

    // Game_Actor.prototype.updateStateSteps = function(state) {
    // if (state.removeByWalking) {
    // if (this._stateSteps[state.id] > 0) {
    // if (--this._stateSteps[state.id] === 0) {
    // this.removeState(state.id);
    // }
    // }
    // }
    // };
    //
    // Game_Battler.prototype.removeStatesByDamage = function() {
    // this.states().forEach(function(state) {
    // if (state.removeByDamage && Math.randomInt(100) < state.chanceByDamage) {
    // this.removeState(state.id);
    // }
    // }, this);
    // };
    //
    // Game_Battler.prototype.removeStatesAuto = function(timing) {
    // this.states().forEach(function(state) {
    // if (this.isStateExpired(state.id) && state.autoRemovalTiming === timing) {
    // this.removeState(state.id);
    // }
    // }, this);
    // };
    //
    // Game_Battler.prototype.removeState = function(stateId) {
    // if (this.isStateAffected(stateId)) {
    // if (stateId === this.deathStateId()) {
    // this.revive();
    // }
    // this.eraseState(stateId);
    // this.refresh();
    // this._result.pushRemovedState(stateId);
    // }
    // };
    //
    // Game_Battler.prototype.addState = function(stateId) {
    // if (this.isStateAddable(stateId)) {
    // if (!this.isStateAffected(stateId)) {
    // this.addNewState(stateId);
    // this.refresh();
    // }
    // this.resetStateCounts(stateId);
    // this._result.pushAddedState(stateId);
    // }
    // };






    Script v1.01

    Spoiler
    /*=============================================================================
    * Gilgamar - State Common Event
    * By Gilgamar
    * G_StateCE.js
    * Version: 1.01
    * Free for commercial and non commercial use.
    *=============================================================================*/

    var Imported = Imported || {};
    Imported.G_StateCE = true;

    var StateCE = {};

    /*:
    * @plugindesc v1.01 Enable state common events.
    * @author Gilgamar
    *
    * @help
    * ============================================================================
    * Introduction
    * ============================================================================
    * Enables state add/remove common events via notetags. Ex:
    *
    * <StateCE Event: 1 onadd>
    * <StateCE Event: 2 onremove>
    * <StateCE Event: 3 onexpire>
    *
    * The precedling lines will run common event ID 001 on state add and common
    * event ID 002 on state removal for the state tagged.
    *
    * ============================================================================
    * Changelog
    * ============================================================================
    * Version 1.01:
    * - Added onexpire notetag for progressive states
    * - Compatibile with Yanfly BattleEngine (turn-based and tick-based)
    *
    * Version 1.00:
    * - Enables state add/remove common events via notetags
    */

    //=============================================================================
    // Notetags
    //=============================================================================

    StateCE.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
    DataManager.isDatabaseLoaded = function() {
    if (!StateCE.DataManager_isDatabaseLoaded.call(this)) return false;
    DataManager.processSTATECENotetags1($dataStates);
    return true;
    };

    DataManager.processSTATECENotetags1 = function(group) {
    // Check if function called more than once
    if (DataManager.processSTATECENotetags1.calledTimes++ > 1) return;

    var note1 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONADD)>/i;
    var note2 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONREMOVE)>/i;
    var note3 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONEXPIRE)>/i;

    for (var n = 1; n < group.length; n++) {
    var obj = group[n];
    var notedata = obj.note.split(/[\r\n]+/);
    // console.log(notedata)
    obj.commonEvents = [];
    for (var i = 0; i < notedata.length; i++) {
    var line = notedata;
    if (line.match(note1)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onadd'
    });
    } else if (line.match(note2)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onremove'
    });
    } else if (line.match(note3)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onexpire'
    });
    }
    }
    }
    console.log(group)

    };
    DataManager.processSTATECENotetags1.calledTimes = 0;

    //=============================================================================
    // StateCE Functions
    //=============================================================================

    StateCE.changeState = function(stateId, occurs) {
    var state = $dataStates[stateId];
    for (var i = 0; i < state.commonEvents.length; i++){
    var commonEvent = state.commonEvents;
    if (commonEvent.occurs === occurs) {
    console.log(commonEvent)
    switch (occurs) {
    case 'onadd':
    console.log('state add')
    break;
    case 'onremove':
    console.log('state remove')
    break;
    case 'onexpire':
    console.log('state expire')
    break;
    }
    $gameTemp.reserveCommonEvent(commonEvent.eventId);
    }
    }
    }
    StateCE.onAdd = function(stateId) {this.changeState(stateId, 'onadd')}
    StateCE.onRemove = function(stateId) {this.changeState(stateId, 'onremove')}
    StateCE.onExpire = function(stateId) {this.changeState(stateId, 'onexpire')}

    // Borrowed this function from Himeworks progressive states
    Game_Battler.prototype.compareStates = function(oldStates, newStates) {
    for (var i = 0, len = oldStates.length; i < len; i++) {
    var stateId = oldStates;
    var state = $dataStates[stateId];
    if (!newStates.contains(stateId)) {
    StateCE.onExpire(stateId);
    }
    }
    }

    //=============================================================================
    // RPG Maker Overrides for State Add/Remove
    //=============================================================================

    StateCE.Game_Battler_removeState = Game_Battler.prototype.removeState;
    Game_Battler.prototype.removeState = function(stateId) {
    StateCE.Game_Battler_removeState.call(this, stateId);
    StateCE.onRemove(stateId);
    };

    StateCE.Game_Battler_addState = Game_Battler.prototype.addState;
    Game_Battler.prototype.addState = function(stateId) {
    StateCE.Game_Battler_addState.call(this, stateId);
    StateCE.onAdd(stateId);
    };

    //=============================================================================
    // RPG Maker Overrides for State Expiry
    //=============================================================================

    /* Remove by walking */
    StateCE.GameActor_updateStateSteps = Game_Actor.prototype.updateStateSteps;
    Game_Actor.prototype.updateStateSteps = function(state) {
    StateCE.GameActor_updateStateSteps.call(this, state);
    if (!this.isStateAffected(state.id)) { StateCE.onExpire(state.id) }
    };

    /* Remove by damage */
    StateCE._GameBattler_removeStatesByDamage = Game_Battler.prototype.removeStatesByDamage;
    Game_Battler.prototype.removeStatesByDamage = function() {
    var oldStates = this._states.clone();
    StateCE._GameBattler_removeStatesByDamage.call(this);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    /* Remove by turn end and action end */
    if (Imported.YEP_BattleEngineCore) {

    StateCE.Game_BattlerBase_updateStateTurnTiming = Game_BattlerBase.prototype.updateStateTurnTiming;
    Game_BattlerBase.prototype.updateStateTurnTiming = function(timing) {
    var oldStates = this._states.clone();
    StateCE.Game_BattlerBase_updateStateTurnTiming.call(this, timing);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    StateCE.Game_BattlerBase_updateStateTicks = Game_BattlerBase.prototype.updateStateTicks;
    Game_BattlerBase.prototype.updateStateTicks = function() {
    var oldStates = this._states.clone();
    StateCE.Game_BattlerBase_updateStateTicks.call(this);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    } else {

    StateCE._GameBattler_removeStatesAuto = Game_Battler.prototype.removeStatesAuto;
    Game_Battler.prototype.removeStatesAuto = function(timing) {
    var oldStates = this._states.clone();
    StateCE._GameBattler_removeStatesAuto.call(this, timing);
    var newStates = this._states;
    this.compareStates(oldStates, newStates);
    };

    };

    //=============================================================================
    // RPG Maker Code References
    //=============================================================================

    // Game_Actor.prototype.updateStateSteps = function(state) {
    // if (state.removeByWalking) {
    // if (this._stateSteps[state.id] > 0) {
    // if (--this._stateSteps[state.id] === 0) {
    // this.removeState(state.id);
    // }
    // }
    // }
    // };
    //
    // Game_Battler.prototype.removeStatesByDamage = function() {
    // this.states().forEach(function(state) {
    // if (state.removeByDamage && Math.randomInt(100) < state.chanceByDamage) {
    // this.removeState(state.id);
    // }
    // }, this);
    // };
    //
    // Game_Battler.prototype.removeStatesAuto = function(timing) {
    // this.states().forEach(function(state) {
    // if (this.isStateExpired(state.id) && state.autoRemovalTiming === timing) {
    // this.removeState(state.id);
    // }
    // }, this);
    // };
    //
    // Game_Battler.prototype.removeState = function(stateId) {
    // if (this.isStateAffected(stateId)) {
    // if (stateId === this.deathStateId()) {
    // this.revive();
    // }
    // this.eraseState(stateId);
    // this.refresh();
    // this._result.pushRemovedState(stateId);
    // }
    // };
    //
    // Game_Battler.prototype.addState = function(stateId) {
    // if (this.isStateAddable(stateId)) {
    // if (!this.isStateAffected(stateId)) {
    // this.addNewState(stateId);
    // this.refresh();
    // }
    // this.resetStateCounts(stateId);
    // this._result.pushAddedState(stateId);
    // }
    // };






    Script v1.00

    Spoiler
    /*=============================================================================
    * Gilgamar - State Common Event
    * By Gilgamar
    * G_StateCE.js
    * Version: 1.00
    * Free for commercial and non commercial use.
    *=============================================================================*/

    var Imported = Imported || {};
    Imported.G_StateCE = true;

    var StateCE = {};

    /*:
    * @plugindesc v1.00 Enable state common events.
    * @author Gilgamar
    *
    * @help
    * ============================================================================
    * Introduction
    * ============================================================================
    * Enables state add/remove common events via notetags. Ex:
    *
    * <StateCE Event: 1 onadd>
    * <StateCE Event: 2 onremove>
    *
    * The precedling lines will run common event ID 001 on state add and common
    * event ID 002 on state removal for the state tagged.
    *
    * ============================================================================
    * Changelog
    * ============================================================================
    * Version 1.00:
    * - Enables state add/remove common events via notetags
    */

    //=============================================================================
    // Notetags
    //=============================================================================

    StateCE.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
    DataManager.isDatabaseLoaded = function() {
    if (!StateCE.DataManager_isDatabaseLoaded.call(this)) return false;
    DataManager.processSTATECENotetags1($dataStates);
    return true;
    };

    DataManager.processSTATECENotetags1 = function(group) {
    // Check if function called more than once
    if (DataManager.processSTATECENotetags1.calledTimes++ > 1) return;

    var note1 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONADD)>/i;
    var note2 = /<(?:STATECE EVENT):[ ](\d+)[ ](ONREMOVE)>/i;

    for (var n = 1; n < group.length; n++) {
    var obj = group[n];
    var notedata = obj.note.split(/[\r\n]+/);
    // console.log(notedata)
    obj.commonEvents = [];
    for (var i = 0; i < notedata.length; i++) {
    var line = notedata;
    if (line.match(note1)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onadd'
    });
    } else if (line.match(note2)) {
    obj.commonEvents.push({
    eventId: parseInt(RegExp.$1),
    occurs: 'onremove'
    });
    }
    }
    }
    console.log(group)

    };
    DataManager.processSTATECENotetags1.calledTimes = 0;

    //=============================================================================
    // StateCE Functions
    //=============================================================================

    StateCE.changeState = function(stateId, occurs) {
    var state = $dataStates[stateId];
    for (var i = 0; i < state.commonEvents.length; i++){
    var commonEvent = state.commonEvents;
    if (commonEvent.occurs === occurs) {
    console.log(commonEvent)
    $gameTemp.reserveCommonEvent(commonEvent.eventId);
    }
    }
    }
    StateCE.onAdd = function(stateId) {this.changeState(stateId, 'onadd')}
    StateCE.onRemove = function(stateId) {this.changeState(stateId, 'onremove')}

    //=============================================================================
    // RPG Maker Overrides
    //=============================================================================

    StateCE.Game_Battler_removeState = Game_Battler.prototype.removeState;
    Game_Battler.prototype.removeState = function(stateId) {
    StateCE.Game_Battler_removeState.call(this, stateId);
    console.log('removing state')
    StateCE.onRemove(stateId);
    };

    StateCE.Game_Battler_addState = Game_Battler.prototype.addState;
    Game_Battler.prototype.addState = function(stateId) {
    StateCE.Game_Battler_addState.call(this, stateId);
    console.log('adding state')
    StateCE.onAdd(stateId);
    };

    // Game_Battler.prototype.removeState = function(stateId) {
    // if (this.isStateAffected(stateId)) {
    // if (stateId === this.deathStateId()) {
    // this.revive();
    // }
    // this.eraseState(stateId);
    // this.refresh();
    // this._result.pushRemovedState(stateId);
    // }
    // };
    //
    // Game_Battler.prototype.addState = function(stateId) {
    // if (this.isStateAddable(stateId)) {
    // if (!this.isStateAffected(stateId)) {
    // this.addNewState(stateId);
    // this.refresh();
    // }
    // this.resetStateCounts(stateId);
    // this._result.pushAddedState(stateId);
    // }
    // };






    Terms of use and Credits


    Free to use in any project.


    Credit me as Gilgamar if you use this!


    Thanks to Tsukihime also.
  2. Thanks!!


    You are the best! It works!
  3. could i use this to make a skill/spell that might infect targets with status effects that the user of the skill/spelll has?
  4. Unfortunately it doesn't work for me... I added the notetags in the state note section, added the common event, but when an enemy gets this state then nothing happens....
  5. I get "Type Error: Undefined is not a fuction", any solution? This only works if this script is actived.
  6. This generally means you have added a script or plugin, then resumed a game that you'd saved prior to adding it. Try starting a new game and see if it still does it. If it does, please open the developer tools (F8) and grab a screenshot of the console.

    @gilgamar you should use code tags when you insert scripts. Look at what it's done to the formatting just pasting it in without the code tags. In some situations, the forum software will also convert specific character sequences to emojis, making the script unusable without fixing, which a lot of people would not know how to do.
  7. I actually find the error...
    By default, this options are set in 0, so, this crash the game.
    My bad for no read the entire thing, but still, this plugin doesn't work, like @jjleroy say it.
  8. @gilgamar Although this is in Plugins in Development, it looks like a completed plugin.
    Would you please confirm its status.
    Thank you.
  9. @Kes Hi it was working at the time it was made although RPG Maker has gone through several revisions I have not yet confirmed it's working to date. If it appears to be working it may well be. It was one of the more stable plugins I had developed.

    I need to reconfigure my system and get back into development so it'll be awhile before I can check on my plugins. Hope to have it done by month end.

    @Shaz I think the forums went through many revisions as well! I think my post has been altered as I'm sure I would have used a format to produce useful code before although I see what you mean. I will revise my plugin posts after I confirm the code works.
  10. gilgamar said:
    I think the forums went through many revisions as well! I think my post has been altered

    You may be right. There were a lot of posts with code where all the line breaks were removed (these were when the code tag was used), and that may have been after your initial post. I've never seen any that were converted though that removed the code block. And all the ones I can recall were for Ace and not MV - I wonder if different languages were affected in different ways ...
  11. @gilgamar So, the plugin is complete, but may need to be updated due to MV updates?
  12. Thank you! I really need this plugin :)
  13. @gilgamar I'm going to go ahead and move this to Plugin Releases. If that is incorrect, please let me know.
  14. So, i think the plugin isn't going to work, right?
  15. Similar but more annoying problem here - crashes my game every time. I have v1.02 saved (will try 1.01 as I can't fall all the way back because Yanfly) and all I get is the same "Type Error: Undefined is not a fuction" bull**** that @NatuElChido got a year ago but in the form of a boot loop.

    EDIT: No difference. I really need this kind of solution because I need to do this for my training battle sequence. I'll try again with just the event itself and see if I can get my implementation going that way. For now, at least have someone check the plugin to see what may be at fault.

    As a side note (and for the avoidance of doubt) I also have a mix of stuff from SRD, Hime, DKTools and waynee95 among others.

    EDIT: Still nothing. For my case I ended up doing a common event linked to a skill to do what I needed but it doesn't change that using this plugin needs verification that it will actually do its **** and not boot loop the game.
  16. So does this plugin work anymore or no?
    Because I've been messing with it for the last 2 hours trying to get it to do ANYTHING,
    If it does work can someone please explain how to use it because the code I put in does nothing.
  17. The OP hasn't been active here for 3 years, and this plugin is over 5 years old at the last update. There may be alternatives to this by now.. But if you want this one in particular to work, your MV would have to be at a version prior to 1.3. Cant verify as the forum posts don't go back that far. Maybe @Archeia has it archived or knows the answer.

    Edit: Upon reading some of the other posts here, it looks like it may have been released with a lot of bugs the author never fixed. Probably better off finding an alternative.
  18. Yeah... it has been awhile since there's been any kind of activity on this plugin. This does kind of answer my question from back then, however. As it has been way more than 30 days since then I'm going to turn this over to the mods for any advisement on how to handle this so that there's no confusion going forward.

    Granted, the necropost rule is not usually enforced for support matters but given the state of the plugin (and complete lack of updates from the OP) it may not be worth keeping things going.

    EDIT: I have delivered the message and now leave it to an official decision. I wish I was able to get a response on this back when I posted my own question but seemingly that is no longer possible, so I totally get the lack of direction on this. But sadly there is nothing we can do about it.
  19. The necroposting rules don't count for the Plugin Releases forum, so there's no harm posting in here (even if you are bumping up a thread that has a faulty plugin).

  20. slimmmeiske2 said:
    [mod]The necroposting rules don't count for the Plugin Releases forum, so there's no harm posting in here (even if you are bumping up a thread that has a faulty plugin).[/mod]
    Which I also acknowledged myself if you read the previous post. But given the state of the plugin I wasn't sure if this was even worth any further discussion.

    With that said, you can always use a common event or other mechanism to check for a state and then do whatever you need to have done.