PDA

View Full Version : Solution for Custom Race/Class Availability


neiv2
07-19-2009, 05:49 PM
There have been many requests in the past for a way to limit the races and classes allowed on a server (irrespective of those allowed in each release). I created a tutorial quest (http://www.eqemulator.net/forums/showthread.php?t=26880) that accomplished this in a round-about way; but it forces the user to change a disallowed race and/or class only after they've already gone through the trouble of creating a character.

Recently, while playing around with the UIFiles, I found a way to do this at the Character Creation screen. It involves simply resizing the text box for each race or class you would like to disallow. The result is, those options no longer appear on the Character Creation screen. Here's how:

1. Open EQUI_CharacterCreate.xml located in C:\Program Files\Sony\EverQuest\uifiles\default
NOTE: you can use Notepad for this if you have no xml reader

2. Edit/Find either CCO_Racex or CC0_Classx (depending on what you intend to eliminate--replace the x with a number from 0-14 for race and 0-15 for Class)
NOTE: This will take you to the specified race or class entry.

3. Find the races and/or classes you want to eliminate. Races and classes are labeled accordingly:

Races
CC0_Race0 = Barbarian
CC0_Race1 = Dark Elf
CC0_Race2 = Dwarf
CC0_Race3 = Erudite
CC0_Race4 = Gnome
CC0_Race5 = Half Elf
CC0_Race6 = Halfling
CC0_Race7 = High Elf
CC0_Race8 = Human
CC0_Race9 = Iksar
CC0_Race10 = Ogre
CC0_Race11 = Troll
CC0_Race12 = Vah Shir
CC0_Race13 = Wood Elf
CC0_Race14 = Froglok

Classes
CC0_Class0 = Bard
CC0_Class1 = Beastlord
CC0_Class2 = Berserker
CC0_Class3 = Cleric
CC0_Class4 = Druid
CC0_Class5 = Enchanter
CC0_Class6 = Magician
CC0_Class7 = Monk
CC0_Class8 = Necro
CC0_Class9 = Paladin
CC0_Class10 = Ranger
CC0_Class11 = Rogue
CC0_Class12 = ShadowKnight
CC0_Class13 = Shaman
CC0_Class14 = Warrior
CC0_Class15 = Wizard

4. Once you land on the entry you want, simply scroll down till you see the "size" line. An example of a full entry appears below:

<Button item="CC0_Race9_Button">
<ScreenID>CC0_Race9_Button</ScreenID>
<RelativePosition>true</RelativePosition>
<Location>
<X>2</X>
<Y>325</Y>
</Location>
<Size>
<CX>96</CX>
<CY>24</CY>
</Size>
<Style_VScroll>false</Style_VScroll>
<Style_HScroll>false</Style_HScroll>
<Style_Transparent>false</Style_Transparent>
<Style_Checkbox>true</Style_Checkbox>
<RadioGroup>CC0_Race_Radios</RadioGroup>
<Text>Iksar</Text>
<TextColor>
<R>255</R>
<G>255</G>
<B>255</B>
</TextColor>
<ButtonDrawTemplate>
<Normal>A_BtnNormal</Normal>
<Pressed>A_BtnPressed</Pressed>
<Flyby>A_BtnFlyby</Flyby>
<Disabled>A_BtnDisabled</Disabled>
<PressedFlyby>A_BtnPressedFlyby</PressedFlyby>
</ButtonDrawTemplate>
</Button>

Change each "size" reference to the value of 0, per the example below:

Change

<Size>
<CX>96</CX>
<CY>24</CY>
</Size>

. . . . to . . .

<Size>
<CX>0</CX>
<CY>0</CY>
</Size>


5. Save the file, enter the game, and Create a New Character. You should no longer see the races and classes you eliminated.

steve
07-19-2009, 08:28 PM
Nice, but not practical. Each user would need to do this to disallow the options.

neiv2
07-19-2009, 09:21 PM
It would have to be present on each client, true, but that doesn't mean each user would have to make the modifications manually. For a custom server, it would be no different from the other distributed custom files that each client needs to download and install in order to play in a custom environment--custom zone files, custom loadscreens, globalload file or .chr for character models per zone, etc. The modified .xml would just need to be included in that package of distributed custom files. The installation process (via a batch file or other scripting) could easily place these files where they need to go and copy the original files to another folder as a backup of each in case the client decides to return to a legit environment.

Oogbar
11-07-2009, 09:11 AM
And how about for the reversal of most of the thread? Making an UN-available class for a certain race, available? Or would doing that be far beyond its worth?

neiv2
11-25-2009, 02:56 PM
Oogbar, there is a quest script I wrote here (http://www.eqemulator.net/forums/showthread.php?t=26880)that will allow you to do just that. You'll just need to modify it in fairly obvious ways.