summaryrefslogtreecommitdiff
path: root/npc/custom
diff options
context:
space:
mode:
Diffstat (limited to 'npc/custom')
-rw-r--r--npc/custom/battleground/bg_flavius_01.txt8
-rw-r--r--npc/custom/battleground/bg_flavius_02.txt8
-rw-r--r--npc/custom/battleground/bg_kvm01.txt8
-rw-r--r--npc/custom/battleground/bg_kvm02.txt8
-rw-r--r--npc/custom/battleground/bg_kvm03.txt8
-rw-r--r--npc/custom/battleground/bg_tierra_01.txt8
-rw-r--r--npc/custom/battleground/bg_tierra_02.txt8
-rw-r--r--npc/custom/bgqueue/flavius.txt4
-rw-r--r--npc/custom/card_remover.txt2
-rw-r--r--npc/custom/etc/airplane.txt136
-rw-r--r--npc/custom/etc/bank.txt2
-rw-r--r--npc/custom/etc/blackjack.txt2
-rw-r--r--npc/custom/etc/marriage.txt18
-rw-r--r--npc/custom/etc/penal_servitude.txt10
-rw-r--r--npc/custom/etc/quest_warper.txt2
-rw-r--r--npc/custom/events/cluckers.txt4
-rw-r--r--npc/custom/events/uneasy_cemetery.txt2
-rw-r--r--npc/custom/itembind.txt2
-rw-r--r--npc/custom/jobmaster.txt260
-rw-r--r--npc/custom/quests/bandit_beard.txt2
-rw-r--r--npc/custom/quests/dead_branch.txt2
-rw-r--r--npc/custom/quests/elvenear.txt20
-rw-r--r--npc/custom/quests/event_6_new_hats.txt4
-rw-r--r--npc/custom/quests/kahohorn.txt4
-rw-r--r--npc/custom/quests/kings_items.txt2
-rw-r--r--npc/custom/quests/may_hats.txt2
-rw-r--r--npc/custom/quests/quest_shop.txt4
-rw-r--r--npc/custom/quests/questboard.txt10
-rw-r--r--npc/custom/quests/tha_statues.txt2
-rw-r--r--npc/custom/quests/thq/THQS_TTShop.txt636
-rw-r--r--npc/custom/warper.txt2
-rw-r--r--npc/custom/woe_controller.txt2
32 files changed, 462 insertions, 730 deletions
diff --git a/npc/custom/battleground/bg_flavius_01.txt b/npc/custom/battleground/bg_flavius_01.txt
index 5a78a7002..fd0cf9112 100644
--- a/npc/custom/battleground/bg_flavius_01.txt
+++ b/npc/custom/battleground/bg_flavius_01.txt
@@ -279,9 +279,7 @@ bat_b01,390,13,5 script Guillaume Vintenar#fl1 4_M_KY_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
@@ -310,9 +308,7 @@ bat_b01,10,293,5 script Croix Vintenar#fl1 4_M_CRU_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
diff --git a/npc/custom/battleground/bg_flavius_02.txt b/npc/custom/battleground/bg_flavius_02.txt
index 1a66d39c5..f7b7756f4 100644
--- a/npc/custom/battleground/bg_flavius_02.txt
+++ b/npc/custom/battleground/bg_flavius_02.txt
@@ -279,9 +279,7 @@ bat_b02,390,13,5 script Guillaume Vintenar#fl2 4_M_KY_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
mes "This is a reward for your great dedication by Guillaume Marollo!";
@@ -310,9 +308,7 @@ bat_b02,10,293,5 script Croix Vintenar#fl2 4_M_CRU_HEAD,{
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
set .@reward, 9;
- }
- else
- { //
+ } else {
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
mes "Even though we didn't win, we did our best.";
diff --git a/npc/custom/battleground/bg_kvm01.txt b/npc/custom/battleground/bg_kvm01.txt
index cfa2f01d7..aa12759b9 100644
--- a/npc/custom/battleground/bg_kvm01.txt
+++ b/npc/custom/battleground/bg_kvm01.txt
@@ -319,9 +319,7 @@ bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
@@ -357,9 +355,7 @@ bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
diff --git a/npc/custom/battleground/bg_kvm02.txt b/npc/custom/battleground/bg_kvm02.txt
index f759e2b9a..f2f5f7ca1 100644
--- a/npc/custom/battleground/bg_kvm02.txt
+++ b/npc/custom/battleground/bg_kvm02.txt
@@ -319,9 +319,7 @@ bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
@@ -357,9 +355,7 @@ bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
diff --git a/npc/custom/battleground/bg_kvm03.txt b/npc/custom/battleground/bg_kvm03.txt
index dde4d8147..f38e81bd1 100644
--- a/npc/custom/battleground/bg_kvm03.txt
+++ b/npc/custom/battleground/bg_kvm03.txt
@@ -319,9 +319,7 @@ bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 0;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
@@ -357,9 +355,7 @@ bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 0;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
diff --git a/npc/custom/battleground/bg_tierra_01.txt b/npc/custom/battleground/bg_tierra_01.txt
index 819fa9158..671c2d929 100644
--- a/npc/custom/battleground/bg_tierra_01.txt
+++ b/npc/custom/battleground/bg_tierra_01.txt
@@ -328,9 +328,7 @@ bat_a01,45,19,3 script Croix Vintenar#tv1 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
@@ -359,9 +357,7 @@ bat_a01,53,377,3 script Guillaume Vintenar#tv1 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
diff --git a/npc/custom/battleground/bg_tierra_02.txt b/npc/custom/battleground/bg_tierra_02.txt
index 25796c4bc..c6cebf581 100644
--- a/npc/custom/battleground/bg_tierra_02.txt
+++ b/npc/custom/battleground/bg_tierra_02.txt
@@ -328,9 +328,7 @@ bat_a02,45,19,3 script Croix Vintenar#tv2 4_M_CRU_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "Oh, " + strcharinfo(0) + ". Don't be sad.";
@@ -359,9 +357,7 @@ bat_a02,53,377,3 script Guillaume Vintenar#tv2 4_M_KY_HEAD,{
mes "Let's enjoy our glorious victory!";
mes "" + strcharinfo(0) + ", its a sign reflecting victory";
close2;
- }
- else
- { //
+ } else {
set .@reward, 1;
mes "[Swandery]";
mes "You lost, but you're dedicated to this battle.";
diff --git a/npc/custom/bgqueue/flavius.txt b/npc/custom/bgqueue/flavius.txt
index 0e336ccb4..36e02e86d 100644
--- a/npc/custom/bgqueue/flavius.txt
+++ b/npc/custom/bgqueue/flavius.txt
@@ -86,7 +86,7 @@ OnPlayerListReady:
}
// Add the groups to the queues! :D
- for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1){
+ for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1){
if (queuesize($@Croix_QueueBG1) <= queuesize($@Guill_QueueBG1)){ // Catch'em all and add to the queue!
for (set .@j, 0; .@j < getarraysize(.@bg_member); set .@j, .@j + 1) {
if ( (.@bg_groups[.@i] == .@bg_member_group[.@j]) && (.@bg_types[.@i] == .@bg_member_type[.@j]) ) {
@@ -177,7 +177,7 @@ OnCroixQuit:
end;
OnGuillaumeQuit:
- queueremove($@Guill_QueueBG1,getcharid(3));
+ queueremove($@Guill_QueueBG1,getcharid(3));
callsub L_OnPlayerQuit;
end;
diff --git a/npc/custom/card_remover.txt b/npc/custom/card_remover.txt
index e1a74936b..e3aa2bb5b 100644
--- a/npc/custom/card_remover.txt
+++ b/npc/custom/card_remover.txt
@@ -50,7 +50,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 1_F_ORIENT_04,{
}
set .@cardcount,getequipcardcnt(.@part);
- if (!checkweight(1202,(.@cardcount+1))) {
+ if (!checkweight(1202,(.@cardcount+1))) {
mes "^3355FFJust a minute!";
mes "I can't offer any of my";
mes "services to you because";
diff --git a/npc/custom/etc/airplane.txt b/npc/custom/etc/airplane.txt
index a5796fccd..fc79584fe 100644
--- a/npc/custom/etc/airplane.txt
+++ b/npc/custom/etc/airplane.txt
@@ -21,101 +21,101 @@ OnInit:
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 $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[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[9],203;
setarray $locationsx[10],115;
setarray $locationsx[11],132;
setarray $locationsx[12],232;
- setarray $locationsx[13],36;
- setarray $locationsx[14],82;
+ setarray $locationsx[13],36;
+ setarray $locationsx[14],82;
setarray $locationsx[15],58;
setarray $locationsx[16],209;
- setarray $locationsx[17],248;
+ setarray $locationsx[17],248;
setarray $locationsx[18],158;
setarray $locationsx[19],76;
- setarray $locationsx[20],98;
+ setarray $locationsx[20],98;
setarray $locationsx[21],183;
setarray $locationsx[22],99;
setarray $locationsx[23],46;
- setarray $locationsy[0],45;
+ setarray $locationsy[0],45;
setarray $locationsy[1],280;
- setarray $locationsy[2],92;
+ 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[9],76;
setarray $locationsy[10],79;
setarray $locationsy[11],241;
setarray $locationsy[12],308;
- setarray $locationsy[13],279;
- setarray $locationsy[14],96;
+ setarray $locationsy[13],279;
+ setarray $locationsy[14],96;
setarray $locationsy[15],194;
setarray $locationsy[16],326;
- setarray $locationsy[17],175;
+ setarray $locationsy[17],175;
setarray $locationsy[18],95;
setarray $locationsy[19],363;
- setarray $locationsy[20],21;
+ setarray $locationsy[20],21;
setarray $locationsy[21],104;
- setarray $locationsy[22],240;
+ setarray $locationsy[22],240;
setarray $locationsy[23],19;
goto resetgoneto;
end;
@@ -123,7 +123,7 @@ OnInit:
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)set $@settervariable,$@settervariable - 1;
if($alreadygoneto[$locationn[$@settervariable]]==1)goto setrandomitin;
setarray $alreadygoneto[$locationn[$@settervariable]], 1;
if($@settervariable<12)goto setrandomitin;
diff --git a/npc/custom/etc/bank.txt b/npc/custom/etc/bank.txt
index 7b569a3d5..e6e75c9f3 100644
--- a/npc/custom/etc/bank.txt
+++ b/npc/custom/etc/bank.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Banker Script
+//= Banker Script
//===== By: ==================================================
//= Syrus22 (1.0)
//===== Current Version: =====================================
diff --git a/npc/custom/etc/blackjack.txt b/npc/custom/etc/blackjack.txt
index b86316706..ee1e7904b 100644
--- a/npc/custom/etc/blackjack.txt
+++ b/npc/custom/etc/blackjack.txt
@@ -12,7 +12,7 @@
//= Currently does not allow for "insurance", or "splitting"
//= of pairs.
//===== Additional Comments: =================================
-//=
+//=
//============================================================
cmd_in02,188,89,1 script Black Jack Dealer 1_M_LIBRARYMASTER,{
diff --git a/npc/custom/etc/marriage.txt b/npc/custom/etc/marriage.txt
index df701b05f..0d25be9d5 100644
--- a/npc/custom/etc/marriage.txt
+++ b/npc/custom/etc/marriage.txt
@@ -12,7 +12,7 @@
// 2.9 Somewhat iRO-official NPC names [DracoRPG]
//============================================================
-// Configuration Variables:
+// Configuration Variables:
- script marriage_init -1,{
OnInit:
set $@wed_allow, 0; //If 1, allows same sex marriages.
@@ -30,7 +30,7 @@ OnInit:
// Other Configuration:
// Line 61,62: Priest location, sprite and name.
-// Line 437,438: Registration location, sprite and name.
+// Line 437,438: Registration location, sprite and name.
// Line 813,814: Divorcing location, sprite and name.
// Variable Notes:
@@ -541,7 +541,7 @@ function SF_WedProgress {
}
if (strcharinfo(0) == $wed_bride$) {
mes "["+@name$+"]";
- if ($wed_groom_progress > 0)
+ if ($wed_groom_progress > 0)
mes "The Priest will handle the rest of the ceremony.";
else
mes "Tell your groom to register, what is taking so long? Time is running out.";
@@ -556,7 +556,7 @@ function SF_WedProgress {
stopnpctimer;
set $wed_groom_progress,1;
mes "["+@name$+"]";
- mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
+ mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
emotion e_no1;
close2;
npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest.";
@@ -577,7 +577,7 @@ function SF_WedProgress {
SF_TryRegister(1);
stopnpctimer;
mes "["+@name$+"]";
- mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
+ mes "Very well, now go to the Priest to reaffirm your vows and the ceremony will begin.";
emotion e_no1;
close2;
npctalk "Registration finished. "+$wed_groom$+" and "+$wed_bride$+", please reaffirm your vows with the Priest.";
@@ -707,13 +707,13 @@ function SF_TryRegister {
}
if (@bride)
set @cost, $@wed_bride_reg;
- else
+ else
set @cost, $@wed_groom_reg;
if (Zeny < @cost) {
mes "["+@name$+"]";
mes "I am sorry, but you don't have enough to pay for the registration fee.";
- mes "Come back once you have collected "+@cost+"z.";
+ mes "Come back once you have collected "+@cost+"z.";
close;
}
Zeny -= @cost;
@@ -864,7 +864,7 @@ prt_church,94,99,4 script Sister Lisa 1_F_PRIEST,{
mes "["+@name$+"]";
mes "You should think this through.";
close;
- }
+ }
mes "["+@name$+"]";
set $@divorcee,getpartnerid();
set $@divorcer$,strcharinfo(0);
@@ -877,7 +877,7 @@ prt_church,94,99,4 script Sister Lisa 1_F_PRIEST,{
end;
function SF_InProgress {
- if (strcharinfo(0) == $@divorcer$) {
+ if (strcharinfo(0) == $@divorcer$) {
mes "["+@name$+"]";
mes "...I am still waiting for your partner to confirm the divorce procedure.";
close;
diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt
index 9e355e825..e78833b66 100644
--- a/npc/custom/etc/penal_servitude.txt
+++ b/npc/custom/etc/penal_servitude.txt
@@ -1,5 +1,5 @@
//===== Hercules Script ======================================
-//= Penal Servitude
+//= Penal Servitude
//===== By: ==================================================
//= Lupus
//===== Current Version: =====================================
@@ -14,7 +14,7 @@
// 1.2 Stricted the conditions a bit
//============================================================
-sec_pri,36,58,1 script Chief Warder 8W_SOLDIER,{
+sec_pri,36,58,1 script Chief Warder 8W_SOLDIER,{
mes "[Saddeus]";
emotion 1;
if(Sex) {
@@ -120,14 +120,14 @@ L_W4:
close;
M_NO_THANKS:
- mes "[Saddeus]";
+ 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;
+ close;
}
-sec_in02,137,57,1 script Overseer 4_M_PAY_SOLDIER,{
+sec_in02,137,57,1 script Overseer 4_M_PAY_SOLDIER,{
mes "[Oliver]";
delitem 4002,countitem(4002);//Items: Fabre_Card,
diff --git a/npc/custom/etc/quest_warper.txt b/npc/custom/etc/quest_warper.txt
index 732dfe135..b9bfcf74f 100644
--- a/npc/custom/etc/quest_warper.txt
+++ b/npc/custom/etc/quest_warper.txt
@@ -1065,7 +1065,7 @@ function script QWS_Darray {
QWS_Make_Dungeon_Menu 1;
//----------------ANT HELL
- setarray @pDmenuitems$[@Di], "Ant Hell Dungeon";
+ setarray @pDmenuitems$[@Di], "Ant Hell Dungeon";
setarray @pDprice[@Di], $QW_BW_PRICE;
setarray @pDfee$[@Di], "$QW_BW_FEE";
setarray @DLevels[2], 2;
diff --git a/npc/custom/events/cluckers.txt b/npc/custom/events/cluckers.txt
index 1db4c2251..1f32f9f25 100644
--- a/npc/custom/events/cluckers.txt
+++ b/npc/custom/events/cluckers.txt
@@ -5,8 +5,8 @@
//===== Current Version: =====================================
//= 1.2a
//===== Description: =========================================
-//= Click the chicken and try retrieve the item at a low
-//= chance. If you fail he will nuke, freeze, stone,
+//= Click the chicken and try retrieve the item at a low
+//= chance. If you fail he will nuke, freeze, stone,
//= stun, or make you fall asleep.
//= The prize is configurable and triggered by the NPC.
//===== Additional Comments: =================================
diff --git a/npc/custom/events/uneasy_cemetery.txt b/npc/custom/events/uneasy_cemetery.txt
index ac8124bd1..d48e5f928 100644
--- a/npc/custom/events/uneasy_cemetery.txt
+++ b/npc/custom/events/uneasy_cemetery.txt
@@ -9,7 +9,7 @@
//= Every day, at the midnight Prontera receive a wave of Undeads.
//= They come from Uneasy Cemetery of Prontera. To protect the players
//= from the undeads terror you may either kill the enemy. Or supply Mother Mathana
-//= with needed amount of Holy Water. Every citizen can take his part in the
+//= with needed amount of Holy Water. Every citizen can take his part in the
//= saving of Prontera city. After some days of quiet life... the Cemetery strikes back.
//===== Additional Comments: =================================
//= 1.1 More advanced ver. Added some bonus the the one who'd kill the last walking undead
diff --git a/npc/custom/itembind.txt b/npc/custom/itembind.txt
index 8462b1515..7d2c4ba62 100644
--- a/npc/custom/itembind.txt
+++ b/npc/custom/itembind.txt
@@ -35,7 +35,7 @@ prontera,144,174,4 script Bound Items 4_M_JP_MID,{
//Allows equipment (default)
if(@inventorylist_bound[.@i])
continue;
- if(((.allowbind & 1) && (getiteminfo(@inventorylist_id[.@i],2) == (4|5))) ||
+ if(((.allowbind & 1) && (getiteminfo(@inventorylist_id[.@i],2) == (4|5))) ||
((.allowbind & 2) && (getiteminfo(@inventorylist_id[.@i],2) == (0|2|11|18))) ||
((.allowbind & 4) && (getiteminfo(@inventorylist_id[.@i],2) == (3|6|7|8|10)))
) {
diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt
index ed55b4d87..346e3ddff 100644
--- a/npc/custom/jobmaster.txt
+++ b/npc/custom/jobmaster.txt
@@ -3,70 +3,91 @@
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
-//= 1.3
+//= 1.4
//===== Description: =========================================
//= A fully functional job changer.
//===== Additional Comments: =================================
//= 1.1 Fixed reset on Baby job change. [Euphy]
//= 1.2 Added Expanded Super Novice support and initial Kagerou/Oboro support. [Euphy]
//= 1.3 Kagerou/Oboro added. [Euphy]
+//= 1.4 Improved legibility (renamed variables, replaced
+// numbers with constants; Changed syntax to match
+// Hercules standards; Fixed status point exploit upon
+// Baby Novice job change. [Haru]
//============================================================
prontera,153,193,6 script Job Master 2_F_MAGICMASTER,{
-function Job_Menu; function A_An;
+ function Job_Menu; function A_An;
mes "[Job Master]";
- if (Class > 4049) {
+ if (Class > Job_Soul_Linker) {
mes "No more jobs are available.";
close;
}
if (checkfalcon() || checkcart() || checkriding() || ismounting()) {
- mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")+" before proceeding.";
+ mes "Please remove your "+((checkfalcon())?"falcon":"")+((checkcart())?"cart":"")+((checkriding())?"Peco":"")+((ismounting())?"mount":"")
+ +" before proceeding.";
close;
}
- if (.SkillPointCheck && SkillPoint) {
+ if (.skill_point_check && SkillPoint > 0) {
mes "Please use all your skill points before proceeding.";
close;
}
- set .@eac, eaclass();
- set .@i, ((.ThirdClass)?roclass(.@eac&EAJ_UPPERMASK):Class);
- if (.@i > 6 && .@i < 22) {
- if (BaseLevel < .Rebirth[0] || JobLevel < .Rebirth[1]) {
- set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .Rebirth[1]-JobLevel;
- mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
+ .@eac = eaclass();
+ .@base = .third_classes ? roclass(.@eac&EAJ_UPPERMASK) : Class;
+ if (.@base >= Job_Knight && .@base <= Job_Crusader2) {
+ if (BaseLevel < .rebirth_blevel || JobLevel < .rebirth_jlevel) {
+ .@blvl = .rebirth_blevel - BaseLevel;
+ .@jlvl = .rebirth_jlevel - JobLevel;
+ mes "You need "
+ + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .rebirth_jlevel ? "and " : "")) : "")
+ + (JobLevel < .rebirth_jlevel ? (.rebirth_jlevel - JobLevel) +" more job levels " : "")
+ + "to continue.";
close;
}
- if (Class > 21) {
+ if (Class > Job_Crusader2) {
mes "Switch to third class?";
next;
Job_Menu(roclass(.@eac|EAJL_THIRD));
close;
}
- while(1) {
+ while (true) {
mes "Select an option.";
next;
- set .@i, select(" ~ ^0055FFRebirth^000000:"+((.ThirdClass)?" ~ ^FF0000Third Class^000000":"")+": ~ ^777777Cancel^000000");
- if (.@i==3) close;
+ .@choice = select(" ~ ^0055FFRebirth^000000:"+(.third_classes ? " ~ ^FF0000Third Class^000000" : "")+": ~ ^777777Cancel^000000");
+ if (.@choice == 3)
+ close;
mes "[Job Master]";
mes "Are you sure?";
next;
- Job_Menu(((.@i==1)?4001:roclass(.@eac|EAJL_THIRD)));
+ if (.@choice == 1)
+ Job_Menu(Job_Novice_High);
+ else
+ Job_Menu(roclass(.@eac|EAJL_THIRD));
mes "[Job Master]";
}
}
- set .@j1, roclass(.@eac|EAJL_2_1); set .@j2,roclass(.@eac|EAJL_2_2);
- if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) setarray .@exp[0],roclass(.@eac|EAJL_THIRD),99;
- if (Class == Job_Ninja) setarray .@exp[0],.@j1,70;
- if (.@exp[0] && .ThirdClass) {
- if (BaseLevel < .Rebirth[0] || JobLevel < .@exp[1]) {
- set .@blvl, .Rebirth[0]-BaseLevel; set .@jlvl, .@exp[1]-JobLevel;
- mes "You need "+((.@blvl>0)?.@blvl+" more base levels "+((.@jlvl>0)?"/ ":""):"")+((.@jlvl>0)?.@jlvl+" more job levels ":"")+"to continue.";
+ .@job1 = roclass(.@eac|EAJL_2_1);
+ .@job2 = roclass(.@eac|EAJL_2_2);
+ if ((.@eac&EAJ_UPPERMASK) == EAJ_SUPER_NOVICE) {
+ .@newclass = roclass(.@eac|EAJL_THIRD);
+ .@required_jlevel = 99;
+ } else if (Class == Job_Ninja) {
+ .@newclass = .@job1;
+ .@required_jlevel = 70;
+ }
+ if (.@newclass && .third_classes) {
+ if (BaseLevel < .rebirth_blevel || JobLevel < .@required_jlevel) {
+ mes "You need "
+ + (BaseLevel < .rebirth_blevel ? ((.rebirth_blevel - BaseLevel) +" more base levels "+ (JobLevel < .@required_jlevel ? "and " : "")) : "")
+ + (JobLevel < .@required_jlevel ? (.@required_jlevel - JobLevel) +" more job levels " : "")
+ + "to continue.";
close;
}
- mes "Switch to "+jobname(.@exp[0])+"?";
+ mes "Switch to "+jobname(.@newclass)+"?";
next;
- Job_Menu(.@exp[0]);
+ Job_Menu(.@newclass);
close;
}
if (.@eac&EAJL_2)
@@ -75,114 +96,163 @@ function Job_Menu; function A_An;
close;
}
if ((.@eac&EAJ_BASEMASK) == EAJ_NOVICE) {
- if (JobLevel < .JobReq[0])
- mes "A job level of "+.JobReq[0]+" is required to change into the 1st Class.";
- else if (Class == 4001 && .LastJob && lastJob) {
+ if (JobLevel < .jobchange_first) {
+ mes "A job level of "+.jobchange_first+" is required to change into the 1st Class.";
+ } else if (Class == Job_Novice_High && .linear_jobchange && lastJob) {
mes "Switch classes now?";
next;
Job_Menu(roclass((eaclass(lastJob)&EAJ_BASEMASK)|EAJL_UPPER));
- } else switch(Class) {
- case 0: Job_Menu(1,2,3,4,5,6,23,4046,24,25,4023);
- case 4001: Job_Menu(4002,4003,4004,4005,4006,4007);
- case 4023: Job_Menu(4024,4025,4026,4027,4028,4029,4045);
- default: mes "An error has occurred."; break;
+ } else if (Class == Job_Novice) {
+ Job_Menu(Job_Swordman, Job_Mage, Job_Archer, Job_Acolyte, Job_Merchant, Job_Thief,
+ Job_SuperNovice, Job_Taekwon, Job_Gunslinger, Job_Ninja, Job_Baby);
+ } else if (Class == Job_Novice_High) {
+ Job_Menu(Job_Swordman_High, Job_Mage_High, Job_Archer_High, Job_Acolyte_High, Job_Merchant_High, Job_Thief_High);
+ } else if (Class == Job_Baby) {
+ Job_Menu(Job_Baby_Swordman, Job_Baby_Mage, Job_Baby_Archer, Job_Baby_Acolyte, Job_Baby_Merchant, Job_Baby_Thief,
+ Job_Super_Baby);
+ } else {
+ mes "An error has occurred.";
}
close;
}
- if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1)
+ if (roclass(.@eac|EAJL_2_1) == -1 || roclass(.@eac|EAJL_2_2) == -1) {
mes "No more jobs are available.";
- else if (!(.@eac&EAJL_2) && JobLevel < .JobReq[1])
- mes "A job level of "+.JobReq[1]+" is required to change into the 2nd Class.";
- else if (.LastJob && lastJob && (.@eac&EAJL_UPPER)) {
+ } else if (!(.@eac&EAJL_2) && JobLevel < .jobchange_second) {
+ mes "A job level of "+.jobchange_second+" is required to change into the 2nd Class.";
+ } else if (.linear_jobchange && lastJob && (.@eac&EAJL_UPPER)) {
mes "Switch classes now?";
next;
- Job_Menu(lastJob+4001);
- } else
- Job_Menu(.@j1,.@j2);
+ Job_Menu(lastJob+Job_Novice_High);
+ } else {
+ Job_Menu(.@job1, .@job2);
+ }
close;
function Job_Menu {
- while(1) {
+ while (true) {
if (getargcount() > 1) {
mes "Select a job.";
- set .@menu$,"";
- for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
- set .@menu$, .@menu$+" ~ "+jobname(getarg(.@i))+":";
- set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
+ .@menu$ = "";
+ for (.@i = 0; .@i < getargcount(); ++.@i)
+ .@menu$ += " ~ "+jobname(getarg(.@i))+":";
+ .@menu$ += " ~ ^777777Cancel^000000";
next;
- set .@i, getarg(select(.@menu$)-1,0);
- if (!.@i) close;
- if ((.@i == 23 || .@i == 4045) && BaseLevel < .SNovice) {
+ .@newjob = getarg(select(.@menu$)-1, 0);
+ if (!.@newjob) close;
+ if ((.@newjob == Job_SuperNovice || .@newjob == Job_Super_Baby) && BaseLevel < .supernovice_level) {
mes "[Job Master]";
- mes "A base level of "+.SNovice+" is required to turn into a "+jobname(.@i)+".";
+ mes "A base level of "+.supernovice_level+" is required to turn into a "+jobname(.@newjob)+".";
close;
}
mes "[Job Master]";
mes "Are you sure?";
next;
- } else
- set .@i, getarg(0);
- if (select(" ~ Change into ^0055FF"+jobname(.@i)+"^000000 class: ~ ^777777"+((getargcount() > 1)?"Go back":"Cancel")+"^000000") == 1) {
+ } else {
+ .@newjob = getarg(0);
+ }
+ if (select(" ~ Change into ^0055FF"+jobname(.@newjob)+"^000000 class: ~ ^777777"+(getargcount() > 1 ? "Go back" : "Cancel")+"^000000") == 1) {
mes "[Job Master]";
- mes "You are now "+A_An(jobname(.@i))+"!";
- if (.@i==4001 && .LastJob) set lastJob, Class;
- jobchange .@i;
- if (.@i==4001 || .@i==4023) resetlvl(1);
- specialeffect2 338; specialeffect2 432;
- if (.Platinum) callsub Get_Platinum;
+ mes "You are now "+A_An(jobname(.@newjob))+"!";
+ if (.@newjob == Job_Novice_High && .linear_jobchange)
+ lastJob = Class; // Note: This is incompatible with the Valkyrie rebirth script.
+ jobchange .@newjob;
+ if (.@newjob == Job_Novice_High)
+ resetlvl(1);
+ specialeffect2 EF_ANGEL2;
+ specialeffect2 EF_ELECTRIC;
+ if (.platinum)
+ callsub Get_Platinum;
close;
}
- if (getargcount() == 1) return;
+ if (getargcount() == 1)
+ return;
mes "[Job Master]";
}
end;
}
function A_An {
- setarray .@A$[0],"a","e","i","o","u";
- set .@B$, "_"+getarg(0);
- for(set .@i,0; .@i<5; set .@i,.@i+1)
- if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0);
+ setarray .@vowels$, "a", "e", "i", "o", "u";
+ .@firstletter$ = strtolower(charat(getarg(0), 0));
+ for (.@i = 0; .@i < getarraysize(.@vowels); ++.@i) {
+ if (.@vowels$[.@i] == .@firstletter$)
+ return "an "+getarg(0);
+ }
return "a "+getarg(0);
}
Get_Platinum:
- skill 142,1,0;
- switch(BaseClass) {
- case 0: if (Class !=23) skill 143,1,0; break;
- case 1: skill 144,1,0; skill 145,1,0; skill 146,1,0; break;
- case 2: skill 157,1,0; break;
- case 3: skill 147,1,0; skill 148,1,0; break;
- case 4: skill 156,1,0; break;
- case 5: skill 153,1,0; skill 154,1,0; skill 155,1,0; break;
- case 6: skill 149,1,0; skill 150,1,0; skill 151,1,0; skill 152,1,0; break;
- default: break;
+ skill NV_FIRSTAID, 1, 0;
+ if (BaseClass == Job_Novice) {
+ if (Class != Job_SuperNovice)
+ skill NV_TRICKDEAD, 1, 0;
+ } else if (BaseClass == Job_Swordman) {
+ skill SM_MOVINGRECOVERY, 1, 0;
+ skill SM_FATALBLOW, 1, 0;
+ skill SM_AUTOBERSERK, 1, 0;
+ } else if (BaseClass == Job_Mage) {
+ skill MG_ENERGYCOAT, 1, 0;
+ } else if (BaseClass == Job_Archer) {
+ skill AC_MAKINGARROW, 1, 0;
+ skill AC_CHARGEARROW, 1, 0;
+ } else if (BaseClass == Job_Acolyte) {
+ skill AL_HOLYLIGHT, 1, 0;
+ } else if (BaseClass == Job_Merchant) {
+ skill MC_CARTREVOLUTION, 1, 0;
+ skill MC_CHANGECART, 1, 0;
+ skill MC_LOUD, 1, 0;
+ } else if (BaseClass == Job_Thief) {
+ skill TF_SPRINKLESAND, 1, 0;
+ skill TF_BACKSLIDING, 1, 0;
+ skill TF_PICKSTONE, 1, 0;
+ skill TF_THROWSTONE, 1, 0;
}
- switch(BaseJob) {
- case 7: skill 1001,1,0; break;
- case 8: skill 1014,1,0; break;
- case 9: skill 1006,1,0; break;
- case 10: skill 1012,1,0; skill 1013,1,0; break;
- case 11: skill 1009,1,0; break;
- case 12: skill 1003,1,0; skill 1004,1,0; break;
- case 14: skill 1002,1,0; break;
- case 15: skill 1015,1,0; skill 1016,1,0; break;
- case 16: skill 1007,1,0; skill 1008,1,0; skill 1017,1,0; skill 1018,1,0; skill 1019,1,0; break;
- case 17: skill 1005,1,0; break;
- case 18: skill 238,1,0; break;
- case 19: skill 1010,1,0; break;
- case 20: skill 1011,1,0; break;
- default: break;
+
+ if (BaseJob == Job_Knight) {
+ skill KN_CHARGEATK, 1, 0;
+ } else if (BaseJob == Job_Priest) {
+ skill PR_REDEMPTIO, 1, 0;
+ } else if (BaseJob == Job_Wizard) {
+ skill WZ_SIGHTBLASTER, 1, 0;
+ } else if (BaseJob == Job_Blacksmith) {
+ skill BS_UNFAIRLYTRICK, 1, 0;
+ skill BS_GREED, 1, 0;
+ } else if (BaseJob == Job_Hunter) {
+ skill HT_PHANTASMIC, 1, 0;
+ } else if (BaseJob == Job_Assassin) {
+ skill AS_SONICACCEL, 1, 0;
+ skill AS_VENOMKNIFE, 1, 0;
+ } else if (BaseJob == Job_Crusader) {
+ skill CR_SHRINK, 1, 0;
+ } else if (BaseJob == Job_Monk) {
+ skill MO_KITRANSLATION, 1, 0;
+ skill MO_BALKYOUNG, 1, 0;
+ } else if (BaseJob == Job_Sage) {
+ skill SA_CREATECON, 1, 0;
+ skill SA_ELEMENTWATER, 1, 0;
+ skill SA_ELEMENTGROUND, 1, 0;
+ skill SA_ELEMENTFIRE, 1, 0;
+ skill SA_ELEMENTWIND, 1, 0;
+ } else if (BaseJob == Job_Rogue) {
+ skill RG_CLOSECONFINE, 1, 0;
+ } else if (BaseJob == Job_Alchemist) {
+ skill AM_BIOETHICS, 1, 0;
+ } else if (BaseJob == Job_Bard) {
+ skill BA_PANGVOICE, 1, 0;
+ } else if (BaseJob == Job_Dancer) {
+ skill DC_WINKCHARM, 1, 0;
}
return;
OnInit:
- setarray .Rebirth[0],99,50; // Minimum base level, job level to rebirth OR change to third class
- setarray .JobReq[0],10,40; // Minimum job level to turn into 1st class, 2nd class
- set .ThirdClass,1; // Enable third classes? (1: yes / 0: no)
- set .SNovice,45; // Minimum base level to turn into Super Novice
- set .LastJob,1; // Enforce linear class changes? (1: yes / 0: no)
- set .SkillPointCheck,1; // Force player to use up all skill points? (1: yes / 0: no)
- set .Platinum,1; // Get platinum skills automatically? (1: yes / 0: no)
+ .rebirth_blevel = 99; // Minimum base level to reborn OR change to third class
+ .rebirth_jlevel = 50; // Minimum base job level to reborn OR change to third class
+ .jobchange_first = 10; // Minimum job level to turn into 1st class
+ .jobchange_second = 40; // Minimum job level to turn into 2nd class
+ .third_classes = 1; // Enable third classes? (1: yes / 0: no)
+ .supernovice_level = 45; // Minimum base level to turn into Super Novice
+ .linear_jobchange = 1; // Enforce linear class changes? (1: yes / 0: no)
+ .skill_point_check = 1; // Force player to use up all skill points? (1: yes / 0: no)
+ .platinum = 1; // Get platinum skills automatically? (1: yes / 0: no)
end;
}
diff --git a/npc/custom/quests/bandit_beard.txt b/npc/custom/quests/bandit_beard.txt
index 897464b26..68c13727b 100644
--- a/npc/custom/quests/bandit_beard.txt
+++ b/npc/custom/quests/bandit_beard.txt
@@ -97,7 +97,7 @@ L_NOITEMS:
mes "Here is the list again:";
emotion 23;
goto L_List;
-}
+}
//Master Tailor----------
izlude_in,123,175,4 script Master Tailor#bandit 1_M_04,{
diff --git a/npc/custom/quests/dead_branch.txt b/npc/custom/quests/dead_branch.txt
index bb70f6020..ef49db159 100644
--- a/npc/custom/quests/dead_branch.txt
+++ b/npc/custom/quests/dead_branch.txt
@@ -6,7 +6,7 @@
//= 1.1
//===== Description: =========================================
// Simple item trade-in quest, a person can get a Dead Branch
-// by simply providing the items: Log x3 (7201), Wooden Heart x1 (7189),
+// by simply providing the items: Log x3 (7201), Wooden Heart x1 (7189),
// Trunk x5 (1019), and Wooden Gnarl x1 (7222).
//===== Additional Comments: =================================
//= 1.1 Optimized, added Bloody Branch with 0.01% chance [Lupus]
diff --git a/npc/custom/quests/elvenear.txt b/npc/custom/quests/elvenear.txt
index 25eb12080..eb2d1ba4c 100644
--- a/npc/custom/quests/elvenear.txt
+++ b/npc/custom/quests/elvenear.txt
@@ -12,16 +12,16 @@
//============================================================
geffen,127,49,5 script Elven Ears Quest 4_M_02,{
- mes "[Elven Ears Quest]";
- mes "Hi, today's quest is....";
- mes "Ah, the ^61B031Elven Ears ^000000Quest!";
- next;
+ mes "[Elven Ears Quest]";
+ mes "Hi, today's quest is....";
+ mes "Ah, the ^61B031Elven Ears ^000000Quest!";
+ next;
menu "Requirements",L_Bl, "Make Item",-,"Cancel",L_Cancel;
mes "[Elven Ears quest]";
- mes "Good good, let me just check";
+ mes "Good good, let me just check";
next;
- if(countitem(2213)<1 || countitem(1040)<20 || countitem(919)<20) goto L_NoMake;
+ if(countitem(2213)<1 || countitem(1040)<20 || countitem(919)<20) goto L_NoMake;
delitem 2213,1;
delitem 1040,20;
delitem 919,20;
@@ -39,11 +39,11 @@ L_NoMake:
mes "Please come back another time...";
close;
-L_Bl:
+L_Bl:
mes "[Elven Ears Quest]";
- mes "Ok all you have to do is collect:";
- mes "^362ED61 Kitty Band^000000";
- mes "^362ED620 Elder Pixie Mustaches^000000";
+ mes "Ok all you have to do is collect:";
+ mes "^362ED61 Kitty Band^000000";
+ mes "^362ED620 Elder Pixie Mustaches^000000";
mes "and ^362ED620 Animal Skin^000000";
next;
menu "Accept",-, "Leave",L_Leave;
diff --git a/npc/custom/quests/event_6_new_hats.txt b/npc/custom/quests/event_6_new_hats.txt
index 7352beef1..497fae849 100644
--- a/npc/custom/quests/event_6_new_hats.txt
+++ b/npc/custom/quests/event_6_new_hats.txt
@@ -13,13 +13,13 @@
//= -Kafra Band, Panda Hat
//= -Crescent Hairpin
//===== Additional Comments: =================================
-//= Event New Hats by RedxSwordxHero
+//= Event New Hats by RedxSwordxHero
//= Ported and improved with timers [Lupus]
//= Thanks to x[tsk],fixed all item requirements to iRO specs exept
//= for hats which cannot be made on the real server. [Lupus]
//= 1.2 removed already existing official hat quests [Lupus]
//= 1.3 Spiffed up the NPC coords and their appearance [Lupus]
-//= 1.4 Fixed exploits. 1.4a fixed wrong item ID [Lupus]
+//= 1.4 Fixed exploits. 1.4a fixed wrong item ID [Lupus]
//============================================================
prt_in,130,66,5 script Zac 4_M_BIBI,{
diff --git a/npc/custom/quests/kahohorn.txt b/npc/custom/quests/kahohorn.txt
index 840cb4e12..8c5c4d8cf 100644
--- a/npc/custom/quests/kahohorn.txt
+++ b/npc/custom/quests/kahohorn.txt
@@ -1,7 +1,7 @@
//===== Hercules Script ======================================
//= Lord Kaho's Horns Quest
//===== By: ==================================================
-//=
+//=
//===== Current Version: =====================================
//= 1.1
//===== Description: =========================================
@@ -40,7 +40,7 @@ geffen,115,107,5 script Lord Kaho's Servant 1_M_PUBMASTER,{
next;
mes .@n$;
mes "Finally, I've worked hard to make these horns for my master with all the items mentioned above...";
- mes "Please include ^0055FF5 million Zeny^000000 for my efforts.";
+ mes "Please include ^0055FF5 million Zeny^000000 for my efforts.";
next;
mes .@n$;
mes "Are you ready for me to make this special item?";
diff --git a/npc/custom/quests/kings_items.txt b/npc/custom/quests/kings_items.txt
index 345f8b051..055315810 100644
--- a/npc/custom/quests/kings_items.txt
+++ b/npc/custom/quests/kings_items.txt
@@ -44,7 +44,7 @@ prt_castle,80,170,4 script King of Prontera 1_M_PRON_KING,{
for(set .@j,1; .@j<getarraysize(getd(".@items"+.@i)); set .@j,.@j+2)
if (countitem(getd(".@items"+.@i+"["+.@j+"]")) < getd(".@items"+.@i+"["+(.@j+1)+"]")) set .@nr,1;
mes "[King of Prontera]";
- if (.@nr) {
+ if (.@nr) {
mes "You're missing something.";
mes "Come back after you get ALL the items.";
close; }
diff --git a/npc/custom/quests/may_hats.txt b/npc/custom/quests/may_hats.txt
index 789fc364f..ce2c09764 100644
--- a/npc/custom/quests/may_hats.txt
+++ b/npc/custom/quests/may_hats.txt
@@ -6,7 +6,7 @@
//===== Current Version: =====================================
//= 1.01
//===== Description: =========================================
-//= Custom quest for some RO mobile game bonus items
+//= Custom quest for some RO mobile game bonus items
//===== Additional Comments: =================================
//= 1 May, 2006
//= 1.01 translated the rest of dialogues
diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt
index ff383717c..fb5b7993d 100644
--- a/npc/custom/quests/quest_shop.txt
+++ b/npc/custom/quests/quest_shop.txt
@@ -26,7 +26,7 @@ prontera,164,203,6 script Quest Shop#1 4_M_MOCASS2,{ callfunc "qshop"; }
// Script Core
//============================================================
-- script quest_shop -1,{
+- script quest_shop -1,{
function Add; function Chk; function Slot; function A_An;
OnInit:
freeloop(1);
@@ -128,7 +128,7 @@ OnBuyItem:
while(1) {
switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
case 1:
- if (@qe[0]) {
+ if (@qe[0]) {
mes "[Quest Shop]";
mes "You're missing one or more quest requirements.";
close;
diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt
index b4a53d816..3e7a90d9d 100644
--- a/npc/custom/quests/questboard.txt
+++ b/npc/custom/quests/questboard.txt
@@ -286,12 +286,12 @@ function AddCollection {
setd ("." +.collectionquestcount+"_collectionzeny", getarg(5));
set .@argcount, 6;
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
- setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
- setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
+ setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount));
+ setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
- setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
+ setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount));
setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount,.@argcount+2;
}
@@ -309,11 +309,11 @@ function AddHunting {
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
set .@argcount, 6;
setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount));
- setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
+ setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1) {
set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
- setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
+ setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount));
setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1));
set .@argcount, .@argcount+2;
}
diff --git a/npc/custom/quests/tha_statues.txt b/npc/custom/quests/tha_statues.txt
index 283615be9..c4787fcd3 100644
--- a/npc/custom/quests/tha_statues.txt
+++ b/npc/custom/quests/tha_statues.txt
@@ -47,7 +47,7 @@ tha_t09,84,99,4 script Mediane HIDDEN_NPC,{
mes "Okay, i am warping you to the next floor now.";
next;
set TSQ_CHK,0;
- warp "tha_t10", 165, 138;
+ warp "tha_t10", 165, 138;
close;
nook:
mes "[Mediane]";
diff --git a/npc/custom/quests/thq/THQS_TTShop.txt b/npc/custom/quests/thq/THQS_TTShop.txt
index dfa83a587..c92c375ec 100644
--- a/npc/custom/quests/thq/THQS_TTShop.txt
+++ b/npc/custom/quests/thq/THQS_TTShop.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Fredzilla
//===== Current Version: =====================================
-//= 1.1
+//= 1.2a
//===== Description: =========================================
//= Start for Treasure hunter quests
//===== Additional Comments: =================================
@@ -12,503 +12,193 @@
//= 1.0 - Straight conversion of Aegis NPC file
//= 1.1 - balanced some prices, fixed 1 missing label
//= removed Executioner&Mysteltain swords [Lupus]
+//= 1.2 - Optmized and fixed small error [Panikon]
+//= 1.2a - Fixed zeny formula [Panikon]
//============================================================
prt_in,159,172,0 warp thqwrp 3,3,yuno_in01,123,155
-prt_in,164,174,1 script Treasure Hunter's Shop 1_M_YOUNGKNIGHT,{
- mes "[Ash]";
- mes "Ahh, "+strcharinfo(0)+"! Welcome to the Offical Treasure Hunter's Guild Shop.";
- mes "You currently have ^FF0000"+#Treasure_Token+"^000000 treasure tokens!!!";
- next;
- menu "How does this place work?",-,"What do you have in stock?",N_Shop,"Nevermind",N_NVM;
- mes "[Ash]";
- mes "Well you see here you can exchange your treasure hunter tokens for zeny or rare weapons forged by our blacksmiths.";
- mes " ";
- mes "Everything has its own price value and the only way you can get the tokens is by completing quests assigned to you,the system normally works like this.";
- mes " ";
- mes "The harder the mission the more Tokens you will earn. All red quests are worth 4-8 Tokens, and the rest are worth 1-5.";
- mes " ";
- mes "Hope that solves your problem and questions.";
- close;
-N_NVM:
- close;
+// Main configuration object
+- script THQS#Configuration -1,{
+OnInit:
+ // Axes
+ setarray $THQS_menu_weapons_1[0], Sabbath, Slaughter, Tomahawk, Great_Axe, Guillotine;
+ setarray $THQS_menu_price_1[0], 160, 160, 180, 200, 200;
+ // One Handed Swords
+ setarray $THQS_menu_weapons_2[0], Edge, Solar_Sword, Scissores_Sword, Nagan, Immaterial_Sword, Excalibur, Byeorrun_Gum, Tale_Fing_;
+ setarray $THQS_menu_price_2[0], 130, 150, 170, 180, 200, 200, 240, 320;
+ // Two Handed Swords
+ setarray $THQS_menu_weapons_3[0],Dragon_Slayer, Schweizersabel, Katzbalger, Muramasa, Masamune, Balmung;
+ setarray $THQS_menu_price_3[0], 140,200,300,300,400,2000;
+ // Books
+ setarray $THQS_menu_weapons_4[0],Book_Of_Blazing_Sun, Book_Of_Billows, Book_Of_Gust_Of_Wind, Book_Of_Mother_Earth, Book_Of_The_Apocalypse, Bible, Tablet;
+ setarray $THQS_menu_price_4[0], 80, 80, 80, 80, 80, 90, 120;
+ // Bows
+ setarray $THQS_menu_weapons_5[0], Bow_Of_Rudra, Bow_Of_Roguemaster;
+ setarray $THQS_menu_price_5[0], 150, 150;
+ // Katars
+ setarray $THQS_menu_weapons_6[0], Katar_Of_Cold_Icicle,Katar_Of_Thornbush,Katar_Of_Raging_Blaze,Katar_Of_Piercing_Wind,Ghoul_Leg,Infiltrator;
+ setarray $THQS_menu_price_6[0],70,70,70,70,125,150;
+ // Knuckles
+ setarray $THQS_menu_weapons_7[0],Kaiser_Knuckle,Berserk;
+ setarray $THQS_menu_price_7[0],75,75;
+ // Maces
+ setarray $THQS_menu_weapons_8[0],Spike,Slash,Grand_Cross,Quadrille,Mjolnir;
+ setarray $THQS_menu_price_8[0],65,90,100,110,1000;
+ // Whips
+ setarray $THQS_menu_weapons_9[0],Rapture_Rose,Chemeti;
+ setarray $THQS_menu_price_9[0],50,65;
+ // Wands
+ setarray $THQS_menu_weapons_10[0],Mighty_Staff,Wizardy_Staff,Bone_Wand,Staff_Of_Soul;
+ setarray $THQS_menu_price_10[0],90,150,110,120;
+ // Cards
+ setarray $THQS_menu_cards[0],Poring_Card, Pasana_Card, Dokebi_Card, Sword_Fish_Card, Sand_Man_Card, Drainliar_Card,
+ Kaho_Card,Mandragora_Card,Vadon_Card,Mummy_Card,Zenorc_Card,Condor_Card, Zombie_Card;
+ setarray $THQS_menu_price[0],2,420,420,420,420,360,360,360,360,540,240,240,210;
end;
-N_Shop:
-//This is when it gets hard :)
- mes "[Ash]";
- mes "Ok here is our Big list of goods.";
- mes " ";
- mes "(Note T stands for a Treasure Token.)";
- next;
- menu "Trade for Zeny",-,"Trade for Weapons",N_BuyWeps,"Trade for Cards",N_BuyCards,"Nevermind",N_NVM;
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "1000z - 1T",-,"10000z - 10T",N_10T,"100000z - 100T",N_100T,"Nevermind",N_NVM;
- if (#Treasure_Token > 0) goto N_GetZeny1k;
- mes "You don't have enough tokens!";
- close;
-N_GetZeny1k:
- set #Treasure_Token,#Treasure_Token-1;
- Zeny += 1000;
- close;
-N_10T:
- if (#Treasure_Token > 9) goto N_GetZeny10k;
- mes "You don't have enough tokens!";
- close;
-N_GetZeny10k:
- set #Treasure_Token,#Treasure_Token-10;
- Zeny += 10000;
- close;
-N_100T:
- if (#Treasure_Token > 99) goto N_GetZeny100k;
- mes "You don't have enough tokens!";
- close;
-N_GetZeny100k:
- set #Treasure_Token,#Treasure_Token-100;
- Zeny += 100000;
- close;
-
-N_BuyWeps:
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Axe's",-,"1 Handed Swords",N_1HandSword,"2 Handed Swords",N_2HandSword,"Book's",N_Book,"Bow's",N_Bow,"Katar's",N_Katar,"Knuckle's",N_Knuckle,"Mace's",N_Mace,"Whips",N_Whip,"Wands",N_Wand,"Nevermind",N_NVM;
-
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Sabbath - 160T",-,"Slaughter - 160T",N_Slau,"Tomahawk - 180T",N_Toma,"Great Axe - 200T",N_GreatA,"Guillotine - 200T",N_Guill,"Nevermind",N_NVM;
-
- if (#Treasure_Token < 160) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-160;
- getitem 1365,1;
- logmes "Treasure Token: Bought a Sabbath";
- close;
-N_Slau:
- if (#Treasure_Token < 160) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-160;
- getitem 1367,1;
- logmes "Treasure Token: Bought a Slaughter";
- close;
-N_Toma:
- if (#Treasure_Token < 180) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-180;
- getitem 1368,1;
- logmes "Treasure Token: Bought a Tomahawk";
- close;
-N_GreatA:
- if (#Treasure_Token < 200) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-200;
- getitem 1364,1;
- logmes "Treasure Token: Bought a Great Axe";
- close;
-N_Guill:
- if (#Treasure_Token < 200) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-200;
- getitem 1369,1;
- logmes "Treasure Token: Bought a Guillotine";
- close;
-N_NeedToken:
- mes "[Ash]";
- mes "You don't have enough tokens!";
- close;
-
-
-N_1HandSword:
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Edge - 130T",-,"Solar Sword - 150T",N_SolarS,"Caesar's Sword - 170T",N_CaesarS,"Nagan - 180T",N_Nagan,"Immaterial Sword - 200T",N_ImmatS,"Excalibur - 200T",N_Excal,"Byeollungum - 240T",N_Byeoll,"Talefing - 320T",N_Talef,"Nevermind",N_NVM;
-
- if (#Treasure_Token < 130) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-130;
- getitem 1132,1;
- logmes "Treasure Token: Bought a Edge";
- close;
-N_SolarS:
- if (#Treasure_Token < 150) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-150;
- logmes "Treasure Token: Bought a Solar Sword";
- getitem 1136,1;
- close;
-N_CaesarS:
- if (#Treasure_Token < 170) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-170;
- logmes "Treasure Token: Bought a Caesars Sword";
- getitem 1134,1;
- close;
-N_Nagan:
- if (#Treasure_Token < 180) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-180;
- logmes "Treasure Token: Bought a Nagan";
- getitem 1130,1;
- close;
-N_ImmatS:
- if (#Treasure_Token < 200) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-200;
- logmes "Treasure Token: Bought a Immaterial Sword";
- getitem 1141,1;
- close;
-N_Excal:
- if (#Treasure_Token < 200) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-200;
- logmes "Treasure Token: Bought a Excalibur";
- getitem 1137,1;
- close;
-N_Byeoll:
- if (#Treasure_Token < 240) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-240;
- logmes "Treasure Token: Bought a Byeollungum";
- getitem 1140,1;
- close;
-N_Talef:
- if (#Treasure_Token < 320) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-320;
- logmes "Treasure Token: Bought a Talefing";
- getitem 1139,1;
- close;
+}
+// Trades tokens
+// getarg(0) - number of tokens to be traded
+function script thqs_trade_token {
+ @type = getarg(0);
+ if( @type == 4 )
+ close;
-N_2HandSword:
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Dragon Slayer - 140T",-,"Schweizersabel - 200T",N_Schwe,"Katzbalger - 300T",N_Katzb,"Muramasa - 300T",N_Murama,"Masamune - 400T",N_Masamu,"Balmung - 2000T",N_Balmu,"Nevermind",N_NVM;
+ // 10^0, 10^1, 10^2
+ @type -= 1;
+ @price = pow(10, @type);
- if (#Treasure_Token < 140) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-140;
- logmes "Treasure Token: Bought a Dragon Slayer";
- getitem 1166,1;
- close;
-N_Schwe:
- if (#Treasure_Token < 200) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-200;
- logmes "Treasure Token: Bought a Schweizersabel";
- getitem 1167,1;
- close;
-N_Katzb:
- if (#Treasure_Token < 300) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-300;
- logmes "Treasure Token: Bought a Katzbalger";
- getitem 1170,1;
- close;
-N_Murama:
- if (#Treasure_Token < 300) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-300;
- logmes "Treasure Token: Bought a Muramasa";
- getitem 1164,1;
- close;
-N_Masamu:
- if (#Treasure_Token < 400) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-400;
- logmes "Treasure Token: Bought a Masamune";
- getitem 1165,1;
- close;
-N_Balmu:
- if (#Treasure_Token < 2000) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-2000;
- logmes "Treasure Token: Bought a Balmung";
- getitem 1161,1;
- close;
-
-
-N_Book:
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Book of the Burning Sun - 80T",-,"Book of the Rough Seas - 80T",N_RoughSea,"Book of the Dry Winds - 80T",N_DryWinds,"Book of the Ripe Earth - 80T",N_RipeEarth,"Book of the Revelations - 80T",N_Revela,"Bible - 90T",N_Bible,"Tablet - 120T",N_Tablet,"Nevermind",N_NVM;
+ // 10^3, 10^4, 10^5
+ @type += 3; // So we can use pow later to determine the qt of Zeny
+ @prize = pow(10, @type);
- if (#Treasure_Token < 80) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-80;
- logmes "Treasure Token: Bought a Book of the Burning Sun";
- getitem 1555,1;
- close;
-N_RoughSea:
- if (#Treasure_Token < 80) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-80;
- logmes "Treasure Token: Bought a Book of the Rough Seas";
- getitem 1553,1;
- close;
-N_DryWinds:
- if (#Treasure_Token < 80) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-80;
- logmes "Treasure Token: Bought a Book of the Dry Winds";
- getitem 1556,1;
- close;
-N_RipeEarth:
- if (#Treasure_Token < 80) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-80;
- logmes "Treasure Token: Bought a Book of the Ripe Earth";
- getitem 1554,1;
- close;
-N_Revela:
- if (#Treasure_Token < 80) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-80;
- logmes "Treasure Token: Bought a Book of the Revelations";
- getitem 1557,1;
- close;
-N_Bible:
- if (#Treasure_Token < 90) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-90;
- logmes "Treasure Token: Bought a Bible";
- getitem 1551,1;
- close;
-N_Tablet:
- if (#Treasure_Token < 120) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-120;
- logmes "Treasure Token: Bought a Tablet";
- getitem 1552,1;
- close;
+ if( #Treasure_Token < @price ) {
+ mes "You don't have enough tokens!";
+ close;
+ }
-N_Bow:
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Rudra's Bow - 150T",-,"Roguemaster's Bow - 150T",N_Rogue,"Nevermind",N_NVM;
+ if( Zeny == MAX_ZENY ) {
+ mes "You can't add more zeny to your character";
+ close;
+ }
- if (#Treasure_Token < 150) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-150;
- logmes "Treasure Token: Bought a Rudra Bow";
- getitem 1720,1;
- close;
-N_Rogue:
- if (#Treasure_Token < 150) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-150;
- logmes "Treasure Token: Bought a Roguemaster Bow";
- getitem 1719,1;
+ Zeny += @prize;
+ #Treasure_Token -= @price;
close;
+}
-N_Katar:
- mes "[Ash]";
- mes "This is what we have to offer.";
- next;
- menu "Katar of the Blazing Rage - 70T",-,"Katar of the Cold Icicle - 70T",N_ColdIce,"Katar of the Piercing Wind - 70T",N_PiercWind,"Katar of the Dusty Thornbush - 70T",N_DustyT,"Sharpened Legbone of Ghoul - 125T",N_Legbone,"Infiltrator - 150T",N_Infiltra,"Nevermind",N_NVM;
-
- if (#Treasure_Token < 70) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-70;
- logmes "Treasure Token: Bought a Katar of the Blazing Rage";
- getitem 1258,1;
- close;
-N_ColdIce:
- if (#Treasure_Token < 70) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-70;
- logmes "Treasure Token: Bought a Katar of the Cold Icicle";
- getitem 1256,1;
- close;
-N_PiercWind:
- if (#Treasure_Token < 70) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-70;
- logmes "Treasure Token: Bought a Katar of the Piercing Wind";
- getitem 1259,1;
- close;
-N_DustyT:
- if (#Treasure_Token < 70) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-70;
- logmes "Treasure Token: Bought a Katar of the Dusty Thornbush";
- getitem 1257,1;
- close;
-N_Legbone:
- if (#Treasure_Token < 125) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-125;
- logmes "Treasure Token: Bought a Sharpened Legbone of Ghoul";
- getitem 1260,1;
- close;
-N_Infiltra:
- if (#Treasure_Token < 150) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-150;
- logmes "Treasure Token: Bought a Infiltrator";
- getitem 1261,1;
+// Creates a buying menu
+// getarg(0) - .@mw$ -> ID
+// getarg(1) - .@mp$ -> PRICE
+function script thqs_menu_buy {
+ if( getargcount() != 2 ) {
+ debugmes "thqs_menu_buy: Wrong number of arguments!!";
+ close;
+ }
+
+ .@mw$ = getarg(0);
+ .@mp$ = getarg(1);
+
+ if( getarraysize( getd(.@mw$) ) != getarraysize( getd(.@mp$) ) ) {
+ debugmes "thqs_menu_buy: Missing entries in data!";
+ close;
+ }
+
+ // Dynamic menu
+ // Uses a dynamic string and then applies it to a *select
+ .@select_menu$ = "";
+ for( .@i = 0; .@i < getarraysize( getd(.@mw$) ); .@i++ ) {
+ .@price = getd(.@mp$+"["+.@i+"]");
+
+ if( .@select_menu$ != "")
+ .@select_menu$ = .@select_menu$+":"+getitemname( getd(.@mw$+"["+.@i+"]") )+" - "+.@price+"T";
+ else
+ .@select_menu$ = getitemname( getd(.@mw$+"["+.@i+"]") )+" - "+.@price+"T";
+ }
+ .@select_menu$ = .@select_menu$ + ":Nevermind";
+ select(.@select_menu$);
+
+ if( @menu == (.@i+1) )
+ close;
+
+ @index = @menu - 1; // Arrays are 0 indexed while our menu is not
+ @item_id = getd(.@mw$+"["+@index+"]");
+ @price = getd(.@mp$+"["+@index+"]");
+ if( #Treasure_Token < @price ) {
+ mes "You don't have enough tokens!";
+ close;
+ }
+ #Treasure_Token -= @price;
+ logmes "Treasure Token: Bought a "+getitemname(@item_id);
+ getitem @item_id,1;
close;
+}
-N_Knuckle:
+// Creates the first weapon menu
+// getarg(0) - @menu
+function script ths_menu_weapons {
+ @first_option = getarg(0);
+ if( @first_option == 11 )
+ close;
mes "[Ash]";
- mes "This is what we have to offer.";
+ mes "This is what we have to offer."+@first_option;
next;
- menu "Kaiser Knuckle - 75T",-,"Berserk - 75T",N_Berserk,"Nevermind",N_NVM;
+ // Array names so they can be used by thqs_menu_buy
+ .@mw$ = "$THQS_menu_weapons_"+@first_option;
+ .@mp$ = "$THQS_menu_price_"+@first_option;
- if (#Treasure_Token < 75) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-75;
- logmes "Treasure Token: Bought a Kaiser Knuckle";
- getitem 1813,1;
- close;
-N_Berserk:
- if (#Treasure_Token < 75) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-75;
- logmes "Treasure Token: Bought a Berserk";
- getitem 1814,1;
- close;
+ thqs_menu_buy(.@mw$,.@mp$);
+}
-N_Mace:
+// Main script
+prt_in,164,174,1 script Treasure Hunter's Shop 1_M_YOUNGKNIGHT,{
mes "[Ash]";
- mes "This is what we have to offer.";
+ mes "Ahh, "+strcharinfo(0)+"! Welcome to the Offical Treasure Hunter's Guild Shop.";
+ mes "You currently have ^FF0000"+#Treasure_Token+"^000000 treasure tokens!!!";
next;
- menu "Spike - 65T",-,"Slash - 90T",N_Slash,"Grand Cross - 100T",N_GrandC,"Quadrille - 110T",N_Quadr,"Mjolnir - 1000T",N_MJ,"Nevermind",N_NVM;
+ switch( select("How does this place work?","What do you have in stock?","Nevermind") ) {
+ case 1:
+ mes "[Ash]";
+ mes "Well you see here you can exchange your treasure hunter tokens for zeny or rare weapons forged by our blacksmiths.";
+ mes " ";
+ mes "Everything has its own price value and the only way you can get the tokens is by completing quests assigned to you,the system normally works like this.";
+ mes " ";
+ mes "The harder the mission the more Tokens you will earn. All red quests are worth 4-8 Tokens, and the rest are worth 1-5.";
+ mes " ";
+ mes "Hope that solves your problem and questions.";
+ close;
+ case 2:
+ break;
+ case 3:
+ close;
+ }
- if (#Treasure_Token < 65) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-65;
- logmes "Treasure Token: Bought a Spike";
- getitem 1523,1;
- close;
-N_Slash:
- if (#Treasure_Token < 90) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-90;
- logmes "Treasure Token: Bought a Slash";
- getitem 1526,1;
- close;
-N_GrandC:
- if (#Treasure_Token < 100) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-100;
- logmes "Treasure Token: Bought a Grand Cross";
- getitem 1528,1;
- close;
-N_Quadr:
- if (#Treasure_Token < 110) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-110;
- logmes "Treasure Token: Bought a Quadrille";
- getitem 1527,1;
- close;
-N_MJ:
- if (#Treasure_Token < 1000) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-1000;
- logmes "Treasure Token: Bought a Mjolnir";
- getitem 1530,1;
- close;
-
-N_Whip:
mes "[Ash]";
- mes "This is what we have to offer.";
+ mes "Ok here is our Big list of goods.";
+ mes " ";
+ mes "(Note T stands for a Treasure Token.)";
next;
- menu "Rapture Rose - 50T",-,"Chemeti - 65T",N_Chemeti,"Nevermind",N_NVM;
-
- if (#Treasure_Token < 50) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-50;
- logmes "Treasure Token: Bought a Rapture Rose";
- getitem 1963,1;
- close;
-N_Chemeti:
- if (#Treasure_Token < 65) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-65;
- logmes "Treasure Token: Bought a Chemeti";
- getitem 1964,1;
- close;
-
-N_Wand:
mes "[Ash]";
mes "This is what we have to offer.";
next;
- menu "Mighty Staff - 90T",-,"Wizardry Staff - 150T",N_Wizardry,"Bone Wand - 110T",N_BoneW,"Staff of Soul - 120T",N_SOSoul,"Nevermind",N_NVM;
-
- if (#Treasure_Token < 90) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-90;
- logmes "Treasure Token: Bought a Mighty Staff";
- getitem 1613,1;//Items: Mighty_Staff,
- close;
-N_Wizardry:
- if (#Treasure_Token < 150) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-150;
- logmes "Treasure Token: Bought a Wizardry Staff";
- getitem 1473,1;//Items: Wizardy_Staff,
- close;
-N_BoneW:
- if (#Treasure_Token < 110) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-110;
- logmes "Treasure Token: Bought a Bone Wand";
- getitem 1615,1;//Items: Bone_Wand,
- close;
-N_SOSoul:
- if (#Treasure_Token < 120) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-120;
- logmes "Treasure Token: Bought a Staff of Soul";
- getitem 1472,1;//Items: Staff_of_Soul,
- close;
-
-N_BuyCards:
- mes "[Ash]";
- mes "This is what we have to offer. All Cards are 300T";
- next;
- menu "Poring Card - 2T",-,"Pasana Card - 420T",N_CPasana,"Dokebi Card - 420T",N_CDok,"Swordfish Card - 420T",N_CSFish,
- "Sandman Card - 420T",N_CSMan,"Drainliar Card - 360T",N_CDrain,"Kaho Card - 360T",N_CKaho,"Mandragora Card - 360T",N_CMand,
- "Vadon Card - 360T",N_CVadon,"Mummy Card - 540T",N_CMummy,"Zenorc Card - 240T",N_CZeno,"Condor Card - 240T",N_CCond,
- "Zombie Card - 210T",N_CZomb,"Nevermind",N_NVM;
-
- if (#Treasure_Token < 2) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-2;
- logmes "Treasure Token: Bought a Poring Card";
- getitem 4001,1;//Items: Poring_Card,
- close;
-
-N_CPasana:
- if (#Treasure_Token < 420) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-420;
- logmes "Treasure Token: Bought a Pasana Card";
- getitem 4099,1;//Items: Pasana_Card,
- close;
-N_CDok:
- if (#Treasure_Token < 420) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-420;
- logmes "Treasure Token: Bought a Dokebi Card";
- getitem 4098,1;//Items: Dokebi_Card,
- close;
-N_CSFish:
- if (#Treasure_Token < 420) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-420;
- logmes "Treasure Token: Bought a Swordfish Card";
- getitem 4089,1;//Items: Sword_Fish_Card,
- close;
-N_CSMan:
- if (#Treasure_Token < 420) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-420;
- logmes "Treasure Token: Bought a Sandman Card";
- getitem 4101,1;//Items: Sand_Man_Card,
- close;
-N_CDrain:
- if (#Treasure_Token < 360) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-360;
- logmes "Treasure Token: Bought a Drainliar Card";
- getitem 4069,1;//Items: Drainliar_Card,
- close;
-N_CKaho:
- if (#Treasure_Token < 360) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-360;
- logmes "Treasure Token: Bought a Kaho Card";
- getitem 4065,1;//Items: Kaho_Card,
- close;
-N_CMand:
- if (#Treasure_Token < 360) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-360;
- logmes "Treasure Token: Bought a Mandragora Card";
- getitem 4030,1;//Items: Mandragora_Card,
- close;
-N_CVadon:
- if (#Treasure_Token < 360) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-360;
- logmes "Treasure Token: Bought a Vadon Card";
- getitem 4049,1;//Items: Vadon_Card,
- close;
-N_CMummy:
- if (#Treasure_Token < 540) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-540;
- logmes "Treasure Token: Bought a Mummy Card";
- getitem 4106,1;//Items: Mummy_Card,
- close;
-N_CZeno:
- if (#Treasure_Token < 240) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-240;
- logmes "Treasure Token: Bought a Zenorc Card";
- getitem 4096,1;//Items: Zenorc_Card,
- close;
-N_CCond:
- if (#Treasure_Token < 240) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-240;
- logmes "Treasure Token: Bought a Condor Card";
- getitem 4015,1;//Items: Condor_Card,
- close;
-N_CZomb:
- if (#Treasure_Token < 210) goto N_NeedToken;
- set #Treasure_Token,#Treasure_Token-210;
- logmes "Treasure Token: Bought a Zombie Card";
- getitem 4038,1;//Items: Zombie_Card,
- close;
+ switch( select("Trade for zeny", "Trade for Weapons", "Trade for Cards", "Nevermind") ) {
+ case 1:
+ select("1000z - 1T","10000z - 10T","100000z - 100T","Nevermind");
+ thqs_trade_token(@menu);
+ case 2:
+ mes "[Ash]";
+ mes "This is what we have to offer.";
+ next;
+ select("Axe's","1 Handed Swords","2 Handed Swords","Book's","Bow's","Katar's","Knuckle's","Mace's","Whips","Wands","Nevermind");
+ ths_menu_weapons(@menu);
+ case 3:
+ mes "[Ash]";
+ mes "This is what we have to offer.";
+ next;
+ thqs_menu_buy("$THQS_menu_cards","$THQS_menu_price");
+ case 4:
+ close;
+ }
+ end;
}
diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt
index b2cabd1fc..0b66c6a03 100644
--- a/npc/custom/warper.txt
+++ b/npc/custom/warper.txt
@@ -111,7 +111,7 @@ function Restrict {
Towns:
// --------------------------------------------------
menu "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5,
- "Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10,
+ "Brasilis",T6, "Comodo",T7, "Dewata",T8, "Eclage",T9, "Einbech",T10,
"Einbroch",T11, "El Dicastes",T12, "Geffen",T13, "Gonryun",T14, "Hugel",T15,
"Izlude",T16, "Jawaii",T17, "Lighthalzen",T18, "Louyang",T19, "Lutie",T20,
"Malangdo",T21, "Malaya",T22, "Manuk",T23, "Midgarts Expedition Camp",T24,
diff --git a/npc/custom/woe_controller.txt b/npc/custom/woe_controller.txt
index c21018d60..824fa4a4f 100644
--- a/npc/custom/woe_controller.txt
+++ b/npc/custom/woe_controller.txt
@@ -273,7 +273,7 @@ while(1) {
for(set .@i,0; .@i<6; set .@i,.@i+1) {
set .@k, .@i*5;
mes "> ^FF0000"+.Regions$[.@i]+"^000000";
- for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) {
+ for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) {
set .@t, getcastledata(.Castles$[.@j],1);
mes " ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000";
}