diff options
Diffstat (limited to 'npc/custom')
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"; } |