Lecode Tactical Battle System 0.77.2B

Discussion in 'JS Plugin Releases (RMMV)' started by Lecode, Nov 28, 2016.

  1. Lecode

    Lecode (─‿‿─) Veteran

    Messages:
    490
    Likes Received:
    646
    First Language:
    French
    Primarily Uses:
    N/A
  2. Krystek_My

    Krystek_My Veteran Veteran

    Messages:
    172
    Likes Received:
    39
    First Language:
    Polish
    Primarily Uses:
    RMMV
    Just need to ask. Is it possible use static images in battle? For example a fairy enemy that will use static battler not sheet?
    Why I can't click anything in documentation? Ex. Summoning.
    It may be a dummy wuestion but I just need to know.
     
  3. Doktor_Q

    Doktor_Q I'm not a real doktor, but I am a real Q Veteran

    Messages:
    576
    Likes Received:
    321
    Location:
    Denial
    First Language:
    English
    Primarily Uses:
    RMMV
    The section headers in the documentation for 0.8 mostly don't do anything because most of the sections aren't written yet- sprites and starting cells have been covered so far.

    And from that, your first question- yes! According to the docs, 0.8 allows you to use a combination of character sheets, custom sprites, static sprites, and looping animations to make your character look like whatever, including, if you so desired, building the character out of generator parts during the game so your equipment shows up on your body.
     
  4. Krystek_My

    Krystek_My Veteran Veteran

    Messages:
    172
    Likes Received:
    39
    First Language:
    Polish
    Primarily Uses:
    RMMV
    @Doktor_Q is ot possible then to make a sword that is overlay at the back of battler, but when it attacks overlay is replaced with overlay but with attacking overlay? Also changing attack sprites based on equipment? I know that I can branch "if actor1 has equipped sword - change actor1 image" but how to do it on fightin, death etc; poses?
     
  5. Doktor_Q

    Doktor_Q I'm not a real doktor, but I am a real Q Veteran

    Messages:
    576
    Likes Received:
    321
    Location:
    Denial
    First Language:
    English
    Primarily Uses:
    RMMV
    https://lecodemv.github.io/leTBS/user-guide/entities.html#sprite-overlays Start here, in the 0.8 docs. The battler can have a different animation set for each pose (attacking, idle, dead, etc), and each pose can be built from multiple layers of sprites and modifiers, as defined by states, equipment, etc.
     
    Leon_Artmann likes this.
  6. Heckle_Jeckle87

    Heckle_Jeckle87 Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMMV
    So I am new to using this plug in, thought I would experiment with it. So I thought I would try and create my own simple fight. Nothing special, just the default Bat and the default Guard Sprites. The issue is that when ever the enemy DIES I get the below error message and have to close the game.

    TypeError
    this._spriteset.isEffecting is not a function

    TypeError: this._spriteset.isEffecting is not a function
    at Window_BattleLog.updateWaitMode (YEP_BattleEngineCore.js:5089)
    at Window_BattleLog.updateWait (rpg_windows.js:4803)
    at Window_BattleLog.update (rpg_windows.js:4797)
    at rpg_core.js:7029
    at Array.forEach (<anonymous>)
    at WindowLayer.update (rpg_core.js:7027)
    at rpg_scenes.js:262
    at Array.forEach (<anonymous>)
    at Scene_Battle.Scene_Base.updateChildren (rpg_scenes.js:260)
    at Scene_Battle.Scene_Base.update (rpg_scenes.js:113)

    Up date, after trying to fix the problem I have somehow made things worse and now when the battle starts I get

    TypeError
    Cannot read propery 'select' of undefined

    TypeError: Cannot read property 'select' of undefined
    at Function.BattleManagerTBS.positioningSelect (LeTBS.js:2464)
    at Function.BattleManagerTBS.selectNextStartCell (LeTBS.js:2567)
    at Function.BattleManagerTBS.waitForPositioningInput (LeTBS.js:2438)
    at Function.BattleManagerTBS.updatePositioningPhase (LeTBS.js:2371)
    at Function.BattleManagerTBS.updatePhase (LeTBS.js:2198)
    at Function.BattleManagerTBS.update (LeTBS.js:2079)
    at Scene_Battle.update (LeTBS.js:1229)
    at Function.SceneManager.updateScene (rpg_managers.js:2024)
    at Function.SceneManager.updateMain (rpg_managers.js:1983)
    at Function.SceneManager.update (rpg_managers.js:1907)

    I honestly have no idea what I am doing wrong. I have updated the Actors AND the enemies to reference their sprites. I have used the 1, 5, and 250 Field events to select where enemies, allies, and obstacles are. I am honestly completely lost at this point.
     
    Last edited: Jul 12, 2019
  7. chengsta

    chengsta Veteran Veteran

    Messages:
    44
    Likes Received:
    7
    First Language:
    english
    Primarily Uses:
    RMMV
    did you make sure your enemy sprites have a dead pose?
     
  8. UniqueName

    UniqueName Villager Member

    Messages:
    19
    Likes Received:
    1
    First Language:
    Russian
    Primarily Uses:
    Other
    Btw about dead poses: I typed this in an enemies notebox, so they could use character graphic from img\characters and it works perfectly fine
    <letbs_sprite>
    pose(idle): use_chara, Monster, 0
    pose(dead): use_chara, Damage3, 1, 0
    turn_order: auto
    status_sprite: auto
    </letbs_sprite>
    But when I did the same with actors notebox, actors ignores pose(dead) line
    <letbs_sprite>
    pose(idle): use_chara, Char, 5
    pose(dead): use_chara, CharDmg, 1, 1
    turn_order: auto
    status_sprite: auto
    </letbs_sprite>
    so they still have their sprites when theyre active, but the sprite doesnt change to Damage sprite when theyre KO'd
    Why???
     
  9. Heckle_Jeckle87

    Heckle_Jeckle87 Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMMV
    Yes, the sprites had a dead pose.

    So I do not know WHY this happened, but I figured out how to stop the game from crashing. I downloaded the 2 files available from the front page, LeTBS 0.77.2 (the Update) & LeTBS_0772B(the Demo). Wanting to make sure that I had all of the necessary files I took these and merged them together. For some reason, having the Update files over write the Demo files was causing the errors. I do not know WHY this is happening, I have next to no knowledge of programming or Java. But my guess would be that the Update files have an error(s) in them that does not exist in the Demo version of the game.
     
    Last edited: Jul 14, 2019
  10. pulsusego

    pulsusego Villager Member

    Messages:
    15
    Likes Received:
    13
    First Language:
    English
    Primarily Uses:
    RMMV
    Yeah, that's definitely an odd one. For what it's worth though, if you haven't picked up on it from reading more recent thread posts, the next version is going to be released sometime this summer that revamps a load of the features and, especially, the code. So that kind of odd instability and peculiar update conflict stuff should be a thing of the past once 0.8 comes out. Super looking forward to it, myself, but just figured I'd point it out in case you weren't aware. Cheers! Have fun tinkering with the system. :)
     
    Heckle_Jeckle87 likes this.
  11. Heckle_Jeckle87

    Heckle_Jeckle87 Warper Member

    Messages:
    3
    Likes Received:
    0
    First Language:
    English
    Primarily Uses:
    RMMV
    I have noticed that and I AM looking forward to 0.8. This system looks amazing honestly. I just wish that there was a complete help Document. So far I have found two separate yet incomplete ones.....
     
  12. pulsusego

    pulsusego Villager Member

    Messages:
    15
    Likes Received:
    13
    First Language:
    English
    Primarily Uses:
    RMMV
    Yeah Heckle, that's gonna be coming with the 0.8 release. (or at least shortly afterwards I believe? One or the other.)

    Until then the help FAQ is kindof a rough ideas guide at times lol. I've supplemented it with checking the .js files themselves paired with poking around in the old demo (though after a while that loses most of its usefulness).
     
  13. Pharonix

    Pharonix Shadow Walker Veteran

    Messages:
    613
    Likes Received:
    267
    Location:
    Alpha Centauri Cluster
    First Language:
    English
    Primarily Uses:
    RMMV
    Not sure if anyone missed me or not, but it sure has been a while. For some reason I stopped receiving notifications on this thread.
    I also see many new faces.

    Its good to see that 0.8 is coming along, I was afraid it may have been abandoned. Thankfully that's not the case.

    I sort of burned out mapping for my project, which completely demotivated me from even booting up rpgmaker, That, and 2000+ hours over a period of a year was just.... painful.

    But anyway, my height/move restriction modifications work pretty nicely now that I got them fully integrated with Lecode's LeTBS, and supports things like
    Lava cells, pits, water, etc, (each additional would require a new parameter, but I add those when needed) and allows the creation of "Passive" skills, that enable the character to cross over, or even stand there.
    Like "Lava Walker", "Jump", "Float" etc. I think I still need to program in basic costs for moving to higher ground, but its been so darn long that I
    barely remember what fun functions I actually added.

    But what it is is a combo of 2 plugins i made,
    RegionCosts, and Terrain,
    Basically RegionCosts defines each region's "Cost" and defaults it to 1, unless specified in my editor.
    Terrain does similar but defines each region's "Height" and defaults it to 1 as well, unless specified.
    I had to override the path verification, which I'll admit did take some time, to take into consideration that the player was able to actually move there. It also works for enemy units.
    The more remarkable part is that all this extra code barely impacts the actual battle system itself.
    Unfortunately, what this means is that I have so much custom content (built upon 0.77,) that It looks like it will be completely impossible to port over to 0.8 for a looooong time.
    I think 0.77.2b will still be difficult. So its likely my project will release under 0.77, and that'll be the end of it.


    If anyone is interested, I built in crazy stuff for LeTBS, like
    Charm (fixed completely)
    Cell Height
    Cell Cost (to move there)
    Counters (Like custom counter types)

    There's more, but it is a ton of code to go through,

    So if anyone had ideas that could be added to this system, that Lecode hasn't already thought up for 0.8, let me know. I'm always hungry for more ideas. Just don't ask for a "Undo Move" I have no idea how to do that properly and reset any hp changes.
    Doktor Q wrote something a while back, but I could never get it to work.
     
  14. Doktor_Q

    Doktor_Q I'm not a real doktor, but I am a real Q Veteran

    Messages:
    576
    Likes Received:
    321
    Location:
    Denial
    First Language:
    English
    Primarily Uses:
    RMMV
    @Pharonix It doesn't deal with HP or status changes for that reason- all it's supposed to do is save off your position, move points, etc. when you start moving, and reload them if you hit the "back" button. Naturally, things like attacking our setting off damage tiles prevents it.

    I'll be trying to port my changes over to 0.8 once it comes out- it looks like it's addressing a lot of the issues I had when using 0.7b
     
  15. chengsta

    chengsta Veteran Veteran

    Messages:
    44
    Likes Received:
    7
    First Language:
    english
    Primarily Uses:
    RMMV
    hey pharonix, the undo move works perfectly fine for me. However, I am dying for a working counter attack (and ranged counter attack) plugin, and charm. Glad you were able to get those to work. I have no choice but to wait for .8 and see if those work there. and I hope you don't have too much trouble porting over, as the new features will be awesome, like multi-square units. I'm not java/script/programming etc saavy unfortunately.
     
  16. Pharonix

    Pharonix Shadow Walker Veteran

    Messages:
    613
    Likes Received:
    267
    Location:
    Alpha Centauri Cluster
    First Language:
    English
    Primarily Uses:
    RMMV
    Do yo use 0.77.2b?
    I should have the code for that somewhere

    From what i remember it was just a line or two that was wrong.
    But if you use 0.77.2B i can see if i can get it working, unless you want to wait for 0.8
     
  17. chengsta

    chengsta Veteran Veteran

    Messages:
    44
    Likes Received:
    7
    First Language:
    english
    Primarily Uses:
    RMMV
    ill just wait for .8, thanks :)
     
  18. moldy

    moldy Veteran Veteran

    Messages:
    190
    Likes Received:
    28
    First Language:
    English
    Good to see you're still alive and kicking! We did miss you :). How does the charm status effect work in your project? I was waiting forever for a plugin like this! Also, did you ever get around to seeing if it was possible to control enemy units completely? Like, once the enemy's turn happens, the player can move them around and make them use any skill on whoever they want?
     
  19. Adventurer_inc.

    Adventurer_inc. Technically a Programmer Veteran

    Messages:
    97
    Likes Received:
    40
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMMV
    I'm actually still out and about also. :rock-left:

    @Pharonix
    I'm sticking to 0.77.2B also. I'm actually curious if you ever got forceAction inside counter working? For example, if you want to inject an Action during a counter or do double counter.
     
  20. Pharonix

    Pharonix Shadow Walker Veteran

    Messages:
    613
    Likes Received:
    267
    Location:
    Alpha Centauri Cluster
    First Language:
    English
    Primarily Uses:
    RMMV
    Basically, I created 2 skills/states
    Charm - Repaired charm function. On Player-Controlled Allies, it forces them into "AI" controlled, and swaps the enemy/ally arrays.
    So what this means is according to the game system, The Enemy Units are the player's allies, and vice-versa. IIRC, this required alot of coding to make sure it worked.
    I had to modify everything that said something along the lines of
    var party = user.battler().isEnemy() ? this.enemyEntities() : this.allyEntities();
    and replace it with
    var party = TBSAiManager.prototype.getAlliesOf(user.battler(), true);

    Npt to mention I had to replace the getAlliesOf and getEnemiesOf functions to determine the proper arrays.

    As for "Brainwashing"
    This was more complicated,

    As it is, there was no way to "undo" the AIControlled on enemy entities, nor do they have a command array of sorts.
    So the way it works is it clones the enemy entity, using a tag I created called [CloneID] which tells the system which ActorID the enemy should be cloned as. Then it completely erases the enemy entity, and drops in an Actor with the same exact Stats.
    Obviously this causes issues unless you make sure to never use duplicates of the same enemy in battle.
    On Allies, this functions exactly like "Charm" so there's no issue there.

    I'm actually using 0.77 Base, not the 0.77.2 version, however, I did take some fixes from it, such as the fixed counter system, but thats when I discovered the issue.

    In 0.77's base code for processCounterAttack()
    It doesn't take into consideration the "Cursor"

    Basically when an enemy hits you with an attack, the cursor is now placed on player character, and by default, the player is not in the array of enemies. What this means is the Character performing 'forceAction' is not allowed to perform a counter on their own cell.
    But when I took the code from 0.77.2B, it seemed to have worked fine.

    One thing to note, is that Counter's DO NOT apply to battle parties with more than the default 4
    Since my game had 5 characters always, the 5th character would not counter,
    So I wrote a plugin that raised the max battle party members to a user-defined number through the plugin manager.

    At this point I have

    Offensive Counters - Counters with an Offensive Skill
    Defensive Counters - Counters with a Defensive Skill (Such as a barrier, retreat, etc)
    Support Counters - Counters with a Support Skill (Such as Heal, Atk/Def up, etc)
    Elemental Counters - Counters a specific Element - When done, this will allow countering certain attacks. (like counter a fire spell with Ice/water)
    Physical Counters - Counters that 'counter" with a Physical attack
    Magical Counters - Counters that 'counter" with a Magical attack

    Also, Every character has a maximum number of counters that I modified the Yanfly Counter Control for, to have each character have a maximum counter number, which is reset each turn. I had to implement this CounterLimit when I realized units that can counter, will counter counter-attacks.

    You should see the massive web of javascript, that happens to be much too complex to fully explain.
     

Share This Page