Sensuki
Arcane
do you have the ildasm command ? mine doesn't open the ildasm window like it says on this tutorial, it wants another input
do you have the ildasm command ? mine doesn't open the ildasm window like it says on this tutorial, it wants another input
Ok, this thread just turned into something I don't understand a thing about.
Yeah, I can talk in a totally uninteresting voice.Ok, this thread just turned into something I don't understand a thing about.
Perhaps, but as a Youtube celebrity your skills lie in other areas
EDIT: Liston Reflexil Modifies the MSIL and is capable of hot patching / code injecting and generating a modified assembly.. Similar tools exist for byte code manipulation as well.
EDIT: Liston Reflexil Modifies the MSIL and is capable of hot patching / code injecting and generating a modified assembly.. Similar tools exist for byte code manipulation as well.
I don't own reflector, nor do I need it for personal use. I was only making small changes, reflector wouldn't be of much help here.
Damn, didn't work.
.method public hidebysig specialname instance int32
get_InventoryMaxSize() cil managed
{
// Code size 2 (0x2)
.maxstack 16
IL_0000: ldc.i4.8
IL_0001: ret
} // end of method CharacterStats::get_InventoryMaxSize
I changed the maxstack to 16, but was i supposed to do something else?
like change ldc.i4.8 to something ?
I also tried Reflexil and I couldn't figure out what I was supposed to do - it had this same thing, just ldc.i4.8 and I wasn't sure what to change it to.
EDIT: Liston Reflexil Modifies the MSIL and is capable of hot patching / code injecting and generating a modified assembly.. Similar tools exist for byte code manipulation as well.
I don't own reflector, nor do I need it for personal use. I was only making small changes, reflector wouldn't be of much help here.
I meant that in response to you saying that the only way to modify IL was to run those tools..
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..
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..
After looking over the code I can almost grantee that the AI will be implemented fully in C#..
If they had a middleware language I would be extremely surprised. It is still possible though I guess...
The good news is that Obsidian follows very good practices for objects.. They make good use of abstraction.
Here is a quick generated class diagram to see the inheritance structure and how things are laid out.. Again this will likely be fleshed out more.. and it will be interesting to see how much of this AI is dependent on configuration files.. (So the non-programming plebs at Obs can do AI)
I am gonna keep digging around. It's much nicer to read then I thought it would be.. Kudos to any Obs devs reading this.
---
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..
After looking over the code I can almost grantee that the AI will be implemented fully in C#..
If they had a middleware language I would be extremely surprised. It is still possible though I guess...
The good news is that Obsidian follows very good practices for objects.. They make good use of abstraction.
Here is a quick generated class diagram to see the inheritance structure and how things are laid out.. Again this will likely be fleshed out more.. and it will be interesting to see how much of this AI is dependent on configuration files.. (So the non-programming plebs at Obs can do AI)
I am gonna keep digging around. It's much nicer to read then I thought it would be.. Kudos to any Obs devs reading this.
---
Nice diagram.
It seems to me that if they're coding in C# on a mono or .net platform you should be able to code the AI in any of the .net support languages (F#, IronPython, IronRuby, IronLISP etc) you may need or be able to pull the code out into a separate class/resource or dll (mainly a Java/Scala coder so not certain of exact terminology for .net) and simply patch the main code to call/import your additional resource.
That way you could have a rather nice simple patch for the core Obs DLL that pretty much deletes the code you want to replace and adds an import command for your resource. It might get a bit mucky depending on how much use they're making of the global name space vs object based passing of data but hard for me to tell with out a good look at the code.
Also with the .net/mono platform as I've already mentioned the range of languages you can use to target the platform is pretty large, so while you may not have a specialist domain specific language for AI code I'd think F# or IronLISP might work quiet well or even IronPython if that's what your more familiar with.
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..
---
Nice diagram.
It seems to me that if they're coding in C# on a mono or .net platform you should be able to code the AI in any of the .net support languages (F#, IronPython, IronRuby, IronLISP etc) you may need or be able to pull the code out into a separate class/resource or dll (mainly a Java/Scala coder so not certain of exact terminology for .net) and simply patch the main code to call/import your additional resource.
That way you could have a rather nice simple patch for the core Obs DLL that pretty much deletes the code you want to replace and adds an import command for your resource. It might get a bit mucky depending on how much use they're making of the global name space vs object based passing of data but hard for me to tell with out a good look at the code.
Also with the .net/mono platform as I've already mentioned the range of languages you can use to target the platform is pretty large, so while you may not have a specialist domain specific language for AI code I'd think F# or IronLISP might work quiet well or even IronPython if that's what your more familiar with.
By no means am I a Unity/Mono expert so please correct this post if I am wrong but...
The only officially supported languages in Unity are C# / Javascript / Boo.. Note that this code is not compiled against the .NET framework but uses Mono exclusively so that it can remain cross platform. Although it does make use of unbiased syntax within C# that is not the same as supporting .NET specific conventions.
Now I know Mono has support for things like F#, Scala, Java ect ect.. But not all these languages are supported by default.. some are done by other communities and more importantly.. I don't think Unity supports them either.
EDIT:
I don't think any of this is a bad thing.. I think the way they have set up their object hierarchy.. They could create a pretty modular AI system.. The only part I am missing or not sure about is how fluid it will pull in configuration files and dynamic actions like spell types or whatever.
It seems to be pretty tightly coupled to what actions the m_owner can do.. but I haven't had enough time to look through everything so far.
Well, we'll see how it turns out. I'm predicting megamods right now, and buggy to boot, but i will be happy to eat my words if it doesn't happen.
Administration™
Administration™
am I not worthy?