Jump to content
  • 0

All in One NPC Help,Some Other thing Aswell Help Thank you


SuperMario

Question


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

Well i have this All In One NPC Not done by me All Credit go to owner well here it is

I Will like to know how i can add a Opotion that says Save

To Save in Prontera Or any city that the kafra is located in (All In One Npc)

If you can tell me where and what to add that'll help alot cause am a big newbie in Scripting

Also This is probably wrong section but can anyone lead me to a guide that teaches how to add a Pre-Made custom map of a map thats already made by gravity like Prontera i want to add a custom map of it.

Am not sure if its the same method of adding a regular custom map but can someone direct me to that please thank you in advance!!

prontera,158,193,4 script Kafra Employee 435,{
mes "[Kafra Employee]";
mes "Hi, What u Want to do?.";
next;
switch(select("Rental:Platinum Skills:Reset Stat:Remove Card")) {
case 1:
mes "[Kafra Employee]";
mes "Please Choose What You Want To Rent.";
next;
switch(select("Cart:Falcon:Peco")) {
 case 1:
  if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) {
setcart;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
 case 2:
  if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) {
setfalcon;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }	
 case 3:
  if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) {
setriding;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
}
case 2:
mes "[Kafra Employee]";
mes "Do you really want the special skills available to your job.";
mes "Would you like these skills now?";
next;
if (select("Yes Please:No") == 2) {
 mes "[Kafra EmployeeC]";
 mes "Have a nice day... >.>";
 close;
}
skill 142,1,0; // First Aid
if (BaseClass == Job_Novice) {
 skill 143,1,0; // Play Dead
} else if (BaseClass == Job_Swordman) {
 skill 144,1,0; // Moving HP-Recovery
 skill 145,1,0; // Fatal Blow
 skill 146,1,0; // Auto Berserk
} else if (BaseClass == Job_Mage) {
 skill 157,1,0; // Energy Coat
} else if (BaseClass == Job_Archer) {
 skill 147,1,0; // Arrow Crafting
 skill 148,1,0; // Arrow Repel
} else if (BaseClass == Job_Merchant) {
 skill 153,1,0; // Cart Revolution
 skill 154,1,0; // Change Cart
 skill 155,1,0; // Crazy Uproar
} else if (BaseClass == Job_Thief) {
 skill 149,1,0; // Sand Attack
 skill 150,1,0; // Back Slide
 skill 151,1,0; // Find Stone
 skill 152,1,0; // Stone Fling
} else if (BaseClass == Job_Acolyte) {
 skill 156,1,0; // Holy Light
}
if (Class == Job_Knight || Class == Job_Lord_Knight) {
 skill 1001,1,0; // Charge Attack
} else if (Class == Job_Crusader || Class == Job_Paladin) {
 skill 1002,1,0; // Shrink
} else if (Class == Job_Wizard || Class == Job_High_Wizard) {
 skill 1006,1,0; // Sight Blaster
} else if (Class == Job_Sage || Class == Job_Professor) {
 skill 1007,1,0; // Create Elemental Converter
 skill 1008,1,0; // Elemental Change Water
 skill 1017,1,0; // Elemental Change Earth
 skill 1018,1,0; // Elemental Change Fire
 skill 1019,1,0; // Elemental Change Wind
} else if (Class == Job_Hunter || Class == Job_Sniper) {
 skill 1009,1,0; // Phantasmic Arrow
} else if (Class == Job_Bard || Class == Job_Clown) {
 skill 1010,1,0; // Pang Voice
} else if (Class == Job_Dancer || Class == Job_Gypsy) {
 skill 1011,1,0; // Wink of Charm
} else if (Class == Job_Blacksmith || Class == Job_Whitesmith) {
 skill 1012,1,0; // Unfair Trick
 skill 1013,1,0; // Greed
} else if (Class == Job_Alchemist || Class == Job_Creator) {
 skill 238,1,0; // Bioethics
} else if (Class == Job_Assassin || Class == Job_Assassin_Cross) {
 skill 1003,1,0; // Sonic Acceleration
 skill 1004,1,0; // Throw Venom Knife
} else if (Class == Job_Rogue || Class == Job_Stalker) {
 skill 1005,1,0; // Close Confine
} else if (Class == Job_Priest || Class == Job_High_Priest) {
 skill 1014,1,0; // Redemptio
} else if (Class == Job_Monk || Class == Job_Champion) {
 skill 1015,1,0; // Ki Translation
 skill 1016,1,0; // Ki Explosion
}
mes "[Kafra Employee]";
mes "There you go!";
close;
case 3:
mes "[Kafra Employee]";
mes "Reset Stats: 5,000z";
mes "Reset Skills: 5,000z";
mes "Reset Both: 9,000z";
mes "Please select the service you want:";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) {
 case 1:
  mes "[Kafra Employee]";
  if (Zeny < 5000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-5000;
  ResetSkill;
  close;
 case 2:
  mes "[Kafra Employee]";
  if (Zeny < 5000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-5000;
  ResetStatus;
  close;
 case 3:
  mes "[Kafra Employee]";
  if (Zeny < 9000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-9000;
  ResetSkill;
  ResetStatus;
  close;
 case 4:
  close;
}
case 4:
mes "[Kafra Employee]";
mes "Would you like to remove cards that you have compounded onto your equipment?";
next;
switch(select("Yes, it does.:What do you charge?:No thanks.")) {
 case 1:
  mes "[Kafra Employee]";
  mes "Very well. Which item shall I examine for you?";
  next;
  setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
  set .@menu$,"";
  for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
  {
if( getequipisequiped(.@i) )
 set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
set .@menu$, .@menu$ + ":";
  }
  set .@part,select(.@menu$);
  if(!getequipisequiped(.@part)) {
mes "[Kafra Employee]";
mes "Young one... Your not wearing anything there that I can remove cards from.";
close;
  }
  if(getequipcardcnt(.@part) == 0) {
mes "[Kafra Employee]";
mes "Young one... There are no cards compounded on this item. I can do nothing with it, I'm afraid.";
close;
  }
  set .@cardcount,getequipcardcnt(.@part);

  if (!checkweight(1202,(.@cardcount+1))) {
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
mes "you're carrying too much";
mes "stuff. Put your extra items in";
mes "Kafra Storage and come again~";
close;
  }
  mes "[Kafra Employee]";
  mes "This item has " + .@cardcount + " cards compounded on it. To perform my magic, I will need " + (200000+(.@cardcount * 25000)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
  next;
  if(select("Very well. Do it.:Nevermind.") == 2) {
mes "[Kafra Employee]";
mes "Very well. Return at once if you seek my services.";
close;
  }
  if((zeny < (200000+(.@cardcount * 25000))) || (countitem(1000) < 1) || (countitem(715) < 1)) {
mes "[Kafra Employee]";
mes "You do not have all the items I require to work my magic, child. Come again when you do.";
close;
  }
  mes "[Kafra Employee]";
  mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?";
  next;
  switch(select("I changed my mind about this.:The item.:The cards.")) {
case 1:
 mes "[Kafra Employee]";
 mes "Very well. Return at once if you seek my services.";
 close;
case 2:
 set .@failtype,1;
 break;
case 3:
 set .@failtype,2;
  }
  mes "[Kafra Employee]";
  mes "Very well. I shall begin.";
  set zeny,zeny - (200000+(.@cardcount * 25000));
  delitem 1000,1;
  delitem 715,1;

  // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt
  // First value = Total failure chance (item and cards destroyed)
  // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe)
  // Third value = Harmless failure chance (all that's lost is your investment)
  set .@failchance,rand(100);
 /*
  if(.@failchance < 2) {
next;
failedremovecards .@part,0;
mes "[Kafra Employee]";
mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
close;
  }
  if(.@failchance < 8) {
if (.@failtype == 1) {
 next;
 failedremovecards .@part,1;	
 mes "[Kafra Employee]";
 mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay.";
 close;
}
if (.@failtype == 2) {
 next;
 failedremovecards .@part,2;
 mes "[Kafra Employee]";
 mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
 close;
}
  }
 */
  if(.@failchance < 10) {
next;
failedremovecards .@part,3;  
mes "[Kafra Employee]";
mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
close;
  }
  next;
  successremovecards .@part;
  mes "[Kafra Employee]";
  mes "The process was a success. Here are your cards and your item. Farewell.";
  close;  
 case 2:
  mes "[Kafra Employee]";
  mes "I charge a flat fee of 200000 zeny, plus 25000 zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic.";
  close;
 case 3:
  mes "[Kafra Employee]";
  mes "Very well. Return at once if you seek my services.";
  close;
}
}
}
}

Edited by Euphy
Codeboxed
Link to comment
Share on other sites

13 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  118
  • Topics Per Day:  0.03
  • Content Count:  1942
  • Reputation:   197
  • Joined:  01/08/12
  • Last Seen:  

just try to add this.

M_Save:

savepoint "your map",x,y;

callfunc "F_KafEnd",0,1,"in the your map";

}

