Kit and Class modding questions
wolpak
Member Posts: 390
Not sure what is possible here, but I'd like to do the following.
a) remove mage kits. I have successfully removed other kits, but I don't see how the specialty mages can be removed from the selection screen.
b) Remove Barbarian class/kit. I understand Barbarian is a fighter kit that is put on the class selection screen, anyone know how to remove it?
a) remove mage kits. I have successfully removed other kits, but I don't see how the specialty mages can be removed from the selection screen.
b) Remove Barbarian class/kit. I understand Barbarian is a fighter kit that is put on the class selection screen, anyone know how to remove it?
0
Comments
I don't think you can remove it, but you could add a Fighter kit named Barbarian, give it all of the barbarian class features and then set Barbarian availability (in CLSRCREQ.2da, etc.) to 0. Again, its hardcoded, so the work around is necessary.
Pretty sure the half lore is also hardcoded for the Blade. You can work around this by having an ability applied at each level that grants bonus lore, if that's what you're trying to do.
Thanks for your resonse.
Another valuable aspect is now being able to limit classes on things I couldn't before based on level. My plan is to increase the max proficiency point to 7 (which appears to be the max the engine will allow). A new fighter may only be able to put up to 3 points into a proficiency, but when he has class changed, he can put in 5, then after another class change, 7.
Anyway, now that I at least know most of this is possible, time to try to put a framework together.
Here is a link to the Tome and Blood mod page.
If you want an explanation, there is a pretty lengthy discussion on the 5th page of my mod's thread that discusses how to generally go about it. I can also explain how to do it more thoroughly if you would like.
I am using the summoned monster trick to cast spells. However, I need the script attached to know which player summoned it. SpellCast (innate) doesn't seem to work. I am not sure why, but I am at a loss for what to do.
IF
InPartySlot(LastSummonerof(Myself),0)
Global("P1CHRMOD","GLOBAL",1)
THEN
RESPONSE #100
ForceSpellRES("Z9_LOH1",Player1)
DestroySelf()
END
Basically, if the guy who summoned me is in Party Slot 1, and his Charisma Modifier is 1, then cast this spell on player1. Of course, I have to figure out how to choose who to cast it on.
Let's say I have a Paladin and I want his LoH ability to be adjusted by his Charisma. In 3e you get 1 modifier point per 2 points in a stat, so a CHR of 14 would give 2, and CHR of 18 would give 18. I wanted each point above 0 to make LoH 10% better.
If my LoH would normally heal 10 HP, at 12 CHR it heals 11, at 18 CHR it heals 14.
Since there is no way to make a spell adjust based on stats, you need to make a spell for each modifier point. So, since you can have up to 25 CHR, that is a +7, I need 7 spells. Depending on the Paladin's CHR at that time, he needs to have only one of those abilities.
So, the original plan was to click the LoH button, which would summon a creature, check the paladin's CHR Mod, and then cast the correct LoH. That works fine if the Paladin is only targeting himself. But how does he target someone else? He would need to click on a party member and have the summoned creature cast the spell by proxy. It is very wonky in that matter.
This method, which I never realized before when I originally scripted this, can actually help me and make the bloat of Baldur.bcs much much less. You cannot run a script from a script, but you can summon a creature, have it's script run and then destroy it.
First, I have put in Baldur.bcs this:
IF
CheckStat(Player1,1,WIS)
!Global("P1WIS","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("P1WISMOD","GLOBAL",-5)
SetGlobal("P1WIS","GLOBAL",1)
END
IF
CheckStat(Player1,2,WIS)
!Global("P1WIS","GLOBAL",2)
THEN
RESPONSE #100
SetGlobal("P1WISMOD","GLOBAL",-4)
SetGlobal("P1WIS","GLOBAL",2)
END
...
This checks each palyer's stat, then setting the modifier and then further incrementing it until you have achieved the correct stat (this is all needed since you cannot set a global to a stat or even another global). It requires 25 scripts per stat per party member, but since it is usually ignored after the first run through, it doesn't slow the game down at all.
My issue is that if I needed to furthermore put class skills in here, it may bog down the game because of bloat. Especially with a lot of skills. But this line of code basically allows another script to run while baldur.bcs justs keeps on keeping on.
CreateCreature("P1WIS",[2338.412],SE)
I have code that checks to see if "P1WISMOD" changes. If it does, that line above runs and summons my P1WIS creature that then runs all scripts to handle changes in a stat.
So, let's say a monk uses Wisdom to adjust AC. He puts on gloves of wisdom that increases his WIS by 2. He needs another -1 of AC. Baldur.bcs sees that P1's Wis has changed and runs the createcreature line.
P1WIS pops up invisible and runs his script. His script says that if the Monk's Wis goes up, apply spell that subtracts 1 from AC. If the monk takes off the gloves, the script runs and subtracts one from his AC.
This way, baldur.bcs only ever has to make 1 check per person per stat instead of many (like if I use Widsom for Cleric innates or Druids or whatever).
I hope that makes sense.