Jump to content
  • 0

[Error]Unexpected Case


Pancake

Question


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  49
  • Reputation:   17
  • Joined:  02/06/12
  • Last Seen:  


//////////////////////////////////////////////////////////////////////////////////
// Jobchanger eA-Jobsystem + 3rd Classes //
/////////////////////////////////////////////////////////////////////////////////
//1.0 - Creators Job Master eAthena [Ori:LunatikBunnie] [Cur:Lance])
//1.1 - Added 3rd Classes [Viktus]
//1.2 - Added 2nd Platinum Skills [Viktus]
//
// Rebirth-Class Only can Become 3rd-class
// Edited by Moned
///////////////////////////////////////////////////////////////////////////////
prontera.gat,159,184,4 script Job Services 429,{
mes "[Job Services Npc]";
mes "Please select the service you wish to use";
next;
switch(select("Rental Services:Job Changing:Reset Services"))
{
case 1:
goto L_Rent;
case 2:
goto L_Main;
case 3:
goto L_Reset;
}
L_Main:
mes "^ff0000[Job Changing]^000000";
if(Class >= 4054 && Class <= 4085) goto L_max;
if(SkillPoint != 0) goto L_stats;
if(Upper == 1 && Class >= Job_Lord_Knight && Class <= Job_Paladin2) goto L_Third;
if(JobLevel < 10) goto L_LvError;
switch(Class){
case Job_Novice_High:
case Job_Baby:
case Job_Novice:
skill 142,1,0;
skill 143,1,0;
mes "Welcome, please select the job you wish to change into";
if(lastJob != 0 && Class == Job_Novice_High){
switch(lastJob){
case Job_Knight:
case Job_Crusader:
set @target_job, Job_Swordman_High;
break;
case Job_Monk:
case Job_Priest:
set @target_job, Job_Acolyte_High;
break;
case Job_Alchemist:
case Job_Blacksmith:
set @target_job, Job_Merchant_High;
break;
case Job_Rogue:
case Job_Assassin:
set @target_job, Job_Thief_High;
break;
case Job_Wizard:
case Job_Sage:
set @target_job, Job_Mage_High;
break;
case Job_Hunter:
case Job_Bard:
case Job_Dancer:
set @target_job, Job_Archer_High;
break;
}
} else {
switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
"Super Novice","Taekwon","Gunslinger","Ninja")){
case 7:
if(Class == Job_Novice_High) goto L_noReq;
if(45 > BaseLevel) goto L_BvError;
if(Upper == 2)
set @target_job, Job_Super_Baby;
else
set @target_job, Job_SuperNovice;
break;
case 8:
if(Class == Job_Novice_High) goto L_noReq;
if(Upper == 2) goto L_noReq;
set @target_job, Job_Taekwon;
break;
case 9:
case 10:
if(Class == Job_Novice_High || Upper == 2) goto L_noReq;
set @target_job, @menu + 15;
break;
default:
set @target_job, @menu;
if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
break;
}
}
mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("No","Yes") == 2){
callfunc "Job_Change", @target_job;
if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
callfunc "F_ClearJobVar";
} else {
if( 1 ) goto L_GivePlat;
}
}
close;
break;
default:
if(JobLevel < 40 ) goto L_LvError;
deletearray @job_opt, getarraysize(@job_opt);
if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
if(lastJob != 0){
set @target_job, lastJob + 4001;
} else {
switch(Class){
case Job_Swordman_High:
case Job_Baby_Swordman:
case Job_Swordman:
set @job_opt[0], Job_Knight;
set @job_opt[1], Job_Crusader;
break;
case Job_Mage_High:
case Job_Baby_Mage:
case Job_Mage:
set @job_opt[0], Job_Wizard;
set @job_opt[1], Job_Sage;
break;
case Job_Archer_High:
case Job_Baby_Archer:
case Job_Archer:
set @job_opt[0], Job_Hunter;
if(Sex == 0)
set @job_opt[1], Job_Dancer;
else
set @job_opt[1], Job_Bard;
break;
case Job_Acolyte_High:
case Job_Baby_Acolyte:
case Job_Acolyte:
set @job_opt[0], Job_Priest;
set @job_opt[1], Job_Monk;
break;
case Job_Merchant_High:
case Job_Baby_Merchant:
case Job_Merchant:
set @job_opt[0], Job_Blacksmith;
set @job_opt[1], Job_Alchemist;
break;
case Job_Thief_High:
case Job_Baby_Thief:
case Job_Thief:
set @job_opt[0], Job_Assassin;
set @job_opt[1], Job_Rogue;
break;
default:
set @job_opt[0], Job_Star_Gladiator;
set @job_opt[1], Job_Soul_Linker;
break;
}
mes "Welcome, please select the job you wish to change into";
set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
}
mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("No","Yes")==2){
callfunc "Job_Change", @target_job;
if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
callfunc "F_ClearJobVar";
} else {
if(1) goto L_GivePlat;
}
}
close;
}
if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
mes "Do you want to Reborn?";
if(select("Yes","No")==1){
if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
set lastJob, Class;
if(Class == Job_Knight2){
set lastJob, Job_Knight;
} else {
if(Class == Job_Crusader2){
set lastJob, Job_Crusader;
}
}
jobchange Job_Novice_High;
resetlvl(1);
skill 142,1,0;
skill 143,1,0;
close;
}
switch(Class){
mes "Please come again soon!";
close;
}
close;
}
mes "I'm sorry, there are no further classes for your job.";
close;
}

