Anyone knows how to...

Welcome in the osRose emulator Project.

Moderators: osRose dev team, ospRose dev team, osiRose dev team, Moderators

Anyone knows how to...

Postby Oynky on Mon Aug 13, 2007 10:20 am

Anyone knows how to... change it so the players can only change class 1 time?
Since pretty much all my crashes come from a freeze error.
Saying too many skills at data row 1 or w/e

I heard it was from players that have muse, hawker, soldier skills... ect all mixed up.
Anyone has a idea?
Oynky
Jelly Bean
Jelly Bean
 
Posts: 16
Joined: Sat Aug 11, 2007 10:42 am
Location: The Netherlands

Re: Anyone knows how to...

Postby lmame on Mon Aug 13, 2007 10:36 am

Don't give them the ability to change class on their own will first or if they do wipe the class skills.

Anyway, do you have an error in the world server window?
The world is full of love and peace ^_^
Image
User avatar
lmame
Admin
Admin
 
Posts: 8997
Joined: Mon Aug 06, 2007 4:42 pm
Location: July City

Re: Anyone knows how to...

Postby Oynky on Mon Aug 13, 2007 4:44 pm

lmame wrote:or if they do wipe the class skills.


Anyway, do you have an error in the world server window?


Do u know a code for that?

And yes next time ill post it here.
Oynky
Jelly Bean
Jelly Bean
 
Posts: 16
Joined: Sat Aug 11, 2007 10:42 am
Location: The Netherlands

Re: Anyone knows how to...

Postby lmame on Mon Aug 13, 2007 4:50 pm

Look at the submit code section, Reborn function ;)
The world is full of love and peace ^_^
Image
User avatar
lmame
Admin
Admin
 
Posts: 8997
Joined: Mon Aug 06, 2007 4:42 pm
Location: July City

Re: Anyone knows how to...

Postby Terr0risT on Mon Aug 13, 2007 5:05 pm

Maybe another way to solve this is to add some codes that make them pay zulie each time they do /class command.

Like 30M zulie per change of class..

or

if (first job) to (second job) then NO PAYMENT

if (second job) to (second job) then Pay 30M zulie

................

Well, in my server I disabled the /class command and encouraged my players to do the quests. If they don't want the quest, they can change job at the site, then they pay some amount of zulie.

Having "/class" command enabled is not really good. Later, some soldiers will learn velocity accordance, and dragon scale, or some passive skills by other class... which ultimately ruins the balance in the game.
User avatar
Terr0risT
Rackie
Rackie
 
Posts: 162
Joined: Sat Aug 11, 2007 10:22 am

Re: Anyone knows how to...

Postby lmame on Mon Aug 13, 2007 5:10 pm

On the next rev the quests will be fine so the /class should be deleted...
The world is full of love and peace ^_^
Image
User avatar
lmame
Admin
Admin
 
Posts: 8997
Joined: Mon Aug 06, 2007 4:42 pm
Location: July City

Re: Anyone knows how to...

