Jump to content

Kit Item Restrictions


Skye

Recommended Posts

I need a little help with usability flags in kitlist.2da. I've created a new kit with the fighter as a base class but I don't want it to be able to use all weapons and armors. According to just about every place I've looked the hex value in the 'unusable' field supposedly defines restrictions for a class however no matter what I set it to the restrictions are always that of a fighter. Does a kit always retain the usability flag of its base class or am I doing something wrong?

 

Also a few more trivial problems but it would be nice to get rid of them; Is there any way to lower the ammount of proficiency points recieved without changing the whole class family? Is there any way to reduce the number of attacks per round a class recieves? (using a .spl in CLAB* table doesn't work) Is there anyway to control how the kit recieves high-level abilities? (MIN_LEV in LU* doesn't work as it should, threshold at 3M can't be changed either afaik)

 

If anyone can answer any of these questions it would be of great help, especially the first one. I simply can't release a kit without proper restrictions. :(

 

Edit: Actually now that I'm looking a bit deeper I think I see the problem. Most items only have the core class bits unset, so an invoker mage can't use a plate mail even though the kit's usability flag is set because it's unset for mages but a fighter with restrictions of an invoker can because it's set for both fighters and invokers. I guess there's no way then but to change all the flags on the items to work properly, eh?

Link to comment

A kit retains the restrictions of its base class, yes; it can have additional restrictions but not additional usabilities. Note that you can get a fighter kit that can't use platemail by adding the barbarian flag.

 

Proficiency points: nope, not without changing them all.

 

Attacks per round: fighters/rangers/paladins get an extra half attack at levels seven and thirteen, and an extra half attack for specializing, everyone else gets one per round. A timing mode nine spell in the clab that sets attacks per round to one should override this.

 

The HLA stuff depends on how you want them controlled.

Link to comment
Note that you can get a fighter kit that can't use platemail by adding the barbarian flag.
Barbarian flag works because the barbarian flag is unset in heavy armors but it doesn't solve my problem. Now that I've figured out what was wrong it should be easy to fix it using weidu.

 

A timing mode nine spell in the clab that sets attacks per round to one should override this.
It does not, attacks are fixed at 2 at lvl13 and henceforth. If I try to lower it they drop to 0 or make a full circle to 5. If I try to set it at 1 they remain unchanged. Technically the attacks are always at 1 or at least so the Shadow Keeper leads me to believe, so I'm guessing the bonuses are controlled by something other than simple effects. I've never really had to lower them before so I haven't encountered this problem. They drop to 1 however if I equip a weapon the character is not proficient with but that also lowers the THAC0 so it's no good :(

 

The HLA stuff depends on how you want them controlled.
HLA are gained much too soon for my liking but since there's no way to raise the threshold and no way to give a minimum level requirement, I don't know how to control the gaining of these abilities. I suppose I could implement the requirement inside the abilities themselves or ignore the HLA table completely and create scripted dialogues for the abilities but I'd rather not resort to any drastic work-arounds if there's an easier way.
Link to comment
The barbarian flag is set in heavy armours :(
Yes, technically speaking it's on 1 because the flags define who can't use the items rather than who can. But for the sake of the argument it's usually easier to look at them in reverse, much like most editing programs display them.

 

Fighter APR bonus is handled internally by bgmain, there's never any attached effect or changes to the attacks per round in the .cre file (it's always 1)
So basically that means that there's no way to reduce it ;)
Link to comment

I'm not saying this to be snooty, but don't use any editing program that displays values as the logical opposite of what they are. Shadowkeeper hashes creatures by not decrementing counts when it removes arrays and probably a dozen other things.

 

Set attacks per round works fine, you'd just have to make sure that the engine parses the effects after it's done handling the fighter bonus. This is non-trivial if you don't want to disable the offhand also - so I'm not saying it's a good way :(

Link to comment
I'm not saying this to be snooty, but don't use any editing program that displays values as the logical opposite of what they are. Shadowkeeper hashes creatures by not decrementing counts when it removes arrays and probably a dozen other things.
I make use of every tool at my disposal but more often than not just a plain hex editor. Back when I started modding there weren't any fancy tools, I guess old habits die hard. Also, ShadowKeeper is more or less useless for anything but the occasional checking of savegame files.
Set attacks per round works fine, you'd just have to make sure that the engine parses the effects after it's done handling the fighter bonus.
And how exactly would I do that? A script that checks if a weapon is equipped? That might be too awkward. Not being able to change the actual program code can really be a nuisance :(
Link to comment

You'd need to check it immediately after equipping a weapon, yes.

 

I would like to hire George Clooney to steal the source code to bgmain, I'm quite sure that fully decompiled and and commented that it would fit on a flash drive. Wouldn't mind the area editor either. Otherwise, WeiDU/NI/DLTCEP are probably heaps better than what was used to build the game :(

Link to comment
You'd need to check it immediately after equipping a weapon, yes.
Sounds like too much trouble just to get rid of one attack, I'll think about this one at a later time. For one, I don't even know how to trigger that event, as far as I know there's no Equip() or ChangeWeapon() triggers.

 

I would like to hire George Clooney to steal the source code to bgmain, I'm quite sure that fully decompiled and and commented that it would fit on a flash drive.
Hehe, I'd say it's probably burried somewhere where no one will ever find it. It might be more worthwhile to hire a professional reverse engineer :(
Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...