You are here

Classes Bounds

10 posts / 0 new
Last post
John Barleycorn
Classes Bounds

Hi guys. So, i'm not even sure how categorize this question, but i think this is the most likely place. Every modder which will probably have tried to edit a class will probably know that, if you want to have spells for a class WITHOUT the weird effect that EVERY SINGLE SPELL of the game will appear you have only few lines that work (yes, like the game doesn't care ANY of the scribble only the line, but only their number)  so i was trying to edit the line of ranger for porting my favorite class from everquest. Alas, i noticed that EVEN if deities are technically fully editable from the nwn_deities.2da, the game lets you some deities even if you put "2" for ranger (which means allow without restrictions). It would be better if i could directly remove 'necessity' for some classes -like ranger, of course- of having precise deities to follow.. So my question, after all this mumbo jumbo is: someone has discovered where precisely the game goes to look for this bullshit of the lines? (so i can remove it of course xD )

  • up
    50%
  • down
    50%
kevL's

Can you rephrase the question(s?)?

  • up
    100%
  • down
    0%
John Barleycorn

how-do-i-remove-deity-limitation-from-some-classes-definitively

(or-where-is-stored-that-setting)

  • up
    50%
  • down
    50%
kevL's

I don't think it can be done, at least not easily. Here's the rules for Nwn2_Deities.2da
 

  • During character creation, any class of character has to select a deity. The list of deities that appears is restricted by race/subrace, alignment, base divine spellcasting classes, and gender. The strings are just strings, not IDs. They aren't relevant after character creation unless you use the GetDeity() function to do a string compare. But the important thing is that it allows people (like us, for instance) to create lists of deities and restrict them appropriately.
  •  
  • PLAYAZ: What this means for you is that the OC will handle deity selection pretty close to official 3.5 FR rules. Builders can use this same list, unmodified, to use it more heavily than we do in our OC. If you're not a modder/builder, the stuff that follows may not interest you.
  •  
  • MODDERS/BUILDERS: You can do crazy stuff with it.
  •  
  • Here's how it works: there is a .2da... let's call it deities.2da(?). The first two columns of the .2da are the deity's first and last name. This allows you to separate your Larethians from your Corellons when the strings are read in (white space counts as the end of an entry). Deities without last names can have **** to result in no second string being shown. Note: this is not a string ref, just a string.
  •  
  • The third column is "Removed". If a 0 appears here, the deity is valid to appear during chargen. If a 1 appears, the deity is hidden. If you do not like my list of 105 Forgotten Realms deities (including None and Ao), mark all of these to 1 and create new entries for Takhisis and Paladine and Farmer Bob.
  •  
  • The third column is for DescID and the fourth is for IconID. We're not using these in our OC/chargen, but the columns are there for you to manipulate and call upon. "In" "theory" you could modify our chargen process to show deity descriptions and a cool icon.
  •  
  • The fifth column is EveryRace. If this is marked to 1, any playable race can pick this deity assuming they meet other requirements in the list. If it's marked to 0, the next nine columns are used for individual subrace inclusions. These are marked Subrace1 to Subrace9. Set subrace IDs here and those subraces can worship the deity. Don't worry, even humans have a subrace (it's human!). So if you want all elves but drow to worship your world's super elf deity, just enter the other elf subraces and maybe the half-elf subrace here. If you want only lightfoot halfings and moon elves and mind flayers to worship a weird god, put those in. You've got nine entries, so most cases should be covered.
  •  
  • The next section is... tricky. It's for base divine spellcasters: paladin, cleric, druid, ranger. Each class gets a column. 0 = no, this class can't choose this deity under any circumstances. 1 = yes, this class can choose this deity if other circumstances are met. 2 = yes, this class can choose this deity and ignore subsequent alignment restrictions (this is really just used for paladins of Sune 8) ).
  •  
  • Nine columns follow for alignments. Each column contains a number. 0 = no one of this alignment may choose this deity. 1 = non-divine spellcasters (laity) may choose this deity. 2 = non-divine spellcasters may choose this deity and any divine spellcaster with a 1 in their respective column may also select this deity. Wheeee-heeeee!
  •  
  • The next two columns are for male and female restrictions. OTHER/BOTH always get free rides, so to speak. 0 = this gender can't follow this deity at all. 1 = laity of this gender can follow the deity. 2 = laity and divine spellcasters that qualify can follow the deity.


- http://www.eilistraee.com/forums/viewtopic.php?t=183


If you want to overrule that, do something that calls

void SetDeity(object oCreature, string sDeity);

but even that could be problematic with regard to Favored Souls getting their bonus weapon feats, and Clerics choosing their proper Domains ...

  • up
    50%
  • down
    50%
John Barleycorn

To be honest, i simply wanted to create another hybrid class (the shadowknight, precisely), but as you would probably know, you *can't* set spellcasting to work properly to a class that is not those which, by vanilla, has some propriety on some other place (and WHICH this place is, is the true question) that can allow it to work properly. For example, even if you remove and/or change the entire feat list of the ranger, you will still get to choose the animal companion and the specialization at the 2° level between two weapon or archery, even if after that won't appear any feat added to your character when you level up. So that must mean there is some other scripting that activates some specific stuff linked to the line number of the class, instead of what is written on the class.2da.

So i was just wondering *where* are located those other setting/scripts, so i can or disable and "substitute" ranger class with the one i want, or create from scratch the one i want WITH working spells (and spell table, mostly)

The deities restriction was just one of the things i would need to remove/edit.

 

  • up
    50%
  • down
    50%
John Barleycorn

I remember there was some other people that tried to create new spellcaster classes, but due to this reason, nobody has ever been able to. So i was wondering if someone had discovered why it works that way and how it could be overcome this annoyance.

  • up
    50%
  • down
    50%
kevL's

well... it sounds like yer trying to bang the head against "hardcoded limitations"

we (sometimes fondly and sometimes not so fondly) refer to it as The Engine. Simply put, it's the executable program that runs the game.


reverse engineering is out of my league. So I have my hopes for Xoreos coming online, at which time you can fork it, learn c++ and go nutz

  • up
    50%
  • down
    50%
John Barleycorn

Hmm... I think i don't really understand what xoreos is,(i read the "about xoreos" but i'm not sure if i understand precisely) but if what i did ask is bound to the engine.... Well, then i think there's no way around. Gez, if they used an engine like bethesda those games would have been ten times better. Tsk.

  • up
    50%
  • down
    50%
kamal

Custom spellcasting classes.

https://neverwintervault.org/comment/9829

  • up
    50%
  • down
    50%
John Barleycorn

Yup. So it would seem that someone has can-opened the script-engine or what-so-ever.. I say it would seem becouse, man, i don't understand a damn thing of all that mess xD

But still, that seems a really neat work.

  • up
    50%
  • down
    50%