Custom Skillset

Scripted ALFA systems & related tech discussions (ACR)

Moderators: ALFA Administrators, Staff - Technical

User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Custom Skillset

Post by AcadiusLost »

OK, I patched my build machine up this morning, to the 1.011.1153 hotfix of MotB. I know they patched the chargen_skills, levelup_skills, and charsheet XML GUI files re: skills, so I spent a good deal of the day experimenting with skills.2da and associated files. Here is some of what I found out:

Skills.2da still crashes servers or is otherwise nonfunctional if it gets larger than 55 entries. This means, among other things, that we can't fit /all/ of the knowledge and perform skills (at least until/unless that bug is fixed). I've made a pared-down version that includes all the custom skills, but culls the Knowledge and Perform subskills down to 5 apiece for now. More on that later.

Character creation: Can't get these to load for character creation. Even if we put them in an override, the custom TLK won't work to see what they are (this is true of NWN1-ALFA as well). We could try finding Dialog.tlk entries to fit (eg: "Balance in all things" for the name of the "Balance" skill)- but it's confusing to the player and looks really messy once you're ingame (which is, let's face it, most of the time you'd be dealing with them).

Custom tlk: I seem to have these working in this context, added entries for the named perform subskills we had room for (those seemed to be missing before). Clientside only needs a .tlk file in the tlk directory like before.

Levelup: Leveling up and selecting new skills seems fine, though we'll need to redo all the class_skill_ 2das - I did the rogue one as a proof of principle, but since the row number changed for some of the new skills (to sqeeze our 62 entries into 54 slots), they'll need some edits. Also to add back Parry for some classes, since it seems we're leaning towards including it.

Scripts interacting with new skills:

The Good News: We can read out the ranks and such of new skills, just like base game ones. GetSkillRank(SKILL_SENSE_MOTIVE, oPC) works fine, granted you have the constants defined in an #include

The Bad News: The only way I've found to monkey with the ranks via scripts is by EffectSkillIncrease and EffectSkillDecrease, both of which seem to crash the server when applied as SupernaturalEffect() - even if they worked, they would count as permanent bonuses, rather than alterations to the base ranks. The rejuggling of initial skill points isn't going to be easy.

Extra skills I've got now:

Code: Select all

int SKILL_BALANCE = 30;
int SKILL_CLIMB = 31;
int SKILL_DECIPHER_SCRIPT = 32;

int SKILL_DISGUISE = 34;
int SKILL_ESCAPE_ARTIST = 35;
int SKILL_FORGERY = 36;
int SKILL_GATHER_INFORMATION = 37;
int SKILL_HANDLE_ANIMAL = 38;
int SKILL_JUMP = 39;
int SKILL_KNOWLEDGE_ARCANA = 40;
int SKILL_KNOWLEDGE_HISTORY = 41;
int SKILL_KNOWLEDGE_NATURE = 42;
int SKILL_KNOWLEDGE_RELIGION = 43;
int SKILL_KNOWLEDGE_PLANES = 44;
int SKILL_PERFORM_ACT = 45;
int SKILL_PERFORM_DANCE = 46;
int SKILL_PERFORM_ORATORY = 47;
int SKILL_PERFORM_INTRUMENTS = 48;
int SKILL_PERFORM_SING = 49;
int SKILL_PROFESSION = 50;
int SKILL_SENSE_MOTIVE = 51;
int SKILL_SPEAK_LANGUAGE = 52;
int SKILL_SWIM = 53;
int SKILL_USE_ROPE = 54;
This set now has icons, custom TLK entries, and seems to work from 2nd level onwards on servers using the tlk and alternate alfa_2da.hak - I expect some may be dissatisfied with all the perform instrumentals being lumped together, or loss of dungeoneering / nobility / architecture - this just seemed like a logical first stab at things.

Is it worthwhile to package this stuff into the haks on the worldgate and get it working from the start on 003? Or would we be better served by waiting a bit longer to see what 1.12 brings?

Are there essential changes that need to be made to that skill selection, before I go about re-editing all the class skill 2das?