Postby core on Mon Aug 13, 2007 6:42 pm

  1. bool CWorldServer::pakGMClass( CPlayer* thisclient, char* classid )
  2. {
  3.     int classid_new;
  4.  
  5.     if ( strcmp ( classid , "Soldier" ) == 0 || strcmp ( classid , "soldier" ) == 0 && thisclient->CharInfo->Job == 0)
  6.     {
  7.         classid_new = 111;
  8.     }
  9.     else if ( strcmp ( classid , "Knight" ) == 0 || strcmp ( classid , "knight" ) == 0 && thisclient->CharInfo->Job == 111 && thisclient->CharInfo->Job != 122 && thisclient->Stats->Level >= 100)
  10.     {
  11.         classid_new = 121;
  12.     }
  13.     else if ( strcmp ( classid , "Champion" ) == 0 || strcmp ( classid , "champion" ) == 0 && thisclient->CharInfo->Job == 111 && thisclient->CharInfo->Job != 121 && thisclient->Stats->Level >= 100)
  14.     {
  15.         classid_new = 122;
  16.     }
  17.     else if ( strcmp ( classid , "Muse" ) == 0 || strcmp ( classid , "muse" ) == 0 && thisclient->CharInfo->Job == 0)
  18.     {
  19.         classid_new = 211;
  20.     }
  21.     else if ( strcmp ( classid , "Mage" ) == 0 || strcmp ( classid , "mage" ) == 0 && thisclient->CharInfo->Job == 211 && thisclient->CharInfo->Job != 222 && thisclient->Stats->Level >= 100)
  22.     {
  23.         classid_new = 221;
  24.     }
  25.     else if ( strcmp ( classid , "Cleric" ) == 0 || strcmp ( classid , "cleric" ) == 0 && thisclient->CharInfo->Job == 211 && thisclient->CharInfo->Job != 221 && thisclient->Stats->Level >= 100)
  26.     {
  27.         classid_new = 222;
  28.     }
  29.     else if ( strcmp ( classid , "Hawker" ) == 0 || strcmp ( classid , "hawker" ) == 0 && thisclient->CharInfo->Job == 0)
  30.     {
  31.         classid_new = 311;
  32.     }
  33.     else if ( strcmp ( classid , "Raider" ) == 0  || strcmp ( classid , "raider" ) == 0 && thisclient->CharInfo->Job == 311 && thisclient->CharInfo->Job != 322 && thisclient->Stats->Level >= 100)
  34.     {
  35.         classid_new = 321;
  36.     }
  37.     else if ( strcmp ( classid , "Scout" ) == 0 || strcmp ( classid , "scout" ) == 0 && thisclient->CharInfo->Job == 311 && thisclient->CharInfo->Job != 321 && thisclient->Stats->Level >= 100)
  38.     {
  39.         classid_new = 322;
  40.     }
  41.     else if ( strcmp ( classid , "Dealer" ) == 0 || strcmp ( classid , "dealer" ) == 0 && thisclient->CharInfo->Job == 0)
  42.     {
  43.         classid_new = 411;
  44.     }
  45.     else if ( strcmp ( classid , "Bourgeois" ) == 0 || strcmp ( classid , "bourgeois" ) == 0 && thisclient->CharInfo->Job == 411 && thisclient->CharInfo->Job != 422 && thisclient->Stats->Level >= 100)
  46.     {
  47.         classid_new = 421;
  48.     }
  49.     else if ( strcmp ( classid , "Artisan" ) == 0 || strcmp ( classid , "artisan" ) == 0 && thisclient->CharInfo->Job == 411 && thisclient->CharInfo->Job != 421 && thisclient->Stats->Level >= 100)
  50.     {
  51.         classid_new = 422;
  52.     }    
  53.     else
  54.     {
  55.         GServer->SendPM(thisclient, "Multiclassing is not allowed !" );
  56.         GServer->SendPM(thisclient, "Second job class can be gained when you are at least level 100 !" );
  57.         return true;
  58.     }
  59.    
  60.     thisclient->CharInfo->Job = classid_new;
  61.     BEGINPACKET(pak, 0x0721);
  62.     ADDWORD(pak,4);
  63.     ADDWORD(pak, thisclient->CharInfo->Job);
  64.     ADDWORD(pak,0);
  65.     thisclient->client->SendPacket(&pak);
  66.     RESETPACKET(pak, 0x0730);
  67.     ADDWORD(pak, 5);
  68.     ADDWORD(pak, 0xa24d);
  69.     ADDWORD(pak, 0x40b3);
  70.     thisclient->client->SendPacket(&pak);
  71.     SendPM(thisclient, "Class changed!" );
  72.      
  73.     return true;
  74. }


This code lets your player change to one of the first classes, but only when his class is visitor. After that he can choose beetween one of the second classes of the same job. The only requirement is that your player reached level 100. Example: Visitor->Hawker, Hawker->Raider. Raider->Scout or Raider->another second or first class job would not work.
Image
User avatar
core
Pomic
Pomic
 
Posts: 126
Joined: Thu Aug 09, 2007 5:47 pm

Re: Anyone knows how to...

Postby Oynky on Mon Aug 13, 2007 7:03 pm

Thanks core! :3

Here ill post the error anyway :)

Fatal Error: Could not execute query: Data too long for collom 'class_skills' at row 1

So it kinda says to many skills
Oynky
Jelly Bean
Jelly Bean
 
Posts: 16
Joined: Sat Aug 11, 2007 10:42 am
Location: The Netherlands

Re: Anyone knows how to...

Postby core on Mon Aug 13, 2007 7:17 pm

I would suggest to change class_skills varchar (255) to varchar(300) or varchar(350) in the DB ;)
Image
User avatar
core
Pomic
Pomic
 
Posts: 126
Joined: Thu Aug 09, 2007 5:47 pm

Re: Anyone knows how to...

Postby Oynky on Mon Aug 13, 2007 8:58 pm

Damn i wish i had PHPMyAdmin back...
How to do it in navicat? :?
Oynky
Jelly Bean
Jelly Bean
 
Posts: 16
Joined: Sat Aug 11, 2007 10:42 am
Location: The Netherlands

Next

Return to Support - OsRose Emulator

Who is online

Users browsing this forum: No registered users and 4 guests