Help - Search - Members - Calendar
Full Version: Testing kits in scripts
The Black Wyrm's Lair - Forums > Mod development resources & discussion > Modder's Workshop
aigleborgne
Hello,

I'm trying to test kits in scripts, but I have manually set the kits with that:
WRITE_SHORT 0x244 0 //unused in KITLIST.2DA designation
WRITE_BYTE 0x246 29 //change to <name of kit> number as per KITLIST.2DA row
WRITE_BYTE 0x247 0x40 //force kit to use KITLIST.2DA instead of KIT.IDS

29 for a transmuter, in my example
When I look into Near infinity, I have 29 - Transmuter
It seems to work fine (notice that on a normal cre, Transmuter is number 8192 if you set the kit with NI)

Then come the script:
OR(3)
CheckStat(Myself,8192,KIT)
CheckStat(Myself,29,KIT)
Kit(Myself,MAGESCHOOL_TRANSMUTER)
Neither of these triggers work...
The first one work with a normal cre using transmuter kit.

I don't know how to do.
Ascension64
One solution would be to use KIT.IDS in the Kit parameter in the CRE file, but even I am having trouble convering raw hex to Big Endian mod. Any mathematical geniuses know the trick to this (not necessarliy WeiDU coding, just the rules of how to convert)?
Vlasák
Original kit.ids has incorrect values. Correct table should look as follows:

CODE
0x0000 BARBARIAN
0x0000 WILDMAGE
0x0040 MAGESCHOOL_ABJURER
0x0080 MAGESCHOOL_CONJURER
0x0100 MAGESCHOOL_DIVINER
0x0200 MAGESCHOOL_ENCHANTER
0x0400 MAGESCHOOL_ILLUSIONIST
0x0800 MAGESCHOOL_INVOKER
0x1000 MAGESCHOOL_NECROMANCER
0x2000 MAGESCHOOL_TRANSMUTER
0x4000 TRUE_CLASS
0x4001 BERSERKER
0x4002 WIZARDSLAYER
0x4003 KENSAI
0x4004 CAVALIER
0x4005 INQUISITOR
0x4006 UNDEADHUNTER
0x4007 FERALAN
0x4008 STALKER
0x4009 BEASTMASTER
0x400A ASSASIN
0x400B BOUNTYHUNTER
0x400C SWASHBUCKLER
0x400D BLADE
0x400E JESTER
0x400F SKALD
0x4010 TOTEMIC
0x4011 SHAPESHIFTER
0x4012 BEASTFRIEND
0x4013 GODTALOS
0x4014 GODHELM
0x4015 GODLATHANDER


BTW ascension: what do you mean? In kit.ids there are the hex humbers too. The only neccessity can be in the switching of the bytes to the reversed endian.
Ascension64
QUOTE
BTW ascension: what do you mean? In kit.ids there are the hex humbers too. The only neccessity can be in the switching of the bytes to the reversed endian.
Well, if you fix KIT.IDS and force CREs to use KITLIST.2DA as the kit designation, will Kit() still work? If so, then nevermind. However, if that doesn't work, I couldn't work out how the Endian mode could be written properly.

Explain this:

I manually assigned the SHAPESHIFTER kit to a random CRE file using NI (the KIT.IDS used at the time was your repaired one above). In the .IDS file, the raw hex value is 0x4011. Now, if I convert the NI assignment value to hex, it reads 0x00100000. Why?

Now let's try TRANSMUTER kit. Again, the repaired KIT.IDS reads 0x2000, and the NI assignment in hex reads 0x00000020. That looks OK, and the same is for the rest of the specialist mage kits, which is good.

Now let's try the WIZARDSLAYER kit. Repaired KIT.IDS reads 0x4002, yet NI hex assignment reads 0x00002000. Why?

Remember, NI is currently using the repaired KIT.IDS as you stated above.

Now read the IESDP description of the Kit field; there is a line that reads "NB.: The values of this offset are written in big endian style." It is obvious from the examples above the Big Endian style is not simply hex bytes reversed. So what is it, and how can you code the change in WeiDU?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.