Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > Archive::Quests

Archive::Quests Archive area for Quests's posts that were moved here after an inactivity period of 90 days.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 04-25-2004, 04:03 AM
cofruben
Old-EQEmu Developer
 
Join Date: Oct 2002
Location: Spain
Posts: 323
Default Functions

I've done the following perl functions:permaclass(class),permarace(race),permag ender(gender),surname("surname") and scribespells().Scribespells scribes all spells to the user,up to his level,so if the user is lvl 9,he will get all spells up to 9.I am adding more functions at the moment,so look here sometimes.Be sure to use correct ID's,and strings(like surname,cannot be number).

This goes into parser.cpp,for example by line 800:
Code:
         else if (!strcmp(strlwr(command),"addldonpoint")) { 
            if (mob && mob->IsClient()) 
               mob->CastToClient()->UpdateLDoNPoints(atoi(arglist[0]),atoi(arglist[1])); 
          } 
         else if (!strcmp(strlwr(command),"surname")) { //Cofruben:-Changes the last name. 
            if (mob && mob->IsClient())
			{
                mob->CastToClient()->ChangeLastName(arglist[0]); 
                mob->CastToClient()->Message(15,"Your surname has been changed/set to: %s",arglist[0]); 
			}
         else 
            mob->CastToClient()->Message(15,"Error changing/setting surname"); 
		  }
         else if (!strcmp(strlwr(command),"permaclass")) {//Cofruben:-Makes the client the class specified 
            mob->CastToClient()->SetBaseClass(atoi(arglist[0])); 
            mob->CastToClient()->Save(2); 
            mob->CastToClient()->Kick(); 
		  }
         else if (!strcmp(strlwr(command),"permarace")) {//Cofruben:-Makes the client the race specified 
            mob->CastToClient()->SetBaseRace(atoi(arglist[0])); 
            mob->CastToClient()->Save(2); 
            mob->CastToClient()->Kick(); 
         } 
         else if (!strcmp(strlwr(command),"permagender")) {//Cofruben:-Makes the client the gender specified 
            mob->CastToClient()->SetBaseGender(atoi(arglist[0])); 
            mob->CastToClient()->Save(2); 
            mob->CastToClient()->Kick(); 
         } 
         else if (!strcmp(strlwr(command),"scribespells")) {//Cofruben:-Scribe spells for user up to his actual level. 
            int book_slot; 
            int16 curspell; 
            for(curspell = 0, book_slot = 0; curspell < SPDAT_RECORDS && book_slot < MAX_PP_SPELLBOOK; curspell++) 
            { 
               if 
               ( 
                  spells[curspell].classes[WARRIOR] != 0 && 
                  spells[curspell].classes[mob->CastToClient()->GetPP().class_-1] <= mob->CastToClient()->GetLevel() && 
                  spells[curspell].skill != 52 
               ) 
               { 
                  mob->CastToClient()->ScribeSpell(curspell, book_slot++); 
               } 
            } 
         } 
        	else if (!strcmp(strlwr(command),"changedeity")) { //Cofruben:-Changes the deity.
          			  if (mob && mob->IsClient())
					  {
              			  mob->CastToClient()->SetDeity(atoi(arglist[0]));
			              mob->CastToClient()->Message(15,"Your Deity has been changed/set to: %i",arglist[0]);
						  mob->CastToClient()->Save(1);
						  mob->CastToClient()->Kick();
					  }
					  else
						mob->CastToClient()->Message(15,"Error changing Deity");
         	}
this goes to embparser.cpp,before myra comment for example(line ~412):
Code:
"sub permagender{push(@cmd_queue,{func=>'permagender',args=>join(',',@_)});}"//Cofruben:-New perma functions 
"sub permarace{push(@cmd_queue,{func=>'permarace',args=>join(',',@_)});}" 
"sub scribespells{push(@cmd_queue,{func=>'scribespells',args=>join(',',@_)});}" 
"sub permaclass{push(@cmd_queue,{func=>'permaclass',args=>join(',',@_)});}" 
"sub surname{push(@cmd_queue,{func=>'surname',args=>join(',',@_)});}" 
"sub addldonpoint{push(@cmd_queue,{func=>'addldonpoint',args=>join(',',@_)});}" 
"sub changedeity{push(@cmd_queue,{func=>'changedeity',args=>join(',',@_)});}"
add this in client.h,for deity change:
Code:
inline void SetDeity(uint32 i) {m_pp.deity=i;}
Hope it helps.
Reply With Quote
 


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 03:31 PM.


 

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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3