* Some cleaning of "Novice Training Grounds" script (npc\jobs\novice\novice.txt)

* Cleaned up "PvP NPCs" script a little bit (npc\other\pvp.txt)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16438 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
euphyy 2012-07-18 02:30:53 +00:00
parent a413425884
commit ec79a1b50d
6 changed files with 146 additions and 638 deletions

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Kisuka
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -12,6 +12,7 @@
//===== Additional Comments: =================================
//= 1.0 First version. [Kisuka]
//= 1.1 Updated warps, savepoints, NPC locations. [Kisuka]
//= 1.2 Cleaning. [Euphy]
//============================================================
//============================================================================
@ -136,7 +137,6 @@ new_1-2,100,29,4 script Sprakki#nv2 90,{
}
}
//============================================================================
// Instructor Brade
//============================================================================
@ -189,7 +189,7 @@ new_1-2,100,105,4 script Brade#nv 733,{
mes "The item window has 3 sections...";
next;
mes "[Instructor Brade]";
mes "consumable items, equipment and other items.";
mes "Consumable items, equipment, and other items.";
mes "If you want to use or equip items, double-click on the item or drag them into the Equipment Window.";
next;
mes "[Instructor Brade]";
@ -282,12 +282,8 @@ new_1-2,100,105,4 script Brade#nv 733,{
}
else if(job_novice_q == 5 || job_novice_q == 6) {
set .@EquipCheck,0;
if (getequipisequiped(EQI_SHOES)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_ARMOR)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_GARMET)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_HEAD_TOP)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_HAND_L)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_HAND_R)) { set .@EquipCheck,.@EquipCheck+1; }
for(set .@i,1; .@i<7; set .@i,.@i+1)
if (getequipisequiped(.@i)) set .@EquipCheck, .@EquipCheck+1;
if(.@EquipCheck >= 4) {
if(job_novice_q == 5) {
mes "[Instructor Brade]";
@ -626,7 +622,6 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
}
}
// ---------- Kafra ----------
new_1-2,29,176,4 script Kafra#nv 117,{
if(job_novice_q < 10) {
@ -973,7 +968,7 @@ new_1-2,35,176,4 script Soldier#nv 105,{
next;
mes "[Brade]";
mes "Try using the job manuals to find out the characteristics of each job's skills.";
mes "I will restore your HP and SP...Keep it up.";
mes "I will restore your HP and SP... Keep it up.";
percentheal 100,100;
skilleffect 28,9999;
close;
@ -989,6 +984,24 @@ new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
//============================================================================
// Job Guides (Real Combat Training)
//============================================================================
// --------------------------- Deletion Function ------------------------------
function script F_NvErase {
if (getarg(0,0)) {
if (checkquest(7123) == 0 || checkquest(7123) == 1) erasequest 7123;
if (checkquest(7124) == 0 || checkquest(7124) == 1) erasequest 7124;
if (checkquest(7126) == 0 || checkquest(7126) == 1) erasequest 7126;
if (checkquest(7127) == 0 || checkquest(7127) == 1) erasequest 7127;
}
nude;
if (countitem(2819)) delitem 2819,1; // Swordsman_Manual
if (countitem(2820)) delitem 2820,1; // Thief_Manual
if (countitem(2821)) delitem 2821,1; // Acolyte_Manual
if (countitem(2822)) delitem 2822,1; // Archer_Manual
if (countitem(2823)) delitem 2823,1; // Merchant_Manual
if (countitem(2824)) delitem 2824,1; // Mage_Manual
return;
}
// ---------------------------- Swordman Guide -------------------------------
- script Swordman Guide#nv::NvSwd 728,{
if(job_novice_q < 16) {
@ -1063,16 +1076,7 @@ new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
mes "[Swordman Guildsman]";
mes "Here is the Swordman manual.";
mes "I'll just take any manuals from any other classes you have.";
next;
mes "[Swordman Guildsman]";
mes "Here is the Swordman manual.";
mes "I'll just take any manuals from any other classes you have.";
nude;
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2819,1; // Swordsman_Manual
next;
mes "[Swordman Guildsman]";
@ -1094,17 +1098,7 @@ new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
mes "I see.";
mes "Then I'll end your training process and send you to the Swordman Guild.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "izlude",94,103;
warp "izlude_in",74,167;
end;
@ -1235,12 +1229,7 @@ new_5-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv5 728
mes "[Mage Guide]";
mes "Here is the Mage Manual.";
mes "I will take the other job registration forms and manuals from you.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
callfunc "F_NvErase";
getitem 2824,1; // Mage_Manual
next;
mes "[Mage Guide]";
@ -1262,17 +1251,7 @@ new_5-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv5 728
mes "Welcome!!";
mes "I will send you to the Mage Guilds union after you complete your Novice training.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "geffen",119,38;
warp "geffen_in",163,98;
end;
@ -1389,12 +1368,7 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "[Thief Guild Member]";
mes "Here, please take the Thief manual.";
mes "I'll just take the other class manuals while I'm at it.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2820,1; // Thief_Manual
next;
mes "[Thief Guild Member]";
@ -1417,17 +1391,7 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "Ok, I see.";
mes "Welcome. Then your Novice training is totally complete and you will be sent to the Thief Guild immediately.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "morocc",150,100;
warp "moc_prydb1",99,185;
end;
@ -1559,12 +1523,7 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "[Merchant Guide]";
mes "Here is the Merchant skill manual.";
mes "I will take other job manuals from you while I'm at it.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2823,1; // Merchant_Manual
next;
mes "[Merchant Guide]";
@ -1587,17 +1546,7 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "Welcome!!";
mes "I will send you to the Merchant Guild's union after you complete your Novice training.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "alberta",29,231;
warp "alberta_in",62,44;
end;
@ -1704,12 +1653,7 @@ new_5-3,109,41,4 duplicate(NvMer) Merchant Guide#nv5 97
next;
mes "[Archer Guide]";
mes "I will take the other job manuals from you while you test the Archer manual out.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2822,1; // Archer_Manual
next;
mes "[Archer Guide]";
@ -1731,17 +1675,7 @@ new_5-3,109,41,4 duplicate(NvMer) Merchant Guide#nv5 97
mes "Welcome!!";
mes "I will send you to the Archer Guild after you complete your Novice training.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "payon",256,242;
warp "payon_in02",64,65;
end;
@ -1807,12 +1741,7 @@ new_5-3,113,41,4 duplicate(NvArc) Archer Guide#nv5 727
mes "[Prontera Acolyte]";
mes "Here you go, the instruction manual of an Acolyte.";
mes "I will take away those other job's manuals while you study this one.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2821,1; // Acolyte_Manual
next;
mes "[Prontera Acolyte]";
@ -1830,17 +1759,7 @@ new_5-3,113,41,4 duplicate(NvArc) Archer Guide#nv5 727
mes "That's great.";
mes "Then I will completely end the Training Process and send you to the Cathedral of Prontera.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "prontera",117,72;
warp "prt_church",172,19;
end;
@ -1969,17 +1888,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
mes "Take care and may Freya bless you on your journey.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "prontera",122,77;
warp "prontera",121,76;
end;
@ -1988,17 +1897,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "The desert city of Morocc was recently destroyed.";
mes "I will send you to the camp where the survivors are.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "moc_ruins",71,157;
warp "moc_ruins",70,158;
end;
@ -2007,17 +1906,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "Just north of Payon you'll find the Archer Village.";
mes "Good luck on your journeys.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "payon",167,68;
warp "payon",172,111;
end;
@ -2027,17 +1916,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "It's the main hub of all trades.";
mes "If you want to travel to other civilizations, Alberta is the only outlet.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "alberta",115,57;
warp "alberta",116,58;
end;
@ -2047,17 +1926,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "I will send you near the Fountains.";
mes "Goddess Freya bless you.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "geffen",118,36;
warp "geffen",128,66;
end;
@ -2133,55 +2002,14 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
mes "[Trainer Brutus]";
mes "I see, then let me guide you to another level. Which level do you want to go to?";
next;
for(set .@i,1; .@i<=5; set .@i,.@i+1) {
if(strnpcinfo(2) == "nv1") {
set .@select$,"Send me to Level 2:Send me to Level 3:Send me to Level 4:Send me to Level 5";
}
if(strnpcinfo(2) == "nv2") {
set .@select$,"Send me to Level 1:Send me to Level 3:Send me to Level 4:Send me to Level 5";
}
if(strnpcinfo(2) == "nv3") {
set .@select$,"Send me to Level 1:Send me to Level 2:Send me to Level 4:Send me to Level 5";
}
if(strnpcinfo(2) == "nv4") {
set .@select$,"Send me to Level 1:Send me to Level 2:Send me to Level 3:Send me to Level 5";
}
if(strnpcinfo(2) == "nv5") {
set .@select$,"Send me to Level 1:Send me to Level 2:Send me to Level 3:Send me to Level 4";
}
}
switch(select(""+.@select$+":Cancel")) {
case 1:
if(strnpcinfo(2) == "nv1") {
warp "new_2-3",96,21;
}else{
warp "new_1-3",96,21;
}
end;
case 2:
if(strnpcinfo(2) == "nv1" || strnpcinfo(2) == "nv2") {
warp "new_3-3",96,21;
}else{
warp "new_2-3",96,21;
}
end;
case 3:
if(strnpcinfo(2) == "nv4" || strnpcinfo(2) == "nv5") {
warp "new_3-3",96,21;
}else{
warp "new_4-3",96,21;
}
end;
case 4:
if(strnpcinfo(2) == "nv5") {
warp "new_4-3",96,21;
}else{
warp "new_5-3",96,21;
}
end;
case 5:
close;
for(set .@i,1; .@i<6; set .@i,.@i+1) {
if (!compare(strnpcinfo(2),"nv"+.@i))
set .@menu$, .@menu$+"Send me to Level "+.@i;
set .@menu$, .@menu$+":";
}
set .@i, select(.@menu$+"Cancel");
if (.@i < 7) warp "new_"+.@i+"-3",96,21;
close;
case 2:
mes "[Trainer Brutus]";
mes "You seem eager to fight.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= KarLaeda
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= Athena SVN 9000+
//===== Additional Comments: =================================

View File

@ -3,15 +3,16 @@
//===== By: ==================================================
//= kobra_k88; L0ne_W0lf, Elias (og2)
//===== Current Version: =====================================
//= 2.0
//= 2.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= PvP NPCs that are found in the Inns in major cities.
//= Includes Yoyo Mode, Nightmare Mode, and Event Mode
//= Includes Yoyo Mode, Nightmare Mode, and Event Mode.
//===== Additional Comments: =================================
//= 2.0 Narrators/GateKeepers,etc. Translated from the Official 2011 [Elias]
//= 2.1 Changed PVP Narrator and GateKeeper to Floating NPC [Elias]
//= 2.2 Some cleaning. [Euphy]
//============================================================
- script PVP Narrator::pvpe -1,{
@ -257,7 +258,7 @@ geffen_in,67,63,4 duplicate(pvpe) PVP Narrator#pe6 84
close;
}
//Gate Keeper's Duplicates
//Gate Keeper Duplicates
morocc_in,144,142,4 duplicate(gkut) Gate Keeper#gke1 83
alberta_in,26,146,4 duplicate(gkut) Gate Keeper#gke2 83
prt_in,52,140,4 duplicate(gkut) Gate Keeper#gke3 83
@ -266,101 +267,26 @@ payon_in01,140,53,4 duplicate(gkut) Gate Keeper#gke5 83
//Fight square Reception Staff (Locations below)
- script FSRS::fsr -1,{
if(strnpcinfo(4) == "pvp_y_room") {
set .@mapc1, getmapusers("pvp_y_8-1");
set .@mapc2, getmapusers("pvp_y_8-2");
set .@mapc3, getmapusers("pvp_y_8-3");
set .@mapc4, getmapusers("pvp_y_8-4");
set .@mapc5, getmapusers("pvp_y_8-5");
set .@showc1$, "Prontera [ "+.@mapc1+" / 128 ]";
set .@showc2$, "Izlude [ "+.@mapc2+" / 128 ]";
set .@showc3$, "Payon [ "+.@mapc3+" / 128 ]";
set .@showc4$, "Alberta [ "+.@mapc4+" / 128 ]";
set .@showc5$, "Morroc [ "+.@mapc5+" / 128 ]";
set .@showcexit$, "Cancel.";
switch(select(.@showc1$,.@showc2$,.@showc3$,.@showc4$,.@showc5$,.@showcexit$)) {
case 1:
if (.@mapc1 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-1",0,0; }
break;
case 2:
if (.@mapc2 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-2",0,0; }
break;
case 3:
if (.@mapc3 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-3",0,0; }
break;
case 4:
if (.@mapc4 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-4",0,0; }
break;
case 5:
if (.@mapc5 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-5",0,0; }
break;
case 6:
break;
}
close;
if(strnpcinfo(4) == "pvp_y_room") {
setarray .@Maps$[0],"pvp_y_8-1","pvp_y_8-2","pvp_y_8-3","pvp_y_8-4","pvp_y_8-5";
setarray .@Name$[0],"Prontera","Izlude","Payon","Alberta","Morroc";
setarray .@Limit[0],128,128,128,128,128;
} else {
set .@mapc1, getmapusers("pvp_n_8-1");
set .@mapc2, getmapusers("pvp_n_8-2");
set .@mapc3, getmapusers("pvp_n_8-3");
set .@mapc4, getmapusers("pvp_n_8-4");
set .@mapc5, getmapusers("pvp_n_8-5");
set .@showc1$, "Sandwich [ "+.@mapc1+" / 64 ]";
set .@showc2$, "Lock on [ "+.@mapc2+" / 32 ]";
set .@showc3$, "Four Room [ "+.@mapc3+" / 32 ]";
set .@showc4$, "Under cross [ "+.@mapc4+" / 32 ]";
set .@showc5$, "Compass Room [ "+.@mapc5+" / 32 ]";
set .@showcexit$, "Cancel.";
switch(select(.@showc1$,.@showc2$,.@showc3$,.@showc4$,.@showc5$,.@showcexit$)) {
case 1:
if (.@mapc1 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-1",0,0; }
break;
case 2:
if (.@mapc2 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-2",0,0; }
break;
case 3:
if (.@mapc3 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-3",0,0; }
break;
case 4:
if (.@mapc4 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-4",0,0; }
break;
case 5:
if (.@mapc5 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-5",0,0; }
break;
case 6:
break;
}
close;
}
setarray .@Maps$[0],"pvp_n_8-1","pvp_n_8-2","pvp_n_8-3","pvp_n_8-4","pvp_n_8-5";
setarray .@Name$[0],"Sandwich","Lock on","Four Room","Under cross","Compass Room";
setarray .@Limit[0],64,32,32,32,32;
}
for(set .@i,0; .@i<5; set .@i,.@i+1)
set .@menu$, .@menu$+.@Name$[.@i]+" ["+getmapusers(.@Maps$[.@i])+" / "+.@Limit[.@i]+"]:";
set .@menu$, .@menu$+"Cancel.";
set .@i, select(.@menu$)-1;
if (.@i == 5) close;
if (getmapusers(.@Maps$[.@i]) >= .@Limit[.@i]) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
}
else warp .@Maps$[.@i],0,0;
close;
OnInit:
waitingroom "Free for all",0;
@ -529,7 +455,7 @@ OnTouch:
mes "Did you have fun in Combat Square?";
mes "May I ask where you want to go?";
next;
switch(select("prontera.:morocc.:geffen.:payon.:alberta.:Cancel.")) {
switch(select("Prontera.:Morocc.:Geffen.:Payon.:Alberta.:Cancel.")) {
case 1: warp "prontera",107,60; end;
case 2: warp "morocc",157,96; end;
case 3: warp "geffen",120,36; end;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Kisuka
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
@ -12,6 +12,7 @@
//===== Additional Comments: =================================
//= 1.0 First version. [Kisuka]
//= 1.1 Updated warps, savepoints, NPC locations. [Kisuka]
//= 1.2 Cleaning. [Euphy]
//============================================================
//============================================================================
@ -136,7 +137,6 @@ new_1-2,100,29,4 script Sprakki#nv2 90,{
}
}
//============================================================================
// Instructor Brade
//============================================================================
@ -189,7 +189,7 @@ new_1-2,100,105,4 script Brade#nv 733,{
mes "The item window has 3 sections...";
next;
mes "[Instructor Brade]";
mes "consumable items, equipment and other items.";
mes "Consumable items, equipment, and other items.";
mes "If you want to use or equip items, double-click on the item or drag them into the Equipment Window.";
next;
mes "[Instructor Brade]";
@ -282,12 +282,8 @@ new_1-2,100,105,4 script Brade#nv 733,{
}
else if(job_novice_q == 5 || job_novice_q == 6) {
set .@EquipCheck,0;
if (getequipisequiped(EQI_SHOES)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_ARMOR)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_GARMET)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_HEAD_TOP)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_HAND_L)) { set .@EquipCheck,.@EquipCheck+1; }
if (getequipisequiped(EQI_HAND_R)) { set .@EquipCheck,.@EquipCheck+1; }
for(set .@i,1; .@i<7; set .@i,.@i+1)
if (getequipisequiped(.@i)) set .@EquipCheck, .@EquipCheck+1;
if(.@EquipCheck >= 4) {
if(job_novice_q == 5) {
mes "[Instructor Brade]";
@ -626,7 +622,6 @@ new_1-2,32,172,4 script Chocolat#nv 96,{
}
}
// ---------- Kafra ----------
new_1-2,29,176,4 script Kafra#nv 117,{
if(job_novice_q < 10) {
@ -973,7 +968,7 @@ new_1-2,35,176,4 script Soldier#nv 105,{
next;
mes "[Brade]";
mes "Try using the job manuals to find out the characteristics of each job's skills.";
mes "I will restore your HP and SP...Keep it up.";
mes "I will restore your HP and SP... Keep it up.";
percentheal 100,100;
skilleffect 28,9999;
close;
@ -989,6 +984,24 @@ new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
//============================================================================
// Job Guides (Real Combat Training)
//============================================================================
// --------------------------- Deletion Function ------------------------------
function script F_NvErase {
if (getarg(0,0)) {
if (checkquest(7123) == 0 || checkquest(7123) == 1) erasequest 7123;
if (checkquest(7124) == 0 || checkquest(7124) == 1) erasequest 7124;
if (checkquest(7126) == 0 || checkquest(7126) == 1) erasequest 7126;
if (checkquest(7127) == 0 || checkquest(7127) == 1) erasequest 7127;
}
nude;
if (countitem(2819)) delitem 2819,1; // Swordsman_Manual
if (countitem(2820)) delitem 2820,1; // Thief_Manual
if (countitem(2821)) delitem 2821,1; // Acolyte_Manual
if (countitem(2822)) delitem 2822,1; // Archer_Manual
if (countitem(2823)) delitem 2823,1; // Merchant_Manual
if (countitem(2824)) delitem 2824,1; // Mage_Manual
return;
}
// ---------------------------- Swordman Guide -------------------------------
- script Swordman Guide#nv::NvSwd 728,{
if(job_novice_q < 16) {
@ -1063,16 +1076,7 @@ new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
mes "[Swordman Guildsman]";
mes "Here is the Swordman manual.";
mes "I'll just take any manuals from any other classes you have.";
next;
mes "[Swordman Guildsman]";
mes "Here is the Swordman manual.";
mes "I'll just take any manuals from any other classes you have.";
nude;
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2819,1; // Swordsman_Manual
next;
mes "[Swordman Guildsman]";
@ -1094,17 +1098,7 @@ new_5-3,96,30,4 duplicate(NvBrade) Brade#nv5 733
mes "I see.";
mes "Then I'll end your training process and send you to the Swordman Guild.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "izlude",94,103;
warp "izlude_in",74,167;
end;
@ -1235,12 +1229,7 @@ new_5-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv5 728
mes "[Mage Guide]";
mes "Here is the Mage Manual.";
mes "I will take the other job registration forms and manuals from you.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
callfunc "F_NvErase";
getitem 2824,1; // Mage_Manual
next;
mes "[Mage Guide]";
@ -1262,17 +1251,7 @@ new_5-3,97,41,4 duplicate(NvSwd) Swordman Guide#nv5 728
mes "Welcome!!";
mes "I will send you to the Mage Guilds union after you complete your Novice training.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "geffen",119,38;
warp "geffen_in",163,98;
end;
@ -1389,12 +1368,7 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "[Thief Guild Member]";
mes "Here, please take the Thief manual.";
mes "I'll just take the other class manuals while I'm at it.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2820,1; // Thief_Manual
next;
mes "[Thief Guild Member]";
@ -1417,17 +1391,7 @@ new_5-3,101,41,4 duplicate(NvMag) Mage Guide#nv5 123
mes "Ok, I see.";
mes "Welcome. Then your Novice training is totally complete and you will be sent to the Thief Guild immediately.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "morocc",150,100;
warp "moc_prydb1",99,185;
end;
@ -1559,12 +1523,7 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "[Merchant Guide]";
mes "Here is the Merchant skill manual.";
mes "I will take other job manuals from you while I'm at it.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2823,1; // Merchant_Manual
next;
mes "[Merchant Guide]";
@ -1587,17 +1546,7 @@ new_5-3,105,41,4 duplicate(NvThf) Thief Guide#nv5 118
mes "Welcome!!";
mes "I will send you to the Merchant Guild's union after you complete your Novice training.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "alberta",29,231;
warp "alberta_in",62,44;
end;
@ -1704,12 +1653,7 @@ new_5-3,109,41,4 duplicate(NvMer) Merchant Guide#nv5 97
next;
mes "[Archer Guide]";
mes "I will take the other job manuals from you while you test the Archer manual out.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2822,1; // Archer_Manual
next;
mes "[Archer Guide]";
@ -1731,17 +1675,7 @@ new_5-3,109,41,4 duplicate(NvMer) Merchant Guide#nv5 97
mes "Welcome!!";
mes "I will send you to the Archer Guild after you complete your Novice training.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "payon",256,242;
warp "payon_in02",64,65;
end;
@ -1807,12 +1741,7 @@ new_5-3,113,41,4 duplicate(NvArc) Archer Guide#nv5 727
mes "[Prontera Acolyte]";
mes "Here you go, the instruction manual of an Acolyte.";
mes "I will take away those other job's manuals while you study this one.";
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase";
getitem 2821,1; // Acolyte_Manual
next;
mes "[Prontera Acolyte]";
@ -1830,17 +1759,7 @@ new_5-3,113,41,4 duplicate(NvArc) Archer Guide#nv5 727
mes "That's great.";
mes "Then I will completely end the Training Process and send you to the Cathedral of Prontera.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "prontera",117,72;
warp "prt_church",172,19;
end;
@ -1969,17 +1888,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "Prontera, the Capital city of the Rune-Midgarts Kingdom.";
mes "Take care and may Freya bless you on your journey.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "prontera",122,77;
warp "prontera",121,76;
end;
@ -1988,17 +1897,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "The desert city of Morocc was recently destroyed.";
mes "I will send you to the camp where the survivors are.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "moc_ruins",71,157;
warp "moc_ruins",70,158;
end;
@ -2007,17 +1906,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "Just north of Payon you'll find the Archer Village.";
mes "Good luck on your journeys.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "payon",167,68;
warp "payon",172,111;
end;
@ -2027,17 +1916,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "It's the main hub of all trades.";
mes "If you want to travel to other civilizations, Alberta is the only outlet.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "alberta",115,57;
warp "alberta",116,58;
end;
@ -2047,17 +1926,7 @@ new_5-3,121,41,4 duplicate(NvBruce) Bruce#nv5 57
mes "I will send you near the Fountains.";
mes "Goddess Freya bless you.";
close2;
if(checkquest(7123) == 0 || checkquest(7123) == 1) { erasequest 7123; }
if(checkquest(7124) == 0 || checkquest(7124) == 1) { erasequest 7124; }
if(checkquest(7126) == 0 || checkquest(7126) == 1) { erasequest 7126; }
if(checkquest(7127) == 0 || checkquest(7127) == 1) { erasequest 7127; }
nude;
if(countitem(2819) > 0) delitem 2819,1; // Swordsman_Manual
if(countitem(2820) > 0) delitem 2820,1; // Thief_Manual
if(countitem(2821) > 0) delitem 2821,1; // Acolyte_Manual
if(countitem(2822) > 0) delitem 2822,1; // Archer_Manual
if(countitem(2823) > 0) delitem 2823,1; // Merchant_Manual
if(countitem(2824) > 0) delitem 2824,1; // Mage_Manual
callfunc "F_NvErase",1;
savepoint "geffen",118,36;
warp "geffen",128,66;
end;
@ -2133,55 +2002,14 @@ new_5-3,100,50,4 duplicate(NvPotato) Merchant#nv5 93
mes "[Trainer Brutus]";
mes "I see, then let me guide you to another level. Which level do you want to go to?";
next;
for(set .@i,1; .@i<=5; set .@i,.@i+1) {
if(strnpcinfo(2) == "nv1") {
set .@select$,"Send me to Level 2:Send me to Level 3:Send me to Level 4:Send me to Level 5";
}
if(strnpcinfo(2) == "nv2") {
set .@select$,"Send me to Level 1:Send me to Level 3:Send me to Level 4:Send me to Level 5";
}
if(strnpcinfo(2) == "nv3") {
set .@select$,"Send me to Level 1:Send me to Level 2:Send me to Level 4:Send me to Level 5";
}
if(strnpcinfo(2) == "nv4") {
set .@select$,"Send me to Level 1:Send me to Level 2:Send me to Level 3:Send me to Level 5";
}
if(strnpcinfo(2) == "nv5") {
set .@select$,"Send me to Level 1:Send me to Level 2:Send me to Level 3:Send me to Level 4";
}
}
switch(select(""+.@select$+":Cancel")) {
case 1:
if(strnpcinfo(2) == "nv1") {
warp "new_2-3",96,21;
}else{
warp "new_1-3",96,21;
}
end;
case 2:
if(strnpcinfo(2) == "nv1" || strnpcinfo(2) == "nv2") {
warp "new_3-3",96,21;
}else{
warp "new_2-3",96,21;
}
end;
case 3:
if(strnpcinfo(2) == "nv4" || strnpcinfo(2) == "nv5") {
warp "new_3-3",96,21;
}else{
warp "new_4-3",96,21;
}
end;
case 4:
if(strnpcinfo(2) == "nv5") {
warp "new_4-3",96,21;
}else{
warp "new_5-3",96,21;
}
end;
case 5:
close;
for(set .@i,1; .@i<6; set .@i,.@i+1) {
if (!compare(strnpcinfo(2),"nv"+.@i))
set .@menu$, .@menu$+"Send me to Level "+.@i;
set .@menu$, .@menu$+":";
}
set .@i, select(.@menu$+"Cancel");
if (.@i < 7) warp "new_"+.@i+"-3",96,21;
close;
case 2:
mes "[Trainer Brutus]";
mes "You seem eager to fight.";

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= KarLaeda
//===== Current Version: =====================================
//= 1.1
//= 1.2
//===== Compatible With: =====================================
//= Athena SVN 9000+
//===== Additional Comments: =================================

View File

@ -3,15 +3,16 @@
//===== By: ==================================================
//= kobra_k88; L0ne_W0lf, Elias (og2)
//===== Current Version: =====================================
//= 2.0
//= 2.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= PvP NPCs that are found in the Inns in major cities.
//= Includes Yoyo Mode, Nightmare Mode, and Event Mode
//= Includes Yoyo Mode, Nightmare Mode, and Event Mode.
//===== Additional Comments: =================================
//= 2.0 Narrators/GateKeepers,etc. Translated from the Official 2011 [Elias]
//= 2.1 Changed PVP Narrator and GateKeeper to Floating NPC [Elias]
//= 2.2 Some cleaning. [Euphy]
//============================================================
- script PVP Narrator::pvpe -1,{
@ -257,7 +258,7 @@ geffen_in,67,63,4 duplicate(pvpe) PVP Narrator#pe6 84
close;
}
//Gate Keeper's Duplicates
//Gate Keeper Duplicates
morocc_in,144,142,4 duplicate(gkut) Gate Keeper#gke1 83
alberta_in,26,146,4 duplicate(gkut) Gate Keeper#gke2 83
prt_in,52,140,4 duplicate(gkut) Gate Keeper#gke3 83
@ -266,101 +267,26 @@ payon_in01,140,53,4 duplicate(gkut) Gate Keeper#gke5 83
//Fight square Reception Staff (Locations below)
- script FSRS::fsr -1,{
if(strnpcinfo(4) == "pvp_y_room") {
set .@mapc1, getmapusers("pvp_y_8-1");
set .@mapc2, getmapusers("pvp_y_8-2");
set .@mapc3, getmapusers("pvp_y_8-3");
set .@mapc4, getmapusers("pvp_y_8-4");
set .@mapc5, getmapusers("pvp_y_8-5");
set .@showc1$, "Prontera [ "+.@mapc1+" / 128 ]";
set .@showc2$, "Izlude [ "+.@mapc2+" / 128 ]";
set .@showc3$, "Payon [ "+.@mapc3+" / 128 ]";
set .@showc4$, "Alberta [ "+.@mapc4+" / 128 ]";
set .@showc5$, "Morroc [ "+.@mapc5+" / 128 ]";
set .@showcexit$, "Cancel.";
switch(select(.@showc1$,.@showc2$,.@showc3$,.@showc4$,.@showc5$,.@showcexit$)) {
case 1:
if (.@mapc1 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-1",0,0; }
break;
case 2:
if (.@mapc2 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-2",0,0; }
break;
case 3:
if (.@mapc3 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-3",0,0; }
break;
case 4:
if (.@mapc4 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-4",0,0; }
break;
case 5:
if (.@mapc5 >= 128) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_y_8-5",0,0; }
break;
case 6:
break;
}
close;
if(strnpcinfo(4) == "pvp_y_room") {
setarray .@Maps$[0],"pvp_y_8-1","pvp_y_8-2","pvp_y_8-3","pvp_y_8-4","pvp_y_8-5";
setarray .@Name$[0],"Prontera","Izlude","Payon","Alberta","Morroc";
setarray .@Limit[0],128,128,128,128,128;
} else {
set .@mapc1, getmapusers("pvp_n_8-1");
set .@mapc2, getmapusers("pvp_n_8-2");
set .@mapc3, getmapusers("pvp_n_8-3");
set .@mapc4, getmapusers("pvp_n_8-4");
set .@mapc5, getmapusers("pvp_n_8-5");
set .@showc1$, "Sandwich [ "+.@mapc1+" / 64 ]";
set .@showc2$, "Lock on [ "+.@mapc2+" / 32 ]";
set .@showc3$, "Four Room [ "+.@mapc3+" / 32 ]";
set .@showc4$, "Under cross [ "+.@mapc4+" / 32 ]";
set .@showc5$, "Compass Room [ "+.@mapc5+" / 32 ]";
set .@showcexit$, "Cancel.";
switch(select(.@showc1$,.@showc2$,.@showc3$,.@showc4$,.@showc5$,.@showcexit$)) {
case 1:
if (.@mapc1 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-1",0,0; }
break;
case 2:
if (.@mapc2 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-2",0,0; }
break;
case 3:
if (.@mapc3 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-3",0,0; }
break;
case 4:
if (.@mapc4 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-4",0,0; }
break;
case 5:
if (.@mapc5 >= 64) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
} else { warp "pvp_n_8-5",0,0; }
break;
case 6:
break;
}
close;
}
setarray .@Maps$[0],"pvp_n_8-1","pvp_n_8-2","pvp_n_8-3","pvp_n_8-4","pvp_n_8-5";
setarray .@Name$[0],"Sandwich","Lock on","Four Room","Under cross","Compass Room";
setarray .@Limit[0],64,32,32,32,32;
}
for(set .@i,0; .@i<5; set .@i,.@i+1)
set .@menu$, .@menu$+.@Name$[.@i]+" ["+getmapusers(.@Maps$[.@i])+" / "+.@Limit[.@i]+"]:";
set .@menu$, .@menu$+"Cancel.";
set .@i, select(.@menu$)-1;
if (.@i == 5) close;
if (getmapusers(.@Maps$[.@i]) >= .@Limit[.@i]) {
mes "[PVP Fight Square Reception Staff]";
mes "This map is currently full.";
}
else warp .@Maps$[.@i],0,0;
close;
OnInit:
waitingroom "Free for all",0;
@ -529,7 +455,7 @@ OnTouch:
mes "Did you have fun in Combat Square?";
mes "May I ask where you want to go?";
next;
switch(select("prontera.:morocc.:geffen.:payon.:alberta.:Cancel.")) {
switch(select("Prontera.:Morocc.:Geffen.:Payon.:Alberta.:Cancel.")) {
case 1: warp "prontera",107,60; end;
case 2: warp "morocc",157,96; end;
case 3: warp "geffen",120,36; end;