/custom/ folder overhaul:

==== Script Changes ====
* Warper replaced with Euphy's Warper v1.2
* Stylist replaced with a much more efficient script
* Healer replaced with more efficient script
* MVP Arena heavily condensed, and text edited
* Removed logout suggestion in Reset NPC (why was that there?)
* Quest Warper added to scripts_custom.conf [bug fix]

==== Reorganization ====
* All folders in root directory removed except "battleground", "events", "quests"
* All non-essential scripts in root directory moved to "etc" folder
* A few files renamed for easier identification
* scripts_custom.conf reordered for easier identification

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16193 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
euphyy 2012-06-01 02:36:44 +00:00
parent 0c530aa2fe
commit 66f7f11388
29 changed files with 8505 additions and 9111 deletions

View File

@ -1,62 +0,0 @@
//===== rAthena Script =======================================
//= MVP Arena functions
//===== By: ==================================================
//= Darkchild
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= 16 diff MVP's inside
//===== Additional Comments: =================================
//= 1.0 first version of script
//= 1.1 Optimised The MVP arena [massdriller]
//============================================================
function script Ramvp_1 {
mes "[ ^0065DFAlpha MVP^000000 ]";
mes "Here you go!";
return;
}
function script Ramvp_2 {
mes "[ ^0065DFBeta MVP^000000 ]";
mes "Here you go!";
return;
}
function script Ramvp_3 {
mes "[ ^0065DFTheta MVP^000000 ]";
mes "Here you go!";
return;
}
function script Ramvp_4 {
mes "[ ^0065DFEpsilon MVP^000000 ]";
mes "Here you go!";
return;
}
function script Ramvp_M {
mes "How do you need help?.";
menu "Harder Monsters",L_Next,"Heal Please",L_Heal,"Leave",L_Leave;
L_Next:
return;
L_Heal:
percentheal 100,100;
close;
L_Leave:
warp "prontera",156,179;
close;
}
function script Ramvp_M2 {
mes "How do you need help?.";
menu "Heal Please",L_Heal,"Leave",L_Leave;
L_Heal:
percentheal 100,100;
close;
L_Leave:
warp "prontera",156,179;
close;
}

View File

@ -1,803 +0,0 @@
//===== rAthena Script =======================================
//= MVP Arena
//===== By: ==================================================
//= Darkchild
//===== Current Version: =====================================
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= 16 diff MVP's inside
//===== Additional Comments: =================================
//= 1.0 first version of script
//= 1.1 Optimised The MVP arena [massdriller]
//= 1.2 - NPC in prontera [Silent]
//= - Removed Duplicates
//============================================================
prontera,154,197,3 script MVP Warper 768,{
mes "[ ^0065DFMVP Warper^000000 ]";
mes "Would you like to go to the MVP Arena ?...";
if (select("Yes!","No thanks.") == 2)
close;
close2;
warp "quiz_00",50,24;
end;
}
// --- Inside the Arena
// --- NPC's That explains things
quiz_00,49,31,4 script MVP Arena Guide 778,{
switch(select("Intro","I want to go back","Heal me please","Cancel"))
{
case 1:
mes "[ ^0065DFMVP Arena Guide^000000 ]";
mes "Welcome and behold this sacred place, Here you will find out if you truly have what it takes to call yourself a warrior, and a Team mate.";
next;
mes "Here in [ ^0065DFSvRO^000000 ] we like to be a family, and as a family you learn you must help and assist one-another, so if you want to survive you should learn to Co-operate.";
next;
mes "There are Plenty of rooms with MVP's in them so don't all fight over the one room just cause you think it's the only one, just move to the next one.";
next;
mes "If you can't get along, and there is too much complaining about people stealing MVP kills and items... then this place will be removed.";
next;
mes "Now the npc's are in groups of monsters, there are 4 different mvps per each npc, i won't tell you which it's a surprise hehe.";
next;
mes "Good luck, Live long and Prosper!.";
close;
break;
case 2:
close2;
warp "prontera",156,179;
end;
break;
case 3:
percentheal 100,100;
close;
break;
case 4:
close;
break;
}
close;
}
// --- The first Alpha-MVP warper
quiz_00,56,31,4 script Alpha MVP 770,{
mes "[ ^0065DFAlpha MVP^000000 ]";
mes "I am the first Keeper, are you ready?.";
if (select("Yes!","Urrr No.") == 2)
close;
mes "[ ^0065DFAlpha MVP^000000 ]";
mes "Which Arena you want to go to??";
menu
"Arena 1 [" + getmapusers("pvp_n_1-2") + " / 50]",Larena1,
"Arena 2 [" + getmapusers("pvp_n_2-2") + " / 50]",Larena2,
"Arena 3 [" + getmapusers("pvp_n_3-2") + " / 15]",Larena3,
"Arena 4 [" + getmapusers("pvp_n_4-2") + " / 15]",Larena4,
"Arena 5 [" + getmapusers("pvp_n_5-2") + " / 15]",Larena5,
"Arena 6 [" + getmapusers("pvp_n_6-2") + " / 15]",Larena6,
"Arena 7 [" + getmapusers("pvp_n_7-2") + " / 15]",Larena7,
"Arena 8 [" + getmapusers("pvp_n_8-2") + " / 15]",Larena8,
"Quit",Lcancel;
Lcancel:
close;
Larena1:
if (getmapusers("pvp_n_1-2") > 49) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_1-2",102,102;
close;
Larena2:
if (getmapusers("pvp_n_2-2") > 49) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_2-2",102,102;
close;
Larena3:
if (getmapusers("pvp_n_3-2") > 14) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_3-2",102,102;
close;
Larena4:
if (getmapusers("pvp_n_4-2") > 14) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_4-2",102,102;
close;
Larena5:
if (getmapusers("pvp_n_5-2") > 14) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_5-2",102,102;
close;
Larena6:
if (getmapusers("pvp_n_6-2") > 14) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_6-2",102,102;
close;
Larena7:
if (getmapusers("pvp_n_7-2") > 14) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_7-2",102,102;
close;
Larena8:
if (getmapusers("pvp_n_8-2") > 14) goto Lsorry;
callfunc "Ramvp_1";
warp "pvp_n_8-2",102,102;
close;
Lsorry:
mes "[ ^0065DFAlpha MVP^000000 ]";
mes "Sorry but this Arena is already full, maybe you can try another one!";
close;
}
// --- The first Beta-MVP warper
quiz_00,58,31,4 script Beta MVP 773,{
mes "[ ^0065DFBeta MVP^000000 ]";
mes "I am the first Keeper, are you ready?.";
menu "Yes!",L_Yes,"Urrr No.",Lcancel;
L_Yes:
mes "[ ^0065DFBeta MVP^000000 ]";
mes "Which Arena you want to go to??";
menu
"Arena 1 [" + getmapusers("pvp_n_1-3") + " / 50]",Larena1,
"Arena 2 [" + getmapusers("pvp_n_2-3") + " / 15]",Larena2,
"Arena 3 [" + getmapusers("pvp_n_3-3") + " / 15]",Larena3,
"Arena 4 [" + getmapusers("pvp_n_4-3") + " / 15]",Larena4,
"Arena 5 [" + getmapusers("pvp_n_5-3") + " / 15]",Larena5,
"Arena 6 [" + getmapusers("pvp_n_6-3") + " / 15]",Larena6,
"Arena 7 [" + getmapusers("pvp_n_7-3") + " / 15]",Larena7,
"Arena 8 [" + getmapusers("pvp_n_8-3") + " / 15]",Larena8,
"Quit",Lcancel;
Lcancel:
close;
Larena1:
if (getmapusers("pvp_n_1-3") > 49) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_1-3",102,102;
close;
Larena2:
if (getmapusers("pvp_n_2-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_2-3",102,102;
close;
Larena3:
if (getmapusers("pvp_n_3-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_3-3",102,102;
close;
Larena4:
if (getmapusers("pvp_n_4-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_4-3",102,102;
close;
Larena5:
if (getmapusers("pvp_n_5-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_5-3",102,102;
close;
Larena6:
if (getmapusers("pvp_n_6-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_6-3",102,102;
close;
Larena7:
if (getmapusers("pvp_n_7-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_7-3",102,102;
close;
Larena8:
if (getmapusers("pvp_n_8-3") > 14) goto Lsorry;
callfunc "Ramvp_2";
warp "pvp_n_8-3",102,102;
close;
Lsorry:
mes "[ ^0065DFBeta MVP^000000 ]";
mes "Sorry but this Arena is already full, maybe you can try another one!";
close;
}
// --- The first Theta-MVP warper
quiz_00,60,31,4 script Theta MVP 774,{
mes "[ ^0065DFTheta MVP^000000 ]";
mes "I am the first Keeper, are you ready?.";
menu "Yes!",L_Yes,"Urrr No.",Lcancel;
L_Yes:
mes "[ ^0065DFTheta MVP^000000 ]";
mes "Which Arena you want to go to??";
menu
"Arena 1 [" + getmapusers("pvp_n_1-4") + " / 50]",Larena1,
"Arena 2 [" + getmapusers("pvp_n_2-4") + " / 15]",Larena2,
"Arena 3 [" + getmapusers("pvp_n_3-4") + " / 15]",Larena3,
"Arena 4 [" + getmapusers("pvp_n_4-4") + " / 15]",Larena4,
"Arena 5 [" + getmapusers("pvp_n_5-4") + " / 15]",Larena5,
"Arena 6 [" + getmapusers("pvp_n_6-4") + " / 15]",Larena6,
"Arena 7 [" + getmapusers("pvp_n_7-4") + " / 15]",Larena7,
"Arena 8 [" + getmapusers("pvp_n_8-4") + " / 15]",Larena8,
"Quit",Lcancel;
Lcancel:
close;
Larena1:
if (getmapusers("pvp_n_1-4") > 49) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_1-4",102,102;
close;
Larena2:
if (getmapusers("pvp_n_2-4") > 14) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_2-4",102,102;
close;
Larena3:
if (getmapusers("pvp_n_3-4") > 14) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_3-4",102,102;
close;
Larena4:
if (getmapusers("pvp_n_4-4") > 14) goto Lsorry;
mes "[ ^0065DFTheta MVP^000000 ]";
mes "Here you go!";
warp "pvp_n_4-4",102,102;
close;
Larena5:
if (getmapusers("pvp_n_5-4") > 14) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_5-4",102,102;
close;
Larena6:
if (getmapusers("pvp_n_6-4") > 14) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_6-4",102,102;
close;
Larena7:
if (getmapusers("pvp_n_7-4") > 14) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_7-4",102,102;
close;
Larena8:
if (getmapusers("pvp_n_8-4") > 14) goto Lsorry;
callfunc "Ramvp_3";
warp "pvp_n_8-4",102,102;
close;
Lsorry:
mes "[ ^0065DFTheta MVP^000000 ]";
mes "Sorry but this Arena is already full, maybe you can try another one!";
close;
}
// --- The first Epsilon-MVP warper
quiz_00,62,31,4 script Epsilon MVP 776,{
mes "[ ^0065DFEpsilon MVP^000000 ]";
mes "I am the first Keeper, are you ready?.";
menu "Yes!",L_Yes,"Urrr No.",Lcancel;
L_Yes:
mes "[ ^0065DFEpsilon MVP^000000 ]";
mes "Which Arena you want to go to??";
menu
"Arena 1 [" + getmapusers("pvp_n_1-5") + " / 50]",Larena1,
"Arena 2 [" + getmapusers("pvp_n_2-5") + " / 15]",Larena2,
"Arena 3 [" + getmapusers("pvp_n_3-5") + " / 15]",Larena3,
"Arena 4 [" + getmapusers("pvp_n_4-5") + " / 15]",Larena4,
"Arena 5 [" + getmapusers("pvp_n_5-5") + " / 15]",Larena5,
"Arena 6 [" + getmapusers("pvp_n_6-5") + " / 15]",Larena6,
"Arena 7 [" + getmapusers("pvp_n_7-5") + " / 15]",Larena7,
"Arena 8 [" + getmapusers("pvp_n_8-5") + " / 15]",Larena8,
"Quit",Lcancel;
Lcancel:
close;
Larena1:
if (getmapusers("pvp_n_1-5") > 49) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_1-5",102,102;
close;
Larena2:
if (getmapusers("pvp_n_2-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_2-5",102,102;
close;
Larena3:
if (getmapusers("pvp_n_3-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_3-5",102,102;
close;
Larena4:
if (getmapusers("pvp_n_4-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_4-5",102,102;
close;
Larena5:
if (getmapusers("pvp_n_5-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_5-5",102,102;
close;
Larena6:
if (getmapusers("pvp_n_6-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_6-5",102,102;
close;
Larena7:
if (getmapusers("pvp_n_7-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_7-5",102,102;
close;
Larena8:
if (getmapusers("pvp_n_8-5") > 14) goto Lsorry;
callfunc "Ramvp_4";
warp "pvp_n_8-5",102,102;
close;
Lsorry:
mes "[ ^0065DFEpsilon MVP^000000 ]";
mes "Sorry but this Arena is already full, maybe you can try another one!";
close;
}
// ---- Inside MVP-Arena NPC's
// --- Alpha-MVP #1
pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_2-2",102,102;
close;
}
// --- Alpha-MVP #2
pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_3-2",102,102;
close;
}
// --- Alpha-MVP #3
pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_4-2",102,102;
close;
}
// --- Alpha-MVP #4
pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_5-2",102,102;
close;
}
// --- Alpha-MVP #5
pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_6-2",102,102;
close;
}
// --- Alpha-MVP #6
pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_7-2",102,102;
close;
}
// --- Alpha-MVP #7
pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_8-2",102,102;
close;
}
// --- Alpha-MVP #8
pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M2";
}
// --- Beta-MVP #1
pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_2-3",102,102;
close;
}
// --- Beta-MVP #2
pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_3-3",102,102;
close;
}
// --- Beta-MVP #3
pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_4-3",102,102;
close;
}
// --- Beta-MVP #4
pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_5-3",102,102;
close;
}
// --- Beta-MVP #5
pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_6-3",102,102;
close;
}
// --- Beta-MVP #6
pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_7-3",102,102;
close;
}
// --- Beta-MVP #7
pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_8-3",102,102;
close;
}
// --- Beta-MVP #8
pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M2";
}
// --- Theta-MVP #1
pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_2-4",102,102;
close;
}
// --- Theta-MVP #2
pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_3-4",102,102;
close;
}
// --- Theta-MVP #3
pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_4-4",102,102;
close;
}
// --- Theta-MVP #4
pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_5-4",102,102;
close;
}
// --- Theta-MVP #5
pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_6-4",102,102;
close;
}
// --- Theta-MVP #6
pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_7-4",102,102;
close;
}
// --- Theta-MVP #7
pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_8-4",102,102;
close;
}
// --- Theta-MVP #8
pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M2";
}
// --- Epsilon-MVP #1
pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_2-5",102,102;
close;
}
// --- Epsilon-MVP #2
pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_3-5",102,102;
close;
}
// --- Epsilon-MVP #3
pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_4-5",102,102;
close;
}
// --- Epsilon-MVP #4
pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_5-5",102,102;
close;
}
// --- Epsilon-MVP #5
pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_6-5",102,102;
close;
}
// --- Epsilon-MVP #6
pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_7-5",102,102;
close;
}
// --- Epsilon-MVP #7
pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M";
L_Next:
warp "pvp_n_8-5",102,102;
close;
}
// --- Epsilon-MVP #8
pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{
mes "[ ^0065DFMVP-Protector^000000 ]";
callfunc "Ramvp_M2";
}
// ---- Monsters for the MVP-Arena
// --- Alpha-MVP Maps
// --- First Alpha-MVP area
pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,60000,66000
// --- Second Alpha-MVP area
pvp_n_2-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_2-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
// --- Third Alpha-MVP area
pvp_n_3-2,0,0,0,0 monster Mistress 1059,1,60000,66000
pvp_n_3-2,0,0,0,0 monster Moonlight 1150,2,60000,66000
pvp_n_3-2,0,0,0,0 monster Maya 1147,1,60000,66000
// --- Fourth Alpha-MVP area
pvp_n_4-2,0,0,0,0 monster Eddga 1115,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Mistress 1059,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Maya 1147,1,60000,66000
// --- Fifth Alpha-MVP area
pvp_n_5-2,0,0,0,0 monster Eddga 1115,1,60000,66000
pvp_n_5-2,0,0,0,0 monster Mistress 1059,2,60000,66000
pvp_n_5-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_5-2,0,0,0,0 monster Maya 1147,2,60000,66000
// --- Sixth Alpha-MVP area
pvp_n_6-2,0,0,0,0 monster Eddga 1115,2,60000,66000
pvp_n_6-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_6-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_6-2,0,0,0,0 monster Maya 1147,2,60000,66000
// --- Seventh Alpha-MVP area
pvp_n_7-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_7-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_7-2,0,0,0,0 monster Moonlight 1150,2,60000,66000
pvp_n_7-2,0,0,0,0 monster Maya 1147,2,60000,66000
// --- Eighth Alpha-MVP area
pvp_n_8-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Moonlight 1150,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000
// --- Beta-MVP Maps
// --- First Beta-MVP area
pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
// --- Second Beta-MVP area
pvp_n_2-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000
pvp_n_3-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_2-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000
// --- Third Beta-MVP area
pvp_n_3-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000
// --- Fourth Beta-MVP area
pvp_n_4-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000
pvp_n_4-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_4-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000
pvp_n_4-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000
// --- Fifth Beta-MVP area
pvp_n_5-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000
pvp_n_5-3,0,0,0,0 monster Turtle General 1312,2,60000,66000
pvp_n_5-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000
pvp_n_5-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000
// --- Sixth Beta-MVP area
pvp_n_6-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000
pvp_n_6-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_6-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000
pvp_n_6-3,0,0,0,0 monster Orc Lord 1190,2,60000,66000
// --- Seventh Beta-MVP area
pvp_n_7-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_7-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_7-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000
pvp_n_7-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000
// --- Eighth Beta-MVP area
pvp_n_8-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Turtle General 1312,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Orc Hero 1087,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000
// --- Theta-MVP Maps
// --- First Theta-MVP area
pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,60000,66000
// --- Second Theta-MVP area
pvp_n_2-4,0,0,0,0 monster Drake 1112,2,60000,66000
pvp_n_2-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_2-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000
// --- Third Theta-MVP area
pvp_n_3-4,0,0,0,0 monster Drake 1112,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000
// --- Fourth Theta-MVP area
pvp_n_4-4,0,0,0,0 monster Drake 1112,2,60000,66000
pvp_n_4-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_4-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000
pvp_n_4-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000
// --- Fifth Theta-MVP area
pvp_n_5-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_5-4,0,0,0,0 monster Osiris 1038,2,60000,66000
pvp_n_5-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000
pvp_n_5-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000
// --- Sixth Theta-MVP area
pvp_n_6-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_6-4,0,0,0,0 monster Osiris 1038,2,60000,66000
pvp_n_6-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000
pvp_n_6-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000
// --- Seventh Theta-MVP area
pvp_n_7-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_7-4,0,0,0,0 monster Osiris 1038,2,60000,66000
pvp_n_7-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000
pvp_n_7-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000
// --- Eighth Theta-MVP area
pvp_n_8-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Osiris 1038,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000
// --- Epsilon-MVP Maps
// --- First Epsilon-MVP area
pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
// --- First Epsilon-MVP area
pvp_n_2-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_2-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_2-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000
// --- First Epsilon-MVP area
pvp_n_3-5,0,0,0,0 monster Incantation Samurai 1492,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
// --- First Epsilon-MVP area
pvp_n_4-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_4-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_4-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000
pvp_n_4-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
// --- First Epsilon-MVP area
pvp_n_5-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
// --- First Epsilon-MVP area
pvp_n_6-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
// --- First Epsilon-MVP area
pvp_n_7-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Baphomet 1039,2,60000,66000
// --- First Epsilon-MVP area
pvp_n_8-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_8-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_8-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000
// ---- Mapflags for the MVP-Arena
pvp_n_1-1 mapflag pvp_nightmaredrop off
pvp_n_2-1 mapflag pvp_nightmaredrop off
pvp_n_3-1 mapflag pvp_nightmaredrop off
pvp_n_4-1 mapflag pvp_nightmaredrop off
pvp_n_5-1 mapflag pvp_nightmaredrop off
pvp_n_6-1 mapflag pvp_nightmaredrop off
pvp_n_7-1 mapflag pvp_nightmaredrop off
pvp_n_8-1 mapflag pvp_nightmaredrop off
pvp_n_1-2 mapflag pvp_nightmaredrop off
pvp_n_2-2 mapflag pvp_nightmaredrop off
pvp_n_3-2 mapflag pvp_nightmaredrop off
pvp_n_4-2 mapflag pvp_nightmaredrop off
pvp_n_5-2 mapflag pvp_nightmaredrop off
pvp_n_6-2 mapflag pvp_nightmaredrop off
pvp_n_7-2 mapflag pvp_nightmaredrop off
pvp_n_8-2 mapflag pvp_nightmaredrop off
pvp_n_1-3 mapflag pvp_nightmaredrop off
pvp_n_2-3 mapflag pvp_nightmaredrop off
pvp_n_3-3 mapflag pvp_nightmaredrop off
pvp_n_4-3 mapflag pvp_nightmaredrop off
pvp_n_5-3 mapflag pvp_nightmaredrop off
pvp_n_6-3 mapflag pvp_nightmaredrop off
pvp_n_7-3 mapflag pvp_nightmaredrop off
pvp_n_8-3 mapflag pvp_nightmaredrop off
pvp_n_1-4 mapflag pvp_nightmaredrop off
pvp_n_2-4 mapflag pvp_nightmaredrop off
pvp_n_3-4 mapflag pvp_nightmaredrop off
pvp_n_4-4 mapflag pvp_nightmaredrop off
pvp_n_5-4 mapflag pvp_nightmaredrop off
pvp_n_6-4 mapflag pvp_nightmaredrop off
pvp_n_7-4 mapflag pvp_nightmaredrop off
pvp_n_8-4 mapflag pvp_nightmaredrop off
pvp_n_1-5 mapflag pvp_nightmaredrop off
pvp_n_2-5 mapflag pvp_nightmaredrop off
pvp_n_3-5 mapflag pvp_nightmaredrop off
pvp_n_4-5 mapflag pvp_nightmaredrop off
pvp_n_5-5 mapflag pvp_nightmaredrop off
pvp_n_6-5 mapflag pvp_nightmaredrop off
pvp_n_7-5 mapflag pvp_nightmaredrop off
pvp_n_8-5 mapflag pvp_nightmaredrop off

View File

@ -1,173 +0,0 @@
//===== rAthena Script =======================================
//= Stylist
//===== By: ==================================================
//= Nekosume
//===== Current Version: =====================================
//= 4.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Changes your hair style, hair color, and cloth color.
//===== Additional Comments: =================================
//= 1.0 - Split into two NPCs
//= 1.5 - Revised script / different dialog
//= 2.0 - Changed palette and hair style select
//= 2.5 - Added more hair colors
//= 3.0 - Added the 'Browse' options
//= 4.0 - Refined and Combined [Darkchild]
//= 4.1 - New hairstyles added [Mass Zero]
//= 4.2 - Renamed to avoid conflict [Paradox924X]
//============================================================
prontera,170,180,1 script Stylist#custom_stylist 122,{
mes "[^FF8000Stylist^000000]";
mes "I'm the greatest stylist in all of Rune-Midgard~~!";
mes "I can change your hair style or color!";
mes "What do you wish to change?";
next;
menu "Hair style",Lstyle,"Hair color",Lcolor,"Cloth Color",Lcloth,"Nothing",LCancel;
Lstyle:
mes "[^FF8000Stylist^000000]";
mes "Do you want to browse through the choices, or do you know what you want?";
next;
menu "Browse",Lbrowsesty,"I know what I want",Lwantsty;
Lwantsty:
mes "[^FF8000Stylist^000000]";
mes "Great! Now just pick a style and I'll get started!";
next;
mes "[^FF8000Stylist^000000]";
mes "Please pick a style number ^0000FFbetween 0 and 23^000000.";
mes "Number 0, by the way, is the default style for your character.";
next;
input @sty;
if (@sty>23) close;
if (@sty<0) close;
setlook 1,@sty;
next;
mes "[^FF8000Stylist^000000]";
mes "Is this good, or do you want a different style?";
next;
menu "This is good",-,"Different style, please",Lwantsty;
next;
mes "[^FF8000Stylist^000000]";
mes "You look great~! Come back again, okay?";
close;
Lbrowsesty:
set @look, -1;
mes "[^FF8000Stylist^000000]";
mes "Okay, here we go~! Just stop me when you see something you like, okay?";
next;
Lbrowserep:
set @look,@look+1;
setlook 1,@look;
mes "This is Pallete Number^FF9009 "+@look+" ^000000!";
if(@look == 23) menu "Back To The Begin",Lbrowsesty,"I like this one",Lstop;
if(@look != 23) menu "Keep going",Lbrowserep,"I like this one",Lstop;
Lcolor:
mes "[^FF8000Stylist^000000]";
mes "Do you want to browse through the choices, or do you know what you want?";
next;
menu "Browse",Lbrowsecolor,"I know what I want",Lwantcolor;
Lwantcolor:
mes "[^FF8000Stylist^000000]";
mes "Just pick a color and we can get started.";
next;
mes "[^FF8000Stylist^000000]";
mes "Please pick a style number ^0000FFbetween 0 and 20^000000.";
mes "Number 0, by the way, is the default color for your character.";
next;
mes "[^FF8000Stylist^000000]";
mes "0 is default...";
mes "1 is blonde...";
mes "2 is lavender...";
mes "3 is brown...";
mes "4 is green...";
mes "5 is blue...";
mes "6 is white...";
mes "7 is black...";
mes "8 is red...";
mes "and 9-20 are new colors.";
input @color;
if (@color>20) close;
if (@color<0) close;
setlook 6,@color;
next;
mes "[^FF8000Stylist^000000]";
mes "Is this good, or do you want a different color?";
next;
menu "This is good",-,"Different color, please",Lwantcolor;
next;
mes "[^FF8000Stylist^000000]";
mes "You look great~! Come back again, okay?";
close;
Lbrowsecolor:
set @look, -1;
mes "[^FF8000Stylist^000000]";
mes "Okay, here we go~! Just stop me when you see something you like, okay?";
next;
Lbrowsecolorrep:
set @look,@look+1;
setlook 6,@look;
mes "This is Pallete Number^FF9009 "+@look+" ^000000!";
if(@look == 20) menu "Back To The Begin",Lbrowsecolor,"I like this one",Lstop;
if(@look != 20) menu "Keep going",Lbrowsecolorrep,"I like this one",Lstop;
Lstop:
mes "[^FF8000Stylist^000000]";
mes "You look great~! I love it~! ^_^";
close;
LCancel:
mes "[^FF8000Stylist^000000]";
mes "Well come again.";
close;
Lcloth:
mes "[^FF8000Stylist^000000]";
mes "Do you want to browse through the choices, or do you know what you want?";
next;
menu "Browse",Lbrowsecloth,"I know what I want",Lwantcloth;
Lwantcloth:
mes "[^FF8000Stylist^000000]";
mes "Great! Now just pick a pallete and I'll get started!";
next;
mes "[^FF8000Stylist^000000]";
mes "Please pick a style number ^0000FFbetween 0 and 77^000000.";
mes "Number 0, by the way, is the default style for your character.";
next;
input @pal;
if (@pal>77) close;
if (@pal<0) close;
setlook 7,@pal;
next;
mes "[^FF8000Stylist^000000]";
mes "Is this good, or do you want a different pallet";
next;
menu "This is good",-,"Different pallet, please",Lwantcloth;
next;
mes "[^FF8000Stylist^000000]";
mes "You look great~! Come back again, okay?";
close;
Lbrowsecloth:
set @look, -1;
mes "[^FF8000Stylist^000000]";
mes "Okay, here we go~! Just stop me when you see something you like, okay?";
next;
Lbrowseclothrep:
set @look,@look+1;
setlook 7,@look;
mes "This is Pallete Number^FF9009 "+@look+" ^000000!";
if(@look == 77) menu "Back To The Begin",Lbrowsecloth,"I like this one",Lstop;
if(@look != 77) menu "Keep going",Lbrowseclothrep,"I like this one",Lstop;
}

View File