Other ideas on how to manage the disconnect between character creation (shows OE skill selection, including some we don't have ingame, and missing all of the above), and ingame? Deleted skills, though they don't show up on the character sheet, /can/ be detected with scripts, I've found.
Thangorn
Haste Bear
Posts: 2081
Joined: Fri Oct 01, 2004 1:00 pm
Location: Queenstown, New Zealand

Post by Thangorn »

nice work there AL!

that all seems like a good starting point to me..

I think it might be best just to get started on testing as 1.12 could be a while away still..
On indefinite real life hiatus

[22:52] <Veilan> obviously something sinister must be afoot if a DM does not have his social security number in his avatar name!
User avatar
witch
Orc Champion
Posts: 456
Joined: Tue Jan 13, 2004 11:42 pm
Location: gmt+1

Post by witch »

Acadius i dont know if its been taken into account but,

A bards abilities are a combination of his level and a certain number of ranks in perform. He has to have both at a certain level to get the powers.

If we have different perform skills and a bard spends a few points on dance and singing (instead of putting them all in the perform skill nwn currently has) then he will not qualify for the powers he gains. Unless we add something that adds up all the ranks in the perform tree.

anyway just thought id mention it
Witch

current character: Denna Shota
"Soldiers never sleep"
User avatar
psycho_leo
Rust Monster
Posts: 1162
Joined: Tue Jan 17, 2006 2:10 am
Location: Brazil

Post by psycho_leo »

Bards also get a bonus to lore. You should prolly change twink it someway. Can't imagine it to be too hard.
Current PC: Gareth Darkriver, errant knight of Kelemvor
Se'rie Arnimane: Time is of the essence!
Nawiel Di'malie: Shush! we're celebrating!
User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Post by AcadiusLost »

What I'd thought to do re: Perform, is to have a levelup script assign ranks in the (hidden) Perform skill, equal to the ranks in the highest of the specific Perform skills- so a bark with Perform (Sing) 5, and Perform (Dance) 3, would be able to use bardsongs as if they had 5 points in the base NWN2 "Perform" skill.

The lore bonus may be a bit trickier, AFAIK the only ingame effect of that is for identifying magic items- could work it similarly by mirroring the (hidden) lore skill on Knowledge (Arcana), then letting the hardcode do it's usual math on examine.

We do need to find a good way to manipulate base skill ranks from within the ACR, though- that's a priority. Some kind of a LETO-style NWNx4 plugin is our best bet there.
danielmn
Fionn In Disguise
Posts: 4678
Joined: Sat Nov 05, 2005 9:08 pm

Post by danielmn »

I am curious....the skill profession? Would that be points toward something like masonry, carpentry ect?

Awesome stuff! Am reeeeeaaaaaallllllly looking forward to peeps not knowing everything under the sun through one knowledge skill...and am looking forward to taking ranks in Knowledge history. :)
Swift wrote: Permadeath is only permadeath when the PCs wallet is empty.
Zyrus Meynolt: [Party] For the record, if this somehow blows up in our faces and I die, I want a raise

<Castano>: danielnm - can you blame them?
<danielmn>: Yes,
<danielmn>: Easily.

"And in this twilight....our choices seal our fate"
User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Post by AcadiusLost »

Profession is one I'm not as sure about- currently we have a single slot reserved for it, but no entries in the tlk file for it, so I've kept it hidden during levelup. I'm guessing the idea would be to make it a single "generic" profession skill, which players could put points into, letting which profession it reflects be a matter handled in their PC bio, or just by communication with DMs. If that sounds reasonable, I'll open it up for that. Would just mean PCs with multiple "professions" might be a bit complicated. Alternatively, there is still time to cut some of the extraneous slots (duplicate Disable Device at line 33, profession, the unused line 55) and use them to add back more perform subskills (comedy, wind instruments, percussion, string instruments), or Knowledge subtypes (Architecture/engineering, dungeoneering, geography, nobility/royalty, etc).

Also- think I've stumbled across a NWNx4 plugin that will sort out our BaseSkillRank woes.

[edit: It should go without saying- if anyone passionately wants something in that's not in the above list, best to say so before I get deep into re-editing all the class skill 2das! ]
Last edited by AcadiusLost on Mon Jan 07, 2008 12:05 am, edited 1 time in total.
danielmn
Fionn In Disguise
Posts: 4678
Joined: Sat Nov 05, 2005 9:08 pm

Post by danielmn »

Neat stuff AL, and I for one appreciate the hard work!

DAniel
Swift wrote: Permadeath is only permadeath when the PCs wallet is empty.
Zyrus Meynolt: [Party] For the record, if this somehow blows up in our faces and I die, I want a raise

<Castano>: danielnm - can you blame them?
<danielmn>: Yes,
<danielmn>: Easily.

"And in this twilight....our choices seal our fate"
User avatar
witch
Orc Champion
Posts: 456
Joined: Tue Jan 13, 2004 11:42 pm
Location: gmt+1

Post by witch »

What I'd thought to do re: Perform, is to have a levelup script assign ranks in the (hidden) Perform skill, equal to the ranks in the highest of the specific Perform skills- so a bark with Perform (Sing) 5, and Perform (Dance) 3, would be able to use bardsongs as if they had 5 points in the base NWN2 "Perform" skill.
Acadius.. i think if you do it this way all bard players likely pick one perform skill that they max based on their level (in order to gain their abilities) and the extra perform skills will be mostly flavor then and thus the need for the extra perform skills decreases a lot i think.

if you made it a total of the performskills it solves that..

anyway just my two cents
Witch

current character: Denna Shota
"Soldiers never sleep"
User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Post by AcadiusLost »

witch wrote:I think if you do it this way all bard players likely pick one perform skill that they max based on their level (in order to gain their abilities) and the extra perform skills will be mostly flavor then and thus the need for the extra perform skills decreases a lot i think.
I wouldn't be suprised to see bards specializing, especially given the wealth of new class skills to spend their points on (Decipher script, escape artist, Climb, Sense Motive, Speak Language, etc). I'm not seeing how it's a bad thing, though- makes bardic challenges a bit more interesting, as no bard is likely going to have everything maxed.

The additional songs are qualified by Perform 3, 6, 9, 12, 15, and 18 - as an example, Ironsong Chant comes in at Perform 12. A jack-of-all-trades bard in your method would qualify for this with a skillset like:

Acting: 2
Dance: 2
Oratory: 2
Instruments: 3
Singing: 3

Now, none of these are very impressive on their own, really. How would that warrant the super-extraordinary unlocking of an ability that shields allies from damage? It's supposed to be tied somehow to the excellence of their performance (doesn't make a lot of sense, but that's how it's written). If it were supposed to be a strictly level-based ability, it wouldn't come with a rank requirement in addition. I like the idea of the exceptional "bardsong" abilities coming from exceptional investment in a bardic discipline, rather than a formula rooted in total breadth of investment in artistic pursuits.

Since the actual ability to implement this is still a bit tenative, nothing's written in stone at this point. I think the example above is a pretty good IC reason to use the highest perform skill, though I'll acknowledge the OOC concern that it may discourage players of bards from investing in several perform disciplines.

It's also going to come as a blow to the "magnificent at everything for just 1 skillpoint per level" crowd, any way it's cut- but I think the net effect is a positive one from a high-RP PW standpoint.
User avatar
darrenhfx
Beholder
Posts: 1982
Joined: Fri Jul 30, 2004 5:35 pm
Location: Halifax, Canada GMT -4 (AST)

Post by darrenhfx »

That's awesome work AL. We're inching closer to a very nice system.
User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Post by AcadiusLost »

Still waiting on the NWNx4 Character plugin assist before I'll be able to do much for converting new PCs over in terms of their initial skillpoint allocations (as well as the framework for maintaining a "hidden" but updated lore and perform skill total for engine functions). Hoping not to have to go to Letoscript in order to accomplish what we need, but we'll see if the plugin author notices my question and gives some useful feedback.

Also spent some time last night trying to adapt the DMFI 1.10 skill check GUI to work with the expanded skillset, though that's still a work in progress- currently the Initialize Server command isn't finishing gracefully, so the server crashes when the DM avatar exits, and subsequent logins don't have the skill list populated. Closing in on that aspect of it though- if I hit any brick walls with it, I'll look at how Heed's PC Tools handles it's skill listings, though I expect it'll be as hard, if not harder, to adapt- as the DMFI UI at least tries to generate the skill list dynamically from the 2das.
User avatar
AcadiusLost
Chosen of Forumamus, God of Forums
Posts: 5061
Joined: Tue Oct 19, 2004 8:38 am
Location: Montara, CA [GMT -8]
Contact:

Post by AcadiusLost »

OK, had some good progress on this front since last update here.

1. Got the NWNx4-LETO plugin working, to edit .bic files from inside nwscript.

2. Worked out the somewhat arcane and nearly undocumented custom language LETO uses for skill rank writes.

3. Confirmed by early testing that base skill ranks could be manipulated in this way, both for default and expanded-entry custom skills.

4. Stretched out skills.2da to the maximum 55 entries, added 2 more knowledge skills: Dungeoneering and Geography.

5. With Darren's help, got all the class skill 2das reformatted to allow fast checking of class skills from inside nwscript.

6. Wrote a rather complex and reasonably user-friendly conversation interface to handle rejuggling starting skillpoints. This does the following:
- Automatically gives back skillpoints for "Deleted" skills taken mistakenly at character creation (in accordance with whether they were class skills when you took them, so the points always add up fairly).
- Gives the full list of skills to spend points on, including brief excepts of the TLK/SRD descrtiptions, base attribute, training necessity, armor check pentalty, and submenus for Knowledge and Perform skills.
- Shows whether skills are class skills or not as you choose which.
- Gives a running summary of skill ranks as you go
- Allows the player to dump all skill ranks and start over in distributing them at any time in the process.
- Gives a confirmation option when most of the skillpoints are spent (all but one, to simulate PnP halfranks).
- Adds a hidden Lore value that matches the selected Knowledge: Arcana
- Adds a hidden Perform value that matches the highest Perform subskill.
- Generates a Letoscript to adjust the PC's bic to match the chosen skillset.

Currently, it only works for 1st level characters (though I had an idea how this could be improved down the line).

I still need to write the code that boots the PC and applies the LETOscript- the only significant part to this will be generating the bic name dynamically to find it properly. Also, will need to add code OnLevelUp to check if a PC has put more points in Knowledge: Arcana or Perform skills, so as to handle updating the "hidden" skill ranks for compatibility with the hardcoded abilities. Should be easy enough to schedule the .bic write for the PC's next log-off, so it's seamless.

I'm confident I can have this in place for the re-start of Beta testing on 003 TSM - pretty excited to see it all in action.
User avatar
Rusty
Retired
Posts: 2847
Joined: Mon Feb 21, 2005 10:36 pm
Location: London
Contact:

Post by Rusty »

Outstanding.
User avatar
darrenhfx
Beholder
Posts: 1982
Joined: Fri Jul 30, 2004 5:35 pm
Location: Halifax, Canada GMT -4 (AST)

Post by darrenhfx »

I can't wait to see this in game!

Glad that my 1's and 0's were useful. :)
Locked