Time for a few more requests for technical help and assistance - most of which I am sure will have experienced modders banging ther heads against the nearest wall, as well as bringing forth choruses of "search the forums and read the tutorials / RTFM". Well I can promise that I have already tried doing all of that without much success, and so I am forced to reveal my ignorance in all its glory!
This thread is a repeat of the very same post I just put up on the "Chrysta forum" - apologies for being ultra-cheeky and asking here as well, but I am nothing if not persistent in asking for help! Obviously I don't expect people to post answers here and in the Chrysta forum... in fact I would prefer there rather than here... but I am just trying to increase my chances of getting good help as much as possible. And everyone here is just so helpful!! (effective grovel, n'est pas?)
*sigh* well, here we go with the first coupla hiccups:
PROBLEM 1: Is there a way to easily restrict thieving skill points?
Chrysta will probably be a "tweaked" pure thief. At the moment I am restricting her thieving skills by applying a penalty (25% or 50%) to most skills, and artificially setting the points for "Pick Pockets" and "Detect Illusion" to zero. This is an imperfect solution though for a number of reasons:
- The penalties are not "transparent", i.e. they are applied to the scores that appear on the character record screen, but NOT on the level-up screen - so a player cannot tell what their final scores are.
- Players are not blocked from putting points in Pick Pockets and Detect Illusion, but the points don't count since the effective points score is then artificially set to zero.
- The penalties are only applied to points invested by the player and not to innate bonuses (e.g. DEX & racial bonuses).
- Instead of a couple of the penalties, apply the reduced thief points per level restriction that an assassin has (i.e. 15 points on level up).
................................................................................................................
PROBLEM 2: How do I refer to custom spells in compiled game scripts?
I am going to be using a custom spell I have christened "Chrysta Title" (filename SPTITLE.SPL) to change the name of Chrysta's "class" to Nature's Assassin. I am doing it this way since I am now going to be giving Chrysta her various powers by scripting rather than designing an "proper" custom kit (for reasons given in other posts). The custom spell is designed (having found the relevant hex offset for the title name string by using Near Infinity) and copied over to the override directory by a standard WeiDU .tp2 file entry, i.e.
COPY ~Chrysta/SPTITLE.SPL~ ~override/SPTITLE.SPL~ SAY NAME1 ~Chrysta Title~ SAY 0x9E ~Nature's Assassin~I then used Near Infinity to check the spell existed and had all the right strings in the right places. So I thought the next step would be easy, i.e. write a script entry to change the title:
IF !Global("TitleChanged","GLOBAL",1) THEN RESPONSE#100 ActionOverride(ApplySpellRes(Myself,"SPTITLE")) SetGlobal(("TitleChanged","GLOBAL",1) ENDBut when I try to compile this using the TeamBG script editor and then decompile it to check all I get is:
IF !Global("TitleChanged","GLOBAL",1) THEN RESPONSE#100 ActionOverride(ApplySpellRes(Myself,0)) SetGlobal(("TitleChanged","GLOBAL",1) ENDI have tried using "ReallyForceSpell(Myself,"SPTITLE")" instead and still a 0 reference to the spell.
So what am I missing here that is REALLY REALLY OBVIOUS??
................................................................................................................
PROBLEM 3: Chrysta is just WAY too eager to join the group!
A silly problem this, but at the moment the "ChJoin.bcs" script which acts as the Chrysta.CRE override script before she joins contains:
IF InteractingWith([PC]) NumTimesTalkedTo(0) THEN RESPONSE #100 StartDialogue("CHRYSTA",Nearest([PC])) ENDI understood this to mean that Chrysta won't speak to a PC unless spoken to first. But EVERY TIME I start a game, even when there isn't any line of sight to a member of the party, she starts walking towards the party and initiates dialog. Whuhu?? I have also tried:
IF See([PC]) Range(Nearest([PC]),5) NumTimesTalkedTo(0) THEN RESPONSE #100 StartDialogue("CHRYSTA",Nearest([PC])) ENDAgain, she chases the party even from the other side of the dungeon until she catches up and starts a dialog. THIS WOMAN WON'T LEAVE ME ALONE!!!
But seriously... what might be going wrong here? The ChJoin script is compiling properly and is sitting in the override directory, and the Chrysta.CRE file has ChJoin.bcs listed as the override script (I have checked with Near Infinity).
................................................................................................................
I hope someone can shed some light on my teething problems. In the meantime, I will just sit here and whimper...