M_Save:

savepoint "prontera",156,172;

callfunc "F_KafEnd",0,1,"in the city of Prontera";

this save point is located at the center of Prontera.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

But do you know where to add this

M_Save:

savepoint "prontera",156,172;

callfunc "F_KafEnd",0,1,"in the city of Prontera";

Like Where it closes etc? and how

close;

}

}

}

}

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:  

Try this:


prontera,158,193,4 script Kafra Employee 435,{
mes "[Kafra Employee]";
mes "Hi, What u Want to do?.";
next;
switch(select("Rental:Platinum Skills:Reset Stat:Remove Card:Save Respawn")) {
case 1:
mes "[Kafra Employee]";
mes "Please Choose What You Want To Rent.";
next;
switch(select("Cart:Falcon:Peco")) {
 case 1:
  if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) {
setcart;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
 case 2:
  if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) {
setfalcon;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  } 
 case 3:
  if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) {
setriding;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
}
case 2:
mes "[Kafra Employee]";
mes "Do you really want the special skills available to your job.";
mes "Would you like these skills now?";
next;
if (select("Yes Please:No") == 2) {
 mes "[Kafra EmployeeC]";
 mes "Have a nice day... >.>";
 close;
}
skill 142,1,0; // First Aid
if (BaseClass == Job_Novice) {
 skill 143,1,0; // Play Dead
} else if (BaseClass == Job_Swordman) {
 skill 144,1,0; // Moving HP-Recovery
 skill 145,1,0; // Fatal Blow
 skill 146,1,0; // Auto Berserk
} else if (BaseClass == Job_Mage) {
 skill 157,1,0; // Energy Coat
} else if (BaseClass == Job_Archer) {
 skill 147,1,0; // Arrow Crafting
 skill 148,1,0; // Arrow Repel
} else if (BaseClass == Job_Merchant) {
 skill 153,1,0; // Cart Revolution
 skill 154,1,0; // Change Cart
 skill 155,1,0; // Crazy Uproar
} else if (BaseClass == Job_Thief) {
 skill 149,1,0; // Sand Attack
 skill 150,1,0; // Back Slide
 skill 151,1,0; // Find Stone
 skill 152,1,0; // Stone Fling
} else if (BaseClass == Job_Acolyte) {
 skill 156,1,0; // Holy Light
}
if (Class == Job_Knight || Class == Job_Lord_Knight) {
 skill 1001,1,0; // Charge Attack
} else if (Class == Job_Crusader || Class == Job_Paladin) {
 skill 1002,1,0; // Shrink
} else if (Class == Job_Wizard || Class == Job_High_Wizard) {
 skill 1006,1,0; // Sight Blaster
} else if (Class == Job_Sage || Class == Job_Professor) {
 skill 1007,1,0; // Create Elemental Converter
 skill 1008,1,0; // Elemental Change Water
 skill 1017,1,0; // Elemental Change Earth
 skill 1018,1,0; // Elemental Change Fire
 skill 1019,1,0; // Elemental Change Wind
} else if (Class == Job_Hunter || Class == Job_Sniper) {
 skill 1009,1,0; // Phantasmic Arrow
} else if (Class == Job_Bard || Class == Job_Clown) {
 skill 1010,1,0; // Pang Voice
} else if (Class == Job_Dancer || Class == Job_Gypsy) {
 skill 1011,1,0; // Wink of Charm
} else if (Class == Job_Blacksmith || Class == Job_Whitesmith) {
 skill 1012,1,0; // Unfair Trick
 skill 1013,1,0; // Greed
} else if (Class == Job_Alchemist || Class == Job_Creator) {
 skill 238,1,0; // Bioethics
} else if (Class == Job_Assassin || Class == Job_Assassin_Cross) {
 skill 1003,1,0; // Sonic Acceleration
 skill 1004,1,0; // Throw Venom Knife
} else if (Class == Job_Rogue || Class == Job_Stalker) {
 skill 1005,1,0; // Close Confine
} else if (Class == Job_Priest || Class == Job_High_Priest) {
 skill 1014,1,0; // Redemptio
} else if (Class == Job_Monk || Class == Job_Champion) {
 skill 1015,1,0; // Ki Translation
 skill 1016,1,0; // Ki Explosion
}
mes "[Kafra Employee]";
mes "There you go!";
close;
case 3:
mes "[Kafra Employee]";
mes "Reset Stats: 5,000z";
mes "Reset Skills: 5,000z";
mes "Reset Both: 9,000z";
mes "Please select the service you want:";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) {
 case 1:
  mes "[Kafra Employee]";
  if (Zeny < 5000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-5000;
  ResetSkill;
  close;
 case 2:
  mes "[Kafra Employee]";
  if (Zeny < 5000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-5000;
  ResetStatus;
  close;
 case 3:
  mes "[Kafra Employee]";
  if (Zeny < 9000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-9000;
  ResetSkill;
  ResetStatus;
  close;
 case 4:
  close;
}
case 4:
mes "[Kafra Employee]";
mes "Would you like to remove cards that you have compounded onto your equipment?";
next;
switch(select("Yes, it does.:What do you charge?:No thanks.")) {
 case 1:
  mes "[Kafra Employee]";
  mes "Very well. Which item shall I examine for you?";
  next;
  setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
  set .@menu$,"";
  for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
  {
if( getequipisequiped(.@i) )
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
set .@menu$, .@menu$ + ":";
  }
  set .@part,select(.@menu$);
  if(!getequipisequiped(.@part)) {
mes "[Kafra Employee]";
mes "Young one... Your not wearing anything there that I can remove cards from.";
close;
  }
  if(getequipcardcnt(.@part) == 0) {
mes "[Kafra Employee]";
mes "Young one... There are no cards compounded on this item. I can do nothing with it, I'm afraid.";
close;
  }
  set .@cardcount,getequipcardcnt(.@part);

  if (!checkweight(1202,(.@cardcount+1))) {
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
mes "you're carrying too much";
mes "stuff. Put your extra items in";
mes "Kafra Storage and come again~";
close;
  }
  mes "[Kafra Employee]";
  mes "This item has " + .@cardcount + " cards compounded on it. To perform my magic, I will need " + (200000+(.@cardcount * 25000)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
  next;
  if(select("Very well. Do it.:Nevermind.") == 2) {
mes "[Kafra Employee]";
mes "Very well. Return at once if you seek my services.";
close;
  }
  if((zeny < (200000+(.@cardcount * 25000))) || (countitem(1000) < 1) || (countitem(715) < 1)) {
mes "[Kafra Employee]";
mes "You do not have all the items I require to work my magic, child. Come again when you do.";
close;
  }
  mes "[Kafra Employee]";
  mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?";
  next;
  switch(select("I changed my mind about this.:The item.:The cards.")) {
case 1:
mes "[Kafra Employee]";
mes "Very well. Return at once if you seek my services.";
close;
case 2:
set .@failtype,1;
break;
case 3:
set .@failtype,2;
  }
  mes "[Kafra Employee]";
  mes "Very well. I shall begin.";
  set zeny,zeny - (200000+(.@cardcount * 25000));
  delitem 1000,1;
  delitem 715,1;

  // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt
  // First value = Total failure chance (item and cards destroyed)
  // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe)
  // Third value = Harmless failure chance (all that's lost is your investment)
  set .@failchance,rand(100);
 /*
  if(.@failchance < 2) {
next;
failedremovecards .@part,0;
mes "[Kafra Employee]";
mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
close;
  }
  if(.@failchance < 8) {
if (.@failtype == 1) {
next;
failedremovecards .@part,1; 
mes "[Kafra Employee]";
mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay.";
close;
}
if (.@failtype == 2) {
next;
failedremovecards .@part,2;
mes "[Kafra Employee]";
mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
close;
}
  }
 */
  if(.@failchance < 10) {
next;
failedremovecards .@part,3;   
mes "[Kafra Employee]";
mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
close;
  }
  next;
  successremovecards .@part;
  mes "[Kafra Employee]";
  mes "The process was a success. Here are your cards and your item. Farewell.";
  close;  
 case 2:
  mes "[Kafra Employee]";
  mes "I charge a flat fee of 200000 zeny, plus 25000 zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic.";
  close;
 case 3:
  mes "[Kafra Employee]";
  mes "Very well. Return at once if you seek my services.";
  close;
} // Removal of Cards
case 5:
next;
mes "[Kafra Employee]";
mes "Your spawn point has been saved here in the center of Prontera.
savepoint "prontera",156,172;
next;
mes "[Kafra Employee]";
mes "Thank you for using Kafra services!";
close;
} // Closing Bracket of switch(select("Rental:Platinum Skills:Reset Stat:Remove Card:Save Respawn")) 
} // NPC Closing Bracket

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

Hmm I get this error now

[Error]: npc_parsesrcfile: File not found 'npc/custom/request.txt'.

[Error]: npc_parsesrcfile: Unable to parse, probably a missing or extra TAB in file 'npc/custom/short3.txt', line '2'. Skipping line...

* w1=prontera,158,193,4

* w2=script Kafra Employee

* w3=435,{

* w4=

[Error]: npc_parsesrcfile: Unknown syntax in file 'npc/custom/short3.txt', line '3'. Stopping...

* w1=mes "[Kafra Employee]";

* w2=

* w3=

* w4=

Heres the Script

prontera,158,193,4 script Kafra Employee 435,{
mes "[Kafra Employee]";
mes "Hi, What u Want to do?.";
next;
switch(select("Rental:Platinum Skills:Reset Stat:Remove Card:Save Respawn")) {
case 1:
mes "[Kafra Employee]";
mes "Please Choose What You Want To Rent.";
next;
switch(select("Cart:Falcon:Peco")) {
 case 1:
  if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) {
setcart;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
 case 2:
  if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) {
setfalcon;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
 case 3:
  if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) {
setriding;
close;
  }else{
mes "[Kafra Employee]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
  }
}
case 2:
mes "[Kafra Employee]";
mes "Do you really want the special skills available to your job.";
mes "Would you like these skills now?";
next;
if (select("Yes Please:No") == 2) {
 mes "[Kafra EmployeeC]";
 mes "Have a nice day... >.>";
 close;
}
skill 142,1,0; // First Aid
if (BaseClass == Job_Novice) {
 skill 143,1,0; // Play Dead
} else if (BaseClass == Job_Swordman) {
 skill 144,1,0; // Moving HP-Recovery
 skill 145,1,0; // Fatal Blow
 skill 146,1,0; // Auto Berserk
} else if (BaseClass == Job_Mage) {
 skill 157,1,0; // Energy Coat
} else if (BaseClass == Job_Archer) {
 skill 147,1,0; // Arrow Crafting
 skill 148,1,0; // Arrow Repel
} else if (BaseClass == Job_Merchant) {
 skill 153,1,0; // Cart Revolution
 skill 154,1,0; // Change Cart
 skill 155,1,0; // Crazy Uproar
} else if (BaseClass == Job_Thief) {
 skill 149,1,0; // Sand Attack
 skill 150,1,0; // Back Slide
 skill 151,1,0; // Find Stone
 skill 152,1,0; // Stone Fling
} else if (BaseClass == Job_Acolyte) {
 skill 156,1,0; // Holy Light
}
if (Class == Job_Knight || Class == Job_Lord_Knight) {
 skill 1001,1,0; // Charge Attack
} else if (Class == Job_Crusader || Class == Job_Paladin) {
 skill 1002,1,0; // Shrink
} else if (Class == Job_Wizard || Class == Job_High_Wizard) {
 skill 1006,1,0; // Sight Blaster
} else if (Class == Job_Sage || Class == Job_Professor) {
 skill 1007,1,0; // Create Elemental Converter
 skill 1008,1,0; // Elemental Change Water
 skill 1017,1,0; // Elemental Change Earth
 skill 1018,1,0; // Elemental Change Fire
 skill 1019,1,0; // Elemental Change Wind
} else if (Class == Job_Hunter || Class == Job_Sniper) {
 skill 1009,1,0; // Phantasmic Arrow
} else if (Class == Job_Bard || Class == Job_Clown) {
 skill 1010,1,0; // Pang Voice
} else if (Class == Job_Dancer || Class == Job_Gypsy) {
 skill 1011,1,0; // Wink of Charm
} else if (Class == Job_Blacksmith || Class == Job_Whitesmith) {
 skill 1012,1,0; // Unfair Trick
 skill 1013,1,0; // Greed
} else if (Class == Job_Alchemist || Class == Job_Creator) {
 skill 238,1,0; // Bioethics
} else if (Class == Job_Assassin || Class == Job_Assassin_Cross) {
 skill 1003,1,0; // Sonic Acceleration
 skill 1004,1,0; // Throw Venom Knife
} else if (Class == Job_Rogue || Class == Job_Stalker) {
 skill 1005,1,0; // Close Confine
} else if (Class == Job_Priest || Class == Job_High_Priest) {
 skill 1014,1,0; // Redemptio
} else if (Class == Job_Monk || Class == Job_Champion) {
 skill 1015,1,0; // Ki Translation
 skill 1016,1,0; // Ki Explosion
}
mes "[Kafra Employee]";
mes "There you go!";
close;
case 3:
mes "[Kafra Employee]";
mes "Reset Stats: 5,000z";
mes "Reset Skills: 5,000z";
mes "Reset Both: 9,000z";
mes "Please select the service you want:";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) {
 case 1:
  mes "[Kafra Employee]";
  if (Zeny < 5000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-5000;
  ResetSkill;
  close;
 case 2:
  mes "[Kafra Employee]";
  if (Zeny < 5000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-5000;
  ResetStatus;
  close;
 case 3:
  mes "[Kafra Employee]";
  if (Zeny < 9000) {
mes "Sorry, you don't have enough Zeny.";
close;
  }
  mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
  set Zeny,zeny-9000;
  ResetSkill;
  ResetStatus;
  close;
 case 4:
  close;
}
case 4:
mes "[Kafra Employee]";
mes "Would you like to remove cards that you have compounded onto your equipment?";
next;
switch(select("Yes, it does.:What do you charge?:No thanks.")) {
 case 1:
  mes "[Kafra Employee]";
  mes "Very well. Which item shall I examine for you?";
  next;
  setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
  set .@menu$,"";
  for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
  {
if( getequipisequiped(.@i) )
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
set .@menu$, .@menu$ + ":";
  }
  set .@part,select(.@menu$);
  if(!getequipisequiped(.@part)) {
mes "[Kafra Employee]";
mes "Young one... Your not wearing anything there that I can remove cards from.";
close;
  }
  if(getequipcardcnt(.@part) == 0) {
mes "[Kafra Employee]";
mes "Young one... There are no cards compounded on this item. I can do nothing with it, I'm afraid.";
close;
  }
  set .@cardcount,getequipcardcnt(.@part);   if (!checkweight(1202,(.@cardcount+1))) {
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
mes "you're carrying too much";
mes "stuff. Put your extra items in";
mes "Kafra Storage and come again~";
close;
  }
  mes "[Kafra Employee]";
  mes "This item has " + .@cardcount + " cards compounded on it. To perform my magic, I will need " + (200000+(.@cardcount * 25000)) + " zeny, a ^0000FFStar Crumb^000000, and a ^0000FFYellow Gemstone^000000.";
  next;
  if(select("Very well. Do it.:Nevermind.") == 2) {
mes "[Kafra Employee]";
mes "Very well. Return at once if you seek my services.";
close;
  }
  if((zeny < (200000+(.@cardcount * 25000))) || (countitem(1000) < 1) || (countitem(715) < 1)) {
mes "[Kafra Employee]";
mes "You do not have all the items I require to work my magic, child. Come again when you do.";
close;
  }
  mes "[Kafra Employee]";
  mes "Before I begin, I must warn you--I may fail. If I do, I may destroy the cards, the item, or both. I do not give refunds. That being said, which is more important to you: The cards, or the item?";
  next;
  switch(select("I changed my mind about this.:The item.:The cards.")) {
case 1:
mes "[Kafra Employee]";
mes "Very well. Return at once if you seek my services.";
close;
case 2:
set .@failtype,1;
break;
case 3:
set .@failtype,2;
  }
  mes "[Kafra Employee]";
  mes "Very well. I shall begin.";
  set zeny,zeny - (200000+(.@cardcount * 25000));
  delitem 1000,1;
  delitem 715,1;
  // Replace the constants in the next 3 lines with failure chance values defined in refine_db.txt
  // First value = Total failure chance (item and cards destroyed)
  // Second value = Partial failure chance (one or the other is destroyed, player decides which one is safe)
  // Third value = Harmless failure chance (all that's lost is your investment)
  set .@failchance,rand(100);
 /*
  if(.@failchance < 2) {
next;
failedremovecards .@part,0;
mes "[Kafra Employee]";
mes "The process was a total failure. I am afraid the item and the cards were destroyed.";
close;
  }
  if(.@failchance < 8) {
if (.@failtype == 1) {
next;
failedremovecards .@part,1;
mes "[Kafra Employee]";
mes "While I have managed to remove the cards from the item, they were destroyed in the process. The item, however, is okay.";
close;
}
if (.@failtype == 2) {
next;
failedremovecards .@part,2;
mes "[Kafra Employee]";
mes "Most unfortunate. I succeeded at removing the cards, but the item itself was destroyed in the process.";
close;
}
  }
 */
  if(.@failchance < 10) {
next;
failedremovecards .@part,3;  
mes "[Kafra Employee]";
mes "I have failed to remove the cards. Luckily, however, both the item and the cards are still okay.";
close;
  }
  next;
  successremovecards .@part;
  mes "[Kafra Employee]";
  mes "The process was a success. Here are your cards and your item. Farewell.";
  close;
 case 2:
  mes "[Kafra Employee]";
  mes "I charge a flat fee of 200000 zeny, plus 25000 zeny for each card I remove from the item. In addition, I need a star crumb and a yellow gemstone to work my magic.";
  close;
 case 3:
  mes "[Kafra Employee]";
  mes "Very well. Return at once if you seek my services.";
  close;
} // Removal of Cards
case 5:
next;
mes "[Kafra Employee]";
mes "Your spawn point has been saved here in the center of Prontera.
savepoint "prontera",156,172;
next;
mes "[Kafra Employee]";
mes "Thank you for using Kafra services!";
close;
} // Closing Bracket of switch(select("Rental:Platinum Skills:Reset Stat:Remove Card:Save Respawn"))
} // NPC Closing Bracket

Edited by Arcenciel
Codeboxed
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

The error message is written in plain English. You're missing tabs in the header.

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

New error

[Error]: Loading NPC file: npc/custom/short3.txt

script error on npc/custom/short3.txt line 279

Unexpected newline at string.

274 : } // Removal of Cards

275 : case 5:

276 : next;

277 : mes "[Kafra Employee]";

278 : mes "Your spawn point has been saved here in the center of Prontera.

* 279 : savepoint "prontera",156,172;

280 : next;

281 : mes "[Kafra Employee]";

282 : mes "Thank you for using Kafra services!";

283 : close;

284 : } // Closing Bracket of switch(select("Rental:Platinum Skills:Reset Stat:Remove Card:Save Respawn"))

same script

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

Unexpected newline at string.

It means that a string was being processed, and there was a line break before the string ended. Try to figure it out... o.o;

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

No idea dont know blank about scripting or errors of scripting

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  234
  • Reputation:   19
  • Joined:  06/15/12
  • Last Seen:  

[Error]: Loading NPC file: npc/custom/short3.txt

script error on npc/custom/short3.txt line 279

Unexpected newline at string.

274 : } // Removal of Cards

