MOD - Change Base Thief kit to kitted thief.
Yo, dno if this exists from before, but it was for personal need :P
Updates:
Included multiclasses
Removed Circle of creature.
This mod basicly allows you to change "unkitted thiefs" into kitted thieves via dialog.
A spell is put into the clabth01.2da which is automaticly casted and starts this thing for any thief entering your party.
So what the effect does:
Change Thief kit in a multiclass, or right after dual class to thief, or on THIEF.
Works for NPC's as well.
I have barely tested anything besides candlekeep and immoen + montraron on next map. But should work in baldur's gate 2, should work with RR mod, should work with scs and tweaks(NPC customization) etc. The line added in clab table is unicue, wont crash with anything else. But the main idea here is that im a noob and this mod should if used be installed as early as possible, but after mod merger. I also am lazy so any language besides en_US it will fail.
I did what i could for it to not crash with other mods, espesially things like RR / SCS / Tweaks.
I use pronounce GEL or Gel on everything i make, so should not crash with stuff. I have had tons of mods installed and my GEL in internal name has never crashed with anything.
And yes, the effect has a animation, making the function not 100% invisible :P The invisible creature has a shadow, and forgot to remove circle. But that was only good in my fault searching xD
I leave all stuff directly written, incase people has improvements, other features or want to copy it to do the same on other classes. Forexample dual into a kitted mage.
Items/cre/spl/eff used are:
GelTDia.itm (immunity amulet for creature)
GelTDia.eff (summoning effect for spell)
GelTDia.spl (summoning spell for creature, added as AP in base thief clab)
GelTDia.cre ("invisible" creature helping perfoming the thing)
GelTDia.baf:
GelTDia.D:
GelThiefKitChange.tp2:
Updates:
Included multiclasses
Removed Circle of creature.
This mod basicly allows you to change "unkitted thiefs" into kitted thieves via dialog.
A spell is put into the clabth01.2da which is automaticly casted and starts this thing for any thief entering your party.
So what the effect does:
Change Thief kit in a multiclass, or right after dual class to thief, or on THIEF.
Works for NPC's as well.
I have barely tested anything besides candlekeep and immoen + montraron on next map. But should work in baldur's gate 2, should work with RR mod, should work with scs and tweaks(NPC customization) etc. The line added in clab table is unicue, wont crash with anything else. But the main idea here is that im a noob and this mod should if used be installed as early as possible, but after mod merger. I also am lazy so any language besides en_US it will fail.
I did what i could for it to not crash with other mods, espesially things like RR / SCS / Tweaks.
I use pronounce GEL or Gel on everything i make, so should not crash with stuff. I have had tons of mods installed and my GEL in internal name has never crashed with anything.
And yes, the effect has a animation, making the function not 100% invisible :P The invisible creature has a shadow, and forgot to remove circle. But that was only good in my fault searching xD
I leave all stuff directly written, incase people has improvements, other features or want to copy it to do the same on other classes. Forexample dual into a kitted mage.
Items/cre/spl/eff used are:
GelTDia.itm (immunity amulet for creature)
GelTDia.eff (summoning effect for spell)
GelTDia.spl (summoning spell for creature, added as AP in base thief clab)
GelTDia.cre ("invisible" creature helping perfoming the thing)
GelTDia.baf:
IF
OnCreation()
THEN
RESPONSE #100
SetGlobal("GelTDia_Init","LOCALS",1)
END
IF
Global("GelTDia_Init","LOCALS",1)
Exists(LastSummonerOf(Myself))
InParty(LastSummonerOf(Myself))
THEN
RESPONSE #100
ClearAllActions()
StartDialogNoSet(LastSummonerOf(Myself))
SetGlobal("GelTDia_Init","LOCALS",2)
END
IF
Global("GelTDia_Init","LOCALS",1)
!Exists(LastSummonerOf(Myself))
THEN
RESPONSE #100
DestroySelf()
END
IF
Global("GelTDia_Init","LOCALS",3)
THEN
RESPONSE #100
DestroySelf()
END
GelTDia.D:
BEGIN ~GelTDia~
IF ~EXIST(LastTalkedToBy(Myself))~ THEN BEGIN GelStart
SAY ~Do you want to change your thief kit?~
IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT
IF ~~ THEN REPLY ~Yes.~ GOTO GelPick
END
IF ~~ THEN BEGIN GelPick
SAY ~Choose your thief kit overlay~
IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied
IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied
IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied
IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied
IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT
END
IF ~~ THEN BEGIN GelApplied
SAY ~Done. Your thief overlay is active~
IF ~~ THEN REPLY ~Thanks.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT
END
GelThiefKitChange.tp2:
BACKUP ~GelThiefKitChange/backup~ AUTHOR ~Gel87~ VERSION ~1.0~ BEGIN ~Thief Kit Overlay Menu~ REQUIRE_PREDICATE (GAME_IS ~bgee bg2ee eet iwdee~ && FILE_EXISTS ~engine.lua~) ~Requires Enhanced Edition 2.0+ game.~ INCLUDE ~GelThiefKitChange/lib/a7#add_kit_ex.tpa~ COPY ~GelThiefKitChange/GelTDia.spl~ ~Override~ SAY NAME1 ~Summon kit thief kit choice~ COPY ~GelThiefKitChange/GelTDia.eff~ ~Override~ COPY ~GelThiefKitChange/GelTDia.itm~ ~Override~ SAY NAME1 ~InviCreature: Immunities~ COMPILE ~GelThiefKitChange/GelTDia.baf~ COMPILE ~GelThiefKitChange/GelTDia.d~ COPY ~GelThiefKitChange/GelTDia.cre~ ~override~ SAY NAME1 ~KitChanger~ SAY NAME2 ~KitChanger~ WRITE_ASCII 0x248 ~GelTDia~ #8 // Override script WRITE_ASCII 0x2CC ~GelTDia~ #8 // Dialog file COPY_EXISTING ~CLABTH01.2DA~ ~override~ INSERT_2DA_ROW 7 40 ~GELLITY7 AP_GelTDia **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****~ BUT_ONLY
Post edited by Gel87 on
0
Comments
Montaron even summoned the creature. Which means i should do this to add feature for multiclasses:
IF ~Class(LastTalkedToBy(Myself),THIEF)~ THEN BEGIN Start
change into:
IF ~~ THEN BEGIN Start
Should then also work for multiclasses. Because montaron summoned the creature, and it did not Destroyed itself.
I will make some fixes another evening:
- Remove the check for class. (allows multiclasses to change thief kit)
- Remove circle from invisible creature
- Remove visual effect for summoning of the creature.
Edit:
I also now have a plan for how to keep first kit bonuses etc on a dual class.
When forexample a kensai deside to dual. He now has the kensai kit active. Which means we can read the kit type before we change thief kit.
So after you click «yes’» to change kit, you will be sendt to a section which checks your current kit. And based on this it will assign a override script which can see when your thief class revives ur first class. Then it can check ur fighter level and cast a spell based on that level to get first kit spesifications such as bonuses, restrictions, passives, abilities etc.
Example:
You just dualed from kensai to thief.
You get asked if you want to change ur thief kit. If you click yes you get asked if you also want to keep ur kensai bonuses, abilities and restriction once fighter class is revived.
If you say yes to this a spell will be cast on you and you will be assigned a override script called Gelkenz.
If ur a berskerker, the spell will be GelBerz.spl and the override script will be GelBerz.bcs.
If your a necromancer the spell will be GelNecr.spl and the Override script will be GelNecro.bcs.
Etc.
Should work wonders, i will think if im able to fake 2 kits on a multiclass and 3 on a multi FMT as well.
BEGIN ~GelTDia~ IF ~~ THEN BEGIN GelStart // Added function to multiclass and unicified start SAY ~Do you want to change your thief kit?~ IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~~ THEN REPLY ~Yes.~ GOTO GelFirstKit END IF ~~ THEN BEGIN GelFirstKit // Locating first kit, adding OverrideScript to keep track and apply later. SAY ~Do you also want to keep your first kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ ActionOverride(LastTalkedToBy(Myself), SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself), ReallyForceSpellRES("GelKenz", LastTalkedToBy(Myself))) ~ GOTO GelPick IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ ActionOverride(LastTalkedToBy(Myself), SetGlobal("GelKeepBarb","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself), ReallyForceSpellRES("GelBarb", LastTalkedToBy(Myself))) ~ GOTO GelPick IF ~~ THEN REPLY ~No, i want unkitted first class~ GOTO GelPick END IF ~~ THEN BEGIN GelPick SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelApplied SAY ~Done. Your thief overlay is active~ IF ~~ THEN REPLY ~Thanks.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT ENDGelkenz.spl Example:
ChangeScript (82)
Preset target
Permanent
Override
None Magical / Natural
GelKens.baf: // Script to add correct first class kit treats.
// GELKENS.BAF - On PC (via op82) // A) Sync when levelup (Both Classes) IF LevelUp() Global("GelKeepKen","LOCALS",1) THEN RESPONSE #100 Continue() END // B) TIER 1: Fighter lvl 1+ IF Global("GelKeepKen","LOCALS",1) LevelGT(Myself,FIGHTER,0) Global("GelKen1","LOCALS",0) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // +tohit/+dmg, base ac bonus, 1x Kai, restrict armor parts SetGlobal("GelKen1","LOCALS",1) END // C) TIER 2: Fighter lvl 5+ IF Global("GelKeepKen","LOCALS",1) LevelGT(Myself,FIGHTER,4) Global("GelKen2","LOCALS",0) THEN RESPONSE #100 ApplySpellRES("GelKen2",Myself) // Next step kit bonuses/restrictions SetGlobal("GelKen2","LOCALS",1) END // D) TIER 3: Fighter lvl 9+ IF Global("GelKeepKen","LOCALS",1) LevelGT(Myself,FIGHTER,8) Global("GelKen3","LOCALS",0) THEN RESPONSE #100 ApplySpellRES("GelKen3",Myself) SetGlobal("GelKen3","LOCALS",1) END // ... more tiers (13+, 18+, 24+)GelKen1 and 2 and 3 is Tier spell. It applies kitbonuses/restriction for correct level.
Will have to add for all kits that can dual to thief.
Fighter kits
Mage kits
Clerci kits
Also unsure if i miss a level check for dual kits:
IF thief class > fighter class, then apply.
What you mean? Is that mods which already does the function?
Edit: Googlet it and found out, thanks
Anyway, i have increased my plans now.
1. Dual to kitted thief, lose first kit if any: Status Done.
2. Dual to kitted thief + keep/fake first class kit via spell casts. (working on this)
3. Apply thief kit on thief multi classes + add kit spells other classes if chosen. Example: Kensai/Illusionist/Shadowdancer(FMT) - Working on this.
So the different based on what i found on google is that i will make it so you can choose a kit for all classes the character has. (only 1 is true kit, other ones are faked with spells, example the kit description will be: Fighter 13 - Assassin XX or Figher/Assassin, but the Kai abiliy will be availeble, the bonus speed, thaco, damago and restriction on ranged/armor/gloves etc will be there still.
Adding stalker / cleric will be a part as well later. Because i love that dual, and would love it in a multi form as well
Done until level 12 kensai revival. Need to make until 40, but should be fast. Not likely that anyone will dual at 40, but whatever.
Dialog file:
BEGIN ~GelTDia~ IF ~EXIST(LastTalkedToBy(Myself))~ THEN BEGIN GelStart SAY ~Do you want to change your thief kit?~ IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~~ THEN REPLY ~Yes.~ GOTO GelFirstKit END IF ~~ THEN BEGIN GelFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelKenz",LastTalkedToBy(Myself)))~ GOTO GelPick IF ~~ THEN REPLY ~No, i want unkitted first class~ GOTO GelPick END IF ~~ THEN BEGIN GelPick SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelApplied SAY ~Done. Your thief overlay is active~ IF ~~ THEN REPLY ~Thanks.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT ENDBCS file for override script which is set on the character by GelKenz.spl:
//////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////// DUAL CLASS FIRST KIT KENSAI //////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Kensai: lvl 1 = 2 bonus AC and Gain Kai Ability + restric armor & gauntlet & ranged, each 3 level = 1 damage and thaco, each 4 level = -1 speedfactor, each 5th level = kai ability // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// IF Global("GelKeepKen","LOCALS",1) LevelGT(Myself,FIGTHER,0) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",1) END IF Global("GelKen1","LOCALS",1) LevelGT(Myself,FIGTHER,1) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",2) END IF Global("GelKen1","LOCALS",2) LevelGT(Myself,FIGTHER,2) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",3) END IF Global("GelKen1","LOCALS",3) LevelGT(Myself,FIGTHER,3) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",4) END IF Global("GelKen1","LOCALS",4) LevelGT(Myself,FIGTHER,4) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",5) END IF Global("GelKen1","LOCALS",5) LevelGT(Myself,FIGTHER,5) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",6) END IF Global("GelKen1","LOCALS",6) LevelGT(Myself,FIGTHER,6) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",7) END IF Global("GelKen1","LOCALS",7) LevelGT(Myself,FIGTHER,7) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",8) END IF Global("GelKen1","LOCALS",8) LevelGT(Myself,FIGTHER,8) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",9) END IF Global("GelKen1","LOCALS",9) LevelGT(Myself,FIGTHER,9) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",10) END IF Global("GelKen1","LOCALS",10) LevelGT(Myself,FIGTHER,10) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",11) END IF Global("GelKen1","LOCALS",11) LevelGT(Myself,FIGHTER,11) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",12) END IF Global("GelKen1","LOCALS",12) LevelGT(Myself,FIGHTER,12) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",13) END IF Global("GelKen1","LOCALS",13) LevelGT(Myself,FIGHTER,13) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",14) END IF Global("GelKen1","LOCALS",14) LevelGT(Myself,FIGHTER,14) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",15) END IF Global("GelKen1","LOCALS",15) LevelGT(Myself,FIGHTER,15) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",16) END IF Global("GelKen1","LOCALS",16) LevelGT(Myself,FIGHTER,16) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",17) END IF Global("GelKen1","LOCALS",17) LevelGT(Myself,FIGHTER,17) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",18) END IF Global("GelKen1","LOCALS",18) LevelGT(Myself,FIGHTER,18) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",19) END IF Global("GelKen1","LOCALS",19) LevelGT(Myself,FIGHTER,19) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",20) END IF Global("GelKen1","LOCALS",20) LevelGT(Myself,FIGHTER,20) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",21) END IF Global("GelKen1","LOCALS",21) LevelGT(Myself,FIGHTER,21) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",22) END IF Global("GelKen1","LOCALS",22) LevelGT(Myself,FIGHTER,22) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",23) END IF Global("GelKen1","LOCALS",23) LevelGT(Myself,FIGHTER,23) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",24) END IF Global("GelKen1","LOCALS",24) LevelGT(Myself,FIGHTER,24) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",25) END IF Global("GelKen1","LOCALS",25) LevelGT(Myself,FIGHTER,25) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",26) END IF Global("GelKen1","LOCALS",26) LevelGT(Myself,FIGHTER,26) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",27) END IF Global("GelKen1","LOCALS",27) LevelGT(Myself,FIGHTER,27) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",28) END IF Global("GelKen1","LOCALS",28) LevelGT(Myself,FIGHTER,28) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",29) END IF Global("GelKen1","LOCALS",29) LevelGT(Myself,FIGHTER,29) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",30) END IF Global("GelKen1","LOCALS",30) LevelGT(Myself,FIGHTER,30) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",31) END IF Global("GelKen1","LOCALS",31) LevelGT(Myself,FIGHTER,31) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",32) END IF Global("GelKen1","LOCALS",32) LevelGT(Myself,FIGHTER,32) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",33) END IF Global("GelKen1","LOCALS",33) LevelGT(Myself,FIGHTER,33) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",34) END IF Global("GelKen1","LOCALS",34) LevelGT(Myself,FIGHTER,34) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",35) END IF Global("GelKen1","LOCALS",35) LevelGT(Myself,FIGHTER,35) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",36) END IF Global("GelKen1","LOCALS",36) LevelGT(Myself,FIGHTER,36) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",37) END IF Global("GelKen1","LOCALS",37) LevelGT(Myself,FIGHTER,37) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",38) END IF Global("GelKen1","LOCALS",38) LevelGT(Myself,FIGHTER,38) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",39) END IF Global("GelKen1","LOCALS",39) LevelGT(Myself,FIGHTER,39) THEN RESPONSE #100 SetGlobal("GelKen1","LOCALS",40) END IF Global("GelKen1","LOCALS",1) LevelGT(Myself,THIEF,1) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Kai, 2 bonus AC. SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",2) LevelGT(Myself,THIEF,2) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Kai, 2 bonus AC. SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",3) LevelGT(Myself,THIEF,3) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",4) LevelGT(Myself,THIEF,4) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",5) LevelGT(Myself,THIEF,5) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",6) LevelGT(Myself,THIEF,6) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",7) LevelGT(Myself,THIEF,7) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",8) LevelGT(Myself,THIEF,8) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",9) LevelGT(Myself,THIEF,9) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",10) LevelGT(Myself,THIEF,10) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",11) LevelGT(Myself,THIEF,11) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",12) LevelGT(Myself,THIEF,12) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",13) LevelGT(Myself,THIEF,13) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",14) LevelGT(Myself,THIEF,14) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",15) LevelGT(Myself,THIEF,15) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",16) LevelGT(Myself,THIEF,16) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",17) LevelGT(Myself,THIEF,17) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",18) LevelGT(Myself,THIEF,18) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",19) LevelGT(Myself,THIEF,19) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",20) LevelGT(Myself,THIEF,20) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",21) LevelGT(Myself,THIEF,21) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",22) LevelGT(Myself,THIEF,22) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",23) LevelGT(Myself,THIEF,23) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",24) LevelGT(Myself,THIEF,24) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",60) Global("GelKeepKen","LOCALS",1) THEN RESPONSE #100 SetGlobal("GelKeepKen","LOCALS",2) ENDIF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_THIEF~ THEN BEGIN GelFMT1 SAY ~Do you want to change kits on your Fighter / Mage / Thief~ IF ~~ THEN REPLY ~Yes.~ GOTO GelFMT2 IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelFMT2 SAY ~Which fighter kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelFMT3 IF ~~ THEN REPLY ~Kensai~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMKen",LastTalkedToBy(Myself)))~ GOTO GelFMT3 IF ~~ THEN REPLY ~Barbarian~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMBar",LastTalkedToBy(Myself)))~ GOTO GelFMT3 IF ~~ THEN REPLY ~Berserker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMBer",LastTalkedToBy(Myself)))~ GOTO GelFMT3 IF ~~ THEN REPLY ~Dwarven Defender~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMDwD",LastTalkedToBy(Myself)))~ GOTO GelFMT3 IF ~~ THEN REPLY ~Wizard Slayer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMWiS",LastTalkedToBy(Myself)))~ GOTO GelFMT3 END IF ~~ THEN BEGIN GelFMT3 SAY ~Which mage kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelFMT4 IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMNec",LastTalkedToBy(Myself)))~ GOTO GelFMT4 IF ~~ THEN REPLY ~SuperKit, with no restrictions and 1 extra spellcast~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSup","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMSup",LastTalkedToBy(Myself)))~ GOTO GelFMT4 ////// Remaining Mage kits same way. END IF ~~ THEN BEGIN GelFMT4 SAY ~Which Thief kit do you want?~ IF ~~ THEN REPLY ~None~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMAss",LastTalkedToBy(Myself))) SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT ////// Same way for remaining kits. ENDThis means the full dialog will look something like this:
BEGIN ~GelTDia~ IF ~Class(LastTalkedToBy(Myself),THIEF)~ THEN BEGIN GelStart SAY ~Do you want to change your thief kit?~ IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~~ THEN REPLY ~Yes.~ GOTO GelFirstKit END IF ~~ THEN BEGIN GelFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelKenz",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~~ THEN REPLY ~No, i want unkitted first class~ GOTO GelPickThief END IF ~~ THEN BEGIN GelPickThief SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelApplied SAY ~Done. Your thief overlay is active~ IF ~~ THEN REPLY ~Thanks.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_THIEF~ THEN BEGIN GelFMT1 SAY ~Do you want to change kits on your Fighter / Mage / Thief~ IF ~~ THEN REPLY ~Yes.~ GOTO GelFighterMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelFighterMultiClass SAY ~Which fighter kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelMageMulti IF ~~ THEN REPLY ~Kensai~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMKen",LastTalkedToBy(Myself)))~ GOTO GelMageMulti IF ~~ THEN REPLY ~Barbarian~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMBar",LastTalkedToBy(Myself)))~ GOTO GelMageMulti IF ~~ THEN REPLY ~Berserker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMBer",LastTalkedToBy(Myself)))~ GOTO GelMageMulti IF ~~ THEN REPLY ~Dwarven Defender~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMDwD",LastTalkedToBy(Myself)))~ GOTO GelMageMulti IF ~~ THEN REPLY ~Wizard Slayer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMWiS",LastTalkedToBy(Myself)))~ GOTO GelMageMulti END IF ~~ THEN BEGIN GelMageMulti SAY ~Which mage kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelThiefMulti IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMNec",LastTalkedToBy(Myself)))~ GOTO GelThiefMulti IF ~~ THEN REPLY ~SuperKit, with no restrictions and 1 extra spellcast~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSup","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMSup",LastTalkedToBy(Myself)))~ GOTO GelThiefMulti ////// Remaining Mage kits same way. END IF ~~ THEN BEGIN GelThiefMulti SAY ~Which Thief kit do you want?~ IF ~~ THEN REPLY ~None~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMAss",LastTalkedToBy(Myself))) SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT ////// Same way for remaining kits. ENDOkay, I see now that i need a flow-router block so that i can reuse:
GelFighterMulti
GelMageMulti
GelThiefMulti
and later:
GelClericMulti
GelRangerMulti
with check for something like this instead:
IF ~ Class(LastTalkedToBy(Myself),FIGHTER) Class(LastTalkedToBy(Myself),THIEF) !Class(LastTalkedToBy(Myself),MAGE) ~ THEN BEGIN GelFT_Start SAY ~Do you want to apply kit overlays?~ IF ~~ THEN REPLY ~Yes.~ DO ~ SetGlobal("GelHasFighter","LOCALS",1) SetGlobal("GelHasMage","LOCALS",0) SetGlobal("GelHasThief","LOCALS",1) SetGlobal("GelNext","LOCALS",1) // start at fighter ~ GOTO GelMultiRouter ENDBEGIN ~GelTDia~ IF ~Class(LastTalkedToBy(Myself),THIEF)~ THEN BEGIN GelStart SAY ~Do you want to change your Thief Kit?~ IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~~ THEN REPLY ~Yes.~ GOTO GelFirstKit END IF ~~ THEN BEGIN GelFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelKenz",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelBers",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelWiza",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelBarb",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ABJURER)~ THEN REPLY ~Keep Abjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAbj","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelAbju",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),CONJURER)~ THEN REPLY ~Keep Conjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepCon","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelConj",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),DEVINER)~ THEN REPLY ~Keep Deviner Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDev","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDevi",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ENCHANTER)~ THEN REPLY ~Keep Enchanter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepEnc","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelEnch",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ILLUSIONIST)~ THEN REPLY ~Keep Illusionist Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepIll","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelIllu",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),INVOKER)~ THEN REPLY ~Keep Invoker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepInv","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelInvo",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),NECROMANCER)~ THEN REPLY ~Keep Necromancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelNecr",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TRANSMUTER)~ THEN REPLY ~Keep Transmuter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTra","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelTran",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TALOS)~ THEN REPLY ~Keep Talos Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTal","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelTalo",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),LATHANDER)~ THEN REPLY ~Keep Lathander Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepLat","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelLath",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),HELM)~ THEN REPLY ~Keep Helm Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepHel","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelHelm",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~~ THEN REPLY ~No, i want unkitted first class~ GOTO GelPickThief END IF ~~ THEN BEGIN GelPickThief SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelApplied SAY ~Done. Your thief overlay is active~ IF ~~ THEN REPLY ~Thanks.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_THIEF~ THEN BEGIN GelFMT1 SAY ~Do you want to change kits on your Fighter / Mage / Thief~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),MAGE_THIEF~ THEN BEGIN GelMT1 SAY ~Do you want to change kits on your Mage / Thief~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelNextMulti SAY ~Class Found Pick Kit~ IF ~Global("GelFighterMulti","LOCALS",1)~ THEN REPLY ~Choose Fighter Kit~ DO ~SetGlobal("GelFighterMulti","LOCALS",2)~ GOTO GelFighterMulti IF ~Global("GelMageMulti","LOCALS",1)~ THEN REPLY ~Choose Mage Kit~ DO ~SetGlobal("GelMageMulti","LOCALS",2)~ GOTO GelMageMulti IF ~Global("GelThiefMulti","LOCALS",1)~ THEN REPLY ~Choose Thief Kit~ DO ~SetGlobal("GelThiefMulti","LOCALS",2)~ GOTO GelThiefMulti IF ~Global("GelClericMulti","LOCALS",1)~ THEN REPLY ~Choose Cleric Kit~ DO ~SetGlobal("GelClericMulti","LOCALS",2)~ GOTO GelClericMulti IF ~Global("GelRangerMulti","LOCALS",1)~ THEN REPLY ~Choose Ranger Kit~ DO ~SetGlobal("GelRangerMulti","LOCALS",2)~ GOTO GelRangerMulti IF ~~ THEN REPLY ~Im done.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelFighterMulti SAY ~Which fighter kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Kensai~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMKen",LastTalkedToBy(Myself)))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Barbarian~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMBar",LastTalkedToBy(Myself)))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Berserker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMBer",LastTalkedToBy(Myself)))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Dwarven Defender~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMDwD",LastTalkedToBy(Myself)))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Wizard Slayer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMWiS",LastTalkedToBy(Myself)))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelMageMulti SAY ~Which mage kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMNec",LastTalkedToBy(Myself)))~ GOTO GelNextMulti IF ~~ THEN REPLY ~SuperKit, with no restrictions and 1 extra spellcast~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSup","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMSup",LastTalkedToBy(Myself)))~ GOTO GelNextMulti ////// Remaining Mage kits same way. END IF ~~ THEN BEGIN GelThiefMulti SAY ~Which Thief kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMAss",LastTalkedToBy(Myself))) ~ GOTO GelNextMulti ////// Same way for remaining kits. ENDClasses with thief will not summon the creature.
So they will instead summon:
GelMDia (Mage)
GelFDia (Fighter)
GelRDia (Ranger)
GelCDia (Cleric)
GelDDia (Druid)
I want all class checks, kit changes etc to be handled by GelTDia.cre nomatter what creature that are summoned via clab.
But i also want to make sure kit change possibilites only happens onces.
Theese creatures function is to:
ActionOverride(LastSummonerOf(Myself),ReallyForceSpellRES("GelTDia",LastSummonerOf(Myself)))
But only if it does not exists.
I Dont want a FMT to forexample Summon:
GelTDia
GelFDia
GelMDia
And ending up with summoning of total 3 GelTDia...
So GelMDia etc need a script to prevent that:
//// GelMDia.bcs IF OnCreation() THEN RESPONSE #100 Wait(1) SetGlobal("GelMDiaActive","LOCALS",1) SetGlobal("GelMDiaClaim","LOCALS",1) END IF Global("GelTDiaActive","LOCALS",1) THEN RESPONSE #100 DestroySelf() END IF Global("GelFDiaClaim","LOCALS",1) THEN RESPONSE #100 DestroySelf() END IF Global("GelCDiaClaim","LOCALS",1) THEN RESPONSE #100 DestroySelf() END IF Global("GelRDiaClaim","LOCALS",1) THEN RESPONSE #100 DestroySelf() END IF Global("GelTDiaActive","LOCALS",0) Global("GelMDiaActive","LOCALS",1) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),ReallyForceSpellRES("GelTDia",LastSummonerOf(Myself))) DestroySelf() ENDIF OnCreation() Global("GelTDiaClaimed","LOCALS",0) THEN RESPONSE #100 SetGlobal("GelTDiaClaimed","LOCALS",1) ActionOverride(LastSummonerOf(Myself),ReallyForceSpellRES("GelTDia",LastSummonerOf(Myself))) SetGlobal("GelTDiaClaimed","LOCALS",2) DestroySelf() END IF OnCreation() Global("GelTDiaClaimed","LOCALS",2) THEN RESPONSE #100 DestroySelf() END IF OnCreation() Global("GelTDiaActive","LOCALS",1) /// Remember to Put this global in GelTDia.baf THEN RESPONSE #100 DestroySelf() ENDI also made a new section for chosing all thief classes combined into one. Like a super thief kit. For now only for dual classes.
It means i have to assign override script if people choose to go with unkitted first class as well. Because i can only assign one override script in total.
The function basicly adds super kit Shadowdancer(so it can use the hardcoded hide in plain sight), and then it add assassin/bountyhunter/swashbuckler stuff by a single spell which is built with level tier which correspond. And then it reapply it each level by checking the global value together with LevelGT(Myself,Thief,X). The global value will increase each tier to avoid stacking the effects more than once.
Your also prompted to ask if you want to add the «kit spesific HLA» on different levels such as 25, 28, 32, 36, 38, 40 as an example.
Same way, other spell, other global value and different level checks.
Im on phone now so cannot show progress
Edit:
Well thanks to us living in 2026 i was able to get a hold on the plan on my phone as well:
// Added in choose thief kit dual class section
IF ~~ THEN REPLY ~I want all Thief kits combined into one!~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER")) ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelSuperThief","LOCALS",1))~ GOTO GelSuperThief
IF ~~ THEN BEGIN GelSuperThief
SAY ~Do you also want to add kit specific HLA abilities on certain high levels?~
IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT
IF ~~ THEN REPLY ~Yes.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelSuperThiefHLA","LOCALS",1)) SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT
GelSupT.spl is beeing made for kit effects.
Melee Ability 1: Required level 1: Give lvl 1 abilities/passives(assassin, bounty hunter, Swashbuckler)
Melee Ability 2: Required level 2: Give lvl 2 abilities/passives(assassin, bounty hunter, Swashbuckler)
etc.
GelSupH.spl
For learn kit specific HLA’s.
// Kit abilities section, added to all override scripts. Possible easiest to use extend_bottom in tp2 file. And question if your plan is to install RR parts changing thief kit, and RR part changing thief HLA to install correct spell for RR/No RR. (Death attack, acid trap etc).
IF
LevelGT(Myself,THIEF,0)
Global("GelSuperThief","LOCALS",1)
THEN
REPSONSE #100
ReallyForceSpellRES("GelSupT",Myself)
SetGlobal("GelSuperThief","LOCALS",2)
END
IF
LevelGT(Myself,THIEF,1)
Global("GelSuperThief","LOCALS",2)
THEN
REPSONSE #100
ReallyForceSpellRES("GelSupT",Myself)
SetGlobal("GelSuperThief","LOCALS",3)
END
/// HLA based spells:
IF
LevelGT(Myself,THIEF,24)
Global("GelSuperThiefHLA","LOCALS",1)
THEN
REPSONSE #100
ReallyForceSpellRES("GelSupH",Myself)
SetGlobal("GelSuperThief","LOCALS",2)
END
IF
LevelGT(Myself,THIEF,26)
Global("GelSuperThiefHLA","LOCALS",2)
THEN
REPSONSE #100
ReallyForceSpellRES("GelSupH",Myself)
SetGlobal("GelSuperThief","LOCALS",3)
END
SHADOWDANCER as real kit due to Hardcoded "hide in plain sight"
IF Global("GelKen1","LOCALS",25) LevelGT(Myself,THIEF,25) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",26) LevelGT(Myself,THIEF,26) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",27) LevelGT(Myself,THIEF,27) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",28) LevelGT(Myself,THIEF,28) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",29) LevelGT(Myself,THIEF,29) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",30) LevelGT(Myself,THIEF,30) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",31) LevelGT(Myself,THIEF,31) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",32) LevelGT(Myself,THIEF,32) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",33) LevelGT(Myself,THIEF,33) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",34) LevelGT(Myself,THIEF,34) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",35) LevelGT(Myself,THIEF,35) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",36) LevelGT(Myself,THIEF,36) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",37) LevelGT(Myself,THIEF,37) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",38) LevelGT(Myself,THIEF,38) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",39) LevelGT(Myself,THIEF,39) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) END IF Global("GelKen1","LOCALS",40) LevelGT(Myself,THIEF,40) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor SetGlobal("GelKen1","LOCALS",60) ENDWhen in fact the issue was that on this PC my language was set to No_NB instead of En_US.
Amyway what happened was that due to super IT dude setup that
All progression was lost for a while, but luckely I have loads of chats with AI and could just copy most back.
So now i dont take any chances and upload last version of kit here, this version is per now not playable. The one in Post 1 is(but only for Changing Thief Kit)
The new one will soon have ALL class kit changes.
BARD, PALA, FIGHTER, MAGE, THIEF, CLERIC, DRUID, RANGER and all multiclasses and dual classes can also change all their classes kits.
Also added a super thief and a supermage.
Skipped Cleric dual and multi to BeastMaster and Archer. Those combies make ZERO sense.
So instead i will create a new kit within the mod called: Slinging Beastmaster, which will substitute both those. (Quarterstaff, Sling, Club, 5 all those profience availeble, the find familiar, called shot, Ranged bonuses).
So then you can kit forxample:
Dual: Stalker lvl XX - Talos
Multi: Stalker - Helm
Multi: Slinging Beastmaster / Tyr
Or a simple:
Barbarian / Illusionist / Assassin
Or straight out change Rasaad to a usefull monk kit.
Make that idiot bard NPC into a blade live etc.
Cant show code as each .baf for GelMult and GelDual are several hundred of thousands of digits, so wont fit in post XD
But i guess the post have place for the D file. It will work for anything dualing into thief, and any multiclass with thief. But i have other triggers which summons it for mages etc and can then change their kits as well. Need to add a few functions thought to make it happen, but i have a plan for those.
Bard/Paladin/Monk are none dual/multi, so those are easy with another creature/.d/.creature.baf which uses the simplicity of AddSuperKit.
BEGIN ~GelTDia~
///////////////////////////DUAL CLASS: TO THIEF//////////////////////////////////////////
IF ~Class(LastTalkedToBy(Myself),THIEF)~ THEN BEGIN GelStart
SAY ~Do you want to change your Thief Kit?~
IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT
IF ~~ THEN REPLY ~Yes.~ GOTO GelFirstKit
END
Update: Changed so that Pure thief classes not get the original question of changing first class.
BEGIN ~GelTDia~ ///////////////////////////DUAL CLASS: TO THIEF////////////////////////////////////////// IF ~Class(LastTalkedToBy(Myself),THIEF)~ THEN BEGIN GelStart SAY ~Do you want to change your Thief Kit?~ IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~!Class(LastTalkedToBy(Myself),MAGE) !Class(LastTalkedToBy(Myself),FIGHTER) !Class(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelPickThief IF ~OriginalClass(CLERIC)~ THEN REPLY ~Yes.~ GOTO GelFirstKit IF ~OriginalClass(FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelFirstKit IF ~OriginalClass(MAGE)~ THEN REPLY ~Yes.~ GOTO GelFirstKit END IF ~~ THEN BEGIN GelFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ABJURER)~ THEN REPLY ~Keep Abjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAbj","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelAbju",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),CONJURER)~ THEN REPLY ~Keep Conjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepCon","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelConj",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),DEVINER)~ THEN REPLY ~Keep Deviner Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDev","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDevi",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ENCHANTER)~ THEN REPLY ~Keep Enchanter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepEnc","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelEnch",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ILLUSIONIST)~ THEN REPLY ~Keep Illusionist Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepIll","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelIllu",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),INVOKER)~ THEN REPLY ~Keep Invoker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepInv","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelInvo",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),NECROMANCER)~ THEN REPLY ~Keep Necromancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelNecr",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TRANSMUTER)~ THEN REPLY ~Keep Transmuter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTra","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelTran",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TALOS)~ THEN REPLY ~Keep Talos Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTal","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),LATHANDER)~ THEN REPLY ~Keep Lathander Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepLat","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),HELM)~ THEN REPLY ~Keep Helm Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepHel","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TEMPUS)~ THEN REPLY ~Keep Tempus Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTem","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TYR)~ THEN REPLY ~Keep Tyr Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTyr","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelOrgi",LastTalkedToBy(Myself)))~ GOTO GelPickThief END IF ~~ THEN BEGIN GelPickThief SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~I want all Thief kits combined into one!~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER")) ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelSuperThief","LOCALS",1))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END // No need this section, only shadowdancer has special HLA and thats the kit superthief uses anyway. //IF ~~ THEN BEGIN GelSuperThief //SAY ~Do you also want to add kit specific HLA abilities on certain high levels?~ //IF ~~ THEN REPLY ~No.~ GOTO GelApplied //IF ~~ THEN REPLY ~Yes.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelSuperThiefHLA","LOCALS",1)) SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT //END IF ~~ THEN BEGIN GelApplied SAY ~Done. Your Kit overlay is active~ IF ~~ THEN REPLY ~Thanks.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END ////////////////////////////MULTICLASS SECTION//////////////////////////////// IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_THIEF~ THEN BEGIN GelFMT1 SAY ~Do you want to change kits on your Fighter / Mage / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_CLERIC~ THEN BEGIN GelFMC1 SAY ~Do you want to change kits on your Fighter / Mage / Cleric?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelClericMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE~ THEN BEGIN GelFM1 SAY ~Do you want to change kits on your Mage / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_THIEF~ THEN BEGIN GelFT1 SAY ~Do you want to change kits on your Fighter / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_CLERIC~ THEN BEGIN GelFC1 SAY ~Do you want to change kits on your Fighter / Cleric?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelClericMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_DRUID~ THEN BEGIN GelFD1 SAY ~Do you want to change kits on your Fighter / Druid?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelDruidMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),MAGE_THIEF~ THEN BEGIN GelMT1 SAY ~Do you want to change kits on your Mage / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),CLERIC_MAGE~ THEN BEGIN GelCM1 SAY ~Do you want to change kits on your Cleric / Mage?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelClericMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),CLERIC_THIEF~ THEN BEGIN GelCT1 SAY ~Do you want to change kits on your Cleric / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelClericMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~Class(LastTalkedToBy(Myself),CLERIC_RANGER~ THEN BEGIN GelCR1 SAY ~Do you want to change kits on your Cleric / Ranger?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelClericMulti","LOCALS",1) SetGlobal("GelRangerMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelNextMulti SAY ~Class Found Pick Kits~ IF ~Global("GelFighterMulti","LOCALS",1)~ THEN REPLY ~Choose Fighter Kit~ DO ~SetGlobal("GelFighterMulti","LOCALS",2)~ GOTO GelFighterMulti IF ~Global("GelMageMulti","LOCALS",1)~ THEN REPLY ~Choose Mage Kit~ DO ~SetGlobal("GelMageMulti","LOCALS",2)~ GOTO GelMageMulti IF ~Global("GelThiefMulti","LOCALS",1)~ THEN REPLY ~Choose Thief Kit~ DO ~SetGlobal("GelThiefMulti","LOCALS",2)~ GOTO GelThiefMulti IF ~Global("GelClericMulti","LOCALS",1)~ THEN REPLY ~Choose Cleric Kit~ DO ~SetGlobal("GelClericMulti","LOCALS",2)~ GOTO GelClericMulti IF ~Global("GelRangerMulti","LOCALS",1)~ THEN REPLY ~Choose Ranger Kit~ DO ~SetGlobal("GelRangerMulti","LOCALS",2)~ GOTO GelRangerMulti IF ~Global("GelDruidMulti","LOCALS",1)~ THEN REPLY ~Choose Druid Kit~ DO ~SetGlobal("GelDruidMulti","LOCALS",2)~ GOTO GelRangerMulti IF ~~ THEN REPLY ~Im done.~ DO ~ ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMult",LastTalkedToBy(Myself))) SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelFighterMulti SAY ~Which fighter kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Kensai~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiKen","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Barbarian~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBar","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Berserker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBer","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Dwarven Defender~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDwD","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Wizard Slayer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiWiS","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelMageMulti SAY ~Which mage kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Abjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAbj","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Conjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiCon","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Deviner~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDev","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Enchanter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiEnc","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Illusionist~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiIll","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Invoker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiInv","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiNec","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Tansmuter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTra","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~SuperKit, with no restrictions and 1 extra spellcast~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSup","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelThiefMulti SAY ~Which Thief kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAss","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBou","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSwa","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSha","LOCALS",1))~ GOTO GelMultiSuperThief END IF ~~ THEN BEGIN GelMultiSuperThief SAY ~Do you also want to add kit specific HLA abilities on certain high levels?~ IF ~~ THEN REPLY ~No.~ GOTO GelNextMulti IF ~~ THEN REPLY ~Yes.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelThiefHLA","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN BEGIN GelClericMulti SAY ~Which Cleric kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Talos~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTal","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Helm~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiHel","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Lathander~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiLat","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Tempus~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTemp","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Tyr~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTyr","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelDruidMulti SAY ~Which Druid kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Totemic Druid~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTot","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Shapeshifter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSha","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Avenger~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAve","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelRangerMulti SAY ~Which Ranger kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Stalker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSta","LOCALS",1))~ GOTO GelNextMulti //IF ~~ THEN REPLY ~Beast Master~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBea","LOCALS",1))~ GOTO GelNextMulti //IF ~~ THEN REPLY ~Archer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiArc","LOCALS",1))~ GOTO GelNextMulti ENDI feel i have good progress, learned to write dialog code a week ago :P
Monk/Paladin/Bard are unable to dual or multi. So those will have a common Creature with a common Creature D file and Creature Dialog File. The spell to summon that creature will be added as new ability line for each and applied in lvl 1.
// GelSing.D BEGIN ~GelSingleClass~ IF ~Class(LastTalkedToBy(Myself),MONK)~ THEN BEGIN GelMonk SAY ~Do you want to change kit on your monk?~ IF ~~ THEN REPLY ~Yes.~ GOTO GelMonkKitPick IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END // Need to check kitlist.2da for monk spelling of kits. IF ~~ THEN BEGIN GelMonkKitPick SAY ~Which kit do you want?~ IF ~~ THEN REPLY ~Dark Moon~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("DARK_MOON"))~ GOTO GelMonkDone IF ~~ THEN REPLY ~Sun Soul~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SUN_SOUL"))~ GOTO GelMonkDone IF ~~ THEN REPLY ~Nevermind.~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~~ THEN BEGIN GelMonkDone SAY ~Your Monk kit overlay is done~ IF ~~ THEN REPLY ~Thanks~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~Class(LastTalkedToBy(Myself),BARD)~ THEN BEGIN GelBard SAY ~Do you want to change kit on your Bard?~ IF ~~ THEN REPLY ~Yes.~ GOTO GelBardKitPick IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~~ THEN BEGIN GelBardKitPick SAY ~Which kit do you want?~ IF ~~ THEN REPLY ~Blade~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BLADE"))~ GOTO GelBardDone IF ~~ THEN REPLY ~Jester~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("JESTER"))~ GOTO GelBardDone IF ~~ THEN REPLY ~Skald~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SKALD"))~ GOTO GelBardDone IF ~~ THEN REPLY ~Nevermind.~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~~ THEN BEGIN GelBardDone SAY ~Your Bard kit overlay is done~ IF ~~ THEN REPLY ~Thanks~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~Class(LastTalkedToBy(Myself),PALADIN)~ THEN BEGIN GelPaladin SAY ~Do you want to change kit on your Paladin?~ IF ~~ THEN REPLY ~Yes.~ GOTO GelPaladinKitPick IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~~ THEN BEGIN GelPaladinKitPick SAY ~Which kit do you want?~ IF ~~ THEN REPLY ~Cavalier~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("CAVALIER"))~ GOTO GelPaladinDone IF ~~ THEN REPLY ~Inquisitor~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("INQUISITOR"))~ GOTO GelPaladinDone IF ~~ THEN REPLY ~Undead Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("UNDEAD_HUNTER"))~ GOTO GelPaladinDone IF ~~ THEN REPLY ~Blackguard~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BLACKGUARD"))~ GOTO GelPaladinDone IF ~~ THEN REPLY ~Nevermind.~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self END IF ~~ THEN BEGIN GelPaladinDone SAY ~Your Paladin kit overlay is done~ IF ~~ THEN REPLY ~Thanks~ DO ~SetGlobal("GelSingleClass","LOCALS",3)~ EXIT // Destroys self ENDSame for paladin, same for bard.
Script will be something like this:
//GelSing.Baf IF OnCreation() THEN RESPONSE #100 SetGlobal("GelSingleClass","LOCALS",1) END IF Global("GelSingleClass","LOCALS",1) Exists(LastSummonerOf(Myself)) InParty(LastSummonerOf(Myself)) THEN RESPONSE #100 ClearAllActions() StartDialogNoSet(LastSummonerOf(Myself)) SetGlobal("GelSingleClass","LOCALS",2) END IF Global("GelSingleClass","LOCALS",1) !Exists(LastSummonerOf(Myself)) THEN RESPONSE #100 DestroySelf() END IF Global("GelSingleClass","LOCALS",3) THEN RESPONSE #100 DestroySelf() END IF !InParty(LastSummonerOf(Myself)) THEN RESPONSE #100 DestroySelf() ENDAdding Dualing to mage part:
///////////////////////////DUAL CLASS: TO Mage////////////////////////////////////////// IF ~Class(LastTalkedToBy(Myself),MAGE)~ THEN BEGIN GelStartMage SAY ~Do you want to change your Mage Kit?~ IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT IF ~!Class(LastTalkedToBy(Myself),THIEF) !Class(LastTalkedToBy(Myself),FIGHTER) !Class(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelPickMage IF ~OriginalClass(CLERIC)~ THEN REPLY ~Yes.~ GOTO GelMageFirstKit IF ~OriginalClass(FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelMageFirstKit IF ~OriginalClass(THIEF)~ THEN REPLY ~Yes.~ GOTO GelMageFirstKit END IF ~~ THEN BEGIN GelMageFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),TALOS)~ THEN REPLY ~Keep Talos Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTal","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),LATHANDER)~ THEN REPLY ~Keep Lathander Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepLat","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),HELM)~ THEN REPLY ~Keep Helm Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepHel","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),TEMPUS)~ THEN REPLY ~Keep Tempus Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTem","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),TYR)~ THEN REPLY ~Keep Tyr Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTyr","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),ASSASIN)~ THEN REPLY ~Keep Assassin Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),SHADOWDANCER)~ THEN REPLY ~Keep Shadowdancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSha","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),BOUNTY_HUNTER)~ THEN REPLY ~Keep Bounty Hunter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBou","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),SWASHBUCKLER)~ THEN REPLY ~Keep Swashbuckler Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSwa","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelOrgi",LastTalkedToBy(Myself)))~ GOTO GelPickMage END IF ~~ THEN BEGIN GelPickMage SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Abjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ABJURER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Conjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("CONJURER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Diviner~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("DIVINER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Enchanter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ENCHANTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Illusionist~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ILLUSIONIST"))~ GOTO GelApplied IF ~~ THEN REPLY ~Invoker~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("INVOKER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("NECROMANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Transmuter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("TRANSMUTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~I want Super Mage kit with 1 extra spells cast per level, no class restrictions or bonuses.~ DO ~ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelSMag",LastTalkedToBy(Myself)))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT ENDCorrect target of locals values.
Prevents more than 1 dialog.
Updated here:
GelTDia.Baf:
///// Allowed to exists if first. And kill all other creatures such as GelTDia, GelMDia, GelFDia etc.//// IF OnCreation() Global("GelTDia_Init","LOCALS",0,LastSummonerOf(Myself)) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",1)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitClaimed","LOCALS",2)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaActive","LOCALS",1)) END // Removed if not first./// IF OnCreation() GlobalGT("GelTDia_Init","LOCALS",0,LastSummonerOf(Myself)) THEN RESPONSE #100 DestroySelf() END // Starts dialog IF Global("GelTDia_Init","LOCALS",1,LastSummonerOf(Myself)) Exists(LastSummonerOf(Myself)) InParty(LastSummonerOf(Myself)) THEN RESPONSE #100 ClearAllActions() StartDialogNoSet(LastSummonerOf(Myself)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",2)) END // IF Global("GelTDia_Init","LOCALS",1,LastSummonerOf(Myself)) !Exists(LastSummonerOf(Myself)) THEN RESPONSE #100 DestroySelf() END IF Global("GelTDia_Init","LOCALS",3,LastSummonerOf(Myself)) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitClaimed","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaActive","LOCALS",0)) DestroySelf() ENDGelTDia.D
BEGIN ~GelTDia~ ///////////////////////////DUAL CLASS: TO THIEF////////////////////////////////////////// IF ~Class(LastTalkedToBy(Myself),THIEF)~ THEN BEGIN GelStart SAY ~Do you want to change your Thief Kit?~ IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT IF ~!Class(LastTalkedToBy(Myself),MAGE) !Class(LastTalkedToBy(Myself),FIGHTER) !Class(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelPickThief IF ~OriginalClass(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),MAGE)~ THEN REPLY ~Yes.~ GOTO GelFirstKit END IF ~~ THEN BEGIN GelFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),DWARVEN_DEFENDER)~ THEN REPLY ~Keep Dwarven Defender Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ABJURER)~ THEN REPLY ~Keep Abjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAbj","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelAbju",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),CONJURER)~ THEN REPLY ~Keep Conjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepCon","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelConj",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),DIVINER)~ THEN REPLY ~Keep Diviner Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDev","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDevi",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ENCHANTER)~ THEN REPLY ~Keep Enchanter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepEnc","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelEnch",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),ILLUSIONIST)~ THEN REPLY ~Keep Illusionist Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepIll","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelIllu",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),INVOKER)~ THEN REPLY ~Keep Invoker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepInv","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelInvo",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),NECROMANCER)~ THEN REPLY ~Keep Necromancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelNecr",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TRANSMUTER)~ THEN REPLY ~Keep Transmuter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTra","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelTran",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),TALOS)~ THEN REPLY ~Keep Talos Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTal","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),LATHANDER)~ THEN REPLY ~Keep Lathander Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepLat","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),HELM)~ THEN REPLY ~Keep Helm Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepHel","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),OHTEMPUS)~ THEN REPLY ~Keep Tempus Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTem","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~Kit(LastTalkedToBy(Myself),OHTYR)~ THEN REPLY ~Keep Tyr Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTyr","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickThief END IF ~~ THEN BEGIN GelPickThief SAY ~Choose your thief kit overlay~ IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ASSASIN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SWASHBUCKLER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BOUNTYHUNTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~I want all Thief kits combined into one!~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHADOWDANCER")) ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelSuperThief","LOCALS",1))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~~ THEN BEGIN GelApplied SAY ~Done. Your Kit overlay is active~ IF ~~ THEN REPLY ~Thanks.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END ///////////////////////////DUAL CLASS: To Mage////////////////////////////////////////// IF ~Class(LastTalkedToBy(Myself),MAGE)~ THEN BEGIN GelStartMage SAY ~Do you want to change your Mage Kit?~ IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT IF ~!Class(LastTalkedToBy(Myself),THIEF) !Class(LastTalkedToBy(Myself),FIGHTER) !Class(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelPickMage IF ~OriginalClass(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelMageFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelMageFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),THIEF)~ THEN REPLY ~Yes.~ GOTO GelMageFirstKit END IF ~~ THEN BEGIN GelMageFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),DWARVEN_DEFENDER)~ THEN REPLY ~Keep Dwarven Defender Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),TALOS)~ THEN REPLY ~Keep Talos Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTal","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),LATHANDER)~ THEN REPLY ~Keep Lathander Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepLat","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),HELM)~ THEN REPLY ~Keep Helm Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepHel","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),OHTEMPUS)~ THEN REPLY ~Keep Tempus Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTem","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),OHTYR)~ THEN REPLY ~Keep Tyr Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTyr","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),ASSASIN)~ THEN REPLY ~Keep Assassin Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),SHADOWDANCER)~ THEN REPLY ~Keep Shadowdancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSha","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),BOUNTY_HUNTER)~ THEN REPLY ~Keep Bounty Hunter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBou","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~Kit(LastTalkedToBy(Myself),SWASHBUCKLER)~ THEN REPLY ~Keep Swashbuckler Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSwa","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickMage END IF ~~ THEN BEGIN GelPickMage SAY ~Choose your Mage kit overlay~ IF ~~ THEN REPLY ~Abjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ABJURER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Conjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("CONJURER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Diviner~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("DIVINER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Enchanter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ENCHANTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Illusionist~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("ILLUSIONIST"))~ GOTO GelApplied IF ~~ THEN REPLY ~Invoker~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("INVOKER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("NECROMANCER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Transmuter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("TRANSMUTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~I want Super Mage kit with 1 extra spells cast per level, no class restrictions or bonuses.~ DO ~ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelSMag",LastTalkedToBy(Myself)))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END ////////////////////////////MULTICLASS SECTION//////////////////////////////// IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_THIEF~ THEN BEGIN GelFMT1 SAY ~Do you want to change kits on your Fighter / Mage / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_CLERIC~ THEN BEGIN GelFMC1 SAY ~Do you want to change kits on your Fighter / Mage / Cleric?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelClericMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE~ THEN BEGIN GelFM1 SAY ~Do you want to change kits on your Fighter / Mage?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelMageMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_THIEF~ THEN BEGIN GelFT1 SAY ~Do you want to change kits on your Fighter / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_CLERIC~ THEN BEGIN GelFC1 SAY ~Do you want to change kits on your Fighter / Cleric?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelClericMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),FIGHTER_DRUID~ THEN BEGIN GelFD1 SAY ~Do you want to change kits on your Fighter / Druid?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","LOCALS",1) SetGlobal("GelDruidMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),MAGE_THIEF~ THEN BEGIN GelMT1 SAY ~Do you want to change kits on your Mage / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),CLERIC_MAGE~ THEN BEGIN GelCM1 SAY ~Do you want to change kits on your Cleric / Mage?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelMageMulti","LOCALS",1) SetGlobal("GelClericMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),CLERIC_THIEF~ THEN BEGIN GelCT1 SAY ~Do you want to change kits on your Cleric / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelClericMulti","LOCALS",1) SetGlobal("GelThiefMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~Class(LastTalkedToBy(Myself),CLERIC_RANGER~ THEN BEGIN GelCR1 SAY ~Do you want to change kits on your Cleric / Ranger?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelClericMulti","LOCALS",1) SetGlobal("GelRangerMulti","LOCALS",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~~ THEN BEGIN GelNextMulti SAY ~Class Found Pick Kits~ IF ~Global("GelFighterMulti","LOCALS",1)~ THEN REPLY ~Choose Fighter Kit~ DO ~SetGlobal("GelFighterMulti","LOCALS",2)~ GOTO GelFighterMulti IF ~Global("GelMageMulti","LOCALS",1)~ THEN REPLY ~Choose Mage Kit~ DO ~SetGlobal("GelMageMulti","LOCALS",2)~ GOTO GelMageMulti IF ~Global("GelThiefMulti","LOCALS",1)~ THEN REPLY ~Choose Thief Kit~ DO ~SetGlobal("GelThiefMulti","LOCALS",2)~ GOTO GelThiefMulti IF ~Global("GelClericMulti","LOCALS",1)~ THEN REPLY ~Choose Cleric Kit~ DO ~SetGlobal("GelClericMulti","LOCALS",2)~ GOTO GelClericMulti IF ~Global("GelRangerMulti","LOCALS",1)~ THEN REPLY ~Choose Ranger Kit~ DO ~SetGlobal("GelRangerMulti","LOCALS",2)~ GOTO GelRangerMulti IF ~Global("GelDruidMulti","LOCALS",1)~ THEN REPLY ~Choose Druid Kit~ DO ~SetGlobal("GelDruidMulti","LOCALS",2)~ GOTO GelDruidMulti IF ~~ THEN REPLY ~Im done.~ DO ~ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMult",LastTalkedToBy(Myself))) ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END IF ~~ THEN BEGIN GelFighterMulti SAY ~Which fighter kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Kensai~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiKen","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Barbarian~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBar","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Berserker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBer","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Dwarven Defender~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDwD","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Wizard Slayer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiWiS","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelMageMulti SAY ~Which mage kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Abjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAbj","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Conjurer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiCon","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Deviner~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiDev","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Enchanter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiEnc","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Illusionist~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiIll","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Invoker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiInv","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Necromancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiNec","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Tansmuter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTra","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~SuperKit, with no restrictions and 1 extra spellcast~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSup","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelThiefMulti SAY ~Which Thief kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Assassin~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAss","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Bounty Hunter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBou","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Swashbuckler~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSwa","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Shadowdancer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSha","LOCALS",1))~ GOTO GelMultiSuperThief END IF ~~ THEN BEGIN GelMultiSuperThief SAY ~Do you also want to add kit specific HLA abilities on certain high levels?~ IF ~~ THEN REPLY ~No.~ GOTO GelNextMulti IF ~~ THEN REPLY ~Yes.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelThiefHLA","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelClericMulti SAY ~Which Cleric kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Talos~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTal","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Helm~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiHel","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Lathander~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiLat","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Tempus~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTemp","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Tyr~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTyr","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelDruidMulti SAY ~Which Druid kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Totemic Druid~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiTot","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Shapeshifter~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSha","LOCALS",1))~ GOTO GelNextMulti IF ~~ THEN REPLY ~Avenger~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiAve","LOCALS",1))~ GOTO GelNextMulti END IF ~~ THEN BEGIN GelRangerMulti SAY ~Which Ranger kit do you want?~ IF ~~ THEN REPLY ~None~ GOTO GelNextMulti IF ~~ THEN REPLY ~Stalker~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiSta","LOCALS",1))~ GOTO GelNextMulti //IF ~~ THEN REPLY ~Beast Master~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiBea","LOCALS",1))~ GOTO GelNextMulti //IF ~~ THEN REPLY ~Archer~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelMultiArc","LOCALS",1))~ GOTO GelNextMulti ENDGelMDia.baf, same for GelFDia, GelRDia, GelCDia:
OnCreation() Global("GelTDiaClaimed","LOCALS",0,LastSummonerOf(Myself)) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaClaimed","LOCALS",1)) ActionOverride(LastSummonerOf(Myself),ReallyForceSpellRES("GelTDia",LastSummonerOf(Myself))) SetGlobal("GelTDiaClaimed","LOCALS",2,LastSummonerOf(Myself)) DestroySelf() END IF OnCreation() Global("GelTDiaClaimed","LOCALS",2,LastSummonerOf(Myself)) THEN RESPONSE #100 DestroySelf() END IF OnCreation() Global("GelTDiaActive","LOCALS",1,LastSummonerOf(Myself)) THEN RESPONSE #100 DestroySelf() ENDThis way they work together and prevent double dialog.
They also allows other characters to do their dialog, example if 2 NPC joins at same time(Khalid/Jaheira, Montaron/Xzar)
So here is Dual to cleric, druid, fighter, ranger the first IF blocks, i will finnish the kit choices etc later.
I have also done some changes in previous post.
The claim system, the prevention of more than 1 dialog, yet still allowing new dialog if you dual and then pick kit again.
Example:
Immoen BGEE is THIEF (No kit).
WHen you party here, you get the choice to pick a Thief kit. Lets say: Shadowdancer.
Then later you decide to dual here to something. Mage to keep the lore rolling.
Now right after dual you get new dialog, she can choose to keep the shadowdancer kit by faking it with spells, and also pick a kit for here mage.
Other example:
Both Jaheira and Khalid joins.
You can change Jaheira to Berserker / Totemic Druid by faking kit features with spells.
You can change Khalid to Forexample Kensai, then later dual him(if he is human, im unsure xD) to cleric and choose to keep Kensai kit, and chose to be Tyr kit cleric. Your actual kit will be TYR, because it will override Kensai, but the information of Kensai and Level is stored and you will be given the correct Kit adds by spells for that Kensai level once your cleric level > Fighter level.
Other example:
Im am unsure what happens if you are already a leveled up, but i think it may work then as well, if not it should work together with "Customizable NPCs" from Anatholy Tweaks aka CD#Tweaks.
Anyway, since BG2EE Imoen is Thief/Mage you will not be able to chose a thief kit, only kits that you ARE when dualing will be allowed to be chosen. This is a intention from me. So the choices for here in BG2EE is THIEF / Any Mage kit.
But there is a twist, if you really want to have "2 kits" on here, you can use the "Customizable NPCs" from CDtweaks. Because i believe that will first reset here to thief lvl 1. Then you pick kit. Then you level up. Then you dual. Then you pick second kit and choose to keep first kit by faking it with spells.
Once done i will test theese scenarios, if it crash i will add some checks to make sure it wont crash.
I added zero Race checks, this is intentional. Because there are tweaks that allows other races to dual/multi.
//////////////////////DUAL TO CLERIC////////////////////////////// /// DUAL TO CLERIC IF ~Class(LastTalkedToBy(Myself),CLERIC)~ THEN BEGIN GelStartCleric SAY ~Do you want to change your Cleric Kit?~ IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT IF ~!Class(LastTalkedToBy(Myself),MAGE) !Class(LastTalkedToBy(Myself),THIEF) !Class(LastTalkedToBy(Myself),FIGHTER) !Class(LastTalkedToBy(Myself),RANGER)~ THEN REPLY ~Yes.~ GOTO GelPickCleric OR(4) IF ~OriginalClass(LastTalkedToBy(Myself),MAGE)~ THEN REPLY ~Yes.~ GOTO GelClericFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),THIEF)~ THEN REPLY ~Yes.~ GOTO GelClericFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelClericFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),RANGER)~ THEN REPLY ~Yes.~ GOTO GelClericFirstKit END IF ~~ THEN BEGIN GelClericFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),DWARVEN_DEFENDER)~ THEN REPLY ~Keep Dwarven Defender Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),ABJURER)~ THEN REPLY ~Keep Abjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAbj","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelAbju",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),CONJURER)~ THEN REPLY ~Keep Conjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepCon","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelConj",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),DIVINER)~ THEN REPLY ~Keep Diviner Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDev","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDevi",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),ENCHANTER)~ THEN REPLY ~Keep Enchanter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepEnc","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelEnch",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),ILLUSIONIST)~ THEN REPLY ~Keep Illusionist Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepIll","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelIllu",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),INVOKER)~ THEN REPLY ~Keep Invoker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepInv","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelInvo",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),NECROMANCER)~ THEN REPLY ~Keep Necromancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelNecr",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),TRANSMUTER)~ THEN REPLY ~Keep Transmuter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTra","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelTran",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),STALKER)~ THEN REPLY ~Keep Stalker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSta","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),GelSling)~ THEN REPLY ~Keep Slinging Beastmaster Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSli","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),ASSASIN)~ THEN REPLY ~Keep Assassin Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),SHADOWDANCER)~ THEN REPLY ~Keep Shadowdancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSha","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),BOUNTY_HUNTER)~ THEN REPLY ~Keep Bounty Hunter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBou","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~Kit(LastTalkedToBy(Myself),SWASHBUCKLER)~ THEN REPLY ~Keep Swashbuckler Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSwa","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickCleric END IF ~~ THEN BEGIN GelPickCleric SAY ~Choose your Cleric kit overlay~ IF ~~ THEN REPLY ~Talos~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("TALOS"))~ GOTO GelApplied IF ~~ THEN REPLY ~Lathander~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("LATHANDER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Helm~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("HELM"))~ GOTO GelApplied IF ~~ THEN REPLY ~Tempus~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("OHTEMPUS"))~ GOTO GelApplied IF ~~ THEN REPLY ~Tyr~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("OHTYR"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END ////////////////////DUAL TO FIGHTER////////////////////////////////// IF ~Class(LastTalkedToBy(Myself),FIGHTER)~ THEN BEGIN GelStartFighter SAY ~Do you want to change your Fighter Kit?~ IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT IF ~!Class(LastTalkedToBy(Myself),MAGE) !Class(LastTalkedToBy(Myself),THIEF) !Class(LastTalkedToBy(Myself),DRUID) !Class(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelPickFighter OR(4) IF ~OriginalClass(LastTalkedToBy(Myself),MAGE)~ THEN REPLY ~Yes.~ GOTO GelFighterFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),THIEF)~ THEN REPLY ~Yes.~ GOTO GelFighterFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),DRUID)~ THEN REPLY ~Yes.~ GOTO GelFighterFirstKit IF ~OriginalClass(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelFighterFirstKit END IF ~~ THEN BEGIN GelFighterFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),ABJURER)~ THEN REPLY ~Keep Abjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAbj","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelAbju",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),CONJURER)~ THEN REPLY ~Keep Conjurer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepCon","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelConj",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),DIVINER)~ THEN REPLY ~Keep Diviner Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDev","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDevi",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),ENCHANTER)~ THEN REPLY ~Keep Enchanter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepEnc","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelEnch",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),ILLUSIONIST)~ THEN REPLY ~Keep Illusionist Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepIll","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelIllu",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),INVOKER)~ THEN REPLY ~Keep Invoker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepInv","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelInvo",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),NECROMANCER)~ THEN REPLY ~Keep Necromancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepNec","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelNecr",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),TRANSMUTER)~ THEN REPLY ~Keep Transmuter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTra","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelTran",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),ASSASIN)~ THEN REPLY ~Keep Assassin Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAss","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),SHADOWDANCER)~ THEN REPLY ~Keep Shadowdancer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSha","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),BOUNTY_HUNTER)~ THEN REPLY ~Keep Bounty Hunter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBou","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),SWASHBUCKLER)~ THEN REPLY ~Keep Swashbuckler Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepSwa","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),TOTEMIC_DRUID)~ THEN REPLY ~Keep Totemic Druid Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTot","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),SHAPESHIFTER)~ THEN REPLY ~Keep Shapeshifter Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepShp","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~Kit(LastTalkedToBy(Myself),BEAST_FRIEND)~ THEN REPLY ~Keep Avenger Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepAve","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickFighter END IF ~~ THEN BEGIN GelPickFighter SAY ~Choose your Fighter kit overlay~ IF ~~ THEN REPLY ~Kensai~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("KENSAI"))~ GOTO GelApplied IF ~~ THEN REPLY ~Dwarven Defender~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("DWARVEN_DEFENDER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Berserker~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BERSERKER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Wizard Slayer~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("WIZARD_SLAYER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Barbarian~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BARBARIAN"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END ///////////////////////DUAL TO RANGER//////////////////////////////// IF ~Class(LastTalkedToBy(Myself),RANGER)~ THEN BEGIN GelStartRanger SAY ~Do you want to change your Ranger Kit?~ IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT IF ~OriginalClass(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelRangerFirstKit END IF ~~ THEN BEGIN GelRangerFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),TALOS)~ THEN REPLY ~Keep Talos Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTal","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickRanger IF ~Kit(LastTalkedToBy(Myself),LATHANDER)~ THEN REPLY ~Keep Lathander Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepLat","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickRanger IF ~Kit(LastTalkedToBy(Myself),HELM)~ THEN REPLY ~Keep Helm Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepHel","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickRanger IF ~Kit(LastTalkedToBy(Myself),OHTEMPUS)~ THEN REPLY ~Keep Tempus Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTem","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickRanger IF ~Kit(LastTalkedToBy(Myself),OHTYR)~ THEN REPLY ~Keep Tyr Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepTyr","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickRanger IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickRanger END IF ~~ THEN BEGIN GelPickRanger SAY ~Choose your Ranger kit overlay~ IF ~~ THEN REPLY ~Stalker~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("STALKER"))~ GOTO GelApplied IF ~~ THEN REPLY ~I want a the new Slinging Beastmaster~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("GelSling"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT END //////////////////////////DUAL TO DRUID/////////////////////////////////// IF ~Class(LastTalkedToBy(Myself),DRUID)~ THEN BEGIN GelStartDruid SAY ~Do you want to change your Druid Kit?~ IF ~~ THEN REPLY ~No.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT IF ~OriginalClass(LastTalkedToBy(Myself),FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelDruidFirstKit END IF ~~ THEN BEGIN GelDruidFirstKit SAY ~Do you also want to keep your first class kit bonuses, restrictions and abilities?~ IF ~Kit(LastTalkedToBy(Myself),KENSAI)~ THEN REPLY ~Keep Kensai Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepKen","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickDruid IF ~Kit(LastTalkedToBy(Myself),DWARVEN_DEFENDER)~ THEN REPLY ~Keep Dwarven Defender Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepDwD","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickDruid IF ~Kit(LastTalkedToBy(Myself),BERSERKER)~ THEN REPLY ~Keep Berskerker Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBer","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickDruid IF ~Kit(LastTalkedToBy(Myself),WIZARD_SLAYER)~ THEN REPLY ~Keep Wizard_Slayer Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepWiS","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickDruid IF ~Kit(LastTalkedToBy(Myself),BARBARIAN)~ THEN REPLY ~Keep Barbarian Kit specifications~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepBar","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickDruid IF ~~ THEN REPLY ~No, i want unkitted first class~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelKeepOrg","LOCALS",1)) ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastTalkedToBy(Myself)))~ GOTO GelPickDruid END IF ~~ THEN BEGIN GelPickDruid SAY ~Choose your Druid kit overlay~ IF ~~ THEN REPLY ~Totemic Druid~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("TOTEMIC_DRUID"))~ GOTO GelApplied IF ~~ THEN REPLY ~Shapeshifter~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("SHAPESHIFTER"))~ GOTO GelApplied IF ~~ THEN REPLY ~Avenger~ DO ~ActionOverride(LastTalkedToBy(Myself),AddSuperKit("BEAST_FRIEND"))~ GOTO GelApplied IF ~~ THEN REPLY ~Never mind.~ DO ~ActionOverride(LastTalkedToBy(Myself),SetGlobal("GelTDia_Init","LOCALS",3))~ EXIT ENDAt risk of losing my progress on this common PC, here is last updated progression of kit:
The progress:
Cleaning up faults.
Finnishing more or all classess in both dual and multi script
Updating to last code for creatures
Solidify script, and add general factors such as:
IF Global("GelKen1","LOCALS",23) OR(4) LevelGT(Myself,THIEF,23) LevelGT(Myself,CLERIC,23) LevelGT(Myself,MAGE,23) LevelGT(Myself,DRUID,23) !Kit(Myself,KENSAI) THEN RESPONSE #100 ApplySpellRES("GelKen1",Myself) // Restrictions, Learn Kai, 2 bonus AC. ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage ApplySpellRES("GelKen5",Myself) // Learn Kai ApplySpellRES("GelKen4",Myself) // -1 speed factor ApplySpellRES("GelKen3",Myself) // +1thaco & damage SetGlobal("GelKen1","LOCALS",60) ENDDone with Dual class, singleclass, Multiclass with exception of making the spells, and with exception of changing kit on any NPC.
Trying to add the feature to change kits on Singleclas NPC:
// GelKit1.BAF // No Need THIS... IF JoinParty(LastSummonerOf(Myself)) GlobalObject("GelSKitItemGiven",LastSummonerOf(Myself),0) OR() Kit(LastSummonerOf(Myself),"SUN_SOUL"), Kit(LastSummonerOf(Myself),"DARK_MOON"), Kit(LastSummonerOf(Myself),"BLADE"), Kit(LastSummonerOf(Myself),"JESTER"), Kit(LastSummonerOf(Myself),"SKALD"), Kit(LastSummonerOf(Myself),"INQUISITOR"), Kit(LastSummonerOf(Myself),"CAVALIER"), Kit(LastSummonerOf(Myself),"BLACKGUARD"), Kit(LastSummonerOf(Myself),"KENSAI"), Kit(LastSummonerOf(Myself),"DWARVEN_DEFENDER"), Kit(LastSummonerOf(Myself),"BARBARIAN"), Kit(LastSummonerOf(Myself),"BERSERKER"), Kit(LastSummonerOf(Myself),"WIZARD_SLAYER"), Kit(LastSummonerOf(Myself),"FERALAN"), Kit(LastSummonerOf(Myself),"BEASTMASTER"), Kit(LastSummonerOf(Myself),"STALKER"), Kit(LastSummonerOf(Myself),"DIVINER"), Kit(LastSummonerOf(Myself),"ABJURER"), Kit(LastSummonerOf(Myself),"ENCHANTER"), Kit(LastSummonerOf(Myself),"CONJURER"), Kit(LastSummonerOf(Myself),"INVOKER"), Kit(LastSummonerOf(Myself),"NECROMANCER"), Kit(LastSummonerOf(Myself),"TRANSMUTER") THEN RESPONSE #100 GiveItem(LastSummonerOf(Myself),"GelSKit",1) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitItemGiven","LOCALS",1)) END // Når item brukes, starter dialog IF ItemUsed("GelSKit") THEN RESPONSE #100 StartDialogNoSet(LastSummonerOf(Myself)) DestroyItem("GelKit1") ActionOverride(LastSummonerOf(Myself,SetGlobal("GelSKitItemGiven","LOCALS",2)) // mark done ENDGelTDia.baf:
IF OnCreation() IsPlayer(LastSummonerOf(Myself)) GlobalObject("GelTDia_Init",LastSummonerOf(Myself),0) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",1)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitClaimed","LOCALS",2)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaActive","LOCALS",1)) END // Removed if not first./// IF OnCreation() GlobalObject("GelTDia_Init",LastSummonerOf(Myself),0) THEN RESPONSE #100 DestroySelf() END // Starts dialog IF GlobalObject("GelTDia_Init",LastSummonerOf(Myself),1) Exists(LastSummonerOf(Myself)) InParty(LastSummonerOf(Myself)) THEN RESPONSE #100 ClearAllActions() StartDialogNoSet(LastSummonerOf(Myself)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",2)) END // Safeguard if dead IF GlobalObject("GelTDia_Init",LastSummonerOf(Myself),1) !Exists(LastSummonerOf(Myself)) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitClaimed","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaActive","LOCALS",0)) DestroySelf() END IF GlobalObject("GelTDia_Init",LastSummonerOf(Myself),3) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitClaimed","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaActive","LOCALS",0)) DestroySelf() END IF OnCreation() !IsPlayer(LastSummonerOf(Myself)) THEN RESPONSE #100 ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDia_Init","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelKitClaimed","LOCALS",0)) ActionOverride(LastSummonerOf(Myself),SetGlobal("GelTDiaActive","LOCALS",0)) ENDHmm TP2 adds:
EXTEND_TOP ~Xzar.bcs~ ~MyMod/Scripts/GelDual.baf~
EXTEND_TOP ~Montaron.bcs~ ~MyMod/Scripts/GelMult.baf~
EXTEND_TOP ~Rasaad.bcs~ ~MyMod/Scripts/GelSing.baf~
Adding bottom of all them new scripts(GelDual.baf, GelMult.baf, GelSing.baf, GelKit1.baf) :
IF Global("GelJoinParty","LOCALS",0) JoinParty() THEN RESPONSE# 100 SetGlobal("GelJoinParty","LOCALS",1) ReallyForceSpellRES("GelNDia",Myself) // Summons GelNDia.cre END IF Global("GelJoinParty","LOCALS",1) THEN RESPONSE# 100 SetGlobal("GelJoinParty","LOCALS",99) ENDGelNDia.cre uses same dialog as GelTDia.cre, but without any:
ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelDual",LastSummonerOf(Myself)))
Will only set the globals for level/kit tracking.
Not done, this is as far as i came in the evenings after workhours while stuck on work :P
Some of these issues might be solvable by creating proper multiclass kits. You are not doing anything of the sort.
Thief kits do work properly in a dual class, either before or after. I quite like how a Fighter -> Assassin plays.
Assassin/X:
- Gets 25 skill points per level. No disadvantage compared to basic thief/X.
Bounty Hunter/X:
- Gets 25 skill points per level. No disadvantage compared to basic thief/X.
Swashbuckler/X:
- Can't go beyond one dot in any proficiency unless the other class is Fighter.
- Chooses from standard thief HLAs rather than the modified Swashbuckler list.
- Gets full backstab modifier. No disadvantage compared to basic thief/X.
Shadowdancer/X:
- Gets 25 skill points per level.
- Can waste skill points in Set Traps (no uses of Set Snare to use them with).
- Gets full backstab multiplier.
I have solved many of theese issues:
There are 2 different dialog scripts, 2 different invisible creatures.
If summoner is Player, then GelNDia will destroy itself upon OnCreation().
If summoner is !Player, then GelTDia will destroy itself upon OnCreation().
If more than 1 relevant creature is summoned, the 2nd one will Destroy itself.
GelDual.baf is Append_Top to every Sinlge or Dual class NPC script/bcs.
GelDual.baf is given to player via spell casted via dialog to every single or dual class.
GelMulti.baf is Append_Top to every Multiclass NPC script/bcs.
GelMulti.Baf is given to player via spell casted via dialog to multiclass characters.
Summoning of GelTDia and GelNDia is assigned to very none kitted class in clab. Not in any kitted class. And not for shaman.
1. Assassin/X. (Dual'ed function):
You are an assassin. This can happen 2 ways. You change ur kit with AddSuperKit dialog function, or you start out as assassin or the NPC is an assassin by default. Then you dual to another class. The new class is a none kitted one and GelNDia or GelTDia will be summoned via lvl 1 clab and start dialog. You are now asked if you want to change kit on ur new class. And you will also be asked if you want to keep your first class kit. Keep assassin or not keep kit will be the only 2 choices. Since you already clicked yes you will have to change kit on second class, and this will override the assassin kit as engine only accept 1 kit. You will loose every assassin specifications and abilities with it, the assassin text will disspear as well. But since you set the GelKeepAss local on ur character, it has already tracked your level and a final ("GelAss1","LOCALS",X) has been set to know which kit and level you where.
Once ur next class is 1 level higher than the GelAss1 local the appropiate spell packages will be casted on urself. It includes any relevant restriction, bonuses, abilities etc. And since ur a dual the correct HLA table will be given(the one for ur second class).
Thieving skill has been nerfed correctly as you where a true assassin before dual.
2. Assassin/X (Multiclass):
This is different. Here locals will trigger each level, and give that 1 or 2 relevant features the kit has each time. Its a progressional setup instead of a once cast spellpack. The kit is only simulated with spell, but restrictions, bonuses and abilities are included.(Alignment is not, because i wanted a more free system).
You are here very correct that the thieving skill will be gained as normal thief, I could however fake nerf it by removing 10% to hide in shadows each level with a spell. The same goes for Bounty hunter. Im not assigning true kits as multiclass, im faking everything via scripts and spells and tracking with global values and level and class checks.
3. Swashbuckler:
The -4 to backstab multiplier is already in its base kit spell which are forced upon him. It will keep it at 1 multiplier forever, unless testing shows that they can infact go negative, where i have to assign it at appropiate levels instead. Yes it chooses from standard thief HLA, however wirlwind can be assigned, assassiniation can be removed. The main idea here is a good readme file.
Yes its not perfect, but it allows more builds. Some which may be op, some which may be weak.
However, the global values already ensure a few kit specific HLA's like Maze Trap etc is given at level 25 for shadowdancer, then Shadow twin at level 27 and then Shadow form at 29, but theese are asked for in dialog.
I can fake specialization by giving: 1 thaco, 2 damage extra. Not 100% the same, its an upgrade though.
4. Shadowdancer, i can cast a spell every level on multiclasses and remove 10% hide in shadows. It will be 10% wasted points each time, and act as the same nerf more or less. Shadowdancer already has -1 to backstab multiplier in kit specification spell casted in level 1. Maby i have not read good enought on him, did not even know he could'nt use traps :P But i can add:
// GelDual IF GlobalGT("GelKeepSha","LOCALS",0) !GlobalGT("GelKeepSupT","LOCALS",0) OR(4) HasSpell("SPCL412") HasSpell("SPCL910") HasSpell("SPCL911") HasSpell("SPCL912") THEN RESPONSE #100 ReallyForceSpellRES("GelTrapR",Myself) // RemoveSpell(the traps) END // GelMult IF GlobalGT("GelMultiSha","LOCALS",0) !GlobalGT("GelSuperThiefP","LOCALS",0) OR(4) HasSpell("SPCL412") HasSpell("SPCL910") HasSpell("SPCL911") HasSpell("SPCL912") THEN RESPONSE #100 ReallyForceSpellRES("GelTrapR",Myself) // RemoveSpell(the traps) ENDIt wont prevent people from choosing HLA TRAPS, but it will remove them.
Its the same way I remove the regular shapeshift spell for the druid kits used in multiclasses or when keeping kit in dual class.. (not that people tend to dual FROM druid.. But i leave the choice.)
But my main issue now is:
Adding save penalty to the mage schools via spell/eff... (Hopefully fixed this with a Cast Spell on condition, with proximity / per round)
The latest version, with how far i come per now is uploaded in post.
Edit: For myself:
Thief = 25 skillpoints per level (30 lvl 1)
Shadowdancer = 20 skillpoints per level(30 lvl 1)
Assassin = 15 skillpoints per level (30 lvl 1)
Bounty Hunter = 20 skillpoints per level(30 lvl 1)
Swashbuckler = Same as regular thief.
The Hide in plain sight for "none true shadowdancer kits" are done by script and a simple blind and local value in spell.
The stalkers backstab is also faked when in multiclass or in "GelkeepSta" form aka, when the kit is not SET by AddSuperKit.
Scripted to cast a spell with 20, 40, 60 damage bonus (level 1, 9, 17).
My dialog refuses to change? It uses an older version. When i uninstall the mod, the Dialog file is removed fully from nearinfinity and override folder. When i reinstall it refuses to use the new values/text. (Issue is that when the PickNextMulti block appears there is no answere for my multiclass. So i figured i try "GLOBAL" instead of "LOCALS"...
The issue i have is this part(clipped examples) :
TP2:
////////////////////////////MULTICLASS SECTION//////////////////////////////// IF ~Class(LastTalkedToBy(Myself),FIGHTER_MAGE_THIEF)~ THEN BEGIN GelFMT1 SAY ~Do you want to change kits on your Fighter / Mage / Thief?~ IF ~~ THEN REPLY ~Yes.~ DO ~SetGlobal("GelFighterMulti","GLOBAL",1) SetGlobal("GelMageMulti","GLOBAL",1) SetGlobal("GelThiefMulti","GLOBAL",1)~ GOTO GelNextMulti IF ~~ THEN REPLY ~No.~ DO ~SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT END IF ~~ THEN BEGIN GelNextMulti SAY ~Class Found Pick Kits~ IF ~Global("GelFighterMulti","GLOBAL",1)~ THEN REPLY ~Choose Fighter Kit~ DO ~SetGlobal("GelFighterMulti","GLOBAL",2)~ GOTO GelFighterMulti IF ~Global("GelMageMulti","GLOBAL",1)~ THEN REPLY ~Choose Mage Kit~ DO ~SetGlobal("GelMageMulti","GLOBAL",2)~ GOTO GelMageMulti IF ~Global("GelThiefMulti","GLOBAL",1)~ THEN REPLY ~Choose Thief Kit~ DO ~SetGlobal("GelThiefMulti","GLOBAL",2)~ GOTO GelThiefMulti IF ~Global("GelClericMulti","GLOBAL",1)~ THEN REPLY ~Choose Cleric Kit~ DO ~SetGlobal("GelClericMulti","GLOBAL",2)~ GOTO GelClericMulti IF ~Global("GelRangerMulti","GLOBAL",1)~ THEN REPLY ~Choose Ranger Kit~ DO ~SetGlobal("GelRangerMulti","GLOBAL",2)~ GOTO GelRangerMulti IF ~Global("GelDruidMulti","GLOBAL",1)~ THEN REPLY ~Choose Druid Kit~ DO ~SetGlobal("GelDruidMulti","GLOBAL",2)~ GOTO GelDruidMulti IF ~~ THEN REPLY ~Im done.~ DO ~ ActionOverride(LastTalkedToBy(Myself),ReallyForceSpellRES("GelMult",LastTalkedToBy(Myself))) SetGlobal("GelTDia_Init","LOCALS",3)~ EXIT ENDBut in nearinfinity the file is still like this:
Attached:
Is "GLOBAL" not allowed in dialog and is overwritten with "LOCALS" ?
How does this work? Because the single and dual class works as intended more or less, but this function dont work.
If i SetGlobal("xxx","LOCALS",x) in a reply, is it then the creature who owns the dialog, or the replier who gets that local?
And if a Reply Checks a local, which creature does it check? The owner of dialog or the replyer?
I also have not found a good way to differ between Joinable NPC and Selfmade player :S
Tried so much, but all i try seems to be relevant for both...
Last i tried is Allegicance(Myself,[PC]), but immoen also responds to this...
A tripple class also summons 3 creatures, which is fine cause the rest dies, but it ends up with 3 dialogs.
How does GiveOrder() work?
Can i use something like
IF NumberOfCreatureGT("GelTDia",1) THEN RESPONSE #100 GiveOrder("GelTDia",100) END IF OrderRecieved("GelTDia",100) THEN RESPONSE #100 DestroySelf() ENDThis would let the first one to kill all duplicates?
Ref:
16 GiveOrder(O:Object*,I:Order*)
This action is used in conjunction with the ReceivedOrder trigger, and works in a similar way to a global shout. The action passes a numeric order to the specified creature. Only one creature at a time responds to an order, and creatures to not detect their own orders.
Okay, 1 creature:
GelADia.cre
with:
GelADia.baf:
IF !GlobalGT("GelSummoning","LOCALS",0) !OR(75) Name("AERIE",LastSummonerOf(Myself)) Name("AERI25",LastSummonerOf(Myself)) Name("ANOMEN",LastSummonerOf(Myself)) Name("ANOM25",LastSummonerOf(Myself)) Name("CERND",LastSummonerOf(Myself)) Name("CERN25",LastSummonerOf(Myself)) Name("EDWIN",LastSummonerOf(Myself)) Name("EDWI25",LastSummonerOf(Myself)) Name("HAERDALI",LastSummonerOf(Myself)) Name("IMOEN",LastSummonerOf(Myself)) Name("IMOE25",LastSummonerOf(Myself)) Name("JAHEIRA",LastSummonerOf(Myself)) Name("JAHE25",LastSummonerOf(Myself)) Name("JAN",LastSummonerOf(Myself)) Name("JAN25",LastSummonerOf(Myself)) Name("KELDORN",LastSummonerOf(Myself)) Name("KELD25",LastSummonerOf(Myself)) Name("KORGAN",LastSummonerOf(Myself)) Name("KORG25",LastSummonerOf(Myself)) Name("MAZZY",LastSummonerOf(Myself)) Name("MAZZ25",LastSummonerOf(Myself)) Name("MINSC",LastSummonerOf(Myself)) Name("MINS25",LastSummonerOf(Myself)) Name("NALIA",LastSummonerOf(Myself)) Name("NALI25",LastSummonerOf(Myself)) Name("VALYGAR",LastSummonerOf(Myself)) Name("VALY25",LastSummonerOf(Myself)) Name("VICONIA",LastSummonerOf(Myself)) Name("VICO25",LastSummonerOf(Myself)) Name("YOSHIMO",LastSummonerOf(Myself)) Name("SARE25",LastSummonerOf(Myself)) Name("DORN",LastSummonerOf(Myself)) Name("DORN25",LastSummonerOf(Myself)) Name("RASAAD",LastSummonerOf(Myself)) Name("RASA25",LastSummonerOf(Myself)) Name("HEXXAT",LastSummonerOf(Myself)) Name("HEXXA25",LastSummonerOf(Myself)) Name("OHHFAK",LastSummonerOf(Myself)) Name("AJANTIS",LastSummonerOf(Myself)) Name("ALORA",LastSummonerOf(Myself)) Name("TTBRAN",LastSummonerOf(Myself)) Name("BDCORAN",LastSummonerOf(Myself)) Name("CORAN",LastSummonerOf(Myself)) Name("DYNAHEIR",LastSummonerOf(Myself)) Name("BDDYNAHE",LastSummonerOf(Myself)) Name("BDEDWIN",LastSummonerOf(Myself)) Name("ELDOTH",LastSummonerOf(Myself)) Name("FALDORN",LastSummonerOf(Myself)) Name("BDGARRIC",LastSummonerOf(Myself)) Name("GARRIC",LastSummonerOf(Myself)) Name("BDIMOEN",LastSummonerOf(Myself)) Name("BDJAHEIR",LastSummonerOf(Myself)) Name("KAGAIN",LastSummonerOf(Myself)) Name("KHALID",LastSummonerOf(Myself)) Name("BDKHALID",LastSummonerOf(Myself)) Name("KIVAN",LastSummonerOf(Myself)) Name("BDMINSC",LastSummonerOf(Myself)) Name("MONTARON",LastSummonerOf(Myself)) Name("QUAYLE",LastSummonerOf(Myself)) Name("SAFANA",LastSummonerOf(Myself)) Name("BDSAFANA",LastSummonerOf(Myself)) Name("SHARTEEL",LastSummonerOf(Myself)) Name("SKIE",LastSummonerOf(Myself)) Name("BDSKIE",LastSummonerOf(Myself)) Name("BDTIAX",LastSummonerOf(Myself)) Name("TIAX",LastSummonerOf(Myself)) Name("BDVICONI",LastSummonerOf(Myself)) Name("TTXAN",LastSummonerOf(Myself)) Name("XAN",LastSummonerOf(Myself)) Name("XZAR",LastSummonerOf(Myself)) Name("YESLICK",LastSummonerOf(Myself)) Name("BDDORN",LastSummonerOf(Myself)) Name("BDRASAAD",LastSummonerOf(Myself)) Name("BAELOTH",LastSummonerOf(Myself)) Name("BDBAELOTH",LastSummonerOf(Myself)) THEN RESPONSE #100 SetGlobal("GelSummoning","LOCALS",1) SetGlobal("GelKitClaimed","LOCALS",1) CreateCreatureObject("GelTDia",Myself) END IF !GlobalGT("GelSummoning","LOCALS",0) OR(75) Name("AERIE",LastSummonerOf(Myself)) Name("AERI25",LastSummonerOf(Myself)) Name("ANOMEN",LastSummonerOf(Myself)) Name("ANOM25",LastSummonerOf(Myself)) Name("CERND",LastSummonerOf(Myself)) Name("CERN25",LastSummonerOf(Myself)) Name("EDWIN",LastSummonerOf(Myself)) Name("EDWI25",LastSummonerOf(Myself)) Name("HAERDALI",LastSummonerOf(Myself)) Name("IMOEN",LastSummonerOf(Myself)) Name("IMOE25",LastSummonerOf(Myself)) Name("JAHEIRA",LastSummonerOf(Myself)) Name("JAHE25",LastSummonerOf(Myself)) Name("JAN",LastSummonerOf(Myself)) Name("JAN25",LastSummonerOf(Myself)) Name("KELDORN",LastSummonerOf(Myself)) Name("KELD25",LastSummonerOf(Myself)) Name("KORGAN",LastSummonerOf(Myself)) Name("KORG25",LastSummonerOf(Myself)) Name("MAZZY",LastSummonerOf(Myself)) Name("MAZZ25",LastSummonerOf(Myself)) Name("MINSC",LastSummonerOf(Myself)) Name("MINS25",LastSummonerOf(Myself)) Name("NALIA",LastSummonerOf(Myself)) Name("NALI25",LastSummonerOf(Myself)) Name("VALYGAR",LastSummonerOf(Myself)) Name("VALY25",LastSummonerOf(Myself)) Name("VICONIA",LastSummonerOf(Myself)) Name("VICO25",LastSummonerOf(Myself)) Name("YOSHIMO",LastSummonerOf(Myself)) Name("SARE25",LastSummonerOf(Myself)) Name("DORN",LastSummonerOf(Myself)) Name("DORN25",LastSummonerOf(Myself)) Name("RASAAD",LastSummonerOf(Myself)) Name("RASA25",LastSummonerOf(Myself)) Name("HEXXAT",LastSummonerOf(Myself)) Name("HEXXA25",LastSummonerOf(Myself)) Name("OHHFAK",LastSummonerOf(Myself)) Name("AJANTIS",LastSummonerOf(Myself)) Name("ALORA",LastSummonerOf(Myself)) Name("TTBRAN",LastSummonerOf(Myself)) Name("BDCORAN",LastSummonerOf(Myself)) Name("CORAN",LastSummonerOf(Myself)) Name("DYNAHEIR",LastSummonerOf(Myself)) Name("BDDYNAHE",LastSummonerOf(Myself)) Name("BDEDWIN",LastSummonerOf(Myself)) Name("ELDOTH",LastSummonerOf(Myself)) Name("FALDORN",LastSummonerOf(Myself)) Name("BDGARRIC",LastSummonerOf(Myself)) Name("GARRIC",LastSummonerOf(Myself)) Name("BDIMOEN",LastSummonerOf(Myself)) Name("BDJAHEIR",LastSummonerOf(Myself)) Name("KAGAIN",LastSummonerOf(Myself)) Name("KHALID",LastSummonerOf(Myself)) Name("BDKHALID",LastSummonerOf(Myself)) Name("KIVAN",LastSummonerOf(Myself)) Name("BDMINSC",LastSummonerOf(Myself)) Name("MONTARON",LastSummonerOf(Myself)) Name("QUAYLE",LastSummonerOf(Myself)) Name("SAFANA",LastSummonerOf(Myself)) Name("BDSAFANA",LastSummonerOf(Myself)) Name("SHARTEEL",LastSummonerOf(Myself)) Name("SKIE",LastSummonerOf(Myself)) Name("BDSKIE",LastSummonerOf(Myself)) Name("BDTIAX",LastSummonerOf(Myself)) Name("TIAX",LastSummonerOf(Myself)) Name("BDVICONI",LastSummonerOf(Myself)) Name("TTXAN",LastSummonerOf(Myself)) Name("XAN",LastSummonerOf(Myself)) Name("XZAR",LastSummonerOf(Myself)) Name("YESLICK",LastSummonerOf(Myself)) Name("BDDORN",LastSummonerOf(Myself)) Name("BDRASAAD",LastSummonerOf(Myself)) Name("BAELOTH",LastSummonerOf(Myself)) Name("BDBAELOTH",LastSummonerOf(Myself)) THEN RESPONSE #100 SetGlobal("GelSummoning","LOCALS",1) SetGlobal("GelKitClaimed","LOCALS",1) CreateCreatureObject("GelNDia",Myself) END IF Global("GelSummoning","LOCALS",1) THEN RESPONSE #100 SetGlobal("GelSummoning","LOCALS",0) DestroySelf() ENDThen i need to swap from AP_ to GA_ to prevent more than 1 creature per character if multiclass.
Then i need to add
IF
!Global(("GelSummoning","LOCALS",1)
+Other stuff
THEN
REPSONE #100
SetGlobal("GelSummoning","LOCALS",1)
+Other stuff
END
in GelDual / GelMult scripts as well on joins() conditions.
Maby i can use this trigger:
HasDialog(LastSummonerOf(Myself))
By using player1d.bcs.
So now i dont use override script via spell at all.
Now everyone can change kit immidiatly.
Single class
Kitted singleclasses(only for NPC)
Right after dual class, with possibility to keep ur first class kit.
Multiclasses.
However the multiclass part dont actually get choices. All it gets is the dialog reply «Im done».
And I believe thats because the game is paused mid dialog, so it cannot set a global value, then use it in the next block.
So i will try to also read multiclass in creature baf, and set the locals there instead. I hope that will fix the issue.
Im also trying to find a way to prevent 3 creatures spawning on a FMT or FMC or for 2 creature to spawn on forexample a FT, yet still allowing 2 creatures when 2 people join party at the same time.
I have a somewhat plan on that case.
Then i need to test hide in plain sight, and the fake stalker backstab.
I made 4 new kits.
GelSMag (super mage)
GelSupT (super thief)
GelSliD (Slinging Beastmaster)
GelSlin (Cleric / Slinging Beastmaster)
I do not need any other kits made for this.
The way it works:
1.) Any singleclass kitted NPC triggers creature summon for dialog choices upon Joins().
2.) Any none kitted singleclass triggers creature via clab.
3.) Any multiclass triggers creature via clab.
4.) Upon dual triggers creature again via clab, if you had a kit on first class you can choose to keep it. A spellpackage will be given to simulate the effect once ur 2nd class is 1 level higher than first class. And then you can change kit on ur 2nd class.
5.) Multiclasses are given spells upon each level to simulate the kits. And yes i have made every penalty as well. Since i was unsure if Use Any Item overwrite Restric Item(319) i patched that as well to be sure.
6.) Singleclass and 2nd class uses AddSuperKit, and since you only can have 1 active kit it will overwrite any first class kit, but if you choose to keep first class kit it will set a global like «GelKeepSha» which is used for level tracking, to remember which kit and level your first class was, and then the spell pacakage is waiting for forexample mage level to become 1 higher than your shadowdancer was.
7.) A npc that is already dualed, and dont have a kit on his/her first class, will not be able to choose a first class kit, but with the tweak(NPC customization) you can actually kit it before you dual it and then choose to keep it.
Hopefully i will be finnished this evening and can upload a working edition
Btw, i ignored sorcress for now.
I also ignored wildmage for many reasons.
I ignored archer and beastmaster for multiclass and for dual class. They make no sence in my mind.
Did not yet make a SuperMonk kit. But should be easy, i already made that in another mod, so can make it really fast.
Im getting really close.
The kitchanges now work for all classes, but I have a few bugs. Most things works, but its not 100% perfect yet:
Youtube link:
1. The Jaheira bug is fixed.
GelMultiSha local was the reason, that one is for shadowdancer. Changed to set GelMultiShp now
2. SuperThief adds spells in a wierd way, so i need to force a spell to remove them until your first class thief is active again. And i have a safeguard for "Hide In Plain Sight" innate, so i need a restriction there as well if i want to delay until thief class is reactivated. A simple GlobalLT or Global check should be enought, 1 for super thief and 1 for shadowdancer.
3. It seems like the kitted mages somehow dont get that +1 spell after "KeepFirstClassKit"... Will look into that.
4. Kitted NPC single classes (tested with Xzar) dont seem to get the kit choices...
He is supposed to do so via this function:
/////////// NPC JOIN START DIALOG TO START KITCHANGER ON KITTED CHARS ////////////
IF
Global("GelJoinParty","LOCALS",0)
Joins(Myself)
OR(36)
Kit(Myself,BERSERKER)
Kit(Myself,WIZARDSLAYER)
Kit(Myself,KENSAI)
Kit(Myself,CAVALIER)
Kit(Myself,INQUISITOR)
Kit(Myself,FERALAN)
Kit(Myself,STALKER)
Kit(Myself,BEASTMASTER)
Kit(Myself,ASSASIN)
Kit(Myself,BOUNTYHUNTER)
Kit(Myself,SWASHBUCKLER)
Kit(Myself,BLADE)
Kit(Myself,JESTER)
Kit(Myself,SKALD)
Kit(Myself,TOTEMIC)
Kit(Myself,SHAPESHIFTER)
Kit(Myself,BEASTFRIEND)
Kit(Myself,GODTALOS)
Kit(Myself,GODHELM)
Kit(Myself,GODLATHANDER)
Kit(Myself,MAGESCHOOL_ABJURER)
Kit(Myself,MAGESCHOOL_CONJURER)
Kit(Myself,MAGESCHOOL_DIVINER)
Kit(Myself,MAGESCHOOL_ENCHANTER)
Kit(Myself,MAGESCHOOL_ILLUSIONIST)
Kit(Myself,MAGESCHOOL_INVOKER)
Kit(Myself,MAGESCHOOL_NECROMANCER)
Kit(Myself,MAGESCHOOL_TRANSMUTER)
Kit(Myself,BARBARIAN)
Kit(Myself,Blackguard)
Kit(Myself,SHADOWDANCER)
Kit(Myself,DWARVEN_DEFENDER)
Kit(Myself,DARK_MOON)
Kit(Myself,SUN_SOUL)
Kit(Myself,OHTYR)
Kit(Myself,OHTEMPUS)
THEN
RESPONSE #100
ReallyForceSpellRES("GelNDia",Myself) // Summons GelNDia.cre
SetGlobal("GelJoinParty","LOCALS",1)
END
IF
Global("GelJoinParty","LOCALS",1)
THEN
RESPONSE #100
SetGlobal("GelJoinParty","LOCALS",99)
END
Maby i should just remove the Locals 0 check, or change it with GlobalLT("GelJoinParty","LOCALS",1)
Dno if there is restrictions in numbers of OR()...
Maby Joins(Myself) dont last long enought? Should be last script round still...
5. Bounty hunter trap fixed. (RR will affect it as well)
6. Assassin also get DeathAttack if RR installed.
Multiclass or keepfirstclass kit.
They do work as 2nd kit and singleclass kits.
But they do refuse to cast their kit spell because its considered as a sequencer.
I tried like an active auto to penalize enemies against my mage school like an aura which tics every round. CastSpellOnCondition.
That is because i wanted the advantage vs anyone, if i forexample precast a skulltrap onto an enemy etc….
I could remove that function and make a spell which are casted
IF
OR(2)
See([ENEMY])
Hear([ENEMY])
But then it would be a little bit weaker for offscreen sniping on currently neutral mobs etc… it would however make things work..
Here is the mod without working Mageschool(supermage works).
Remember to rest until ur override script is assigned on player 1.
Dont do the dialog twice, there is no reason to add multiclass on top of an dual class as an example :P
And it would be bm to choose both Berserker and Kensai and Barbarian + 3 x supermage and 3 x Superthief.....
I also added sorcerer kit change.
The system is very flexible.
A FMT gets the kitchanger choice 3 times.
So you pick kits.
Then you get next creature. Normally you just say no to the other 2, but you can actually add kits here too if you want, so if you want to really power play you can be up to 9 kits
You can also choose to just kit 1 of the classes.
Immoen is thief in bgee, and thief/mage dual form in bg2ee. This means she will get the multiclass question in bg2ee, which is fine, she will work on that system as well once i make a small change. Because it does check levels for each class.
I just need to use the same script player 1 uses, because there are all the choices. Per now immoen is set up to only add the dual class one, but i will use the combined script for here in bg2ee. Because then it will work wonders, and it wont matter if you have the mod Customizable NPC’s or not.
Infact i will do this for all classes. Then its flexible with mods that may change them.
The mod also patches the anatholyo claws to be usable with forexample Kensai / Shapechanger. Pretty sure that will work.
So a kensai barbarian / shapeshifter totemic is actually possible for Jaheira, if you want.
Im not able to restrict mage scrolls for the mageschools. Aura for penalizing enemies are up and running, other kit restrictions works wonders.
I have tried:
ImmunityToResourceAndMessage(324), creature: Necromancer, Type: KIT BIT etc..., Resource: SCRL85 and SPWI201.
Restric Item(319) MageSchool: Necromancer.
Dissalow Item(181): Each illusion scroll.
I have tried them in combi as well... Can still learn both necromancer and illusion.
Anyone know how to make a generalist kit unable to learn a mageschool? Either by each resource or by school?
My next guess would be scripting it:
IF
OR(n)
HaveSpellRES("SPWI201")
HaveSpell...
HaveSpell...
THEN
RESPONSE #100
ReallyForceSpellRES("GelNec3",Myself) // Op Code 171 Remove Spell.(all those resources).
END
Maby even in combi:
IF
HasItem("SCRL85")
THEN
DestroyItem("SCRL85")
END
// But thats kinda over the top...
I dno, anyone know how? Im kinda stuck with this last thing, so i will start my Barbarian/Necromancer/SuperThief run now xD
LastMod Version for now:
My INSERT_2DA_ROW has a weakness where different installations of the game has different numbers of lines in the clab tables. I have had druid failed to this on 1 version, and not another version.
On work pc it also failed to find CLABMA01.2da, because unless you have installed a multiclass mage kit via Argent kit mod this does not exists in the same ways as the others and weidu dont find it during installation.
Which is why i should update like this:
This should allows easier installation on different users...
Next thing i tested was to start a Cleric / Slinging Beastmaster. Then add Stalker and Talos overlay.
Then i tested the backstab function.
The script applies a spell with OP code for BONUS MELEE DAMAGE: 200% / 300% / 400%.
It does so when you are invisible state, and removes it with another spell when you are not.
It worked, it did not break invisibility/stealth. It got removed instantly when visible. It did buff staff damage, but not sling as intended.
However, this leads to a few issues:
1. "Facestab, it do not care about the directional backstab(From behind). It can facestab them.
2. It allows backstabbing with maces, hammers, flails, morning stars...
3. It dont comply with the stalker gloves. Or other mod content that has +backstab items.
Stalker is only truekit stalker if singleclass or dualed to stalker.
Any other form such as:
* Dual from stalker to cleric
* Multiclass with stalker
They only use the overlay system.
So to build real backstab, which cares about direction and melee wepon type i need some changes:
- So to get this to work i need .2da input to BACKSTAB.2da i guess for the backstab bonuses from OP code to work.
- This is easy done on the 2 new kits: GelSliD and GelSlin. And just put all numbers to 1.
- Then rebuild that GelSta05.spl into adding backstab bonus instead of % melee damage bonus.
- But i also need base CLERIC_RANGER into that table with 1 1 1 1 1 1 1 1 etc... And im a little unsure how to do it.
Maby like this?
Also found the fault where all warrior classes gained the 5% physical and the modded +1 bonus AC.
"GelMultiDwDRes" and "GelMultiDwDAC" locals needs to start at 1, not 0 lol.
Ranger and Druid had no direct dialog option if single class.
Needed to add:
IF ~!Class(LastTalkedToBy(Myself),CLERIC)~ THEN REPLY ~Yes.~ GOTO GelPickRanger
and
IF ~!Class(LastTalkedToBy(Myself),FIGHTER)~ THEN REPLY ~Yes.~ GOTO GelPickDruid
Cleric/Ranger fake Stalker Backstab script had some faults. When i fixed those it was able to get real backstab.
So i will just put that in overlay section for stalker instead, this way it wont break invisible. Only casted on correct level or level up, not needing live stuff to happen mid fight.
I added The backstab.2da 1 1 1 1 1 etc for:
RANGER
CLERIC_RANGER
GelSlin
GelSliD
Backstab is not mention in their stats, but they exists and works.(Tested)
I am now at work, the last version from home i had not uploaded, so this acts as a remembering list.
GelKeepSta needs:
GelSta5 1 time in the level 1 to 8, 2 times in the level 9 to 16, 3 times in lvl 17 to 40.
GelMultiSta needs:
GelSta5 lvl 1, 9, 17.
GelSta5.spl need change into +1 backstab. No level scaling since used both places. Else a high level cleric kan cast a too powerful version several time when re-activation of ranger happens.
GelKeepSta had wrong spell for the stalker custom spells from lvl 12.
needs to be changed to GelSta2, was gelsta1.