MV - SRPG Engine MV - Plugins for creating Tactical Battle System

● ARCHIVED · READ-ONLY
Started by RyanBram 3313 posts Page 104 of 166 View original ↗
  1. dopan said:
    did you get any error that could give me a hint?
    i am sorry we will figure this out sooner or later..
    Unfortunately no console errors. Just a seemingly visual bug? I'll play with the console to see if I can track down the dead unit's coordinates.
  2. moldy said:
    Unfortunately no console errors. Just a seemingly visual bug? I'll play with the console to see if I can track down the dead unit's coordinates.
    i dont think that the xy data has something to do with the Issue..

    .. i just killed 3 Orcs in 3 different Turns, without any Issues..

    also i removed "break" from 2 other functions, where they seem to be not needed..(github updated)
    ->but that doesnt seem to change anything, from what i tested i get no Issues before and after that last chage


    At the moment i got no idea what else could give you these problems in your project, because i can replicate the problem in my test project so far.
    And without Error-Info its a bit difficult..

    edit

    perhaps that Issues might be related to other plugins and incompatiblety?
    did you try to turn any other plugin "OFF" ?

    edit2
    i need more informations , to what that Issue is related, at the moment the only hint is that it happens to "enemyUnits" after the first turn?
    -actors dont have that issue?
    -> does that also happen, if no "enemyUnit" get killed in the first turn??
    -> are these different "enemyUnits"(different_enemyId) or are they clones(same_enemyID) ?
    -> if you open the console and check the GraveEvents with using:
    JavaScript:
    $gameMap.events()
    Screenshot_3.png
    Screenshot_4.png
    this shows where you find following data in the GraveEvent
    -> eventid: event id on the current map
    -> _graveActor: id of related actor if that grave is an actorGrave else 0
    -> _graveDataEID: event id of the grave on the GraveMap
    -> _graveUnitID: UnitID of related Unit if that grave is an enemyUnitGrave else 0

    with these infos you can see which graves belong to which Actors or enemyUnits, and that way you can see which Grave might be missing..

    i guess that for some reason the graves you are missing are not even spawned in the first place, but i dont know why..
    --------------------------
    @
    xabileug
    i recognized an Issue with your plugin SRPG_UnitMapInfo,
    some Units have empty HP bars even if they still have some hp left..
    idk why that happens , i might need to look into that later..
    Screenshot_2.png
  3. dopan said:
    i dont think that the xy data has something to do with the Issue..

    .. i just killed 3 Orcs in 3 different Turns, without any Issues..

    also i removed "break" from 2 other functions, where they seem to be not needed..(github updated)
    ->but that doesnt seem to change anything, from what i tested i get no Issues before and after that last chage


    At the moment i got no idea what else could give you these problems in your project, because i can replicate the problem in my test project so far.
    And without Error-Info its a bit difficult..

    edit

    perhaps that Issues might be related to other plugins and incompatiblety?
    did you try to turn any other plugin "OFF" ?

    edit2
    i need more informations , to what that Issue is related, at the moment the only hint is that it happens to "enemyUnits" after the first turn?
    -actors dont have that issue?
    -> does that also happen, if no "enemyUnit" get killed in the first turn??
    -> are these different "enemyUnits"(different_enemyId) or are they clones(same_enemyID) ?
    -> if you open the console and check the GraveEvents with using:
    JavaScript:
    $gameMap.events()
    View attachment 207529
    View attachment 207530
    this shows where you find following data in the GraveEvent
    -> eventid: event id on the current map
    -> _graveActor: id of related actor if that grave is an actorGrave else 0
    -> _graveDataEID: event id of the grave on the GraveMap
    -> _graveUnitID: UnitID of related Unit if that grave is an enemyUnitGrave else 0

    with these infos you can see which graves belong to which Actors or enemyUnits, and that way you can see which Grave might be missing..

    i guess that for some reason the graves you are missing are not even spawned in the first place, but i dont know why..
    --------------------------
    @
    xabileug
    i recognized an Issue with your plugin SRPG_UnitMapInfo,
    some Units have empty HP bars even if they still have some hp left..
    idk why that happens , i might need to look into that later..
    View attachment 207521

    Alright I think I finally figured it out after turning off all my plugins. Enemies spawned with
    "this.addBattleEnemy(EventID, EnemyID, UnitID)" have like a 50-50 chance of spawning a grave. Certain enemy ID's just dont spawn a grave ever if they are spawned in battle using the this.addBattleEnemy. If I place these enemies straight on the map from the map editor instead of this.addBattleEnemy, they always spawn a grave. It looks like this.addBattleEnemy is the culprit.

    I will also add, that putting:

    $gameMap.setEnemytUnitID();
    $gameMap.graveSetup();

    in some of the battle event boxes (like actor turn, etc) helped force some this.addBattleEnemy units to spawn their graves, but certain enemy IDs just refused to spawn their graves no matter what I did
  4. moldy said:
    Alright I think I finally figured it out after turning off all my plugins. Enemies spawned with
    "this.addBattleEnemy(EventID, EnemyID, UnitID)" have like a 50-50 chance of spawning a grave. Certain enemy ID's just dont spawn a grave ever if they are spawned in battle using the this.addBattleEnemy. If I place these enemies straight on the map from the map editor instead of this.addBattleEnemy, they always spawn a grave. It looks like this.addBattleEnemy is the culprit.

    I will also add, that putting:

    $gameMap.setEnemytUnitID();
    $gameMap.graveSetup();

    in some of the battle event boxes (like actor turn, etc) helped force some this.addBattleEnemy units to spawn their graves, but certain enemy IDs just refused to spawn their graves no matter what I did
    "this.addBattleEnemy(EventID, EnemyID, UnitID)"

    is the scriptcall which you requested..to add battleUnits later into battle..
    ---------------------------------------------------------------------------
    This might be related somehow to unsing "addEnemy"&"addActor", even if the "meta" and "note data" and "GraveSetup"&"setEnemytUnitID" got added by using the requested Scriptcall above ect..

    But its not related to the "summon"-plugin? or other plugins?
    --------------
    the whole story sounds like i should try to re_write the :
    "importActorGraves" & "importEnemyGraves" -functions, because they somehow dont get some of the graves which are called/searched.
    Its already late , i think this wont be done tonight^

    But i will let you know as soon i made that next Plugin Edit
  5. dopan said:
    "this.addBattleEnemy(EventID, EnemyID, UnitID)"

    is the scriptcall which you requested..to add battleUnits later into battle..
    ---------------------------------------------------------------------------
    This might be related somehow to unsing "addEnemy"&"addActor", even if the "meta" and "note data" and "GraveSetup"&"setEnemytUnitID" got added by using the requested Scriptcall above ect..

    But its not related to the "summon"-plugin? or other plugins?
    --------------
    the whole story sounds like i should try to re_write the :
    "importActorGraves" & "importEnemyGraves" -functions, because they somehow dont get some of the graves which are called/searched.
    Its already late , i think this wont be done tonight^

    But i will let you know as soon i made that next Plugin Edit

    I wasn't actively testing summons from Shoukang's plugin, but after a quick test just now, it looks like they suffer from the same invisible grave problem too.

    I do appreciate you adding the addBattler feature! I hope I don't sound nitpicky about it :)

    EDIT: @dopan I did a quick test of Shoukang summon death and it looks like your
    $gameMap.setEnemytUnitID();
    $gameMap.graveSetup();
    works perfectly. They produce graves when killed. So to recap, as long as the unit is not spawned on the map by this.addEnemy or this.assBattleEnemy, then they always produce a grave event.
  6. @dopan, yes that's why you download the 1.03a, its because the variable assignment from the customization becomes null somewhere, or just edit the line inside the plugin..

    JavaScript:
        // hpgauge color
        Sprite_HpGaugeSprite.prototype.refresh = function() {
            this.bitmap.clear();
            if (this._hp === 0) return;
            this.bitmap.fillRect(0, 0, HPGaugeWidth, HPGaugeHeight, HPGaugeOutline);
            var d = HPGaugeWidth - HPGaugeHeight + HPGaugeOutline;
            var w = Math.floor(this._hp / this._mhp * 30);
    
            if (!this._battler || this._battler.isActor()) {
                var hpcolor = HPNumColor1;  // actor
            } else {
                hpcolor = HPNumColor2; // enemy
            }
            var fill1 = 0;
            var fill2 = 0;
            if (!this._battler || this._battler.isActor()) {
                fill1 = HPGaugeColor1;//"#4be1fe";
                fill2 = HPGaugeColor3;//"#1b55c6";
                this.bitmap.fillRect(1, 1, w, HPGaugeFill, this._hp === this._mhp ? fill1 : fill2);
            } else {
                fill1 = HPGaugeColor2//"#fe4b69";
                fill2 = HPGaugeColor4//"#d02442";
                this.bitmap.fillRect(1, 1, w, HPGaugeFill, this._hp === this._mhp ? fill1 : fill2);
            }
        };

    EDIT:

    okay the one that makes the bar goes empty is the
    JavaScript:
    var d = HPGaugeWidth - HPGaugeHeight + HPGaugeFill; //HPGaugeOutline is wrong variable
    var w = Math.floor(this._hp / this._mhp * d);  // d is assumed that formula, replacing the value 30

    here's the latest version


    for people looking for STATIC EXP create a plugin put it above all others:
    JavaScript:
    // Override!
    Window_Status.prototype.drawExpInfo = function(x, y) {
        var lineHeight = this.lineHeight();
        var expTotal = TextManager.expTotal.format(TextManager.exp);
        var expNext = TextManager.expNext.format(TextManager.level);
        var value1 = this._actor.currentExp() - this._actor.currentLevelExp() ; // <-- editted
        var value2 = this._actor.nextRequiredExp();
        if (this._actor.isMaxLevel()) {
            value1 = '-------';
            value2 = '-------';
        }
        this.changeTextColor(this.systemColor());
        this.drawText(expTotal, x, y + lineHeight * 0, 270);
        this.drawText(expNext, x, y + lineHeight * 2, 270);
        this.resetTextColor();
        this.drawText(value1, x, y + lineHeight * 1, 270, 'right');
        this.drawText(value2, x, y + lineHeight * 3, 270, 'right');
    };
    
    // Override! 
      var srpgEXPNeeded = 100;  // assign value per level here
      Game_Actor.prototype.expForLevel = function(level) {
        return srpgEXPNeeded*(level-1); // <-- editted
      };
  7. moldy said:
    I wasn't actively testing summons from Shoukang's plugin, but after a quick test just now, it looks like they suffer from the same invisible grave problem too.

    I do appreciate you adding the addBattler feature! I hope I don't sound nitpicky about it :)

    EDIT: @dopan I did a quick test of Shoukang summon death and it looks like your
    $gameMap.setEnemytUnitID();
    $gameMap.graveSetup();
    works perfectly. They produce graves when killed. So to recap, as long as the unit is not spawned on the map by this.addEnemy or this.assBattleEnemy, then they always produce a grave event.

    Ok after a lot of testing ect..
    I finaly could replicate the problem with enemyGraves and fix it.

    we had several issues:
    - i had another Typo mistake in the Function "importEnemyGraveEID"
    (but i am not sure if that typo was from ealier or from editing & bugtesting^^ nvm)
    - the "meta" and "note" cant be added correctly, the way i tried it..
    (but i recgnized that this isnt needed anyway, we only need EventID, actorID and enemyID&enemyUnitID)
    - on Enemys the UnitD wasnt added Correctly because it needs " " in such case:
    example:
    JavaScript:
    //ScripCall:  this.addBattleEnemy(EventID, EnemyID, "UnitID");
    this.addBattleEnemy(10, 2, "9");
    // adds data to the Event of the new Enemy Unit
    if Unit ID is 9 in this scriptcall it must be "9"

    However i fixed it ,now the plugin should work for everybody, no matter if using an Spawner Plugin or if using these Scriptcalls:
    ScripCall: "this.addBattleEnemy(EventID, EnemyID, "UnitID");"
    => Example: this.addBattleEnemy(10, 2, "9");
    (that example above is the enemy with => EventID:10 => EnemyID:2 => UnitID:9)

    ScripCall: "this.addBattleActor(EventID, ActorID);"
    => Example: this.addBattleActor(10, 2);
    (that example above is the actor with => EventID:10 => ActorID:2)

    Updated Plugin is @ my Github
    (plugin help info is also updated)
  8. dopan said:
    Ok after a lot of testing ect..
    I finaly could replicate the problem with enemyGraves and fix it.

    we had several issues:
    - i had another Typo mistake in the Function "importEnemyGraveEID"
    (but i am not sure if that typo was from ealier or from editing & bugtesting^^ nvm)
    - the "meta" and "note" cant be added correctly, the way i tried it..
    (but i recgnized that this isnt needed anyway, we only need EventID, actorID and enemyID&enemyUnitID)
    - on Enemys the UnitD wasnt added Correctly because it needs " " in such case:
    example:
    JavaScript:
    //ScripCall:  this.addBattleEnemy(EventID, EnemyID, "UnitID");
    this.addBattleEnemy(10, 2, "9");
    // adds data to the Event of the new Enemy Unit
    if Unit ID is 9 in this scriptcall it must be "9"

    However i fixed it ,now the plugin should work for everybody, no matter if using an Spawner Plugin or if using these Scriptcalls:
    ScripCall: "this.addBattleEnemy(EventID, EnemyID, "UnitID");"
    => Example: this.addBattleEnemy(10, 2, "9");
    (that example above is the enemy with => EventID:10 => EnemyID:2 => UnitID:9)

    ScripCall: "this.addBattleActor(EventID, ActorID);"
    => Example: this.addBattleActor(10, 2);
    (that example above is the actor with => EventID:10 => ActorID:2)

    Updated Plugin is @ my Github
    (plugin help info is also updated)

    Alright I got good news and slightly bad news. :D

    Graves now all function properly! this.addBattleEnemy and this.addBattleActor units all produce graves so far! Yay!

    Slightly bad news is the revive functions in your plugin don't seem to work :p. When

    this.unitRaise(8);

    is called, for example, nothing happens.
  9. moldy said:
    When

    this.unitRaise(8);

    is called, for example, nothing happens.
    another typo mistake.. and i changed the script a little bit, it should work now pls try again

    updated Version on my Github
    (and thanks for bugtesting)
  10. Finally got the effective attack icon showing up correctly, thanks to boomy's code in previous post
    1637774629746.png

    just add these code in Window_SrpgPrediction.prototype.drawSrpgBattleActionName
    JavaScript:
            if (actor.isActor()) {
                if ($gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1].elementRate($gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1].currentAction().item().damage.elementId) > 1) {
                    this.drawIcon(73, x - 28, y + 2);
                } else if ($gameSystem.EventToUnit($gameTemp.targetEvent().eventId())[1].elementRate($gameSystem.EventToUnit($gameTemp.activeEvent().eventId())[1].currentAction().item().damage.elementId) < 1) {
                    this.drawIcon(74, x - 28, y + 2);
                }
            }
  11. dopan said:
    another typo mistake.. and i changed the script a little bit, it should work now pls try again

    updated Version on my Github
    (and thanks for bugtesting)

    Hmm, I've tested on my project and the vanilla demo and graves are back to being invisible when units die :(
  12. moldy said:
    Hmm, I've tested on my project and the vanilla demo and graves are back to being invisible when units die :(
    the last Plugin_edit only changed that singel raise scriptcall, nothing else. i tested gravespawn again and it works..
    so i got no idea without error info

    last plugin edit info screenshot
    Spoiler
    Screenshot_1.png

    Even if the error is not gamebreaking, when it doesnt work, open console F8 and look for some red error text.
    Such text could help us to find out whats wrong..
    (I hope that you only have any wrong setup in your project)
  13. dopan said:
    the last Plugin_edit only changed that singel raise scriptcall, nothing else. i tested gravespawn again and it works..
    so i got no idea without error info

    last plugin edit info screenshot
    Spoiler
    View attachment 207770

    Even if the error is not gamebreaking, when it doesnt work, open console F8 and look for some red error text.
    Such text could help us to find out whats wrong..
    (I hope that you only have any wrong setup in your project)
    I replaced my line 517 with your github edits and removed the extra parenthesis from " Game_Interpreter.prototype.unitRaise = function(eventID))" and graves return back to normal but revive still doesn't work. Can you show me what your revive skill looks like? Mine just targets a cell next to the caster and is supposed to revive the first dead ally based on actor ID and place them on the empty cell. Am I doing it wrong?

    Console error messages shows:
  14. moldy said:
    I replaced my line 517 with your github edits and removed the extra parenthesis from " Game_Interpreter.prototype.unitRaise = function(eventID))" and graves return back to normal but revive still doesn't work. Can you show me what your revive skill looks like? Mine just targets a cell next to the caster and is supposed to revive the first dead ally based on actor ID and place them on the empty cell. Am I doing it wrong?

    Console error messages shows:
    ok i had to edit all "raise"-skills because of few typos .. ("E" instead of "e")
    ..pls replace the whole plugin, not just a few parts..just to be sure

    pls let me know if everything works after that in your projects

    Github updated

    -----------------
    @ all i am close to finish the bugfix/upgrade of the enemyEquip-Plugin..

    -still max 5 EquipSlots
    (actors can use more , but thoese wont be displayed or affected from steal/break skills)

    now it also allows "break_skills"

    -added "breakchance" & "stealchance" skillNotes

    when a skill trys to break&steal, .. if break succeds, steal wont happen
    (broken equip cant be stolen)

    - Now its possible to decide yourself what kind of equip is used for any of the 5 slots
    (means, it supports displaying 2 weapons instead of a shield for example, or other setups..)
    - Steal & Break skills will focus on the slotID to steal/break,no matter what is equiped on that slotID

    - StealChance & BreakChance can also be changed via scriptcall with custom execution or using "preActionPhase"

    - there is a Global"Steal" and a Global"Break" ChanceVariable in the plugin param..
    this will reset all changes of these Chances to that paramData in "afterAction"..


    -> as soon i think that everything works , i might also add "steal_Items" related to what the enemys have in their "dropItemSetup.. but i am not sure if i can make that happen..

    -> same thing for "stealGold" related to the goldAmount they would drop..
  15. dopan said:
    ok i had to edit all "raise"-skills because of few typos .. ("E" instead of "e")
    ..pls replace the whole plugin, not just a few parts..just to be sure

    pls let me know if everything works after that in your projects

    Github updated

    Line 517 still had an extra parenthesis. After fixing that, I still get this error when trying to revive an actor:

    this.unitRaise(eventID) uses actor's eventID, not the grave event ID, right? Just making sure.
  16. moldy said:
    Line 517 still had an extra parenthesis. After fixing that, I still get this error when trying to revive an actor:

    this.unitRaise(eventID) uses actor's eventID, not the grave event ID, right? Just making sure.
    ok i fixed the parenthesis thing, & the plugin couldnt call ""erase actor grave"
    (the error says its not an function)
    ..that was because the function was wrongly named.. its a $gameTemp.. and Not $gamesSystem function..

    Fixed it in all raise skills Github updated
    (pls let me know if it works)


    and yes event Id is always event id of that map..
    Grave_Event_ID is called "GraveEID"
    (most of my mistakes are typos, or copy paste mistakes, i am sorry , but i work a bit chaotic)
  17. dopan said:
    ok i fixed the parenthesis thing, & the plugin couldnt call ""erase actor grave"
    (the error says its not an function)
    ..that was because the function was wrongly named.. its a $gameTemp.. and Not $gamesSystem function..

    Fixed it in all raise skills Github updated
    (pls let me know if it works)


    and yes event Id is always event id of that map..
    Grave_Event_ID is called "GraveEID"
    (most of my mistakes are typos, or copy paste mistakes, i am sorry , but i work a bit chaotic)

    Alright, revive works, yay! I noticed if I kill the unit again after reviving him, his 2nd grave spawns at his previous grave location and not his current location.
  18. moldy said:
    Alright, revive works, yay! I noticed if I kill the unit again after reviving him, his 2nd grave spawns at his previous grave location and not his current location.
    wow, i admit, that was no bug i just forgot about it when making the plugin..
    its a simple code that was missing. "setPosition(x, y)"

    It should be fixed now!

    Github updated!
  19. dopan said:
    wow, i admit, that was no bug i just forgot about it when making the plugin..
    its a simple code that was missing. "setPosition(x, y)"

    It should be fixed now!

    Github updated!

    You madman, I think you've done it! Graves appear 100% now! Revive works! Revived unit's produce graves on their new cell when they move and get killed again! Spawned reinforcements make graves too! Graves for everyone! Yay!
  20. @moldy can you show how the graves at revive work in your game? how about AoE revive skills?