@ -1,442 +1,442 @@
//===== rAthena Script =======================================
//= elRO Airship
//===== By: ==================================================
//= Draike, Bluto, Hephaestus
//===== Current Version: =====================================
//= 2.2a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= It's the elRO airship. XD
//===== Additional Comments: =================================
//= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around.
//= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue.
//= 2.1 Removed Duplicates [Silent]
//= 2.2 Added missing next;'s [Evera]
//============================================================
payon,153,43,5 script itinsetter -1,{
//This is just OnInit stuff to set the hourly intinerary.
OnInit:
deletearray $locationsname$[0],500;
deletearray $locationsmap$[0],500;
deletearray $locationsx[0],500;
deletearray $locationsy[0],500;
deletearray $alreadygoneto[0],500;
setarray $locationsname$[0],"Airport";
setarray $locationsname$[1],"Prontera";
setarray $locationsname$[2],"Payon";
setarray $locationsname$[3],"Aldebaran";
setarray $locationsname$[4],"Alberta";
setarray $locationsname$[5],"Geffen";
setarray $locationsname$[6],"Morocc";
setarray $locationsname$[7],"Glast Heim";
setarray $locationsname$[8],"Umbala";
setarray $locationsname$[9],"Comodo";
setarray $locationsname$[10],"Amatsu";
setarray $locationsname$[11],"Niflheim";
setarray $locationsname$[12],"Lutie";
setarray $locationsname$[13],"Louyang";
setarray $locationsname$[14],"Gonryun";
setarray $locationsname$[15],"Yuno";
setarray $locationsname$[16],"Ant Hell";
setarray $locationsname$[17],"Jawaii";
setarray $locationsname$[18],"Orc Village";
setarray $locationsname$[19],"Mjolnir Coal Mines";
setarray $locationsname$[20],"Gefenia Ruins";
setarray $locationsname$[21],"Ayothaya";
setarray $locationsname$[22],"Lighthalzen";
setarray $locationsname$[23],"Juperos";
setarray $locationsmap$[0],"airport";
setarray $locationsmap$[1],"prt_fild08";
setarray $locationsmap$[2],"pay_fild08";
setarray $locationsmap$[3],"mjolnir_12";
setarray $locationsmap$[4],"pay_fild03";
setarray $locationsmap$[5],"gef_fild00";
setarray $locationsmap$[6],"moc_fild10";
setarray $locationsmap$[7],"glast_01";
setarray $locationsmap$[8],"umbala";
setarray $locationsmap$[9],"comodo";
setarray $locationsmap$[10],"amatsu";
setarray $locationsmap$[11],"niflheim";
setarray $locationsmap$[12],"xmas";
setarray $locationsmap$[13],"louyang";
setarray $locationsmap$[14],"gonryun";
setarray $locationsmap$[15],"yuno";
setarray $locationsmap$[16],"moc_fild04";
setarray $locationsmap$[17],"jawaii";
setarray $locationsmap$[18],"gef_fild10";
setarray $locationsmap$[19],"mjolnir_02";
setarray $locationsmap$[20],"gefenia01";
setarray $locationsmap$[21],"ayothaya";
setarray $locationsmap$[22],"lighthalzen";
setarray $locationsmap$[23],"jupe_gate";
setarray $locationsx[0],148;
setarray $locationsx[1],206;
setarray $locationsx[2],159;
setarray $locationsx[3],62;
setarray $locationsx[4],194;
setarray $locationsx[5],50;
setarray $locationsx[6],163;
setarray $locationsx[7],196;
setarray $locationsx[8],187;
setarray $locationsx[9],203;
setarray $locationsx[10],115;
setarray $locationsx[11],132;
setarray $locationsx[12],232;
setarray $locationsx[13],36;
setarray $locationsx[14],82;
setarray $locationsx[15],58;
setarray $locationsx[16],209;
setarray $locationsx[17],248;
setarray $locationsx[18],158;
setarray $locationsx[19],76;
setarray $locationsx[20],98;
setarray $locationsx[21],183;
setarray $locationsx[22],99;
setarray $locationsx[23],46;
setarray $locationsy[0],45;
setarray $locationsy[1],280;
setarray $locationsy[2],92;
setarray $locationsy[3],381;
setarray $locationsy[4],182;
setarray $locationsy[5],365;
setarray $locationsy[6],172;
setarray $locationsy[7],327;
setarray $locationsy[8],98;
setarray $locationsy[9],76;
setarray $locationsy[10],79;
setarray $locationsy[11],241;
setarray $locationsy[12],308;
setarray $locationsy[13],279;
setarray $locationsy[14],96;
setarray $locationsy[15],194;
setarray $locationsy[16],326;
setarray $locationsy[17],175;
setarray $locationsy[18],95;
setarray $locationsy[19],363;
setarray $locationsy[20],21;
setarray $locationsy[21],104;
setarray $locationsy[22],240;
setarray $locationsy[23],19;
goto resetgoneto;
end;
setrandomitin:
set $@settervariable,$@settervariable + 1;
setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1);
if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1;
if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin;
setarray $alreadygoneto[$locationn[$@settervariable]], 1;
if($@settervariable<12)goto setrandomitin;
end;
resetgoneto:
deletearray $alreadygoneto[0], 500;
set $@currenttime, 0;
goto setrandomitin;
OnMinute00:
set $@currenttime, 1;
callfunc "F_Itinreset",12,1,2;
OnMinute03:
set $destination,250;
end;
OnMinute05:
set $@currenttime, 2;
callfunc "F_Itinreset",1,2,3;
OnMinute08:
set $destination,250;
end;
OnMinute10:
set $@currenttime, 3;
callfunc "F_Itinreset",2,3,4;
OnMinute13:
set $destination,250;
end;
OnMinute15:
set $@currenttime, 4;
callfunc "F_Itinreset",3,4,5;
OnMinute18:
set $destination,250;
end;
OnMinute20:
set $@currenttime, 5;
callfunc "F_Itinreset",4,5,6;
OnMinute23:
set $destination,250;
end;
OnMinute25:
set $@currenttime, 6;
callfunc "F_Itinreset",5,6,7;
OnMinute28:
set $destination,250;
end;
OnMinute30:
set $@currenttime, 7;
callfunc "F_Itinreset",6,7,8;
OnMinute33:
set $destination,250;
end;
OnMinute35:
set $@currenttime, 8;
callfunc "F_Itinreset",7,8,9;
OnMinute38:
set $destination,250;
end;
OnMinute40:
set $@currenttime, 9;
callfunc "F_Itinreset",8,9,10;
OnMinute43:
set $destination,250;
end;
OnMinute45:
set $@currenttime, 10;
callfunc "F_Itinreset",9,10,11;
OnMinute48:
set $destination,250;
end;
OnMinute50:
set $@currenttime, 11;
callfunc "F_Itinreset",10,11,12;
OnMinute53:
set $destination,250;
end;
OnMinute55:
set $@currenttime, 12;
callfunc "F_Itinreset",11,12,1;
OnMinute58:
set $destination,250;
end;
}
function script F_Porter {
if($destination==getarg(0))goto Board;
if($destination!=getarg(0))goto Notime;
Board:
mes "^FF0000[Porter]^000000";
mes "The plane is currently ported. Would you like to board?";
next;
menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin;
L_Yes:
if($destination!=getarg(0))goto Notime;
warp "airplane", 105, 72;
specialeffect2 501;
L_Nope:
mes "^FF0000[Porter]^000000";
mes "Have a good day. Thank you for traveling with Airship.";
close;
Notime:
mes "^FF0000[Porter]^000000";
if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary.";
if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary.";
next;
menu "Yes, please.",Itin,"No thanks.",L_Nope;
close;
end;
Itin:
mes "^FF0000[Porter]^000000";
callfunc "F_Itin";
}
airport,153,43,5 script Airport Porter 774,{
callfunc "F_Porter",0;
}
prt_fild08,206,279,5 script Porter#01 774,{
callfunc "F_Porter",1;
}
gef_fild00,50,364,5 script Porter#02 774,{
callfunc "F_Porter",5;
}
moc_fild10,163,173,5 script Porter#03 774,{
callfunc "F_Porter",6;
}
mjolnir_12,61,380,5 script Porter#04 774,{
callfunc "F_Porter",3;
}
pay_fild08,159,91,5 script Porter#05 774,{
callfunc "F_Porter",2;
}
pay_fild03,194,181,5 script Porter#06 774,{
callfunc "F_Porter",4;
}
glast_01,196,326,1 script Porter#07 774,{
callfunc "F_Porter",7;
}
umbala,188,98,3 script Porter#08 774,{
callfunc "F_Porter",8;
}
comodo,203,75,8 script Porter#09 774,{
callfunc "F_Porter",9;
}
amatsu,115,78,8 script Porter#10 774,{
callfunc "F_Porter",10;
}
niflheim,132,242,5 script Porter#11 774,{
callfunc "F_Porter",11;
}
xmas,232,309,5 script Porter#12 774,{
callfunc "F_Porter",12;
}
louyang,35,279,8 script Porter#13 774,{
callfunc "F_Porter",13;
}
gonryun,82,95,7 script Porter#14 774,{
callfunc "F_Porter",14;
}
yuno,58,195,4 script Porter#15 774,{
callfunc "F_Porter",15;
}
moc_fild04,210,326,2 script Porter#16 774,{
callfunc "F_Porter",16;
}
jawaii,247,174,7 script Porter#17 774,{
callfunc "F_Porter",17;
}
gef_fild10,159,95,2 script Porter#18 774,{
callfunc "F_Porter",18;
}
mjolnir_02,76,364,5 script Porter#19 774,{
callfunc "F_Porter",19;
}
gefenia01,97,22,6 script Porter#20 774,{
callfunc "F_Porter",20;
}
ayothaya,182,105,5 script Porter#21 774,{
callfunc "F_Porter",21;
}
lighthalzen,99,241,4 script Porter#22 774,{
callfunc "F_Porter",22;
}
jupe_gate,46,18,7 script Porter#23 774,{
callfunc "F_Porter",23;
}
airport,141,43,5 script Itinerary Schedule 837,{
mes "^FF0000[Itinerary]^000000";
callfunc "F_Itin";
}
airplane,102,68,5 script Docker 852,{
if($destination == 250) goto Nowhere;
mes "^FF0000[Airplane Attendant]^000000";
if($destination == 250)goto Notime;
set @dockky, $destination;
if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?";
next;
menu "Yes.",Lyes,"No.",Lnope;
Lyes:
if($destination == 250)goto Notime;
if($destination != @dockky)goto Notime;
warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination];
specialeffect2 501;
Lnope:
mes "^FF0000[Airplane Attendant]^000000";
mes "Have a good day. Thank you for traveling with us.";
close;
Notime:
mes "^FF0000[Airplane Attendant]^000000";
if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait.";
if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait.";
close;
Nowhere:
mes "^FF0000[Airplane Attendant]^000000";
mes "We're currently in air. Please wait until the pilot has announced that we have safely landed.";
close;
}
function script F_Itin {
//This is the itinerary's function. It should work well enough.
if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit.";
if($@currenttime==0)close;
if($@currenttime==0)end;
set @tempo, 0;
set @tempo, $@currenttime - 1;
goto seta;
close;
seta:
set @tempo, @tempo + 1;
set @time, gettime(3);
set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes;
if(@minutes>9)set @minutes$, @minutes;
if(@minutess<10)set @minutess$, "0" + @minutess;
if(@minutess>9)set @minutess$, @minutess;
if(@time<12)set @time$,@time;
if(@time==12)set @time$,12;
if(@time>12)set @time$,@time - 12;
if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@tempo<12)goto seta;
set @tempo, 0;
goto setb;
setb:
if($@currenttime - 1==@tempo)goto setc;
set @tempo, @tempo + 1;
set @time, gettime(3) + 1;
set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes;
if(@minutes>9)set @minutes$, @minutes;
if(@minutess<10)set @minutess$, "0" + @minutess;
if(@minutess>9)set @minutess$, @minutess;
if(@time<12)set @time$,@time;
if(@time==12)set @time$,12;
if(@time>12)set @time$,@time - 12;
if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
goto setb;
setc:
close;
end;
}
function script F_Itinreset {
setarray $alreadygoneto[$locationn[getarg(0)]], 0;
goto sest;
sest:
setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1);
if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest;
setarray $alreadygoneto[$locationn[getarg(0)]], 1;
set $destination,$locationn[$@currenttime];
announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16;
end;
}
//===== rAthena Script =======================================
//= elRO Airship
//===== By: ==================================================
//= Draike, Bluto, Hephaestus
//===== Current Version: =====================================
//= 2.2a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= It's the elRO airship. XD
//===== Additional Comments: =================================
//= ALWAYS HAVE AT LEAST TWELVE (12) LOCATIONS AS THE MINIMUM. This is unless you modify to OnMinutes and change the schedule around.
//= If you have "airplane,103,72,0 warp airs02a 1,1,airplane,102,200" as a warp, remove it. Where it's supposed to go, I have no clue.
//= 2.1 Removed Duplicates [Silent]
//= 2.2 Added missing next;'s [Evera]
//============================================================
payon,153,43,5 script itinsetter -1,{
//This is just OnInit stuff to set the hourly intinerary.
OnInit:
deletearray $locationsname$[0],500;
deletearray $locationsmap$[0],500;
deletearray $locationsx[0],500;
deletearray $locationsy[0],500;
deletearray $alreadygoneto[0],500;
setarray $locationsname$[0],"Airport";
setarray $locationsname$[1],"Prontera";
setarray $locationsname$[2],"Payon";
setarray $locationsname$[3],"Aldebaran";
setarray $locationsname$[4],"Alberta";
setarray $locationsname$[5],"Geffen";
setarray $locationsname$[6],"Morocc";
setarray $locationsname$[7],"Glast Heim";
setarray $locationsname$[8],"Umbala";
setarray $locationsname$[9],"Comodo";
setarray $locationsname$[10],"Amatsu";
setarray $locationsname$[11],"Niflheim";
setarray $locationsname$[12],"Lutie";
setarray $locationsname$[13],"Louyang";
setarray $locationsname$[14],"Gonryun";
setarray $locationsname$[15],"Yuno";
setarray $locationsname$[16],"Ant Hell";
setarray $locationsname$[17],"Jawaii";
setarray $locationsname$[18],"Orc Village";
setarray $locationsname$[19],"Mjolnir Coal Mines";
setarray $locationsname$[20],"Gefenia Ruins";
setarray $locationsname$[21],"Ayothaya";
setarray $locationsname$[22],"Lighthalzen";
setarray $locationsname$[23],"Juperos";
setarray $locationsmap$[0],"airport";
setarray $locationsmap$[1],"prt_fild08";
setarray $locationsmap$[2],"pay_fild08";
setarray $locationsmap$[3],"mjolnir_12";
setarray $locationsmap$[4],"pay_fild03";
setarray $locationsmap$[5],"gef_fild00";
setarray $locationsmap$[6],"moc_fild10";
setarray $locationsmap$[7],"glast_01";
setarray $locationsmap$[8],"umbala";
setarray $locationsmap$[9],"comodo";
setarray $locationsmap$[10],"amatsu";
setarray $locationsmap$[11],"niflheim";
setarray $locationsmap$[12],"xmas";
setarray $locationsmap$[13],"louyang";
setarray $locationsmap$[14],"gonryun";
setarray $locationsmap$[15],"yuno";
setarray $locationsmap$[16],"moc_fild04";
setarray $locationsmap$[17],"jawaii";
setarray $locationsmap$[18],"gef_fild10";
setarray $locationsmap$[19],"mjolnir_02";
setarray $locationsmap$[20],"gefenia01";
setarray $locationsmap$[21],"ayothaya";
setarray $locationsmap$[22],"lighthalzen";
setarray $locationsmap$[23],"jupe_gate";
setarray $locationsx[0],148;
setarray $locationsx[1],206;
setarray $locationsx[2],159;
setarray $locationsx[3],62;
setarray $locationsx[4],194;
setarray $locationsx[5],50;
setarray $locationsx[6],163;
setarray $locationsx[7],196;
setarray $locationsx[8],187;
setarray $locationsx[9],203;
setarray $locationsx[10],115;
setarray $locationsx[11],132;
setarray $locationsx[12],232;
setarray $locationsx[13],36;
setarray $locationsx[14],82;
setarray $locationsx[15],58;
setarray $locationsx[16],209;
setarray $locationsx[17],248;
setarray $locationsx[18],158;
setarray $locationsx[19],76;
setarray $locationsx[20],98;
setarray $locationsx[21],183;
setarray $locationsx[22],99;
setarray $locationsx[23],46;
setarray $locationsy[0],45;
setarray $locationsy[1],280;
setarray $locationsy[2],92;
setarray $locationsy[3],381;
setarray $locationsy[4],182;
setarray $locationsy[5],365;
setarray $locationsy[6],172;
setarray $locationsy[7],327;
setarray $locationsy[8],98;
setarray $locationsy[9],76;
setarray $locationsy[10],79;
setarray $locationsy[11],241;
setarray $locationsy[12],308;
setarray $locationsy[13],279;
setarray $locationsy[14],96;
setarray $locationsy[15],194;
setarray $locationsy[16],326;
setarray $locationsy[17],175;
setarray $locationsy[18],95;
setarray $locationsy[19],363;
setarray $locationsy[20],21;
setarray $locationsy[21],104;
setarray $locationsy[22],240;
setarray $locationsy[23],19;
goto resetgoneto;
end;
setrandomitin:
set $@settervariable,$@settervariable + 1;
setarray $locationn[$@settervariable],rand(0,getarraysize($locationsname$) - 1);
if($alreadygoneto[$locationn[$@settervariable]]==1)set $@settervariable,$@settervariable - 1;
if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin;
setarray $alreadygoneto[$locationn[$@settervariable]], 1;
if($@settervariable<12)goto setrandomitin;
end;
resetgoneto:
deletearray $alreadygoneto[0], 500;
set $@currenttime, 0;
goto setrandomitin;
OnMinute00:
set $@currenttime, 1;
callfunc "F_Itinreset",12,1,2;
OnMinute03:
set $destination,250;
end;
OnMinute05:
set $@currenttime, 2;
callfunc "F_Itinreset",1,2,3;
OnMinute08:
set $destination,250;
end;
OnMinute10:
set $@currenttime, 3;
callfunc "F_Itinreset",2,3,4;
OnMinute13:
set $destination,250;
end;
OnMinute15:
set $@currenttime, 4;
callfunc "F_Itinreset",3,4,5;
OnMinute18:
set $destination,250;
end;
OnMinute20:
set $@currenttime, 5;
callfunc "F_Itinreset",4,5,6;
OnMinute23:
set $destination,250;
end;
OnMinute25:
set $@currenttime, 6;
callfunc "F_Itinreset",5,6,7;
OnMinute28:
set $destination,250;
end;
OnMinute30:
set $@currenttime, 7;
callfunc "F_Itinreset",6,7,8;
OnMinute33:
set $destination,250;
end;
OnMinute35:
set $@currenttime, 8;
callfunc "F_Itinreset",7,8,9;
OnMinute38:
set $destination,250;
end;
OnMinute40:
set $@currenttime, 9;
callfunc "F_Itinreset",8,9,10;
OnMinute43:
set $destination,250;
end;
OnMinute45:
set $@currenttime, 10;
callfunc "F_Itinreset",9,10,11;
OnMinute48:
set $destination,250;
end;
OnMinute50:
set $@currenttime, 11;
callfunc "F_Itinreset",10,11,12;
OnMinute53:
set $destination,250;
end;
OnMinute55:
set $@currenttime, 12;
callfunc "F_Itinreset",11,12,1;
OnMinute58:
set $destination,250;
end;
}
function script F_Porter {
if($destination==getarg(0))goto Board;
if($destination!=getarg(0))goto Notime;
Board:
mes "^FF0000[Porter]^000000";
mes "The plane is currently ported. Would you like to board?";
next;
menu "Yes.",L_Yes,"No.",L_Nope,"View Hourly Itinerary.",Itin;
L_Yes:
if($destination!=getarg(0))goto Notime;
warp "airplane", 105, 72;
specialeffect2 501;
L_Nope:
mes "^FF0000[Porter]^000000";
mes "Have a good day. Thank you for traveling with Airship.";
close;
Notime:
mes "^FF0000[Porter]^000000";
if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary.";
if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary.";
next;
menu "Yes, please.",Itin,"No thanks.",L_Nope;
close;
end;
Itin:
mes "^FF0000[Porter]^000000";
callfunc "F_Itin";
}
airport,153,43,5 script Airport Porter 774,{
callfunc "F_Porter",0;
}
prt_fild08,206,279,5 script Porter#01 774,{
callfunc "F_Porter",1;
}
gef_fild00,50,364,5 script Porter#02 774,{
callfunc "F_Porter",5;
}
moc_fild10,163,173,5 script Porter#03 774,{
callfunc "F_Porter",6;
}
mjolnir_12,61,380,5 script Porter#04 774,{
callfunc "F_Porter",3;
}
pay_fild08,159,91,5 script Porter#05 774,{
callfunc "F_Porter",2;
}
pay_fild03,194,181,5 script Porter#06 774,{
callfunc "F_Porter",4;
}
glast_01,196,326,1 script Porter#07 774,{
callfunc "F_Porter",7;
}
umbala,188,98,3 script Porter#08 774,{
callfunc "F_Porter",8;
}
comodo,203,75,8 script Porter#09 774,{
callfunc "F_Porter",9;
}
amatsu,115,78,8 script Porter#10 774,{
callfunc "F_Porter",10;
}
niflheim,132,242,5 script Porter#11 774,{
callfunc "F_Porter",11;
}
xmas,232,309,5 script Porter#12 774,{
callfunc "F_Porter",12;
}
louyang,35,279,8 script Porter#13 774,{
callfunc "F_Porter",13;
}
gonryun,82,95,7 script Porter#14 774,{
callfunc "F_Porter",14;
}
yuno,58,195,4 script Porter#15 774,{
callfunc "F_Porter",15;
}
moc_fild04,210,326,2 script Porter#16 774,{
callfunc "F_Porter",16;
}
jawaii,247,174,7 script Porter#17 774,{
callfunc "F_Porter",17;
}
gef_fild10,159,95,2 script Porter#18 774,{
callfunc "F_Porter",18;
}
mjolnir_02,76,364,5 script Porter#19 774,{
callfunc "F_Porter",19;
}
gefenia01,97,22,6 script Porter#20 774,{
callfunc "F_Porter",20;
}
ayothaya,182,105,5 script Porter#21 774,{
callfunc "F_Porter",21;
}
lighthalzen,99,241,4 script Porter#22 774,{
callfunc "F_Porter",22;
}
jupe_gate,46,18,7 script Porter#23 774,{
callfunc "F_Porter",23;
}
airport,141,43,5 script Itinerary Schedule 837,{
mes "^FF0000[Itinerary]^000000";
callfunc "F_Itin";
}
airplane,102,68,5 script Docker 852,{
if($destination == 250) goto Nowhere;
mes "^FF0000[Airplane Attendant]^000000";
if($destination == 250)goto Notime;
set @dockky, $destination;
if($destination != 250)mes "We are currently docked at "+$locationsname$[$destination]+". Would you like to exit?";
next;
menu "Yes.",Lyes,"No.",Lnope;
Lyes:
if($destination == 250)goto Notime;
if($destination != @dockky)goto Notime;
warp $locationsmap$[$destination], $locationsx[$destination], $locationsy[$destination];
specialeffect2 501;
Lnope:
mes "^FF0000[Airplane Attendant]^000000";
mes "Have a good day. Thank you for traveling with us.";
close;
Notime:
mes "^FF0000[Airplane Attendant]^000000";
if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait.";
if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait.";
close;
Nowhere:
mes "^FF0000[Airplane Attendant]^000000";
mes "We're currently in air. Please wait until the pilot has announced that we have safely landed.";
close;
}
function script F_Itin {
//This is the itinerary's function. It should work well enough.
if($@currenttime==0)mes "Try again later. A recent server reboot or rehash has messed the itinerary up for a bit.";
if($@currenttime==0)close;
if($@currenttime==0)end;
set @tempo, 0;
set @tempo, $@currenttime - 1;
goto seta;
close;
seta:
set @tempo, @tempo + 1;
set @time, gettime(3);
set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes;
if(@minutes>9)set @minutes$, @minutes;
if(@minutess<10)set @minutess$, "0" + @minutess;
if(@minutess>9)set @minutess$, @minutess;
if(@time<12)set @time$,@time;
if(@time==12)set @time$,12;
if(@time>12)set @time$,@time - 12;
if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$ + ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@tempo<12)goto seta;
set @tempo, 0;
goto setb;
setb:
if($@currenttime - 1==@tempo)goto setc;
set @tempo, @tempo + 1;
set @time, gettime(3) + 1;
set @minutes, 5 * @tempo - 5;
set @minutess, 5 * @tempo - 2;
if(@minutes<10)set @minutes$, "0" + @minutes;
if(@minutes>9)set @minutes$, @minutes;
if(@minutess<10)set @minutess$, "0" + @minutess;
if(@minutess>9)set @minutess$, @minutess;
if(@time<12)set @time$,@time;
if(@time==12)set @time$,12;
if(@time>12)set @time$,@time - 12;
if(@time<12)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. - "+"^FF0000"+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==12)mes @time$+":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time>12 && time<24)mes @time$ +":"+ @minutes$ + " P.M. - "+@time$+ ":"+ @minutess$ + " P.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
if(@time==24)mes @time$+":"+ @minutes$ + " A.M. - "+@time$+ ":"+ @minutess$ + " A.M. -"+"^FF0000 "+$locationsname$[$locationn[@tempo]]+"^000000";
goto setb;
setc:
close;
end;
}
function script F_Itinreset {
setarray $alreadygoneto[$locationn[getarg(0)]], 0;
goto sest;
sest:
setarray $locationn[getarg(0)],rand(0,getarraysize($locationsname$) - 1);
if($alreadygoneto[$locationn[getarg(0)]]==1)goto sest;
setarray $alreadygoneto[$locationn[getarg(0)]], 1;
set $destination,$locationn[$@currenttime];
announce "Pilot: The plane has arrived at "+$locationsname$[$locationn[getarg(1)]]+". Departure to "+ $locationsname$[$locationn[getarg(2)]] + " is in 3 minutes.",16;
end;
}

View File

@ -1,119 +1,119 @@
//===== rAthena Script =======================================
//= Banker Script
//===== By: ==================================================
//= Syrus22 (1.0)
//===== Current Version: =====================================
//= 2.0
//===== Compatible With: =====================================
//= Any rAthena version with Account variables.
//===== Description: =========================================
//= An account wide Banker to store Zeny
//===== Additional Comments: =================================
//= Syrus22 - There's an optional transaction fee at the top of
//= the script. To use it simply change the first set command
//= to set the cost variable to whatever you want the fee to be.
//= Version 2.0: Optimized and brought the script up to standard. [Jguy]
//============================================================
prontera,132,217,5 script Banker 109,{
set @cost,500;
mes "[Banker]";
mes "Welcome to the First Bank of Prontera. How can I help you today?";
next;
switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) {
case 1:
mes "[Banker]";
mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny.";
next;
if (@cost > 0) {
mes "[Banker]";
mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
next;
}
input @deposit;
if (@deposit < 1) {
mes "Make sure you ask me to deposit a real amount.";
close;
}
else if (@deposit > Zeny) {
mes "It does not appear like you have the amount of zeny you're trying to deposit!";
close;
}
else if (@deposit > (Zeny - @cost)) {
mes "You need " + @cost + " Zeny to cover the transaction fee!";
close;
}
else {
set Zeny,Zeny - @deposit;
set Zeny,Zeny - @cost;
set #bankstorage,#bankstorage + @deposit;
mes "[Banker]";
mes "Thank you very much... Your zeny is in good hands.";
close;
}
case 2:
mes "[Banker]";
mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny";
next;
if (@cost > 0) {
mes "[Banker]";
mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
next;
}
input @withdrawl;
if (@withdrawl < 1) {
mes "Please don't play games. I need a real amount to withdraw.";
close;
}
else if (@withdrawl > #bankstorage) {
mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!";
close;
}
else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) {
mes "[Banker]";
mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?";
next;
switch(select("Yes please.:No, Thanks")){
case 1:
mes "[Banker]";
mes "Removing " + @cost + " from your withdrawl to cover the deposit fee...";
set @withdrawl,@withdrawl - @cost;
set #bankstorage,#bankstorage - @cost;
set @cost,0;
next;
set Zeny,Zeny - @cost;
set Zeny,Zeny + @withdrawl;
set #bankstorage,#bankstorage - @withdrawl;
mes "[Banker]";
mes "There's your Zeny. Have a good day.";
close;
case 2:
mes "[Banker]";
mes "Very well... come again soon.";
close;
}
}
else {
set Zeny,Zeny - @cost;
set Zeny,Zeny + @withdrawl;
set #bankstorage,#bankstorage - @withdrawl;
mes "[Banker]";
mes "There's your Zeny. Have a good day.";
close;
}
case 3:
mes "[Banker]";
mes "Hmmmm let me check some paper work.";
next;
mes "*Rustle, Rustle*";
next;
mes "[Banker]";
mes "You currently have " + #bankstorage + " Zeny in your account.";
close;
case 4:
mes "[Banker]";
mes "Very well... come again soon.";
close;
}
//===== rAthena Script =======================================
//= Banker Script
//===== By: ==================================================
//= Syrus22 (1.0)
//===== Current Version: =====================================
//= 2.0
//===== Compatible With: =====================================
//= Any rAthena version with Account variables.
//===== Description: =========================================
//= An account wide Banker to store Zeny
//===== Additional Comments: =================================
//= Syrus22 - There's an optional transaction fee at the top of
//= the script. To use it simply change the first set command
//= to set the cost variable to whatever you want the fee to be.
//= Version 2.0: Optimized and brought the script up to standard. [Jguy]
//============================================================
prontera,132,217,5 script Banker 109,{
set @cost,500;
mes "[Banker]";
mes "Welcome to the First Bank of Prontera. How can I help you today?";
next;
switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's my current balance?:Cancel")) {
case 1:
mes "[Banker]";
mes "Very well... How much would you like to deposit? The maximum you can deposit at once is 999,999 Zeny.";
next;
if (@cost > 0) {
mes "[Banker]";
mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
next;
}
input @deposit;
if (@deposit < 1) {
mes "Make sure you ask me to deposit a real amount.";
close;
}
else if (@deposit > Zeny) {
mes "It does not appear like you have the amount of zeny you're trying to deposit!";
close;
}
else if (@deposit > (Zeny - @cost)) {
mes "You need " + @cost + " Zeny to cover the transaction fee!";
close;
}
else {
set Zeny,Zeny - @deposit;
set Zeny,Zeny - @cost;
set #bankstorage,#bankstorage + @deposit;
mes "[Banker]";
mes "Thank you very much... Your zeny is in good hands.";
close;
}
case 2:
mes "[Banker]";
mes "Very well... How much would you like to withdraw? The maximum you can withdraw at one time is 999,999 Zeny";
next;
if (@cost > 0) {
mes "[Banker]";
mes "Oh, and do realize there is a " +@cost + " Zeny charge on all transactions!";
next;
}
input @withdrawl;
if (@withdrawl < 1) {
mes "Please don't play games. I need a real amount to withdraw.";
close;
}
else if (@withdrawl > #bankstorage) {
mes "I show you only have ^00FF00" + #bankstorage +"^000000 zeny in your account!";
close;
}
else if ((@cost > Zeny) && ((Zeny + @withdrawl) > @cost)) {
mes "[Banker]";
mes "You don't have the Zeny for the transaction fee right now. Would you like me to take the fee directly from your withdrawl?";
next;
switch(select("Yes please.:No, Thanks")){
case 1:
mes "[Banker]";
mes "Removing " + @cost + " from your withdrawl to cover the deposit fee...";
set @withdrawl,@withdrawl - @cost;
set #bankstorage,#bankstorage - @cost;
set @cost,0;
next;
set Zeny,Zeny - @cost;
set Zeny,Zeny + @withdrawl;
set #bankstorage,#bankstorage - @withdrawl;
mes "[Banker]";
mes "There's your Zeny. Have a good day.";
close;
case 2:
mes "[Banker]";
mes "Very well... come again soon.";
close;
}
}
else {
set Zeny,Zeny - @cost;
set Zeny,Zeny + @withdrawl;
set #bankstorage,#bankstorage - @withdrawl;
mes "[Banker]";
mes "There's your Zeny. Have a good day.";
close;
}
case 3:
mes "[Banker]";
mes "Hmmmm let me check some paper work.";
next;
mes "*Rustle, Rustle*";
next;
mes "[Banker]";
mes "You currently have " + #bankstorage + " Zeny in your account.";
close;
case 4:
mes "[Banker]";
mes "Very well... come again soon.";
close;
}
} // EOF

View File

