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;
}
}
}
}
Question
SuperMario
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!!
Edited by EuphyCodeboxed
Link to comment
Share on other sites
13 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.