Seite 1 von 2 12 Letzte »
Ergebnis 1 bis 20 von 39
  1. #1 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Hello out there,

    while most of you might enjoy playing ELEX 2 by now, I just recently started modding ELEX 1.
    I quickly came across Baltram, tombom81, disi123 and many others of you guys and what you've accomplished so far is simply amazing.

    Much to my despair, I also had to realize some limitations there are when it comes to modding this great game. As far as I understand it, most of them come from limited gCInfoCommands to be used. Or at least, w_info.hdr provides only a rather limited amount of samples.
    So how about we start a thread where we can gather some working gCInfoCommand routines and RunScripts ready-to-use. Any contribution is highly appreciated!

    For instance, I'm desperately trying to find a way to equip weapons/armor etc. (not just in hidden stack!) or use potions/spells etc. via InfoCommands, can anybody provide a solution here?
    valakii ist offline

  2. #2 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    Zitat Zitat von valakii Beitrag anzeigen
    Hello out there,
    Hello

    As far as I understand it, most of them come from limited gCInfoCommands to be used.
    This is my opinion, yes.
    Or at least, w_info.hdr provides only a rather limited amount of samples.
    What? 7674 info dialogs should provide enough of them, shouldn't they?

    So how about we start a thread where we can gather some working gCInfoCommand routines and RunScripts ready-to-use. Any contribution is highly appreciated!
    There's the ELEX scripting mod on Nexus (for ELEX 1). My contributions will go there, since here's not too much traffic.

    I've poor knowledge about RunScripts only. Seems they are designed for special actions. Modifying/expanding them will involve debugging of the ELEX.exe, I guess.

    For instance, I'm desperately trying to find a way to equip weapons/armor etc. (not just in hidden stack!) or use potions/spells etc. via InfoCommands, can anybody provide a solution here?
    disi123 had most eperience with that, afaik. A different approach came from Penthesilea who made a mod Equipping out of inventory. (That could be a good start to learn.)

    From the vanilla system the only InfoCommand for Armor is "wear", afaik.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (13.04.2022 um 21:47 Uhr)

  3. #3 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Pleasure to meet you, big fan of your work

    Zitat Zitat von tombom81 Beitrag anzeigen
    What? 7674 info dialogs should provide enough of them, shouldn't they?
    Well, yes and no. There's plenty of InfoScripts in there, but on closer look it's just a few different ones repeating over and over again in similar fashion. Of course, making use of these already gives us a lot of possibilities.

    Zitat Zitat von tombom81 Beitrag anzeigen
    There's the ELEX scripting mod on Nexus (for ELEX 1). My contributions will go there, since here's not too much traffic.
    I've had a look at that already, nice one . Though my intention here wasn't really to explain the InfoScript logic like you're doing over there, but rather provide known InfoScript patterns. Which bools, enums, bCString etc. are required for certain gCInfoCommands so they work properly, that is.

    Zitat Zitat von tombom81 Beitrag anzeigen
    disi123 had most eperience with that, afaik. A different approach came from Penthesilea who made a mod Equipping out of inventory. (That could be a good start to learn.)
    I've seen some nice stuff from those guys as well, so you guys feel invited to join us here as well . Btw, which of Penthesilea's mods do you exactly mean? Cos I didn't find any hint about equipping scripts in her work so far, maybe I've missed the key to my problem?

    Zitat Zitat von tombom81 Beitrag anzeigen
    From the vanilla system the only InfoCommand for Armor is "wear", afaik.
    Yeah I've found that one already. Also "gCInfoCommandUse", for example. But I haven't been able to obtain any working script pattern for these so far, especially not from w_info.hdr. Correct me if I'm wrong, but maybe those date back to Risen and might not be used anymore in ELEX 1? At least I've tried to apply these InfoScripts in ELEX 1, but I just won't get them to work.

    I remember that when you join a faction in ELEX, you're automatically equipped with their tier 1 armor. Has anybody figured out the mechanism behind that or found the associated file/script? At least I wasn't able to discover it in w_info.hdr.
    valakii ist offline

  4. #4 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    Zitat Zitat von valakii Beitrag anzeigen
    Btw, which of Penthesilea's mods do you exactly mean?
    A different approach meant using scripts in templates.
    StimsOutOfInventory

    Correct me if I'm wrong, but maybe those date back to Risen and might not be used anymore in ELEX 1?
    I wouldn't be surprised. InfoCommands not present in actual w_infohdrdoc might not work. Btw, you'll need a patched verson of exle2resman to show the InfoScripts/commands. (Or wait for ELEX 2 scripting, in 2 weeks or so.)

    I remember that when you join a faction in ELEX, you're automatically equipped with their tier 1 armor. Has anybody figured out the mechanism behind that or found the associated file/script? At least I wasn't able to discover it in w_info.hdr.
    Sounds cool, didn't remember this. If it isn't done via dialogs it's in the exe/dlls.
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  5. #5 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    I still can't believe it's working but I actually figured it out the "wear" code pattern by myself:

    Code:
                            class gCInfoCommandWear {
                                Version = 1;
                                Properties {
                                    class bCString Entity1 = "PC_Hero";
                                    class eCTemplateEntityProxy Item = {188B0D28-1FF0-4091-B8C9-CE7C42A6AF5A};
                                }
                                ClassData {
                                }
                            }
    Tested and confirmed! In this particular example, it equips the player with Cleric tier 3 armor, but only if it's already in the player's inventory. Ofc, can be combined with commands like:

    Code:
                            class gCInfoCommandGive {
                                Version = 1;
                                Properties {
                                    class bCString Entity1 = "Reinhold";
                                    class bCString Entity2 = "PC_Hero";
                                    class eCTemplateEntityProxy Item = {188B0D28-1FF0-4091-B8C9-CE7C42A6AF5A};
                                    unsigned int Amount = 1;
                                    bool ShowNPCAmount = False;
                                    bool ForceNormalStackForCommonItem = True;
                                }
                                ClassData {
                                }
                            }
    or:

    Code:
                            class gCInfoCommandCreateItem {
                                Version = 1;
                                Properties {
                                    class bCString Entity1 = "PC_Hero";
                                    class eCTemplateEntityProxy Item = {188B0D28-1FF0-4091-B8C9-CE7C42A6AF5A};
                                    unsigned int Amount = 1;
                                    bool ResetRansacked = False;
                                    bool OnScreenLog = False;
                                }
                                ClassData {
                                }
                            }
    Might even work with hiddenstack items, but I haven't figured that out so far.

    There's even an unequip script coming to my mind right now, gotta test that one as well:

    Code:
                            class gCInfoCommandRunScript {
                                Version = 1;
                                Properties {
                                    class eCScriptProxyScript Script = "CreateAndEquipHiddenStack";
                                    class bCString Self = "PC_Hero";
                                    class bCString Other = "It_Body_CLE_High";
                                    enum gEOtherType OtherType = gEOtherType_TemplateEntity;
                                    int Param = 0;
                                    class bCString StringParam = "";
                                }
                                ClassData {
                                }
                            }
                            class gCInfoCommandRunScript {
                                Version = 1;
                                Properties {
                                    class eCScriptProxyScript Script = "DeleteHiddenStack";
                                    class bCString Self = "PC_Hero";
                                    class bCString Other = "It_Body_CLE_High";
                                    enum gEOtherType OtherType = gEOtherType_TemplateEntity;
                                    int Param = 0;
                                    class bCString StringParam = "";
                                }
                                ClassData {
                                }
                            }
    This should temporarily replace the worn armor by a hidden dummy which is deleted right after, leaving the armor slot empty again.

    This actually opens up a whole new set of possibilities to me. I'm thinking of activator items (templates), allowing us to seamlessly create passive skills or maybe even generally apply scripts that could only be used by specific items so far, for instance!

    I'll keep on trying to use inventory items like spells and potions next.
    valakii ist offline

  6. #6 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    Nice going!

    Btw, fyi, someone searched for the possibility to have sunglasses on hotkeys/quickslots.
    (Not related to InfoCommands, though.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  7. #7 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Also working:

    Code:
                            class gCInfoCommandDestroyItem {
                                Version = 1;
                                Properties {
                                    class bCString Entity1 = "PC_Hero";
                                    class eCTemplateEntityProxy Item = {188B0D28-1FF0-4091-B8C9-CE7C42A6AF5A};
                                    unsigned int Amount = 1;
                                }
                                ClassData {
                                }
                            }
    Deletes the item from your visible inventory. Works just like "CreateItem", but reverse.


    Zitat Zitat von tombom81 Beitrag anzeigen
    Btw, fyi, someone searched for the possibility to have sunglasses on hotkeys/quickslots.
    (Not related to InfoCommands, though.)
    No need for that anymore if I accomplish what I'm trying right now. The only reason I see why you should want this is to make use of every three sunglasses effects at the same time. But with what I just figured out, you can simply create dummies of each of those sunglasses and use them as activator items. This way you could have all three effects running without changing any gear by yourself. And even without actually noticing any change of gear, which would run hidden using this routine:

    -> create dummies of all three sunglasses
    -> remove the gCItemCloth mesh of those dummies so they're in fact invisible
    -> remove the OnUnlink and OnUnEquip script on all three sunglasses dummies so their effects stay permanently on equip
    -> add the three dummies to player inventory
    -> equip Sunglasses ItemSight dummy
    -> equip Sunglasses SenseMachines dummy
    -> equip Sunglasses SenseLife dummy
    -> destroy all three dummies again

    Voila

    All by InfoCommands, no manual action necessary . As I said, seamlessly.
    valakii ist offline

  8. #8 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    Very impressive. Did you ever mod genome engine games before?

    (Seems you learn things in hours which took months for me.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  9. #9 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Zitat Zitat von tombom81 Beitrag anzeigen
    Very impressive. Did you ever mod genome engine games before?

    (Seems you learn things in hours which took months for me.)
    Thanks a lot for the kudos. As a matter of fact, I just started learning genome code maybe a week ago . And I realized that for some genome issues, you have to find rather creative solutions, given the fact that it's not possible to change hardcoded mechanics and scripts.

    Actually, I'm impressed what you guys out here were able to reverse-engineer from the game code, RAM and stuff like that. That's definitely too high for me ...
    valakii ist offline Geändert von valakii (14.04.2022 um 22:43 Uhr)

  10. #10 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Btw, since I haven't modded other genome games so far:

    Can you (or anybody) gather me a sample of the "gCInfoCommandUse" pattern from one of those games (maybe Risen 3 or so)? I'm still not able to figure that one out by myself . It could be used to activate spells and drinks via command, for instance. Would be a nice feature in our genome InfoScript toolkit .
    valakii ist offline

  11. #11 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    This is what I found ("Roquefort", should be from Risen 3?),
    from an old log, classData of class gCInfo :
    Code:
      class gCInfoCommandUse Version: 1
        02 00 
        17 61 3E A8 13 1E 38 CC  -> class bCString Entity1
        Roquefort     
        17 61 3E A8 33 87 E8 C0  -> class bCString DialogAction
        Dialogdrink
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  12. #12 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Zitat Zitat von valakii Beitrag anzeigen
    There's even an unequip script coming to my mind right now, gotta test that one as well:
    Tested this one, works like a charm! (createandequiphiddenstack + deletehiddenstack random item that uses the same slot as the one that's supposed to be unequipped)

    Zitat Zitat von tombom81 Beitrag anzeigen
    This is what I found ("Roquefort", should be from Risen 3?),
    from an old log, classData of class gCInfo :
    Code:
      class gCInfoCommandUse Version: 1
        02 00 
        17 61 3E A8 13 1E 38 CC  -> class bCString Entity1
        Roquefort     
        17 61 3E A8 33 87 E8 C0  -> class bCString DialogAction
        Dialogdrink
    Hmm, I wasn't expecting a DialogAction string here, don't know what this is supposed to do here. Seems like the "use" command serves a different purpose than I was expecting, otherwise it should include at least some sort of item mention.

    Any idea on other InfoCommands or RunScripts/eCScriptProxyScripts that could help as a workaround? Maybe some item template that includes a script for item consumption?
    valakii ist offline Geändert von valakii (15.04.2022 um 09:40 Uhr)

  13. #13 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    You mean ConsumeScript = "ConsumeFood";? Is contained in It_Fo_... templates.

    (Iirc, disi123 made some experiments, but not sure.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  14. #14 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Zitat Zitat von tombom81 Beitrag anzeigen
    Nice going!
    Btw, fyi, someone searched for the possibility to have sunglasses on hotkeys/quickslots.
    (Not related to InfoCommands, though.)
    And just for the record: the quickslot function should be controlled by a gCInteraction like this:

    Code:
                        class gCInteraction {
                            Version = 1;
                            Properties {
                                enum gEInteractionType Type = gEInteractionType_QuickUse_Player;
                                class eCScriptProxyScript CanInteractScript = "CanQuickUse_Player";
                                class gCScriptProxyAIFunction PreInteractScript = "";
                                class gCScriptProxyAIFunction InteractScript = "QuickUse_Player";
                                class eCScriptProxyScript PostInteractScript = "";
                            }
                            ClassData {
                            }
                        }
    Adding this to any item template should do the job, since many items like armors don't have such interaction class by default.
    valakii ist offline

  15. #15 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Zitat Zitat von tombom81 Beitrag anzeigen
    You mean ConsumeScript = "ConsumeFood";? Is contained in It_Fo_... templates.
    I'm not sure if these ConsumeScripts will do... Since there's no further string to them, I guess they only apply to that specific item and cannot be used for anything else. Maybe those scripts simply start the animation of putting food to the player's mouth, but that's merely a guess.

    Zitat Zitat von tombom81 Beitrag anzeigen
    (Iirc, disi123 made some experiments, but not sure.)
    I think what he did is mostly operate quests by item posession. But I'll go into that again, too.

    Aren't there any story events ingame where you get get to drink a potion, eat food or sth like that by script (that is, without having to do this manually from the inventory)? Or maybe at least in Risen? Those kind of commands could be useful on this issue.
    valakii ist offline

  16. #16 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    Zitat Zitat von valakii Beitrag anzeigen
    Aren't there any story events ingame where you get get to drink a potion, eat food or sth like that by script
    Not to my knowledge. What I know is the way Roquefort does. (With a predefined/hardcoded item in the code probably.)

    Or maybe at least in Risen? Those kind of commands could be useful on this issue.
    The RisenSDK might be a source of wisdom.

    Looks interesting, too. (To understand the background, at least.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  17. #17 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Zitat Zitat von tombom81 Beitrag anzeigen
    Not to my knowledge. What I know is the way Roquefort does. (With a predefined/hardcoded item in the code probably.)

    The RisenSDK might be a source of wisdom.

    Looks interesting, too. (To understand the background, at least.)
    That still looks a little too complicated to me. But maybe I'll find a way to apply it to my problem though. Any hint is appreciated

    Meanwhile, I decyphered another InfoCommand which was previously unused in w_info.hdr:

    Code:
                            class gCInfoCommandTeach {
                                Version = 1;
                                Properties {
                                    class bCString Entity1 = "PC_Hero";
                                    class gCSkillValue TeachSkill = class gCSkillValue {
                                        Version = 1;
                                        Properties {
                                            int Amount = 1;
                                            enum gESkill Skill = gESkill_Perk_ItemSight;
                                        }
                                        ClassData {
                                        }
                                    };
                                }
                                ClassData {
                                }
                            }
    This one lets you modify char skills. Works perfectly!
    valakii ist offline

  18. #18 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    What is special with that command? It's in the w_info.hdrdoc. (It's the helpers, which are not in the game, yes.)
    Code:
    "PANKRATZR5_00032" {
            Timestamp = (time 132429103770000000 "Wed Aug 26 10:12:57 2020");
            class gCInfo {
                Version = 2;
                Properties {
                    class bCString Name = "PANKRATZR5_00032";
                    int MainSortID = 4;
                    unsigned int SortID = 22315;
                    class bCString Owner = "DemoHelper";
    ...
    Code:
                           class gCInfoCommandTeach {
                                Version = 1;
                                Properties {
                                    class bCString Entity1 = "PC_Hero";
                                    class gCSkillValue TeachSkill = class gCSkillValue {
                                        Version = 1;
                                        Properties {
                                            int Amount = 1;
                                            enum gESkill Skill = gESkill_Perk_JetpackSprint;
                                        }
    (note for me: DemoHelper should be enabled like sh was.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline

  19. #19 Zitieren
    Lehrling
    Registriert seit
    Apr 2022
    Beiträge
    47
    Zitat Zitat von tombom81 Beitrag anzeigen
    What is special with that command? It's in the w_info.hdrdoc. (It's the helpers, which are not in the game, yes.)
    Code:
    "PANKRATZR5_00032"
    ...
    Oh ok. Haven't discovered these yet. Where do I find the DemoHelpers? At least they're not in the w_info.hdr that I unpacked from vanilla game files...
    valakii ist offline

  20. #20 Zitieren
    General Avatar von tombom81
    Registriert seit
    Jun 2015
    Beiträge
    3.139
    The string "DemoHelper" is contained 11 times in the w_info.hdrdoc from the latest patch.
    The helpers can't be found in game, they need to be enabled one by one.

    ("StoryHelper" mod Nexus update (was switched to hidden after patch 3), too busy atm, but DemoHelper should come...)


    btw, since you're digging in lost scripts (?), what about reviving on of these perks/skills?

    gESkill_Perk_AnimalFriend
    gESkill_Perk_Camouflage
    gESkill_Skill_Survival

    (I created an amulet but it had no effect.)
    "in der Erkundung dieser weiten und wunderbaren Welt" (post #70, höre link unten)
    TAS for Elex 2 at ELEX II Nexus - Mods and Community (nexusmods.com)
    Tuvok, scannen Sie den Planeten nach Mikroplastik!
    "Hört mir bloß auf mit "Stormson".
    "In Toussaint wird schon für kleinere Schmähungen als diese Satisfaktion verlangt."
    Genug der "Blumensträuße". Ich WILL MadBob! Beugt die Realität!
    tombom81 ist offline Geändert von tombom81 (15.04.2022 um 19:44 Uhr)

Seite 1 von 2 12 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •