Author Topic: unlocking prestige classes for any level  (Read 1265 times)

Legacy_Falonthas

  • Newbie
  • *
  • Posts: 25
  • Karma: +0/-0
unlocking prestige classes for any level
« on: December 30, 2010, 04:10:23 pm »


               we operate a low level server and wish to allow certain pcs upon earning the class by rp and actions the ability to take the prc on level up.

is there a script or 2da change that can alter the mechanical pre requisites?
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #1 on: December 30, 2010, 05:20:28 pm »


               Yes you can do this by editing the 2da's for each class.  The 2da name to edit for each class can be found in the PreReqTable column of classes.2da.

So for example the 2da you would need to edit for the shadowdancer is cls_pres_shadow.2da

It normally looks like this. 

2DA V2.0                                                           
                                                                   
           LABEL                   ReqType       ReqParam1        ReqParam2  
0          HideSkill              SKILL             5                               10         
1          MoveSilentSkill   SKILL             8                               8          
2          Tumble                SKILL            21                              5          
3          dodge                  FEAT              10                             ****       
4          mobility                FEAT              26                             ****       
5          ScriptVar              VAR         X1_AllowShadow           0           


If you changed it to look like this.

2DA V2.0                                                           
                                                                   
           LABEL                   ReqType       ReqParam1        ReqParam2          
0         ScriptVar              VAR         X1_AllowShadow           1           

The only thing that would be needed to take the class would be a local var named  X1_AllowShadow set to 1 on the character.  
               
               

               


                     Modifié par Lightfoot8, 30 décembre 2010 - 05:21 .
                     
                  


            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #2 on: December 30, 2010, 05:24:49 pm »


               Here is a little mor information. On the possiable values of the ReqType column.

FEAT: required feat. ReqParam1 indexes into feats.2da.

FEATOR: must have at least one of the FEATOR
requirements in order to take this prestige class.
ReqParam1 indexes into feats.2da.
SKILL: ReqParam1 indexes into skills.2da. ReqParam2
specifies the required number of ranks in the specified
skill.

RACE: must be of one of the specified races. ReqParam1
indexes into racialtypes.2da.

BAB: base attack bonus must be greater than or equal to
ReqParam1.

VAR: the scripting variable named in ReqParam1 column
must exist on the creature and be set to the value in
ReqParam2. Ignored by toolset.

ARCSPELL: ReqParam1 must be 1. Specifies that the
character must be able to cast arcane spells. Ignored by
toolset.

The information above come from the Bioware Documentation: Creature Format
               
               

               


                     Modifié par Lightfoot8, 30 décembre 2010 - 05:32 .
                     
                  


            

Legacy_TSMDude

  • Hero Member
  • *****
  • Posts: 1515
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #3 on: December 30, 2010, 05:49:39 pm »


               Just for my onw knowledge this is not something you can do just server side, correct? You must have a custom hak for this?
               
               

               
            

Legacy_NorthWolf

  • Full Member
  • ***
  • Posts: 143
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #4 on: December 30, 2010, 08:56:04 pm »


               I believe you can do this purely server-side by putting you prereqs table into your override or a custom hak.
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #5 on: December 30, 2010, 09:23:57 pm »


               ok,  I ealier I was going to just shoot off an answer to the question that It was just a server side adjustment, Then decided that i should test it first to make sure. 

My tests from a single computer with two copies of nwn installed confirmed that you can do this with only a server side override of the 2da. 

Then I found the other problem.  

The character was invalid when trying to log back into the server.  The reason is that the local var table is not keep on the character when they are saved.  This means that how ever you try to do it the server will have to have the Enforce Legal Characters option un-checked if the var is set to 1 in the 2da to allow the class.  If the var is set to 0 in the 2da to allow the class(meaning all characters normally get the var set to 1 OnClientEnter. then removed to allow the class.)   The  Enforce Legal Characters option can remain checked.  However the Players will need to have the 2da in there override folder.  Since 2da's from the hak's or server are not loaded untill after they log in. 
With the Enforce Legal Characters characters option unchecked it works fine, you just get the extra headack if/when players take advantage of the secutity hole.

If any one want to help verfiy the 2da override long line I currently have a server running. 

Direct connect:  70.185.174.129:5122
PlayerPassword : test
  EDIT: the test passed NorthWolf logged in and could become a shadowdancer with a serverside override only.  

the black crate is running this script:

void main()
{
  object oPC = GetLastOpenedBy();
  SetXP (oPC, 0);
  DelayCommand(1.0,SetXP(oPC,5000));
  SetLocalInt(oPC,"X1_AllowShadow",!GetLocalInt(oPC,"X1_AllowShadow"));


Every time you open it you will be reset to 0 xp then releveled.  Toggling the abaility to become a shadowdancer.  
Like I said my tests here lead me to believe it will work long line.  I would just like a long lne test to confirm it.
               
               

               


                     Modifié par Lightfoot8, 31 décembre 2010 - 03:30 .
                     
                  


            

Legacy_Greyfort

  • Sr. Member
  • ****
  • Posts: 442
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #6 on: December 31, 2010, 02:53:22 am »


               C:\\\\NeverwinterNights\\\\NWN\\\\nwmain.exe +connect 70.185.174.129:5122 +password test

Did I miss type something here it keeps saying invalid pass word?...Yes I did LOL forgot password

C:\\\\NeverwinterNights\\\\NWN\\\\nwmain.exe +connect 70.185.174.129:5122
+password test

this is for a direct connect
               
               

               


                     Modifié par Greyfort, 31 décembre 2010 - 02:55 .
                     
                  


            

Legacy_Greyfort

  • Sr. Member
  • ****
  • Posts: 442
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #7 on: December 31, 2010, 03:05:26 am »


               Logged In and could not be a shodowdancer, so I need your 2da.  I could make a 2da with just what you wrote here on the forums...but i dont know what classes you have opened so if you want some help testing let me know.
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #8 on: December 31, 2010, 03:09:28 am »


               

Greyfort wrote...

Logged In and could not be a shodowdancer, so I need your 2da. I could make a 2da with just what you wrote here on the forums...but i dont know what classes you have opened so if you want some help testing let me know.



Let me kake sure you did the test right. 

When you first log in you will not be able to take shadowdancer.
Once you open the black crate it will set it so you can be a shadowdancer. 
If you open the black crate a second time it should set it back to where you can not take shadowdancer
               
               

               
            

Legacy_NorthWolf

  • Full Member
  • ***
  • Posts: 143
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #9 on: December 31, 2010, 03:24:14 am »


               Tested, works perfectly.



You don't need the .2da client-side. I can take the shadowdancer prestige class after using the crate. Which I just happened to manage to break.
               
               

               
            

Legacy_Greyfort

  • Sr. Member
  • ****
  • Posts: 442
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #10 on: December 31, 2010, 05:25:12 am »


               ok I see I didn't see ware you said I had to log in make char and it would then set you able LOL,  can the problem be solved with client 2da, or is the box the only way?
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #11 on: December 31, 2010, 05:51:55 am »


               Problem?   If you are asking is there a way to take a Pres class at first level.  I dont think there is a way.  Even if there was a way It would have to be done with the var in the 2da set to 0.  This would make it point less allowing anyone who made a new character able to take Pres class.  



Still I do not think there is any way with the default system to allow pres class at first level.
               
               

               
            

Legacy_Falonthas

  • Newbie
  • *
  • Posts: 25
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #12 on: January 01, 2011, 04:58:02 am »


               not saying first level persay, but say 3rd or 4th and not 8th
               
               

               
            

Legacy_Greyfort

  • Sr. Member
  • ****
  • Posts: 442
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #13 on: January 01, 2011, 06:01:36 am »


               ok then my mistake I missunderstood i like them not being press_class lvl0
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
unlocking prestige classes for any level
« Reply #14 on: January 01, 2011, 07:32:55 am »


               

Falonthas wrote...

not saying first level persay, but say 3rd or 4th and not 8th

Here is the question?  Did you want to leave the ELC active for the server or deavtivated. I am not sure if it can be done without useing the Preload haks if you leave it on.  If that is the case ShadoOdw may be the best person how to do it.  
If you trun off the ELC then all you need to do is edit the 2da's to what you want each  class to have and place them in your override directory for the server.   The 2da's are:
CLS_PRES_SHADOW  
CLS_PRES_HARPER    
CLS_PRES_ARCHER   
CLS_PRES_ASASIN  
CLS_PRES_BLKGRD      
CLS_PRES_DIVCHA   
CLS_PRES_wM        
CLS_PRES_PALEMA  
CLS_PRES_SHIFTR 
CLS_PRES_DWDEF  
CLS_PRES_DRADIS