L_Third:
if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
mes "Are you sure you want to change to 3rd Class?";
if(select("Yes","No")==1){
if(BaseLevel < 99 || JobLevel < 70) goto L_cantCh;
switch(Class){
case Job_Lord_Knight:
jobchange 4060;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Paladin:
jobchange 4073;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Champion:
jobchange 4077;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_High_Priest:
jobchange 4063;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Creator:
jobchange 4078;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Whitesmith:
jobchange 4064;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Stalker:
jobchange 4079;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Assassin_Cross:
jobchange 4065;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_High_Wizard:
jobchange 4061;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Professor:
jobchange 4074;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Sniper:
jobchange 4062;
getitem 6124, 1;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Clown:
jobchange 4075;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
case Job_Gypsy:
jobchange 4076;
specialeffect2 514;
specialeffect2 381;
setlook 7,0;
close;
}

}
close;


L_GivePlat:
if (BaseClass==Job_SuperNovice) goto L_sSuperN;
if (BaseClass==Job_Swordman) goto L_sSword;
if (BaseClass==Job_Mage) goto L_sMage;
if (BaseClass==Job_Archer) goto L_sArcher;
if (BaseClass==Job_Acolyte) goto L_sAcolyte;
if (BaseClass==Job_Merchant) goto L_sMerchant;
if (BaseClass==Job_Thief) goto L_sThief;
if (BaseClass==Job_Knight) goto L_sKnigh;
if (BaseClass==Job_Crusader) goto L_sCrusader;
if (BaseClass==Job_Assassin) goto L_sAssassin;
if (BaseClass==Job_Rogue) goto L_sRogue;
if (BaseClass==Job_Wizard) goto L_sWizard;
if (BaseClass==Job_Sage) goto L_sSage;
if (BaseClass==Job_Hunter) goto L_sHunter;
if (BaseClass==Job_Bard) goto L_sBard;
if (BaseClass==Job_Dancer) goto L_sDancer;
if (BaseClass==Job_BlackSmith) goto L_sBlackSmith;
if (BaseClass==Job_Priest) goto L_sPriest;
if (BaseClass==Job_Monk) goto L_sMonk;
close;
L_sSuperN:
skill 142,1,0;
close;
L_sSword:
skill 142,1,0;
skill 144,1,0;
skill 145,1,0;
skill 146,1,0;
close;
L_sMage:
skill 142,1,0;
skill 157,1,0;
close;
L_sArcher:
skill 142,1,0;
skill 147,1,0;
skill 148,1,0;
close;
L_sAcolyte:
skill 142,1,0;
skill 156,1,0;
close;
L_sMerchant:
skill 142,1,0;
skill 153,1,0;
skill 154,1,0;
skill 155,1,0;
close;
L_sThief:
skill 142,1,0;
skill 149,1,0;
skill 150,1,0;
skill 151,1,0;
skill 152,1,0;
close;
L_sKnight:
skill 1001,1,0;
close;
L_sCrusader:
skill 1002,1,0;
close;
L_sAssassin:
skill 1003,1,0;
skill 1004,1,0;
close;
L_sRogue:
skill 1005,1,0;
close;
L_sWizard:
skill 1006,1,0;
close;
L_sSage:
skill 1007,1,0;
close;
L_sHunter:
skill 1009,1,0;
close;
L_sBard:
skill 1010,1,0;
close;
L_sDancer:
skill 1011,1,0;
close;
L_sBlackSmith:
skill 1012,1,0;
skill 1013,1,0;
close;
L_sPriest:
skill 1014,1,0;
close;
L_sMonk:
skill 1015,1,0;
skill 1016,1,0;
close;
L_cantCh:
mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!";
close;

