Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 07-19-2009, 05:49 PM
neiv2
Hill Giant
 
Join Date: Mar 2009
Location: CO
Posts: 183
Default Solution for Custom Race/Class Availability

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 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:
Code:
	<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
Code:
		<Size>
			<CX>96</CX>
			<CY>24</CY>
		</Size>
. . . . to . . .
Code:
		<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.
Reply With Quote
  #2  
Old 07-19-2009, 08:28 PM
steve
Discordant
 
Join Date: Jan 2002
Posts: 305
Default

Nice, but not practical. Each user would need to do this to disallow the options.
Reply With Quote
  #3  
Old 07-19-2009, 09:21 PM
neiv2
Hill Giant
 
Join Date: Mar 2009
Location: CO
Posts: 183
Default

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.
Reply With Quote
  #4  
Old 11-07-2009, 09:11 AM
Oogbar
Fire Beetle
 
Join Date: Nov 2009
Location: Wasilla AK
Posts: 17
Default

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?
Reply With Quote
  #5  
Old 11-25-2009, 02:56 PM
neiv2
Hill Giant
 
Join Date: Mar 2009
Location: CO
Posts: 183
Default

Oogbar, there is a quest script I wrote here that will allow you to do just that. You'll just need to modify it in fairly obvious ways.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:14 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3