275 : case 5:

276 : next;

277 : mes "[Kafra Employee]";

278 : mes "Your spawn point has been saved here in the center of Prontera.

* 279 : savepoint "prontera",156,172;

280 : next;

281 : mes "[Kafra Employee]";

282 : mes "Thank you for using Kafra services!";

283 : close;

284 : } // Closing Bracket of switch(select("Rental:Platinum Skills:Reset Stat:Remove Card:Save Respawn"))

Look closer at line 278-279.

Even the map server shows you where to look...

@euphy lol at your tar vomiting rainbows....

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  2997
  • Reputation:   1130
  • Joined:  05/27/12
  • Last Seen:  

@euphy lol at your tar vomiting rainbows....

Feel free to join the club, *link!*

@SuperMario:

If you still can't figure it out,

mes "Your spawn point has been saved here in the center of Prontera.";

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

I delete it or what><?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  234
  • Reputation:   19
  • Joined:  06/15/12
  • Last Seen:  

I delete it or what><?

Are you serious?

Your Problem:

278 : mes "Your spawn point has been saved here in the center of Prontera.

The Fix:

278 : mes "Your spawn point has been saved here in the center of Prontera.";

You should be able to see a difference there you know!?

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  5
  • Topics Per Day:  0.00
  • Content Count:  19
  • Reputation:   0
  • Joined:  06/23/12
  • Last Seen:  

Thank you

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...