Sensuki
Arcane
Someone able to help me increase the inventory size? I've changed the InventoryMaxSlots in the Characterstats.cs to 16, just need to get the UI to show them now, trying to find the code in among the UIInventoryxxxx stuff
Do you think you could get a "big inventory" mod out before launch?
Do you think you could get a "big inventory" mod out before launch?
Liston said he's already done it (changed it to 16 slots), I paged him earlier to ask how, I can't seem to find the code that makes the second row show up.
This wasn't hard to do (someone posted a mockup of this earlier)
Dude!
Congrats you learned about string tables.. something that any software that hopes to be localized does..
Is this your first look at C# or something?
Unless the AI is externalized with composable scripts (even with decompiling) it won't ever reach BG levels by modding.
The 'problem' is that the engine they're trying to emulate has a script api that was reverse engineered to the point when the scripts were decompiled, and by a very happy accident, all that they do is to follow a heartbeat every frame for all characters from top to bottom allowing the possibility to bail out.
Which means modders could add code to the file and as long as their trigger conditions were true only occasionally their new code didn't interfere with 'old' code. It is modular in the sense that to add functional code, you don't need to touch the previous code, which is almost never the case with more efficient, function oriented languages.
The 'problem' is that the engine they're trying to emulate has a script api that was reverse engineered to the point when the scripts were decompiled, and by a very happy accident, all that they do is to follow a heartbeat every frame for all characters from top to bottom allowing the possibility to bail out.
Which means modders could add code to the file and as long as their trigger conditions were true only occasionally their new code didn't interfere with 'old' code. It is modular in the sense that to add functional code, you don't need to touch the previous code, which is almost never the case with more efficient, function oriented languages.
Uhm.. What..?
The 'problem' is that the engine they're trying to emulate has a script api that was reverse engineered to the point when the scripts were decompiled, and by a very happy accident, all that they do is to follow a heartbeat every frame for all characters from top to bottom allowing the possibility to bail out.
Which means modders could add code to the file and as long as their trigger conditions were true only occasionally their new code didn't interfere with 'old' code. It is modular in the sense that to add functional code, you don't need to touch the previous code, which is almost never the case with more efficient, function oriented languages.
Uhm.. What..?
I thought you were an expert programmer Drog, what don't you understand?
I'm doubting that composability will be preserved in this engine and a Infinity Engine type of moding environment will be prevented from arising. All of Tim Cain previous rpg engines weren't composable (bloodlines/ToEE, fallout) at the code level, such as in Weidu mods where one mod can alter all the scripts of all one handed weapons and another completely different one by another author add damage types and resistances to weapons and enemies (for instance) and you can install both without caring that the authors never coordinated. Of course there are incompatibilities, but notice that the games i mentioned all use 'megamods' (aka 'we can't figure out how not to conflict so we quit trying').EDIT
How is this a problem.
I'm doubting that composability will be preserved in this engine and a Infinity Engine type of moding environment will be prevented from arising. All of Tim Cain previous rpg engines weren't composable (bloodlines/ToEE, fallout) at the code level, such as in Weidu mods where one mod can alter all the scripts of all one handed weapons and another completely different one by another author add damage types and resistances to weapons and enemies (for instance) and you can install both without caring that the authors never coordinated.EDIT
How is this a problem.
I don't believe their AI system has even been implemented so we have no idea how it will work yet. The current AI could just be hacked in or filler code until they finished that framework.
I don't believe their AI system has even been implemented so we have no idea how it will work yet. The current AI could just be hacked in or filler code until they finished that framework.
There are a few class files that govern the behaviour, there's not much there at the moment but they have someone adding some more shit in for the next patch or the one after.
It mostly depends on that scripting structure yes.Bearing in mind that.. I am not in the beta so I haven't seen the code yet and I don't believe their AI system has even been implemented so we have no idea how it will work yet. The current AI could just be hacked in or filler code until they finished that framework.
Can you provide their namespace heiarchy or give us some class names they are using? It could reveal how decoupled their AI will be.. which will dictate how hard it is to replace / modify intelligently.
Or is it all inLined in some AiManager class?
It mostly depends on that scripting structure yes.Bearing in mind that.. I am not in the beta so I haven't seen the code yet and I don't believe their AI system has even been implemented so we have no idea how it will work yet. The current AI could just be hacked in or filler code until they finished that framework.
Outright mechanics change are probably out, due to needing to change the actual C# (things like Sensuki is doing).
Depending on the structure they end up using for the AI, if they use a sane interface for it, it may be possible to straight jacket the modders so their code is 'composable by design' although due to the complicated syntactic nature of C# the compiler will probably need to be restrictive (and a good thing too, you probably want to prevent dumbfucks creating threads or reading IO in the AI engine).
Liston what did you have to do to change the inventory slots to 16? I've changed the InventoryMaxSize, but that didn't seem to work, do you need to update something in the UI code as well ?
Such as on InventorySecondaryRow ?
No reason, except maybe legal ones which i hope obsidian waivers somehow. But i'd have hoped that when people promise a 'IE successor' that work is done for us. Not to mention that it might be that all AI needs to be replaced.Why shouldn't we modify the source code if the goal is to create a WeiDu type environment that allows multiple mods to play nice together..
No reason, except maybe legal ones which i hope obsidian waivers somehow. But i'd have hoped that when people promise a 'IE successor' that work is done for us. Not to mention that it might be that all AI needs to be replaced.Why shouldn't we modify the source code if the goal is to create a WeiDu type environment that allows multiple mods to play nice together..
Liston what did you have to do to change the inventory slots to 16? I've changed the InventoryMaxSize, but that didn't seem to work, do you need to update something in the UI code as well ?
Such as on InventorySecondaryRow ?
I only changed CharacterStats.InventoryMaxSize, although I'm using BB v257. Look at what is assigning BaseInventory.MaxSize (BaseInventory.Update() probably).
It might be easier than WEIDU but the modders job will probably be much harder if this information/behavior is not centralized and restructed somehow into a domain specific language. Look at the AI/plan directory. CasterScanForTarget is a whole (complicated) file just for the AI choosing their target, checking for nulls (!!!), pushing waypoints, adding fidget animations etc, which in BGScript is just a selector over a list of nearest and a cast command.I don't really expect them to emulate the Infinity Engine.. Honestly our job will be easier then WeiDu's was..
Liston what did you have to do to change the inventory slots to 16? I've changed the InventoryMaxSize, but that didn't seem to work, do you need to update something in the UI code as well ?
Such as on InventorySecondaryRow ?
I only changed CharacterStats.InventoryMaxSize, although I'm using BB v257. Look at what is assigning BaseInventory.MaxSize (BaseInventory.Update() probably).
What program did you use? I tried Reflexil with NET Reflector
It might be easier than WEIDU but the modders job will probably be much harder if this information/behavior is not centralized and restructed somehow into a domain specific language. Look at the AI/plan directory. CasterScanForTarget is a whole (complicated) file just for the AI choosing their target, checking for nulls, pushing waypoints, adding fidget animations etc, which in BGScript is just a selector over a list of nearest and a cast command.I don't really expect them to emulate the Infinity Engine.. Honestly our job will be easier then WeiDu's was..
Liston what did you have to do to change the inventory slots to 16? I've changed the InventoryMaxSize, but that didn't seem to work, do you need to update something in the UI code as well ?
Such as on InventorySecondaryRow ?
I only changed CharacterStats.InventoryMaxSize, although I'm using BB v257. Look at what is assigning BaseInventory.MaxSize (BaseInventory.Update() probably).
What program did you use? I tried Reflexil with NET Reflector
I decompiled dll with ildasm, made changes and recompiled with ilasm.