Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Axis & Allies 1942 Online is now available in Early Access! Buy it on Steam. The FAQ is available.
New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

-HOW TO DO STUFF IN WEIDU-

123457»

Comments

  • switswit Member, Translator (NDA) Posts: 472
    edited March 7
  • kjeronkjeron Member Posts: 2,001
    edited March 7
    swit wrote: »
    edit: nevermind
    AddKit() requires a kit-class match in order to remove the old kit - otherwise it removes the default CLAB file for the current class(es).

    At this stage:
    ChangeClass(Myself,BARD)
        AddKit(BLADE)
    
    It's going to remove the effects in CLABBA01, because the current bard "kit" is "trueclass" - if you level up, that is the CLAB file that will be applied.
    It works this way because of Multi/Dual classes - it needs to know which CLAB file to apply/remove for each class, and uses the trueclass CLAB file for any class without a matching kit.

  • switswit Member, Translator (NDA) Posts: 472
    thanks, looks like you've managed to read the message before the edit :)

  • switswit Member, Translator (NDA) Posts: 472
    edited March 8
    kjeron wrote: »
    Only script actions work:
    AddKit(KIT) // Remove existing kit CLAB features and apply new kits CLAB level by level.
    AddSuperKit(KIT) // Retain existing kit CLAB features and apply new kits CLAB level by level.
    ChangeStat(Myself,KIT,#,ADD/SET) // Retain existing kit CLAB features, does not apply new kits CLAB.

    for a moment I had an idea about implementing 3rd ed multiclass system in EE engine using AddKit() / AddSuperKit(). Storing each class level in a local variable or EEex stat (either of them assigned via custom level-up GUI screen coded in Lua) and implementing class specific features after each level using AddKit, with a help of ChangeClass (just to be able to use AddKit) and ChangeStat (to temporary assign LEVEL based on local variable value, so that correct CLAB columns are used). This would make the system highly customizable and easy to work with, but the idea fell flat due to problems with CLAB cleaning.

    @kjeron, I assume there is no way to add multiple kits via AddKit and later remove those kits CLAB features one by one, right? I've experimented with changing classes before AddKit usage and created dummy kits with empty CLABS for each class, but even with this I can't make the AddKit CLAB cleaning work reliably for multiple kits. Too bad there is no RemoveKit action.

    Post edited by swit on
  • subtledoctorsubtledoctor Member Posts: 11,174
    edited March 8
    You could do a reasonable facsimile of 3E multiclassing without that stuff. Gramnarsalad and Aquadrizzt and I have talked it through, and mostly figured it out in concept. Something like:
    - disable all classes except mage/thief and cleric/thief
    - have kits that have class names "fighter" "cleric" "thief" etc.
    - ...but aside from the names, there is zero difference between those kits
    - at each level choose a "class" to level up in, which is in fact just a feat. The feat will set you to the appropriate kit, solely so that your active class appears on the character sheet (this is a bit more like PS:T, but close enough to 3E anyway)
    - the chosen feat, not kit abilities, woukd give you your class abilities (thac0 bump, more spell slots, more actual feats, whatever)

    This would enable an approximation of prestige classes as well. It doesn't require kit abilities, or EEex stats, or anything like that. Just some of kjeron's UI wizardry, level-up abilities built on something like the feat system I'm working on, and a few existing proficiencies as marker stats.

    The main obstacle is the lack of a class that has arcane spells, divine spells, and thief abilities. That UI limitation would get in the way of truly free 3E multiclassing. That's probably where EEex could be helpful.

  • switswit Member, Translator (NDA) Posts: 472
    edited March 8
    yep, the implementation that I came up with above after reading the quoted kjeron's post was more like a cosmetic/usability improvement, not something strictly needed to implement 3rd style multiclassing system. With EEex that allows setting and reading local variables from within GUI, as well as adjusting the buttons available for the class on the fly, the only thing crucial for a robust system without awkward workarounds is the arcane spells, divine spells, and thief abilities availability (and from what I read @Bubb has been experimenting with it too).

    Gramnarsalad and Aquadrizzt and I have talked it through, and mostly figured it out in concept.
    Where are you guys discussing this stuff and why I'm not part of these conversations? :P

  • semiticgodsemiticgod Member, Moderator Posts: 13,357
    I need to make a slight tweak to the WEAPPROF.2da. All I want to do is let Archers get Grandmastery in slings and darts, so I need to change a 2 to a 5 on lines 30 and 31.

  • subtledoctorsubtledoctor Member Posts: 11,174
    edited March 16
    semiticgod wrote: »
    I need to make a slight tweak to the WEAPPROF.2da. All I want to do is let Archers get Grandmastery in slings and darts, so I need to change a 2 to a 5 on lines 30 and 31.

    Something like...
    COPY_EXISTING ~weapprof.2da~ ~override~
      COUNT_2DA_COLS cols
      SET kit_cols = (cols - 1) // because the row with the class/kit names has one fewer column
      FOR (col = 1; col < kit_cols; ++col) BEGIN
        READ_2DA_ENTRY 0 col kit_cols ~weapprof_kit~
        PATCH_IF (~%weapprof_kit%~ STRING_EQUAL_CASE ~feralan~) BEGIN
          SET archer_col = (%col% + 1) // because rows to be patched have one more column than the class/kit row
          SET_2DA_ENTRY 26 archer_col cols 5 // darts are row 26
          SET_2DA_ENTRY 27 archer_col cols 5 // sling is row 27
        END
      END
    IF_EXISTS BUT_ONLY
    

    I mean, yeah you could cheat and just count which column is for the Archer kit (hint, it's column 35 of the class/kit row, column 36 of the proficiency rows) - then it would look like:
    COPY_EXISTING ~weapprof.2da~ ~override~
      COUNT_2DA_COLS cols
      SET_2DA_ENTRY 26 36 cols 5
      SET_2DA_ENTRY 27 36 cols 5
    IF_EXISTS BUT_ONLY
    
    That's a lot simpler... but the first example will let you make any arbitrary changes you like, just substitute any kit name for "feralan" and substitute other proficiency rows for 26/27. (For these purposes, the proficiency rows are counted with "large_sword" = 0 and "small_sword" = 1, etc.)

    semiticgod
Sign In or Register to comment.