@ -1,116 +1,116 @@
//===== rAthena Script =======================================
//= The 2nd Bank of Prontera (with daily 0.01% income!)
//===== By: ==================================================
//= Lupus (1.0)
//===== Current Version: =====================================
//= 1.2a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= A bank which has an interest %
//===== Additional Comments: =================================
// Look for this formula and setup your Bank daily % interest
// #kafrabank/1000 = 0.1% of interest per day
// #kafrabank/100 = 1% of interest per day
// #kafrabank/10 = 10% of interest per day
//
// 1.1 Added log of bank operation -> logmes "some info";
// 1.2 Set max income to 100,000z. It would help to avoid
// zeny exploits when you change DATE at your server
// 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22]
//============================================================
- script Bank Clerk::bankg 833,{
mes"[Maniss]";
mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!";
set @kb_int,(gettime(6)*31)+gettime(5); //today's number
set @income,0;
//calculate %
if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday;
set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum
//max income constant:
if (@income>100000) set @income,100000;
L_NoIncomeToday:
set #kb_int,@kb_int; //reset days timer
if(#kafrabank==0) mes "We could open you an account.";
if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny.";
set #kafrabank,#kafrabank+@income;
if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny.";
mes "What would you like?";
next;
if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2;
if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2;
mes"[Maniss]";
mes "Please, tell me how much zeny you would like to deposit.";
next;
if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT;
if(@kafrabank<1000) goto L_LESS_1000;
if(@kafrabank>zeny) goto L_NOT_ENOUGH;
set zeny,zeny-@kafrabank;
set #kafrabank,#kafrabank+@kafrabank;
mes"[Maniss]";
mes "You've made a deposit of ^135445" + @kafrabank + "z^000000.";
//we log these zeny operations into the log db
logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z";
goto B_EXIT;
M_WITHDRAW:
if(#kafrabank==0) goto L_ZERO_ACCOUNT;
mes"[Maniss]";
mes "Your account: ^135445" + #kafrabank + "^000000 zeny.";
mes "How much zeny would you like to withdraw?";
next;
if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT;
if(@kafrabank<1) goto B_EXIT2;
if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH;
set #kafrabank,#kafrabank-@kafrabank;
set zeny,zeny+@kafrabank;
mes"[Maniss]";
mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here...";
//we log these zeny operations into the log db
logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z";
goto B_EXIT;
L_NOT_ENOUGH:
mes"[Maniss]";
mes "You don't have enough zeny for this operation.";
next;
goto B_EXIT2;
L_ZERO_ACCOUNT:
mes"[Maniss]";
mes "You don't have any zeny on your account!";
next;
goto B_EXIT2;
L_TOO_BIG_AMOUNT:
mes"[Maniss]";
mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny.";
next;
goto B_EXIT2;
L_LESS_1000:
mes"[Maniss]";
mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny.";
next;
goto B_EXIT2;
B_EXIT:
mes "Very well... Come again soon!";
next;
B_EXIT2:
mes"[Maniss]";
mes "Thank you for using our Bank Service. We hope to see you again soon.";
close;
}
prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833
geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833
izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833
morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833
//===== rAthena Script =======================================
//= The 2nd Bank of Prontera (with daily 0.01% income!)
//===== By: ==================================================
//= Lupus (1.0)
//===== Current Version: =====================================
//= 1.2a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= A bank which has an interest %
//===== Additional Comments: =================================
// Look for this formula and setup your Bank daily % interest
// #kafrabank/1000 = 0.1% of interest per day
// #kafrabank/100 = 1% of interest per day
// #kafrabank/10 = 10% of interest per day
//
// 1.1 Added log of bank operation -> logmes "some info";
// 1.2 Set max income to 100,000z. It would help to avoid
// zeny exploits when you change DATE at your server
// 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22]
//============================================================
- script Bank Clerk::bankg 833,{
mes"[Maniss]";
mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!";
set @kb_int,(gettime(6)*31)+gettime(5); //today's number
set @income,0;
//calculate %
if (#kafrabank<=0 || #kb_int>=@kb_int) goto L_NoIncomeToday;
set @income,(#kafrabank/1000)*(@kb_int-#kb_int); //@income == % of the sum
//max income constant:
if (@income>100000) set @income,100000;
L_NoIncomeToday:
set #kb_int,@kb_int; //reset days timer
if(#kafrabank==0) mes "We could open you an account.";
if(@income>0) mes "Today's income: ^135445" + @income + "^000000 zeny.";
set #kafrabank,#kafrabank+@income;
if(#kafrabank>0) mes "Your account: ^135445" + #kafrabank + "^000000 zeny.";
mes "What would you like?";
next;
if(#kafrabank==0) menu "-Open an account",-,"-Quit",B_EXIT2;
if(#kafrabank>0) menu "-Deposit money",-,"-Withdraw money",M_WITHDRAW,"-Quit",B_EXIT2;
mes"[Maniss]";
mes "Please, tell me how much zeny you would like to deposit.";
next;
if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT;
if(@kafrabank<1000) goto L_LESS_1000;
if(@kafrabank>zeny) goto L_NOT_ENOUGH;
set zeny,zeny-@kafrabank;
set #kafrabank,#kafrabank+@kafrabank;
mes"[Maniss]";
mes "You've made a deposit of ^135445" + @kafrabank + "z^000000.";
//we log these zeny operations into the log db
logmes "Bank %: " + @income +"z, Deposit: "+ @kafrabank +"z, Final: "+ #kafrabank +"z";
goto B_EXIT;
M_WITHDRAW:
if(#kafrabank==0) goto L_ZERO_ACCOUNT;
mes"[Maniss]";
mes "Your account: ^135445" + #kafrabank + "^000000 zeny.";
mes "How much zeny would you like to withdraw?";
next;
if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT;
if(@kafrabank<1) goto B_EXIT2;
if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH;
set #kafrabank,#kafrabank-@kafrabank;
set zeny,zeny+@kafrabank;
mes"[Maniss]";
mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here...";
//we log these zeny operations into the log db
logmes "Bank %: " + @income +"z, Withdraw: "+ @kafrabank +"z, Final: "+ #kafrabank +"z";
goto B_EXIT;
L_NOT_ENOUGH:
mes"[Maniss]";
mes "You don't have enough zeny for this operation.";
next;
goto B_EXIT2;
L_ZERO_ACCOUNT:
mes"[Maniss]";
mes "You don't have any zeny on your account!";
next;
goto B_EXIT2;
L_TOO_BIG_AMOUNT:
mes"[Maniss]";
mes "Sorry. The maximum deposit you can make on a time is 10,000,000 zeny.";
next;
goto B_EXIT2;
L_LESS_1000:
mes"[Maniss]";
mes "We're sorry, the minimum amount of zeny you can deposit is 1,000 zeny.";
next;
goto B_EXIT2;
B_EXIT:
mes "Very well... Come again soon!";
next;
B_EXIT2:
mes"[Maniss]";
mes "Thank you for using our Bank Service. We hope to see you again soon.";
close;
}
prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833
geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833
izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833
morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833

View File

@ -1,347 +1,347 @@
//===== rAthena Script =======================================
//= Black Jack
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Black Jack card game. Gameplay based off standard casino
//= black jack rules. Dealer must have at least 17 to stay and will
//= automatically stay at 17 and up. Player must have at least
//= 13 to stay. Aces counted as 11 or 1. Option to "Double Down".
//= Currently does not allow for "insurance", or "splitting"
//= of pairs.
//===== Additional Comments: =================================
//=
//============================================================
cmd_in02,188,89,1 script Black Jack Dealer 57,{
mes "[Dealer]";
mes "Hello there! Would you like to play a game of Black Jack?";
M_Menu:
next;
menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End;
M_0:
mes "[Dealer]";
mes "What would you like to know?";
sM_Menu0:
next;
menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c,
"Ace value.",sM_0d, "Nothing.",M_Menu;
sM_0a:
mes "[Dealer]";
mes "Black Jack is a card game in which the goal is to get 21, or as";
mes "close to 21 points as possible, without going over 21.";
next;
mes "[Dealer]";
mes "Before the game starts, the player must make a bet. Once the bet";
mes "has been made, both the dealer and the player are dealt 2 cards";
mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,";
mes "or you can choose to ^5533FF'pull'^000000.";
next;
mes "[Dealer]";
mes "When you choose to 'stay', you are telling the dealer that you don't";
mes "need anymore cards. This allows the dealer to pull if he/she";
mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The";
mes "dealer can only stay when he/she has^FF3355 17 points or more^000000.";
next;
mes "[Dealer]";
mes "When you choose to 'pull', you are telling the dealer that you want";
mes "another card. By pulling more cards you can increase your point";
mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a";
mes "card from the deck.";
goto sM_Menu0;
sM_0b:
mes "[Dealer]";
mes "There are 3 ways to win and loose at Black Jack.";
next;
mes "[Dealer]";
mes "1.) At the end of a Black Jack round, if you have more points";
mes "than the dealer you will win the round. Conversely if you have";
mes "less points than the dealer you will loose.";
next;
mes "[Dealer]";
mes "2.) If you pull a card that makes your point total go over 21 you";
mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If";
mes "the dealer busts then you will win the round.";
next;
mes "[Dealer]";
mes "3.) If you have a point total of 21 with the first 2 cards, you";
mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000";
mes "and happens when you get an 'Ace' and a '10 valued' card. If the";
mes "dealer gets a Black Jack he/she will automatically win the round.";
next;
mes "[Dealer]";
mes "4.) Besides winning and loosing, you can tie with the dealer. If";
mes "both you and the dealer have the same point total at the end of a";
mes "round, this will result in a tie with no winner and no loss or gain";
mes "in money.";
next;
mes "[Dealer]";
mes "This is called a ^5533FF'push'^000000 with the dealer. This also";
mes "applies to both you and the dealer having Black Jack at the same";
mes "time.";
goto sM_Menu0;
sM_0c:
mes "[Dealer]";
mes "The 'Double Down' option allows you to double your current bet,";
mes "but with the drawback that you will only be able to pull one";
mes "additional card. This option is only available at the beggining of";
mes "each round.";
next;
mes "[Dealer]";
mes "An example of when doubling down is useful, is when";
mes "your first 2 cards give you a point total of 11. You have a good";
mes "chance of getting 21 or 20 with the next card that you draw. This";
mes "would be a good hand to double down on.";
goto sM_Menu0;
sM_0d:
mes "[Dealer]";
mes "The 'Ace' card is a unique card in the game of Black Jack because";
mes "it can have 2 values. An Ace can be counted as either 11 points,";
mes "or just 1 point. For example if you had an Ace and a 4, that would";
mes "give you either 15 or 5 points.";
next;
mes "[Dealer]";
mes "If you decided to stay, the Ace would automatically be counted as";
mes "11 points to give you 15 points total.";
next;
mes "[Dealer]";
mes "If you had decided to pull and received a 9, the ace would";
mes "automatically be counted as 1 point to give you a total of 14";
mes "points. If the Ace was counted as 11 points, you would have a";
mes "point total over 21 and would have lost.";
next;
mes "[Dealer]";
mes "It is because of the flexibilty you have with the 'Ace' that makes";
mes "it the most powerfull card in the game.";
goto sM_Menu0;
M_End:
mes "[Dealer]";
mes "Feel free to come back anytime";
close;
//================
L_Play:
mes "[Dealer]";
mes "Please place your bets...";
next;
menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End;
M_1a:
if(Zeny < 2) goto sL_NotEnuf;
set @bet, 2;
goto L_Cont0;
M_1b:
if(Zeny < 10) goto sL_NotEnuf;
set @bet, 10;
goto L_Cont0;
M_1c:
if(Zeny < 20) goto sL_NotEnuf;
set @bet, 20;
goto L_Cont0;
M_1d:
if(Zeny < 100) goto sL_NotEnuf;
set @bet, 100;
goto L_Cont0;
sL_NotEnuf:
mes "[Dealer]";
mes "I'm sorry but you don't have enough zeny to make that bet.";
close;
L_Cont0:
mes "(the cards are being dealt)";
next;
deletearray $@card[0],13;
set @dealerTurn, 0;
set @numP, 0;
set @numD, 0;
set @pAce, 0;
set @dAce, 0;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
//==============
L_Start:
callsub sF_GetTot;
mes "- Here are the ^FF5533DEALER'S^000000 cards:";
if (@numD==2) callsub sF_D2cards;
if (@numD==3) callsub sF_D3cards;
if (@numD==4) callsub sF_D4cards;
if (@numD==5) callsub sF_D5cards;
mes " The DEALER has: ^FF5533"+@dealTot+"^000000";
mes " ";
mes "- Here are ^5533FFYOUR^000000 cards:";
if (@numP==2) callsub sF_P2cards;
if (@numP==3) callsub sF_P3cards;
if (@numP==4) callsub sF_P4cards;
if (@numP==5) callsub sF_P5cards;
if(@pAce != 1 || @playTot == 21) mes " YOU have: ^5533FF" +@playTot+ "^000000";
if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000";
next;
if(@playTot==21 && @dealTot==21) goto sL_Push;
if(@numP==2 && @playTot == 21) goto sL_Win;
if(@numD==2 && @dealTot == 21) goto sL_Lose;
if(@playTot > 21) goto sL_Lose;
if(@dealTot > 21) goto sL_Win;
if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double;
if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay;
M_Stay:
mes "[Dealer]";
if(@playTot < 13) goto sL_PlayToLow;
if(@dealTot > 16) mes "The Dealer stays.";
if(@dealTot > 16 || @numD == 5) goto L_Check;
mes "The Dealer is going to pull";
next;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
set @dealerTurn, 1;
goto L_Start;
sL_PlayToLow:
mes "I'm sorry but you do not have a high enough total to stay. You must pull.";
next;
goto M_Hit;
M_Hit:
if(@numP == 5) goto M_Stay;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start;
M_Double:
mes "[Dealer]";
mes "Player has chosen to Double Down. You're current bet will be";
mes "doubled, and you will only be able to pull 1 extra card.";
next;
set @dealerTurn, 1;
set @bet, @bet*2;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start;
//=============
L_Check:
next;
if(@playTot < @dealTot) goto sL_Lose;
if(@playTot == @dealTot) goto sL_Push;
sL_Win:
mes "[Dealer]";
mes "Congratulations, you've won!";
next;
set Zeny, Zeny + @bet;
goto L_Play;
sL_Lose:
mes "[Dealer]";
mes "I'm sorry but you've lost.";
set Zeny, Zeny - @bet;
next;
goto L_Play;
sL_Push:
mes "[Dealer]";
mes "Its a push. You tied with the Dealer.";
next;
goto L_Play;
//==================================
// Sub function for dealing/pulling the cards
sF_GetCards:
set @rnd, rand(1,13);
if($@card[@rnd] == 4) goto sF_GetCards;
set $@card[@rnd], $@card[@rnd] + 1;
set getarg(1), @rnd;
if(getarg(1) > 10) set getarg(1), 10;
if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11;
if(getarg(1) == 11) set getarg(3), 1;
set getarg(2), " " + getarg(1) + " ";
if(@rnd == 10) set getarg(2), getarg(1);
if(@rnd == 1) set getarg(2), " A ";
if(@rnd == 11) set getarg(2), " J ";
if(@rnd == 12) set getarg(2), " Q ";
if(@rnd == 13) set getarg(2), " K ";
set getarg(0), getarg(0) + 1;
return;
//==================================
// Sub function for getting the total score for each hand
sF_GetTot:
set @i, 0;
set @dealTot, 0;
set @playTot, 0;
GetDealTot:
set @dealTot, @dealTot + @dealCard[@i];
set @i, @i + 1;
if(@i < @numD) goto GetDealTot;
if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10;
set @i, 0;
GetPlayTot:
set @playTot, @playTot + @playCard[@i];
set @i, @i + 1;
if(@i < @numP) goto GetPlayTot;
if(@pAce == 1 && @playTot > 21) set @pAce, 2;
if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10;
return;
//=======================================
// Sub function for displaying the Cards
sF_D2cards:
mes " .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | ";
mes " '-----' '-----' ";
return;
sF_P2cards:
mes " .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | ";
mes " '-----' '-----' ";
return;
sF_D3cards:
mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
return;
sF_P3cards:
mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
return;
sF_D4cards:
mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
mes " .-----. ";
mes " | "+@dealCard$[3]+" |";
mes " '-----' ";
return;
sF_P4cards:
mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |";
mes " '-----' '-----' '-----' ";
mes " .-----. ";
mes " | "+@playCard$[3]+" |";
mes " '-----' ";
return;
sF_D5cards:
mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
mes " .-----. .-----. ";
mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | ";
mes " '-----' '-----' ";
return;
sF_P5cards:
mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
mes " .-----. .-----. ";
mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | ";
mes " '-----' '-----' ";
return;
}
//===== rAthena Script =======================================
//= Black Jack
//===== By: ==================================================
//= kobra_k88
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Black Jack card game. Gameplay based off standard casino
//= black jack rules. Dealer must have at least 17 to stay and will
//= automatically stay at 17 and up. Player must have at least
//= 13 to stay. Aces counted as 11 or 1. Option to "Double Down".
//= Currently does not allow for "insurance", or "splitting"
//= of pairs.
//===== Additional Comments: =================================
//=
//============================================================
cmd_in02,188,89,1 script Black Jack Dealer 57,{
mes "[Dealer]";
mes "Hello there! Would you like to play a game of Black Jack?";
M_Menu:
next;
menu "What are the rules?",M_0, "I want to play.",L_Play, "No thanks.",M_End;
M_0:
mes "[Dealer]";
mes "What would you like to know?";
sM_Menu0:
next;
menu "The basics.",sM_0a, "Winning and loosing.",sM_0b, "'Double Down'.",sM_0c,
"Ace value.",sM_0d, "Nothing.",M_Menu;
sM_0a:
mes "[Dealer]";
mes "Black Jack is a card game in which the goal is to get 21, or as";
mes "close to 21 points as possible, without going over 21.";
next;
mes "[Dealer]";
mes "Before the game starts, the player must make a bet. Once the bet";
mes "has been made, both the dealer and the player are dealt 2 cards";
mes "each. Depending on what cards you have, you can choose to ^5533FF'stay'^000000,";
mes "or you can choose to ^5533FF'pull'^000000.";
next;
mes "[Dealer]";
mes "When you choose to 'stay', you are telling the dealer that you don't";
mes "need anymore cards. This allows the dealer to pull if he/she";
mes "wants to. In order to stay, you must have ^FF3355at least 13 points^000000. The";
mes "dealer can only stay when he/she has^FF3355 17 points or more^000000.";
next;
mes "[Dealer]";
mes "When you choose to 'pull', you are telling the dealer that you want";
mes "another card. By pulling more cards you can increase your point";
mes "total. As long has you have ^FF3355less than 21^000000 points you can pull a";
mes "card from the deck.";
goto sM_Menu0;
sM_0b:
mes "[Dealer]";
mes "There are 3 ways to win and loose at Black Jack.";
next;
mes "[Dealer]";
mes "1.) At the end of a Black Jack round, if you have more points";
mes "than the dealer you will win the round. Conversely if you have";
mes "less points than the dealer you will loose.";
next;
mes "[Dealer]";
mes "2.) If you pull a card that makes your point total go over 21 you";
mes "will automatically loose the round. This is called a ^5533FF'bust'^000000. If";
mes "the dealer busts then you will win the round.";
next;
mes "[Dealer]";
mes "3.) If you have a point total of 21 with the first 2 cards, you";
mes "will automatically win the round. This is called a ^5533FF'Black Jack'^000000";
mes "and happens when you get an 'Ace' and a '10 valued' card. If the";
mes "dealer gets a Black Jack he/she will automatically win the round.";
next;
mes "[Dealer]";
mes "4.) Besides winning and loosing, you can tie with the dealer. If";
mes "both you and the dealer have the same point total at the end of a";
mes "round, this will result in a tie with no winner and no loss or gain";
mes "in money.";
next;
mes "[Dealer]";
mes "This is called a ^5533FF'push'^000000 with the dealer. This also";
mes "applies to both you and the dealer having Black Jack at the same";
mes "time.";
goto sM_Menu0;
sM_0c:
mes "[Dealer]";
mes "The 'Double Down' option allows you to double your current bet,";
mes "but with the drawback that you will only be able to pull one";
mes "additional card. This option is only available at the beggining of";
mes "each round.";
next;
mes "[Dealer]";
mes "An example of when doubling down is useful, is when";
mes "your first 2 cards give you a point total of 11. You have a good";
mes "chance of getting 21 or 20 with the next card that you draw. This";
mes "would be a good hand to double down on.";
goto sM_Menu0;
sM_0d:
mes "[Dealer]";
mes "The 'Ace' card is a unique card in the game of Black Jack because";
mes "it can have 2 values. An Ace can be counted as either 11 points,";
mes "or just 1 point. For example if you had an Ace and a 4, that would";
mes "give you either 15 or 5 points.";
next;
mes "[Dealer]";
mes "If you decided to stay, the Ace would automatically be counted as";
mes "11 points to give you 15 points total.";
next;
mes "[Dealer]";
mes "If you had decided to pull and received a 9, the ace would";
mes "automatically be counted as 1 point to give you a total of 14";
mes "points. If the Ace was counted as 11 points, you would have a";
mes "point total over 21 and would have lost.";
next;
mes "[Dealer]";
mes "It is because of the flexibilty you have with the 'Ace' that makes";
mes "it the most powerfull card in the game.";
goto sM_Menu0;
M_End:
mes "[Dealer]";
mes "Feel free to come back anytime";
close;
//================
L_Play:
mes "[Dealer]";
mes "Please place your bets...";
next;
menu "2z",M_1a, "10z",M_1b, "20z",M_1c, "100z",M_1d, "Too rich for my blood....",M_End;
M_1a:
if(Zeny < 2) goto sL_NotEnuf;
set @bet, 2;
goto L_Cont0;
M_1b:
if(Zeny < 10) goto sL_NotEnuf;
set @bet, 10;
goto L_Cont0;
M_1c:
if(Zeny < 20) goto sL_NotEnuf;
set @bet, 20;
goto L_Cont0;
M_1d:
if(Zeny < 100) goto sL_NotEnuf;
set @bet, 100;
goto L_Cont0;
sL_NotEnuf:
mes "[Dealer]";
mes "I'm sorry but you don't have enough zeny to make that bet.";
close;
L_Cont0:
mes "(the cards are being dealt)";
next;
deletearray $@card[0],13;
set @dealerTurn, 0;
set @numP, 0;
set @numD, 0;
set @pAce, 0;
set @dAce, 0;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
//==============
L_Start:
callsub sF_GetTot;
mes "- Here are the ^FF5533DEALER'S^000000 cards:";
if (@numD==2) callsub sF_D2cards;
if (@numD==3) callsub sF_D3cards;
if (@numD==4) callsub sF_D4cards;
if (@numD==5) callsub sF_D5cards;
mes " The DEALER has: ^FF5533"+@dealTot+"^000000";
mes " ";
mes "- Here are ^5533FFYOUR^000000 cards:";
if (@numP==2) callsub sF_P2cards;
if (@numP==3) callsub sF_P3cards;
if (@numP==4) callsub sF_P4cards;
if (@numP==5) callsub sF_P5cards;
if(@pAce != 1 || @playTot == 21) mes " YOU have: ^5533FF" +@playTot+ "^000000";
if(@pAce == 1 && @playTot != 21) mes " You have: ^5533FF" +@playTot+ "^000000, or ^5533FF" +(@playTot-10)+ "^000000";
next;
if(@playTot==21 && @dealTot==21) goto sL_Push;
if(@numP==2 && @playTot == 21) goto sL_Win;
if(@numD==2 && @dealTot == 21) goto sL_Lose;
if(@playTot > 21) goto sL_Lose;
if(@dealTot > 21) goto sL_Win;
if(@numP==2 && @dealerTurn==0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay, "Double Down",M_Double;
if(@dealerTurn == 0) menu "Hit me(pull)",M_Hit, "Stay",M_Stay;
M_Stay:
mes "[Dealer]";
if(@playTot < 13) goto sL_PlayToLow;
if(@dealTot > 16) mes "The Dealer stays.";
if(@dealTot > 16 || @numD == 5) goto L_Check;
mes "The Dealer is going to pull";
next;
callsub sF_GetCards, @numD, @dealCard[@numD], @dealCard$[@numD], @dAce;
set @dealerTurn, 1;
goto L_Start;
sL_PlayToLow:
mes "I'm sorry but you do not have a high enough total to stay. You must pull.";
next;
goto M_Hit;
M_Hit:
if(@numP == 5) goto M_Stay;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start;
M_Double:
mes "[Dealer]";
mes "Player has chosen to Double Down. You're current bet will be";
mes "doubled, and you will only be able to pull 1 extra card.";
next;
set @dealerTurn, 1;
set @bet, @bet*2;
callsub sF_GetCards, @numP, @playCard[@numP], @playCard$[@numP], @pAce;
goto L_Start;
//=============
L_Check:
next;
if(@playTot < @dealTot) goto sL_Lose;
if(@playTot == @dealTot) goto sL_Push;
sL_Win:
mes "[Dealer]";
mes "Congratulations, you've won!";
next;
set Zeny, Zeny + @bet;
goto L_Play;
sL_Lose:
mes "[Dealer]";
mes "I'm sorry but you've lost.";
set Zeny, Zeny - @bet;
next;
goto L_Play;
sL_Push:
mes "[Dealer]";
mes "Its a push. You tied with the Dealer.";
next;
goto L_Play;
//==================================
// Sub function for dealing/pulling the cards
sF_GetCards:
set @rnd, rand(1,13);
if($@card[@rnd] == 4) goto sF_GetCards;
set $@card[@rnd], $@card[@rnd] + 1;
set getarg(1), @rnd;
if(getarg(1) > 10) set getarg(1), 10;
if(getarg(1) == 1 && getarg(3) < 1) set getarg(1), 11;
if(getarg(1) == 11) set getarg(3), 1;
set getarg(2), " " + getarg(1) + " ";
if(@rnd == 10) set getarg(2), getarg(1);
if(@rnd == 1) set getarg(2), " A ";
if(@rnd == 11) set getarg(2), " J ";
if(@rnd == 12) set getarg(2), " Q ";
if(@rnd == 13) set getarg(2), " K ";
set getarg(0), getarg(0) + 1;
return;
//==================================
// Sub function for getting the total score for each hand
sF_GetTot:
set @i, 0;
set @dealTot, 0;
set @playTot, 0;
GetDealTot:
set @dealTot, @dealTot + @dealCard[@i];
set @i, @i + 1;
if(@i < @numD) goto GetDealTot;
if(@dAce == 1 && @dealTot > 21) set @dealTot, @dealTot - 10;
set @i, 0;
GetPlayTot:
set @playTot, @playTot + @playCard[@i];
set @i, @i + 1;
if(@i < @numP) goto GetPlayTot;
if(@pAce == 1 && @playTot > 21) set @pAce, 2;
if(@pAce > 0 && @playTot > 21) set @playTot, @playTot - 10;
return;
//=======================================
// Sub function for displaying the Cards
sF_D2cards:
mes " .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | ";
mes " '-----' '-----' ";
return;
sF_P2cards:
mes " .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | ";
mes " '-----' '-----' ";
return;
sF_D3cards:
mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
return;
sF_P3cards:
mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
return;
sF_D4cards:
mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
mes " .-----. ";
mes " | "+@dealCard$[3]+" |";
mes " '-----' ";
return;
sF_P4cards:
mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" |";
mes " '-----' '-----' '-----' ";
mes " .-----. ";
mes " | "+@playCard$[3]+" |";
mes " '-----' ";
return;
sF_D5cards:
mes " .-----. .-----. .-----. ";
mes " | "+@dealCard$[0]+" | | "+@dealCard$[1]+" | | "+@dealCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
mes " .-----. .-----. ";
mes " | "+@dealCard$[3]+" | | "+@dealCard$[4]+" | ";
mes " '-----' '-----' ";
return;
sF_P5cards:
mes " .-----. .-----. .-----. ";
mes " | "+@playCard$[0]+" | | "+@playCard$[1]+" | | "+@playCard$[2]+" | ";
mes " '-----' '-----' '-----' ";
mes " .-----. .-----. ";
mes " | "+@playCard$[3]+" | | "+@playCard$[4]+" | ";
mes " '-----' '-----' ";
return;
}

View File

@ -1,43 +1,43 @@
//===== rAthena Script =======================================
//= Floating Server Rates
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= It's a simply example of setbattleflag
//= This script will change your server rates from 1x to 1.5x every 6 hours
//= Note: It doesn't affect Card granted drops, MVP & Treasure Chests drops ^_-
//= It also doesn't affect CARD drops, because they are just 0.01%
//===== Additional Comments: =================================
//= You can make incredible scripts with 'setbattleflag'!
//============================================================
- script FloatingRates -1,{
OnInit:
//add any other HOURS
OnHour00:
OnHour06:
OnHour12:
OnHour18:
//-------------------
set $@brate,rand(100,150);
set $@jrate,rand(100,150);
set $@drate,rand(100,150);
//Base exp
setbattleflag("base_exp_rate",$@brate);
//Job exp
setbattleflag("job_exp_rate",$@jrate);
//Drops
setbattleflag("item_rate_common",$@drate);
setbattleflag("item_rate_heal",$@drate);
setbattleflag("item_rate_use",$@drate);
setbattleflag("item_rate_equip",$@drate);
//we don't change card drops rate, because these values won't change them anyway
atcommand "@reloadmobdb";
announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060;
end;
}
//===== rAthena Script =======================================
//= Floating Server Rates
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= It's a simply example of setbattleflag
//= This script will change your server rates from 1x to 1.5x every 6 hours
//= Note: It doesn't affect Card granted drops, MVP & Treasure Chests drops ^_-
//= It also doesn't affect CARD drops, because they are just 0.01%
//===== Additional Comments: =================================
//= You can make incredible scripts with 'setbattleflag'!
//============================================================
- script FloatingRates -1,{
OnInit:
//add any other HOURS
OnHour00:
OnHour06:
OnHour12:
OnHour18:
//-------------------
set $@brate,rand(100,150);
set $@jrate,rand(100,150);
set $@drate,rand(100,150);
//Base exp
setbattleflag("base_exp_rate",$@brate);
//Job exp
setbattleflag("job_exp_rate",$@jrate);
//Drops
setbattleflag("item_rate_common",$@drate);
setbattleflag("item_rate_heal",$@drate);
setbattleflag("item_rate_use",$@drate);
setbattleflag("item_rate_equip",$@drate);
//we don't change card drops rate, because these values won't change them anyway
atcommand "@reloadmobdb";
announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060;
end;
}

View File

@ -1,454 +1,454 @@
//===== rAthena Script =======================================
//= Lottery
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.2.1a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Daily lottery draw
//===== Additional Comments: =================================
//= Numbers drawn daily (Time is configured line 29)
//= *Added GM-Riggability
//= *Ability to renew ticket
//= *Improved interface
//= *Fixed minor bug where first load didn't work.
//= 1.2.1a fix due to new script engine
//============================================================
- script lotterygenerator -1,{
OnInit:
set $L_TicketPrice,4750; // TICKET COST
set $L_Prize_Money,5000000; // JACKPOT AMOUNT
set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE
if ($LID == 0) goto L_GenID;
end;
//Modify for own time
OnClock2045:
// CHECKS IF LOTTERY IS RIGGED
if ($L_Rigged == 1) goto L_Rigged_Draw;
// GENERATES RANDOM NUMBERS 1-40
Pick1:
set $LW1,rand (1,40);
Pick2:
set $LW2,rand (1,40);
if ($LW2 == $LW1) goto Pick2;
Pick3:
set $LW3,rand (1,40);
if ($LW3 == $LW2) goto Pick3;
if ($LW3 == $LW1) goto Pick3;
Pick4:
set $LW4,rand (1,40);
if ($LW4 == $LW2) goto Pick4;
if ($LW4 == $LW1) goto Pick4;
if ($LW4 == $LW3) goto Pick4;
Pick5:
set $LW5,rand (1,40);
if ($LW5 == $LW1) goto Pick5;
if ($LW5 == $LW2) goto Pick5;
if ($LW5 == $LW3) goto Pick5;
if ($LW5 == $LW4) goto Pick5;
Pick6:
set $LW6,rand (1,40);
if ($LW6 == $LW1) goto Pick6;
if ($LW6 == $LW2) goto Pick6;
if ($LW6 == $LW3) goto Pick6;
if ($LW6 == $LW4) goto Pick6;
if ($LW6 == $LW5) goto Pick6;
// BROADCASTS DRAW
L_Broadcast:
Announce "Lottery: Welcome to tonight's lotto draw!",8;
Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
Announce "Congratulations to the winners of tonight!",8;
// GENERATES DRAW ID CODE
L_GenID:
set $LID2,$LID;
// SETS TOMORROW'S ID NUMBER
set $LID,rand (100000,999999);
end;
// SETS DRAW TO RIGGED NUMBERS
L_Rigged_Draw:
set $LW1,$LR1;
set $LW2,$LR2;
set $LW3,$LR3;
set $LW4,$LR4;
set $LW5,$LR5;
set $LW6,$LR6;
set $L_Rigged,0;
goto L_Broadcast;
}
prontera,141,182,5 script Lottery 76,{
L_Begin:
mes "[Lottery]";
mes "Winning Lotto Numbers ("+$LID2+"):";
mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000";
if ($LID > 99999) mes "Your Ticket ("+#LID+"):";
if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000";
mes "Next Draw-ID: ^FF0000" + $LID + "^000000.";
next;
if (getgmlevel() > 90) goto L_GM;
menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel;
// PURCHASE TICKET
L_Buy:
if (#LID == $LID && #L1 != 0) goto L_DoubleTicket;
mes "[Lottery]";
mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000.";
mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000.";
next;
menu "Buy Ticket",-,"Cancel",L_Cancel;
if (zeny < $L_TicketPrice) goto L_NoZeny;
set zeny,zeny-$L_TicketPrice;
mes "[Lottery]";
mes "Would you like your numbers hand picked or computer generated?";
next;
menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew;
// RENEW LAST TICKET
L_Renew:
if ($LID < 99999) goto L_Invalid;
set #LID,$LID;
goto L_Confirm2;
L_ComputerGen:
// SELECTS RANDOM NUMBERS
set @L1,0;
set @L2,0;
set @L3,0;
set @L4,0;
set @L5,0;
set @L6,0;
Pick1:
set @L1,rand (1,40);
Pick2:
set @L2,rand (1,40);
if (@L2 == @L1) goto Pick2;
Pick3:
set @L3,rand (1,40);
if (@L3 == @L2) goto Pick3;
if (@L3 == @L1) goto Pick3;
Pick4:
set @L4,rand (1,40);
if (@L4 == @L2) goto Pick4;
if (@L4 == @L1) goto Pick4;
if (@L4 == @L3) goto Pick4;
Pick5:
set @L5,rand (1,40);
if (@L5 == @L1) goto Pick5;
if (@L5 == @L2) goto Pick5;
if (@L5 == @L3) goto Pick5;
if (@L5 == @L4) goto Pick5;
Pick6:
set @L6,rand (1,40);
if (@L6 == @L1) goto Pick6;
if (@L6 == @L2) goto Pick6;
if (@L6 == @L3) goto Pick6;
if (@L6 == @L4) goto Pick6;
if (@L6 == @L5) goto Pick6;
mes "[Lottery]";
mes "The computer has selected the following numbers:";
mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
next;
menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen;
// HAND PICK LOTTERY NUMBERS
L_HandPick:
mes "[Lottery]";
mes "Please pick your numbers (1-40):";
set @L1,0;
set @L2,0;
set @L3,0;
set @L4,0;
set @L5,0;
set @L6,0;
Input1:
input @L1;
if (@L1 < 1 || @L1 > 40) goto Input1;
mes @L1;
Input2:
input @L2;
if (@L2 < 1 || @L2 > 40) goto Input2;
if (@L2 == @L1) goto Input2;
mes @L2;
Input3:
input @L3;
if (@L3 < 1 || @L3 > 40) goto Input3;
if (@L3 == @L1) goto Input3;
if (@L3 == @L2) goto Input3;
mes @L3;
Input4:
input @L4;
if (@L4 < 1 || @L4 > 40) goto Input4;
if (@L4 == @L1) goto Input4;
if (@L4 == @L2) goto Input4;
if (@L4 == @L3) goto Input4;
mes @L4;
Input5:
input @L5;
if (@L5 < 1 || @L5 > 40) goto Input5;
if (@L5 == @L1) goto Input5;
if (@L5 == @L2) goto Input5;
if (@L5 == @L3) goto Input5;
if (@L5 == @L4) goto Input5;
mes @L5;
Input6:
input @L6;
if (@L6 < 1 || @L6 > 40) goto Input6;
if (@L6 == @L1) goto Input6;
if (@L6 == @L2) goto Input6;
if (@L6 == @L3) goto Input6;
if (@L6 == @L4) goto Input6;
if (@L6 == @L5) goto Input6;
mes @L6;
next;
mes "[Lottery]";
mes "Your numbers are:";
mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
next;
menu "Confirm",L_Confirm,"Re-Pick",L_HandPick;
L_Confirm:
set #LW1,@L1;
set #LW2,@L2;
set #LW3,@L3;
set #LW4,@L4;
set #LW5,@L5;
set #LW6,@L6;
set #LID,$LID;
L_Confirm2:
mes "[Lottery]";
mes "The live broadcasted draw is at 9pm.";
mes "You can claim your ticket between then and the next draw.";
next;
mes "[Lottery]";
mes "Good luck!";
close;
L_Claim:
// CHECKS TICKET VALIDILITY
if (#LID != $LID2) goto L_Invalid;
// CHECKS HOW MANY NUMBERS MATCHED
set @LPrize,0;
if (#LW1 == $LW1) set @LPrize,@LPrize+1;
if (#LW1 == $LW2) set @LPrize,@LPrize+1;
if (#LW1 == $LW3) set @LPrize,@LPrize+1;
if (#LW1 == $LW4) set @LPrize,@LPrize+1;
if (#LW1 == $LW5) set @LPrize,@LPrize+1;
if (#LW1 == $LW6) set @LPrize,@LPrize+1;
if (#LW2 == $LW1) set @LPrize,@LPrize+1;
if (#LW2 == $LW2) set @LPrize,@LPrize+1;
if (#LW2 == $LW3) set @LPrize,@LPrize+1;
if (#LW2 == $LW4) set @LPrize,@LPrize+1;
if (#LW2 == $LW5) set @LPrize,@LPrize+1;
if (#LW2 == $LW6) set @LPrize,@LPrize+1;
if (#LW3 == $LW1) set @LPrize,@LPrize+1;
if (#LW3 == $LW2) set @LPrize,@LPrize+1;
if (#LW3 == $LW3) set @LPrize,@LPrize+1;
if (#LW3 == $LW4) set @LPrize,@LPrize+1;
if (#LW3 == $LW5) set @LPrize,@LPrize+1;
if (#LW3 == $LW6) set @LPrize,@LPrize+1;
if (#LW4 == $LW1) set @LPrize,@LPrize+1;
if (#LW4 == $LW2) set @LPrize,@LPrize+1;
if (#LW4 == $LW3) set @LPrize,@LPrize+1;
if (#LW4 == $LW4) set @LPrize,@LPrize+1;
if (#LW4 == $LW5) set @LPrize,@LPrize+1;
if (#LW4 == $LW6) set @LPrize,@LPrize+1;
if (#LW5 == $LW1) set @LPrize,@LPrize+1;
if (#LW5 == $LW2) set @LPrize,@LPrize+1;
if (#LW5 == $LW3) set @LPrize,@LPrize+1;
if (#LW5 == $LW4) set @LPrize,@LPrize+1;
if (#LW5 == $LW5) set @LPrize,@LPrize+1;
if (#LW5 == $LW6) set @LPrize,@LPrize+1;
if (#LW6 == $LW1) set @LPrize,@LPrize+1;
if (#LW6 == $LW2) set @LPrize,@LPrize+1;
if (#LW6 == $LW3) set @LPrize,@LPrize+1;
if (#LW6 == $LW4) set @LPrize,@LPrize+1;
if (#LW6 == $LW5) set @LPrize,@LPrize+1;
if (#LW6 == $LW6) set @LPrize,@LPrize+1;
if (@LPrize == 6) goto LWinBig;
if (@LPrize > 3 && @LPrize < 6) goto LWinSmall;
// NO WINNER
mes "[Lottery]";
mes "Bad luck, it appears you do not hold a winning ticket.";
next;
mes "[Lottery]";
mes "Better luck next time!.";
close;
// MATCHED ALL SIX
LWinBig:
mes "[Lottery]";
mes "You have matched all six numbers!";
mes "Jackpot!";
mes "You've won ^0000FF" + $L_Prize_Money + "z^000000.";
set zeny,zeny+$L_Prize_Money;
Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8;
set #LID,0;
close;
// MATCHED AT LEAST 4
LWinSmall:
mes "[Lottery]";
mes "You have matched at least 4 numbers!";
mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000.";
set zeny,zeny+$L_Prize_Money_Small;
Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8;
set #LID,0;
close;
// NO ZENY
L_NoZeny:
mes "[Lottery]";
mes "You can't afford a lottery ticket.";
close;
// INVALID TICKET
L_Invalid:
mes "[Lottery]";
mes "I'm sorry but it appears that you have an invalid ticket.";
close;
// DOUBLE TICKET
L_DoubleTicket:
mes "[Lottery]";
mes "It appears that you already have a ticket for today.";
mes "You may only purchase one ticket per draw.";
close;
L_Cancel:
mes "[Lottery]";
mes "Come back soon!";
close;
// GM MENU (Lets you manually do draws)
L_GM:
menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",L_Cancel;
// CHECKS IF LOTTERY IS RIGGED
if ($L_Rigged == 1) goto L_Rigged_Draw;
// GENERATES RANDOM NUMBERS 1-40
GMPick1:
set $LW1,rand (1,40);
GMPick2:
set $LW2,rand (1,40);
if ($LW2 == $LW1) goto GMPick2;
GMPick3:
set $LW3,rand (1,40);
if ($LW3 == $LW2) goto GMPick3;
if ($LW3 == $LW1) goto GMPick3;
GMPick4:
set $LW4,rand (1,40);
if ($LW4 == $LW2) goto GMPick4;
if ($LW4 == $LW1) goto GMPick4;
if ($LW4 == $LW3) goto GMPick4;
GMPick5:
set $LW5,rand (1,40);
if ($LW5 == $LW1) goto GMPick5;
if ($LW5 == $LW2) goto GMPick5;
if ($LW5 == $LW3) goto GMPick5;
if ($LW5 == $LW4) goto GMPick5;
GMPick6:
set $LW6,rand (1,40);
if ($LW6 == $LW1) goto GMPick6;
if ($LW6 == $LW2) goto GMPick6;
if ($LW6 == $LW3) goto GMPick6;
if ($LW6 == $LW4) goto GMPick6;
if ($LW6 == $LW5) goto GMPick6;
// BROADCASTS DRAW
L_Broadcast:
Announce "Lottery: Welcome to the special GM's lotto draw!",8;
Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
Announce "Congratulations to the winners!",8;
// GENERATES DRAW ID CODE
L_GenID:
set $LID2,$LID;
// SETS TOMORROW'S ID NUMBER
set $LID,rand (100000,999999);
close;
// SETS DRAW TO RIGGED NUMBERS
L_Rigged_Draw:
set $LW1,$LR1;
set $LW2,$LR2;
set $LW3,$LR3;
set $LW4,$LR4;
set $LW5,$LR5;
set $LW6,$LR6;
set $L_Rigged,0;
goto L_Broadcast;
// ALLOWS GM TO DO A RIGGED DRAW
L_GM_Rig:
mes "[Lottery]";
mes "Please pick your numbers (1-40):";
set $LR1,0;
set $LR2,0;
set $LR3,0;
set $LR4,0;
set $LR5,0;
set $LR6,0;
GMInput1:
Input $LR1;
if ($LR1 < 1 || $LR1 > 40) goto GMInput1;
mes $LR1;
GMInput2:
Input $LR2;
if ($LR2 < 1 || $LR2 > 40) goto GMInput2;
if ($LR2 == $LR1) goto GMInput2;
mes $LR2;
GMInput3:
Input $LR3;
if ($LR3 < 1 || $LR3 > 40) goto GMInput3;
if ($LR3 == $LR1) goto GMInput3;
if ($LR3 == $LR2) goto GMInput3;
mes $LR3;
GMInput4:
Input $LR4;
if ($LR4 < 1 || $LR4 > 40) goto GMInput4;
if ($LR4 == $LR1) goto GMInput4;
if ($LR4 == $LR2) goto GMInput4;
if ($LR4 == $LR3) goto GMInput4;
mes $LR4;
GMInput5:
Input $LR5;
if ($LR5 < 1 || $LR5 > 40) goto GMInput5;
if ($LR5 == $LR1) goto GMInput5;
if ($LR5 == $LR2) goto GMInput5;
if ($LR5 == $LR3) goto GMInput5;
if ($LR5 == $LR4) goto GMInput5;
mes $LR5;
GMInput6:
Input $LR6;
if ($LR6 < 1 || $LR6 > 40) goto GMInput6;
if ($LR6 == $LR1) goto GMInput6;
if ($LR6 == $LR2) goto GMInput6;
if ($LR6 == $LR3) goto GMInput6;
if ($LR6 == $LR4) goto GMInput6;
if ($LR6 == $LR5) goto GMInput6;
mes $LR6;
next;
mes "[Lottery]";
mes "Lottery rigged for next draw.";
set $L_Rigged,1;
close;
}
//===== rAthena Script =======================================
//= Lottery
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.2.1a
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Daily lottery draw
//===== Additional Comments: =================================
//= Numbers drawn daily (Time is configured line 29)
//= *Added GM-Riggability
//= *Ability to renew ticket
//= *Improved interface
//= *Fixed minor bug where first load didn't work.
//= 1.2.1a fix due to new script engine
//============================================================
- script lotterygenerator -1,{
OnInit:
set $L_TicketPrice,4750; // TICKET COST
set $L_Prize_Money,5000000; // JACKPOT AMOUNT
set $L_Prize_Money_Small,1000000; // SECONDARY PRIZE
if ($LID == 0) goto L_GenID;
end;
//Modify for own time
OnClock2045:
// CHECKS IF LOTTERY IS RIGGED
if ($L_Rigged == 1) goto L_Rigged_Draw;
// GENERATES RANDOM NUMBERS 1-40
Pick1:
set $LW1,rand (1,40);
Pick2:
set $LW2,rand (1,40);
if ($LW2 == $LW1) goto Pick2;
Pick3:
set $LW3,rand (1,40);
if ($LW3 == $LW2) goto Pick3;
if ($LW3 == $LW1) goto Pick3;
Pick4:
set $LW4,rand (1,40);
if ($LW4 == $LW2) goto Pick4;
if ($LW4 == $LW1) goto Pick4;
if ($LW4 == $LW3) goto Pick4;
Pick5:
set $LW5,rand (1,40);
if ($LW5 == $LW1) goto Pick5;
if ($LW5 == $LW2) goto Pick5;
if ($LW5 == $LW3) goto Pick5;
if ($LW5 == $LW4) goto Pick5;
Pick6:
set $LW6,rand (1,40);
if ($LW6 == $LW1) goto Pick6;
if ($LW6 == $LW2) goto Pick6;
if ($LW6 == $LW3) goto Pick6;
if ($LW6 == $LW4) goto Pick6;
if ($LW6 == $LW5) goto Pick6;
// BROADCASTS DRAW
L_Broadcast:
Announce "Lottery: Welcome to tonight's lotto draw!",8;
Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
Announce "Congratulations to the winners of tonight!",8;
// GENERATES DRAW ID CODE
L_GenID:
set $LID2,$LID;
// SETS TOMORROW'S ID NUMBER
set $LID,rand (100000,999999);
end;
// SETS DRAW TO RIGGED NUMBERS
L_Rigged_Draw:
set $LW1,$LR1;
set $LW2,$LR2;
set $LW3,$LR3;
set $LW4,$LR4;
set $LW5,$LR5;
set $LW6,$LR6;
set $L_Rigged,0;
goto L_Broadcast;
}
prontera,141,182,5 script Lottery 76,{
L_Begin:
mes "[Lottery]";
mes "Winning Lotto Numbers ("+$LID2+"):";
mes "^0000FF[" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]^000000";
if ($LID > 99999) mes "Your Ticket ("+#LID+"):";
if ($LID > 99999) mes "^FF0000[" + #LW1 + "] [" + #LW2 + "] [" + #LW3 + "] [" + #LW4 + "] [" + #LW5 + "] [" + #LW6 + "]^000000";
mes "Next Draw-ID: ^FF0000" + $LID + "^000000.";
next;
if (getgmlevel() > 90) goto L_GM;
menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"Cancel",L_Cancel;
// PURCHASE TICKET
L_Buy:
if (#LID == $LID && #L1 != 0) goto L_DoubleTicket;
mes "[Lottery]";
mes "Tickets cost ^0000FF" + $L_TicketPrice + "z^000000.";
mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000.";
next;
menu "Buy Ticket",-,"Cancel",L_Cancel;
if (zeny < $L_TicketPrice) goto L_NoZeny;
set zeny,zeny-$L_TicketPrice;
mes "[Lottery]";
mes "Would you like your numbers hand picked or computer generated?";
next;
menu "Computer Generated",L_ComputerGen,"Hand Picked",L_HandPick,"Renew Ticket",L_Renew;
// RENEW LAST TICKET
L_Renew:
if ($LID < 99999) goto L_Invalid;
set #LID,$LID;
goto L_Confirm2;
L_ComputerGen:
// SELECTS RANDOM NUMBERS
set @L1,0;
set @L2,0;
set @L3,0;
set @L4,0;
set @L5,0;
set @L6,0;
Pick1:
set @L1,rand (1,40);
Pick2:
set @L2,rand (1,40);
if (@L2 == @L1) goto Pick2;
Pick3:
set @L3,rand (1,40);
if (@L3 == @L2) goto Pick3;
if (@L3 == @L1) goto Pick3;
Pick4:
set @L4,rand (1,40);
if (@L4 == @L2) goto Pick4;
if (@L4 == @L1) goto Pick4;
if (@L4 == @L3) goto Pick4;
Pick5:
set @L5,rand (1,40);
if (@L5 == @L1) goto Pick5;
if (@L5 == @L2) goto Pick5;
if (@L5 == @L3) goto Pick5;
if (@L5 == @L4) goto Pick5;
Pick6:
set @L6,rand (1,40);
if (@L6 == @L1) goto Pick6;
if (@L6 == @L2) goto Pick6;
if (@L6 == @L3) goto Pick6;
if (@L6 == @L4) goto Pick6;
if (@L6 == @L5) goto Pick6;
mes "[Lottery]";
mes "The computer has selected the following numbers:";
mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
next;
menu "Confirm",L_Confirm,"Re-Generate",L_ComputerGen;
// HAND PICK LOTTERY NUMBERS
L_HandPick:
mes "[Lottery]";
mes "Please pick your numbers (1-40):";
set @L1,0;
set @L2,0;
set @L3,0;
set @L4,0;
set @L5,0;
set @L6,0;
Input1:
input @L1;
if (@L1 < 1 || @L1 > 40) goto Input1;
mes @L1;
Input2:
input @L2;
if (@L2 < 1 || @L2 > 40) goto Input2;
if (@L2 == @L1) goto Input2;
mes @L2;
Input3:
input @L3;
if (@L3 < 1 || @L3 > 40) goto Input3;
if (@L3 == @L1) goto Input3;
if (@L3 == @L2) goto Input3;
mes @L3;
Input4:
input @L4;
if (@L4 < 1 || @L4 > 40) goto Input4;
if (@L4 == @L1) goto Input4;
if (@L4 == @L2) goto Input4;
if (@L4 == @L3) goto Input4;
mes @L4;
Input5:
input @L5;
if (@L5 < 1 || @L5 > 40) goto Input5;
if (@L5 == @L1) goto Input5;
if (@L5 == @L2) goto Input5;
if (@L5 == @L3) goto Input5;
if (@L5 == @L4) goto Input5;
mes @L5;
Input6:
input @L6;
if (@L6 < 1 || @L6 > 40) goto Input6;
if (@L6 == @L1) goto Input6;
if (@L6 == @L2) goto Input6;
if (@L6 == @L3) goto Input6;
if (@L6 == @L4) goto Input6;
if (@L6 == @L5) goto Input6;
mes @L6;
next;
mes "[Lottery]";
mes "Your numbers are:";
mes "^0000FF" + @L1 + " " + @L2 + " " + @L3 + " " + @L4 + " " + @L5 + " " + @L6 + "^000000";
next;
menu "Confirm",L_Confirm,"Re-Pick",L_HandPick;
L_Confirm:
set #LW1,@L1;
set #LW2,@L2;
set #LW3,@L3;
set #LW4,@L4;
set #LW5,@L5;
set #LW6,@L6;
set #LID,$LID;
L_Confirm2:
mes "[Lottery]";
mes "The live broadcasted draw is at 9pm.";
mes "You can claim your ticket between then and the next draw.";
next;
mes "[Lottery]";
mes "Good luck!";
close;
L_Claim:
// CHECKS TICKET VALIDILITY
if (#LID != $LID2) goto L_Invalid;
// CHECKS HOW MANY NUMBERS MATCHED
set @LPrize,0;
if (#LW1 == $LW1) set @LPrize,@LPrize+1;
if (#LW1 == $LW2) set @LPrize,@LPrize+1;
if (#LW1 == $LW3) set @LPrize,@LPrize+1;
if (#LW1 == $LW4) set @LPrize,@LPrize+1;
if (#LW1 == $LW5) set @LPrize,@LPrize+1;
if (#LW1 == $LW6) set @LPrize,@LPrize+1;
if (#LW2 == $LW1) set @LPrize,@LPrize+1;
if (#LW2 == $LW2) set @LPrize,@LPrize+1;
if (#LW2 == $LW3) set @LPrize,@LPrize+1;
if (#LW2 == $LW4) set @LPrize,@LPrize+1;
if (#LW2 == $LW5) set @LPrize,@LPrize+1;
if (#LW2 == $LW6) set @LPrize,@LPrize+1;
if (#LW3 == $LW1) set @LPrize,@LPrize+1;
if (#LW3 == $LW2) set @LPrize,@LPrize+1;
if (#LW3 == $LW3) set @LPrize,@LPrize+1;
if (#LW3 == $LW4) set @LPrize,@LPrize+1;
if (#LW3 == $LW5) set @LPrize,@LPrize+1;
if (#LW3 == $LW6) set @LPrize,@LPrize+1;
if (#LW4 == $LW1) set @LPrize,@LPrize+1;
if (#LW4 == $LW2) set @LPrize,@LPrize+1;
if (#LW4 == $LW3) set @LPrize,@LPrize+1;
if (#LW4 == $LW4) set @LPrize,@LPrize+1;
if (#LW4 == $LW5) set @LPrize,@LPrize+1;
if (#LW4 == $LW6) set @LPrize,@LPrize+1;
if (#LW5 == $LW1) set @LPrize,@LPrize+1;
if (#LW5 == $LW2) set @LPrize,@LPrize+1;
if (#LW5 == $LW3) set @LPrize,@LPrize+1;
if (#LW5 == $LW4) set @LPrize,@LPrize+1;
if (#LW5 == $LW5) set @LPrize,@LPrize+1;
if (#LW5 == $LW6) set @LPrize,@LPrize+1;
if (#LW6 == $LW1) set @LPrize,@LPrize+1;
if (#LW6 == $LW2) set @LPrize,@LPrize+1;
if (#LW6 == $LW3) set @LPrize,@LPrize+1;
if (#LW6 == $LW4) set @LPrize,@LPrize+1;
if (#LW6 == $LW5) set @LPrize,@LPrize+1;
if (#LW6 == $LW6) set @LPrize,@LPrize+1;
if (@LPrize == 6) goto LWinBig;
if (@LPrize > 3 && @LPrize < 6) goto LWinSmall;
// NO WINNER
mes "[Lottery]";
mes "Bad luck, it appears you do not hold a winning ticket.";
next;
mes "[Lottery]";
mes "Better luck next time!.";
close;
// MATCHED ALL SIX
LWinBig:
mes "[Lottery]";
mes "You have matched all six numbers!";
mes "Jackpot!";
mes "You've won ^0000FF" + $L_Prize_Money + "z^000000.";
set zeny,zeny+$L_Prize_Money;
Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8;
set #LID,0;
close;
// MATCHED AT LEAST 4
LWinSmall:
mes "[Lottery]";
mes "You have matched at least 4 numbers!";
mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000.";
set zeny,zeny+$L_Prize_Money_Small;
Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8;
set #LID,0;
close;
// NO ZENY
L_NoZeny:
mes "[Lottery]";
mes "You can't afford a lottery ticket.";
close;
// INVALID TICKET
L_Invalid:
mes "[Lottery]";
mes "I'm sorry but it appears that you have an invalid ticket.";
close;
// DOUBLE TICKET
L_DoubleTicket:
mes "[Lottery]";
mes "It appears that you already have a ticket for today.";
mes "You may only purchase one ticket per draw.";
close;
L_Cancel:
mes "[Lottery]";
mes "Come back soon!";
close;
// GM MENU (Lets you manually do draws)
L_GM:
menu "Claim Prize",L_Claim,"Buy New Ticket",L_Buy,"[GM]Do Draw Now",-,"[GM]Rig the Lottery",L_GM_Rig,"Cancel",L_Cancel;
// CHECKS IF LOTTERY IS RIGGED
if ($L_Rigged == 1) goto L_Rigged_Draw;
// GENERATES RANDOM NUMBERS 1-40
GMPick1:
set $LW1,rand (1,40);
GMPick2:
set $LW2,rand (1,40);
if ($LW2 == $LW1) goto GMPick2;
GMPick3:
set $LW3,rand (1,40);
if ($LW3 == $LW2) goto GMPick3;
if ($LW3 == $LW1) goto GMPick3;
GMPick4:
set $LW4,rand (1,40);
if ($LW4 == $LW2) goto GMPick4;
if ($LW4 == $LW1) goto GMPick4;
if ($LW4 == $LW3) goto GMPick4;
GMPick5:
set $LW5,rand (1,40);
if ($LW5 == $LW1) goto GMPick5;
if ($LW5 == $LW2) goto GMPick5;
if ($LW5 == $LW3) goto GMPick5;
if ($LW5 == $LW4) goto GMPick5;
GMPick6:
set $LW6,rand (1,40);
if ($LW6 == $LW1) goto GMPick6;
if ($LW6 == $LW2) goto GMPick6;
if ($LW6 == $LW3) goto GMPick6;
if ($LW6 == $LW4) goto GMPick6;
if ($LW6 == $LW5) goto GMPick6;
// BROADCASTS DRAW
L_Broadcast:
Announce "Lottery: Welcome to the special GM's lotto draw!",8;
Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8;
Announce "Congratulations to the winners!",8;
// GENERATES DRAW ID CODE
L_GenID:
set $LID2,$LID;
// SETS TOMORROW'S ID NUMBER
set $LID,rand (100000,999999);
close;
// SETS DRAW TO RIGGED NUMBERS
L_Rigged_Draw:
set $LW1,$LR1;
set $LW2,$LR2;
set $LW3,$LR3;
set $LW4,$LR4;
set $LW5,$LR5;
set $LW6,$LR6;
set $L_Rigged,0;
goto L_Broadcast;
// ALLOWS GM TO DO A RIGGED DRAW
L_GM_Rig:
mes "[Lottery]";
mes "Please pick your numbers (1-40):";
set $LR1,0;
set $LR2,0;
set $LR3,0;
set $LR4,0;
set $LR5,0;
set $LR6,0;
GMInput1:
Input $LR1;
if ($LR1 < 1 || $LR1 > 40) goto GMInput1;
mes $LR1;
GMInput2:
Input $LR2;
if ($LR2 < 1 || $LR2 > 40) goto GMInput2;
if ($LR2 == $LR1) goto GMInput2;
mes $LR2;
GMInput3:
Input $LR3;
if ($LR3 < 1 || $LR3 > 40) goto GMInput3;
if ($LR3 == $LR1) goto GMInput3;
if ($LR3 == $LR2) goto GMInput3;
mes $LR3;
GMInput4:
Input $LR4;
if ($LR4 < 1 || $LR4 > 40) goto GMInput4;
if ($LR4 == $LR1) goto GMInput4;
if ($LR4 == $LR2) goto GMInput4;
if ($LR4 == $LR3) goto GMInput4;
mes $LR4;
GMInput5:
Input $LR5;
if ($LR5 < 1 || $LR5 > 40) goto GMInput5;
if ($LR5 == $LR1) goto GMInput5;
if ($LR5 == $LR2) goto GMInput5;
if ($LR5 == $LR3) goto GMInput5;
if ($LR5 == $LR4) goto GMInput5;
mes $LR5;
GMInput6:
Input $LR6;
if ($LR6 < 1 || $LR6 > 40) goto GMInput6;
if ($LR6 == $LR1) goto GMInput6;
if ($LR6 == $LR2) goto GMInput6;
if ($LR6 == $LR3) goto GMInput6;
if ($LR6 == $LR4) goto GMInput6;
if ($LR6 == $LR5) goto GMInput6;
mes $LR6;
next;
mes "[Lottery]";
mes "Lottery rigged for next draw.";
set $L_Rigged,1;
close;
}

View File

@ -1,39 +1,39 @@
//===== rAthena Script =======================================
//= Market Place
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= This script should move vending crowds from Prontera
//= streets to a suitable market place. Save your traffic 8)
//===== Additional Comments: =================================
//= 1.1 Optimized it, Removed labels. [Spre]
//============================================================
prontera,144,174,3 script Market Place 722,{
mes"[Market Place]";
mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000.";
next;
if (select("Yes Please:No") == 2) {
close;
}
// I didn't see the need to check and show venders.... Since it didnt even work
warp "gon_test",27+rand(5),98;
end;
}
gon_test,73,103,0 script MarketExit 45,1,2,{
warp "prontera",155,177-rand(10);
end;
}
//disable vending in Prontera
prontera mapflag novending
prt_in mapflag novending
//Market Place settings
gon_test mapflag noteleport
gon_test mapflag nomemo
gon_test mapflag nobranch
//===== rAthena Script =======================================
//= Market Place
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= This script should move vending crowds from Prontera
//= streets to a suitable market place. Save your traffic 8)
//===== Additional Comments: =================================
//= 1.1 Optimized it, Removed labels. [Spre]
//============================================================
prontera,144,174,3 script Market Place 722,{
mes"[Market Place]";
mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000.";
next;
if (select("Yes Please:No") == 2) {
close;
}
// I didn't see the need to check and show venders.... Since it didnt even work
warp "gon_test",27+rand(5),98;
end;
}
gon_test,73,103,0 script MarketExit 45,1,2,{
warp "prontera",155,177-rand(10);
end;
}
//disable vending in Prontera
prontera mapflag novending
prt_in mapflag novending
//Market Place settings
gon_test mapflag noteleport
gon_test mapflag nomemo
gon_test mapflag nobranch

File diff suppressed because it is too large Load Diff

View File

@ -1,238 +1,238 @@
//===== rAthena Script =======================================
//= Morroc Raceway
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Lets players race around Morroc (pvp_y_1-5)
//===== Additional Comments: =================================
//= If there are more than 3 players, at least 3 people
//= must finish before a new race can be started.
//=
//= If there are less than 3 players, at least 1 person
//= must finish before a new race can be started.
//=
//= Removed permanent global variables
//= 1.2 Removed Duplicates [Silent]
//= 1.3 Replaced effect numerics with constants. [Samuray22]
//============================================================
//Warps you into race way
morocc,166,105,6 script Race Girl#01 116,{
mes "[Race Girl]";
mes "Would you like to visit ^0000FFMorroc Raceway^000000?";
next;
menu "Yes",L_Warp,"No",-;
mes "[Race Girl]";
mes "Alright, talk to me again when you want to go.";
close;
L_Warp:
warp "pvp_y_1-5",165,256;
close;
}
//Warps you out of raceway
pvp_y_1-5,169,265,5 script Race Girl#02 116,{
mes "[Race Girl]";
mes "Welcome to Morroc Raceway!";
next;
menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel;
mes "[Race Girl]";
mes "Someone must click on the Starter NPC to start the race.";
next;
mes "[Race Girl]";
mes "Once the race is started, run around Morroc anti-clockwise.";
next;
mes "[Race Girl]";
mes "You must reach all the checkpoints - No cheating!";
close;
L_Warp:
warp "morocc",165,101;
L_Cancel:
mes "[Race Girl]";
mes "Come again soon!";
close;
}
//Counts down and starts race
pvp_y_1-5,145,269,5 script Starter 733,{
if ($@race != 0) goto L_Started;
if ($@counting != 0) goto L_Started;
if ($@racecount == 1) goto L_Started;
L_Menu:
mes "[Race Starter]";
mes "Please stay on the Eastern side of me.";
menu "Start Race",L_Count,"Cancel",-;
close;
L_Count:
set $@counting,1;
mes "Counting down...";
addtimer 1000, "Starter::OnCount1000";
addtimer 2000, "Starter::OnCount2000";
addtimer 3000, "Starter::OnCount3000";
addtimer 4000, "Starter::OnCount4000";
announce strcharinfo(0) + "Started a countdown",1;
announce "Get ready to race!",1;
close;
OnCount1000:
announce "[3]",1;
end;
OnCount2000:
announce "[2]",1;
end;
OnCount3000:
announce "[1]",1;
end;
OnCount4000:
emotion 27;
specialeffect EF_CHIMTO;
announce "[GO!]",1;
set $@race,1;
set $@position,0;
set $@counting,0;
set $@raceid,rand(100000,999999);
end;
L_Started:
if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu;
if ($@position > 2) goto L_Menu;
mes "[Starter]";
mes "Race in progress";
close;
OnInit:
set $@race,0;
set $@position,0;
set $@racecount,0;
end;
}
//Checkpoint 1
pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{
end;
OnTouch:
if (@raceid != $@raceid) goto L_Started;
if (@race == 6) goto L_Finished;
if ($@race == 1) goto L_Started;
mes "The race has not started, please move back.";
close;
L_Started:
set @race,1;
set @raceid,$@raceid;
end;
L_Finished:
mes "You have already completed the race.";
close;
}
//Checkpoint 2
pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{
end;
OnTouch:
if (@race != 1) goto L_Miss;
set @race,2;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Checkpoint 3
pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{
end;
OnTouch:
if (@race != 2) goto L_Miss;
set @race,3;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Checkpoint 3
pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{
end;
OnTouch:
if (@race != 3) goto L_Miss;
set @race,4;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Checkpoint 4
pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{
end;
OnTouch:
if (@race != 4) goto L_Miss;
set @race,5;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Finish Line
pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{
end;
OnTouch:
if (@raceid != $@raceid) goto L_WrongRace;
if (@race != 5) goto L_Miss;
set @race,6;
set $@position,$@position+1;
announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
L_WrongRace:
mes "You are not in this race.";
close;
}
//Check Point Marker Flags
pvp_y_1-5,144,267,4 script Check Point 1#01 722,{
end;
}
pvp_y_1-5,144,257,4 script Check Point 1#02 722,{
end;
}
pvp_y_1-5,70,252,3 script Check Point 2#01 722,{
end;
}
pvp_y_1-5,77,243,3 script Check Point 2#02 722,{
end;
}
pvp_y_1-5,81,48,1 script Check Point 3#01 722,{
end;
}
pvp_y_1-5,72,40,1 script Check Point 3#02 722,{
end;
}
pvp_y_1-5,244,65,7 script Check Point 4#01 722,{
end;
}
pvp_y_1-5,252,57,7 script Check Point 4#02 722,{
end;
}
pvp_y_1-5,259,260,5 script Check Point 5#01 722,{
end;
}
pvp_y_1-5,251,252,5 script Check Point 5#02 722,{
end;
}
pvp_y_1-5,174,249,4 script Finish Line#01 722,{
end;
}
pvp_y_1-5,174,238,4 script Finish Line#02 722,{
end;
}
//===== rAthena Script =======================================
//= Morroc Raceway
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.3
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Lets players race around Morroc (pvp_y_1-5)
//===== Additional Comments: =================================
//= If there are more than 3 players, at least 3 people
//= must finish before a new race can be started.
//=
//= If there are less than 3 players, at least 1 person
//= must finish before a new race can be started.
//=
//= Removed permanent global variables
//= 1.2 Removed Duplicates [Silent]
//= 1.3 Replaced effect numerics with constants. [Samuray22]
//============================================================
//Warps you into race way
morocc,166,105,6 script Race Girl#01 116,{
mes "[Race Girl]";
mes "Would you like to visit ^0000FFMorroc Raceway^000000?";
next;
menu "Yes",L_Warp,"No",-;
mes "[Race Girl]";
mes "Alright, talk to me again when you want to go.";
close;
L_Warp:
warp "pvp_y_1-5",165,256;
close;
}
//Warps you out of raceway
pvp_y_1-5,169,265,5 script Race Girl#02 116,{
mes "[Race Girl]";
mes "Welcome to Morroc Raceway!";
next;
menu "Information",-,"Leave",L_Warp,"Cancel",L_Cancel;
mes "[Race Girl]";
mes "Someone must click on the Starter NPC to start the race.";
next;
mes "[Race Girl]";
mes "Once the race is started, run around Morroc anti-clockwise.";
next;
mes "[Race Girl]";
mes "You must reach all the checkpoints - No cheating!";
close;
L_Warp:
warp "morocc",165,101;
L_Cancel:
mes "[Race Girl]";
mes "Come again soon!";
close;
}
//Counts down and starts race
pvp_y_1-5,145,269,5 script Starter 733,{
if ($@race != 0) goto L_Started;
if ($@counting != 0) goto L_Started;
if ($@racecount == 1) goto L_Started;
L_Menu:
mes "[Race Starter]";
mes "Please stay on the Eastern side of me.";
menu "Start Race",L_Count,"Cancel",-;
close;
L_Count:
set $@counting,1;
mes "Counting down...";
addtimer 1000, "Starter::OnCount1000";
addtimer 2000, "Starter::OnCount2000";
addtimer 3000, "Starter::OnCount3000";
addtimer 4000, "Starter::OnCount4000";
announce strcharinfo(0) + "Started a countdown",1;
announce "Get ready to race!",1;
close;
OnCount1000:
announce "[3]",1;
end;
OnCount2000:
announce "[2]",1;
end;
OnCount3000:
announce "[1]",1;
end;
OnCount4000:
emotion 27;
specialeffect EF_CHIMTO;
announce "[GO!]",1;
set $@race,1;
set $@position,0;
set $@counting,0;
set $@raceid,rand(100000,999999);
end;
L_Started:
if ((getmapusers("pvp_y_1-5") < 3) && ($@position > 0)) goto L_Menu;
if ($@position > 2) goto L_Menu;
mes "[Starter]";
mes "Race in progress";
close;
OnInit:
set $@race,0;
set $@position,0;
set $@racecount,0;
end;
}
//Checkpoint 1
pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{
end;
OnTouch:
if (@raceid != $@raceid) goto L_Started;
if (@race == 6) goto L_Finished;
if ($@race == 1) goto L_Started;
mes "The race has not started, please move back.";
close;
L_Started:
set @race,1;
set @raceid,$@raceid;
end;
L_Finished:
mes "You have already completed the race.";
close;
}
//Checkpoint 2
pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{
end;
OnTouch:
if (@race != 1) goto L_Miss;
set @race,2;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [1]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Checkpoint 3
pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{
end;
OnTouch:
if (@race != 2) goto L_Miss;
set @race,3;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [2]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Checkpoint 3
pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{
end;
OnTouch:
if (@race != 3) goto L_Miss;
set @race,4;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [3]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Checkpoint 4
pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{
end;
OnTouch:
if (@race != 4) goto L_Miss;
set @race,5;
announce "[" + strcharinfo(0) +"] has reached Checkpoint [4]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
}
//Finish Line
pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{
end;
OnTouch:
if (@raceid != $@raceid) goto L_WrongRace;
if (@race != 5) goto L_Miss;
set @race,6;
set $@position,$@position+1;
announce "[" + strcharinfo(0) +"] has reached The Finish line! [Position: " + $@position + "]",1;
end;
L_Miss:
mes "You have missed a Checkpoint. Please go back.";
close;
L_WrongRace:
mes "You are not in this race.";
close;
}
//Check Point Marker Flags
pvp_y_1-5,144,267,4 script Check Point 1#01 722,{
end;
}
pvp_y_1-5,144,257,4 script Check Point 1#02 722,{
end;
}
pvp_y_1-5,70,252,3 script Check Point 2#01 722,{
end;
}
pvp_y_1-5,77,243,3 script Check Point 2#02 722,{
end;
}
pvp_y_1-5,81,48,1 script Check Point 3#01 722,{
end;
}
pvp_y_1-5,72,40,1 script Check Point 3#02 722,{
end;
}
pvp_y_1-5,244,65,7 script Check Point 4#01 722,{
end;
}
pvp_y_1-5,252,57,7 script Check Point 4#02 722,{
end;
}
pvp_y_1-5,259,260,5 script Check Point 5#01 722,{
end;
}
pvp_y_1-5,251,252,5 script Check Point 5#02 722,{
end;
}
pvp_y_1-5,174,249,4 script Finish Line#01 722,{
end;
}
pvp_y_1-5,174,238,4 script Finish Line#02 722,{
end;
}

View File

@ -0,0 +1,322 @@
//===== rAthena Script =======================================
//= MVP Arena
//===== By: ==================================================
//= Darkchild
//===== Current Version: =====================================
//= 1.4
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Rooms containing 16 different MVPs
//===== Additional Comments: =================================
//= 1.0 first version of script
//= 1.1 Optimised The MVP arena [massdriller]
//= 1.2 - NPC in prontera [Silent]
//= 1.3 - Removed Duplicates
//= 1.4 - Optimized, text edited [Euphy]
//============================================================
// ==== Entrance ====
prontera,154,197,3 script MVP Warper 768,{
mes "[ ^0065DFMVP Warper^000000 ]";
mes "Would you like to enter";
mes "the MVP Arena?";
if (select("Yes!","No thanks.") == 2) close;
warp "quiz_00",50,24;
close;
}
// ==== Information NPC ====
quiz_00,49,31,4 script MVP Arena Guide 778,{
mes "[ ^0065DFMVP Arena Guide^000000 ]";
mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior.";
next;
switch(select("Information","Heal me!","Return to Prontera","Cancel")) {
case 1:
mes "[ ^0065DFMVP Arena Guide^000000 ]";
mes "There are four Keepers, and each can spawn four different MVPs.";
mes "There are eight rooms per Keeper, and sixteen MVPs in total.";
close;
case 2:
specialeffect2 313;
percentheal 100,100;
close;
case 3:
warp "prontera",156,179;
close;
case 4:
close; }
}
// ==== Keepers ====
function script Keeper {
mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]";
mes "Which arena would you";
mes "like to enter?";
set .@menu$,"";
for(set .@i,1; .@i<9; set .@i,.@i+1)
set .@menu$, .@menu$+"Arena "+.@i+" ["+getmapusers("pvp_n_"+.@i+"-"+getarg(0))+"/20]:";
set .@i, select(.@menu$);
if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) {
mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]";
mes "Sorry, this arena is full!";
close; }
warp "pvp_n_"+.@i+"-"+getarg(0),102,102;
close;
}
quiz_00,56,31,4 script Alpha MVP 770,{
callfunc "Keeper",2; }
quiz_00,58,31,4 script Beta MVP 773,{
callfunc "Keeper",3; }
quiz_00,60,31,4 script Theta MVP 774,{
callfunc "Keeper",4; }
quiz_00,62,31,4 script Epsilon MVP 776,{
callfunc "Keeper",5; }
// ==== Protectors ====
function script Protector {
switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) {
case 1:
warp getarg(0),102,102;
close;
case 2:
specialeffect2 313;
percentheal 100,100;
close;
case 3:
warp "prontera",156,179;
close; }
}
pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{
callfunc "Protector","pvp_n_2-2"; }
pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{
callfunc "Protector","pvp_n_3-2"; }
pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{
callfunc "Protector","pvp_n_4-2"; }
pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{
callfunc "Protector","pvp_n_5-2"; }
pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{
callfunc "Protector","pvp_n_6-2"; }
pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{
callfunc "Protector","pvp_n_7-2"; }
pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{
callfunc "Protector","pvp_n_8-2"; }
pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{
callfunc "Protector",""; }
pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{
callfunc "Protector","pvp_n_2-3"; }
pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{
callfunc "Protector","pvp_n_3-3"; }
pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{
callfunc "Protector","pvp_n_4-3"; }
pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{
callfunc "Protector","pvp_n_5-3"; }
pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{
callfunc "Protector","pvp_n_6-3"; }
pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{
callfunc "Protector","pvp_n_7-3"; }
pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{
callfunc "Protector","pvp_n_8-3"; }
pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{
callfunc "Protector",""; }
pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{
callfunc "Protector","pvp_n_2-4"; }
pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{
callfunc "Protector","pvp_n_3-4"; }
pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{
callfunc "Protector","pvp_n_4-4"; }
pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{
callfunc "Protector","pvp_n_5-4"; }
pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{
callfunc "Protector","pvp_n_6-4"; }
pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{
callfunc "Protector","pvp_n_7-4"; }
pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{
callfunc "Protector","pvp_n_8-4"; }
pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{
callfunc "Protector",""; }
pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{
callfunc "Protector","pvp_n_2-5"; }
pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{
callfunc "Protector","pvp_n_3-5"; }
pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{
callfunc "Protector","pvp_n_4-5"; }
pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{
callfunc "Protector","pvp_n_5-5"; }
pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{
callfunc "Protector","pvp_n_6-5"; }
pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{
callfunc "Protector","pvp_n_7-5"; }
pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{
callfunc "Protector","pvp_n_8-5"; }
pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{
callfunc "Protector",""; }
// ==== Alpha ====
pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_1-2,0,0,0,0 monster Mistress 1059,1,60000,66000
pvp_n_2-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_2-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_3-2,0,0,0,0 monster Mistress 1059,1,60000,66000
pvp_n_3-2,0,0,0,0 monster Moonlight 1150,2,60000,66000
pvp_n_3-2,0,0,0,0 monster Maya 1147,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Eddga 1115,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Mistress 1059,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_4-2,0,0,0,0 monster Maya 1147,1,60000,66000
pvp_n_5-2,0,0,0,0 monster Eddga 1115,1,60000,66000
pvp_n_5-2,0,0,0,0 monster Mistress 1059,2,60000,66000
pvp_n_5-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_5-2,0,0,0,0 monster Maya 1147,2,60000,66000
pvp_n_6-2,0,0,0,0 monster Eddga 1115,2,60000,66000
pvp_n_6-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_6-2,0,0,0,0 monster Moonlight 1150,1,60000,66000
pvp_n_6-2,0,0,0,0 monster Maya 1147,2,60000,66000
pvp_n_7-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_7-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_7-2,0,0,0,0 monster Moonlight 1150,2,60000,66000
pvp_n_7-2,0,0,0,0 monster Maya 1147,2,60000,66000
pvp_n_8-2,0,0,0,0 monster Eddga 1115,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Mistress 1059,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Moonlight 1150,3,60000,66000
pvp_n_8-2,0,0,0,0 monster Maya 1147,3,60000,66000
// ==== Beta ====
pvp_n_1-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_1-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_2-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000
pvp_n_2-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_2-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000
pvp_n_3-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000
pvp_n_4-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000
pvp_n_4-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_4-3,0,0,0,0 monster Orc Hero 1087,1,60000,66000
pvp_n_4-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000
pvp_n_5-3,0,0,0,0 monster Phreeoni 1159,1,60000,66000
pvp_n_5-3,0,0,0,0 monster Turtle General 1312,2,60000,66000
pvp_n_5-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000
pvp_n_5-3,0,0,0,0 monster Orc Lord 1190,1,60000,66000
pvp_n_6-3,0,0,0,0 monster Phreeoni 1159,2,60000,66000
pvp_n_6-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_6-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000
pvp_n_6-3,0,0,0,0 monster Orc Lord 1190,2,60000,66000
pvp_n_7-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_7-3,0,0,0,0 monster Turtle General 1312,1,60000,66000
pvp_n_7-3,0,0,0,0 monster Orc Hero 1087,2,60000,66000
pvp_n_7-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Phreeoni 1159,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Turtle General 1312,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Orc Hero 1087,3,60000,66000
pvp_n_8-3,0,0,0,0 monster Orc Lord 1190,3,60000,66000
// ==== Theta ====
pvp_n_1-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_1-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_2-4,0,0,0,0 monster Drake 1112,2,60000,66000
pvp_n_2-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_2-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Drake 1112,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Doppelganger 1046,1,60000,66000
pvp_n_3-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000
pvp_n_4-4,0,0,0,0 monster Drake 1112,2,60000,66000
pvp_n_4-4,0,0,0,0 monster Osiris 1038,1,60000,66000
pvp_n_4-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000
pvp_n_4-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000
pvp_n_5-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_5-4,0,0,0,0 monster Osiris 1038,2,60000,66000
pvp_n_5-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000
pvp_n_5-4,0,0,0,0 monster Lord of Death 1373,1,60000,66000
pvp_n_6-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_6-4,0,0,0,0 monster Osiris 1038,2,60000,66000
pvp_n_6-4,0,0,0,0 monster Doppelganger 1046,2,60000,66000
pvp_n_6-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000
pvp_n_7-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_7-4,0,0,0,0 monster Osiris 1038,2,60000,66000
pvp_n_7-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000
pvp_n_7-4,0,0,0,0 monster Lord of Death 1373,2,60000,66000
pvp_n_8-4,0,0,0,0 monster Drake 1112,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Osiris 1038,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Doppelganger 1046,3,60000,66000
pvp_n_8-4,0,0,0,0 monster Lord of Death 1373,3,60000,66000
// ==== Epsilon ====
pvp_n_1-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_1-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_2-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_2-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_2-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Incantation Samurai 1492,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000
pvp_n_3-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
pvp_n_4-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_4-5,0,0,0,0 monster Pharoh 1157,1,60000,66000
pvp_n_4-5,0,0,0,0 monster Dark Lord 1272,1,60000,66000
pvp_n_4-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
pvp_n_5-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_5-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
pvp_n_6-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_6-5,0,0,0,0 monster Baphomet 1039,1,60000,66000
pvp_n_7-5,0,0,0,0 monster Incantation Samurai 1492,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_7-5,0,0,0,0 monster Baphomet 1039,2,60000,66000
pvp_n_8-5,0,0,0,0 monster Incantation Samurai 1492,3,60000,66000
pvp_n_8-5,0,0,0,0 monster Pharoh 1157,2,60000,66000
pvp_n_8-5,0,0,0,0 monster Dark Lord 1272,2,60000,66000
pvp_n_8-5,0,0,0,0 monster Baphomet 1039,2,60000,66000
// ==== Mapflags ====
pvp_n_1-1 mapflag pvp_nightmaredrop off
pvp_n_2-1 mapflag pvp_nightmaredrop off
pvp_n_3-1 mapflag pvp_nightmaredrop off
pvp_n_4-1 mapflag pvp_nightmaredrop off
pvp_n_5-1 mapflag pvp_nightmaredrop off
pvp_n_6-1 mapflag pvp_nightmaredrop off
pvp_n_7-1 mapflag pvp_nightmaredrop off
pvp_n_8-1 mapflag pvp_nightmaredrop off
pvp_n_1-2 mapflag pvp_nightmaredrop off
pvp_n_2-2 mapflag pvp_nightmaredrop off
pvp_n_3-2 mapflag pvp_nightmaredrop off
pvp_n_4-2 mapflag pvp_nightmaredrop off
pvp_n_5-2 mapflag pvp_nightmaredrop off
pvp_n_6-2 mapflag pvp_nightmaredrop off
pvp_n_7-2 mapflag pvp_nightmaredrop off
pvp_n_8-2 mapflag pvp_nightmaredrop off
pvp_n_1-3 mapflag pvp_nightmaredrop off
pvp_n_2-3 mapflag pvp_nightmaredrop off
pvp_n_3-3 mapflag pvp_nightmaredrop off
pvp_n_4-3 mapflag pvp_nightmaredrop off
pvp_n_5-3 mapflag pvp_nightmaredrop off
pvp_n_6-3 mapflag pvp_nightmaredrop off
pvp_n_7-3 mapflag pvp_nightmaredrop off
pvp_n_8-3 mapflag pvp_nightmaredrop off
pvp_n_1-4 mapflag pvp_nightmaredrop off
pvp_n_2-4 mapflag pvp_nightmaredrop off
pvp_n_3-4 mapflag pvp_nightmaredrop off
pvp_n_4-4 mapflag pvp_nightmaredrop off
pvp_n_5-4 mapflag pvp_nightmaredrop off
pvp_n_6-4 mapflag pvp_nightmaredrop off
pvp_n_7-4 mapflag pvp_nightmaredrop off
pvp_n_8-4 mapflag pvp_nightmaredrop off
pvp_n_1-5 mapflag pvp_nightmaredrop off
pvp_n_2-5 mapflag pvp_nightmaredrop off
pvp_n_3-5 mapflag pvp_nightmaredrop off
pvp_n_4-5 mapflag pvp_nightmaredrop off
pvp_n_5-5 mapflag pvp_nightmaredrop off
pvp_n_6-5 mapflag pvp_nightmaredrop off
pvp_n_7-5 mapflag pvp_nightmaredrop off
pvp_n_8-5 mapflag pvp_nightmaredrop off

View File

@ -1,193 +1,193 @@
//===== rAthena Script =======================================
//= Penal Servitude
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= A simple Penal Servitude Script.
//= It could cheer up your prisoners a bit.
//===== Additional Comments: =================================
// This script uses CHEQUES of the 2nd KAFRA_BANK.TXT
// var PRISON - it counts number of your imprisonments.
// 1.1 English translation
// 1.2 Stricted the conditions a bit
//============================================================
sec_pri,36,58,1 script Chief Warder 105,{
mes "[Saddeus]";
emotion 1;
if(sex) {
mes "Mr. Prisoner #"+BaseLevel+JobLevel+",";
} else {
mes "Ms. Prisoner #"+BaseLevel+JobLevel+",";
}
mes "what's the noise over there?";
next;
menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS;
M_PAY:
mes "[Saddeus]";
set @MUSTPAY,(PRISON+1)*1000000;
if (@MUSTPAY<1000000) set @MUSTPAY,1000000;
if (@MUSTPAY>100000000) set @MUSTPAY,100000000;
if (PRISON==1) mes "I can't remember you. Is it your 1st time?";
if (PRISON>1) mes "You again? Sombody hasn't grown wiser from the very first visit...";
mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000.";
next;
menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-;
mes "[Saddeus]";
mes "You've got some time to think about...";
close;
M_PAYCASH:
if (@MUSTPAY>Zeny) goto L_NOCASH;
set Zeny,Zeny-@MUSTPAY;
mes "[Saddeus]";
mes "OK, sing here and there.";
goto L_RELEASE;
L_NOCASH:
mes "[Saddeus]";
mes "What's this? It's not enough!";
close;
M_PAYBANK:
if (@MUSTPAY>#kafrabank) goto L_NOBANK;
set #kafrabank,#kafrabank-@MUSTPAY;
mes "[Saddeus]";
mes "OK, sign your cheque. And put down your name in my book.";
goto L_RELEASE;
L_NOBANK:
mes "[Saddeus]";
if (#kafrabank==0) mes "Your case says nothing about your bank accounts.";
if (#kafrabank!=0) mes "Alas, there's your bank account info... ^FF0000"+#kafrabank+"z^000000... in the case. It's not enough.";
mes "Stop your silly games now!";
close;
L_RELEASE:
set PRISON,PRISON+1;
next;
mes "[Saddeus]";
mes "You are free now!";
next;
savepoint "izlude",105,112;
warp "izlude",105,112;
close;
M_Q1:
mes "[Saddeus]";
mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?";
next;
menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS;
mes "[Saddeus]";
if(checkcart() || checkfalcon() || checkriding()){
emotion e_hmm;
mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!";
close;
}
mes "Talk to our overseer, Oliver.";
next;
nude;
set @rw,rand(1,4);
if (@rw==2) goto L_W2;
if (@rw==3) goto L_W3;
if (@rw==4) goto L_W4;
L_W1:
savepoint "sec_in02",179,76;
warp "sec_in02",179,76;
close;
L_W2:
savepoint "sec_in02",139,32;
warp "sec_in02",139,32;
close;
L_W3:
savepoint "sec_in02",100,28;
warp "sec_in02",100,28;
close;
L_W4:
savepoint "sec_in02",107,75;
warp "sec_in02",107,75;
close;
M_NO_THANKS:
mes "[Saddeus]";
if (rand(2)) mes "Is today X-Mas time, huh?";
mes "Now shut up and back off!";
if (rand(2)) emotion 23;
close;
}
sec_in02,137,57,1 script Overseer 708,{
mes "[Oliver]";
delitem 4002,countitem(4002);//Items: Fabre_Card,
delitem 4009,countitem(4009);//Items: Chonchon_Card,
delitem 4022,countitem(4022);//Items: Spore_Card,
delitem 4048,countitem(4048);//Items: Poison_Spore_Card,
if (PRISON_Q <= 0 ) goto L_GET_Q;
mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000.";
if ( countitem(1069)<PRISON_Q ) close;//Items: Orange_Net_Mushroom,
mes "OK... hand me all the shrooms...";
mes "Let me see... "+countitem(1069)+" of almost eadible ones...";//Items: Orange_Net_Mushroom,
mes "And "+countitem(1070)+" useless deadly ones.";//Items: Orange_Gooey_Mushroom_,
next;
mes "[Oliver]";
mes "Thank you. You are free!";
set PRISON_Q,0;
delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom,
delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_,
next;
savepoint "izlude",105,112;
warp "izlude",105,112;
close;
L_GET_Q:
set PRISON,PRISON+1;
if (PRISON > 1) mes "Hmm... You've been here already... Well-well...";
if ( countitem(1069) || countitem(1070) ) mes "Drop these mushrooms!! They are poisonous!";//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_,
delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom,
delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_,
set PRISON_Q, PRISON*3 + BaseLevel/3;
set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1);
set PRISON_Q, PRISON_Q+rand(50,60);
mes "OK, you must bring me ^FF0000"+PRISON_Q+"^000000 edible ^FF0000Orange Net Mushroom^000000 toadstoo.. shrooms.";
if(readparam(bAspd)>=100) mes "You're a fast fella! You'll have to get more shrooms, then.";
if (rand(10)<4) mes "And you may eat the deadly ones for breakfast.";
close;
}
sec_in02 mapflag nomemo
sec_in02 mapflag nosave SavePoint
sec_in02 mapflag noteleport
sec_in02 mapflag nobranch
sec_in02 mapflag nowarp
sec_in02 mapflag nowarpto
sec_in02 mapflag noexp
sec_in02 mapflag noskill
//sec_in02 mapflag pvp
//sec_in02 mapflag pvp_noparty
//sec_in02 mapflag gvg
sec_in02 mapflag pvp_nightmaredrop random,all,300
sec_in02,138,55,100,100 monster Toadstool 1182,30,10000,10000,1
sec_in02,138,55,100,100 monster Fabre 1184,10,20000,20000
sec_in02,138,55,100,100 monster Chonchon 1183,11,20000,20000
sec_in02,138,55,100,100 monster Spore 1014,12,20000,20000
sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000
//===== rAthena Script =======================================
//= Penal Servitude
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= A simple Penal Servitude Script.
//= It could cheer up your prisoners a bit.
//===== Additional Comments: =================================
// This script uses CHEQUES of the 2nd KAFRA_BANK.TXT
// var PRISON - it counts number of your imprisonments.
// 1.1 English translation
// 1.2 Stricted the conditions a bit
//============================================================
sec_pri,36,58,1 script Chief Warder 105,{
mes "[Saddeus]";
emotion 1;
if(sex) {
mes "Mr. Prisoner #"+BaseLevel+JobLevel+",";
} else {
mes "Ms. Prisoner #"+BaseLevel+JobLevel+",";
}
mes "what's the noise over there?";
next;
menu "Let me free, I'll pay!",-, "Let me to work off my freedom!",M_Q1, "Nothing",M_NO_THANKS;
M_PAY:
mes "[Saddeus]";
set @MUSTPAY,(PRISON+1)*1000000;
if (@MUSTPAY<1000000) set @MUSTPAY,1000000;
if (@MUSTPAY>100000000) set @MUSTPAY,100000000;
if (PRISON==1) mes "I can't remember you. Is it your 1st time?";
if (PRISON>1) mes "You again? Sombody hasn't grown wiser from the very first visit...";
mes "OK, we could release you for ^FF0000"+@MUSTPAY+"z^000000.";
next;
menu "I pay cash!",M_PAYCASH,"Do you accept cheques?",M_PAYBANK,"I've changed my mind.",-;
mes "[Saddeus]";
mes "You've got some time to think about...";
close;
M_PAYCASH:
if (@MUSTPAY>Zeny) goto L_NOCASH;
set Zeny,Zeny-@MUSTPAY;
mes "[Saddeus]";
mes "OK, sing here and there.";
goto L_RELEASE;
L_NOCASH:
mes "[Saddeus]";
mes "What's this? It's not enough!";
close;
M_PAYBANK:
if (@MUSTPAY>#kafrabank) goto L_NOBANK;
set #kafrabank,#kafrabank-@MUSTPAY;
mes "[Saddeus]";
mes "OK, sign your cheque. And put down your name in my book.";
goto L_RELEASE;
L_NOBANK:
mes "[Saddeus]";
if (#kafrabank==0) mes "Your case says nothing about your bank accounts.";
if (#kafrabank!=0) mes "Alas, there's your bank account info... ^FF0000"+#kafrabank+"z^000000... in the case. It's not enough.";
mes "Stop your silly games now!";
close;
L_RELEASE:
set PRISON,PRISON+1;
next;
mes "[Saddeus]";
mes "You are free now!";
next;
savepoint "izlude",105,112;
warp "izlude",105,112;
close;
M_Q1:
mes "[Saddeus]";
mes "Our stocks are short of toadstools. Remember your morning's skilly? What about some work at our sponsored mushroom farm?";
next;
menu "OK, I'll work off!",-, "I love this prison!",M_NO_THANKS;
mes "[Saddeus]";
if(checkcart() || checkfalcon() || checkriding()){
emotion e_hmm;
mes "I'm sorry, you should release your Cart, PecoPeco or Falcon!";
close;
}
mes "Talk to our overseer, Oliver.";
next;
nude;
set @rw,rand(1,4);
if (@rw==2) goto L_W2;
if (@rw==3) goto L_W3;
if (@rw==4) goto L_W4;
L_W1:
savepoint "sec_in02",179,76;
warp "sec_in02",179,76;
close;
L_W2:
savepoint "sec_in02",139,32;
warp "sec_in02",139,32;
close;
L_W3:
savepoint "sec_in02",100,28;
warp "sec_in02",100,28;
close;
L_W4:
savepoint "sec_in02",107,75;
warp "sec_in02",107,75;
close;
M_NO_THANKS:
mes "[Saddeus]";
if (rand(2)) mes "Is today X-Mas time, huh?";
mes "Now shut up and back off!";
if (rand(2)) emotion 23;
close;
}
sec_in02,137,57,1 script Overseer 708,{
mes "[Oliver]";
delitem 4002,countitem(4002);//Items: Fabre_Card,
delitem 4009,countitem(4009);//Items: Chonchon_Card,
delitem 4022,countitem(4022);//Items: Spore_Card,
delitem 4048,countitem(4048);//Items: Poison_Spore_Card,
if (PRISON_Q <= 0 ) goto L_GET_Q;
mes "I want you to gather ^FF0000"+PRISON_Q+" Orange Net Mushroom^000000.";
if ( countitem(1069)<PRISON_Q ) close;//Items: Orange_Net_Mushroom,
mes "OK... hand me all the shrooms...";
mes "Let me see... "+countitem(1069)+" of almost eadible ones...";//Items: Orange_Net_Mushroom,
mes "And "+countitem(1070)+" useless deadly ones.";//Items: Orange_Gooey_Mushroom_,
next;
mes "[Oliver]";
mes "Thank you. You are free!";
set PRISON_Q,0;
delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom,
delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_,
next;
savepoint "izlude",105,112;
warp "izlude",105,112;
close;
L_GET_Q:
set PRISON,PRISON+1;
if (PRISON > 1) mes "Hmm... You've been here already... Well-well...";
if ( countitem(1069) || countitem(1070) ) mes "Drop these mushrooms!! They are poisonous!";//Items: Orange_Net_Mushroom, Orange_Gooey_Mushroom_,
delitem 1069,countitem(1069);//Items: Orange_Net_Mushroom,
delitem 1070,countitem(1070);//Items: Orange_Gooey_Mushroom_,
set PRISON_Q, PRISON*3 + BaseLevel/3;
set PRISON_Q, PRISON_Q * (readparam(bAspd)/55 + 1);
set PRISON_Q, PRISON_Q+rand(50,60);
mes "OK, you must bring me ^FF0000"+PRISON_Q+"^000000 edible ^FF0000Orange Net Mushroom^000000 toadstoo.. shrooms.";
if(readparam(bAspd)>=100) mes "You're a fast fella! You'll have to get more shrooms, then.";
if (rand(10)<4) mes "And you may eat the deadly ones for breakfast.";
close;
}
sec_in02 mapflag nomemo
sec_in02 mapflag nosave SavePoint
sec_in02 mapflag noteleport
sec_in02 mapflag nobranch
sec_in02 mapflag nowarp
sec_in02 mapflag nowarpto
sec_in02 mapflag noexp
sec_in02 mapflag noskill
//sec_in02 mapflag pvp
//sec_in02 mapflag pvp_noparty
//sec_in02 mapflag gvg
sec_in02 mapflag pvp_nightmaredrop random,all,300
sec_in02,138,55,100,100 monster Toadstool 1182,30,10000,10000,1
sec_in02,138,55,100,100 monster Fabre 1184,10,20000,20000
sec_in02,138,55,100,100 monster Chonchon 1183,11,20000,20000
sec_in02,138,55,100,100 monster Spore 1014,12,20000,20000
sec_in02,138,55,100,100 monster Poison Spore 1077,3,20000,20000

View File

@ -1,286 +1,286 @@
//===== rAthena Script =======================================
//= Rock Scissors Roulette
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Plays a hybrid Russian Roulette Rock Scissors Paper game.
//===== Additional Comments: =================================
//= Prizes customizable, Added emotions.
//= 1.2 Fixes by Blackthunder and me [Poki#3]
//============================================================
cmd_in02,182,126,2 script Crazy Boris 85,{
mes "Crazy Boris";
set @counter,1;
mes "Hey you! Up for Rock Scissors Roulette?";
next;
menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE;
SAME:
mes "Draw! Again!";
next;
goto PLAY;
WIN:
mes "Damnit, You Win!";
emotion 19;
next;
goto OPPPULL;
LOSE:
emotion 18;
mes "Boorah! You Lose!";
next;
goto YOUPULL;
PLAY:
mes "Rock... Paper...";
set @opp,rand (1,3);
menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER;
ROCK:
if (@lastchoice == 1) set @opp,rand (1,3);
if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12;
set @lastchoice,1;
if (@opp == 1) goto SAME;
if (@opp == 2) goto WIN;
if (@opp == 3) goto LOSE;
SCISSORS:
if (@lastchoice == 2) set @opp,rand (1,2);
if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12;
set @lastchoice,2;
if (@opp == 1) goto LOSE;
if (@opp == 2) goto SAME;
if (@opp == 3) goto WIN;
PAPER:
if (@lastchoice == 3) set @opp,rand (2,3);
if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12;
set @lastchoice,3;
if (@opp == 1) goto WIN;
if (@opp == 2) goto LOSE;
if (@opp == 3) goto SAME;
YOUPULL:
if (@counter == 1) goto ONE;
if (@counter == 2) goto TWO;
if (@counter == 3) goto THREE;
if (@counter == 4) goto FOUR;
if (@counter == 5) goto FIVE;
if (@counter == 6) goto SIX;
OPPPULL:
if (@counter == 1) goto ONEa;
if (@counter == 2) goto TWOa;
if (@counter == 3) goto THREEa;
if (@counter == 4) goto FOURa;
if (@counter == 5) goto FIVEa;
if (@counter == 6) goto SIXa;
ONE:
set @counter,2;
mes "1 of 6";
set @pull,rand (1,6);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
TWO:
set @counter,3;
mes "2 of 6";
set @pull,rand (1,5);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
THREE:
set @counter,4;
mes "3 of 6";
set @pull,rand (1,4);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
FOUR:
set @counter,5;
mes "4 of 6";
set @pull,rand (1,3);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
FIVE:
set @counter,6;
mes "5 of 6";
set @pull,rand (1,2);
if (@pull == 1) set @pull,rand (1,2);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
SIX:
mes "6 of 6";
mes "Say your prayers";
set @pull,1;
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
ONEa:
set @counter,2;
mes "1 of 6";
set @pull,rand (1,6);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
TWOa:
set @counter,3;
mes "2 of 6";
set @pull,rand (1,5);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
THREEa:
set @counter,4;
mes "3 of 6";
set @pull,rand (1,4);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
FOURa:
set @counter,5;
mes "4 of 6";
set @pull,rand (1,3);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
FIVEa:
set @counter,6;
mes "5 of 6";
set @pull,rand (1,2);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
SIXa:
mes "6 of 6";
mes "Say your prayers";
set @pull,1;
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
SAFE:
emotion 32;
mes "*^0000FFClick^000000* whew...";
goto PLAY;
DIE:
specialeffect2 183;
emotion 29;
percentheal -100,-100;
mes "*^0000FFClick^000000* *^FF0000BANG^000000*";
mes "You're dead!";
close;
KILL:
specialeffect 183;
emotion 23;
mes "*^0000FFClick^000000* *^FF0000BANG^000000*";
mes "OWWW @#$%^!! THAT HURT LIKE HELL!!";
next;
goto PRIZE;
RULES:
mes "Ok here are the rules:";
mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best.";
mes "Beat me to win a prize.";
menu "Let me play.",CONT,"No thanks.",LEAVE;
CONT:
mes "Ok here we go...";
next;
goto PLAY;
PRIZE:
mes "Congratulations! You have won...";
set @prize,rand (1,10);
if (@prize == 1) goto P1;
if (@prize == 2) goto P2;
if (@prize == 3) goto P3;
if (@prize == 4) goto P4;
if (@prize == 5) goto P5;
if (@prize == 6) goto P6;
if (@prize == 7) goto P7;
if (@prize == 8) goto P8;
if (@prize == 9) goto P9;
if (@prize == 10) goto P10;
P1:
mes "10x Oridicon!";
getitem 984,10;
close;
P2:
mes "10x Elunium!";
getitem 985,10;
close;
P3:
mes "100x Fly Wings!";
getitem 601,100;
close;
P4:
mes "8x Old Blue Box!";
getitem 603,8;
close;
P5:
mes "4x Old Violet Box!";
getitem 617,4;
close;
P6:
mes "1x Old Card Album!";
getitem 616,1;
close;
P7:
mes "10x Dead Branch!";
getitem 604,10;
close;
P8:
mes "3x Gold!";
getitem 969,3;
close;
P9:
mes "10x Elunium!";
getitem 985,10;
close;
P10:
mes "20x Blue Potion!";
getitem 505,20;
close;
LEAVE:
mes "Pansy.";
close;
}
//===== rAthena Script =======================================
//= Rock Scissors Roulette
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Plays a hybrid Russian Roulette Rock Scissors Paper game.
//===== Additional Comments: =================================
//= Prizes customizable, Added emotions.
//= 1.2 Fixes by Blackthunder and me [Poki#3]
//============================================================
cmd_in02,182,126,2 script Crazy Boris 85,{
mes "Crazy Boris";
set @counter,1;
mes "Hey you! Up for Rock Scissors Roulette?";
next;
menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE;
SAME:
mes "Draw! Again!";
next;
goto PLAY;
WIN:
mes "Damnit, You Win!";
emotion 19;
next;
goto OPPPULL;
LOSE:
emotion 18;
mes "Boorah! You Lose!";
next;
goto YOUPULL;
PLAY:
mes "Rock... Paper...";
set @opp,rand (1,3);
menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER;
ROCK:
if (@lastchoice == 1) set @opp,rand (1,3);
if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12;
set @lastchoice,1;
if (@opp == 1) goto SAME;
if (@opp == 2) goto WIN;
if (@opp == 3) goto LOSE;
SCISSORS:
if (@lastchoice == 2) set @opp,rand (1,2);
if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12;
set @lastchoice,2;
if (@opp == 1) goto LOSE;
if (@opp == 2) goto SAME;
if (@opp == 3) goto WIN;
PAPER:
if (@lastchoice == 3) set @opp,rand (2,3);
if (@opp == 1) emotion 11;
if (@opp == 2) emotion 10;
if (@opp == 3) emotion 12;
set @lastchoice,3;
if (@opp == 1) goto WIN;
if (@opp == 2) goto LOSE;
if (@opp == 3) goto SAME;
YOUPULL:
if (@counter == 1) goto ONE;
if (@counter == 2) goto TWO;
if (@counter == 3) goto THREE;
if (@counter == 4) goto FOUR;
if (@counter == 5) goto FIVE;
if (@counter == 6) goto SIX;
OPPPULL:
if (@counter == 1) goto ONEa;
if (@counter == 2) goto TWOa;
if (@counter == 3) goto THREEa;
if (@counter == 4) goto FOURa;
if (@counter == 5) goto FIVEa;
if (@counter == 6) goto SIXa;
ONE:
set @counter,2;
mes "1 of 6";
set @pull,rand (1,6);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
TWO:
set @counter,3;
mes "2 of 6";
set @pull,rand (1,5);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
THREE:
set @counter,4;
mes "3 of 6";
set @pull,rand (1,4);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
FOUR:
set @counter,5;
mes "4 of 6";
set @pull,rand (1,3);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
FIVE:
set @counter,6;
mes "5 of 6";
set @pull,rand (1,2);
if (@pull == 1) set @pull,rand (1,2);
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
SIX:
mes "6 of 6";
mes "Say your prayers";
set @pull,1;
next;
if (@pull == 1) goto DIE;
if (@pull != 1) goto SAFE;
ONEa:
set @counter,2;
mes "1 of 6";
set @pull,rand (1,6);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
TWOa:
set @counter,3;
mes "2 of 6";
set @pull,rand (1,5);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
THREEa:
set @counter,4;
mes "3 of 6";
set @pull,rand (1,4);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
FOURa:
set @counter,5;
mes "4 of 6";
set @pull,rand (1,3);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
FIVEa:
set @counter,6;
mes "5 of 6";
set @pull,rand (1,2);
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
SIXa:
mes "6 of 6";
mes "Say your prayers";
set @pull,1;
next;
if (@pull == 1) goto KILL;
if (@pull != 1) goto SAFE;
SAFE:
emotion 32;
mes "*^0000FFClick^000000* whew...";
goto PLAY;
DIE:
specialeffect2 183;
emotion 29;
percentheal -100,-100;
mes "*^0000FFClick^000000* *^FF0000BANG^000000*";
mes "You're dead!";
close;
KILL:
specialeffect 183;
emotion 23;
mes "*^0000FFClick^000000* *^FF0000BANG^000000*";
mes "OWWW @#$%^!! THAT HURT LIKE HELL!!";
next;
goto PRIZE;
RULES:
mes "Ok here are the rules:";
mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best.";
mes "Beat me to win a prize.";
menu "Let me play.",CONT,"No thanks.",LEAVE;
CONT:
mes "Ok here we go...";
next;
goto PLAY;
PRIZE:
mes "Congratulations! You have won...";
set @prize,rand (1,10);
if (@prize == 1) goto P1;
if (@prize == 2) goto P2;
if (@prize == 3) goto P3;
if (@prize == 4) goto P4;
if (@prize == 5) goto P5;
if (@prize == 6) goto P6;
if (@prize == 7) goto P7;
if (@prize == 8) goto P8;
if (@prize == 9) goto P9;
if (@prize == 10) goto P10;
P1:
mes "10x Oridicon!";
getitem 984,10;
close;
P2:
mes "10x Elunium!";
getitem 985,10;
close;
P3:
mes "100x Fly Wings!";
getitem 601,100;
close;
P4:
mes "8x Old Blue Box!";
getitem 603,8;
close;
P5:
mes "4x Old Violet Box!";
getitem 617,4;
close;
P6:
mes "1x Old Card Album!";
getitem 616,1;
close;
P7:
mes "10x Dead Branch!";
getitem 604,10;
close;
P8:
mes "3x Gold!";
getitem 969,3;
close;
P9:
mes "10x Elunium!";
getitem 985,10;
close;
P10:
mes "20x Blue Potion!";
getitem 505,20;
close;
LEAVE:
mes "Pansy.";
close;
}

View File

@ -1,199 +1,199 @@
//===== rAthena Script =======================================
//= Shifty Assassin
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Players buy ninjas to assassinate other players
//===== Additional Comments: =================================
//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
//= 1.1.2 Updated WoE Check. [Paradox924X]
//============================================================
morocc,148,86,5 script Shifty Assassin 725,{
set $ninja_price,250000;
// STARTS THE MENU //
M_Start:
mes "[Shifty Assassin]";
mes "What do you want?";
next;
if (getgmlevel() > 90) goto M_GM;
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit;
M_GM:
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit;
// GM MENU TO ADD NINJAS //
M_Add:
mes "[Shifty Assassin]";
mes "How many ninjas do you want to make available?";
next;
set @add,0;
input @add;
set $ninja_avail,$ninja_avail+@add;
mes @add + " ninjas added.";
close;
// BUY NINJAS //
M_Buy:
mes "[Shifty Assassin]";
mes "How many ninjas do you want buy?";
mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available.";
mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each.";
set @buy,0;
input @buy;
next;
if ($ninja_avail < 1) goto NoNinjas;
if ($ninja_avail < @buy) goto NotEnoughNinjas;
set @price,@buy*$ninja_price;
if (zeny < @price ) goto NoZeny;
mes "[Shifty Assassin]";
mes "That will cost you ^0000FF" + @price + " zeny^000000.";
next;
menu "Continue",-,"Cancel",M_Exit;
set zeny,zeny-@price;
set #ninjas,#ninjas+@buy;
set $ninja_avail,$ninja_avail-@buy;
mes "[Shifty Assassin]";
mes "Thank you.";
close;
// ASSASSINATE SOMEBODY //
M_Kill:
if (agitcheck()) goto M_Busy;
mes "[Shifty Assassin]";
mes "Enter the name of the target.";
mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000";
next;
menu "Continue",-,"Cancel",M_Exit;
set @name$,"0";
input @name$;
next;
mes "[Shifty Assassin]";
mes "Active Ninjas: "+#ninjas;
mes "Resting Ninjas: "+#ninjasr;
mes "How many do you want to send?";
set @number,0;
input @number;
if (@number < 1) goto NoNinjasSent;
if (@number > #ninjas) goto NotEnoughNinjas1;
if (@number > 10) goto TooManyNinjas;
set @chance,rand (1,12);
set #ninjas,#ninjas-@number;
set #ninjas,#ninjas+#ninjasr;
set #ninjasr,0;
if (@number < @chance) goto M_Failure;
// SUCCESSFUL ATTACK //
mes "Sending ninjas now.";
next;
mes "[Shifty Assassin]";
set @ninjasurvived,rand (1,@number);
set #ninjasr,@number-@ninjasurvived;
mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
atcommand strcharinfo(0) + "@kill "+@name$;
announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8;
close;
// FAILED ATTACK //
M_Failure:
mes "Sending ninjas now.";
next;
mes "[Shifty Assassin]";
set @ninjasurvived,rand (1,@number);
set #ninjasr,@number-@ninjasurvived;
mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8;
close;
// NINJAS BUSY FOR WOE //
M_Busy:
mes "[Shifty Assassin]";
mes "Sorry, all my ninjas are busy doing War of Emperium.";
close;
// CHECK YOUR NINJAS //
M_Check:
mes "[Shifty Assassin]";
mes "You have:";
mes "^FF0000" + #ninjas + "^000000 Active Ninjas.";
mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas.";
next;
goto M_Start;
// LIMIT //
NoNinjasSent:
mes "[Shifty Assassin]";
mes "You can't kill anyone without ninjas.";
next;
goto M_Start;
TooManyNinjas:
mes "[Shifty Assassin]";
mes "You can only send 10 ninjas max.";
next;
goto M_Start;
NoZeny:
mes "[Shifty Assassin]";
mes "You do not have enough zeny.";
close;
NotEnoughNinjas:
mes "[Shifty Assassin]";
mes "There aren't that many ninjas to buy.";
next;
goto M_Start;
NoNinjas:
mes "[Shifty Assassin]";
mes "There are no ninjas left to buy.";
close;
NotEnoughNinjas1:
mes "[Shifty Assassin]";
mes "You do not have that many ninjas.";
next;
goto M_Start;
M_Exit:
mes "[Shifty Assassin]";
mes "Goodbye.";
close;
// TIMER DELAY NINJA ADDER //
OnClock0600:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1200:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1500:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1800:
set $ninja_avail,$ninja_avail+3;
end;
OnClock1900:
set $ninja_avail,$ninja_avail+2;
end;
OnClock2000:
set $ninja_avail,$ninja_avail+2;
end;
OnClock0000:
set $ninja_avail,$ninja_avail+2;
end;
OnInit:
set $ninja_avail,$ninja_avail+1;
end;
}
//===== rAthena Script =======================================
//= Shifty Assassin
//===== By: ==================================================
//= acky
//===== Current Version: =====================================
//= 1.1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Players buy ninjas to assassinate other players
//===== Additional Comments: =================================
//= 1.1.1 Changed all gmcommand to atcommand as Poki#3 suggested. [Vicious]
//= 1.1.2 Updated WoE Check. [Paradox924X]
//============================================================
morocc,148,86,5 script Shifty Assassin 725,{
set $ninja_price,250000;
// STARTS THE MENU //
M_Start:
mes "[Shifty Assassin]";
mes "What do you want?";
next;
if (getgmlevel() > 90) goto M_GM;
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Cancel",M_Exit;
M_GM:
menu "Buy Ninjas",M_Buy,"Assassinate somebody",M_Kill,"Check your Ninjas",M_Check,"Add Ninjas",M_Add,"Cancel",M_Exit;
// GM MENU TO ADD NINJAS //
M_Add:
mes "[Shifty Assassin]";
mes "How many ninjas do you want to make available?";
next;
set @add,0;
input @add;
set $ninja_avail,$ninja_avail+@add;
mes @add + " ninjas added.";
close;
// BUY NINJAS //
M_Buy:
mes "[Shifty Assassin]";
mes "How many ninjas do you want buy?";
mes "There are ^0000FF" + $ninja_avail + "^000000 ninjas available.";
mes "They cost ^0000FF" + $ninja_price + " zeny ^000000each.";
set @buy,0;
input @buy;
next;
if ($ninja_avail < 1) goto NoNinjas;
if ($ninja_avail < @buy) goto NotEnoughNinjas;
set @price,@buy*$ninja_price;
if (zeny < @price ) goto NoZeny;
mes "[Shifty Assassin]";
mes "That will cost you ^0000FF" + @price + " zeny^000000.";
next;
menu "Continue",-,"Cancel",M_Exit;
set zeny,zeny-@price;
set #ninjas,#ninjas+@buy;
set $ninja_avail,$ninja_avail-@buy;
mes "[Shifty Assassin]";
mes "Thank you.";
close;
// ASSASSINATE SOMEBODY //
M_Kill:
if (agitcheck()) goto M_Busy;
mes "[Shifty Assassin]";
mes "Enter the name of the target.";
mes "^FF0000Type the name exactly, otherwise I won't be able to find the victim.^000000";
next;
menu "Continue",-,"Cancel",M_Exit;
set @name$,"0";
input @name$;
next;
mes "[Shifty Assassin]";
mes "Active Ninjas: "+#ninjas;
mes "Resting Ninjas: "+#ninjasr;
mes "How many do you want to send?";
set @number,0;
input @number;
if (@number < 1) goto NoNinjasSent;
if (@number > #ninjas) goto NotEnoughNinjas1;
if (@number > 10) goto TooManyNinjas;
set @chance,rand (1,12);
set #ninjas,#ninjas-@number;
set #ninjas,#ninjas+#ninjasr;
set #ninjasr,0;
if (@number < @chance) goto M_Failure;
// SUCCESSFUL ATTACK //
mes "Sending ninjas now.";
next;
mes "[Shifty Assassin]";
set @ninjasurvived,rand (1,@number);
set #ninjasr,@number-@ninjasurvived;
mes "Your attack succeeded but only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
atcommand strcharinfo(0) + "@kill "+@name$;
announce @name$+" has been assassinated by " + strcharinfo(0) +"'s Ninjas.",8;
close;
// FAILED ATTACK //
M_Failure:
mes "Sending ninjas now.";
next;
mes "[Shifty Assassin]";
set @ninjasurvived,rand (1,@number);
set #ninjasr,@number-@ninjasurvived;
mes "Your attack failed and only ^FF0000" + #ninjasr + "^000000 Ninjas survived.";
announce @name$+" has survived " + strcharinfo(0) +"'s Ninja attack.",8;
close;
// NINJAS BUSY FOR WOE //
M_Busy:
mes "[Shifty Assassin]";
mes "Sorry, all my ninjas are busy doing War of Emperium.";
close;
// CHECK YOUR NINJAS //
M_Check:
mes "[Shifty Assassin]";
mes "You have:";
mes "^FF0000" + #ninjas + "^000000 Active Ninjas.";
mes "^0000FF" + #ninjasr + "^000000 Resting Ninjas.";
next;
goto M_Start;
// LIMIT //
NoNinjasSent:
mes "[Shifty Assassin]";
mes "You can't kill anyone without ninjas.";
next;
goto M_Start;
TooManyNinjas:
mes "[Shifty Assassin]";
mes "You can only send 10 ninjas max.";
next;
goto M_Start;
NoZeny:
mes "[Shifty Assassin]";
mes "You do not have enough zeny.";
close;
NotEnoughNinjas:
mes "[Shifty Assassin]";
mes "There aren't that many ninjas to buy.";
next;
goto M_Start;
NoNinjas:
mes "[Shifty Assassin]";
mes "There are no ninjas left to buy.";
close;
NotEnoughNinjas1:
mes "[Shifty Assassin]";
mes "You do not have that many ninjas.";
next;
goto M_Start;
M_Exit:
mes "[Shifty Assassin]";
mes "Goodbye.";
close;
// TIMER DELAY NINJA ADDER //
OnClock0600:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1200:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1500:
set $ninja_avail,$ninja_avail+2;
end;
OnClock1800:
set $ninja_avail,$ninja_avail+3;
end;
OnClock1900:
set $ninja_avail,$ninja_avail+2;
end;
OnClock2000:
set $ninja_avail,$ninja_avail+2;
end;
OnClock0000:
set $ninja_avail,$ninja_avail+2;
end;
OnInit:
set $ninja_avail,$ninja_avail+1;
end;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +0,0 @@
- script healer -1,{
set .payment,0; // Charge for heals? 1 = yes, 0 = no
set .price,100; // How much zeny to charge for heals?
mes "[Healer]";
mes "I have amazing healing powers!!";
mes "You look like a person who needs them.";
mes "Want some?";
if (.payment==1) {
mes "My healing powers cost "+.price+" zeny.";
}
next;
switch(select("Heal:No thanks")) {
case 1:
if (.payment==1) {
Zeny = Zeny-.price;
}
percentheal 100,100;
mes "[Healer]";
mes "Wonderful, You are now healed!.";
mes "Have fun adventuring!!";
break;
case 2:
mes "[Healer]";
mes "Alright, come back if you need a heal.";
break;
}
close;
}
// NPC Duplicates
alberta,185,144,5 duplicate(healer) Healer#alb 742
aldebaran,134,123,5 duplicate(healer) Healer#alde 742
amatsu,200,80,5 duplicate(healer) Healer#ama 742
ayothaya,155,111,5 duplicate(healer) Healer#ayo 742
comodo,188,162,5 duplicate(healer) Healer#com 742
geffen,121,61,5 duplicate(healer) Healer#gef 742
gonryun,164,130,5 duplicate(healer) Healer#gon 742
izlude,125,118,5 duplicate(healer) Healer#izl 742
louyang,225,103,5 duplicate(healer) Healer#lou 742
morocc,159,96,5 duplicate(healer) Healer#mor 742
niflheim,188,180,5 duplicate(healer) Healer#nif 742
payon,180,105,5 duplicate(healer) Healer#pay 742
prontera,150,184,5 duplicate(healer) Healer#pront 742
umbala,94,162,5 duplicate(healer) Healer#umb 742
xmas,149,136,5 duplicate(healer) Healer#xmas 742
yuno,152,186,5 duplicate(healer) Healer#yuno 742

49
npc/custom/healer.txt Normal file
View File

@ -0,0 +1,49 @@
//===== rAthena Script =======================================
//= Healer
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Basic healer script.
//============================================================
- script Healer -1,{
set .@Price,0; // Zeny required for heal
set .@Buffs,0; // Also buff players? (1: yes / 0: no)
set .@Delay,0; // Heal delay, in seconds
if (@HD > gettimetick(2)) end;
if (.@Price) {
message strcharinfo(0),"Healing costs "+.@Price+" Zeny.";
if (Zeny < .@Price) end;
if(select("^0055FFHeal^000000:^777777Cancel^000000")==2) close;
set Zeny, Zeny-.@Price; }
specialeffect2 313; percentheal 100,100;
if (.@Buffs) {
specialeffect2 37; sc_start SC_INCREASEAGI,240000,10;
specialeffect2 42; sc_start SC_BLESSING,240000,10; }
if (.@Delay) set @HD, gettimetick(2)+.@Delay;
if (.@Price) close;
end;
}
alberta,185,144,5 duplicate(Healer) Healer#alb 742
aldebaran,134,123,5 duplicate(Healer) Healer#alde 742
amatsu,200,80,5 duplicate(Healer) Healer#ama 742
ayothaya,155,111,5 duplicate(Healer) Healer#ayo 742
comodo,188,162,5 duplicate(Healer) Healer#com 742
geffen,121,61,5 duplicate(Healer) Healer#gef 742
gonryun,164,130,5 duplicate(Healer) Healer#gon 742
izlude,125,118,5 duplicate(Healer) Healer#izl 742
louyang,225,103,5 duplicate(Healer) Healer#lou 742
morocc,159,96,5 duplicate(Healer) Healer#mor 742
niflheim,188,180,5 duplicate(Healer) Healer#nif 742
payon,180,105,5 duplicate(Healer) Healer#pay 742
prontera,150,184,5 duplicate(Healer) Healer#pront 742
umbala,94,162,5 duplicate(Healer) Healer#umb 742
xmas,149,136,5 duplicate(Healer) Healer#xmas 742
yuno,152,186,5 duplicate(Healer) Healer#yuno 742

View File

@ -1,223 +1,223 @@
//===== rAthena Script =======================================
//= Sign Your Items
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Write you name on your rare equipment or weapon ^_-
//= Original X-Mas mini-quest(could be used as a permanent one)
//===== Additional Comments: =================================
//=
//============================================================
prt_in,24,61,7 script Perchik 47,{
mes "[Perchik]";
if(BaseJob==Job_Novice || BaseLevel<50) {
mes "Sorry, I don't help newbies. Go kill more Porings.";
emotion e_sry;
close;
}
mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold.";
next;
menu "Tell me more...",-, "Sign my items, please",M_DO;
mes "[Perchik]";
mes "I can put your name on any slotless equipment or weapon.";
emotion e_ic;
next;
mes "[Perchik]";
mes "A week ago, my BOSS told me to send away newbies. I dunno why.";
next;
mes "[Perchik]";
mes "For my work I accept ^0000803 Gift Box^000000es (gray one)";
mes "plus ^FF00005000z^000000 per each refine of your item.";
next;
emotion e_cry;
mes "[Perchik]";
mes "Alas, I have 12 hungry children";
mes "and a very angry wife.";
next;
mes "[Perchik]";
mes "Or it was... 12 angry children";
mes "and a very hungry wife...";
emotion e_hmm;
close;
M_DO:
mes "[Perchik]";
mes "Show me your items to sign...";
M_MENU:
next;
menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4,
getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8;
//Head Gear
M_PART1:
set @part,1;
if (getequipisequiped(1)) goto L_CHECK1;
mes "[Perchik]";
mes "A bald head under a cheap wig... There's nothing worthy to sign.";
emotion 6;
goto M_MENU;
M_PART9:
set @part,9;
if (getequipisequiped(9)) goto L_CHECK1;
mes "[Perchik]";
mes "Glasses... I can't see any glasses...";
emotion 20;
goto M_MENU;
M_PART10:
set @part,10;
if (getequipisequiped(10)) goto L_CHECK1;
mes "[Perchik]";
mes "I don't see any mask here.";
emotion 20;
goto M_MENU;
//Armor
M_PART2:
set @part,2;
if (getequipisequiped(2)) goto L_CHECK1;
mes "[Perchik]";
mes "Your belly...? Yes, it's rather fat.";
emotion 6;
goto M_MENU;
//Left Hand
M_PART3:
set @part,3;
if (getequipisequiped(3)) goto L_CHECK1;
mes "[Perchik]";
mes "Sign your left hand? I'm not a celebrity, you know...";
emotion 4;
goto M_MENU;
//Right Hand
M_PART4:
set @part,4;
if (getequipisequiped(4)) goto L_CHECK1;
mes "[Perchik]";
mes "It isn't an armor... It's a mud!!! Wash your hands more often.";
emotion 4;
goto M_MENU;
//Garment
M_PART5:
set @part,5;
if (getequipisequiped(5)) goto L_CHECK1;
mes "[Perchik]";
mes "Look... It's empty...";
goto M_MENU;
//Foot Gear
M_PART6:
set @part,6;
if (getequipisequiped(6)) goto L_CHECK1;
mes "[Perchik]";
mes "Aw!! I don't like stinky feet.";
emotion 16;
goto M_MENU;
//Accessory1
M_PART7:
set @part,7;
if (getequipisequiped(7)) goto L_CHECK1;
mes "[Perchik]";
mes "Yep... a pocket with a huge hole...";
emotion 20;
goto M_MENU;
//Accessory2
M_PART8:
set @part,8;
if (getequipisequiped(8)) goto L_CHECK1;
mes "[Perchik]";
mes "I see your fat belly...";
emotion 20;
goto M_MENU;
L_CHECK1:
set @ref,0;
set @id,getequipid(@part);
if(getequipisidentify(@part)) goto L_CHECK2;
mes "[Perchik]";
mes "How could you equip such unknown item?";
npctalk "What a sneaky cheater!";
emotion e_wah;
close;
L_CHECK2:
set @ref,getequiprefinerycnt(@part);
mes "[Perchik]";
mes "You want me to sign your "+getitemname(@id)+"...";
if(BaseJob==Job_Novice) {
mes "But you're a Novice. My BOSS told me to send such weaklings away.";
emotion e_sry;
goto M_MENU;
}
set @slot0,getequipcardid(@part,0);
set @slot1,getequipcardid(@part,1);
set @slot2,getequipcardid(@part,2);
set @slot3,getequipcardid(@part,3);
if(@slot0==255 || @slot0==254 || @slot0<0) {
mes "Alas, this item's already signed.";
mes "I would never touch masters work.";
emotion e_hmm;
goto M_MENU;
}
if(@slot0>4000 && @slot0<5000) {
mes "A card? Here?!";
mes "As I said before, I don't sign items with cards.";
emotion e_hmm;
goto M_MENU;
}
if(getiteminfo(@id,10)) {
mes "Sorry. I don't sign slotted items.";
emotion e_sry;
goto M_MENU;
}
getinventorylist;
for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){
if(@inventorylist_expire[.@i] != 0) {
mes "Sorry, I don't sign rental items!";
emotion e_hmm;
goto M_MENU;
}
}
if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time.";
mes "Give me ^0000803 gray Gift Boxes^000000";
if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000.";
next;
menu "Ok!",-, "Leave",M_END;
if(Zeny>=(5000*@ref) && countitem(644)>=3) {
delitem 644,3;
set Zeny,Zeny-(5000*@ref);
goto L_MAKE;
}
mes "[Perchik]";
mes "I don't work for 'thanks'.";
emotion e_sry;
close;
L_MAKE:
if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) {
mes "[Perchik]";
mes "Where is... "+getitemname(@id)+"?";
npctalk "You're a snoozy cheater!";
logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id);
emotion e_wah;
close;
}
delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3;
mes "[Perchik]";
mes "Done!";
emotion e_proud;
getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff;
close;
M_END:
mes "[Perchik]";
mes "See you...";
emotion e_yawn;
close;
}
//===== rAthena Script =======================================
//= Sign Your Items
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Write you name on your rare equipment or weapon ^_-
//= Original X-Mas mini-quest(could be used as a permanent one)
//===== Additional Comments: =================================
//=
//============================================================
prt_in,24,61,7 script Perchik 47,{
mes "[Perchik]";
if(BaseJob==Job_Novice || BaseLevel<50) {
mes "Sorry, I don't help newbies. Go kill more Porings.";
emotion e_sry;
close;
}
mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold.";
next;
menu "Tell me more...",-, "Sign my items, please",M_DO;
mes "[Perchik]";
mes "I can put your name on any slotless equipment or weapon.";
emotion e_ic;
next;
mes "[Perchik]";
mes "A week ago, my BOSS told me to send away newbies. I dunno why.";
next;
mes "[Perchik]";
mes "For my work I accept ^0000803 Gift Box^000000es (gray one)";
mes "plus ^FF00005000z^000000 per each refine of your item.";
next;
emotion e_cry;
mes "[Perchik]";
mes "Alas, I have 12 hungry children";
mes "and a very angry wife.";
next;
mes "[Perchik]";
mes "Or it was... 12 angry children";
mes "and a very hungry wife...";
emotion e_hmm;
close;
M_DO:
mes "[Perchik]";
mes "Show me your items to sign...";
M_MENU:
next;
menu getequipname(1),M_PART1,getequipname(9),M_PART9,getequipname(10),M_PART10,getequipname(2),M_PART2,getequipname(4),M_PART4,
getequipname(3),M_PART3,getequipname(5),M_PART5,getequipname(6),M_PART6,getequipname(7),M_PART7,getequipname(8),M_PART8;
//Head Gear
M_PART1:
set @part,1;
if (getequipisequiped(1)) goto L_CHECK1;
mes "[Perchik]";
mes "A bald head under a cheap wig... There's nothing worthy to sign.";
emotion 6;
goto M_MENU;
M_PART9:
set @part,9;
if (getequipisequiped(9)) goto L_CHECK1;
mes "[Perchik]";
mes "Glasses... I can't see any glasses...";
emotion 20;
goto M_MENU;
M_PART10:
set @part,10;
if (getequipisequiped(10)) goto L_CHECK1;
mes "[Perchik]";
mes "I don't see any mask here.";
emotion 20;
goto M_MENU;
//Armor
M_PART2:
set @part,2;
if (getequipisequiped(2)) goto L_CHECK1;
mes "[Perchik]";
mes "Your belly...? Yes, it's rather fat.";
emotion 6;
goto M_MENU;
//Left Hand
M_PART3:
set @part,3;
if (getequipisequiped(3)) goto L_CHECK1;
mes "[Perchik]";
mes "Sign your left hand? I'm not a celebrity, you know...";
emotion 4;
goto M_MENU;
//Right Hand
M_PART4:
set @part,4;
if (getequipisequiped(4)) goto L_CHECK1;
mes "[Perchik]";
mes "It isn't an armor... It's a mud!!! Wash your hands more often.";
emotion 4;
goto M_MENU;
//Garment
M_PART5:
set @part,5;
if (getequipisequiped(5)) goto L_CHECK1;
mes "[Perchik]";
mes "Look... It's empty...";
goto M_MENU;
//Foot Gear
M_PART6:
set @part,6;
if (getequipisequiped(6)) goto L_CHECK1;
mes "[Perchik]";
mes "Aw!! I don't like stinky feet.";
emotion 16;
goto M_MENU;
//Accessory1
M_PART7:
set @part,7;
if (getequipisequiped(7)) goto L_CHECK1;
mes "[Perchik]";
mes "Yep... a pocket with a huge hole...";
emotion 20;
goto M_MENU;
//Accessory2
M_PART8:
set @part,8;
if (getequipisequiped(8)) goto L_CHECK1;
mes "[Perchik]";
mes "I see your fat belly...";
emotion 20;
goto M_MENU;
L_CHECK1:
set @ref,0;
set @id,getequipid(@part);
if(getequipisidentify(@part)) goto L_CHECK2;
mes "[Perchik]";
mes "How could you equip such unknown item?";
npctalk "What a sneaky cheater!";
emotion e_wah;
close;
L_CHECK2:
set @ref,getequiprefinerycnt(@part);
mes "[Perchik]";
mes "You want me to sign your "+getitemname(@id)+"...";
if(BaseJob==Job_Novice) {
mes "But you're a Novice. My BOSS told me to send such weaklings away.";
emotion e_sry;
goto M_MENU;
}
set @slot0,getequipcardid(@part,0);
set @slot1,getequipcardid(@part,1);
set @slot2,getequipcardid(@part,2);
set @slot3,getequipcardid(@part,3);
if(@slot0==255 || @slot0==254 || @slot0<0) {
mes "Alas, this item's already signed.";
mes "I would never touch masters work.";
emotion e_hmm;
goto M_MENU;
}
if(@slot0>4000 && @slot0<5000) {
mes "A card? Here?!";
mes "As I said before, I don't sign items with cards.";
emotion e_hmm;
goto M_MENU;
}
if(getiteminfo(@id,10)) {
mes "Sorry. I don't sign slotted items.";
emotion e_sry;
goto M_MENU;
}
getinventorylist;
for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){
if(@inventorylist_expire[.@i] != 0) {
mes "Sorry, I don't sign rental items!";
emotion e_hmm;
goto M_MENU;
}
}
if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time.";
mes "Give me ^0000803 gray Gift Boxes^000000";
if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000.";
next;
menu "Ok!",-, "Leave",M_END;
if(Zeny>=(5000*@ref) && countitem(644)>=3) {
delitem 644,3;
set Zeny,Zeny-(5000*@ref);
goto L_MAKE;
}
mes "[Perchik]";
mes "I don't work for 'thanks'.";
emotion e_sry;
close;
L_MAKE:
if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) {
mes "[Perchik]";
mes "Where is... "+getitemname(@id)+"?";
npctalk "You're a snoozy cheater!";
logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id);
emotion e_wah;
close;
}
delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3;
mes "[Perchik]";
mes "Done!";
emotion e_proud;
getitem2 @id,1,1,@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff;
close;
M_END:
mes "[Perchik]";
mes "See you...";
emotion e_yawn;
close;
}

View File

@ -1,44 +1,44 @@
//===== eAthena Script =======================================
//= Shop Street
//===== By: ==================================================
//= Masao
//===== Current Version: =====================================
//= 1.0 [Masao]
//===== Compatible With: =====================================
//= Any eA SVN
//===== Description: =========================================
//= A Shopstreet in Prontera where players can buy some Equipment.
//============================================================
prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000
prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000
prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000
prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000
prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000
prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000
prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000
prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000
prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000
prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500
prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000
prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000
prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000
prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000
prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000
prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000
prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000
prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000
prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000
prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000
prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000
prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000
prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000
prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000
prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000
prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000
prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000
prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000
prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50
prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500
prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650
//===== rAthena Script =======================================
//= Shop Street
//===== By: ==================================================
//= Masao
//===== Current Version: =====================================
//= 1.0 [Masao]
//===== Compatible With: =====================================
//= Any rA SVN
//===== Description: =========================================
//= A Shopstreet in Prontera where players can buy some Equipment.
//============================================================
prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000
prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000
prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000
prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000
prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000
prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000
prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000
prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000
prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000
prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500
prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000
prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000
prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000
prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000
prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000
prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000
prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000
prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000
prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000
prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000
prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000
prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000
prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000
prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000
prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000
prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000
prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000
prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000
prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50
prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7136:500,7137:500,7138:500,7139:500
prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650
prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750

View File

@ -1,319 +1,319 @@
//===== rAthena Script =======================================
//= Job Master
//===== By: ==================================================
//= rAthena Dev Team [Ori:LunatikBunnie]
//===== Current Version: =====================================
//= 1.7
//===== Compatible With: =====================================
//= rAthena SVN; 15624+
//===== Description: =========================================
//= Changes your job without asking too much
//= For other info, please contact me at Lunatikbunnie@gmail.com
//= Editted menu to avoid button mashing.
//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus]
//= script leaves grabage variable: 'lastJob'
//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants.
//= All credits go to pxxx [Skotlex]
//= 1.5 Rewrite everything from scratch. [Lance]
//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus]
//= 1.6 Added support for both branches of 3rd classes,
//= unified response order, fixed minor quirk.
//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job
//= level requirement to change to 3rd. [Rytech]
//===== TODO: ================================================
//= Add baby 3rd classes
//= Could be restructured some more using eajobs
//============================================================
prontera,153,193,6 script Job Master 123,{
mes "^ff0000[Job Master]^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)){
if (.thirdclass==1) {
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;
}
else {
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;
}
}
}
if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1)
{
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)
set .thirdclass, 1; // Allow players to change into third class?
end;
}
//===== rAthena Script =======================================
//= Job Master
//===== By: ==================================================
//= rAthena Dev Team [Ori:LunatikBunnie]
//===== Current Version: =====================================
//= 1.7
//===== Compatible With: =====================================
//= rAthena SVN; 15624+
//===== Description: =========================================
//= Changes your job without asking too much
//= For other info, please contact me at Lunatikbunnie@gmail.com
//= Editted menu to avoid button mashing.
//= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus]
//= script leaves grabage variable: 'lastJob'
//= 1.4 Added NJ/GS, changed all job numbers to Job_* constants.
//= All credits go to pxxx [Skotlex]
//= 1.5 Rewrite everything from scratch. [Lance]
//= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus]
//= 1.6 Added support for both branches of 3rd classes,
//= unified response order, fixed minor quirk.
//= 1.7 Corrected typo on EAJ_THIRD to EAJL_THIRD and fixed job
//= level requirement to change to 3rd. [Rytech]
//===== TODO: ================================================
//= Add baby 3rd classes
//= Could be restructured some more using eajobs
//============================================================
prontera,153,193,6 script Job Master 123,{
mes "^ff0000[Job Master]^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)){
if (.thirdclass==1) {
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;
}
else {
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;
}
}
}
if (Class >= Job_Lord_Knight && Class <= Job_Paladin2 && .thirdclass == 1)
{
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)
set .thirdclass, 1; // Allow players to change into third class?
end;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,63 +1,62 @@
//===== rAthena Script =======================================
//= Reset NPC
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Resets skills, stats, or both.
//===== Additional Comments: =================================
//= 1.0 First Version
//= 1.1 Optimized for the greater good. [Kisuka]
//============================================================
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;
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;
close;
case 4:
mes "Come again soon!";
close;
}
//===== rAthena Script =======================================
//= Reset NPC
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Resets skills, stats, or both.
//===== Additional Comments: =================================
//= 1.0 First Version
//= 1.1 Optimized for the greater good. [Kisuka]
//= 1.2 Cleaning [Euphy]
//============================================================
prontera,150,193,4 script Reset Girl 124,{
set .@ResetStat,5000; // Zeny for stat reset
set .@ResetSkill,5000; // Zeny for skill reset
set .@ResetBoth,9000; // Zeny for resetting both together
mes "[Reset Girl]";
mes "I am the Reset Girl.";
mes "Reset Stats: "+ .@ResetStat +"z";
mes "Reset Skills: "+ .@ResetSkill +"z";
mes "Reset Both: "+ .@ResetBoth +"z";
mes "Please select the service you want:";
next;
switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) {
case 1:
mes "[Reset Girl]";
if (Zeny < .@ResetSkill) {
mes "Sorry, you don't have enough Zeny.";
close; }
set Zeny, Zeny-.@ResetSkill;
ResetSkill;
mes "There you go!";
close;
case 2:
mes "[Reset Girl]";
if (Zeny < .@ResetStat) {
mes "Sorry, you don't have enough Zeny.";
close; }
set Zeny, Zeny-.@ResetStat;
ResetStatus;
mes "There you go!";
close;
case 3:
mes "[Reset Girl]";
if (Zeny < .@ResetBoth) {
mes "Sorry, you don't have enough Zeny.";
close; }
set Zeny, Zeny-.@ResetBoth;
ResetSkill;
ResetStatus;
mes "There you go!";
close;
case 4:
close;
}
}

33
npc/custom/stylist.txt Normal file
View File

@ -0,0 +1,33 @@
//===== rAthena Script =======================================
//= Stylist
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Changes your hair style, hair color, and cloth color.
//============================================================
prontera,170,180,1 script Stylist#custom_stylist 122,{
setarray .@Styles[1],553,37,250; // Maximum dye, hair style, and hair color
setarray .@Look[1],7,1,6;
set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color");
set .@Revert, getlook(.@Look[.@s]); set .@Style,1;
while(1) {
setlook .@Look[.@s], .@Style;
message strcharinfo(0),"This is style #"+.@Style+".";
set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)";
switch(select(.@menu$)) {
case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break;
case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break;
case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+".";
input .@Style,0,.@Styles[.@s];
if (!.@Style) set .@Style, rand(1,.@Styles[.@s]);
break;
case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; }
} end;
}

View File

@ -1,294 +1,385 @@
//===== rAthena Script =======================================
//===== rAthena Script =======================================
//= Warper
//===== By: ==================================================
//= Darkchild
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 2.2
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Generic warper...
//===== Additional Comments: =================================
//= 1.0 by Darkchild
//= 1.1 by jabs
//= 1.2 by Lupus (placement fixed in Amatsu)
//= 1.3 fixed Louyang label typo, added warp and WARPRA into
//= Nifleheim. Also sorted all names in alphabet order. [Lupus]
//= 1.4 fixed morroc warp npc overlaying kafra [Aria]
//= 1.4a Added Ayothaya and Einbroch to list, and town Warpra's [Fredzilla]
//= 1.4b fixed Izlude warp npc overlaying BBS [Justin84]
//= 1.5 Added this NPC to more places [Lupus]
//= 1.6 Rewrote a lot. Changed the sprite, some locations. [Poki#3]
//= TODO Add an option for selecting the level of the dungeon. [Poki#3]
//= 1.7 Temporary? Added F_ClearGarbage to clear unused/outdated variables [Lupus]
//= 1.8 Removed Duplicates [Silent]
//= 1.9 Optimized for the greater good. [Kisuka]
//= 2.0 Fixed warp for AntHell and Yuno. [Kisuka]
//= 2.1 Moved AntHell warp agent to the new anthell entrance. [brianluau]
//= 2.2 Updated Script with newest towns. [Masao]
//============================================================
//= To allow selecting the Level of the Dungeon you want to
//= Warp to set the @lvlselect variable to 1 (Not implemented yet!)
//===== Description: =========================================
//= A complete - but very condensed - warper script.
//= Coordinates written largely by Tekno-Kanix and ToastOfDoom.
//============================================================
- script Warp Agent#01::warpra 859,{
// set @lvlselect,0;
- script Warper -1,{
function Go; function Disp; function Pick;
callfunc "F_ClearGarbage"; //Clear outdated, unused variables
// --------------------------------------------------
// Main Menu:
// --------------------------------------------------
mes "[Warp Agent]";
mes "Hello " + strcharinfo(0) + ",";
mes "I can teleport you to any Town or Dungeon!";
mes "Where do you want to go?";
next;
switch(select("To a Town:To a Dungeon")) {
case 1:
mes "[Warp Agent]";
mes "Please select which town you would like to be teleported to.";
next;
switch(select("Alberta:Aldebaran:Amatsu:Ayothaya:Brasilis:Comodo:Dewata:Eclage:Einbroch:Einbech:El Dicastes:Expedition Camp:Geffen:Gonryun:Hugel:Izlude:Jawaii:Lighthalzen:Louyang:Lutie:Malangdo:Malaya:Manuk:Mora:Morroc:Moscovia:Payon:Prontera:Rachel:Splendide:Umbala:Veins:Yuno")) {
case 1:
warp "alberta",27,236;
break;
case 2:
warp "aldebaran",145,120;
break;
case 3:
warp "amatsu",197,86;
break;
case 4:
warp "ayothaya",149,118;
break;
case 5:
warp "brasilis",195,220;
break;
case 6:
warp "comodo",188,161;
break;
case 7:
warp "dewata",199,179;
break;
case 8:
warp "eclage",111,39;
break;
case 9:
warp "einbroch",64,200;
break;
case 10:
warp "einbech",70,95;
break;
case 11:
warp "dicastes01",198,187;
break;
case 12:
warp "mid_camp",183,241;
break;
case 13:
warp "geffen",119,66;
break;
case 14:
warp "gonryun",150,130;
break;
case 15:
warp "hugel",96,145;
break;
case 16:
warp "izlude",128,111;
break;
case 17:
warp "jawaii",249,127;
break;
case 18:
warp "lighthalzen",158,92;
break;
case 19:
warp "louyang",210,108;
break;
case 20:
warp "xmas",150,133;
break;
case 21:
warp "malangdo",224,184;
break;
case 22:
warp "malaya",212,206;
break;
case 23:
warp "manuk",282,138;
break;
case 24:
warp "mora",111,97;
break;
case 25:
warp "morocc",159,93;
break;
case 26:
warp "moscovia",223,184;
break;
case 27:
warp "payon",152,75;
break;
case 28:
warp "prontera",156,187;
break;
case 29:
warp "rachel",130,110;
break;
case 30:
warp "splendide",197,176;
break;
case 31:
warp "umbala",130,130;
break;
case 32:
warp "veins",216,123;
break;
case 33:
warp "yuno",160,168;
break;
}
break;
case 2:
mes "[Warp Agent]";
mes "Please select which dungeon you would like to be teleported to.";
next;
switch(select("Abyss Lake:Amatsu Dungeon:Anthell:Ayothaya Dungeon:Bibilan Dungeon:Coal Mine (Dead Pit):Culvert:Einbech Dungeon:Glast Heim:Gonryun Dungeon:Ice Dungeon:Juperos:Lighthalzen Bio Lab:Magma Dungeon:Niflheim:Odin Temple:Orc Dungeon:Payon Dungeon:Pyramids:Sphinx:Sunken Ship:Thanatos Tower:Thor Volcano:Turtle Dungeon")) {
case 1:
warp "hu_fild05",189,207;
break;
case 2:
warp "ama_dun01",229,12;
break;
case 3:
warp "moc_fild20",164,145;
break;
case 4:
warp "ayo_fild02",280,149;
break;
case 5:
warp "izlu2dun",106,88;
break;
case 6:
warp "mjolnir_02",81,359;
break;
case 7:
warp "prt_sewb1",126,248;
break;
case 8:
warp "einbech",135,249;
break;
case 9:
warp "glast_01",368,303;
break;
case 10:
warp "gonryun",160,195;
break;
case 11:
warp "ice_dun01",157,15;
break;
case 12:
warp "yuno_fild07",218,176;
break;
case 13:
warp "lighthalzen",158,285;
break;
case 14:
warp "yuno_fild03",39,140;
break;
case 15:
warp "niflheim",35,161;
break;
case 16:
warp "odin_tem01",98,144;
break;
case 17:
warp "gef_fild10",70,332;
break;
case 18:
warp "pay_arche",43,132;
break;
case 19:
warp "moc_ruins",62,162;
break;
case 20:
warp "moc_fild19",107,100;
break;
case 21:
warp "alb2trea",75,98;
break;
case 22:
warp "tha_scene01",131,223;
break;
case 23:
warp "thor_v01",21,229;
break;
case 24:
warp "tur_dun01",149,238;
}
break;
}
end;
menu "Last Warp ^777777["+lastwarp$+"]^000000",-,
" ~ Towns",Towns, " ~ Fields",Fields, " ~ Dungeons",Dungeons,
" ~ Guild Castles",Castles, " ~ Special Areas",Special;
if (lastwarp$ == "") dispbottom "You have not warped anywhere yet.";
else warp lastwarp$,lastwarpx,lastwarpy;
close;
// ------------------- Functions -------------------
// * Go("<map>",<x>,<y>);
// ~ Warps directly to a map.
// * Disp("<Menu Option>",<first option>,<last option>);
// * Pick("<map_prefix>"{,<index offset>});
// ~ Dynamic menu and map selection.
// * Disp("","<Option 1>:<Option 2>:<etc.>");
// * Pick("","<map1>","<map2>","<etc.>");
// ~ Manual menu and map selection.
//
// Other notes:
// ~ Array @c[] holds all (x,y) coordinates.
// ~ Use @c[2] EXCEPT when maps begin dynamically
// at 0: use @c[0] and Pick() offset 1.
// --------------------------------------------------
function Go {
warp getarg(0),getarg(1,0),getarg(2,0);
getmapxy(lastwarp$,lastwarpx,lastwarpy,0);
close; }
function Disp {
set @menu$,"";
if(getarg(0)=="") {
set @menu$,getarg(1);
return; }
for(set .@i,getarg(1); .@i<=getarg(2); set .@i,.@i+1)
set @menu$, @menu$+getarg(0)+" "+.@i+":";
return; }
function Pick {
if(getarg(0)=="") {
set .@i, select(@menu$);
warp getarg(.@i),@c[.@i*2],@c[.@i*2+1]; }
else {
set .@i, select(@menu$)-getarg(1,0);
warp getarg(0)+((.@i<10)?"0":"")+.@i,@c[.@i*2],@c[.@i*2+1]; }
getmapxy(lastwarp$,lastwarpx,lastwarpy,0);
close; }
// --------------------------------------------------
Towns:
// --------------------------------------------------
menu "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5,
"Brasilis",T6, "Comodo",T7, "Dewata",T33, "Eclage",T34, "Einbech",T8,
"Einbroch",T9, "El Dicastes",T10, "Geffen",T11, "Gonryun",T12, "Hugel",T13,
"Izlude",T14, "Jawaii",T15, "Lighthalzen",T16, "Louyang",T17, "Lutie",T18,
"Malangdo",T35, "Malaya",T36, "Manuk",T19, "Midgarts Expedition Camp",T20,
"Mora",T21, "Morroc",T22, "Moscovia",T23, "Nameless Island",T24,
"Niflheim",T25, "Payon",T26, "Rachel",T27, "Splendide",T28, "Thor Camp",T29,
"Umbala",T30, "Veins",T31, "Yuno",T32;
T1: Go("prontera",155,183);
T2: Go("alberta",28,234);
T3: Go("aldebaran",140,131);
T4: Go("amatsu",198,84);
T5: Go("ayothaya",208,166);
T6: Go("brasilis",195,220);
T7: Go("comodo",209,143);
T8: Go("einbech",138,243);
T9: Go("einbroch",64,200);
T10: Go("dicastes01",197,187);
T11: Go("geffen",120,68);
T12: Go("gonryun",160,121);
T13: Go("hugel",96,145);
T14: Go("izlude",128,114);
T15: Go("jawaii",213,230);
T16: Go("lighthalzen",158,92);
T17: Go("louyang",217,100);
T18: Go("xmas",147,134);
T19: Go("manuk",260,175);
T20: Go("mid_camp",210,288);
T21: Go("mora",111,97);
T22: Go("morocc",156,93);
T23: Go("moscovia",219,193);
T24: Go("nameless_n",256,215);
T25: Go("niflheim",202,174);
T26: Go("payon",179,100);
T27: Go("rachel",130,111);
T28: Go("splendide",200,153);
T29: Go("thor_camp",246,68);
T30: Go("umbala",127,128);
T31: Go("veins",216,123);
T32: Go("yuno",157,51);
T33: Go("dewata",199,179);
T34: Go("eclage",111,39);
T35: Go("malangdo",224,184);
T36: Go("malaya",212,206);
// --------------------------------------------------
Fields:
// --------------------------------------------------
menu "Amatsu Fields",F1, "Ayothaya Fields",F2, "Bifrost Fields", F3,
"Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F26,
"Eclage Fields",F27, "Einbroch Fields",F6, "El Dicastes Fields",F7,
"Geffen Fields",F8, "Gonryun Fields",F9, "Hugel Fields",F10,
"Lighthalzen Fields",F11, "Louyang Field",F12, "Lutie Field",F13,
"Malaya Fields",F28, "Manuk Fields",F14, "Mjolnir Fields",F15,
"Moscovia Fields",F16, "Niflheim Fields",F17, "Payon Forests",F18,
"Prontera Fields",F19, "Rachel Fields",F20, "Sograt Deserts",F21,
"Splendide Fields",F22, "Umbala Fields",F23, "Veins Fields",F24,
"Yuno Fields",F25;
F1: setarray @c[2],190,197;
Disp("Amatsu Field",1,1); Pick("ama_fild");
F2: setarray @c[2],173,134,212,150;
Disp("Ayothaya Field",1,2); Pick("ayo_fild");
F3: setarray @c[2],193,220,220,187;
Disp("Bifrost Field",1,2); Pick("bif_fild");
F4: setarray @c[2],74,32;
Disp("Brasilis Field",1,1); Pick("bra_fild");
F5: setarray @c[2],180,178,231,160,191,172,228,194,224,203,190,223,234,177,194,175,172,172;
Disp("Comodo Field",1,9); Pick("cmd_fild");
F6: setarray @c[2],142,225,182,141,187,228,185,173,216,173,195,148,272,220,173,214,207,174,196,200;
Disp("Einbroch Field",1,10); Pick("ein_fild");
F7: setarray @c[2],143,132,143,217;
Disp("El Dicastes Field",1,2); Pick("dic_fild");
F8: setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185;
Disp("Geffen Field",0,14); Pick("gef_fild");
F9: setarray @c[2],220,227;
Disp("Gonryun Field",1,1); Pick("gon_fild");
F10: setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197;
Disp("Hugel Field",1,7); Pick("hu_fild");
F11: setarray @c[2],240,179,185,235,240,226;
Disp("Lighthalzen Field",1,3); Pick("lhz_fild");
F12: setarray @c[2],229,187;
Disp("Louyang Field",1,1); Pick("lou_fild");
F13: setarray @c[2],115,145;
Disp("Lutie Field",1,1); Pick("xmas_fild");
F14: setarray @c[2],35,236,35,262,84,365;
Disp("Manuk Field",1,3); Pick("man_fild");
F15: setarray @c[2],204,120,175,193,208,213,179,180,181,240,195,270,235,202,188,215,205,144,245,223,180,206,196,208;
Disp("Mjolnir Field",1,12); Pick("mjolnir_");
F16: setarray @c[2],82,104,131,147;
Disp("Moscovia Field",1,2); Pick("mosk_fild");
F17: setarray @c[2],215,229,167,234;
Disp("Niflheim Field",1,2); Pick("nif_fild");
F18: setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150;
Disp("Payon Forest",1,11); Pick("pay_fild");
F19: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164;
Disp("Prontera Field",0,11); Pick("prt_fild");
F20: setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197;
Disp("Rachel Field",1,13); Pick("ra_fild");
F21: setarray @c[2],219,205,177,206,194,182,184,217,203,213,213,208,224,170,229,177,195,198,209,168,198,216,156,187,185,263,209,219,223,188,206,228,208,238,209,223,85,97,207,202,31,195,38,195;
Disp("Sograt Desert",1,22); Pick("moc_fild");
F22: setarray @c[2],175,186,236,184,188,204;
Disp("Splendide Field",1,3); Pick("spl_fild");
F23: setarray @c[2],217,206,223,221,237,215,202,197;
Disp("Umbala Field",1,4); Pick("um_fild");
F24: setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307;
Disp("Veins Field",1,7); Pick("ve_fild");
F25: setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304;
Disp("Yuno Field",1,12); Pick("yuno_fild");
F26: setarray @c[2],371,212;
Disp("Dewata Field",1,1); Pick("dew_fild");
F27: setarray @c[2],97,314;
Disp("Eclage Field",1,1); Pick("ecl_fild");
F28: setarray @c[2],40,272,266,359;
Disp("Malaya Field",1,2); Pick("ma_fild");
// --------------------------------------------------
Dungeons:
// --------------------------------------------------
menu "Abyss Lakes",D1, "Amatsu Dungeon",D2, "Anthell",D3,
"Ayothaya Dungeon",D4, "Beach Dungeon",D5, "Bio Labs",D6,
"Brasilis Dungeon",D7, "Byalan Dungeon",D8, "Clock Tower",D9,
"Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D41,
"Einbroch Dungeon",D13, "Endless Tower",D14, "Gefenia",D15,
"Geffen Dungeon",D16, "Glast Heim",D17, "Gonryun Dungeon",D18,
"Guild Dungeons",GD, "Hidden Dungeon",D19, "Ice Dungeon",D20,
"Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23,
"Magma Dungeon",D24, "Malangdo Dungeon",D42, "Moscovia Dungeon",D25,
"Nidhogg's Dungeon",D26, "Odin Temple",D27, "Orc Dungeon",D28, "Payon Dungeon",D29,
"Pyramids",D30, "Rachel Sanctuary",D31, "Scaraba Hole",D32, "Sealed Shrine",D33,
"Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36, "Thor Volcano",D37,
"Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40;
D1: setarray @c[2],192,207,275,270,116,27;
Disp("Abyss Lakes",1,3); Pick("abyss_");
D2: setarray @c[2],228,11,34,41,119,14;
Disp("Amatsu Dungeon",1,3); Pick("ama_dun");
D3: setarray @c[2],35,262,168,170;
Disp("Anthell",1,2); Pick("anthell");
D4: setarray @c[2],275,19,24,26;
Disp("","Ancient Shrine Maze:Inside Ancient Shrine"); Pick("ayo_dun");
D5: setarray @c[2],266,67,255,244,23,260;
Disp("Beach Dungeon",1,3); Pick("","beach_dun","beach_dun2","beach_dun3");
D6: setarray @c[2],150,288,150,18,140,134;
Disp("Bio Lab",1,3); Pick("lhz_dun");
D7: setarray @c[2],87,47,262,262;
Disp("Brasilis Dungeon",1,2); Pick("bra_dun");
D8: setarray @c[0],168,168,253,252,236,204,32,63,26,27;
Disp("Byalan Dungeon",1,5); Pick("iz_dun",1);
D9: setarray @c[2],199,159,148,283,65,147,56,155,297,25,127,169,277,178,268,74;
Disp("","Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4");
Pick("","c_tower1","c_tower2","c_tower3","c_tower4","alde_dun01","alde_dun02","alde_dun03","alde_dun04");
D10: setarray @c[2],52,17,381,343,302,262;
Disp("Coal Mines",1,3); Pick("mjo_dun");
D11: setarray @c[2],131,247,19,19,180,169,100,92;
Disp("Culvert",1,4); Pick("","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4");
D12: setarray @c[2],51,14,150,11,120,10;
Disp("Cursed Abbey",1,3); Pick("abbey");
D13: setarray @c[2],22,14,292,290;
Disp("Einbroch Dungeon",1,2); Pick("ein_dun");
D14: setarray @c[2],72,112;
Disp("","Misty Island"); Pick("","e_tower");
D15: setarray @c[2],40,103,203,34,266,168,130,272;
Disp("Gefenia",1,4); Pick("gefenia",0);
D16: setarray @c[0],104,99,115,236,106,132,203,200;
Disp("Geffen Dungeon",1,4); Pick("gef_dun",1);
D17: setarray @c[2],375,304,199,29,104,25,150,15,157,287,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14;
Disp("","Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2");
Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_chyard","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1");
D18: setarray @c[2],153,53,28,113,68,16;
Disp("Gonryun Dungeon",1,3); Pick("gon_dun");
D19: setarray @c[2],176,7,93,20,23,8;
Disp("Hidden Dungeon",1,3); Pick("prt_maze");
D20: setarray @c[2],157,14,151,155,149,22,33,158;
Disp("Ice Dungeon",1,4); Pick("ice_dun");
D21: setarray @c[2],140,51,53,247,37,63,150,285;
Disp("","Entrance:Juperos 1:Juperos 2:Core");
Pick("","jupe_cave","juperos_01","juperos_02","jupe_core");
D22: setarray @c[2],28,226,41,198;
Disp("Kiel Dungeon",1,2); Pick("kh_dun");
D23: setarray @c[2],218,196,282,20,165,38;
Disp("","The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun");
D24: setarray @c[2],126,68,47,30;
Disp("Magma Dungeon",1,2); Pick("mag_dun");
D25: setarray @c[2],189,48,165,30,32,135;
Disp("Moscovia Dungeon",1,3); Pick("mosk_dun");
D26: setarray @c[2],61,239,60,271;
Disp("Nidhogg's Dungeon",1,2); Pick("nyd_dun");
D27: setarray @c[2],298,167,224,149,266,280;
Disp("Odin Temple",1,3); Pick("odin_tem");
D28: setarray @c[2],32,170,21,185;
Disp("Orc Dungeon",1,2); Pick("orcsdun");
D29: setarray @c[0],21,183,19,33,19,63,155,159,201,204;
Disp("Payon Dungeon",1,5); Pick("pay_dun",1);
D30: setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8;
Disp("","Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2"); Pick("moc_pryd");
D31: setarray @c[2],140,11,32,21,4,149,204,218,150,9;
Disp("Rachel Sanctuary",1,5); Pick("ra_san");
D32: setarray @c[2],364,44,101,141;
Disp("Scaraba Hole",1,2); Pick("dic_dun");
D33: setarray @c[2],306,143;
Disp("","Friar Patrick"); Pick("","monk_test");
D34: setarray @c[2],288,9,149,81,210,54,10,222,100,99;
Disp("Sphinx",1,5); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5");
D35: setarray @c[2],69,24,102,27;
Disp("Sunken Ship",1,2); Pick("treasure");
D36: setarray @c[2],150,39,150,136,220,158,59,143,62,11,89,221,35,166,93,148,29,107,159,138,19,20,130,52;
Disp("Thanatos Tower",1,12); Pick("tha_t");
D37: setarray @c[2],21,228,75,205,34,272;
Disp("Thor Volcano",1,3); Pick("thor_v");
D38: setarray @c[2],205,15,129,133;
Disp("Toy Factory",1,2); Pick("xmas_dun");
D39: setarray @c[2],154,49,148,261,132,189,100,192;
Disp("","Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun");
D40: setarray @c[2],42,31,48,30,204,78;
Disp("","Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain");
Pick("","um_dun01","um_dun02","yggdrasil01");
D41: setarray @c[2],285,160,299,29;
Disp("Dewata Dungeon",1,2); Pick("dew_dun");
D42: setarray @c[2],33,230;
Disp("Malangdo Dungeon",1,1); Pick("mal_dun");
GD: setarray @c[2],119,93,39,161,50,44,116,45,199,195,200,124;
Disp("","Baldur:Luina:Valkyrie:Britoniah:Arunafeltz:Schwaltzvalt");
Pick("","gld_dun01","gld_dun02","gld_dun03","gld_dun04","arug_dun01","schg_dun01");
// --------------------------------------------------
Castles:
// --------------------------------------------------
menu "Aldebaran Castles",C1, "Geffen Castles",C2, "Payon Castles",C3,
"Prontera Castles",C4, "Arunafeltz Castles",C5, "Schwaltzvalt Castles",C6;
C1: setarray @c[2],48,83,95,249,142,85,239,242,264,90;
Disp("","Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg");
Pick("","alde_gld","alde_gld","alde_gld","alde_gld","alde_gld");
C2: setarray @c[2],214,75,308,240,143,240,193,278,305,87;
Disp("","Repherion:Eeyolbriggar:Yesnelph:Bergel:Mersetzdeitz");
Pick("","gef_fild13","gef_fild13","gef_fild13","gef_fild13","gef_fild13");
C3: setarray @c[2],121,233,295,116,317,293,140,160,204,266;
Disp("","Bright Arbor:Scarlet Palace:Holy Shadow:Sacred Altar:Bamboo Grove Hill");
Pick("","pay_gld","pay_gld","pay_gld","pay_gld","pay_gld");
C4: setarray @c[2],134,65,240,128,153,137,111,240,208,240;
Disp("","Kriemhild:Swanhild:Fadhgridh:Skoegul:Gondul");
Pick("","prt_gld","prt_gld","prt_gld","prt_gld","prt_gld");
C5: setarray @c[2],158,272,83,47,68,155,299,345,292,107;
Disp("","Mardol:Cyr:Horn:Gefn:Banadis");
Pick("","aru_gld","aru_gld","aru_gld","aru_gld","aru_gld");
C6: setarray @c[2],293,100,288,252,97,196,137,90,71,315;
Disp("","Himinn:Andlangr:Viblainn:Hljod:Skidbladnir");
Pick("","sch_gld","sch_gld","sch_gld","sch_gld","sch_gld");
// --------------------------------------------------
Special:
// --------------------------------------------------
menu "Auction Hall",S1, "Battlegrounds",S2, "Casino",S3, "Gonryun Arena",S4,
"Izlude Arena",S5, "Monster Race Arena",S6, "Turbo Track",S7;
S1: Go("auction_01",22,68);
S2: Go("bat_room",154,150);
S3: Go("cmd_in02",179,129);
S4: Go("gon_test",48,10);
S5: Go("arena_room",100,88);
S6: Go("p_track01",62,41);
S7: Go("turbo_room",99,114);
}
// --------- NPC Clones ------------
// ---------------------------------
// ----------- Towns -------------
alberta,31,240,4 duplicate(warpra) Warp Agent#02 859
aldebaran,145,118,4 duplicate(warpra) Warp Agent#03 859
amatsu,192,81,1 duplicate(warpra) Warp Agent#04 859
ayothaya,144,117,6 duplicate(warpra) Warp Agent#05 859
comodo,194,158,4 duplicate(warpra) Warp Agent#06 859
einbroch,59,205,4 duplicate(warpra) Warp Agent#07 859
einbroch,243,189,2 duplicate(warpra) Warp Agent#08 859
einbech,135,249,4 duplicate(warpra) Warp Agent#09 859
geffen,115,66,4 duplicate(warpra) Warp Agent#10 859
gonryun,151,130,4 duplicate(warpra) Warp Agent#11 859
izlude,133,117,4 duplicate(warpra) Warp Agent#12 859
hugel,88,151,5 duplicate(warpra) Warp Agent#13 859
lighthalzen,155,79,6 duplicate(warpra) Warp Agent#14 859
louyang,210,106,4 duplicate(warpra) Warp Agent#15 859
morocc,156,95,4 duplicate(warpra) Warp Agent#16 859
prontera,160,190,4 duplicate(warpra) Warp Agent#17 859
payon,182,110,4 duplicate(warpra) Warp Agent#18 859
umbala,132,130,4 duplicate(warpra) Warp Agent#19 859
xmas,150,136,4 duplicate(warpra) Warp Agent#20 859
yuno,137,162,4 duplicate(warpra) Warp Agent#21 859
lighthalzen,212,136,6 duplicate(warpra) Warp Agent#22 859
veins,215,134,6 duplicate(warpra) Warp Agent#23 859
splendide,198,153,6 duplicate(warpra) Warp Agent#24 859
manuk,281,140,6 duplicate(warpra) Warp Agent#25 859
brasilis,200,157,6 duplicate(warpra) Warp Agent#26 859
rachel,127,111,6 duplicate(warpra) Warp Agent#27 859
moscovia,222,220,6 duplicate(warpra) Warp Agent#28 859
mid_camp,180,246,6 duplicate(warpra) Warp Agent#29 859
dicastes01,194,188,6 duplicate(warpra) Warp Agent#30 859
dewata,194,178,6 duplicate(warpra) Warp Agent#31 859
malangdo,220,188,6 duplicate(warpra) Warp Agent#32 859
niflheim,32,161,4 duplicate(warpra) Warp Agent#33 859
malaya,210,205,4 duplicate(warpra) Warp Agent#34 859
mora,110,100,4 duplicate(warpra) Warp Agent#35 859
eclage,107,37,4 duplicate(warpra) Warp Agent#36 859
// ------------ Dungeons ------------
ama_dun01,233,9,1 duplicate(warpra) Warp Agent#37 859
moc_fild20,162,139,6 duplicate(warpra) Warp Agent#38 859
ayo_fild02,279,154,4 duplicate(warpra) Warp Agent#39 859
izlu2dun,104,82,4 duplicate(warpra) Warp Agent#40 859
prt_sewb1,125,253,4 duplicate(warpra) Warp Agent#41 859
mjolnir_02,85,363,4 duplicate(warpra) Warp Agent#42 859
einbech,81,101,1 duplicate(warpra) Warp Agent#43 859
glast_01,370,308,4 duplicate(warpra) Warp Agent#44 859
yuno_fild03,37,135,4 duplicate(warpra) Warp Agent#45 859
niflheim,32,161,4 duplicate(warpra) Warp Agent#46 859
gef_fild10,71,339,4 duplicate(warpra) Warp Agent#47 859
pay_arche,39,135,4 duplicate(warpra) Warp Agent#48 859
moc_ruins,64,166,4 duplicate(warpra) Warp Agent#49 859
moc_fild19,106,97,4 duplicate(warpra) Warp Agent#50 859
alb2trea,73,101,4 duplicate(warpra) Warp Agent#51 859
tur_dun01,148,239,4 duplicate(warpra) Warp Agent#52 859
lhz_dun01,157,285,4 duplicate(warpra) Warp Agent#53 859
hu_fild05,186,210,4 duplicate(warpra) Warp Agent#54 859
yuno_fild07,221,179,4 duplicate(warpra) Warp Agent#55 859
tha_scene01,139,194,1 duplicate(warpra) Warp Agent#56 859
odin_tem01,96,149,4 duplicate(warpra) Warp Agent#57 859
// --------------------------------------------------
// Duplicates:
// --------------------------------------------------
prontera,159,192,4 duplicate(Warper) Warper#1 811
rachel,135,116,4 duplicate(Warper) Warper#2 811
alberta,28,240,4 duplicate(Warper) Warper#3 811
aldebaran,145,118,4 duplicate(Warper) Warper#4 811
amatsu,203,87,4 duplicate(Warper) Warper#5 811
ayothaya,209,169,6 duplicate(Warper) Warper#6 811
comodo,194,158,4 duplicate(Warper) Warper#7 811
einbech,142,246,4 duplicate(Warper) Warper#8 811
einbroch,69,202,4 duplicate(Warper) Warper#9 811
hugel,101,151,4 duplicate(Warper) Warper#10 811
lighthalzen,151,101,6 duplicate(Warper) Warper#11 811
geffen,124,72,4 duplicate(Warper) Warper#12 811
izlude,132,120,4 duplicate(Warper) Warper#13 811
xmas,150,136,4 duplicate(Warper) Warper#14 811
morocc,159,97,4 duplicate(Warper) Warper#15 811
payon,182,108,4 duplicate(Warper) Warper#16 811
yuno,162,47,4 duplicate(Warper) Warper#17 811
moc_fild04,207,331,4 duplicate(Warper) Warper#18 811
izlu2dun,104,82,4 duplicate(Warper) Warper#19 811
mjolnir_02,85,363,4 duplicate(Warper) Warper#20 811
prt_fild05,273,215,4 duplicate(Warper) Warper#21 811
glast_01,370,308,4 duplicate(Warper) Warper#22 811
yuno_fild03,37,135,4 duplicate(Warper) Warper#23 811
gef_fild10,71,339,4 duplicate(Warper) Warper#24 811
pay_arche,39,135,4 duplicate(Warper) Warper#25 811
moc_ruins,64,166,4 duplicate(Warper) Warper#26 811
moc_fild19,106,97,4 duplicate(Warper) Warper#27 811
alb2trea,73,101,4 duplicate(Warper) Warper#28 811
tur_dun01,148,239,4 duplicate(Warper) Warper#29 811
gonryun,162,122,4 duplicate(Warper) Warper#30 811
louyang,208,103,6 duplicate(Warper) Warper#31 811
umbala,132,130,4 duplicate(Warper) Warper#32 811
brasilis,201,222,4 duplicate(Warper) Warper#33 811
manuk,262,177,4 duplicate(Warper) Warper#34 811
splendide,205,153,4 duplicate(Warper) Warper#35 811
mid_camp,216,288,4 duplicate(Warper) Warper#36 811
dicastes01,194,194,6 duplicate(Warper) Warper#37 811
mora,110,100,4 duplicate(Warper) Warper#38 811
moscovia,216,196,6 duplicate(Warper) Warper#39 811
nameless_n,259,213,4 duplicate(Warper) Warper#40 811
niflheim,205,179,4 duplicate(Warper) Warper#41 811
thor_camp,249,76,4 duplicate(Warper) Warper#42 811
veins,214,123,4 duplicate(Warper) Warper#43 811
dewata,194,178,6 duplicate(Warper) Warper#44 811
eclage,107,37,4 duplicate(Warper) Warper#45 811
malaya,210,205,4 duplicate(Warper) Warper#46 811
malangdo,220,188,6 duplicate(Warper) Warper#47 811

View File

@ -2,73 +2,64 @@
// - Custom Scripts -
// --------------------------------------------------------------
// All the custom scripts, remove the '//' to enable...
// Place your scripts here!
// --------------------------------------------------------------
// ------------------------- My Scripts -------------------------
//npc: npc/location/to/script.txt
// Your scripts go here!!
// --------------------------------------------------------------
// ----------------------- Basic Scripts -----------------------
// -- Card Remover
//npc: npc/custom/card_remover.txt
// -- Write your name on your equipment/weapon (mini-quest)
//npc: npc/custom/sign_your_items.txt
// -- Banks
//npc: npc/custom/banks/kafra_bank.txt
//npc: npc/custom/banks/bank.txt
// -- Reset NPC
//npc: npc/custom/reset.txt
// -- Job Changer
//npc: npc/custom/jobmaster.txt
// -- Healer(s)
//npc: npc/custom/heal.txt
// -- Black Jack
//npc: npc/custom/blackjack.txt
// -- City and Dungeon Warper
// ----------------------- Basic Scripts -----------------------
//npc: npc/custom/warper.txt
// -- Stylist
//npc: npc/custom/dye.txt
// -- Custom Penal Servitude (Jails Quest)
//npc: npc/custom/penal_servitude.txt
// -- Dev NPCs (NPCs named after devs...)
//npc: npc/custom/devnpc.txt
// -- Unofficial poetry
//npc: npc/custom/wandering_poets.txt
// -- Platinum Skills
//npc: npc/custom/jobmaster.txt
//npc: npc/custom/platinum_skills.txt
// -- Custom Shops
//npc: npc/custom/itemmall.txt
// -- Free Falcon & Peco breeder, Free Carts
//npc: npc/custom/healer.txt
//npc: npc/custom/breeder.txt
// -- Unofficial Airplane Script
//npc: npc/custom/airplane.txt
// -- MVP Arena
// ~ If you wish to use the mvp arena, please enable both scripts.
//npc: npc/custom/MVP_arena/arena_mvp.txt
//npc: npc/custom/MVP_arena/amvp_func.txt
// -- WoE Time Setter - Lets you set War of Emperium time easily from inside the game [Fredzilla]
//npc: npc/custom/itemmall.txt
//npc: npc/custom/stylist.txt
//npc: npc/custom/resetnpc.txt
//npc: npc/custom/card_remover.txt
//npc: npc/custom/item_signer.txt
// -- WoE Time Setter from inside the game [Fredzilla]
//npc: npc/custom/WoE_Setter.txt
//
// Stock Market (Play on it, earn money, very flexible)
//npc: npc/custom/stock_market.txt
// Russian Roulette + Rock Scissors Paper (contains some OBB / OVB / OCA etc dangerous!!! prizes!)
//npc: npc/custom/rpsroulette.txt
// Hire your Ninjas Squad and assassinate some enemy
//npc: npc/custom/shifty_assassin.txt
// Train your Monsters to fight against other players' monsters
//npc: npc/custom/mvm.txt
// A simply Raceway mini-game
//npc: npc/custom/morroc_raceway.txt
// A nice lottery (very flexible)
//npc: npc/custom/lottery.txt
//
// Wedding script (rewritten by Scotlex )
// Supports Same-sex marriages.
// -- Wedding script that supports same-sex marriages
//npc: npc/custom/marriage.txt
// -- Warper that works only after locations are unlocked
//npc: npc/custom/quest_warper.txt
// ----------------------- Other Scripts -----------------------
// -- MVP Arena
//npc: npc/custom/etc/mvp_arena.txt
// -- Penal Servitude (Jails Quest)
//npc: npc/custom/etc/penal_servitude.txt
// -- Banks
//npc: npc/custom/etc/bank_kafra.txt
//npc: npc/custom/etc/bank.txt
// -- Lottery (very flexible)
//npc: npc/custom/etc/lottery.txt
// -- Stock Market (Play on it, earn money, very flexible)
//npc: npc/custom/etc/stock_market.txt
// -- Russian Roulette + Rock Scissors Paper (warning! contains OBB/OVB/OCA/etc. prizes!)
//npc: npc/custom/etc/rpsroulette.txt
// -- Black Jack
//npc: npc/custom/etc/blackjack.txt
// -- Airplane script (unofficial)
//npc: npc/custom/etc/airplane.txt
// -- Hire ninja squads to assassinate an enemy!
//npc: npc/custom/etc/shifty_assassin.txt
// -- Train your monsters to fight against other players' monsters
//npc: npc/custom/etc/monster_arena.txt
// -- Raceway mini-game
//npc: npc/custom/etc/morroc_raceway.txt
// -- Dev NPCs (NPCs named after devs...)
//npc: npc/custom/etc/devnpc.txt
// -- Unofficial poetry
//npc: npc/custom/etc/wandering_poets.txt
// -- Random change of Drop/Exp rates 1x ~ 1.5x every 6 hours on your server
//npc: npc/custom/floating_rates.txt
// -- Disable shops in the Prontera streets and open a special market place.
//npc: npc/custom/market.txt
// --------------------------------------------------------------
// BattleGround (please read conf/battle/battleground.conf before
// uncomment battleground scripts).
// uncommenting battleground scripts).
// --------------------------------------------------------------
//npc: npc/custom/battleground/bg_common.txt
//npc: npc/custom/battleground/bg_tierra_01.txt
@ -79,8 +70,7 @@
//npc: npc/custom/battleground/bg_kvm02.txt
//npc: npc/custom/battleground/bg_kvm03.txt
// --------------------------------------------------------------
// ----------------------- Quests Scripts -----------------------
// ----------------------- Quest Scripts -----------------------
// -- Treasure Hunters Guild Quests (40 Quests + Special Guild Shop)
//npc: npc/custom/quests/thq/THQS_ChatingNPC.txt
//npc: npc/custom/quests/thq/THQS_GuildNPC.txt
@ -96,46 +86,42 @@
//npc: npc/custom/quests/ironcane.txt
//npc: npc/custom/quests/sunglasses.txt
//npc: npc/custom/quests/berzebub.txt
// Bandit Beard headgear quest (very long and safe quest)
// -- Bandit Beard headgear quest (very long and safe quest)
//npc: npc/custom/quests/bandit_beard.txt
// Dead Branch (and Bloody Branch) quest (safe to use)
// -- Dead Branch (and Bloody Branch) quest (safe to use)
//npc: npc/custom/quests/dead_branch.txt
// -- Removed Hats with official quests. Only 6 hats are left
//npc: npc/custom/quests/event_6_new_hats.txt
// (both Lord Kaho (GM Item), but different and quest.txt has Balmung (GM Item) too)
// Warning! It might break your server balance.
// -- Both Lord Kaho (GM Item), but different and quest.txt has Balmung (GM Item) too
// -- Warning! It might break your server balance.
//npc: npc/custom/quests/kaho_balmung.txt
//npc: npc/custom/quests/kahohorn.txt
// Nice Custom thanatos Tower Statues Quest
// -- Nice Custom thanatos Tower Statues Quest
//npc: npc/custom/quests/tha_statues.txt
// -- A quest for Jewel Case for 99 Level Players of any 2nd Class
//npc: npc/custom/quests/lvl99_quest.txt
// Disable shops in the Prontera streets and open a special market place.
//npc: npc/custom/market.txt
// Quest for: Bird Nest,Lion Mask,Skeleton Manteau,Fashion Hip Sack,Sales Banner
// -- Quest for: Bird Nest,Lion Mask,Skeleton Manteau,Fashion Hip Sack,Sales Banner
//npc: npc/custom/quests/may_hats.txt
// Random change of Drop/Exp rates 1x ~ 1.5x every 6 hours on your server
//npc: npc/custom/floating_rates.txt
// Extracted custom quests from the official Umbalian Quests (better, don't use)
// -- Extracted custom quests from the official Umbalian Quests (better, don't use)
//npc: npc/custom/quests/sphinx_mask.txt
//npc: npc/custom/quests/umbalian_language.txt
// Custom Kiel Mansion Dungeon Quest
// -- Custom Kiel Mansion Dungeon Quest
//npc: npc/custom/quests/kiel_quest.txt
// Custom Bongun Accessory/Bongun taming item quest
// -- Custom Bongun Accessory/Bongun taming item quest
//npc: npc/custom/quests/bongunsword.txt
// Custom Baphomet Jr. Taming item quest.
// -- Custom Baphomet Jr. Taming item quest.
//npc: npc/custom/quests/bookofthedevil.txt
//A custom event for 3 holidays: X-Mas, Karachun and New Year
//Should be activated between 8 December and 8 January
// -- A custom event for 3 holidays: X-Mas, Karachun and New Year
// -- Should be activated between 8 December and 8 January
//npc: npc/custom/events/xmas_rings_event.txt
//Grand Circlet Quest combined with Excalibur Quest
// -- Grand Circlet Quest combined with Excalibur Quest
//npc: npc/custom/events/kings_items.txt
//Custom Halloween Event (gives )
// -- Custom Halloween Event
//npc: npc/custom/events/hallow06.txt
//npc: npc/custom/events/uneasy_cemetery.txt
//npc: npc/custom/events/draculax.txt
//npc: npc/custom/events/2006_dogs_year.txt
//npc: npc/custom/events/valentinesdayexp.txt
//| Poring track files
// -- Poring track files
//npc: npc/custom/events/p_track/p_track_core.txt
//npc: npc/custom/events/p_track/p_track_warpers.txt

View File

@ -92,4 +92,3 @@ npc: npc/quests/skills/swordman_skills.txt
npc: npc/quests/skills/thief_skills.txt
npc: npc/quests/skills/wizard_skills.txt
// --------------------------------------------------------------