ohh is this wafflero? i like wafflero
ok im gonna make mine:
- script reborn1sttrigger -1,{
OnClock1200:
OnClock0000:
announce "I have arrived!",0;
enablenpc "FirstReborn";
end;
OnClock1210:
OnClock0010:
announce "If that's all ill be going now",0;
disablenpc "FirstReborn";
end;
OnInit:
disablenpc "FirstReborn";
end;
}
prontera,151,180,4 script FirstReborn 100,{
set .@maxblevel , 99;
set .@maxjlevel , 70;
set .@reqitem1, 512;
set .@reqitem2, 513;
set .@reqitem3, 514;
set .@reqitem1amt, 1;
set .@reqitem2amt, 1;
set .@reqitem3amt, 1;
mes "[FirstReborn]";
if(reborncount) {
mes "You have finish reborn!";
close;
}
if(Upper != 1 || BaseLevel < .@maxblevel || JobLevel < .@maxjlevel || countitem(.@reqitem1) < .@reqitem1amt
|| countitem(.@reqitem2) < .@reqitem2amt || countitem(.@reqitem3) < .@reqitem3amt ) {
mes "You need to be Base Lvl: "+.@maxblevel;
mes "You need to be Job Lvl: "+.@maxjlevel;
mes "You need to have "+.@reqitem1amt+" "+getitemname(.@reqitem1);
mes "You need to have "+.@reqitem2amt+" "+getitemname(.@reqitem2);
mes "You need to have "+.@reqitem3amt+" "+getitemname(.@reqitem3);
mes "You dont have enough requirements!";
close;
}
mes "Congratulations you are now reborn!";
delitem .@reqitem1,.@reqitem1amt;
delitem .@reqitem2,.@reqitem2amt;
delitem .@reqitem3,.@reqitem3amt;
jobchange Job_Novice_High;
resetlvl(1);
skill 142,1,0;
skill 143,1,0;
set reborncount, reborncount+1;
ResetStatus;
set StatusPoint, StatusPoint+(reborncount*100);
announce strcharinfo(0)+" has been reborn.",0;
close;
}
prontera,155,180,4 script SecondReborn 100,{
set .@maxblevel , 99;
set .@maxjlevel , 70;
set .@reqitem, 751;
set .@reqitemamt, 5;
set .@rebornmax, 10;
mes "[secondReborn]";
if(reborncount < 1) {
mes "You didn't take first reborn yet.";
close;
}
if(reborncount >= .@rebornmax) {
mes "You cannot reborn anymore.";
close;
}
if(Upper != 1 || BaseLevel < .@maxblevel || JobLevel < .@maxjlevel || countitem(.@reqitem) < .@reqitemamt ) {
mes "You need to be Base Lvl: "+.@maxblevel;
mes "You need to be Job Lvl: "+.@maxjlevel;
mes "You need to have "+.@reqitemamt+" "+getitemname(.@reqitem);
mes "You dont have enough requirements!";
close;
}
mes "Congratulations you are now reborn!";
delitem .@reqitem,.@reqitemamt;
jobchange Job_Novice_High;
resetlvl(1);
skill 142,1,0;
skill 143,1,0;
set reborncount, reborncount+1;
ResetStatus;
set StatusPoint, StatusPoint+(reborncount*100);
announce strcharinfo(0)+" has been reborn "+reborncount+" times.",0;
close;
}
prontera,159,180,4 script RebornLadder 100,{
set .@count, query_sql ("SELECT char_id,value FROM `global_reg_value` WHERE str='reborncount' ORDER BY value DESC",.@charid,.@reborncount);
mes "[RebornLadder]";
for( set .@i, 0; .@i < .@count; set .@i, .@i+1) {
query_sql "SELECT `name` FROM `char` WHERE char_id="+.@charid[.@i]+"",.@charname$;
mes .@charname$+" "+.@reborncount[.@i];
}
close;
}
prontera,150,193,4 script Reset Girl 124,{
set .rskill,5000; // Set value in zeny for skill reset here
set .rstat,5000; // Set value in zeny for stat reset here
set .rboth,9000; // Set value for "package deal" (i.e.: reseting both) here.
mes "[Reset Girl]";
mes "I am a Reset Girl.";
mes "Reset Stats: "+ .rstat +"z";
mes "Reset Skills: "+ .rskill +"z";
mes "Reset Both: "+ .rboth +"z";
mes "Please select the service you want:";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) {
case 1:
mes "[Reset Girl]";
if (Zeny < .rskill) {
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-.rskill;
ResetSkill;
close;
case 2:
mes "[Reset Girl]";
if (Zeny < .rstat) {
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-.rstat;
ResetStatus;
set StatusPoint, StatusPoint+(reborncount*100);
close;
case 3:
mes "[Reset Girl]";
if (Zeny < .rboth) {
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-.rboth;
ResetSkill;
ResetStatus;
set StatusPoint, StatusPoint+(reborncount*100);
close;
case 4:
mes "Come again soon!";
close;
}
}
This is now fixed using Chris' ROEnglishRE Client Support/Renewal/2020-09-02/data/msgstringtable.txt
deathscythe13's post in PVP Point was marked as the answer
- script pvppoint -1,{
OnInit:
set .killaddpoint, 2; //points to add when kill
set .diedeductpoint, 1; //points to deduct when died
end;
OnPCKillEvent:
getmapxy .@map$,.@mapx,.@mapy,0;
if ( .@map$ != "guild_vs3" && .@map$ != "pvp_y_1-2" && .@map!="prtg_cas01") end;
if(getcharid(3)==killedrid) end;
set points, points+.killaddpoint;
dispbottom "You killed "+rid2name(killedrid)+" you gained "+.killaddpoint+" points";
attachrid(killedrid);
set points, points-.diedeductpoint;
dispbottom "You are killed by "+rid2name(killerrid)+" you lost "+.diedeductpoint+" points";
end;
}
if(Class != 4108) goto L_cant; means only Class "Baby Shadow Chaser" can enter the event otherwise it goes directly to L_cant;
should be: if(Class!=0) goto L_cant; replace 4108 to 0
or try this: if(Class != 4108 || Class != 0)
deathscythe13's post in Boss Kill was marked as the answer
- script BOSSKILL -1,{
OnNPCKillEvent:
setarray .BOSSID[0],1511,1647,1785,1630,1399,1039,1874,2068,1272,1719,1046,1389,1112,1115,1957,
1418,1871,1252,1768,1086,1688,1646,
1373,1147,1059,1150,1956,2022,1087,1190,1038,1157,1159,1502,1623,1650,1583,
1708,1312,1751,1685,1648,1917,1658;
for (set .@i, 0; .@i < getarraysize(.BOSSID) && killedrid!= .BOSSID[.@i]; set .@i, .@i + 1)
if (killedrid == .BOSSID[.@i])
set .@isboss, 1;
if (!.@isboss) end;
announce "Player " +strcharinfo(0) +" has killed "+getmonsterinfo(.BOSSID[.@i],0)+"!",0;
end;
}
try this since you are using eAthena 15087M
prontera,155,93,4 script All in One NPC 100,{
mes "[All in One NPC]";
mes "Please select:";
next;
switch(select("Job Master:Rental:Reset:Platinum Skills")) {
case 1:
callfunc "jobmaster";
break;
case 2:
callfunc "rental";
break;
case 3:
callfunc "reset";
break;
case 4:
callfunc "platinum";
break;
}
}
function script jobmaster {
mes "^ff0000[All in One NPC]^000000";
if(Class >= Job_Rune_Knight) goto L_noReq;
if(SkillPoint != 0)
{
mes "I'm sorry, please use up all your skill points before changing jobs";
mes "Please come again soon!";
close;
}
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($@JC_SupNovM > 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("Yes","No") == 1){
callfunc "Job_Change", @target_job;
if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
callfunc "F_ClearJobVar";
} else {
if($@JC_Plat) goto L_GivePlat;
}
}
close;
break;
default:
if(JobLevel < $@JC_MinimumJB) 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 && Class >= Job_Swordman_High){ // lastJob could have been set before changing back to non-trans
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("Yes","No")==1){
callfunc "Job_Change", @target_job;
if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
callfunc "F_ClearJobVar";
} else {
if($@JC_Plat) goto L_GivePlat;
}
}
close;
}
if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
if((Class >= Job_Knight) && (Class <= Job_Crusader2)){
mes "Would you like to be reborn or change to 3rd class?";
switch(select("I want to be reborn!", "I want to change to 3rd class!", "Cancel"))
{
case 1:
mes "Are you sure you want to be reborn?";
if(select("Yes", "No")==1){
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;
}
break;
case 2:
goto L_Third;
}
close;
}
if (Class >= Job_Lord_Knight && Class <= Job_Paladin2)
{
if(JobLevel < 50) goto L_cantCh;
goto L_Third;
}
}
mes "I'm sorry, there are no further classes for your job.";
close;
L_Third:
set @target_job, roclass(eaclass() | EAJL_THIRD);
mes "Are you sure you want to change to " + JobName(@target_job) + "?";
if(select("Yes", "No")==1){
callfunc "Job_Change", @target_job;
}
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;
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_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_remove:
mes "Please remove your cart,falcon or peco";
mes "Please come again soon!";
close;
OnInit:
// Variable Setup
set $@JC_MinimumJB, 40; //Minimum job level for changing to 2nd classes (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;
}
function script rental {
mes "[All in One NPC]";
mes "Hi, here you can rent Carts, Falcons or Pecopecos.";
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 "[All in One NPC]";
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 "[All in One NPC]";
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 "[All in One NPC]";
mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
close;
}
}
}
function script reset {
set .rskill,5000; // Set value in zeny for skill reset here
set .rstat,5000; // Set value in zeny for stat reset here
set .rboth,9000; // Set value for "package deal" (i.e.: reseting both) here.
mes "[All in One NPC]";
mes "I am a All in One NPC.";
mes "Reset Stats: "+ .rstat +"z";
mes "Reset Skills: "+ .rskill +"z";
mes "Reset Both: "+ .rboth +"z";
mes "Please select the service you want:";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) {
case 1:
mes "[All in One NPC]";
if (Zeny < .rskill) {
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-.rskill;
ResetSkill;
close;
case 2:
mes "[All in One NPC]";
if (Zeny < .rstat) {
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-.rstat;
ResetStatus;
close;
case 3:
mes "[All in One NPC]";
if (Zeny < .rboth) {
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-.rboth;
ResetSkill;
ResetStatus;
close;
case 4:
mes "Come again soon!";
close;
}
}
function script platinum {
mes "[All in One NPC]";
mes "I can give you the special skills available to your job.";
mes "Would you like these skills now?";
next;
if (select("Yes Please:No thanks") == 2) {
mes "[All in One NPC]";
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 "[All in One NPC]";
mes "There you go!";
close;
}
Here you go, btw i just copy pasted the actual jobmaster, rental, reset, platinum from the customs rAthena and made it into a function
//Made by deathscythe13
prontera,155,93,4 script Skill Point seller 100,{
set .@paymentitemid,7227; // Edit Item ID use
set .@paymentamount,50; // Edit Amount
mes "[skill Point Seller]";
mes "Hi i can sell you skill points for "+.@paymentamount+" "+getitemname(.@paymentitemid)+" equals 1 Skill Point";
mes "Do you like to buy a skill point?";
next;
if(select("Yes:No")==2) {
mes "[skill Point Seller]";
mes "Ok Bye.";
close;
}
mes "[skill Point Seller]";
mes "please input how many skill points you want or enter 0 to cancel";
next;
input .@points;
next;
mes "[skill Point Seller]";
if(!.@points) {
mes "You have canceled buying.";
close;
}
if(countitem(.@paymentitemid) < (.@points*.@paymentamount)) {
mes "Sorry your "+getitemname(.@paymentitemid)+" is not enough.";
close;
}
delitem .@paymentitemid,(.@points*.@paymentamount);
set SkillPoint, SkillPoint+.@points;
mes "There you go have a nice day.";
close;
}