Ergebnis 1 bis 20 von 39
-
- 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?
-
Hello
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!
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?
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!Geändert von tombom81 (13.04.2022 um 21:47 Uhr)
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
Pleasure to meet you, big fan of your work
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.
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.
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?
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.
-
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 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."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!
-
- 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 { } }
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 { } }
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 { } }
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 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.
-
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!
-
- 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 { } }
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.
-
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!
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
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 ...Geändert von valakii (14.04.2022 um 22:43 Uhr)
-
- 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 .
-
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!
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
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)
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?Geändert von valakii (15.04.2022 um 09:40 Uhr)
-
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!
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
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 { } }
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
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.
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.
-
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.
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!
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
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 { } }
-
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; }
"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!
-
- Registriert seit
- Apr 2022
- Beiträge
- 47
-
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!Geändert von tombom81 (15.04.2022 um 19:44 Uhr)