L_LvError:
mes "I'm sorry, you do not seem to have enough Job Levels";
mes "Please come again soon!";
close;

L_BvError:
mes "I'm sorry, you do not seem to have enough Base Levels";
mes "Please come again soon!";
close;

L_noReq:
mes "I'm sorry, you do not meet the requirements to change";
mes "Please come again soon!";
close;

L_max:
mes "I'm sorry, there are no further classes for your job.";
close;

L_stats:
mes "Would you like to remove your extra skill points?";

if (select("Yes:No") == 2) {
next;
mes "Ok then, bye?";
close;
}
next;
mes "Done";
set SkillPoint,0;
next;
goto L_Main;

L_remove:
mes "Please remove your cart,falcon or peco";
mes "Please come again soon!";
close;

L_Reset:
mes "[Reset Service]";
mes "Please select the service you want:";
next;
switch(select("Reset Skills:Reset Stats:Reset Both:Quit")) {
case 1:
mes "[Reset Service]";
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
ResetSkill;
close;
case 2:
mes "[Reset Service]";
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
ResetStatus;
close;
case 3:
mes "[Reset Service]";
mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
ResetSkill;
ResetStatus;
close;
case 4:
mes "Come again soon!";
close;
}

L_Rent:
mes "[Rental Services]";
mes "Hi, here you can rent Carts, Falcons, Mounts, and Mechanic Mado's";
next;
switch(select("Cart:Falcon:Mount:Mado"))
{
case 1:
if( (BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART") > 0 )
{
setcart;
close;
}
else
{
mes "[Rental Services]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
}
case 2:
if( (Class == Job_Ranger || Class == Job_Ranger_T) && checkriding() )
{
mes "Sorry " + strcharinfo(0) + ", you can't rent a Falcon if you have a Warg rented.";
close;
}
if( BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON") > 0 )
{
setfalcon;
close;
}
else
{
mes "[Rental Services]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
}
case 3:
mes "[Mount Rentals]";
if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_H || Class == Job_Baby_Rune) {
mes "Welcome. Would you like to rent a Dragon?";
next;
switch(select("Yes:No")) {
case 1:
//if (!getskilllv("RK_DRAGONTRAINING")) {
if (!getskilllv("KN_RIDING")) {
mes "[Mount Rentals]";
mes "Please learn how to ride a Dragon first.";
close;
}
if (checkriding()) {
mes "[Mount Rentals]";
mes "You already have a Dragon.";
close;
}
setdragon;
close;
case 2:
mes "[Mount Rentals]";
mes "I see. Then have a great day.";
close;
}
}

else if (Class == Job_Royal_Guard || Class == Job_Royal_Guard_H || Class == Job_Baby_Guard) {
mes "Welcome. Would you like to rent a Gryphon?";
next;
switch(select("Yes:No")) {
case 1:
if(!getskilllv("KN_RIDING")) {
mes "[Mount Rentals]";
mes "Please learn how to ride a Gryphon first.";
close;
}
else if (checkriding()) {
mes "[Mount Rentals]";
mes "You already have a Gryphon.";
close;
}
setriding;
close;
case 2:
mes "[Mount Rentals]";
mes "I see. Then have a great day.";
close;
}
}

else {
mes "Welcome. Would you like to rent a Mount?";
next;
switch(select("Yes:No")) {
case 1:
if( ( checkriding() == 0 )
{
setriding;
close;
}
else
{
mes "[Rental Services]";
mes "Sorry " + strcharinfo(0) + ", please make sure you aren't already on a mount";
close;
}
case 2:
mes "[Mount Rentals]";
mes "I see. Then have a great day.";
close;
}
}
}
case 4:
if( (Class == Job_Mechanic || Class == Job_Mechanic_T) && checkriding() == 0 )
{
setriding;
close;
}
else
{
mes "[Rental Services]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job.";
close;
}
}


}

OnInit:
// Variable Setup
set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-yes)
set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
end;
}
[/codeBOX]

I think I am missing a bracket somewhere, but I for the life of me, can't find it.

[code]

[Error]: Loading NPC file: npc/custom/ClassMaster.txt
script error on npc/custom/ClassMaster.txt line 552
parse_syntax: unexpected 'case'
547 : case 2:
548 : mes "[Mount Rentals]";
549 : mes "I see. Then have a great day.";
550 : close;
551 : }
* 552 : 'c'ase 4:
553 : if( (Class == Job_Mechanic || Class == Job_Mechanic_T) && checkriding() == 0 )
554 : {
555 : setriding;
556 : close;
557 : }
[/code]

Edited by Brian
Link to comment
Share on other sites

4 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  50
  • Topics Per Day:  0.01
  • Content Count:  308
  • Reputation:   3
  • Joined:  12/18/11
  • Last Seen:  

make it case 3 not 4 to make it ascending

Link to comment
Share on other sites


  • Group:  Development Manager
  • Topic Count:  56
  • Topics Per Day:  0.01
  • Content Count:  732
  • Reputation:   525
  • Joined:  12/13/11
  • Last Seen:  

You have one extra '}' that's above "case 4:".

case 2:
mes "[Mount Rentals]";
mes "I see. Then have a great day.";
close;
}
}
}
case 4:
if( (Class == Job_Mechanic || Class == Job_Mechanic_T) && checkriding() == 0 )
{
setriding;
close;
}

Should be:

case 2:
mes "[Mount Rentals]";
mes "I see. Then have a great day.";
close;
}
}
case 4:
if( (Class == Job_Mechanic || Class == Job_Mechanic_T) && checkriding() == 0 )
{
setriding;
close;
}

That's just a straight look at it and counting the brackets. Not sure.

PS: If you tabbed in your stuff it would make it easier to read and find these errors!

Edited by Aleos
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  94
  • Topics Per Day:  0.02
  • Content Count:  2192
  • Reputation:   252
  • Joined:  11/11/11
  • Last Seen:  

If you're missing a bracket, the Map server should be spitting out an error indicating where you're missing it o_O

Link to comment
Share on other sites


  • Group:  Development Manager
  • Topic Count:  56
  • Topics Per Day:  0.01
  • Content Count:  732
  • Reputation:   525
  • Joined:  12/13/11
  • Last Seen:  

In this case though the extra bracket is breaking out of the switch statement and causing it to end early. Then the next line that gets read is the "case 4:" line which is where the error is coming from.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...