diff options
Diffstat (limited to 'npc/custom')
66 files changed, 2796 insertions, 2075 deletions
diff --git a/npc/custom/battleground/bg_common.txt b/npc/custom/battleground/bg_common.txt index 49e48c293..895191961 100644 --- a/npc/custom/battleground/bg_common.txt +++ b/npc/custom/battleground/bg_common.txt @@ -5,7 +5,7 @@ // BattleGround Warper - Entrance // ********************************************************************* -- script Maroll Battle Recruiter::BatRecruit 728,{ +- script Maroll Battle Recruiter::BatRecruit 4_F_JOB_KNIGHT,{ mes "[Maroll Battle Recruiter]"; mes "Good day, adventurer."; mes "I'm a knight from a far country called Maroll Kingdom."; @@ -26,17 +26,17 @@ end; } -payon,189,104,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit1 728 -prontera,123,83,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit2 728 -rachel,149,138,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit3 728 -moc_ruins,75,162,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit4 728 -aldebaran,146,109,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 728 -lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 728 +payon,189,104,3 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit1 4_F_JOB_KNIGHT +prontera,123,83,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit2 4_F_JOB_KNIGHT +rachel,149,138,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit3 4_F_JOB_KNIGHT +moc_ruins,75,162,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit4 4_F_JOB_KNIGHT +aldebaran,146,109,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit5 4_F_JOB_KNIGHT +lighthalzen,153,86,5 duplicate(BatRecruit) Maroll Battle Recruiter::BatRecruit6 4_F_JOB_KNIGHT // BattleGround Warper - Exit // ********************************************************************* -bat_room,148,150,4 script Teleporter#bat 124,{ +bat_room,148,150,4 script Teleporter#bat 4_F_TELEPORTER,{ mes "[Teleporter]"; mes "Do you wish to leave the battlefield? Use my service to return to town."; next; @@ -59,14 +59,14 @@ bat_room,148,150,4 script Teleporter#bat 124,{ // Kafra // ********************************************************************* -bat_room,148,147,4 script Kafra Staff::kaf_bat 861,{ +bat_room,148,147,4 script Kafra Staff::kaf_bat 4_F_KAFRA9,{ cutin "kafra_09",2; callfunc "F_Kafra",0,2,1,150,0; } // General Guillaume // ********************************************************************* -bat_room,160,159,3 script General Guillaume 420,{ +bat_room,160,159,3 script General Guillaume 4_M_KY_KIYOM,{ cutin "bat_kiyom2",2; mes "[General Guillaume]"; mes "Hot-blooded adventurer, we need your ability to win this battle."; @@ -105,7 +105,7 @@ bat_room,160,159,3 script General Guillaume 420,{ // General Croix // ********************************************************************* -bat_room,160,140,3 script Prince Croix 416,{ +bat_room,160,140,3 script Prince Croix 4_M_CRU_CRUA,{ cutin "bat_crua1",2; mes "[Prince Croix]"; mes "Wise adventurer, why don't you lend us your power for victory?"; @@ -136,14 +136,14 @@ bat_room,160,140,3 script Prince Croix 416,{ // Time calculation Function // ********************************************************************* function script Time2Str { - set .@Time_Left, getarg(0) - gettimetick(2); + set .@time_left, getarg(0) - gettimetick(2); - set .@Days, .@Time_Left / 86400; - set .@Time_Left, .@Time_Left - (.@Days * 86400); - set .@Hours, .@Time_Left / 3600; - set .@Time_Left, .@Time_Left - (.@Hours * 3600); - set .@Minutes, .@Time_Left / 60; - set .@Time_Left, .@Time_Left - (.@Minutes * 60); + set .@Days, .@time_left / 86400; + set .@time_left, .@time_left - (.@Days * 86400); + set .@Hours, .@time_left / 3600; + set .@time_left, .@time_left - (.@Hours * 3600); + set .@Minutes, .@time_left / 60; + set .@time_left, .@time_left - (.@Minutes * 60); set .@Time$, ""; if( .@Days > 1 ) @@ -161,17 +161,17 @@ function script Time2Str { else if( .@Minutes > 0 ) set .@Time$, .@Time$ + .@Minutes + " minute, "; - if( .@Time_Left > 1 || .@Time_Left == 0 ) - set .@Time$, .@Time$ + .@Time_Left + " seconds."; - else if( .@Time_Left == 1 ) - set .@Time$, .@Time$ + .@Time_Left + " second."; + if( .@time_left > 1 || .@time_left == 0 ) + set .@Time$, .@Time$ + .@time_left + " seconds."; + else if( .@time_left == 1 ) + set .@Time$, .@Time$ + .@time_left + " second."; return .@Time$; } // Guillaume Knight - Tierra Valley // ********************************************************************* -bat_room,159,178,5 script Guillaume Knight#1 417,{ +bat_room,159,178,5 script Guillaume Knight#1 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; next; @@ -190,7 +190,7 @@ bat_room,159,178,5 script Guillaume Knight#1 417,{ // Tierra Officer - Guillaume // ********************************************************************* -bat_room,156,178,5 script Tierra Valley Officer#1 418,{ +bat_room,156,178,5 script Tierra Valley Officer#1 4_M_KY_KNT,{ mes "[Tierra Officer]"; if( Bat_Team == 2 ) { @@ -241,7 +241,7 @@ bat_room,156,178,5 script Tierra Valley Officer#1 418,{ // Croix Knight - Tierra Valley // ********************************************************************* -bat_room,159,121,1 script Croix Knight#1 413,{ +bat_room,159,121,1 script Croix Knight#1 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; next; @@ -260,7 +260,7 @@ bat_room,159,121,1 script Croix Knight#1 413,{ // Tierra Officer - Croix // ********************************************************************* -bat_room,156,121,1 script Tierra Valley Officer#2 414,{ +bat_room,156,121,1 script Tierra Valley Officer#2 4_M_CRU_KNT,{ mes "[Tierra Officer]"; if( Bat_Team == 1 ) { @@ -311,7 +311,7 @@ bat_room,156,121,1 script Tierra Valley Officer#2 414,{ // Guillaume Knight - Tierra // ********************************************************************* -bat_room,167,178,5 script Guillaume Knight#2 417,{ +bat_room,167,178,5 script Guillaume Knight#2 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; next; @@ -330,7 +330,7 @@ bat_room,167,178,5 script Guillaume Knight#2 417,{ // Tierra Officer - Guillaume // ********************************************************************* -bat_room,164,178,5 script Tierra Valley Officer#3 418,{ +bat_room,164,178,5 script Tierra Valley Officer#3 4_M_KY_KNT,{ mes "[Tierra Officer]"; if( Bat_Team == 2 ) { @@ -381,7 +381,7 @@ bat_room,164,178,5 script Tierra Valley Officer#3 418,{ // Croix Knight - Tierra // ********************************************************************* -bat_room,167,121,1 script Croix Knight#2 413,{ +bat_room,167,121,1 script Croix Knight#2 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "Tierra Gorge is a very steep canyon with two forts residing in the north and south ends of the map."; next; @@ -400,7 +400,7 @@ bat_room,167,121,1 script Croix Knight#2 413,{ // Tierra Officer - Croix // ********************************************************************* -bat_room,164,121,1 script Tierra Valley Officer#4 414,{ +bat_room,164,121,1 script Tierra Valley Officer#4 4_M_CRU_KNT,{ mes "[Tierra Officer]"; if( Bat_Team == 1 ) { @@ -451,7 +451,7 @@ bat_room,164,121,1 script Tierra Valley Officer#4 414,{ // Guillaune Knight - Flavius // ********************************************************************* -bat_room,175,178,5 script Guillaume Knight#3 417,{ +bat_room,175,178,5 script Guillaume Knight#3 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; next; @@ -471,7 +471,7 @@ bat_room,175,178,5 script Guillaume Knight#3 417,{ // Flavius Officer - Guillaume // ********************************************************************* -bat_room,172,178,5 script Flavius Officer#1 418,{ +bat_room,172,178,5 script Flavius Officer#1 4_M_KY_KNT,{ mes "[Flavius Officer]"; if( Bat_Team == 2 ) { @@ -522,7 +522,7 @@ bat_room,172,178,5 script Flavius Officer#1 418,{ // Croix Knight - Flavius // ********************************************************************* -bat_room,175,121,1 script Croix Knight#3 413,{ +bat_room,175,121,1 script Croix Knight#3 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; next; @@ -542,7 +542,7 @@ bat_room,175,121,1 script Croix Knight#3 413,{ // Flavius Officerer - Croix // ********************************************************************* -bat_room,172,121,1 script Flavius Officer#2 414,{ +bat_room,172,121,1 script Flavius Officer#2 4_M_CRU_KNT,{ mes "[Flavius Officer]"; if( Bat_Team == 1 ) { @@ -593,7 +593,7 @@ bat_room,172,121,1 script Flavius Officer#2 414,{ // Guillaune Knight - Flavius // ********************************************************************* -bat_room,151,178,5 script Guillaume Knight#4 417,{ +bat_room,151,178,5 script Guillaume Knight#4 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; next; @@ -613,7 +613,7 @@ bat_room,151,178,5 script Guillaume Knight#4 417,{ // Flavius Officerer - Guillaume // ********************************************************************* -bat_room,148,178,5 script Flavius Officer#3 418,{ +bat_room,148,178,5 script Flavius Officer#3 4_M_KY_KNT,{ mes "[Flavius Officer]"; if( Bat_Team == 2 ) { @@ -664,7 +664,7 @@ bat_room,148,178,5 script Flavius Officer#3 418,{ // Croix Knight - Flavius // ********************************************************************* -bat_room,151,121,1 script Croix Knight#4 413,{ +bat_room,151,121,1 script Croix Knight#4 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "The objective of the Flavius Battle is to score 2 points before your enemy by destroying their crystal."; next; @@ -684,7 +684,7 @@ bat_room,151,121,1 script Croix Knight#4 413,{ // Flavius Officerer - Croix // ********************************************************************* -bat_room,148,121,1 script Flavius Officer#4 414,{ +bat_room,148,121,1 script Flavius Officer#4 4_M_CRU_KNT,{ mes "[Flavius Officer]"; if( Bat_Team == 1 ) { @@ -735,7 +735,7 @@ bat_room,148,121,1 script Flavius Officer#4 414,{ // Guillaume Knight - KvM // ********************************************************************* -bat_room,143,178,5 script Guillaume Knight#5 417,{ +bat_room,143,178,5 script Guillaume Knight#5 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; next; @@ -752,7 +752,7 @@ bat_room,143,178,5 script Guillaume Knight#5 417,{ // KvM Officerer - Guillaume // ********************************************************************* -bat_room,140,178,5 script KVM [80-99] Officer#1 418,{ +bat_room,140,178,5 script KVM [80-99] Officer#1 4_M_KY_KNT,{ mes "[KVM Officer]"; if( Bat_Team == 2 ) { @@ -803,7 +803,7 @@ bat_room,140,178,5 script KVM [80-99] Officer#1 418,{ // Croix Knight - KvM // ********************************************************************* -bat_room,143,121,1 script Croix Knight#5 413,{ +bat_room,143,121,1 script Croix Knight#5 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; next; @@ -820,7 +820,7 @@ bat_room,143,121,1 script Croix Knight#5 413,{ // KvM Officer - Croix // ********************************************************************* -bat_room,140,121,1 script KVM [80-99] Officer#2 414,{ +bat_room,140,121,1 script KVM [80-99] Officer#2 4_M_CRU_KNT,{ mes "[KVM Officer]"; if( Bat_Team == 1 ) { @@ -871,7 +871,7 @@ bat_room,140,121,1 script KVM [80-99] Officer#2 414,{ // Guillaume Knight - KvM // ********************************************************************* -bat_room,135,178,5 script Guillaume Knight#6 417,{ +bat_room,135,178,5 script Guillaume Knight#6 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; next; @@ -888,7 +888,7 @@ bat_room,135,178,5 script Guillaume Knight#6 417,{ // KvM Officerer - Guillaume // ********************************************************************* -bat_room,132,178,5 script KVM [60-79] Officer#1 418,{ +bat_room,132,178,5 script KVM [60-79] Officer#1 4_M_KY_KNT,{ mes "[KVM Officer]"; if( Bat_Team == 2 ) { @@ -939,7 +939,7 @@ bat_room,132,178,5 script KVM [60-79] Officer#1 418,{ // Croix Knight - KvM // ********************************************************************* -bat_room,135,121,1 script Croix Knight#6 413,{ +bat_room,135,121,1 script Croix Knight#6 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; next; @@ -956,7 +956,7 @@ bat_room,135,121,1 script Croix Knight#6 413,{ // KvM Officer - Croix // ********************************************************************* -bat_room,132,121,1 script KVM [60-79] Officer#2 414,{ +bat_room,132,121,1 script KVM [60-79] Officer#2 4_M_CRU_KNT,{ mes "[KVM Officer]"; if( Bat_Team == 1 ) { @@ -1007,7 +1007,7 @@ bat_room,132,121,1 script KVM [60-79] Officer#2 414,{ // Guillaume Knight - KvM // ********************************************************************* -bat_room,127,178,5 script Guillaume Knight#7 417,{ +bat_room,127,178,5 script Guillaume Knight#7 4_M_KY_SOLD,{ mes "[Guillaume Knight]"; mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; next; @@ -1024,7 +1024,7 @@ bat_room,127,178,5 script Guillaume Knight#7 417,{ // KvM Officerer - Guillaume // ********************************************************************* -bat_room,124,178,5 script KVM [1-59] Officer#1 418,{ +bat_room,124,178,5 script KVM [1-59] Officer#1 4_M_KY_KNT,{ mes "[KVM Officer]"; if( Bat_Team == 2 ) { @@ -1075,7 +1075,7 @@ bat_room,124,178,5 script KVM [1-59] Officer#1 418,{ // Croix Knight - KvM // ********************************************************************* -bat_room,127,121,1 script Croix Knight#7 413,{ +bat_room,127,121,1 script Croix Knight#7 4_M_CRU_SOLD,{ mes "[Croix Knight]"; mes "To win the Battle of Kriger Von Midgard you and your team must kill all the other opponents before all of you die."; next; @@ -1092,7 +1092,7 @@ bat_room,127,121,1 script Croix Knight#7 413,{ // KvM Officer - Croix // ********************************************************************* -bat_room,124,121,1 script KVM [1-59] Officer#2 414,{ +bat_room,124,121,1 script KVM [1-59] Officer#2 4_M_CRU_KNT,{ mes "[KVM Officer]"; if( Bat_Team == 1 ) { @@ -1144,16 +1144,16 @@ bat_room,124,121,1 script KVM [1-59] Officer#2 414,{ // Guard Dummy // ********************************************************************* -bat_room,161,141,3 script Prince Croix's Aid::bat_aid 415,{ end; } -bat_room,161,139,3 duplicate(bat_aid) Prince Croix's Aid::bat_aid2 415 -bat_room,161,160,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid3 419 -bat_room,161,158,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid4 419 +bat_room,161,141,3 script Prince Croix's Aid::bat_aid 4_M_CRU_HEAD,{ end; } +bat_room,161,139,3 duplicate(bat_aid) Prince Croix's Aid::bat_aid2 4_M_CRU_HEAD +bat_room,161,160,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid3 4_M_KY_HEAD +bat_room,161,158,3 duplicate(bat_aid) General Guillaume's Aid::bat_aid4 4_M_KY_HEAD // Flags // ********************************************************************* -- script Guillaume camp#bat 973,{ end; } -- script Croix camp#bat 974,{ end; } +- script Guillaume camp#bat 1_FLAG_LION,{ end; } +- script Croix camp#bat 1_FLAG_EAGLE,{ end; } // Exit from Registration // ********************************************************************* @@ -1167,58 +1167,58 @@ OnTouch: } // Flavius bat_b02 -bat_room,57,81,0 duplicate(warp2bat_room) bat1 45,1,1 -bat_room,57,90,0 duplicate(warp2bat_room) bat2 45,1,1 +bat_room,57,81,0 duplicate(warp2bat_room) bat1 WARPNPC,1,1 +bat_room,57,90,0 duplicate(warp2bat_room) bat2 WARPNPC,1,1 // Free BG -bat_room,57,220,0 duplicate(warp2bat_room) bat3 45,1,1 -bat_room,57,211,0 duplicate(warp2bat_room) bat4 45,1,1 +bat_room,57,220,0 duplicate(warp2bat_room) bat3 WARPNPC,1,1 +bat_room,57,211,0 duplicate(warp2bat_room) bat4 WARPNPC,1,1 // Tierra Valley bat_a02 -bat_room,85,81,0 duplicate(warp2bat_room) bat5 45,1,1 -bat_room,85,90,0 duplicate(warp2bat_room) bat6 45,1,1 +bat_room,85,81,0 duplicate(warp2bat_room) bat5 WARPNPC,1,1 +bat_room,85,90,0 duplicate(warp2bat_room) bat6 WARPNPC,1,1 // Tierra Valley bat_a01 -bat_room,85,220,0 duplicate(warp2bat_room) bat7 45,1,1 -bat_room,85,211,0 duplicate(warp2bat_room) bat8 45,1,1 +bat_room,85,220,0 duplicate(warp2bat_room) bat7 WARPNPC,1,1 +bat_room,85,211,0 duplicate(warp2bat_room) bat8 WARPNPC,1,1 // Free BG -bat_room,113,81,0 duplicate(warp2bat_room) bat9 45,1,1 -bat_room,113,90,0 duplicate(warp2bat_room) bat10 45,1,1 +bat_room,113,81,0 duplicate(warp2bat_room) bat9 WARPNPC,1,1 +bat_room,113,90,0 duplicate(warp2bat_room) bat10 WARPNPC,1,1 // Free BG -bat_room,113,220,0 duplicate(warp2bat_room) bat11 45,1,1 -bat_room,113,211,0 duplicate(warp2bat_room) bat12 45,1,1 +bat_room,113,220,0 duplicate(warp2bat_room) bat11 WARPNPC,1,1 +bat_room,113,211,0 duplicate(warp2bat_room) bat12 WARPNPC,1,1 // Free BG -bat_room,141,81,0 duplicate(warp2bat_room) bat13 45,1,1 -bat_room,141,90,0 duplicate(warp2bat_room) bat14 45,1,1 +bat_room,141,81,0 duplicate(warp2bat_room) bat13 WARPNPC,1,1 +bat_room,141,90,0 duplicate(warp2bat_room) bat14 WARPNPC,1,1 // Free BG -bat_room,141,220,0 duplicate(warp2bat_room) bat15 45,1,1 -bat_room,141,211,0 duplicate(warp2bat_room) bat16 45,1,1 +bat_room,141,220,0 duplicate(warp2bat_room) bat15 WARPNPC,1,1 +bat_room,141,211,0 duplicate(warp2bat_room) bat16 WARPNPC,1,1 // Free BG -bat_room,169,81,0 duplicate(warp2bat_room) bat17 45,1,1 -bat_room,169,90,0 duplicate(warp2bat_room) bat18 45,1,1 +bat_room,169,81,0 duplicate(warp2bat_room) bat17 WARPNPC,1,1 +bat_room,169,90,0 duplicate(warp2bat_room) bat18 WARPNPC,1,1 // Free BG -bat_room,169,220,0 duplicate(warp2bat_room) bat19 45,1,1 -bat_room,169,211,0 duplicate(warp2bat_room) bat20 45,1,1 +bat_room,169,220,0 duplicate(warp2bat_room) bat19 WARPNPC,1,1 +bat_room,169,211,0 duplicate(warp2bat_room) bat20 WARPNPC,1,1 // Free BG -bat_room,197,81,0 duplicate(warp2bat_room) bat21 45,1,1 -bat_room,197,90,0 duplicate(warp2bat_room) bat22 45,1,1 +bat_room,197,81,0 duplicate(warp2bat_room) bat21 WARPNPC,1,1 +bat_room,197,90,0 duplicate(warp2bat_room) bat22 WARPNPC,1,1 // KvM bat_c03 -bat_room,197,220,0 duplicate(warp2bat_room) bat23 45,1,1 -bat_room,197,211,0 duplicate(warp2bat_room) bat24 45,1,1 +bat_room,197,220,0 duplicate(warp2bat_room) bat23 WARPNPC,1,1 +bat_room,197,211,0 duplicate(warp2bat_room) bat24 WARPNPC,1,1 // Free BG -bat_room,225,81,0 duplicate(warp2bat_room) bat25 45,1,1 -bat_room,225,90,0 duplicate(warp2bat_room) bat26 45,1,1 +bat_room,225,81,0 duplicate(warp2bat_room) bat25 WARPNPC,1,1 +bat_room,225,90,0 duplicate(warp2bat_room) bat26 WARPNPC,1,1 // KvM bat_c02 -bat_room,225,220,0 duplicate(warp2bat_room) bat27 45,1,1 -bat_room,225,211,0 duplicate(warp2bat_room) bat28 45,1,1 +bat_room,225,220,0 duplicate(warp2bat_room) bat27 WARPNPC,1,1 +bat_room,225,211,0 duplicate(warp2bat_room) bat28 WARPNPC,1,1 // Flavius bat_b01 -bat_room,253,81,0 duplicate(warp2bat_room) bat29 45,1,1 -bat_room,253,90,0 duplicate(warp2bat_room) bat30 45,1,1 +bat_room,253,81,0 duplicate(warp2bat_room) bat29 WARPNPC,1,1 +bat_room,253,90,0 duplicate(warp2bat_room) bat30 WARPNPC,1,1 // KvM bat_c01 -bat_room,253,220,0 duplicate(warp2bat_room) bat31 45,1,1 -bat_room,253,211,0 duplicate(warp2bat_room) bat32 45,1,1 +bat_room,253,220,0 duplicate(warp2bat_room) bat31 WARPNPC,1,1 +bat_room,253,211,0 duplicate(warp2bat_room) bat32 WARPNPC,1,1 // Badges Repairman // ********************************************************************* -bat_room,138,144,5 script Repairman#bg 99,{ +bat_room,138,144,5 script Repairman#bg 4W_M_03,{ callfunc "repairmain","Repairman"; end; } @@ -1226,7 +1226,7 @@ bat_room,138,144,5 script Repairman#bg 99,{ // Badges Exchange // ********************************************************************* -bat_room,160,150,3 script Erundek 109,{ +bat_room,160,150,3 script Erundek 4_M_MANAGER,{ mes "[Erundek]"; mes "Welcome, mighty warrior."; mes "What can I do for you today ?"; @@ -1237,7 +1237,7 @@ bat_room,160,150,3 script Erundek 109,{ mes "[Erundek]"; mes "We have many items, so please take a look and purchase deliberately."; close2; - Readbook 11010,1; + readbook 11010,1; end; case 5: mes "[Erundek]"; @@ -1292,12 +1292,12 @@ bat_room,160,150,3 script Erundek 109,{ mes "If you are not sure, check the catalog."; next; - set .@Menu$, ""; - set .@Count, getarraysize(.@Item_DB); - for( set .@i, 0; .@i < .@Count; set .@i, .@i + 1 ) - set .@Menu$, .@Menu$ + getitemname(.@Item_DB[.@i]) + ":"; + set .@menu$, ""; + set .@count, getarraysize(.@Item_DB); + for( set .@i, 0; .@i < .@count; set .@i, .@i + 1 ) + set .@menu$, .@menu$ + getitemname(.@Item_DB[.@i]) + ":"; - set .@Item_ID, .@Item_DB[select(.@Menu$) - 1]; + set .@Item_ID, .@Item_DB[select(.@menu$) - 1]; mes "[Erundek]"; mes "Would you like to exchange ^FF0000" + .@Value + " " + getitemname(.@Badge) + "^000000 for a ^0000FF" + getitemname(.@Item_ID) + "^000000?"; diff --git a/npc/custom/battleground/bg_flavius_01.txt b/npc/custom/battleground/bg_flavius_01.txt index 4bb6fa7be..fd0cf9112 100644 --- a/npc/custom/battleground/bg_flavius_01.txt +++ b/npc/custom/battleground/bg_flavius_01.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,86,227,4 script Registration::Fl1R_Guillaume 418,{ +bat_room,86,227,4 script Registration::Fl1R_Guillaume 4_M_KY_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,85,204,0 script Registration::Fl1R_Croix 414,{ +bat_room,85,204,0 script Registration::Fl1R_Croix 4_M_CRU_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG1::OnCroixJoin",1; @@ -268,7 +268,7 @@ OnReset: // Battleground rewards // ********************************************************************* -bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{ +bat_b01,390,13,5 script Guillaume Vintenar#fl1 4_M_KY_HEAD,{ if( $@FlaviusBG1_Victory ) { if( $@FlaviusBG1_Victory == Bat_Team ) @@ -278,20 +278,18 @@ bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{ mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - set .@Reward, 9; - } - else - { // + set .@reward, 9; + } 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!"; mes "Just take this defeat a lesson, and later you would definitely learn."; close2; - set .@Reward, 3; + set .@reward, 3; } setquest 2070; - getitem 7829, .@Reward; + getitem 7829, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -299,7 +297,7 @@ bat_b01,390,13,5 script Guillaume Vintenar#fl1 419,{ end; } -bat_b01,10,293,5 script Croix Vintenar#fl1 415,{ +bat_b01,10,293,5 script Croix Vintenar#fl1 4_M_CRU_HEAD,{ if( $@FlaviusBG1_Victory ) { if( $@FlaviusBG1_Victory == Bat_Team ) @@ -309,20 +307,18 @@ bat_b01,10,293,5 script Croix Vintenar#fl1 415,{ mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - set .@Reward, 9; - } - else - { // + set .@reward, 9; + } else { mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; close2; - set .@Reward, 3; + set .@reward, 3; } setquest 2070; - getitem 7829, .@Reward; + getitem 7829, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -333,7 +329,7 @@ bat_b01,10,293,5 script Croix Vintenar#fl1 415,{ // Battleground Therapist // ********************************************************************* -bat_b01,390,13,5 script Therapist in battle#fl12 95,{ +bat_b01,390,13,5 script Therapist in battle#fl12 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -341,7 +337,7 @@ bat_b01,390,13,5 script Therapist in battle#fl12 95,{ close; } -bat_b01,10,293,5 script Therapist in battle#fl11 95,{ +bat_b01,10,293,5 script Therapist in battle#fl11 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -352,7 +348,7 @@ bat_b01,10,293,5 script Therapist in battle#fl11 95,{ // Battleground Respawn // ********************************************************************* -bat_b01,390,10,0 script #gfl1_respawn 139,{ +bat_b01,390,10,0 script #gfl1_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -374,7 +370,7 @@ OnTimer25000: end; } -bat_b01,10,290,0 script #cfl1_respawn 139,{ +bat_b01,10,290,0 script #cfl1_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -399,30 +395,30 @@ OnTimer25000: // Flags // ********************************************************************* -bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 973 -bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 973 -bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 973 -bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 973 -bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 973 -bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 973 -bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 973 -bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 973 -bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 973 -bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 973 -bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 973 -bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 973 -bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 973 - -bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 974 -bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 974 -bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 974 -bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 974 -bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 974 -bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 974 -bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 974 -bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 974 -bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 974 -bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 974 -bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 974 -bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 974 -bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 974 +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat1 1_FLAG_LION +bat_b01,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat2 1_FLAG_LION +bat_b01,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat3 1_FLAG_LION +bat_b01,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat4 1_FLAG_LION +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat5 1_FLAG_LION +bat_b01,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat6 1_FLAG_LION +bat_b01,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat7 1_FLAG_LION +bat_b01,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat8 1_FLAG_LION +bat_b01,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat9 1_FLAG_LION +bat_b01,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat19 1_FLAG_LION +bat_b01,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat20 1_FLAG_LION +bat_b01,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat21 1_FLAG_LION +bat_b01,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat22 1_FLAG_LION + +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat1 1_FLAG_EAGLE +bat_b01,96,68,1 duplicate(Croix camp#bat) Croix camp#bat2 1_FLAG_EAGLE +bat_b01,79,81,1 duplicate(Croix camp#bat) Croix camp#bat3 1_FLAG_EAGLE +bat_b01,79,68,1 duplicate(Croix camp#bat) Croix camp#bat4 1_FLAG_EAGLE +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat5 1_FLAG_EAGLE +bat_b01,96,81,1 duplicate(Croix camp#bat) Croix camp#bat6 1_FLAG_EAGLE +bat_b01,59,164,1 duplicate(Croix camp#bat) Croix camp#bat7 1_FLAG_EAGLE +bat_b01,59,137,1 duplicate(Croix camp#bat) Croix camp#bat8 1_FLAG_EAGLE +bat_b01,10,296,1 duplicate(Croix camp#bat) Croix camp#bat9 1_FLAG_EAGLE +bat_b01,110,162,1 duplicate(Croix camp#bat) Croix camp#bat18 1_FLAG_EAGLE +bat_b01,110,137,1 duplicate(Croix camp#bat) Croix camp#bat19 1_FLAG_EAGLE +bat_b01,152,120,1 duplicate(Croix camp#bat) Croix camp#bat20 1_FLAG_EAGLE +bat_b01,158,114,1 duplicate(Croix camp#bat) Croix camp#bat21 1_FLAG_EAGLE diff --git a/npc/custom/battleground/bg_flavius_02.txt b/npc/custom/battleground/bg_flavius_02.txt index 4dc180d14..f7b7756f4 100644 --- a/npc/custom/battleground/bg_flavius_02.txt +++ b/npc/custom/battleground/bg_flavius_02.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,142,227,4 script Registration::Fl2R_Guillaume 418,{ +bat_room,142,227,4 script Registration::Fl2R_Guillaume 4_M_KY_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,142,204,0 script Registration::Fl2R_Croix 414,{ +bat_room,142,204,0 script Registration::Fl2R_Croix 4_M_CRU_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Flavius_BG2::OnCroixJoin",1; @@ -268,7 +268,7 @@ OnReset: // Battleground rewards // ********************************************************************* -bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{ +bat_b02,390,13,5 script Guillaume Vintenar#fl2 4_M_KY_HEAD,{ if( $@FlaviusBG2_Victory ) { if( $@FlaviusBG2_Victory == Bat_Team ) @@ -278,20 +278,18 @@ bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{ mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - set .@Reward, 9; - } - else - { // + set .@reward, 9; + } 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!"; mes "Just take this defeat a lesson, and later you would definitely learn."; close2; - set .@Reward, 3; + set .@reward, 3; } setquest 2070; - getitem 7829, .@Reward; + getitem 7829, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -299,7 +297,7 @@ bat_b02,390,13,5 script Guillaume Vintenar#fl2 419,{ end; } -bat_b02,10,293,5 script Croix Vintenar#fl2 415,{ +bat_b02,10,293,5 script Croix Vintenar#fl2 4_M_CRU_HEAD,{ if( $@FlaviusBG2_Victory ) { if( $@FlaviusBG2_Victory == Bat_Team ) @@ -309,20 +307,18 @@ bat_b02,10,293,5 script Croix Vintenar#fl2 415,{ mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - set .@Reward, 9; - } - else - { // + set .@reward, 9; + } else { mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; mes "This is a Royal gift from Croix, and please don't forget this battle. We can win the next."; close2; - set .@Reward, 3; + set .@reward, 3; } setquest 2070; - getitem 7829, .@Reward; + getitem 7829, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -333,7 +329,7 @@ bat_b02,10,293,5 script Croix Vintenar#fl2 415,{ // Battleground Therapist // ********************************************************************* -bat_b02,390,13,5 script Therapist in battle#fl22 95,{ +bat_b02,390,13,5 script Therapist in battle#fl22 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -341,7 +337,7 @@ bat_b02,390,13,5 script Therapist in battle#fl22 95,{ close; } -bat_b02,10,293,5 script Therapist in battle#fl21 95,{ +bat_b02,10,293,5 script Therapist in battle#fl21 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -352,7 +348,7 @@ bat_b02,10,293,5 script Therapist in battle#fl21 95,{ // Battleground Respawn // ********************************************************************* -bat_b02,390,10,0 script #gfl2_respawn 139,{ +bat_b02,390,10,0 script #gfl2_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -374,7 +370,7 @@ OnTimer25000: end; } -bat_b02,10,290,0 script #cfl2_respawn 139,{ +bat_b02,10,290,0 script #cfl2_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -399,30 +395,30 @@ OnTimer25000: // Flags // ********************************************************************* -bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat32 973 -bat_b02,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat33 973 -bat_b02,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat34 973 -bat_b02,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat35 973 -bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat36 973 -bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat37 973 -bat_b02,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat38 973 -bat_b02,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat39 973 -bat_b02,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat40 973 -bat_b02,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat41 973 -bat_b02,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat42 973 -bat_b02,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat43 973 -bat_b02,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat44 973 - -bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat30 974 -bat_b02,96,68,1 duplicate(Croix camp#bat) Croix camp#bat31 974 -bat_b02,79,81,1 duplicate(Croix camp#bat) Croix camp#bat32 974 -bat_b02,79,68,1 duplicate(Croix camp#bat) Croix camp#bat33 974 -bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat34 974 -bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat35 974 -bat_b02,59,164,1 duplicate(Croix camp#bat) Croix camp#bat36 974 -bat_b02,59,137,1 duplicate(Croix camp#bat) Croix camp#bat37 974 -bat_b02,10,296,1 duplicate(Croix camp#bat) Croix camp#bat38 974 -bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 974 -bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 974 -bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 974 -bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 974 +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat32 1_FLAG_LION +bat_b02,319,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat33 1_FLAG_LION +bat_b02,304,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat34 1_FLAG_LION +bat_b02,319,218,1 duplicate(Guillaume camp#bat) Guillaume camp#bat35 1_FLAG_LION +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat36 1_FLAG_LION +bat_b02,304,231,1 duplicate(Guillaume camp#bat) Guillaume camp#bat37 1_FLAG_LION +bat_b02,335,142,1 duplicate(Guillaume camp#bat) Guillaume camp#bat38 1_FLAG_LION +bat_b02,335,157,1 duplicate(Guillaume camp#bat) Guillaume camp#bat39 1_FLAG_LION +bat_b02,390,16,1 duplicate(Guillaume camp#bat) Guillaume camp#bat40 1_FLAG_LION +bat_b02,292,163,1 duplicate(Guillaume camp#bat) Guillaume camp#bat41 1_FLAG_LION +bat_b02,292,136,1 duplicate(Guillaume camp#bat) Guillaume camp#bat42 1_FLAG_LION +bat_b02,241,185,1 duplicate(Guillaume camp#bat) Guillaume camp#bat43 1_FLAG_LION +bat_b02,247,179,1 duplicate(Guillaume camp#bat) Guillaume camp#bat44 1_FLAG_LION + +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat30 1_FLAG_EAGLE +bat_b02,96,68,1 duplicate(Croix camp#bat) Croix camp#bat31 1_FLAG_EAGLE +bat_b02,79,81,1 duplicate(Croix camp#bat) Croix camp#bat32 1_FLAG_EAGLE +bat_b02,79,68,1 duplicate(Croix camp#bat) Croix camp#bat33 1_FLAG_EAGLE +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat34 1_FLAG_EAGLE +bat_b02,96,81,1 duplicate(Croix camp#bat) Croix camp#bat35 1_FLAG_EAGLE +bat_b02,59,164,1 duplicate(Croix camp#bat) Croix camp#bat36 1_FLAG_EAGLE +bat_b02,59,137,1 duplicate(Croix camp#bat) Croix camp#bat37 1_FLAG_EAGLE +bat_b02,10,296,1 duplicate(Croix camp#bat) Croix camp#bat38 1_FLAG_EAGLE +bat_b02,110,162,1 duplicate(Croix camp#bat) Croix camp#bat39 1_FLAG_EAGLE +bat_b02,110,137,1 duplicate(Croix camp#bat) Croix camp#bat40 1_FLAG_EAGLE +bat_b02,152,120,1 duplicate(Croix camp#bat) Croix camp#bat41 1_FLAG_EAGLE +bat_b02,158,114,1 duplicate(Croix camp#bat) Croix camp#bat42 1_FLAG_EAGLE diff --git a/npc/custom/battleground/bg_kvm01.txt b/npc/custom/battleground/bg_kvm01.txt index 36c758f37..aa12759b9 100644 --- a/npc/custom/battleground/bg_kvm01.txt +++ b/npc/custom/battleground/bg_kvm01.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,253,227,4 script Registration::KvM01R_Guillaume 418,{ // KvM Guillaume +bat_room,253,227,4 script Registration::KvM01R_Guillaume 4_M_KY_KNT,{ // KvM Guillaume end; OnInit: @@ -17,7 +17,7 @@ OnEnterBG: end; } -bat_room,253,204,0 script Registration::KvM01R_Croix 414,{ // KvM Croix +bat_room,253,204,0 script Registration::KvM01R_Croix 4_M_CRU_KNT,{ // KvM Croix end; OnInit: @@ -32,7 +32,7 @@ OnEnterBG: // Light Effects // ********************************************************************* -bat_c01,54,123,0 script #bat_c01a 111,{ +bat_c01,54,123,0 script #bat_c01a HIDDEN_NPC,{ end; OnKvM01LightA: misceffect 54; end; @@ -40,11 +40,11 @@ OnKvM01LightB: misceffect 55; end; OnKvM01LightC: misceffect 56; end; } -bat_c01,56,125,0 duplicate(#bat_c01a) #bat_c01b 111 -bat_c01,58,127,0 duplicate(#bat_c01a) #bat_c01c 111 -bat_c01,141,56,0 duplicate(#bat_c01a) #bat_c01d 111 -bat_c01,143,58,0 duplicate(#bat_c01a) #bat_c01e 111 -bat_c01,145,60,0 duplicate(#bat_c01a) #bat_c01f 111 +bat_c01,56,125,0 duplicate(#bat_c01a) #bat_c01b HIDDEN_NPC +bat_c01,58,127,0 duplicate(#bat_c01a) #bat_c01c HIDDEN_NPC +bat_c01,141,56,0 duplicate(#bat_c01a) #bat_c01d HIDDEN_NPC +bat_c01,143,58,0 duplicate(#bat_c01a) #bat_c01e HIDDEN_NPC +bat_c01,145,60,0 duplicate(#bat_c01a) #bat_c01f HIDDEN_NPC // Battleground Engine // ********************************************************************* @@ -282,7 +282,7 @@ OnTimer60000: // Battleground Therapist // ********************************************************************* -bat_c01,51,130,5 script Therapist in battle::TherapistKvM01a 95,{ +bat_c01,51,130,5 script Therapist in battle::TherapistKvM01a 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -290,7 +290,7 @@ bat_c01,51,130,5 script Therapist in battle::TherapistKvM01a 95,{ close; } -bat_c01,148,53,1 script Therapist in battle::TherapistKvM01b 95,{ +bat_c01,148,53,1 script Therapist in battle::TherapistKvM01b 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -301,7 +301,7 @@ bat_c01,148,53,1 script Therapist in battle::TherapistKvM01b 95,{ // Battleground rewards // ********************************************************************* -bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 419,{ +bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 4_M_KY_HEAD,{ if( $@KvM01BG_Victory ) { if( $@KvM01BG_Victory == 3 ) @@ -313,16 +313,14 @@ bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 419,{ } else if( $@KvM01BG_Victory == Bat_Team ) { // Victory - set .@Reward, 5; + set .@reward, 5; mes "[Swandery]"; mes "Blessed Guillaume!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "You lost, but you're dedicated to this battle."; mes "This is a reward for your great dedication by Guillaume Marollo!"; @@ -331,7 +329,7 @@ bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 419,{ } setquest 6025; - getitem 7773, .@Reward; + getitem 7773, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -339,7 +337,7 @@ bat_c01,51,130,5 script Guillaume Vintenar::VintenarKvM01a 419,{ end; } -bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 415,{ +bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 4_M_CRU_HEAD,{ if( $@KvM01BG_Victory ) { if( $@KvM01BG_Victory == 3 ) @@ -351,16 +349,14 @@ bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 415,{ } else if( $@KvM01BG_Victory == Bat_Team ) { // Victory - set .@Reward, 5; + set .@reward, 5; mes "[Swandery]"; mes "Blessed Croax!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; @@ -369,7 +365,7 @@ bat_c01,148,53,1 script Croix Vintenar::VintenarKvM01b 415,{ } setquest 6025; - getitem 7773, .@Reward; + getitem 7773, .@reward; bg_leave; warp "bat_room",155,150; end; diff --git a/npc/custom/battleground/bg_kvm02.txt b/npc/custom/battleground/bg_kvm02.txt index 5bfbba328..f2f5f7ca1 100644 --- a/npc/custom/battleground/bg_kvm02.txt +++ b/npc/custom/battleground/bg_kvm02.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,225,227,4 script Registration::KvM02R_Guillaume 418,{ // KvM Guillaume +bat_room,225,227,4 script Registration::KvM02R_Guillaume 4_M_KY_KNT,{ // KvM Guillaume end; OnInit: @@ -17,7 +17,7 @@ OnEnterBG: end; } -bat_room,225,204,0 script Registration::KvM02R_Croix 414,{ // KvM Croix +bat_room,225,204,0 script Registration::KvM02R_Croix 4_M_CRU_KNT,{ // KvM Croix end; OnInit: @@ -32,7 +32,7 @@ OnEnterBG: // Light Effects // ********************************************************************* -bat_c02,54,123,0 script #bat_c02a 111,{ +bat_c02,54,123,0 script #bat_c02a HIDDEN_NPC,{ end; OnKvM02LightA: misceffect 54; end; @@ -40,11 +40,11 @@ OnKvM02LightB: misceffect 55; end; OnKvM02LightC: misceffect 56; end; } -bat_c02,56,125,0 duplicate(#bat_c02a) #bat_c02b 111 -bat_c02,58,127,0 duplicate(#bat_c02a) #bat_c02c 111 -bat_c02,141,56,0 duplicate(#bat_c02a) #bat_c02d 111 -bat_c02,143,58,0 duplicate(#bat_c02a) #bat_c02e 111 -bat_c02,145,60,0 duplicate(#bat_c02a) #bat_c02f 111 +bat_c02,56,125,0 duplicate(#bat_c02a) #bat_c02b HIDDEN_NPC +bat_c02,58,127,0 duplicate(#bat_c02a) #bat_c02c HIDDEN_NPC +bat_c02,141,56,0 duplicate(#bat_c02a) #bat_c02d HIDDEN_NPC +bat_c02,143,58,0 duplicate(#bat_c02a) #bat_c02e HIDDEN_NPC +bat_c02,145,60,0 duplicate(#bat_c02a) #bat_c02f HIDDEN_NPC // Battleground Engine // ********************************************************************* @@ -282,7 +282,7 @@ OnTimer60000: // Battleground Therapist // ********************************************************************* -bat_c02,51,130,5 script Therapist in battle::TherapistKvM02a 95,{ +bat_c02,51,130,5 script Therapist in battle::TherapistKvM02a 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -290,7 +290,7 @@ bat_c02,51,130,5 script Therapist in battle::TherapistKvM02a 95,{ close; } -bat_c02,148,53,1 script Therapist in battle::TherapistKvM02b 95,{ +bat_c02,148,53,1 script Therapist in battle::TherapistKvM02b 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -301,7 +301,7 @@ bat_c02,148,53,1 script Therapist in battle::TherapistKvM02b 95,{ // Battleground rewards // ********************************************************************* -bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 419,{ +bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 4_M_KY_HEAD,{ if( $@KvM02BG_Victory ) { if( $@KvM02BG_Victory == 3 ) @@ -313,16 +313,14 @@ bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 419,{ } else if( $@KvM02BG_Victory == Bat_Team ) { // Victory - set .@Reward, 3; + set .@reward, 3; mes "[Swandery]"; mes "Blessed Guillaume!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "You lost, but you're dedicated to this battle."; mes "This is a reward for your great dedication by Guillaume Marollo!"; @@ -331,7 +329,7 @@ bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 419,{ } setquest 6025; - getitem 7773, .@Reward; + getitem 7773, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -339,7 +337,7 @@ bat_c02,51,130,5 script Guillaume Vintenar::VintenarKvM02a 419,{ end; } -bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 415,{ +bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 4_M_CRU_HEAD,{ if( $@KvM02BG_Victory ) { if( $@KvM02BG_Victory == 3 ) @@ -351,16 +349,14 @@ bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 415,{ } else if( $@KvM02BG_Victory == Bat_Team ) { // Victory - set .@Reward, 3; + set .@reward, 3; mes "[Swandery]"; mes "Blessed Croax!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; @@ -369,7 +365,7 @@ bat_c02,148,53,1 script Croix Vintenar::VintenarKvM02b 415,{ } setquest 6025; - getitem 7773, .@Reward; + getitem 7773, .@reward; bg_leave; warp "bat_room",155,150; end; diff --git a/npc/custom/battleground/bg_kvm03.txt b/npc/custom/battleground/bg_kvm03.txt index 6efa99e4c..f38e81bd1 100644 --- a/npc/custom/battleground/bg_kvm03.txt +++ b/npc/custom/battleground/bg_kvm03.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,197,227,4 script Registration::KvM03R_Guillaume 418,{ // KvM Guillaume +bat_room,197,227,4 script Registration::KvM03R_Guillaume 4_M_KY_KNT,{ // KvM Guillaume end; OnInit: @@ -17,7 +17,7 @@ OnEnterBG: end; } -bat_room,197,204,0 script Registration::KvM03R_Croix 414,{ // KvM Croix +bat_room,197,204,0 script Registration::KvM03R_Croix 4_M_CRU_KNT,{ // KvM Croix end; OnInit: @@ -32,7 +32,7 @@ OnEnterBG: // Light Effects // ********************************************************************* -bat_c03,54,123,0 script #bat_c03a 111,{ +bat_c03,54,123,0 script #bat_c03a HIDDEN_NPC,{ end; OnKvM03LightA: misceffect 54; end; @@ -40,11 +40,11 @@ OnKvM03LightB: misceffect 55; end; OnKvM03LightC: misceffect 56; end; } -bat_c03,56,125,0 duplicate(#bat_c03a) #bat_c03b 111 -bat_c03,58,127,0 duplicate(#bat_c03a) #bat_c03c 111 -bat_c03,141,56,0 duplicate(#bat_c03a) #bat_c03d 111 -bat_c03,143,58,0 duplicate(#bat_c03a) #bat_c03e 111 -bat_c03,145,60,0 duplicate(#bat_c03a) #bat_c03f 111 +bat_c03,56,125,0 duplicate(#bat_c03a) #bat_c03b HIDDEN_NPC +bat_c03,58,127,0 duplicate(#bat_c03a) #bat_c03c HIDDEN_NPC +bat_c03,141,56,0 duplicate(#bat_c03a) #bat_c03d HIDDEN_NPC +bat_c03,143,58,0 duplicate(#bat_c03a) #bat_c03e HIDDEN_NPC +bat_c03,145,60,0 duplicate(#bat_c03a) #bat_c03f HIDDEN_NPC // Battleground Engine // ********************************************************************* @@ -282,7 +282,7 @@ OnTimer60000: // Battleground Therapist // ********************************************************************* -bat_c03,51,130,5 script Therapist in battle::TherapistKvM03a 95,{ +bat_c03,51,130,5 script Therapist in battle::TherapistKvM03a 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -290,7 +290,7 @@ bat_c03,51,130,5 script Therapist in battle::TherapistKvM03a 95,{ close; } -bat_c03,148,53,1 script Therapist in battle::TherapistKvM03b 95,{ +bat_c03,148,53,1 script Therapist in battle::TherapistKvM03b 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -301,7 +301,7 @@ bat_c03,148,53,1 script Therapist in battle::TherapistKvM03b 95,{ // Battleground rewards // ********************************************************************* -bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 419,{ +bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 4_M_KY_HEAD,{ if( $@KvM03BG_Victory ) { if( $@KvM03BG_Victory == 3 ) @@ -313,16 +313,14 @@ bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 419,{ } else if( $@KvM03BG_Victory == Bat_Team ) { // Victory - set .@Reward, 1; + set .@reward, 1; mes "[Swandery]"; mes "Blessed Guillaume!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 0; + } else { + set .@reward, 0; mes "[Swandery]"; mes "You lost, but you're dedicated to this battle."; mes "This is a reward for your great dedication by Guillaume Marollo!"; @@ -331,7 +329,7 @@ bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 419,{ } setquest 6025; - getitem 7773, .@Reward; + getitem 7773, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -339,7 +337,7 @@ bat_c03,51,130,5 script Guillaume Vintenar::VintenarKvM03a 419,{ end; } -bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 415,{ +bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 4_M_CRU_HEAD,{ if( $@KvM03BG_Victory ) { if( $@KvM03BG_Victory == 3 ) @@ -351,16 +349,14 @@ bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 415,{ } else if( $@KvM03BG_Victory == Bat_Team ) { // Victory - set .@Reward, 1; + set .@reward, 1; mes "[Swandery]"; mes "Blessed Croax!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 0; + } else { + set .@reward, 0; mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; @@ -369,7 +365,7 @@ bat_c03,148,53,1 script Croix Vintenar::VintenarKvM03b 415,{ } setquest 6025; - getitem 7773, .@Reward; + getitem 7773, .@reward; bg_leave; warp "bat_room",155,150; end; diff --git a/npc/custom/battleground/bg_tierra_01.txt b/npc/custom/battleground/bg_tierra_01.txt index 4c65d0462..671c2d929 100644 --- a/npc/custom/battleground/bg_tierra_01.txt +++ b/npc/custom/battleground/bg_tierra_01.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,58,227,4 script Registration::TV1R_Guillaume 418,{ +bat_room,58,227,4 script Registration::TV1R_Guillaume 4_M_KY_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,58,204,0 script Registration::TV1R_Croix 414,{ +bat_room,58,204,0 script Registration::TV1R_Croix 4_M_CRU_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG1::OnCroixJoin",1; @@ -241,23 +241,23 @@ OnReset: // Other Flags // ********************************************************************* -bat_a01,148,85,1 duplicate(Croix camp#bat) Croix camp#bat10 974 -bat_a01,155,85,1 duplicate(Croix camp#bat) Croix camp#bat11 974 -bat_a01,357,75,1 duplicate(Croix camp#bat) Croix camp#bat12 974 -bat_a01,348,74,1 duplicate(Croix camp#bat) Croix camp#bat13 974 -bat_a01,199,49,1 duplicate(Croix camp#bat) Croix camp#bat14 974 -bat_a01,168,16,1 duplicate(Croix camp#bat) Croix camp#bat15 974 -bat_a01,138,12,1 duplicate(Croix camp#bat) Croix camp#bat16 974 -bat_a01,108,35,1 duplicate(Croix camp#bat) Croix camp#bat17 974 -bat_a01,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat10 973 -bat_a01,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat11 973 -bat_a01,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat12 973 -bat_a01,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat13 973 -bat_a01,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat14 973 -bat_a01,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat15 973 -bat_a01,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat16 973 -bat_a01,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat17 973 -bat_a01,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat18 973 +bat_a01,148,85,1 duplicate(Croix camp#bat) Croix camp#bat10 1_FLAG_EAGLE +bat_a01,155,85,1 duplicate(Croix camp#bat) Croix camp#bat11 1_FLAG_EAGLE +bat_a01,357,75,1 duplicate(Croix camp#bat) Croix camp#bat12 1_FLAG_EAGLE +bat_a01,348,74,1 duplicate(Croix camp#bat) Croix camp#bat13 1_FLAG_EAGLE +bat_a01,199,49,1 duplicate(Croix camp#bat) Croix camp#bat14 1_FLAG_EAGLE +bat_a01,168,16,1 duplicate(Croix camp#bat) Croix camp#bat15 1_FLAG_EAGLE +bat_a01,138,12,1 duplicate(Croix camp#bat) Croix camp#bat16 1_FLAG_EAGLE +bat_a01,108,35,1 duplicate(Croix camp#bat) Croix camp#bat17 1_FLAG_EAGLE +bat_a01,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat10 1_FLAG_LION +bat_a01,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat11 1_FLAG_LION +bat_a01,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat12 1_FLAG_LION +bat_a01,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat13 1_FLAG_LION +bat_a01,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat14 1_FLAG_LION +bat_a01,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat15 1_FLAG_LION +bat_a01,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat16 1_FLAG_LION +bat_a01,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat17 1_FLAG_LION +bat_a01,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat18 1_FLAG_LION // Barricades // ********************************************************************* @@ -317,21 +317,19 @@ OnWall: // Battleground rewards // ********************************************************************* -bat_a01,45,19,3 script Croix Vintenar#tv1 415,{ +bat_a01,45,19,3 script Croix Vintenar#tv1 4_M_CRU_HEAD,{ if( $@TierraBG1_Victory ) { if( $@TierraBG1_Victory == Bat_Team ) { // Victory - set .@Reward, 3; + set .@reward, 3; mes "[Swandery]"; mes "Blessed Croax!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; @@ -340,7 +338,7 @@ bat_a01,45,19,3 script Croix Vintenar#tv1 415,{ } setquest 2069; - getitem 7828, .@Reward; + getitem 7828, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -348,21 +346,19 @@ bat_a01,45,19,3 script Croix Vintenar#tv1 415,{ end; } -bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{ +bat_a01,53,377,3 script Guillaume Vintenar#tv1 4_M_KY_HEAD,{ if( $@TierraBG1_Victory ) { if( $@TierraBG1_Victory == Bat_Team ) { // Victory - set .@Reward, 3; + set .@reward, 3; mes "[Swandery]"; mes "Blessed Guillaume!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "You lost, but you're dedicated to this battle."; mes "This is a reward for your great dedication by Guillaume Marollo!"; @@ -371,7 +367,7 @@ bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{ } setquest 2069; - getitem 7828, .@Reward; + getitem 7828, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -382,14 +378,14 @@ bat_a01,53,377,3 script Guillaume Vintenar#tv1 419,{ // Battleground Therapist // ********************************************************************* -bat_a01,60,216,3 script Ghost#tv13 950,{ +bat_a01,60,216,3 script Ghost#tv13 4_GHOSTRING,{ mes "[Ghost in valley]"; mes "Boo...Boo..."; specialeffect2 312; close; } -bat_a01,53,377,3 script Therapist in battle#tv12 95,{ +bat_a01,53,377,3 script Therapist in battle#tv12 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -397,7 +393,7 @@ bat_a01,53,377,3 script Therapist in battle#tv12 95,{ close; } -bat_a01,45,18,3 script Therapist in battle#tv11 95,{ +bat_a01,45,18,3 script Therapist in battle#tv11 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -408,7 +404,7 @@ bat_a01,45,18,3 script Therapist in battle#tv11 95,{ // Battleground Respawn // ********************************************************************* -bat_a01,57,213,0 script #ntv1_respawn 139,{ +bat_a01,57,213,0 script #ntv1_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -430,7 +426,7 @@ OnTimer20000: end; } -bat_a01,50,374,0 script #gtv1_respawn 139,{ +bat_a01,50,374,0 script #gtv1_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -452,7 +448,7 @@ OnTimer25000: end; } -bat_a01,42,16,0 script #ctv1_respawn 139,{ +bat_a01,42,16,0 script #ctv1_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: diff --git a/npc/custom/battleground/bg_tierra_02.txt b/npc/custom/battleground/bg_tierra_02.txt index 7f72cdb3d..c6cebf581 100644 --- a/npc/custom/battleground/bg_tierra_02.txt +++ b/npc/custom/battleground/bg_tierra_02.txt @@ -5,7 +5,7 @@ // Registration NPC's // ********************************************************************* -bat_room,114,227,4 script Registration::TV2R_Guillaume 418,{ +bat_room,114,227,4 script Registration::TV2R_Guillaume 4_M_KY_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnGuillaumeJoin",1; @@ -15,7 +15,7 @@ OnEnterBG: end; } -bat_room,114,204,0 script Registration::TV2R_Croix 414,{ +bat_room,114,204,0 script Registration::TV2R_Croix 4_M_CRU_KNT,{ end; OnInit: waitingroom "Battle Station 10 Players",10,"Tierra_BG2::OnCroixJoin",1; @@ -241,23 +241,23 @@ OnReset: // Other Flags // ********************************************************************* -bat_a02,148,85,1 duplicate(Croix camp#bat) Croix camp#bat22 974 -bat_a02,155,85,1 duplicate(Croix camp#bat) Croix camp#bat23 974 -bat_a02,357,75,1 duplicate(Croix camp#bat) Croix camp#bat24 974 -bat_a02,348,74,1 duplicate(Croix camp#bat) Croix camp#bat25 974 -bat_a02,199,49,1 duplicate(Croix camp#bat) Croix camp#bat26 974 -bat_a02,168,16,1 duplicate(Croix camp#bat) Croix camp#bat27 974 -bat_a02,138,12,1 duplicate(Croix camp#bat) Croix camp#bat28 974 -bat_a02,108,35,1 duplicate(Croix camp#bat) Croix camp#bat29 974 -bat_a02,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat23 973 -bat_a02,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat24 973 -bat_a02,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat25 973 -bat_a02,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat26 973 -bat_a02,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat27 973 -bat_a02,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat28 973 -bat_a02,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat29 973 -bat_a02,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat30 973 -bat_a02,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat31 973 +bat_a02,148,85,1 duplicate(Croix camp#bat) Croix camp#bat22 1_FLAG_EAGLE +bat_a02,155,85,1 duplicate(Croix camp#bat) Croix camp#bat23 1_FLAG_EAGLE +bat_a02,357,75,1 duplicate(Croix camp#bat) Croix camp#bat24 1_FLAG_EAGLE +bat_a02,348,74,1 duplicate(Croix camp#bat) Croix camp#bat25 1_FLAG_EAGLE +bat_a02,199,49,1 duplicate(Croix camp#bat) Croix camp#bat26 1_FLAG_EAGLE +bat_a02,168,16,1 duplicate(Croix camp#bat) Croix camp#bat27 1_FLAG_EAGLE +bat_a02,138,12,1 duplicate(Croix camp#bat) Croix camp#bat28 1_FLAG_EAGLE +bat_a02,108,35,1 duplicate(Croix camp#bat) Croix camp#bat29 1_FLAG_EAGLE +bat_a02,164,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat23 1_FLAG_LION +bat_a02,157,308,1 duplicate(Guillaume camp#bat) Guillaume camp#bat24 1_FLAG_LION +bat_a02,359,327,1 duplicate(Guillaume camp#bat) Guillaume camp#bat25 1_FLAG_LION +bat_a02,350,326,1 duplicate(Guillaume camp#bat) Guillaume camp#bat26 1_FLAG_LION +bat_a02,209,344,1 duplicate(Guillaume camp#bat) Guillaume camp#bat27 1_FLAG_LION +bat_a02,173,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat28 1_FLAG_LION +bat_a02,150,380,1 duplicate(Guillaume camp#bat) Guillaume camp#bat29 1_FLAG_LION +bat_a02,118,357,1 duplicate(Guillaume camp#bat) Guillaume camp#bat30 1_FLAG_LION +bat_a02,119,336,1 duplicate(Guillaume camp#bat) Guillaume camp#bat31 1_FLAG_LION // Barricades // ********************************************************************* @@ -317,21 +317,19 @@ OnWall: // Battleground rewards // ********************************************************************* -bat_a02,45,19,3 script Croix Vintenar#tv2 415,{ +bat_a02,45,19,3 script Croix Vintenar#tv2 4_M_CRU_HEAD,{ if( $@TierraBG2_Victory ) { if( $@TierraBG2_Victory == Bat_Team ) { // Victory - set .@Reward, 3; + set .@reward, 3; mes "[Swandery]"; mes "Blessed Croax!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "Oh, " + strcharinfo(0) + ". Don't be sad."; mes "Even though we didn't win, we did our best."; @@ -340,7 +338,7 @@ bat_a02,45,19,3 script Croix Vintenar#tv2 415,{ } setquest 2069; - getitem 7828, .@Reward; + getitem 7828, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -348,21 +346,19 @@ bat_a02,45,19,3 script Croix Vintenar#tv2 415,{ end; } -bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{ +bat_a02,53,377,3 script Guillaume Vintenar#tv2 4_M_KY_HEAD,{ if( $@TierraBG2_Victory ) { if( $@TierraBG2_Victory == Bat_Team ) { // Victory - set .@Reward, 3; + set .@reward, 3; mes "[Swandery]"; mes "Blessed Guillaume!!"; mes "Let's enjoy our glorious victory!"; mes "" + strcharinfo(0) + ", its a sign reflecting victory"; close2; - } - else - { // - set .@Reward, 1; + } else { + set .@reward, 1; mes "[Swandery]"; mes "You lost, but you're dedicated to this battle."; mes "This is a reward for your great dedication by Guillaume Marollo!"; @@ -371,7 +367,7 @@ bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{ } setquest 2069; - getitem 7828, .@Reward; + getitem 7828, .@reward; bg_leave; warp "bat_room",155,150; end; @@ -382,14 +378,14 @@ bat_a02,53,377,3 script Guillaume Vintenar#tv2 419,{ // Battleground Therapist // ********************************************************************* -bat_a02,60,216,3 script Ghost#tv23 950,{ +bat_a02,60,216,3 script Ghost#tv23 4_GHOSTRING,{ mes "[Ghost in valley]"; mes "Boo...Boo..."; specialeffect2 312; close; } -bat_a02,53,377,3 script Therapist in battle#tv22 95,{ +bat_a02,53,377,3 script Therapist in battle#tv22 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -397,7 +393,7 @@ bat_a02,53,377,3 script Therapist in battle#tv22 95,{ close; } -bat_a02,45,18,3 script Therapist in battle#tv21 95,{ +bat_a02,45,18,3 script Therapist in battle#tv21 4_F_SISTER,{ mes "[Therapist in battle]"; mes "Just close your eyes, and take a deep breathe."; mes "You can be free from pain."; @@ -408,7 +404,7 @@ bat_a02,45,18,3 script Therapist in battle#tv21 95,{ // Battleground Respawn // ********************************************************************* -bat_a02,57,213,0 script #ntv2_respawn 139,{ +bat_a02,57,213,0 script #ntv2_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -430,7 +426,7 @@ OnTimer20000: end; } -bat_a02,50,374,0 script #gtv2_respawn 139,{ +bat_a02,50,374,0 script #gtv2_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: @@ -452,7 +448,7 @@ OnTimer25000: end; } -bat_a02,42,16,0 script #ctv2_respawn 139,{ +bat_a02,42,16,0 script #ctv2_respawn HIDDEN_WARP_NPC,{ end; OnBGStart: diff --git a/npc/custom/bgqueue/flavius.txt b/npc/custom/bgqueue/flavius.txt new file mode 100644 index 000000000..36e02e86d --- /dev/null +++ b/npc/custom/bgqueue/flavius.txt @@ -0,0 +1,780 @@ +//===== Hercules Script ====================================== +// BattleGround System - Flavius +//===== By: ================================================== +//= L0ne_W0lf +//===== Current Version: ===================================== +//= 1.5b +//===== Description: ========================================= +//= [AEGIS Conversion] +//= Flavius Battleground. +//= - Winning Team: 9 badges +//= - Losing Team: 3 badge +//===== Additional Comments: ================================= +//= 1.0 First Version. +//= 1.1 Fixed pink crystal spawning as blue. [L0ne_W0lf] +//= 1.2 Updated 'waitingroom' to support required zeny/lvl. [Kisuka] +//= 1.3 Removed MaxLvl check in waitingrooms. Replaced setwall with setcell. +//= 1.4 Attempt at implementing BG Queue [Ind/Hercules] +//= 1.5 Attempt at implementing BG Queue team-algorithm [jaBote] +//= 1.5b Adjustments to the team-splitting algorithm [Haruna] +//============================================================ + + +//Tacham, while the script is under testings the original will remain, meaning if you wanna test this you need to disable the other, or they'll conflict. +bat_b01,15,15,3 script start#bat_b01 CLEAR_NPC,{ +OnInit: + mapwarp "bat_b01","bat_room",154,150; + end; + +//$@bg_queue_id is cleared after this event ends +OnPlayerListReady: + + set $@FlaviusBG1_id1, bg_create_team("bat_b01",10,290); + set $@FlaviusBG1_id2, bg_create_team("bat_b01",390,10); + + set $@Croix_QueueBG1, queue(); + set $@Guill_QueueBG1, queue(); + + queueopt($@Guill_QueueBG1,HQO_OnLogout,"start#bat_b01::OnGuillaumeQuit"); + queueopt($@Croix_QueueBG1,HQO_OnLogout,"start#bat_b01::OnCroixQuit"); + + set .@i, 0; + + copyarray .@bg_member[0],$@bg_member[0],$@bg_member_size; + copyarray .@bg_member_group[0],$@bg_member_group[0],$@bg_member_size; + copyarray .@bg_member_type[0],$@bg_member_type[0],$@bg_member_size; + + freeloop(1); + // Counting all participants and determining sizes, condensing .@bg_member_group + set .@nogroupcount, 0; + for (set .@i, 0; .@i < getarraysize(.@bg_member); set .@i, .@i + 1) { + if (.@bg_member_group[.@i] == 0) { // Just count them + set .@nogroupcount, .@nogroupcount + 1; + continue; + } + // check if .@bg_member_group and .@bg_member_type already exists on these groups. + for (set .@j, 0; .@j < getarraysize(.@bg_groups); set .@j, .@j + 1) { // <= since it has to start working even if the array is still blank + if ( (.@bg_member_group[.@i] == .@bg_groups[.@j]) && (.@bg_member_type[.@i] == .@bg_types[.@j]) ) { + set .@bg_count[.@j], .@bg_count[.@j] + 1; + break; + } + // Else keep running the loop until we find there's a group already made or make a new one + } + if (.@j == (getarraysize(.@bg_groups)) ) { // It isn't there, insert a new entry at j + set .@bg_groups[.@j], .@bg_member_group[.@i]; + set .@bg_types[.@j], .@bg_member_type[.@i]; + set .@bg_count[.@j], 1; + } + } + + // Now, sorting the group arrays from amount of population descending! Bubble sort powers, I call upon thee! + // Type doesn't matter here for precedence checks, but also needs to be sorted the same way along with groups + for (set .@i, 0; .@i < getarraysize(.@bg_groups); set .@i, .@i + 1) { + for (set .@j, 0; .@j < (getarraysize(.@bg_groups) - .@i); set .@j, .@j + 1) { + if (.@bg_count[.@j] < .@bg_count[.@j+1]){ + set .@temp1, .@bg_groups[.@j]; + set .@temp2, .@bg_types[.@j]; + set .@temp3, .@bg_count[.@j]; + set .@bg_groups[.@j], .@bg_groups[.@j+1]; + set .@bg_types[.@j], .@bg_types[.@j+1]; + set .@bg_count[.@j], .@bg_count[.@j+1]; + set .@bg_groups[.@j+1], .@temp1; + set .@bg_types[.@j+1], .@temp2; + set .@bg_count[.@j+1], .@temp3; + } + } + } + + // Add the groups to the queues! :D + 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]) ) { + bg_join_team($@FlaviusBG1_id1,.@bg_member[.@j]); + queueadd($@Croix_QueueBG1, .@bg_member[.@j]); + } + } + } + else { + 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]) ) { + bg_join_team($@FlaviusBG1_id2,.@bg_member[.@j]); + queueadd($@Guill_QueueBG1, .@bg_member[.@j]); + } + } + } + } + // Don't forget the people that go on their own! + for (set .@i, 0; .@i <= getarraysize(.@bg_member); set .@i, .@i+1) { + if (.@bg_member_group[.@i] == 0) { // Get alone people only + if (queuesize($@Croix_QueueBG1) <= queuesize($@Guill_QueueBG1)) { + bg_join_team($@FlaviusBG1_id1,.@bg_member[.@i]); + queueadd($@Croix_QueueBG1, .@bg_member[.@i]); + } + else { + bg_join_team($@FlaviusBG1_id2,.@bg_member[.@i]); + queueadd($@Guill_QueueBG1, .@bg_member[.@i]); + } + } + } + freeloop(0); + + set $@FlaviusBG1, 1; + set $@FlaviusBG1_Victory, 0; + set $@Croix_ScoreBG1, 0; + set $@Guill_ScoreBG1, 0; + + bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1; + + donpcevent "OBJ#bat_b01_a::OnKill"; + donpcevent "OBJ#bat_b01_a::OnEnable"; + donpcevent "OBJ#bat_b01_b::OnKill"; + donpcevent "OBJ#bat_b01_b::OnEnable"; + donpcevent "guardian#bat_b01_a::OnKill"; + donpcevent "guardian#bat_b01_b::OnKill"; + donpcevent "guardian#bat_b01_a::OnEnable"; + donpcevent "guardian#bat_b01_b::OnEnable"; + donpcevent "cell#bat_b01_a::OnRed"; + donpcevent "cell#bat_b01_b::OnRed"; + donpcevent "time#bat_b01::OnEnable"; + disablenpc "Guillaume Vintenar#b01_a"; + disablenpc "Croix Vintenar#b01_b"; + disablenpc "Vintenar#bat_b01_aover"; + disablenpc "Vintenar#bat_b01_bover"; + bg_warp $@FlaviusBG1_id1,"bat_b01",87,75; + bg_warp $@FlaviusBG1_id2,"bat_b01",311,224; + + /* after warp */ + queueopt($@Guill_QueueBG1,HQO_OnMapChange,"start#bat_b01::OnGuillaumeQuit"); + queueopt($@Croix_QueueBG1,HQO_OnMapChange,"start#bat_b01::OnCroixQuit"); + + donpcevent "countdown#bat_b01::OnEnable"; + end; + +OnReset: + donpcevent "OBJ#bat_b01_a::OnKill"; + donpcevent "OBJ#bat_b01_a::OnEnable"; + donpcevent "OBJ#bat_b01_b::OnKill"; + donpcevent "OBJ#bat_b01_b::OnEnable"; + donpcevent "guardian#bat_b01_a::OnKill"; + donpcevent "guardian#bat_b01_b::OnKill"; + donpcevent "guardian#bat_b01_a::OnEnable"; + donpcevent "guardian#bat_b01_b::OnEnable"; + donpcevent "cell#bat_b01_a::OnRed"; + donpcevent "cell#bat_b01_b::OnRed"; + donpcevent "time#bat_b01::OnEnable"; + disablenpc "Guillaume Vintenar#b01_a"; + disablenpc "Croix Vintenar#b01_b"; + disablenpc "Vintenar#bat_b01_aover"; + disablenpc "Vintenar#bat_b01_bover"; + bg_warp $@FlaviusBG1_id1,"bat_b01",87,75; + bg_warp $@FlaviusBG1_id2,"bat_b01",311,224; + end; + +OnCroixQuit: + queueremove($@Croix_QueueBG1,getcharid(3)); + callsub L_OnPlayerQuit; + end; + +OnGuillaumeQuit: + queueremove($@Guill_QueueBG1,getcharid(3)); + callsub L_OnPlayerQuit; + end; + +L_OnPlayerQuit: + bg_leave; + setd $@bg_delay_var$,gettimetick(2); + if( queuesize($@Guill_QueueBG1) == 0 || queuesize($@Croix_QueueBG1) == 0 ) /* todo check score and decide a winner if anyone left */ + callsub OnMatchOver; + end; + +OnMatchOver: + if( $@FlaviusBG1_id1 || $@FlaviusBG1_id2 ) { + queuedel($@Croix_QueueBG1); + queuedel($@Guill_QueueBG1); + bg_match_over("Flavius"); + } + if( $@FlaviusBG1_id1 ) { bg_destroy $@FlaviusBG1_id1; set $@FlaviusBG1_id1, 0; } + if( $@FlaviusBG1_id2 ) { bg_destroy $@FlaviusBG1_id2; set $@FlaviusBG1_id2, 0; } + end; +} + +bat_b01,1,1,3 script OBJ#bat_b01_a CLEAR_NPC,{ +OnEnable: + bg_monster $@FlaviusBG1_id1,"bat_b01",61,150,"Pink Crystal",1915,"OBJ#bat_b01_a::OnMyMobDead"; + end; + +OnKill: + killmonster "bat_b01","OBJ#bat_b01_a::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_b01","OBJ#bat_b01_a::OnMyMobDead") < 1) { + mapannounce "bat_b01", "Guillaume's Crystal has been destroyed.",bc_map,"0xFFCE00"; + if ($@Croix_ScoreBG1 > 0) { + set $@FlaviusBG1_Victory,2; + set $@Croix_ScoreBG1,$@Croix_ScoreBG1+1; + enablenpc "Guillaume Vintenar#b01_a"; + enablenpc "Croix Vintenar#b01_b"; + donpcevent "time#bat_b01::OnStop"; + donpcevent "start#bat_b01::OnMatchOver"; + } + else { + set $@Croix_ScoreBG1,1; + donpcevent "time#bat_b01::OnEnable"; + donpcevent "start#bat_b01::OnReset"; + } + bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1; + bg_warp $@FlaviusBG1_id1,"bat_b01",10,290; + bg_warp $@FlaviusBG1_id2,"bat_b01",390,10; + } + end; +} +bat_b01,1,2,3 script OBJ#bat_b01_b CLEAR_NPC,{ +OnEnable: + bg_monster $@FlaviusBG1_id2,"bat_b01",328,150,"Blue Crystal",1914,"OBJ#bat_b01_b::OnMyMobDead"; + end; + +OnKill: + killmonster "bat_b01","OBJ#bat_b01_b::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_b01","OBJ#bat_b01_b::OnMyMobDead") < 1) { + mapannounce "bat_b01", "Croix's Crystal has been destroyed.",bc_map,"0xFFCE00"; + if ($@Guill_ScoreBG1 > 0) { + set $@FlaviusBG1_Victory,1; + set $@Guill_ScoreBG1,$@Guill_ScoreBG1+1; + enablenpc "Guillaume Vintenar#b01_a"; + enablenpc "Croix Vintenar#b01_b"; + donpcevent "time#bat_b01::OnStop"; + donpcevent "start#bat_b01::OnMatchOver"; + } + else { + set $@Guill_ScoreBG1,1; + donpcevent "time#bat_b01::OnEnable"; + donpcevent "start#bat_b01::OnReset"; + } + bg_updatescore "bat_b01",$@Guill_ScoreBG1,$@Croix_ScoreBG1; + bg_warp $@FlaviusBG1_id1,"bat_b01",10,290; + bg_warp $@FlaviusBG1_id2,"bat_b01",390,10; + } + end; +} + +bat_b01,1,3,3 script guardian#bat_b01_a CLEAR_NPC,{ +OnEnable: + bg_monster $@FlaviusBG1_id1,"bat_b01",108,159,"Guillaume Camp Guardian",1949,"guardian#bat_b01_a::OnMyMobDead"; + bg_monster $@FlaviusBG1_id1,"bat_b01",108,141,"Guillaume Camp Guardian",1949,"guardian#bat_b01_a::OnMyMobDead"; + end; + +OnKill: + killmonster "bat_b01","guardian#bat_b01_a::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_b01","guardian#bat_b01_a::OnMyMobDead") < 1) { + donpcevent "cell#bat_b01_a::OnGreen"; + mapannounce "bat_b01", "The Guardian protecting Guillaume's Crystal has been slain.",bc_map,"0xFFCE00"; + } + end; +} + +bat_b01,1,3,3 script guardian#bat_b01_b CLEAR_NPC,{ +OnEnable: + bg_monster $@FlaviusBG1_id2,"bat_b01",307,160,"Croix Camp Guardian",1949,"guardian#bat_b01_b::OnMyMobDead"; + bg_monster $@FlaviusBG1_id2,"bat_b01",307,138,"Croix Camp Guardian",1949,"guardian#bat_b01_b::OnMyMobDead"; + end; + +OnKill: + killmonster "bat_b01","guardian#bat_b01_b::OnMyMobDead"; + end; + +OnMyMobDead: + if (mobcount("bat_b01","guardian#bat_b01_b::OnMyMobDead") < 1) { + donpcevent "cell#bat_b01_b::OnGreen"; + mapannounce "bat_b01", "The Guardian protecting Croix's Crystal has been slain.",bc_map,"0xFFCE00"; + } + end; +} + +bat_b01,1,4,3 script cell#bat_b01_a CLEAR_NPC,{ +OnRed: + setcell "bat_b01",62,149,60,151,cell_basilica,1; + setcell "bat_b01",62,149,60,151,cell_walkable,0; + end; + +OnGreen: + setcell "bat_b01",62,149,60,151,cell_basilica,0; + setcell "bat_b01",62,149,60,151,cell_walkable,1; + end; +} + +bat_b01,1,5,3 script cell#bat_b01_b CLEAR_NPC,{ +OnRed: + setcell "bat_b01",327,151,329,149,cell_basilica,1; + setcell "bat_b01",327,151,329,149,cell_walkable,0; + end; + +OnGreen: + setcell "bat_b01",327,151,329,149,cell_basilica,0; + setcell "bat_b01",327,151,329,149,cell_walkable,1; + end; +} + +bat_b01,1,6,1 script time#bat_b01 CLEAR_NPC,{ +OnEnable: + donpcevent "Battle Therapist#b01_a::OnEnable"; + donpcevent "Battle Therapist#b01_b::OnEnable"; + end; + +OnStop: + donpcevent "Battle Therapist#b01_a::OnStop"; + donpcevent "Battle Therapist#b01_b::OnStop"; + end; +} + +bat_b01,10,294,3 script Battle Therapist#b01_a 4_F_SISTER,{ + specialeffect2 EF_HEAL; + mes "[Battle Therapist]"; + mes "Just close your eyes,"; + mes "and take a deep breath."; + mes "You can be free from pain."; + close; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_b01_rp1_a_warp"; + end; + +OnTimer26000: + disablenpc "bat_b01_rp1_a_warp"; + end; + +OnTimer26500: + stopnpctimer; + donpcevent "Battle Therapist#b01_a::OnEnable"; + end; + +OnEnable: + initnpctimer; + enablenpc "Battle Therapist#b01_a"; + end; + +OnStop: + disablenpc "bat_b01_rp1_a_warp"; + disablenpc "Battle Therapist#b01_a"; + stopnpctimer; + end; +} + +bat_b01,10,290,0 script bat_b01_rp1_a_warp WARPNPC,10,10,{ +OnInit: + disablenpc "bat_b01_rp1_a_warp"; + end; + +OnTouch: + percentheal 100,100; + warp "bat_b01",87,73; + end; +} + +bat_b01,389,14,3 script Battle Therapist#b01_b 4_F_SISTER,{ + specialeffect2 EF_HEAL; + mes "[Battle Therapist]"; + mes "Just close your eyes,"; + mes "and take a deep breath."; + mes "You can be free from pain."; + close; + +OnTimer25000: + specialeffect EF_SANCTUARY; + enablenpc "bat_b01_rp1_b_warp"; + end; + +OnTimer26000: + disablenpc "bat_b01_rp1_b_warp"; + end; + +OnTimer26500: + stopnpctimer; + donpcevent "Battle Therapist#b01_b::OnEnable"; + end; + +OnEnable: + initnpctimer; + enablenpc "Battle Therapist#b01_b"; + end; + +OnStop: + disablenpc "bat_b01_rp1_b_warp"; + disablenpc "Battle Therapist#b01_b"; + stopnpctimer; + end; +} + +bat_b01,389,10,0 script bat_b01_rp1_b_warp WARPNPC,9,9,{ +OnInit: + disablenpc "bat_b01_rp1_a_warp"; + end; + +OnTouch: + percentheal 100,100; + warp "bat_b01",312,225; + end; +} + +bat_b01,87,76,0 script A_CODE#bat_b01 -1,5,5,{ +OnTouch: + if (checkquest(2070) < 0) + setquest 2070; + end; +} + +bat_b01,312,224,0 script B_CODE#bat_b01 -1,5,5,{ +OnTouch: + if (checkquest(2070) < 0) + setquest 2070; + end; +} + +bat_b01,10,294,3 script Guillaume Vintenar#b01_a 4_M_RASWORD,{ + if ($@FlaviusBG1_id1 == getcharid(4)) { + if ($@FlaviusBG1_Victory == 1) { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 8) { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,9; //BF_Badge2 + } + else { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + else { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, next time you will definitely win."; + close2; + getitem 7829,3; //BF_Badge2 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, next time you will definitely win."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + } + bg_leave; + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Guillaume Vintenar#b01_a"; + end; +} + +bat_b01,389,14,3 script Croix Vintenar#b01_b 4_M_RASWORD,{ + if ($@FlaviusBG1_id2 == getcharid(4)) { + if ($@FlaviusBG1_Victory == 2) { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 8) { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,9; //BF_Badge2 + } + else { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + else { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7829,3; //BF_Badge2 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + } + bg_leave; + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Croix Vintenar#b01_b"; + end; +} + +bat_b01,1,5,3 script countdown#bat_b01 CLEAR_NPC,{ +OnInit: + stopnpctimer; + end; + +OnEnable: + stopnpctimer; + initnpctimer; + end; + +OnStop: + stopnpctimer; + end; + +OnTimer7000: + mapannounce "bat_b01", "Guillaume Vintenar Axl Rose : Let's attack to destroy that Crystal!",bc_map,"0xFF9900"; + end; + +OnTimer8000: + mapannounce "bat_b01", "Croix Vintenar Swandery : Even though Guillaume is struggling to win against us, the victory is ours. Let's show them our power.",bc_map,"0xFF99CC"; + end; + +OnTimer1800000: + mapannounce "bat_b01", "Marollo VII : Guillaume Marollo, Croix Marollo! And their followers!",bc_map,"0x99CC00"; + end; + +OnTimer1803000: + mapannounce "bat_b01", "Marollo VII : Both camps are competitive, so it's hard to judge which team is superior.",bc_map,"0x99CC00"; + end; + +OnTimer1808000: + mapannounce "bat_b01", "Marollo VII : This battle of Flavian is such a waste of time. I will decide victory and defeat by your progress.",bc_map,"0x99CC00"; + end; + +OnTimer1822000: + mapannounce "bat_b01", "Marollo VII : If you can't accept the results, try again in another valley battle!",bc_map,"0x99CC00"; + end; + +OnTimer1825000: + mapannounce "bat_b01", "Axl Rose, Swandery : Yes, sir.",bc_map,"0x99CC00"; + end; + +OnTimer1830000: + donpcevent "time#bat_b01::OnStop"; + bg_warp $@FlaviusBG1_id1,"bat_b01",10,290; + bg_warp $@FlaviusBG1_id2,"bat_b01",390,10; + enablenpc "Vintenar#bat_b01_aover"; + enablenpc "Vintenar#bat_b01_bover"; + end; + +OnTimer1900000: + mapwarp "bat_b01","bat_room",154,150; + donpcevent "countdown#bat_b01::OnStop"; + donpcevent "start#bat_b01::OnMatchOver"; + end; +} + +bat_b01,81,83,3 script Guillaume Camp#flag21 1_FLAG_LION,{ end; } +bat_b01,94,83,3 script Guillaume Camp#flag22 1_FLAG_LION,{ end; } +bat_b01,81,66,3 script Guillaume Camp#flag23 1_FLAG_LION,{ end; } +bat_b01,94,66,3 script Guillaume Camp#flag24 1_FLAG_LION,{ end; } +bat_b01,139,142,3 script Guillaume Camp#flag25 1_FLAG_LION,{ end; } +bat_b01,139,158,3 script Guillaume Camp#flag26 1_FLAG_LION,{ end; } +bat_b01,110,161,3 script Guillaume Camp#flag27 1_FLAG_LION,{ end; } +bat_b01,110,137,3 script Guillaume Camp#flag28 1_FLAG_LION,{ end; } +bat_b01,63,135,3 script Guillaume Camp#flag29 1_FLAG_LION,{ end; } +bat_b01,63,165,3 script Guillaume Camp#flag30 1_FLAG_LION,{ end; } +bat_b01,10,296,3 script Guillaume Camp#flag31 1_FLAG_LION,{ end; } + +bat_b01,306,233,3 script Croix Camp#flag21 1_FLAG_EAGLE,{ end; } +bat_b01,317,233,3 script Croix Camp#flag22 1_FLAG_EAGLE,{ end; } +bat_b01,306,216,3 script Croix Camp#flag23 1_FLAG_EAGLE,{ end; } +bat_b01,317,216,3 script Croix Camp#flag24 1_FLAG_EAGLE,{ end; } +bat_b01,257,158,3 script Croix Camp#flag25 1_FLAG_EAGLE,{ end; } +bat_b01,257,141,3 script Croix Camp#flag26 1_FLAG_EAGLE,{ end; } +bat_b01,297,164,3 script Croix Camp#flag27 1_FLAG_EAGLE,{ end; } +bat_b01,297,136,3 script Croix Camp#flag28 1_FLAG_EAGLE,{ end; } +bat_b01,336,161,3 script Croix Camp#flag29 1_FLAG_EAGLE,{ end; } +bat_b01,336,139,3 script Croix Camp#flag30 1_FLAG_EAGLE,{ end; } +bat_b01,389,16,3 script Croix Camp#flag31 1_FLAG_EAGLE,{ end; } + +bat_b01,10,294,3 script Vintenar#bat_b01_aover 4_M_KY_HEAD,{ + set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1; + if ($@FlaviusBG1_id1 == getcharid(4)) { + if (.@A_B_gap > 0) { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 8) { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,9; //BF_Badge2 + } + else { + mes "[Axl Rose]"; + mes "Blessed Guillaume!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + else if (.@A_B_gap == 0) { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, next time you will definitely win."; + close2; + getitem 7829,3; //BF_Badge2 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, next time you will definitely win."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + else { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, next time you will definitely win."; + close2; + getitem 7829,3; //BF_Badge2 + } + else { + mes "[Axl Rose]"; + mes "You lost, but you're dedicated to this battle."; + mes "This is a reward for your great dedication by Guillaume Marollo!"; + mes "Just take this defeat as a lesson, next time you will definitely win."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + } + else { + mes "[Axl Rose]"; + mes "Why are you here, Croix mercenary? I am definitely sure of victory against foolish Croix such as you. Ha!"; + close; + } + bg_leave; + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Vintenar#bat_b01_aover"; + end; +} + +bat_b01,389,14,3 script Vintenar#bat_b01_bover 4_M_CRU_HEAD,{ + set .@A_B_gap,$@Guill_ScoreBG1 - $@Croix_ScoreBG1; + if ($@FlaviusBG1_id2 == getcharid(4)) { + if (.@A_B_gap > 0) { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7829,3; //BF_Badge2 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + else if (.@A_B_gap == 0) { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 2) { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7829,3; //BF_Badge2 + } + else { + mes "[Swandery]"; + mes "Oh, "+strcharinfo(0)+". Don't be sad."; + mes "Even though we didn't win, we did our best."; + mes "This is a Royal gift from Croix, and please don't forget this battle. We will win the next one."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + else { + set .@your_medal,countitem(7829); + set .@medal_gap,500 - .@your_medal; + if (.@medal_gap > 8) { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,9; //BF_Badge2 + } + else { + mes "[Swandery]"; + mes "Blessed Croix!"; + mes "Let's enjoy our glorious victory!"; + mes ""+strcharinfo(0)+", it's a sign reflecting victory."; + close2; + getitem 7829,.@medal_gap; //BF_Badge2 + } + } + } + else { + mes "[Swandery]"; + mes "Why do you come here as a Guillaume? You will be sent to where you should be!"; + close; + } + bg_leave; + warp "bat_room",154,150; + end; + +OnInit: + disablenpc "Vintenar#bat_b01_bover"; + end; +} diff --git a/npc/custom/breeder.txt b/npc/custom/breeder.txt index 2bb3c6274..0222f5b3a 100644 --- a/npc/custom/breeder.txt +++ b/npc/custom/breeder.txt @@ -3,42 +3,54 @@ //===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.1 +//= 1.2 //===== Description: ========================================= //= One-click automatic mount rentals. //= Replaced 'close' with 'end' [Streusel] +//= Fixed 'close' issues. [Joseph] //============================================================ -prontera,124,201,1 script Universal Rental NPC 726,{ +prontera,124,201,1 script Universal Rental NPC 4_F_JOB_BLACKSMITH,{ if (ismounting()) { message strcharinfo(0),"You must first remove your mount."; - end; } - else if ((eaclass()&EAJ_THIRDMASK==EAJ_RANGER) && !countitem(6124)) { + end; + } + else if ((eaclass()&EAJ_THIRDMASK) == EAJ_RANGER && !countitem(6124)) { if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) { if(select(" ~ Falcon: ~ Warg")==1) setfalcon; - else getitem 6124,1; } - else getitem 6124,1; } - else if ((eaclass()&EAJ_THIRDMASK==EAJ_MECHANIC) && !checkcart() && getskilllv("MC_PUSHCART")) { + else getitem 6124,1; + specialeffect2 EF_TEIHIT3; + close; + } + else getitem 6124,1; + } + else if ((eaclass()&EAJ_THIRDMASK) == EAJ_MECHANIC && !checkcart() && getskilllv("MC_PUSHCART")) { if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) { if(select(" ~ Cart: ~ Mado")==1) setcart; - else setmadogear; } - else setcart; } + else setmadogear; + specialeffect2 EF_TEIHIT3; + close; + } + else setcart; + } else if (!checkcart() && getskilllv("MC_PUSHCART")) setcart; else if (!checkfalcon() && getskilllv("HT_FALCON") && !checkoption(Option_Wug) && !checkoption(Option_Wugrider)) setfalcon; else if (!checkriding() && getskilllv("KN_RIDING")) { - if (eaclass()&EAJ_THIRDMASK==EAJ_RUNE_KNIGHT) setdragon; - else setriding; } + if ((eaclass()&EAJ_THIRDMASK) == EAJ_RUNE_KNIGHT) setdragon; + else setriding; + } else if (!checkmadogear() && getskilllv("NC_MADOLICENCE")) setmadogear; else { message strcharinfo(0),"You do not meet requirements to rent."; - end; } + end; + } specialeffect2 EF_TEIHIT3; end; } -//============================================================ +//============================================================ // Old changelog -//============================================================ +//============================================================ //= A Free PecoPeco and Falcon Breeder //= 1.1 FIXED checkriding/cart/falcon funcs [Lupus] //= 1.2 Added Rebirth/Advanced Class support [Mass Zero] diff --git a/npc/custom/card_remover.txt b/npc/custom/card_remover.txt index 45e5e42c8..e3aa2bb5b 100644 --- a/npc/custom/card_remover.txt +++ b/npc/custom/card_remover.txt @@ -4,8 +4,6 @@ //= TyrNemesis^ //===== Current Version: ===================================== //= 1.2a -//===== Compatible With: ===================================== -//= Hercules Git //===== Description: ========================================= //= Removes cards from equipped items. //===== Additional Comments: ================================= @@ -14,7 +12,7 @@ //= 1.2a Added 'disable_items' command. [Euphy] //============================================================ -prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ +prt_in,28,73,4 script Wise Old Woman#eAcustom 1_F_ORIENT_04,{ set .zenycost,200000; // Set base cost in zeny of the card remover services set .percardcost,25000; // set cost per card of the card remover services @@ -52,7 +50,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ } 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"; @@ -69,7 +67,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ mes "Very well. Return at once if you seek my services."; close; } - if((zeny < (.zenycost+(.@cardcount * .percardcost))) || (countitem(1000) < 1) || (countitem(715) < 1)) { + if((Zeny < (.zenycost+(.@cardcount * .percardcost))) || (countitem(1000) < 1) || (countitem(715) < 1)) { mes "[Wise Old Woman]"; mes "You do not have all the items I require to work my magic, child. Come again when you do."; close; @@ -90,7 +88,7 @@ prt_in,28,73,4 script Wise Old Woman#eAcustom 78,{ } mes "[Wise Old Woman]"; mes "Very well. I shall begin."; - set zeny,zeny - (.zenycost+(.@cardcount * .percardcost)); + Zeny -= (.zenycost+(.@cardcount * .percardcost)); delitem 1000,1; delitem 715,1; diff --git a/npc/custom/etc/airplane.txt b/npc/custom/etc/airplane.txt index 637d38e61..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; @@ -252,8 +252,8 @@ L_Nope: Notime: mes "^FF0000[Porter]^000000"; - if(sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; - if(sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; + if(Sex==0) mes "Sorry, ma'am, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; + if(Sex==1) mes "Sorry, sir, but the plane currently isn't ported. However, you can view the airplane's hourly itinerary."; next; menu "Yes, please.",Itin,"No thanks.",L_Nope; close; @@ -264,84 +264,84 @@ Itin: callfunc "F_Itin"; } -airport,153,43,5 script Airport Porter 774,{ +airport,153,43,5 script Airport Porter 4_M_TWBOY,{ callfunc "F_Porter",0; } -prt_fild08,206,279,5 script Porter#01 774,{ +prt_fild08,206,279,5 script Porter#01 4_M_TWBOY,{ callfunc "F_Porter",1; } -gef_fild00,50,364,5 script Porter#02 774,{ +gef_fild00,50,364,5 script Porter#02 4_M_TWBOY,{ callfunc "F_Porter",5; } -moc_fild10,163,173,5 script Porter#03 774,{ +moc_fild10,163,173,5 script Porter#03 4_M_TWBOY,{ callfunc "F_Porter",6; } -mjolnir_12,61,380,5 script Porter#04 774,{ +mjolnir_12,61,380,5 script Porter#04 4_M_TWBOY,{ callfunc "F_Porter",3; } -pay_fild08,159,91,5 script Porter#05 774,{ +pay_fild08,159,91,5 script Porter#05 4_M_TWBOY,{ callfunc "F_Porter",2; } -pay_fild03,194,181,5 script Porter#06 774,{ +pay_fild03,194,181,5 script Porter#06 4_M_TWBOY,{ callfunc "F_Porter",4; } -glast_01,196,326,1 script Porter#07 774,{ +glast_01,196,326,1 script Porter#07 4_M_TWBOY,{ callfunc "F_Porter",7; } -umbala,188,98,3 script Porter#08 774,{ +umbala,188,98,3 script Porter#08 4_M_TWBOY,{ callfunc "F_Porter",8; } -comodo,203,75,8 script Porter#09 774,{ +comodo,203,75,8 script Porter#09 4_M_TWBOY,{ callfunc "F_Porter",9; } -amatsu,115,78,8 script Porter#10 774,{ +amatsu,115,78,8 script Porter#10 4_M_TWBOY,{ callfunc "F_Porter",10; } -niflheim,132,242,5 script Porter#11 774,{ +niflheim,132,242,5 script Porter#11 4_M_TWBOY,{ callfunc "F_Porter",11; } -xmas,232,309,5 script Porter#12 774,{ +xmas,232,309,5 script Porter#12 4_M_TWBOY,{ callfunc "F_Porter",12; } -louyang,35,279,8 script Porter#13 774,{ +louyang,35,279,8 script Porter#13 4_M_TWBOY,{ callfunc "F_Porter",13; } -gonryun,82,95,7 script Porter#14 774,{ +gonryun,82,95,7 script Porter#14 4_M_TWBOY,{ callfunc "F_Porter",14; } -yuno,58,195,4 script Porter#15 774,{ +yuno,58,195,4 script Porter#15 4_M_TWBOY,{ callfunc "F_Porter",15; } -moc_fild04,210,326,2 script Porter#16 774,{ +moc_fild04,210,326,2 script Porter#16 4_M_TWBOY,{ callfunc "F_Porter",16; } -jawaii,247,174,7 script Porter#17 774,{ +jawaii,247,174,7 script Porter#17 4_M_TWBOY,{ callfunc "F_Porter",17; } -gef_fild10,159,95,2 script Porter#18 774,{ +gef_fild10,159,95,2 script Porter#18 4_M_TWBOY,{ callfunc "F_Porter",18; } -mjolnir_02,76,364,5 script Porter#19 774,{ +mjolnir_02,76,364,5 script Porter#19 4_M_TWBOY,{ callfunc "F_Porter",19; } -gefenia01,97,22,6 script Porter#20 774,{ +gefenia01,97,22,6 script Porter#20 4_M_TWBOY,{ callfunc "F_Porter",20; } -ayothaya,182,105,5 script Porter#21 774,{ +ayothaya,182,105,5 script Porter#21 4_M_TWBOY,{ callfunc "F_Porter",21; } -lighthalzen,99,241,4 script Porter#22 774,{ +lighthalzen,99,241,4 script Porter#22 4_M_TWBOY,{ callfunc "F_Porter",22; } -jupe_gate,46,18,7 script Porter#23 774,{ +jupe_gate,46,18,7 script Porter#23 4_M_TWBOY,{ callfunc "F_Porter",23; } -airport,141,43,5 script Itinerary Schedule 837,{ +airport,141,43,5 script Itinerary Schedule 2_BULLETIN_BOARD,{ mes "^FF0000[Itinerary]^000000"; callfunc "F_Itin"; } -airplane,102,68,5 script Docker 852,{ +airplane,102,68,5 script Docker 4_M_EIN_SOLDIER,{ if($destination == 250) goto Nowhere; mes "^FF0000[Airplane Attendant]^000000"; if($destination == 250)goto Notime; @@ -363,8 +363,8 @@ Lnope: Notime: mes "^FF0000[Airplane Attendant]^000000"; - if(sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; - if(sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait."; + if(Sex==0) mes "Sorry, ma'am, but the plane currently isn't docked. Please wait."; + if(Sex==1) mes "Sorry, sir, but the plane currently isn't docked. Please wait."; close; Nowhere: diff --git a/npc/custom/etc/bank.txt b/npc/custom/etc/bank.txt index 00ebc66c8..e6e75c9f3 100644 --- a/npc/custom/etc/bank.txt +++ b/npc/custom/etc/bank.txt @@ -1,19 +1,19 @@ //===== Hercules Script ====================================== -//= Banker Script -//===== By: ================================================== +//= Banker Script +//===== By: ================================================== //= Syrus22 (1.0) -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 2.0 -//===== Description: ========================================= +//===== Description: ========================================= //= An account wide Banker to store Zeny -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= Syrus22 - There's an optional transaction fee at the top of //= the script. To use it simply change the first set command //= to set the cost variable to whatever you want the fee to be. //= Version 2.0: Optimized and brought the script up to standard. [Jguy] -//============================================================ +//============================================================ -prontera,132,217,5 script Banker 109,{ +prontera,132,217,5 script Banker 4_M_MANAGER,{ set @cost,500; mes "[Banker]"; mes "Welcome to the First Bank of Prontera. How can I help you today?"; @@ -42,8 +42,8 @@ switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's close; } else { - set Zeny,Zeny - @deposit; - set Zeny,Zeny - @cost; + Zeny -= @deposit; + Zeny -= @cost; set #bankstorage,#bankstorage + @deposit; mes "[Banker]"; mes "Thank you very much... Your zeny is in good hands."; @@ -80,8 +80,8 @@ switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's set #bankstorage,#bankstorage - @cost; set @cost,0; next; - set Zeny,Zeny - @cost; - set Zeny,Zeny + @withdrawl; + Zeny -= @cost; + Zeny += @withdrawl; set #bankstorage,#bankstorage - @withdrawl; mes "[Banker]"; mes "There's your Zeny. Have a good day."; @@ -93,8 +93,8 @@ switch(select("I'd like to make a deposit.:I'd like to make a withdrawl.:What's } } else { - set Zeny,Zeny - @cost; - set Zeny,Zeny + @withdrawl; + Zeny -= @cost; + Zeny += @withdrawl; set #bankstorage,#bankstorage - @withdrawl; mes "[Banker]"; mes "There's your Zeny. Have a good day."; diff --git a/npc/custom/etc/bank_kafra.txt b/npc/custom/etc/bank_kafra.txt index 12f35aff5..ea662499f 100644 --- a/npc/custom/etc/bank_kafra.txt +++ b/npc/custom/etc/bank_kafra.txt @@ -18,7 +18,7 @@ // 1.2a Corrected bad duplicate names. (bugreport:921) [Samuray22] //============================================================ -- script Bank Clerk::bankg 833,{ +- script Bank Clerk::bankg 4_M_ZONDAOYAJI,{ mes"[Maniss]"; mes strcharinfo(0)+", welcome to the 2nd Bank of Prontera!"; @@ -47,8 +47,8 @@ L_NoIncomeToday: if(input(@kafrabank) == 1) goto L_TOO_BIG_AMOUNT; if(@kafrabank<1000) goto L_LESS_1000; - if(@kafrabank>zeny) goto L_NOT_ENOUGH; - set zeny,zeny-@kafrabank; + if(@kafrabank>Zeny) goto L_NOT_ENOUGH; + Zeny -= @kafrabank; set #kafrabank,#kafrabank+@kafrabank; mes"[Maniss]"; mes "You've made a deposit of ^135445" + @kafrabank + "z^000000."; @@ -67,7 +67,7 @@ M_WITHDRAW: if(@kafrabank<1) goto B_EXIT2; if(@kafrabank>#kafrabank) goto L_NOT_ENOUGH; set #kafrabank,#kafrabank-@kafrabank; - set zeny,zeny+@kafrabank; + Zeny += @kafrabank; mes"[Maniss]"; mes "Here is your ^135445" + @kafrabank + "z^000000, put your sign here..."; //we log these zeny operations into the log db @@ -108,7 +108,7 @@ B_EXIT2: close; } -prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 833 -geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 833 -izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 833 -morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 833 +prontera,131,190,1 duplicate(bankg) Bank Clerk#1-1 4_M_ZONDAOYAJI +geffen,125,73,3 duplicate(bankg) Bank Clerk#2-1 4_M_ZONDAOYAJI +izlude,145,107,1 duplicate(bankg) Bank Clerk#3-1 4_M_ZONDAOYAJI +morocc,147,84,7 duplicate(bankg) Bank Clerk#4-1 4_M_ZONDAOYAJI diff --git a/npc/custom/etc/blackjack.txt b/npc/custom/etc/blackjack.txt index 15e74865c..ee1e7904b 100644 --- a/npc/custom/etc/blackjack.txt +++ b/npc/custom/etc/blackjack.txt @@ -12,10 +12,10 @@ //= Currently does not allow for "insurance", or "splitting" //= of pairs. //===== Additional Comments: ================================= -//= +//= //============================================================ -cmd_in02,188,89,1 script Black Jack Dealer 57,{ +cmd_in02,188,89,1 script Black Jack Dealer 1_M_LIBRARYMASTER,{ mes "[Dealer]"; mes "Hello there! Would you like to play a game of Black Jack?"; M_Menu: @@ -233,12 +233,12 @@ sL_Win: mes "[Dealer]"; mes "Congratulations, you've won!"; next; - set Zeny, Zeny + @bet; + Zeny += @bet; goto L_Play; sL_Lose: mes "[Dealer]"; mes "I'm sorry but you've lost."; - set Zeny, Zeny - @bet; + Zeny -= @bet; next; goto L_Play; sL_Push: diff --git a/npc/custom/etc/floating_rates.txt b/npc/custom/etc/floating_rates.txt index f499a4f9d..ff3b6e8fa 100644 --- a/npc/custom/etc/floating_rates.txt +++ b/npc/custom/etc/floating_rates.txt @@ -4,8 +4,6 @@ //= Lupus //===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= It's a simply example of setbattleflag //= This script will change your server rates from 1x to 1.5x every 6 hours diff --git a/npc/custom/etc/lottery.txt b/npc/custom/etc/lottery.txt index 1e35280a4..9d4c4df38 100644 --- a/npc/custom/etc/lottery.txt +++ b/npc/custom/etc/lottery.txt @@ -4,8 +4,6 @@ //= acky //===== Current Version: ===================================== //= 1.2.1a -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Daily lottery draw //===== Additional Comments: ================================= @@ -65,9 +63,9 @@ Pick6: // BROADCASTS DRAW L_Broadcast: - Announce "Lottery: Welcome to tonight's lotto draw!",8; - Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; - Announce "Congratulations to the winners of tonight!",8; + announce "Lottery: Welcome to tonight's lotto draw!",8; + announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; + announce "Congratulations to the winners of tonight!",8; // GENERATES DRAW ID CODE L_GenID: @@ -88,7 +86,7 @@ L_Rigged_Draw: goto L_Broadcast; } -prontera,141,182,5 script Lottery 76,{ +prontera,141,182,5 script Lottery 1_F_ORIENT_02,{ L_Begin: mes "[Lottery]"; mes "Winning Lotto Numbers ("+$LID2+"):"; @@ -108,8 +106,8 @@ L_Buy: mes "The Jackpot is ^FF0000" + $L_Prize_Money + "z^000000."; next; menu "Buy Ticket",-,"Cancel",L_Cancel; - if (zeny < $L_TicketPrice) goto L_NoZeny; - set zeny,zeny-$L_TicketPrice; + if (Zeny < $L_TicketPrice) goto L_NoZeny; + Zeny -= $L_TicketPrice; mes "[Lottery]"; mes "Would you like your numbers hand picked or computer generated?"; next; @@ -294,8 +292,8 @@ LWinBig: mes "You have matched all six numbers!"; mes "Jackpot!"; mes "You've won ^0000FF" + $L_Prize_Money + "z^000000."; - set zeny,zeny+$L_Prize_Money; - Announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8; + Zeny += $L_Prize_Money; + announce "Lottery: " + strcharinfo(0) + " has won the JACKPOT of " + $L_Prize_Money + "z!",8; set #LID,0; close; @@ -304,8 +302,8 @@ LWinSmall: mes "[Lottery]"; mes "You have matched at least 4 numbers!"; mes "You've won ^0000FF" + $L_Prize_Money_Small + "z^000000."; - set zeny,zeny+$L_Prize_Money_Small; - Announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8; + Zeny += $L_Prize_Money_Small; + announce "Lottery: " + strcharinfo(0) + " has won a prize of " + $L_Prize_Money_Small + "z!",8; set #LID,0; close; @@ -375,9 +373,9 @@ GMPick6: // BROADCASTS DRAW L_Broadcast: - Announce "Lottery: Welcome to the special GM's lotto draw!",8; - Announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; - Announce "Congratulations to the winners!",8; + announce "Lottery: Welcome to the special GM's lotto draw!",8; + announce "The numbers are as follows: [" + $LW1 + "] [" + $LW2 + "] [" + $LW3 + "] [" + $LW4 + "] [" + $LW5 + "] [" + $LW6 + "]",8; + announce "Congratulations to the winners!",8; // GENERATES DRAW ID CODE L_GenID: @@ -408,29 +406,29 @@ L_GM_Rig: set $LR5,0; set $LR6,0; GMInput1: - Input $LR1; + input $LR1; if ($LR1 < 1 || $LR1 > 40) goto GMInput1; mes $LR1; GMInput2: - Input $LR2; + input $LR2; if ($LR2 < 1 || $LR2 > 40) goto GMInput2; if ($LR2 == $LR1) goto GMInput2; mes $LR2; GMInput3: - Input $LR3; + input $LR3; if ($LR3 < 1 || $LR3 > 40) goto GMInput3; if ($LR3 == $LR1) goto GMInput3; if ($LR3 == $LR2) goto GMInput3; mes $LR3; GMInput4: - Input $LR4; + input $LR4; if ($LR4 < 1 || $LR4 > 40) goto GMInput4; if ($LR4 == $LR1) goto GMInput4; if ($LR4 == $LR2) goto GMInput4; if ($LR4 == $LR3) goto GMInput4; mes $LR4; GMInput5: - Input $LR5; + input $LR5; if ($LR5 < 1 || $LR5 > 40) goto GMInput5; if ($LR5 == $LR1) goto GMInput5; if ($LR5 == $LR2) goto GMInput5; @@ -438,7 +436,7 @@ GMInput5: if ($LR5 == $LR4) goto GMInput5; mes $LR5; GMInput6: - Input $LR6; + input $LR6; if ($LR6 < 1 || $LR6 > 40) goto GMInput6; if ($LR6 == $LR1) goto GMInput6; if ($LR6 == $LR2) goto GMInput6; diff --git a/npc/custom/etc/marriage.txt b/npc/custom/etc/marriage.txt index 00f44193a..0d25be9d5 100644 --- a/npc/custom/etc/marriage.txt +++ b/npc/custom/etc/marriage.txt @@ -4,8 +4,6 @@ //= AppleGirl, Evera //===== Current Version: ===================================== //= 2.9 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Fully working wedding script for all kind of weddings //===== Additional Comments: ================================= @@ -14,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. @@ -32,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: @@ -54,7 +52,7 @@ OnInit: // $@divorcee id of the partner, who has to accept the divorce and pay. //The Priest - official iRO sprite & in-dialog name (on-map name not confirmed) -prt_church,100,123,4 script Vomars 60,{ +prt_church,100,123,4 script Vomars 1_M_PASTOR,{ set @name$,"Vomars"; function SF_wed_end; @@ -394,19 +392,19 @@ OnTimer55000: //Subfunction: Checks that the groom/bride is still wearing their stuff. function SF_equip_check { - if (sex && getequipid(2) != 7170) { + if (Sex && getequipid(2) != 7170) { mes "["+@name$+"]"; mes "Child, what did you do with your "+getitemname(7170)+"?"; emotion e_dots; return 0; } - if (sex == 0 && getequipid(2) != 2338) { + if (Sex == 0 && getequipid(2) != 2338) { mes "["+@name$+"]"; mes "Child, you are supposed to wear a "+getitemname(2338)+" at all times during the ceremony..."; emotion e_dots; return 0; } - if (sex == 0 && $@wed_veil && getequipid(1) != 2206) { + if (Sex == 0 && $@wed_veil && getequipid(1) != 2206) { mes "["+@name$+"]"; mes "Child, you can't take off your "+getitemname(2206)+" yet...."; emotion e_dots; @@ -435,7 +433,7 @@ OnInit: } //Registration & Status -prt_church,106,99,3 script Happy Marry 67,{ +prt_church,106,99,3 script Happy Marry 1_F_02,{ set @name$,"Marry"; if (getpartnerid() > 0) { mes "["+@name$+"]"; @@ -489,7 +487,7 @@ function SF_Register { mes "Very well, whom would you like to register as?"; next; set @submenu, select("Groom","Bride","Cancel"); - } else if (sex) { //Groom + } else if (Sex) { //Groom mes "["+@name$+"]"; mes "Very well, will you register as the Groom?"; next; @@ -543,13 +541,13 @@ 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."; close; } - if (($wed_groom_progress == 0) && (sex == 1 || $@wed_allow == 1)) { + if (($wed_groom_progress == 0) && (Sex == 1 || $@wed_allow == 1)) { mes "["+@name$+"]"; mes $wed_bride$+" is waiting for the groom to register. Are you the one who came to register as groom?"; next; @@ -558,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."; @@ -571,7 +569,7 @@ function SF_WedProgress { } } - if (($wed_bride_progress == 0) && (sex == 0 || $@wed_allow == 1)) { + if (($wed_bride_progress == 0) && (Sex == 0 || $@wed_allow == 1)) { mes "["+@name$+"]"; mes $wed_groom$+" is waiting for the bride to register. Are you the one who came to register as the bride?"; next; @@ -579,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."; @@ -687,7 +685,7 @@ function SF_TryRegister { emotion e_gasp; close; } - if (sex) + if (Sex) set @item, 7170; else set @item, 2338; @@ -697,7 +695,7 @@ function SF_TryRegister { mes "You should be wearing a "+getitemname(@item)+" if you want to get married."; close; } - if (sex == 0 && $@wed_veil && getequipid(1) != 2206) { + if (Sex == 0 && $@wed_veil && getequipid(1) != 2206) { mes "["+@name$+"]"; mes "Where is your "+getitemname(2206)+"? It's a necessary complement to your dress."; close; @@ -709,27 +707,27 @@ 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; } - set Zeny,Zeny-@cost; - sc_start SC_Wedding,3600000000,1; //Start Wedding Effect (SC_WEDDING) + Zeny -= @cost; + sc_start SC_WEDDING,3600000,1; //Start Wedding Effect (SC_WEDDING) if (@bride) { set $wed_bride_progress,1; set $wed_bride$,strcharinfo(0); - set $wed_bride_sex, sex; + set $wed_bride_sex, Sex; if ($@wedding_effect == 1) //Store account id for effect. set $wedding_effect_id, getcharid(3); } else { set $wed_groom_progress,1; set $wed_groom$,strcharinfo(0); - set $wed_groom_sex, sex; + set $wed_groom_sex, Sex; if ($@wedding_effect == 2) //Store account id for effect. set $wedding_effect_id, getcharid(3); } @@ -811,7 +809,7 @@ function SF_Procedure { } } -prt_church,94,99,4 script Sister Lisa 79,{ +prt_church,94,99,4 script Sister Lisa 1_F_PRIEST,{ set @name$,"Lisa"; function SF_DivorceEnd; @@ -866,7 +864,7 @@ prt_church,94,99,4 script Sister Lisa 79,{ mes "["+@name$+"]"; mes "You should think this through."; close; - } + } mes "["+@name$+"]"; set $@divorcee,getpartnerid(); set $@divorcer$,strcharinfo(0); @@ -879,7 +877,7 @@ prt_church,94,99,4 script Sister Lisa 79,{ 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; @@ -913,7 +911,7 @@ function SF_InProgress { emotion e_swt2; close; } - set Zeny,Zeny-$@wed_divorce_fee; + Zeny -= $@wed_divorce_fee; announce $@divorcer$+" has just divorced "+strcharinfo(0)+"...", 8; mes "["+@name$+"]"; mes "Your divorce has been filed. You are no longer wed."; diff --git a/npc/custom/etc/monster_arena.txt b/npc/custom/etc/monster_arena.txt index 52ffa115b..82f764977 100644 --- a/npc/custom/etc/monster_arena.txt +++ b/npc/custom/etc/monster_arena.txt @@ -4,8 +4,6 @@ //= acky //===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Players train monsters and battle other players. //= Experience can be earned and monsters upgraded. @@ -24,7 +22,7 @@ //============================================================ // Entrance // -prontera,158,193,6 script Monster Arena 702,{ +prontera,158,193,6 script Monster Arena 4_F_GON,{ mes "[Monster Arena]"; mes "Would you like to enter the Monster Arena?"; mes "Currently ^FF0000" + getmapusers("gon_test") + "^000000 players"; @@ -98,7 +96,7 @@ function script monstersummon { } // Referee // -- script monsterreferee 61,{ +- script monsterreferee 1_M_PUBMASTER,{ if (@fighting == 1) end; if (@battle == 1) goto L_Start; end; @@ -195,11 +193,11 @@ L_Exit: mes "Alright"; close; } -gon_test,56,91,6 duplicate(monsterreferee) Referee#01 61 +gon_test,56,91,6 duplicate(monsterreferee) Referee#01 1_M_PUBMASTER // Usher // -gon_test,58,94,6 script Usher 86,{ +gon_test,58,94,6 script Usher 4_M_04,{ set @marena,1; mes "[Usher]"; mes "What would you like to do?"; @@ -276,7 +274,7 @@ L_Cancel: } // Monster Trainer // -gon_test,52,103,6 script Monster Trainer 87,{ +gon_test,52,103,6 script Monster Trainer 4_M_BARBER,{ mes "[Monster Trainer]"; if (#monster != 0) goto L_Mon; @@ -290,8 +288,8 @@ gon_test,52,103,6 script Monster Trainer 87,{ next; menu "Yes",-,"No",L_Exit; - if (zeny < 1000) goto L_NoZeny; - set zeny,zeny-1000; + if (Zeny < 1000) goto L_NoZeny; + Zeny -= 1000; set #monster,10; mes "[Monster Trainer]"; mes "Congratulations!"; @@ -329,7 +327,7 @@ L_Sell: if (@sellexp > #monpoints) goto L_NoExp; set #monpoints,#monpoints-@sellexp; set @sellearn,100*@sellexp; // Price of exp - set zeny,zeny+@sellearn; + Zeny += @sellearn; mes "[Monster Trainer]"; mes "You earned ^0000FF" + @sellearn + "^000000z."; close; @@ -733,7 +731,7 @@ function script illegalkill { } // Healer // -gon_test,55,103,6 script Nurse 90,{ +gon_test,55,103,6 script Nurse 4_F_01,{ if (@battle == 1 || #heal == 0) goto L_NoHeal; if (#heal == 1 && @healing < 100) goto L_Heal; //Total healing required set @fighting,0; @@ -754,14 +752,14 @@ L_NoHeal: } // Warps players // -gon_test,57,86,5 script Summon Pad 1::SummonPad 111,2,2,{ +gon_test,57,86,5 script Summon Pad 1::SummonPad HIDDEN_NPC,2,2,{ end; OnTouch: set @marena,1; warp "gon_test",57,99; } -gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 111,2,2 -gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 +gon_test,43,87,5 duplicate(SummonPad) Summon Pad 2 HIDDEN_NPC,2,2 +gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 HIDDEN_NPC,2,2 @@ -769,7 +767,7 @@ gon_test,72,87,5 duplicate(SummonPad) Summon Pad 3 111,2,2 gon_test mapflag noskill // Duel Arena // -gon_test,58,103,5 script Duel Master#01 92,{ +gon_test,58,103,5 script Duel Master#01 4_F_03,{ if ($@duelist1$ == "") set @duel,0; if ($@monster1 == "") set @duel,0; set @marena,1; @@ -861,7 +859,7 @@ L_NeedHeal: } // Duel Exit // -gon_test,42,8,5 script Duel Master#02 92,{ +gon_test,42,8,5 script Duel Master#02 4_F_03,{ mes "[Duel Master]"; mes "Would you like to return?"; menu "Yes",L_Leave,"No",-; @@ -893,5 +891,5 @@ L_Leave2: goto L_Leave3; } -gon_test,49,5,5 duplicate(SummonPad) Summon Pad 4 111,2,2 -gon_test,55,8,6 duplicate(monsterreferee) Referee#02 61 +gon_test,49,5,5 duplicate(SummonPad) Summon Pad 4 HIDDEN_NPC,2,2 +gon_test,55,8,6 duplicate(monsterreferee) Referee#02 1_M_PUBMASTER diff --git a/npc/custom/etc/morroc_raceway.txt b/npc/custom/etc/morroc_raceway.txt index 34614538a..48ee8e47e 100644 --- a/npc/custom/etc/morroc_raceway.txt +++ b/npc/custom/etc/morroc_raceway.txt @@ -4,8 +4,6 @@ //= acky //===== Current Version: ===================================== //= 1.3 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Lets players race around Morroc (pvp_y_1-5) //===== Additional Comments: ================================= @@ -21,7 +19,7 @@ //============================================================ //Warps you into race way -morocc,166,105,6 script Race Girl#01 116,{ +morocc,166,105,6 script Race Girl#01 4_F_KAFRA2,{ mes "[Race Girl]"; mes "Would you like to visit ^0000FFMorroc Raceway^000000?"; next; @@ -35,7 +33,7 @@ L_Warp: } //Warps you out of raceway -pvp_y_1-5,169,265,5 script Race Girl#02 116,{ +pvp_y_1-5,169,265,5 script Race Girl#02 4_F_KAFRA2,{ mes "[Race Girl]"; mes "Welcome to Morroc Raceway!"; next; @@ -58,7 +56,7 @@ L_Cancel: } //Counts down and starts race -pvp_y_1-5,145,269,5 script Starter 733,{ +pvp_y_1-5,145,269,5 script Starter 4_M_JOB_KNIGHT1,{ if ($@race != 0) goto L_Started; if ($@counting != 0) goto L_Started; if ($@racecount == 1) goto L_Started; @@ -112,7 +110,7 @@ OnInit: } //Checkpoint 1 -pvp_y_1-5,144,262,5 script Check Point 1 111,0,5,{ +pvp_y_1-5,144,262,5 script Check Point 1 HIDDEN_NPC,0,5,{ end; OnTouch: if (@raceid != $@raceid) goto L_Started; @@ -130,7 +128,7 @@ L_Finished: } //Checkpoint 2 -pvp_y_1-5,73,247,5 script Check Point 2 111,6,6,{ +pvp_y_1-5,73,247,5 script Check Point 2 HIDDEN_NPC,6,6,{ end; OnTouch: if (@race != 1) goto L_Miss; @@ -143,7 +141,7 @@ L_Miss: } //Checkpoint 3 -pvp_y_1-5,77,44,5 script Check Point 3 111,6,6,{ +pvp_y_1-5,77,44,5 script Check Point 3 HIDDEN_NPC,6,6,{ end; OnTouch: if (@race != 2) goto L_Miss; @@ -156,7 +154,7 @@ L_Miss: } //Checkpoint 3 -pvp_y_1-5,249,60,5 script Check Point 4 111,6,6,{ +pvp_y_1-5,249,60,5 script Check Point 4 HIDDEN_NPC,6,6,{ end; OnTouch: if (@race != 3) goto L_Miss; @@ -169,7 +167,7 @@ L_Miss: } //Checkpoint 4 -pvp_y_1-5,255,256,5 script Check Point 5 111,6,6,{ +pvp_y_1-5,255,256,5 script Check Point 5 HIDDEN_NPC,6,6,{ end; OnTouch: if (@race != 4) goto L_Miss; @@ -182,7 +180,7 @@ L_Miss: } //Finish Line -pvp_y_1-5,174,244,5 script Finish Line 111,6,6,{ +pvp_y_1-5,174,244,5 script Finish Line HIDDEN_NPC,6,6,{ end; OnTouch: if (@raceid != $@raceid) goto L_WrongRace; @@ -200,39 +198,39 @@ L_WrongRace: } //Check Point Marker Flags -pvp_y_1-5,144,267,4 script Check Point 1#01 722,{ +pvp_y_1-5,144,267,4 script Check Point 1#01 GUILD_FLAG,{ end; } -pvp_y_1-5,144,257,4 script Check Point 1#02 722,{ +pvp_y_1-5,144,257,4 script Check Point 1#02 GUILD_FLAG,{ end; } -pvp_y_1-5,70,252,3 script Check Point 2#01 722,{ +pvp_y_1-5,70,252,3 script Check Point 2#01 GUILD_FLAG,{ end; } -pvp_y_1-5,77,243,3 script Check Point 2#02 722,{ +pvp_y_1-5,77,243,3 script Check Point 2#02 GUILD_FLAG,{ end; } -pvp_y_1-5,81,48,1 script Check Point 3#01 722,{ +pvp_y_1-5,81,48,1 script Check Point 3#01 GUILD_FLAG,{ end; } -pvp_y_1-5,72,40,1 script Check Point 3#02 722,{ +pvp_y_1-5,72,40,1 script Check Point 3#02 GUILD_FLAG,{ end; } -pvp_y_1-5,244,65,7 script Check Point 4#01 722,{ +pvp_y_1-5,244,65,7 script Check Point 4#01 GUILD_FLAG,{ end; } -pvp_y_1-5,252,57,7 script Check Point 4#02 722,{ +pvp_y_1-5,252,57,7 script Check Point 4#02 GUILD_FLAG,{ end; } -pvp_y_1-5,259,260,5 script Check Point 5#01 722,{ +pvp_y_1-5,259,260,5 script Check Point 5#01 GUILD_FLAG,{ end; } -pvp_y_1-5,251,252,5 script Check Point 5#02 722,{ +pvp_y_1-5,251,252,5 script Check Point 5#02 GUILD_FLAG,{ end; } -pvp_y_1-5,174,249,4 script Finish Line#01 722,{ +pvp_y_1-5,174,249,4 script Finish Line#01 GUILD_FLAG,{ end; } -pvp_y_1-5,174,238,4 script Finish Line#02 722,{ +pvp_y_1-5,174,238,4 script Finish Line#02 GUILD_FLAG,{ end; } diff --git a/npc/custom/etc/mvp_arena.txt b/npc/custom/etc/mvp_arena.txt index d95ed7621..3a1249274 100644 --- a/npc/custom/etc/mvp_arena.txt +++ b/npc/custom/etc/mvp_arena.txt @@ -4,8 +4,6 @@ //= Darkchild //===== Current Version: ===================================== //= 1.4 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Rooms containing 16 different MVPs //===== Additional Comments: ================================= @@ -17,7 +15,7 @@ //============================================================ // Entrance -prontera,154,197,3 script MVP Warper 768,{ +prontera,154,197,3 script MVP Warper 8_M_JPNMASTER,{ mes "[ ^0065DFMVP Warper^000000 ]"; mes "Would you like to enter"; mes "the MVP Arena?"; @@ -27,7 +25,7 @@ prontera,154,197,3 script MVP Warper 768,{ } // Information -quiz_00,49,31,4 script MVP Arena Guide 778,{ +quiz_00,49,31,4 script MVP Arena Guide 4_M_TWTEAMAN,{ mes "[ ^0065DFMVP Arena Guide^000000 ]"; mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior."; next; @@ -66,10 +64,10 @@ function script Keeper { warp "pvp_n_"+.@i+"-"+getarg(0),102,102; close; } -quiz_00,56,31,4 script Alpha MVP 770,{ callfunc "Keeper",2; } -quiz_00,58,31,4 script Beta MVP 773,{ callfunc "Keeper",3; } -quiz_00,60,31,4 script Theta MVP 774,{ callfunc "Keeper",4; } -quiz_00,62,31,4 script Epsilon MVP 776,{ callfunc "Keeper",5; } +quiz_00,56,31,4 script Alpha MVP 4_F_TWGIRL,{ callfunc "Keeper",2; } +quiz_00,58,31,4 script Beta MVP 4_F_TWMIDWOMAN,{ callfunc "Keeper",3; } +quiz_00,60,31,4 script Theta MVP 4_M_TWBOY,{ callfunc "Keeper",4; } +quiz_00,62,31,4 script Epsilon MVP 4_M_TWMIDMAN,{ callfunc "Keeper",5; } // Protectors function script Protector { @@ -87,38 +85,38 @@ function script Protector { end; } } -pvp_n_1-2,100,100,4 script MVP-Protector#01 727,{ callfunc "Protector","pvp_n_2-2"; } -pvp_n_2-2,100,100,4 script MVP-Protector#02 727,{ callfunc "Protector","pvp_n_3-2"; } -pvp_n_3-2,100,100,4 script MVP-Protector#03 727,{ callfunc "Protector","pvp_n_4-2"; } -pvp_n_4-2,100,100,4 script MVP-Protector#04 727,{ callfunc "Protector","pvp_n_5-2"; } -pvp_n_5-2,100,100,4 script MVP-Protector#05 727,{ callfunc "Protector","pvp_n_6-2"; } -pvp_n_6-2,100,100,4 script MVP-Protector#06 727,{ callfunc "Protector","pvp_n_7-2"; } -pvp_n_7-2,100,100,4 script MVP-Protector#07 727,{ callfunc "Protector","pvp_n_8-2"; } -pvp_n_8-2,100,100,4 script MVP-Protector#08 727,{ callfunc "Protector",""; } -pvp_n_1-3,100,100,4 script MVP-Protector#09 727,{ callfunc "Protector","pvp_n_2-3"; } -pvp_n_2-3,100,100,4 script MVP-Protector#10 727,{ callfunc "Protector","pvp_n_3-3"; } -pvp_n_3-3,100,100,4 script MVP-Protector#11 727,{ callfunc "Protector","pvp_n_4-3"; } -pvp_n_4-3,100,100,4 script MVP-Protector#12 727,{ callfunc "Protector","pvp_n_5-3"; } -pvp_n_5-3,100,100,4 script MVP-Protector#13 727,{ callfunc "Protector","pvp_n_6-3"; } -pvp_n_6-3,100,100,4 script MVP-Protector#14 727,{ callfunc "Protector","pvp_n_7-3"; } -pvp_n_7-3,100,100,4 script MVP-Protector#15 727,{ callfunc "Protector","pvp_n_8-3"; } -pvp_n_8-3,100,100,4 script MVP-Protector#16 727,{ callfunc "Protector",""; } -pvp_n_1-4,100,100,4 script MVP-Protector#17 727,{ callfunc "Protector","pvp_n_2-4"; } -pvp_n_2-4,100,100,4 script MVP-Protector#18 727,{ callfunc "Protector","pvp_n_3-4"; } -pvp_n_3-4,100,100,4 script MVP-Protector#19 727,{ callfunc "Protector","pvp_n_4-4"; } -pvp_n_4-4,100,100,4 script MVP-Protector#20 727,{ callfunc "Protector","pvp_n_5-4"; } -pvp_n_5-4,100,100,4 script MVP-Protector#21 727,{ callfunc "Protector","pvp_n_6-4"; } -pvp_n_6-4,100,100,4 script MVP-Protector#22 727,{ callfunc "Protector","pvp_n_7-4"; } -pvp_n_7-4,100,100,4 script MVP-Protector#23 727,{ callfunc "Protector","pvp_n_8-4"; } -pvp_n_8-4,100,100,4 script MVP-Protector#24 727,{ callfunc "Protector",""; } -pvp_n_1-5,100,100,4 script MVP-Protector#25 727,{ callfunc "Protector","pvp_n_2-5"; } -pvp_n_2-5,100,100,4 script MVP-Protector#26 727,{ callfunc "Protector","pvp_n_3-5"; } -pvp_n_3-5,100,100,4 script MVP-Protector#27 727,{ callfunc "Protector","pvp_n_4-5"; } -pvp_n_4-5,100,100,4 script MVP-Protector#28 727,{ callfunc "Protector","pvp_n_5-5"; } -pvp_n_5-5,100,100,4 script MVP-Protector#29 727,{ callfunc "Protector","pvp_n_6-5"; } -pvp_n_6-5,100,100,4 script MVP-Protector#30 727,{ callfunc "Protector","pvp_n_7-5"; } -pvp_n_7-5,100,100,4 script MVP-Protector#31 727,{ callfunc "Protector","pvp_n_8-5"; } -pvp_n_8-5,100,100,4 script MVP-Protector#32 727,{ callfunc "Protector",""; } +pvp_n_1-2,100,100,4 script MVP-Protector#01 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_2-2"; } +pvp_n_2-2,100,100,4 script MVP-Protector#02 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_3-2"; } +pvp_n_3-2,100,100,4 script MVP-Protector#03 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_4-2"; } +pvp_n_4-2,100,100,4 script MVP-Protector#04 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_5-2"; } +pvp_n_5-2,100,100,4 script MVP-Protector#05 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_6-2"; } +pvp_n_6-2,100,100,4 script MVP-Protector#06 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_7-2"; } +pvp_n_7-2,100,100,4 script MVP-Protector#07 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_8-2"; } +pvp_n_8-2,100,100,4 script MVP-Protector#08 4_F_JOB_HUNTER,{ callfunc "Protector",""; } +pvp_n_1-3,100,100,4 script MVP-Protector#09 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_2-3"; } +pvp_n_2-3,100,100,4 script MVP-Protector#10 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_3-3"; } +pvp_n_3-3,100,100,4 script MVP-Protector#11 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_4-3"; } +pvp_n_4-3,100,100,4 script MVP-Protector#12 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_5-3"; } +pvp_n_5-3,100,100,4 script MVP-Protector#13 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_6-3"; } +pvp_n_6-3,100,100,4 script MVP-Protector#14 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_7-3"; } +pvp_n_7-3,100,100,4 script MVP-Protector#15 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_8-3"; } +pvp_n_8-3,100,100,4 script MVP-Protector#16 4_F_JOB_HUNTER,{ callfunc "Protector",""; } +pvp_n_1-4,100,100,4 script MVP-Protector#17 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_2-4"; } +pvp_n_2-4,100,100,4 script MVP-Protector#18 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_3-4"; } +pvp_n_3-4,100,100,4 script MVP-Protector#19 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_4-4"; } +pvp_n_4-4,100,100,4 script MVP-Protector#20 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_5-4"; } +pvp_n_5-4,100,100,4 script MVP-Protector#21 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_6-4"; } +pvp_n_6-4,100,100,4 script MVP-Protector#22 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_7-4"; } +pvp_n_7-4,100,100,4 script MVP-Protector#23 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_8-4"; } +pvp_n_8-4,100,100,4 script MVP-Protector#24 4_F_JOB_HUNTER,{ callfunc "Protector",""; } +pvp_n_1-5,100,100,4 script MVP-Protector#25 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_2-5"; } +pvp_n_2-5,100,100,4 script MVP-Protector#26 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_3-5"; } +pvp_n_3-5,100,100,4 script MVP-Protector#27 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_4-5"; } +pvp_n_4-5,100,100,4 script MVP-Protector#28 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_5-5"; } +pvp_n_5-5,100,100,4 script MVP-Protector#29 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_6-5"; } +pvp_n_6-5,100,100,4 script MVP-Protector#30 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_7-5"; } +pvp_n_7-5,100,100,4 script MVP-Protector#31 4_F_JOB_HUNTER,{ callfunc "Protector","pvp_n_8-5"; } +pvp_n_8-5,100,100,4 script MVP-Protector#32 4_F_JOB_HUNTER,{ callfunc "Protector",""; } // Alpha pvp_n_1-2,0,0,0,0 monster Eddga 1115,3,60000,66000 diff --git a/npc/custom/etc/penal_servitude.txt b/npc/custom/etc/penal_servitude.txt index 414458cb9..e78833b66 100644 --- a/npc/custom/etc/penal_servitude.txt +++ b/npc/custom/etc/penal_servitude.txt @@ -1,11 +1,9 @@ //===== Hercules Script ====================================== -//= Penal Servitude +//= Penal Servitude //===== By: ================================================== //= Lupus //===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= A simple Penal Servitude Script. //= It could cheer up your prisoners a bit. @@ -16,10 +14,10 @@ // 1.2 Stricted the conditions a bit //============================================================ -sec_pri,36,58,1 script Chief Warder 105,{ +sec_pri,36,58,1 script Chief Warder 8W_SOLDIER,{ mes "[Saddeus]"; emotion 1; - if(sex) { + if(Sex) { mes "Mr. Prisoner #"+BaseLevel+JobLevel+","; } else { mes "Ms. Prisoner #"+BaseLevel+JobLevel+","; @@ -45,7 +43,7 @@ M_PAY: M_PAYCASH: if (@MUSTPAY>Zeny) goto L_NOCASH; - set Zeny,Zeny-@MUSTPAY; + Zeny -= @MUSTPAY; mes "[Saddeus]"; mes "OK, sing here and there."; goto L_RELEASE; @@ -122,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 708,{ +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 840325636..b9bfcf74f 100644 --- a/npc/custom/etc/quest_warper.txt +++ b/npc/custom/etc/quest_warper.txt @@ -4,8 +4,6 @@ //= DZeroX, Darkchild, Neouni //===== Current Version: ===================================== //= 2.3 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Warper that works only after locations are unlocked. //===== Additional Comments: ================================= @@ -96,7 +94,7 @@ function script Q_Warpra { case 10: goto L_GStorage; case 11: default: - goto L_end; + goto L_End; } //=====================GM-Menu=Functions=========================== @@ -322,14 +320,14 @@ L_town: freeloop(0); set @TWMenu,select(.@menu$); - if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex + if (@Tmenuref[@TWMenu-1] == 57005) goto L_End; // 57005='dead' in hex if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0; - set Zeny, Zeny-@pTprice[@Tmenuref[@TWMenu-1]]; + Zeny -= @pTprice[@Tmenuref[@TWMenu-1]]; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@pTprice[@Tmenuref[@TWMenu-1]]/16); warp @pTmap$[@Tmenuref[@TWMenu-1]],@pTXcoords[@Tmenuref[@TWMenu-1]],@pTYcoords[@Tmenuref[@TWMenu-1]]; close2; - set Zeny, Zeny+@pTprice[@Tmenuref[@TWMenu-1]]; + Zeny += @pTprice[@Tmenuref[@TWMenu-1]]; end; //=========================Dungeons================================ @@ -343,7 +341,7 @@ L_dungeon: freeloop(0); set @DWMenu,select(.@menu$); - if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex + if (@Dmenuref[@DWMenu-1] == 57005) goto L_End; // 57005='dead' in hex set @DwarpMenu, (@Dmenuref[@DWMenu-1]); callfunc "QWS_DLarray"; @@ -357,17 +355,17 @@ L_dungeon: freeloop(0); set @DWLMenu,select(.@menu$); - if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex + if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_End; // 57005='dead' in hex set @Darrayref, @DWLmenuref[@DWLMenu-1]; set @warpprice, @pDprice[@Dmenuref[@DWMenu-1]]+(getd(@pDfee$[@Dmenuref[@DWMenu-1]])*(@DDepth[@Darrayref])); if(Zeny<@warpprice) callsub L_Short_on_zeny,1; - set Zeny, Zeny-(@warpprice); + Zeny -= (@warpprice); if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@warpprice/16); warp @DGat$[@Darrayref],@DXcoords[@Darrayref],@DYcoords[@Darrayref]; close2; - set Zeny, Zeny+@pTprice[@Tmenuref[@DWMenu-1]]; + Zeny += @pTprice[@Tmenuref[@DWMenu-1]]; end; //=============================Healing============================= @@ -375,7 +373,7 @@ L_dungeon: L_heal_Full: set @healfee, $QW_HF_PRICE; if(Zeny<@healfee) callsub L_Short_on_zeny,4; - set Zeny, Zeny-@healfee; + Zeny -= @healfee; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@healfee/500); next; mes "[Warpra]"; @@ -389,28 +387,28 @@ L_heal_Part: if (@healchoice == 1) callsub PHeal,1,1; if (@healchoice == 2) callsub PHeal,1,0; if (@healchoice == 3) callsub PHeal,0,1; - goto L_end; + goto L_End; PHeal: next; set @Hp, MaxHp-Hp; set @Sp, MaxSp-Sp; - set @HpPrice, @hp*$QW_HP_H_PRICE; - set @SpPrice, @sp*$QW_HP_S_PRICE; + set @HpPrice, @Hp*$QW_HP_H_PRICE; + set @SpPrice, @Sp*$QW_HP_S_PRICE; mes "[Warpra]"; if(getarg(0) == 1) mes ""+@HpPrice+" Zeny for "+@Hp+" health points"; if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points"; set @total, @HpPrice+@SpPrice; mes "for a total of "+@total+" zeny"; - if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; - - if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; + if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part; + + if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE; if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE; set @healfee, @HpPrice+@SpPrice; if (getarg(0) == 1)&&(getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_Short_Both; if (getarg(0) == 1)&&(Zeny<@healfee) goto Zeny_short_HP; if (getarg(1) == 1)&&(Zeny<@healfee) goto Zeny_short_SP; - set Zeny, Zeny-@healfee; + Zeny -= @healfee; if (getarg(0) == 1)&&(getarg(1) == 1) percentheal 100,100; if (getarg(0) == 1) percentheal 100,0; if (getarg(1) == 1) percentheal 0,100; @@ -421,18 +419,18 @@ Zeny_Short_Both: mes "[Warpra]"; mes "Choose another option, you can afford both."; mes "I can heal as much as you can afford, too."; - if (select("OK","Exit") == 2) goto L_end; + if (select("OK","Exit") == 2) goto L_End; goto PHeal; Zeny_short_HP: mes "[Warpra]"; mes "Do you want me to partly heal your HP?"; - if (select("Yes","No") == 2) goto L_end; + if (select("Yes","No") == 2) goto L_End; set @Hp, Zeny/$QW_HP_H_PRICE; - set @HpPrice, @Hp*$QW_HP_H_PRICE; - if (@Hp == 1) mes "You're not worth the effort."; - if (@Hp == 1) goto L_end; - set Zeny, Zeny-@HpPrice; + set @HpPrice, @Hp*$QW_HP_H_PRICE; + if (@Hp == 1) mes "You're not worth the effort."; + if (@Hp == 1) goto L_End; + Zeny -= @HpPrice; heal @Hp,0; close; end; @@ -440,12 +438,12 @@ Zeny_short_HP: Zeny_short_SP: mes "[Warpra]"; mes "Do you want me to partly heal your SP?"; - if (select("Yes","No") == 2) goto L_end; + if (select("Yes","No") == 2) goto L_End; set @Sp, Zeny/$QW_HP_S_PRICE; - set @SpPrice, @Sp*$QW_HP_S_PRICE; - if (@Sp == 1) mes "You're not worth the effort."; - if (@Sp == 1) goto L_end; - set Zeny, Zeny-@SpPrice; + set @SpPrice, @Sp*$QW_HP_S_PRICE; + if (@Sp == 1) mes "You're not worth the effort."; + if (@Sp == 1) goto L_End; + Zeny -= @SpPrice; heal 0,@Sp; close; end; @@ -459,7 +457,7 @@ L_Storage: if ($QW_S_PRICE == 60)&&(BaseJob == Job_Novice) set @fee, 30; if ($QW_S_PRICE == 60)&&(BaseJob != Job_Novice) set @fee, 60; if(Zeny<@fee) callsub L_Short_on_zeny,2; - set Zeny, Zeny-@fee; + Zeny -= @fee; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + (@fee/5); mes "[Warpra]"; @@ -493,16 +491,16 @@ L_GStorage: end; } if (Zeny<$QW_GS_PRICE) callsub L_Short_on_zeny,3; - set Zeny, Zeny-$QW_GS_PRICE; + Zeny -= $QW_GS_PRICE; if ($QW_KPoint == 1) set RESRVPTS, RESRVPTS + ($QW_GS_PRICE/5); next; mes "[Warpra]"; - mes "Close this window and I will open the ^5533FF" + GetGuildName(@GID) + "^000000 storage."; + mes "Close this window and I will open the ^5533FF" + getguildname(@GID) + "^000000 storage."; close2; guildopenstorage; end; -L_end: +L_End: close; end; @@ -680,7 +678,7 @@ function script QWS_MMarray { // QWS_Make_Town_Menu 0; // Use a free number (last used is 30, Eclage) // // Adding a warpra: -// map,x,y,facing script Warpra#example 113,{ +// map,x,y,facing script Warpra#example 4_F_KAFRA5,{ // callfunc "QWS_Town_Warpra",<town number>,"Your Town"; // close; // } @@ -1024,7 +1022,7 @@ menu_item: // QWS_Make_Dungeon_Menu 0; // Use a free number (last used is 28, Kiel Dungeon) // // Adding a warpra: -// map,x,y,facing script Warpra Helper#example 112,{ +// map,x,y,facing script Warpra Helper#example 4_F_KAFRA6,{ // callfunc "QWS_Dungeon_Warpra",<dungeon number>,"Your Dungeon"; // close; // } @@ -1067,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; @@ -1614,79 +1612,79 @@ binget: //============================Warpras============================== - script Warpra#0 -1,{ callfunc "Q_Warpra",1; } -alb2trea,73,101,4 duplicate(Warpra#0) Warpra#1 113 -ama_fild01,178,325,1 duplicate(Warpra#0) Warpra#2 113 -gef_fild10,71,339,4 duplicate(Warpra#0) Warpra#3 113 -izlu2dun,104,82,4 duplicate(Warpra#0) Warpra#4 113 -mjolnir_02,85,363,4 duplicate(Warpra#0) Warpra#5 113 -moc_fild04,207,331,4 duplicate(Warpra#0) Warpra#6 113 -moc_fild19,106,97,4 duplicate(Warpra#0) Warpra#7 113 -moc_ruins,64,166,4 duplicate(Warpra#0) Warpra#8 113 -niflheim,197,192,3 duplicate(Warpra#0) Warpra#9 113 -pay_arche,39,135,4 duplicate(Warpra#0) Warpra#10 113 -prt_fild05,273,215,4 duplicate(Warpra#0) Warpra#11 113 -tur_dun01,148,239,4 duplicate(Warpra#0) Warpra#12 113 -valkyrie,48,35,8 duplicate(Warpra#0) Warpra#13 113 -yuno_fild03,37,135,4 duplicate(Warpra#0) Warpra#14 113 - -alberta,32,240,4 script Warpra#15 113,{ callfunc "QWS_Town_Warpra",1,"Alberta Town"; close; } -aldebaran,146,118,4 script Warpra#16 113,{ callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; close; } -ayothaya,216,171,5 script Warpra#17 113,{ callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; close; } -amatsu,193,81,1 script Warpra#18 113,{ callfunc "QWS_Town_Warpra",3,"Amatsu Town"; close; } -comodo,195,158,4 script Warpra#19 113,{ callfunc "QWS_Town_Warpra",5,"Comodo Town"; close; } -einbroch,229,196,5 script Warpra#20 113,{ callfunc "QWS_Town_Warpra",7,"Einbroch Town"; close; } -einbech,173,131,5 script Warpra#21 113,{ callfunc "QWS_Town_Warpra",6,"Einbech Town"; close; } -geffen,116,66,4 script Warpra#22 113,{ callfunc "QWS_Town_Warpra",8,"Geffen Town"; close; } -gonryun,152,130,4 script Warpra#23 113,{ callfunc "QWS_Town_Warpra",9,"Gonryun Town"; close; } -hugel,90,127,5 script Warpra#24 113,{ callfunc "QWS_Town_Warpra",10,"Hugel Town"; close; } -jawaii,107,182,5 script Warpra#25 113,{ callfunc "QWS_Town_Warpra",12,"Jawaii Town"; close; } -izlude,132,116,4 script Warpra#26 113,{ callfunc "QWS_Town_Warpra",11,"Izlude Town"; close; } -lighthalzen,153,100,5 script Warpra#27 113,{ callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; close; } -louyang,211,106,4 script Warpra#28 113,{ callfunc "QWS_Town_Warpra",14,"Louyang Town"; close; } -morocc,157,95,4 script Warpra#29 113,{ callfunc "QWS_Town_Warpra",16,"Morroc Town"; close; } -nif_fild01,319,77,1 script Warpra#30 113,{ callfunc "QWS_Town_Warpra",17,"Niflheim Town"; close; } -payon,183,110,4 script Warpra#31 113,{ callfunc "QWS_Town_Warpra",18,"Payon Town"; close; } -prontera,147,172,5 script Warpra#32 113,{ callfunc "QWS_Town_Warpra",0,"Prontera Town"; close; } -umbala,133,130,4 script Warpra#33 113,{ callfunc "QWS_Town_Warpra",19,"Umbala Town"; close; } -xmas,151,136,4 script Warpra#34 113,{ callfunc "QWS_Town_Warpra",15,"Lutie Town"; close; } -yuno,138,162,4 script Warpra#35 113,{ callfunc "QWS_Town_Warpra",20,"Yuno Town"; close; } -brasilis,201,222,4 script Warpra#36 113,{ callfunc "QWS_Town_Warpra",21,"Brasilis Town"; close; } -dicastes01,194,194,6 script Warpra#37 113,{ callfunc "QWS_Town_Warpra",22,"El Dicastes Town"; close; } -manuk,262,177,4 script Warpra#38 113,{ callfunc "QWS_Town_Warpra",23,"Manuk Town"; close; } -mora,110,100,4 script Warpra#39 113,{ callfunc "QWS_Town_Warpra",24,"Mora Town"; close; } -moscovia,216,196,6 script Warpra#40 113,{ callfunc "QWS_Town_Warpra",25,"Moscovia Town"; close; } -rachel,135,116,4 script Warpra#41 113,{ callfunc "QWS_Town_Warpra",26,"Rachel Town"; close; } -splendide,205,153,4 script Warpra#42 113,{ callfunc "QWS_Town_Warpra",27,"Splendide Town"; close; } -veins,214,123,4 script Warpra#43 113,{ callfunc "QWS_Town_Warpra",28,"Veins Town"; close; } -dewata,194,178,6 script Warpra#44 113,{ callfunc "QWS_Town_Warpra",29,"Dewata Town"; close; } -eclage,107,37,4 script Warpra#45 113,{ callfunc "QWS_Town_Warpra",30,"Eclage Town"; close; } - -abyss_02,274,266,1 script Warpra Helper#0 112,{ callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; close; } -ama_dun02,192,118,5 script Warpra Helper#1 112,{ callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; close; } -anthell02,170,165,3 script Warpra Helper#2 112,{ callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; close; } -ayo_dun02,258,193,5 script Warpra Helper#3 112,{ callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; close; } -ein_dun02,292,282,1 script Warpra Helper#4 112,{ callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; close; } -iz_dun03,202,47,2 script Warpra Helper#5 112,{ callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; close; } -c_tower3,129,106,4 script Warpra Helper#6 112,{ callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; close; } -mjo_dun02,39,25,4 script Warpra Helper#7 112,{ callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; close; } -prt_sewb2,176,30,3 script Warpra Helper#8 112,{ callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; close; } -gefenia03,137,34,0 script Warpra Helper#9 112,{ callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; close; } -gef_dun02,218,61,2 script Warpra Helper#10 112,{ callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; close; } -glast_01,371,308,3 script Warpra Helper#11 112,{ callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; close; } -gon_dun01,167,273,4 script Warpra Helper#12 112,{ callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; close; } -juperos_02,127,154,5 script Warpra Helper#13 112,{ callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; close; } -kh_dun01,14,224,3 script Warpra Helper#14 112,{ callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; close; } -lhz_dun02,156,151,5 script Warpra Helper#15 112,{ callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; close; } -lou_dun02,168,264,4 script Warpra Helper#16 112,{ callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; close; } -mag_dun02,46,41,3 script Warpra Helper#17 112,{ callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; close; } -odin_tem01,115,148,3 script Warpra Helper#18 112,{ callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; close; } -orcsdun01,185,11,3 script Warpra Helper#19 112,{ callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; close; } -pay_dun03,162,143,3 script Warpra Helper#20 112,{ callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; close; } -moc_pryd02,101,95,3 script Warpra Helper#21 112,{ callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; close; } -in_sphinx2,274,268,1 script Warpra Helper#22 112,{ callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; close; } -tha_t07,111,162,3 script Warpra Helper#23 112,{ callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; close; } -treasure02,104,40,3 script Warpra Helper#24 112,{ callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; close; } -xmas_dun02,124,131,3 script Warpra Helper#25 112,{ callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; close; } -um_dun02,44,28,3 script Warpra Helper#26 112,{ callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; close; } -tur_dun02,162,23,3 script Warpra Helper#27 112,{ callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; close; } -prt_maze02,102,69,4 script Warpra Helper#28 112,{ callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; close; }
\ No newline at end of file +alb2trea,73,101,4 duplicate(Warpra#0) Warpra#1 4_F_KAFRA5 +ama_fild01,178,325,1 duplicate(Warpra#0) Warpra#2 4_F_KAFRA5 +gef_fild10,71,339,4 duplicate(Warpra#0) Warpra#3 4_F_KAFRA5 +izlu2dun,104,82,4 duplicate(Warpra#0) Warpra#4 4_F_KAFRA5 +mjolnir_02,85,363,4 duplicate(Warpra#0) Warpra#5 4_F_KAFRA5 +moc_fild04,207,331,4 duplicate(Warpra#0) Warpra#6 4_F_KAFRA5 +moc_fild19,106,97,4 duplicate(Warpra#0) Warpra#7 4_F_KAFRA5 +moc_ruins,64,166,4 duplicate(Warpra#0) Warpra#8 4_F_KAFRA5 +niflheim,197,192,3 duplicate(Warpra#0) Warpra#9 4_F_KAFRA5 +pay_arche,39,135,4 duplicate(Warpra#0) Warpra#10 4_F_KAFRA5 +prt_fild05,273,215,4 duplicate(Warpra#0) Warpra#11 4_F_KAFRA5 +tur_dun01,148,239,4 duplicate(Warpra#0) Warpra#12 4_F_KAFRA5 +valkyrie,48,35,8 duplicate(Warpra#0) Warpra#13 4_F_KAFRA5 +yuno_fild03,37,135,4 duplicate(Warpra#0) Warpra#14 4_F_KAFRA5 + +alberta,32,240,4 script Warpra#15 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",1,"Alberta Town"; close; } +aldebaran,146,118,4 script Warpra#16 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",2,"Aldebaran Town"; close; } +ayothaya,216,171,5 script Warpra#17 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",4,"Ayotaya Town"; close; } +amatsu,193,81,1 script Warpra#18 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",3,"Amatsu Town"; close; } +comodo,195,158,4 script Warpra#19 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",5,"Comodo Town"; close; } +einbroch,229,196,5 script Warpra#20 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",7,"Einbroch Town"; close; } +einbech,173,131,5 script Warpra#21 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",6,"Einbech Town"; close; } +geffen,116,66,4 script Warpra#22 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",8,"Geffen Town"; close; } +gonryun,152,130,4 script Warpra#23 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",9,"Gonryun Town"; close; } +hugel,90,127,5 script Warpra#24 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",10,"Hugel Town"; close; } +jawaii,107,182,5 script Warpra#25 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",12,"Jawaii Town"; close; } +izlude,132,116,4 script Warpra#26 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",11,"Izlude Town"; close; } +lighthalzen,153,100,5 script Warpra#27 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",13,"Lighthalzen Town"; close; } +louyang,211,106,4 script Warpra#28 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",14,"Louyang Town"; close; } +morocc,157,95,4 script Warpra#29 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",16,"Morroc Town"; close; } +nif_fild01,319,77,1 script Warpra#30 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",17,"Niflheim Town"; close; } +payon,183,110,4 script Warpra#31 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",18,"Payon Town"; close; } +prontera,147,172,5 script Warpra#32 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",0,"Prontera Town"; close; } +umbala,133,130,4 script Warpra#33 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",19,"Umbala Town"; close; } +xmas,151,136,4 script Warpra#34 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",15,"Lutie Town"; close; } +yuno,138,162,4 script Warpra#35 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",20,"Yuno Town"; close; } +brasilis,201,222,4 script Warpra#36 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",21,"Brasilis Town"; close; } +dicastes01,194,194,6 script Warpra#37 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",22,"El Dicastes Town"; close; } +manuk,262,177,4 script Warpra#38 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",23,"Manuk Town"; close; } +mora,110,100,4 script Warpra#39 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",24,"Mora Town"; close; } +moscovia,216,196,6 script Warpra#40 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",25,"Moscovia Town"; close; } +rachel,135,116,4 script Warpra#41 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",26,"Rachel Town"; close; } +splendide,205,153,4 script Warpra#42 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",27,"Splendide Town"; close; } +veins,214,123,4 script Warpra#43 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",28,"Veins Town"; close; } +dewata,194,178,6 script Warpra#44 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",29,"Dewata Town"; close; } +eclage,107,37,4 script Warpra#45 4_F_KAFRA5,{ callfunc "QWS_Town_Warpra",30,"Eclage Town"; close; } + +abyss_02,274,266,1 script Warpra Helper#0 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",0,"Abyss Lake"; close; } +ama_dun02,192,118,5 script Warpra Helper#1 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",1,"Amatsu Dungeon"; close; } +anthell02,170,165,3 script Warpra Helper#2 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",2,"Ant Hell Dungeon"; close; } +ayo_dun02,258,193,5 script Warpra Helper#3 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",3,"Ayotaya Dungeon"; close; } +ein_dun02,292,282,1 script Warpra Helper#4 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",8,"Einbech Dungeon"; close; } +iz_dun03,202,47,2 script Warpra Helper#5 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",4,"Byalan Dungeon"; close; } +c_tower3,129,106,4 script Warpra Helper#6 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",5,"Clock Tower Dungeon"; close; } +mjo_dun02,39,25,4 script Warpra Helper#7 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",6,"Coal Mine Dungeon"; close; } +prt_sewb2,176,30,3 script Warpra Helper#8 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",7,"Culvert Dungeon"; close; } +gefenia03,137,34,0 script Warpra Helper#9 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",9,"Gefenia Dungeon"; close; } +gef_dun02,218,61,2 script Warpra Helper#10 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",10,"Gefen Dungeon"; close; } +glast_01,371,308,3 script Warpra Helper#11 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",11,"Glast Heim Dungeon"; close; } +gon_dun01,167,273,4 script Warpra Helper#12 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",12,"Gonryun Dungeon"; close; } +juperos_02,127,154,5 script Warpra Helper#13 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",14,"Juperos Cave"; close; } +kh_dun01,14,224,3 script Warpra Helper#14 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",28,"Kiel Dungeon"; close; } +lhz_dun02,156,151,5 script Warpra Helper#15 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",15,"Lighthalzen Bio Lab"; close; } +lou_dun02,168,264,4 script Warpra Helper#16 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",16,"Louyang Dungeon"; close; } +mag_dun02,46,41,3 script Warpra Helper#17 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",17,"Magma Dungeon"; close; } +odin_tem01,115,148,3 script Warpra Helper#18 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",18,"Odin Temple"; close; } +orcsdun01,185,11,3 script Warpra Helper#19 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",19,"Orc Dungeon"; close; } +pay_dun03,162,143,3 script Warpra Helper#20 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",20,"Payon Dungeon"; close; } +moc_pryd02,101,95,3 script Warpra Helper#21 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",21,"Pyramides Dungeon"; close; } +in_sphinx2,274,268,1 script Warpra Helper#22 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",22,"Sphinx Dungeon"; close; } +tha_t07,111,162,3 script Warpra Helper#23 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",24,"Thanatos Tower"; close; } +treasure02,104,40,3 script Warpra Helper#24 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",23,"Sunken Ship Dungeon"; close; } +xmas_dun02,124,131,3 script Warpra Helper#25 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",25,"Toy Factory Dungeon"; close; } +um_dun02,44,28,3 script Warpra Helper#26 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",27,"Umbala Dungeon"; close; } +tur_dun02,162,23,3 script Warpra Helper#27 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",26,"Turtle Island Dungeon"; close; } +prt_maze02,102,69,4 script Warpra Helper#28 4_F_KAFRA6,{ callfunc "QWS_Dungeon_Warpra",13,"Hidden Dungeon"; close; } diff --git a/npc/custom/etc/rpsroulette.txt b/npc/custom/etc/rpsroulette.txt index 87048a97b..22123580d 100644 --- a/npc/custom/etc/rpsroulette.txt +++ b/npc/custom/etc/rpsroulette.txt @@ -4,8 +4,6 @@ //= acky //===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Plays a hybrid Russian Roulette Rock Scissors Paper game. //===== Additional Comments: ================================= @@ -13,12 +11,12 @@ //= 1.2 Fixes by Blackthunder and me [Poki#3] //============================================================ -cmd_in02,182,126,2 script Crazy Boris 85,{ +cmd_in02,182,126,2 script Crazy Boris 4_M_03,{ mes "Crazy Boris"; set @counter,1; mes "Hey you! Up for Rock Scissors Roulette?"; next; - menu "Let me play.",PLAY,"Explain the rules.",RULES,"Leave",LEAVE; + menu "Let me play.",PLAY,"Explain the rules.",L_Rules,"Leave",LEAVE; SAME: mes "Draw! Again!"; next; @@ -39,9 +37,9 @@ LOSE: PLAY: mes "Rock... Paper..."; set @opp,rand (1,3); - menu "^0000FFROCK!",ROCK,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; + menu "^0000FFROCK!",L_Rock,"^FF0000SCISSORS!",SCISSORS,"^00FF00PAPER!^000000",PAPER; -ROCK: +L_Rock: if (@lastchoice == 1) set @opp,rand (1,3); if (@opp == 1) emotion 11; if (@opp == 2) emotion 10; @@ -205,7 +203,7 @@ KILL: next; goto PRIZE; -RULES: +L_Rules: mes "Ok here are the rules:"; mes "I have with me a ^FF00006^000000 chamber pistol with ^FF00001^000000 round. First we play ^FF0000Scissors ^00FF00Paper ^0000FFRock^000000. The loser pulls the trigger. The winner is whoever comes out best."; mes "Beat me to win a prize."; diff --git a/npc/custom/etc/shifty_assassin.txt b/npc/custom/etc/shifty_assassin.txt index d0fe41d45..f01a328fb 100644 --- a/npc/custom/etc/shifty_assassin.txt +++ b/npc/custom/etc/shifty_assassin.txt @@ -4,8 +4,6 @@ //= acky //===== Current Version: ===================================== //= 1.1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Players buy ninjas to assassinate other players //===== Additional Comments: ================================= @@ -13,7 +11,7 @@ //= 1.1.2 Updated WoE Check. [Paradox924X] //============================================================ -morocc,148,86,5 script Shifty Assassin 725,{ +morocc,148,86,5 script Shifty Assassin 4_F_JOB_ASSASSIN,{ set $ninja_price,250000; // STARTS THE MENU // @@ -50,14 +48,14 @@ M_Buy: if ($ninja_avail < 1) goto NoNinjas; if ($ninja_avail < @buy) goto NotEnoughNinjas; set @price,@buy*$ninja_price; - if (zeny < @price ) goto NoZeny; + if (Zeny < @price ) goto NoZeny; mes "[Shifty Assassin]"; mes "That will cost you ^0000FF" + @price + " zeny^000000."; next; menu "Continue",-,"Cancel",M_Exit; - set zeny,zeny-@price; + Zeny -= @price; set #ninjas,#ninjas+@buy; set $ninja_avail,$ninja_avail-@buy; diff --git a/npc/custom/etc/stock_market.txt b/npc/custom/etc/stock_market.txt index 26d368cdf..060228317 100644 --- a/npc/custom/etc/stock_market.txt +++ b/npc/custom/etc/stock_market.txt @@ -4,8 +4,6 @@ //= acky //===== Current Version: ===================================== //= 1.3.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= NPC for a stock market game. //===== Additional Comments: ================================= @@ -172,7 +170,7 @@ S_Fluc: end; } -prontera,140,181,5 script Stock Market::stockmarket 109,{ +prontera,140,181,5 script Stock Market::stockmarket 4_M_MANAGER,{ // Ensures no trading when default prices have not been set // set @stotal,$S1+$S2+$S3+$S4+$S5+$S6+$S7+$S8+$S9+$S10; if (@stotal > 0) goto S_Start; @@ -279,15 +277,15 @@ S_Sell: set @sellamount,0; input @sellamount; if (@sellamount < 1) goto S_SellInv; - if (zeny < $S_Trans) goto S_NoZeny; - set zeny,zeny-$S_Trans; + if (Zeny < $S_Trans) goto S_NoZeny; + Zeny -= $S_Trans; SELLS1: if (@sellname$ != $S1N$) goto SELLS2; if (@sellamount > #S1) goto S_SellTooHigh; set @price,@sellamount*$S1; set #S1,#S1-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S1N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -299,7 +297,7 @@ SELLS2: if (@sellamount > #S2) goto S_SellTooHigh; set @price,@sellamount*$S2; set #S2,#S2-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S2N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -311,7 +309,7 @@ SELLS3: if (@sellamount > #S3) goto S_SellTooHigh; set @price,@sellamount*$S3; set #S3,#S3-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S3N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -323,7 +321,7 @@ SELLS4: if (@sellamount > #S4) goto S_SellTooHigh; set @price,@sellamount*$S4; set #S4,#S4-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S4N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -335,7 +333,7 @@ SELLS5: if (@sellamount > #S5) goto S_SellTooHigh; set @price,@sellamount*$S5; set #S5,#S5-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S5N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -347,7 +345,7 @@ SELLS6: if (@sellamount > #S6) goto S_SellTooHigh; set @price,@sellamount*$S6; set #S6,#S6-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S6N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -359,7 +357,7 @@ SELLS7: if (@sellamount > #S7) goto S_SellTooHigh; set @price,@sellamount*$S7; set #S7,#S7-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S7N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -371,7 +369,7 @@ SELLS8: if (@sellamount > #S8) goto S_SellTooHigh; set @price,@sellamount*$S8; set #S8,#S8-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S8N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -383,7 +381,7 @@ SELLS9: if (@sellamount > #S9) goto S_SellTooHigh; set @price,@sellamount*$S9; set #S9,#S9-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S9N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -395,7 +393,7 @@ SELLS10: if (@sellamount > #S10) goto S_SellTooHigh; set @price,@sellamount*$S10; set #S10,#S10-@sellamount; - set zeny,zeny+@price; + Zeny += @price; next; mes "Sold " + @sellamount + " " + $S10N$ + " shares."; mes "Earned ^0000FF"+@price+"z^000000."; @@ -444,18 +442,18 @@ S_Buy: // Checks valid number // if (@buyamount < $S_BuyMin) goto S_TooLow; if (@buyamount > $S_BuyMax) goto S_TooHigh; - if (zeny < $S_Trans) goto S_NoZeny; - set zeny,zeny-$S_Trans; + if (Zeny < $S_Trans) goto S_NoZeny; + Zeny -= $S_Trans; // Purchases the shares // PURS1: if (@buyname$ != $S1N$) goto PURS2; set @price,@buyamount*$S1; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S1,#S1+@buyamount; set @price,@buyamount*$S1; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S1N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -464,9 +462,9 @@ PURS1: PURS2: if (@buyname$ != $S2N$) goto PURS3; set @price,@buyamount*$S2; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S2,#S2+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S2N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -475,9 +473,9 @@ PURS2: PURS3: if (@buyname$ != $S3N$) goto PURS4; set @price,@buyamount*$S3; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S3,#S3+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S3N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -486,9 +484,9 @@ PURS3: PURS4: if (@buyname$ != $S4N$) goto PURS5; set @price,@buyamount*$S4; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S4,#S4+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S4N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -497,9 +495,9 @@ PURS4: PURS5: if (@buyname$ != $S5N$) goto PURS6; set @price,@buyamount*$S5; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S5,#S5+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S5N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -508,9 +506,9 @@ PURS5: PURS6: if (@buyname$ != $S6N$) goto PURS7; set @price,@buyamount*$S6; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S6,#S6+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S6N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -519,9 +517,9 @@ PURS6: PURS7: if (@buyname$ != $S7N$) goto PURS8; set @price,@buyamount*$S7; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S7,#S7+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S7N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -530,9 +528,9 @@ PURS7: PURS8: if (@buyname$ != $S8N$) goto PURS9; set @price,@buyamount*$S8; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S8,#S8+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S8N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -541,9 +539,9 @@ PURS8: PURS9: if (@buyname$ != $S9N$) goto PURS10; set @price,@buyamount*$S9; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S9,#S9+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S9N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; @@ -552,9 +550,9 @@ PURS9: PURS10: if (@buyname$ != $S10N$) goto PURS11; set @price,@buyamount*$S10; - if (zeny < @price) goto S_NoZeny; + if (Zeny < @price) goto S_NoZeny; set #S10,#S10+@buyamount; - set zeny,zeny-@price; + Zeny -= @price; mes "Bought " + @buyamount + " " + $S10N$ + " shares."; mes "Lost ^0000FF"+@price+"z^000000."; next; diff --git a/npc/custom/events/cluckers.txt b/npc/custom/events/cluckers.txt index cf296cb18..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: ================================= @@ -16,7 +16,7 @@ //= 1.2a Switched 'atcommand' to 'unitskilluseid'. //============================================================ -prontera,156,219,4 script Cluckers 800,{ +prontera,156,219,4 script Cluckers 4_NFCOCK,{ set .@GMAccess,80; // GM level required to access NPC @@ -26,16 +26,16 @@ prontera,156,219,4 script Cluckers 800,{ case 0: npctalk "CLUUUUUUCK!!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break; case 1: npctalk "Cluuuuuck!~"; break; case 2: unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; break; - case 3: sc_start SC_Freeze,10000,0; break; + case 3: sc_start SC_FREEZE,10000,0; break; case 4: npctalk "CLUUUUUUUUUCK!!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break; - case 5: sc_start SC_Sleep,10000,0; break; - case 6: sc_start SC_Stone,10000,0; emotion 29; break; + case 5: sc_start SC_SLEEP,10000,0; break; + case 6: sc_start SC_STONE,10000,0; emotion 29; break; case 7: npctalk "CLUUUUUUCK!!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break; case 8: npctalk "Cluck! CLUUUCK!!"; unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; emotion 23; break; - case 9: sc_start SC_Stun,10000,0; break; - case 10: sc_start SC_Sleep,10000,0; emotion 29; break; + case 9: sc_start SC_STUN,10000,0; break; + case 10: sc_start SC_SLEEP,10000,0; emotion 29; break; case 11: npctalk "Cluck! Cluck!"; break; - case 12: sc_start SC_Stun,10000,0; break; + case 12: sc_start SC_STUN,10000,0; break; case 13: unitskilluseid getcharid(3),"NPC_SELFDESTRUCTION",1; break; default: if (rand(50) < 4) { @@ -111,4 +111,4 @@ OnTimer40000: if (!$cluck_item_amount) set $cluck_item_amount,1; set .startcluck,1; end; -}
\ No newline at end of file +} diff --git a/npc/custom/events/disguise.txt b/npc/custom/events/disguise.txt index ad5ba1185..5e03f5802 100644 --- a/npc/custom/events/disguise.txt +++ b/npc/custom/events/disguise.txt @@ -4,15 +4,13 @@ //= GmOcean //===== Current Version: ===================================== //= 5.1 -//===== Compatible With: ===================================== -//= Hercules -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= Note: This script requires PCRE to run properly. //= 5.0 Last update by GmOcean. //= 5.1 Cleaned and standardized, mostly. [Euphy] //============================================================ -prontera,160,155,4 script Disguise Event 795,{ +prontera,160,155,4 script Disguise Event 4_M_NFDEADMAN,{ // Currently set to run every two hours. // To change times, edit the OnClock labels below. @@ -40,7 +38,7 @@ prontera,160,155,4 script Disguise Event 795,{ setnpctimer 0; stopnpctimer; announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue; deletepset 1; - setnpcdisplay "Disguise Event",795; + setnpcdisplay "Disguise Event", 4_M_NFDEADMAN; close; } set .EventON,1; set .Timer,1; setnpctimer 0; initnpctimer; @@ -129,19 +127,21 @@ OnInit: set .Prize,512; set .PrizeAmt,1; set .Rule,1; - setarray .MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373, - 1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688, - 1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131, - 2156,2165; - set .BlackList$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + - "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + - "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + - "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + - "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + - "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + - "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + - "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + - "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + + setarray .MVP[0], OSIRIS, BAPHOMET, DOPPELGANGER, MISTRESS, GOLDEN_BUG, ORK_HERO, DRAKE, EDDGA, MAYA, MOONLIGHT, + PHARAOH, PHREEONI, ORC_LORD, KNIGHT_OF_WINDSTORM, GARM, DARK_LORD, TURTLE_GENERAL, LORD_OF_DEATH, DRACULA, EVENT_BAPHO, + DARK_SNAKE_LORD, INCANTATION_SAMURAI, PORING_V, AMON_RA, TAO_GUNKA, RSX_0806, BACSOJIN_, B_SEYREN, B_EREMES, B_HARWORD, + B_MAGALETA, B_SHECIL, B_KATRINN, B_YGNIZEM, APOCALIPS_H, LADY_TANEE, THANATOS, DETALE, KIEL_, RANDGRIS, + GLOOMUNDERNIGHT, KTULLANUX, ATROCE, G_MAGALETA_, IFRIT, FALLINGBISHOP, BEELZEBUB_, GOPINICH, MOROCC_, KUBLIN, + S_NYDHOG, BOITATA, QUEEN_SCARABA, LOST_DRAGON, LEAK, I_QUEEN_SCARABA; + set .Blacklist$, "1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168," + + "1171,1172,1173,1181,1187,1210,1217,1218,1222,1223,1224,1225,1226,1227,1228," + + "1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,2002,2003,2004," + + "2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035," + + "2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049," + + "2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063," + + "2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2083,2084,2085," + + "2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099," + + "2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113," + "2114,2115,2116,2117,2118,2119,2120,2121,2123,2124,2125,1496,"; end; OnClock0000: @@ -173,7 +173,7 @@ OnTimer10000: OnTimer30000: if (.Timer) end; set .Change,0; - setnpcdisplay "Disguise Event",795; + setnpcdisplay "Disguise Event", 4_M_NFDEADMAN; npctalk "You took too long to guess what I was. Please wait 10 seconds while I disguise again."; specialeffect 725; set $MonsterName$,""; @@ -201,22 +201,22 @@ OnTimer180000: iDisguise: if (.Rule==1) { set .Winner,0; - set .Monster,1000+rand(1,995); - if (compare(","+.BlackList$+"," , ","+.Monster+",")) goto iDisguise; - if (.Monster==.LastMonster) goto iDisguise; - set .LastMonster,.Monster; - set $MonsterName$,getmonsterinfo(.Monster,0); + set .@monster, rand(SCORPION, PINGUICULA); + if (compare(","+.Blacklist$+"," , ","+.@monster+",")) goto iDisguise; + if (.@monster==.LastMonster) goto iDisguise; + set .LastMonster,.@monster; + set $MonsterName$,getmonsterinfo(.@monster,0); } if (.Rule==2) { set .Winner,0; - set .Monster,rand(49); - set $MonsterName$,getmonsterinfo(.MVP[.Monster],0); + set .@monster, rand(getarraysize(.MVP)); + set $MonsterName$,getmonsterinfo(.MVP[.@monster],0); } deletepset 1; defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect"; activatepset 1; - if (.Rule==1) setnpcdisplay "Disguise Event",.Monster; - if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.Monster]; + if (.Rule==1) setnpcdisplay "Disguise Event",.@monster; + if (.Rule==2) setnpcdisplay "Disguise Event",.MVP[.@monster]; set .Change,1; setnpctimer 0; end; @@ -232,13 +232,13 @@ iCorrect: getitem .Prize,.PrizeAmt; announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue; if (.RoundCount>=.Rounds) { - setnpcdisplay "Disguise Event",795; + setnpcdisplay "Disguise Event", 4_M_NFDEADMAN; set .RoundCount,0; set .Change,0; set .EventON,0; setnpctimer 0; stopnpctimer; npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later."; end; } - setnpcdisplay "Disguise Event",795; + setnpcdisplay "Disguise Event", 4_M_NFDEADMAN; set .Change,0; setnpctimer 0; end; diff --git a/npc/custom/events/hallow06.txt b/npc/custom/events/hallow06.txt index 4663ab996..01a122320 100644 --- a/npc/custom/events/hallow06.txt +++ b/npc/custom/events/hallow06.txt @@ -4,8 +4,6 @@ //= Stryker //===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Halloween Event Script //===== Additional Comments: ================================= @@ -13,7 +11,7 @@ //= 1.2 fixed bugs, optimized. Now uses 1 var instead of 3 [Lupus] //============================================================ -prontera,151,190,5 script Hallows' Eve Event 807,{ +prontera,151,190,5 script Hallows' Eve Event 1_M_SIGNMCNT,{ mes "[Hallows' Eve Event]"; if(Class == Job_Novice){ mes "I am sorry but you have to got a job to complete the event."; diff --git a/npc/custom/events/mushroom_event.txt b/npc/custom/events/mushroom_event.txt index c13bde1cc..1d632d3e9 100644 --- a/npc/custom/events/mushroom_event.txt +++ b/npc/custom/events/mushroom_event.txt @@ -1,11 +1,9 @@ //===== Hercules Script ====================================== //= Find the Mushroom -//===== By: ================================================== +//===== By: ================================================== //= Mysterious //===== Current Version: ===================================== //= 3.6a -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Find the Mushroom - random amount of Mushrooms spawns in random maps. //= Players need to find these mushrooms and kill them to gain prizes! @@ -14,7 +12,7 @@ //= 3.6a Slightly edited. [Euphy] //============================================================ -prontera,142,228,6 script Find the Mushroom 1084,{ +prontera,142,228,6 script Find the Mushroom BLACK_MUSHROOM,{ mes "[ Find The Mushroom ]"; if (!.Status) mes "There is no event at the moment!"; diff --git a/npc/custom/events/uneasy_cemetery.txt b/npc/custom/events/uneasy_cemetery.txt index 50262933d..d48e5f928 100644 --- a/npc/custom/events/uneasy_cemetery.txt +++ b/npc/custom/events/uneasy_cemetery.txt @@ -1,23 +1,21 @@ //===== Hercules Script ====================================== //= Uneasy Prontera Cemetery Quest -//===== By: ================================================== +//===== By: ================================================== //= Lupus -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.2a (Tested and fully working!) -//===== Compatible With: ===================================== -//= Hercules -//===== Description: ========================================= +//===== Description: ========================================= //= A periodical quest of the Uneasy Cemetery (Kill undead / Prevent their appearance) //= 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: ================================= +//===== Additional Comments: ================================= //= 1.1 More advanced ver. Added some bonus the the one who'd kill the last walking undead //= 1.2 Added coords to the script to make label OmMobDead working //= 1.2a Changed item names to item IDs. [Samuray22] -//============================================================ +//============================================================ prontera,3,3,3 script Uneasy_Check -1,{ end; @@ -66,7 +64,7 @@ L_Start_Undead: mapannounce "prontera","[Mother Mathana]: The cememtery has become restless! In the name of Odin, hurry to the Sanctuary! Save the city of Prontera!",0; } -prontera,257,313,5 script Mother Mathana 79,{ +prontera,257,313,5 script Mother Mathana 1_F_PRIEST,{ mes "[Mother Mathana]"; if ($UNEASY_DL <= 0) goto L_Undead_Walk; mes "I'm afraid there's something wrong with our old cemetery..."; diff --git a/npc/custom/events/valentinesdayexp.txt b/npc/custom/events/valentinesdayexp.txt index 065d4e32d..5a94bc913 100644 --- a/npc/custom/events/valentinesdayexp.txt +++ b/npc/custom/events/valentinesdayexp.txt @@ -4,8 +4,6 @@ //= Lupus (based on Muad_Dib's work) //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= // Close to other official stValentine event (added white chocolate) // Custom: Handmade choco gives some EXP bonuses to married people @@ -16,11 +14,11 @@ //============================================================ // Tine - Valentine Event Chocolate Even Guide ------------------ -prontera,156,172,4 script Tine 58,{ +prontera,156,172,4 script Tine 1_M_MERCHANT,{ // Debug info for item effects and tricky conditions 8) // mes "@dsv: "+@dsv; // mes "ispartneron()=="+ispartneron(); -// mes "sex == "+sex; +// mes "sex == "+Sex; // if(@dsv == gettime(3)+1) mes "@dsv == gettime(3)+1"; mes "[Tine]"; @@ -62,9 +60,9 @@ M_INFO: OnInit: //559,Hand-made_Chocolate - setitemscript 559,"{ itemheal 50,50; if(sex==0 || @dsv == gettime(3)+1 || ispartneron()==0)end; set @dsv,gettime(3)+1; misceffect 113; }"; + setitemscript 559,"{ itemheal 50,50; if(Sex==0 || @dsv == gettime(3)+1 || ispartneron()==0)end; set @dsv,gettime(3)+1; misceffect 113; }"; //560,Hand-made_White_Chocolate - setitemscript 560,"{ itemheal 50,50; if(sex || @dsv == gettime(3)+1 || ispartneron()==0)end; set @dsv,gettime(3)+1; misceffect 113; }"; + setitemscript 560,"{ itemheal 50,50; if(Sex || @dsv == gettime(3)+1 || ispartneron()==0)end; set @dsv,gettime(3)+1; misceffect 113; }"; //2634,Wedding_Ring_M,Wedding Ring,5,,10,0,,0,,0,127918079,7,1,136,,0,0,0,{ skill 334,1; skill 335,1; skill 336,1; } setitemscript 2634,"{ skill 334,1; skill 335,1; skill 336,1; if(@dsv == gettime(3)+1 && ispartneron()){ bonus2 bExpAddRace,5,50; bonus2 bExpAddRace,6,50; bonus2 bExpAddRace,7,50; bonus2 bExpAddRace,8,50; bonus2 bExpAddRace,1,50; } }"; @@ -74,7 +72,7 @@ OnInit: } // Stephen - Valentine Event Chocolate seller ------------------ -alberta,26,243,4 script Stephen#val1 58,{ +alberta,26,243,4 script Stephen#val1 1_M_MERCHANT,{ mes "[Stephen]"; mes "Guess what I've got?"; mes "A tasty treat not easily found in Rune-Midgard...."; @@ -107,7 +105,7 @@ M_CHOCO: if (@flag_num > 5) goto L_ERR; set @needmon,@flag_num*5000; if (Zeny < @needmon) goto L_NOTENO; - set Zeny,Zeny - @needmon; + Zeny -= @needmon; getitem 558,@flag_num; mes "[Stephen]"; mes "There you go!"; @@ -129,7 +127,7 @@ L_NOTENO: } // Jainie -- Gives information about Valentine Event ------------------------ -alberta,29,243,4 script Jainie#val1 53,{ +alberta,29,243,4 script Jainie#val1 1_M_INNKEEPER,{ mes "[Jainie]"; mes "You know what? The chocolate that my boyfriend sells are from me!"; mes "I made them by myself. Now I need some Milk for my special White Chocolate."; @@ -169,7 +167,7 @@ M_CHOCO: set @needmon,@flag_num*4500; if (Zeny < @needmon) goto L_NOTENO; if (countitem(519) < @flag_num) goto L_NOMILK; - set Zeny,Zeny - @needmon; + Zeny -= @needmon; delitem 519,@flag_num; getitem 561,@flag_num; mes "[Jainie]"; @@ -197,11 +195,11 @@ L_NOMILK: } // Carl Orleans -- Valentine Event Chocolate maker ------------------ -prt_castle,54,34,4 script Carl Orleans#val1 47,{ +prt_castle,54,34,4 script Carl Orleans#val1 1_M_01,{ mes "[Carl Orleans]"; mes "Yes? What can I cook for you?"; next; - menu "Black handmade Chocolate, please",-,"I want a White handmade Chocolate...",M_WHITE,"I'm lost, sorry to bother you.",M_END; + menu "Black handmade Chocolate, please",-,"I want a White handmade Chocolate...",M_WHITE,"I'm lost, sorry to bother you.",M_End; mes "[Carl Orleans]"; mes "Well, I just might be able to fulfill your needs..."; @@ -268,7 +266,7 @@ M_WHITE: mes "Enjoy."; close; -M_END: +M_End: mes "[Carl Orleans]"; mes "Oh.. well, if you want me to make some of my special handmade Chocolate...."; mes "You will need to give me at least ^0000FF 3 Chocolates^000000 or ^0000FF 3 White Chocolates^000000."; diff --git a/npc/custom/events/xmas_rings_event.txt b/npc/custom/events/xmas_rings_event.txt index 7c0ec5bf0..e031ea129 100644 --- a/npc/custom/events/xmas_rings_event.txt +++ b/npc/custom/events/xmas_rings_event.txt @@ -4,8 +4,6 @@ //= Lupus (1.0) //===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Custom event: Karachun (from 8 Dec till 8 Jan), X-Mas, HNY //===== Additional Comments: ================================= @@ -14,7 +12,7 @@ //= 1.2 Fixed double quotes not being escaped [brianluau] //============================================================ -prontera,156,174,4 script Snower 713,{ +prontera,156,174,4 script Snower 4_M_06,{ mes "[Snower]"; if(Q_XMSRINGS==2){ mes "Oh.. is it true? You've helped my sis Sneewy? Thank you."; @@ -99,7 +97,7 @@ OnInit: end; } -louyang,224,249,4 script Sneewy 717,{ +louyang,224,249,4 script Sneewy 4_F_KID3,{ mes "[Sneewy]"; if(Q_XMSRINGS==0){ mes "Hi! I'm waithing for my sister's birdy with mail..."; @@ -113,7 +111,7 @@ louyang,224,249,4 script Sneewy 717,{ mes "[Sneewy]"; mes "Oh, hello. Has my brother Snower told you everything?"; next; - menu "Here are your 4 Gift Boxes",-, "I don't know any Snowhatevers...",M_END; + menu "Here are your 4 Gift Boxes",-, "I don't know any Snowhatevers...",M_End; mes "[Sneewy]"; if(countitem(644)<4){ @@ -135,14 +133,14 @@ louyang,224,249,4 script Sneewy 717,{ mes "Thanks again! No children will meet the holidays without the gifts!"; close; -M_END: +M_End: mes "[Sneewy]"; mes "Pity... I've got a magic Santa's ring... I'd exchange it for 4 Gift Boxes..."; emotion e_swt; close; } -izlu2dun,133,160,2 script Snoowy 714,{ +izlu2dun,133,160,2 script Snoowy 4_F_06,{ mes "[Snoowy]"; if(Q_XMSRINGS==0){ mes "Helloooou! Do you know my bro and sis? How so? My brother Snower's well known in Prontera!! Just ask any child there."; @@ -165,7 +163,7 @@ izlu2dun,133,160,2 script Snoowy 714,{ mes "[Snoowy]"; mes "But I too need 3 more gifts for my marine folk friends..."; next; - menu "Have these gifts!",-, "I need a li'l something in return",M_END; + menu "Have these gifts!",-, "I need a li'l something in return",M_End; mes "[Snoowy]"; if(countitem(644)<3){ @@ -185,7 +183,7 @@ izlu2dun,133,160,2 script Snoowy 714,{ if(rand(2))mes "Didn't you know that Santa's Hat reveals the real power of the rings?"; close; -M_END: +M_End: mes "[Snoowy]"; mes "I'd exchange a GOLD magic ring for 3 gift boxes..."; emotion e_swt; diff --git a/npc/custom/healer.txt b/npc/custom/healer.txt index a6f028e8a..59d67b083 100644 --- a/npc/custom/healer.txt +++ b/npc/custom/healer.txt @@ -3,67 +3,76 @@ //===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.0 -//===== Compatible With: ===================================== -//= Hercules +//= 1.2 //===== Description: ========================================= //= Basic healer script. +//===== Additional Comments: ================================= +//= 1.0 Initial script. +//= 1.1 Aligned coordinates with @go. +//= 1.2 Fix variables and character stuck at healing //============================================================ - script Healer -1,{ - - set .@Price,0; // Zeny required for heal - set .@Buffs,0; // Also buff players? (1: yes / 0: no) - set .@Delay,0; // Heal delay, in seconds - callfunc "F_ClearGarbage",0; + .@price = 0; // Zeny required for heal + .@Buffs = 0; // Also buff players? (1: yes / 0: no) + .@Delay = 0; // Heal delay, in seconds + if (@HD > gettimetick(2)) end; - if (.@Price) { - message strcharinfo(0),"Healing costs "+.@Price+" Zeny."; - if (Zeny < .@Price) end; + if (.@price) { + message strcharinfo(0),"Healing costs "+.@price+" Zeny."; + if (Zeny < .@price) end; if(select("^0055FFHeal^000000:^777777Cancel^000000") == 2) close; - set Zeny, Zeny-.@Price; + Zeny -= .@price; } - specialeffect2 313; percentheal 100,100; + specialeffect2 EF_HEAL2; percentheal 100,100; if (.@Buffs) { specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,240000,10; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,240000,10; } - if (.@Delay) set @HD, gettimetick(2)+.@Delay; - end; + if (.@Delay) @HD = gettimetick(2)+.@Delay; + close; } -alberta,25,240,6 duplicate(Healer) Healer#alb 909 -aldebaran,135,118,6 duplicate(Healer) Healer#alde 909 -amatsu,200,79,4 duplicate(Healer) Healer#ama 909 -ayothaya,207,169,6 duplicate(Healer) Healer#ayo 909 -brasilis,194,221,6 duplicate(Healer) Healer#bra 909 -comodo,184,158,6 duplicate(Healer) Healer#com 909 -dewata,193,175,6 duplicate(Healer) Healer#dew 909 -eclage,105,35,4 duplicate(Healer) Healer#ecl 909 -einbech,142,244,4 duplicate(Healer) Healer#einbe 909 -einbroch,57,202,6 duplicate(Healer) Healer#einbr 909 -dicastes01,201,194,4 duplicate(Healer) Healer#dic 909 -geffen,115,72,6 duplicate(Healer) Healer#gef 909 -gonryun,156,122,6 duplicate(Healer) Healer#gon 909 -hugel,89,150,6 duplicate(Healer) Healer#hug 909 -izlude,125,118,5 duplicate(Healer) Healer#izl 909 -lighthalzen,149,103,6 duplicate(Healer) Healer#li 909 -louyang,225,103,4 duplicate(Healer) Healer#lou 909 -malangdo,226,188,4 duplicate(Healer) Healer#mal 909 -malaya,205,205,6 duplicate(Healer) Healer#malay 909 -manuk,256,176,6 duplicate(Healer) Healer#man 909 -mid_camp,203,289,6 duplicate(Healer) Healer#mid 909 -mora,106,100,6 duplicate(Healer) Healer#mora 909 -morocc,153,97,6 duplicate(Healer) Healer#mor 909 -moscovia,215,194,6 duplicate(Healer) Healer#mos 909 -niflheim,188,180,5 duplicate(Healer) Healer#nif 909 -payon,179,106,4 duplicate(Healer) Healer#pay 909 -prontera,162,193,4 duplicate(Healer) Healer#pront 909 -rachel,125,116,6 duplicate(Healer) Healer#rac 909 -splendide,201,153,4 duplicate(Healer) Healer#spl 909 -thor_camp,249,74,4 duplicate(Healer) Healer#thor 909 -umbala,129,132,4 duplicate(Healer) Healer#umb 909 -veins,217,121,4 duplicate(Healer) Healer#ve 909 -xmas,143,136,6 duplicate(Healer) Healer#xmas 909 -yuno,164,45,4 duplicate(Healer) Healer#yuno 909 + +// Duplicates +//============================================================ +alberta,25,240,6 duplicate(Healer) Healer#alb 4_PORING +aldebaran,135,118,6 duplicate(Healer) Healer#alde 4_PORING +amatsu,200,79,4 duplicate(Healer) Healer#ama 4_PORING +ayothaya,207,169,6 duplicate(Healer) Healer#ayo 4_PORING +comodo,184,158,6 duplicate(Healer) Healer#com 4_PORING +einbech,57,36,6 duplicate(Healer) Healer#einbe 4_PORING +einbroch,57,202,6 duplicate(Healer) Healer#einbr 4_PORING +geffen,115,72,6 duplicate(Healer) Healer#gef 4_PORING +gonryun,156,122,6 duplicate(Healer) Healer#gon 4_PORING +hugel,89,150,6 duplicate(Healer) Healer#hug 4_PORING +izlude,125,118,5 duplicate(Healer) Healer#izl 4_PORING +jawaii,250,139,4 duplicate(Healer) Healer#jaw 4_PORING +lighthalzen,152,100,6 duplicate(Healer) Healer#lhz 4_PORING +louyang,226,103,4 duplicate(Healer) Healer#lou 4_PORING +manuk,272,144,6 duplicate(Healer) Healer#man 4_PORING +mid_camp,203,289,6 duplicate(Healer) Healer#mid 4_PORING +moc_ruins,72,164,4 duplicate(Healer) Healer#moc 4_PORING +morocc,153,97,6 duplicate(Healer) Healer#mor 4_PORING +moscovia,220,191,4 duplicate(Healer) Healer#mos 4_PORING +niflheim,212,182,5 duplicate(Healer) Healer#nif 4_PORING +payon,179,106,4 duplicate(Healer) Healer#pay 4_PORING +prontera,162,193,4 duplicate(Healer) Healer#prt 4_PORING +rachel,125,116,6 duplicate(Healer) Healer#rac 4_PORING +splendide,201,153,4 duplicate(Healer) Healer#spl 4_PORING +thor_camp,249,74,4 duplicate(Healer) Healer#thor 4_PORING +umbala,105,148,3 duplicate(Healer) Healer#umb 4_PORING +veins,217,121,4 duplicate(Healer) Healer#ve 4_PORING +xmas,143,136,4 duplicate(Healer) Healer#xmas 4_PORING +yuno,164,45,4 duplicate(Healer) Healer#yuno 4_PORING + +// Duplicates (Renewal) +//============================================================ +brasilis,194,221,6 duplicate(Healer) Healer#bra 4_PORING +dewata,195,187,4 duplicate(Healer) Healer#dew 4_PORING +dicastes01,201,194,4 duplicate(Healer) Healer#dic 4_PORING +ecl_in01,45,60,4 duplicate(Healer) Healer#ecl 4_PORING +malangdo,132,114,6 duplicate(Healer) Healer#mal 4_PORING +malaya,205,205,6 duplicate(Healer) Healer#ma 4_PORING +mora,55,152,4 duplicate(Healer) Healer#mora 4_PORING diff --git a/npc/custom/item_signer.txt b/npc/custom/item_signer.txt index b70244ed1..243ca29c2 100644 --- a/npc/custom/item_signer.txt +++ b/npc/custom/item_signer.txt @@ -4,8 +4,6 @@ //= Lupus //===== Current Version: ===================================== //= 1.1a -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Write you name on your rare equipment or weapon ^_- //===== Additional Comments: ================================= @@ -13,10 +11,10 @@ //= 1.1a Added 'disable_items' command. [Euphy] //============================================================ -prt_in,24,61,7 script Perchik 47,{ +prt_in,24,61,7 script Perchik 1_M_01,{ - setarray .@Item[0],644,3; // Item requirements: <ID>,<Count>{,...} (0 to disable) - setarray .@Cost[0],0,5000; // Zeny requirements: <base price>,<price per refine> + setarray .@item[0],644,3; // Item requirements: <ID>,<Count>{,...} (0 to disable) + setarray .@cost[0],0,5000; // Zeny requirements: <base price>,<price per refine> disable_items; mes "[Perchik]"; @@ -28,12 +26,12 @@ prt_in,24,61,7 script Perchik 47,{ emotion e_ic; next; mes "[Perchik]"; - if (getarraysize(.@Item) || getarraysize(.@Cost)) { + if (getarraysize(.@item) || getarraysize(.@cost)) { mes "For my work I accept:"; - if (getarraysize(.@Item)) for(set .@i,0; .@i<getarraysize(.@Item); set .@i,.@i+2) - mes " ~ "+.@Item[.@i+1]+"x "+getitemname(.@Item[.@i]); - if (.@Cost[0]) mes " ~ "+.@Cost[0]+" Zeny"; - if (.@Cost[1]) mes " ~ "+.@Cost[1]+" Zeny per refine"; + if (getarraysize(.@item)) for(set .@i,0; .@i<getarraysize(.@item); set .@i,.@i+2) + mes " ~ "+.@item[.@i+1]+"x "+getitemname(.@item[.@i]); + if (.@cost[0]) mes " ~ "+.@cost[0]+" Zeny"; + if (.@cost[1]) mes " ~ "+.@cost[1]+" Zeny per refine"; } else mes "I work for free, but..."; next; @@ -93,12 +91,12 @@ prt_in,24,61,7 script Perchik 47,{ emotion e_hmm; close; } - set .@price, .@Cost[0]+(.@Cost[1]*.@ref); - if (getarraysize(.@Item) || .@price) { + set .@price, .@cost[0]+(.@cost[1]*.@ref); + if (getarraysize(.@item) || .@price) { mes "I will need:"; - if (getarraysize(.@Item)) for(set .@i,0; .@i<getarraysize(.@Item); set .@i,.@i+2) { - mes " ~ "+.@Item[.@i+1]+"x "+getitemname(.@Item[.@i]); - if (countitem(.@Item[.@i]) < .@Item[.@i+1]) set .@nr,1; + if (getarraysize(.@item)) for(set .@i,0; .@i<getarraysize(.@item); set .@i,.@i+2) { + mes " ~ "+.@item[.@i+1]+"x "+getitemname(.@item[.@i]); + if (countitem(.@item[.@i]) < .@item[.@i+1]) set .@nr,1; } if (.@price) mes " ~ "+.@price+" Zeny"; } @@ -123,9 +121,9 @@ prt_in,24,61,7 script Perchik 47,{ emotion e_wah; close; } - if (.@price) set Zeny, Zeny-.@price; - if (getarraysize(.@Item)) for(set .@i,0; .@i<getarraysize(.@Item); set .@i,.@i+2) - delitem .@Item[.@i], .@Item[.@i+1]; + if (.@price) Zeny -= .@price; + if (getarraysize(.@item)) for(set .@i,0; .@i<getarraysize(.@item); set .@i,.@i+2) + delitem .@item[.@i], .@item[.@i+1]; delitem2 .@id,1,1,.@ref,0,.@slot[0],.@slot[1],.@slot[2],.@slot[3]; mes "Done!"; emotion e_proud; diff --git a/npc/custom/itembind.txt b/npc/custom/itembind.txt new file mode 100644 index 000000000..7d2c4ba62 --- /dev/null +++ b/npc/custom/itembind.txt @@ -0,0 +1,133 @@ +//===== Hercules Script ======================================= +//= Item Bind Script +//===== By: ================================================== +//= Akinari +//===== Compatible With: ===================================== +//= Revision 17351+ (rAthena) +//= Revision 12949+ (Hercules) +//===== Description: ========================================= +//= Item Bind Script +//= Allows users to pay a price to make an item bound to +//= Account, Character, or Guild +//============================================================ + +prontera,144,174,4 script Bound Items 4_M_JP_MID,{ + + mes "I can bind your items to your account, guild, or character"+((.bindprice)?" for a ^0000FF"+.bindprice+"^000000 zeny fee":"")+"."; + next; + mes "With this, you can rest assured your items are safe."; + next; + mes "What would you like to do?"; + if(select("Bind:Unbind") == 1) { + if(Zeny < .bindprice) { + mes "You don't have enough zeny to bind an item."; + close; + } + mes "What kind of bind?"; + .@boundtype = 1 << (select("Account:Guild:Character")-1); + if(.@boundtype == 2 && (!getcharid(2) || getguildmaster(getcharid(2)) != strcharinfo(0))) { + mes "In order for me to bind an item to a guild you must be the master of one."; + close; + } + getinventorylist(); + for(.@i = 0; .@i < @inventorylist_count; .@i++) { + //We only show the items that you allow to be bound + //Allows equipment (default) + if(@inventorylist_bound[.@i]) + continue; + 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))) + ) { + set .@bindlist$, .@bindlist$ + ":" + getitemname(@inventorylist_id[.@i]) + " - " + @inventorylist_id[.@i]; + set .@bindlist[.@j],.@i; + .@j++; + } + } + .@item = .@bindlist[select(.@bindlist$)-2]; + next; + mes "Before I continue, I want you to know I can't tell the difference between multiple items. If you have a specific item you want bounded, please remove any duplicates from inventory."; + if(select("I understand, continue:Wait a minute") == 2) { + next; + mes "I'll be here when you're ready."; + close; + } + next; + mes "Are you sure you'd like to bind your "+ getitemname(@inventorylist_id[.@item]) +" to your "+.boundtypes$[.@boundtype]+"?"; + if(select("Yes:No") == 1) { + Zeny -= .bindprice; + delitem2 @inventorylist_id[.@item],@inventorylist_amount[.@item],@inventorylist_identify[.@item],@inventorylist_refine[.@item],@inventorylist_attribute[.@item],@inventorylist_card1[.@item],@inventorylist_card2[.@item],@inventorylist_card3[.@item],@inventorylist_card4[.@item]; + getitembound2 @inventorylist_id[.@item],@inventorylist_amount[.@item],@inventorylist_identify[.@item],@inventorylist_refine[.@item],@inventorylist_attribute[.@item],@inventorylist_card1[.@item],@inventorylist_card2[.@item],@inventorylist_card3[.@item],@inventorylist_card4[.@item],.@boundtype; + mes "All done!"; + if(.logbinds) + logmes "Bound "+ @inventorylist_amount[.@item]+" "+@inventorylist_id[.@item]+" as "+.boundtypes$[.@boundtype]+" type."; + } + } else { + if(!countbound()) { + mes "You don't have any bound items in your inventory. Not much I can do here."; + close; + } + countbound(2); + if(.unbindprice) { + mes "Unbinding an item has a fee of ^0000FF"+.unbindprice+"^000000 zeny."; + if(Zeny < .unbindprice) { + mes "You don't have enough to unbind an item."; + close; + } + } + getinventorylist(); + for(.@i = 0; .@i < @inventorylist_count; .@i++) { + if(@inventorylist_bound[.@i]) { + set .@bindlist$, .@bindlist$ + ":" + getitemname(@inventorylist_id[.@i]) + " - " + @inventorylist_id[.@i]; + set .@bindlist[.@j],.@i; + .@j++; + } + } + .@item = .@bindlist[select(.@bindlist$)-2]; + next; + for(.@i = 0; .@i < getarraysize(@bound_items); .@i++) { + if(@inventorylist_id[.@item] == @bound_items[.@i] && + (!getcharid(2) || getguildmaster(getcharid(2)) != strcharinfo(0)) + ) { + mes "I will only unbind guild bound items that the guild master requests."; + close; + } + } + mes "Before I continue, I want you to know I can't tell the difference between multiple items. If you have a specific item you want unbounded, please remove any duplicates from inventory."; + if(select("I understand, continue:Wait a minute") == 2) { + next; + mes "I'll be here when you're ready."; + close; + } + next; + mes "Are you sure you'd like to unbind your "+ getitemname(@inventorylist_id[.@item]) +"?"; + if(select("Yes:No") == 1) { + Zeny -= .unbindprice; + delitem2 @inventorylist_id[.@item],@inventorylist_amount[.@item],@inventorylist_identify[.@item],@inventorylist_refine[.@item],@inventorylist_attribute[.@item],@inventorylist_card1[.@item],@inventorylist_card2[.@item],@inventorylist_card3[.@item],@inventorylist_card4[.@item]; + getitem2 @inventorylist_id[.@item],@inventorylist_amount[.@item],@inventorylist_identify[.@item],@inventorylist_refine[.@item],@inventorylist_attribute[.@item],@inventorylist_card1[.@item],@inventorylist_card2[.@item],@inventorylist_card3[.@item],@inventorylist_card4[.@item]; + mes "All done!"; + if(.logbinds) + logmes "Unbound "+ @inventorylist_amount[.@item]+" "+@inventorylist_id[.@item]+"."; + } + } + close; + +OnInit: + //* Configuration *\\ + //Price + .bindprice = 0; + .unbindprice = 100000; + + //What to allow to be bound - Add as necessary + //1 = Equipment - 2 = Consumables - 4 = Etc + .allowbind = 1; + + //Log binds via NPC? + .logbinds = 1; + + //Other stuff + .boundtypes$[1] = "account"; + .boundtypes$[2] = "guild"; + .boundtypes$[4] = "character"; + end; +} diff --git a/npc/custom/itemmall.txt b/npc/custom/itemmall.txt index 6eb162f9c..7e1aa1199 100644 --- a/npc/custom/itemmall.txt +++ b/npc/custom/itemmall.txt @@ -4,41 +4,39 @@ //= Masao //===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Street shops in Prontera. //============================================================ -prontera,147,240,5 shop Armor 99,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000 -prontera,147,242,5 shop Shield 99,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000 -prontera,147,244,5 shop Footgear 99,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000 -prontera,147,246,5 shop Mace 99,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000 -prontera,147,248,5 shop Knuckle 494,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000 -prontera,147,250,5 shop Whips 494,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000 -prontera,147,252,5 shop Instruments 494,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000 -prontera,147,254,5 shop Books 494,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000 -prontera,147,256,5 shop Guns 497,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000 -prontera,147,258,5 shop Fuuma Shuriken 497,7522:500,7521:500,7523:500 -prontera,147,260,5 shop One-Handed Swords 497,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000 -prontera,147,262,5 shop Two-Handed Swords 497,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000 -prontera,147,264,5 shop Spears 731,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000 -prontera,147,238,1 shop Dagger 731,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000 -prontera,164,264,4 shop Axes 731,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000 -prontera,164,262,4 shop Accessories 731,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000 -prontera,164,260,4 shop Bows 731,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000 -prontera,164,258,4 shop Staffs / Rods 731,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000 -prontera,164,256,4 shop Garments 405,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000 -prontera,164,254,4 shop Katars 405,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000 -prontera,164,252,4 shop Lower Headgear 405,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000 -prontera,164,250,4 shop Middle Headgear 405,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000 -prontera,164,248,4 shop Upper Headgear 405,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000 -prontera,164,246,4 shop Headgear 01 832,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000 -prontera,164,244,4 shop Headgear 02 832,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000 -prontera,164,242,4 shop Headgear 03 832,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000 -prontera,164,240,4 shop Headgear 04 832,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000 -prontera,164,238,4 shop Headgear 05 832,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000 -prontera,151,284,4 shop Ammunition 880,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50 -prontera,153,284,4 shop Alchemist Dealer 880,715:600,716:600,717:600,1025:200,7136:500,7135:500,7137:500,7138:500,7139:500 -prontera,155,284,4 shop Street Dealer 880,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650 -prontera,157,284,4 shop Sheepy Gonzales 895,12028:1000,12262:500,12016:750 +prontera,147,240,5 shop Armor 4W_M_03,2304:10000,2306:20000,2308:20000,2310:50000,2311:50000,2313:50000,2315:75000,2317:100000,2322:20000,2326:60000,2331:75000,2342:100000,2353:75000,2364:150000,2367:100000,2399:50000 +prontera,147,242,5 shop Shield 4W_M_03,2102:10000,2106:60000,2108:60000,2110:85000,2114:30000,2116:30000,2123:50000,2124:50000 +prontera,147,244,5 shop Footgear 4W_M_03,2404:10000,2406:20000,2409:30000,2412:50000,2417:50000,2418:50000,2424:50000,2425:20000 +prontera,147,246,5 shop Mace 4W_M_03,1502:10000,1505:20000,1511:20000,1514:-1,1517:-1,1520:50000,1522:100000,1523:25000,1528:50000,1529:50000,1531:50000 +prontera,147,248,5 shop Knuckle 4_M_ROKI,1802:20000,1804:50000,1806:60000,1808:75000,1810:70000,1812:60000,1813:100000,1814:100000,1822:150000 +prontera,147,250,5 shop Whips 4_M_ROKI,1951:10000,1953:20000,1955:30000,1962:20000,1963:50000,1972:10000,1974:10000,1976:50000 +prontera,147,252,5 shop Instruments 4_M_ROKI,1902:10000,1904:20000,1906:-1,1908:50000,1913:50000,1914:50000,1915:50000,1916:50000,1917:50000 +prontera,147,254,5 shop Books 4_M_ROKI,1550:30000,1551:60000,1552:51000,1559:25000,1561:75000,1564:25000,1568:70000,1569:70000,1570:70000,1571:70000,1572:50000 +prontera,147,256,5 shop Guns 4_M_CATMAN1,13103:60000,13105:100000,13106:200000,13101:10000,13150:6000,13152:30000,13153:50000,13155:60000,13156:100000,13154:30000,13159:250000,13157:150000,13161:300000,13162:500000 +prontera,147,258,5 shop Fuuma Shuriken 4_M_CATMAN1,7522:500,7521:500,7523:500 +prontera,147,260,5 shop One-Handed Swords 4_M_CATMAN1,1108:10000,1117:10000,1120:100000,1124:50000,1130:100000,1131:50000,1133:50000,1138:200000,1139:200000,1145:-1,1149:50000 +prontera,147,262,5 shop Two-Handed Swords 4_M_CATMAN1,1155:50000,1158:90000,1163:120000,1164:50000,1165:50000,1166:75000,1168:50000,1169:500000,1172:200000,1175:75000 +prontera,147,264,5 shop Spears 4_M_JOB_BLACKSMITH,1405:20000,1408:50000,1415:100000,1417:75000,1421:75000,1422:25000 +prontera,147,238,1 shop Dagger 4_M_JOB_BLACKSMITH,1208:20000,1211:20000,1217:20000,1223:50000,1231:75000,1235:75000,1236:75000,1237:75000 +prontera,164,264,4 shop Axes 4_M_JOB_BLACKSMITH,1302:10000,1306:20000,1307:45000,1309:75000,1352:20000,1355:30000,1358:75000,1363:50000,1364:50000,1365:50000,1366:50000,1371:100000 +prontera,164,262,4 shop Accessories 4_M_JOB_BLACKSMITH,2621:-1,2622:-1,2624:30000,2618:10000,2625:30000,2626:30000,2674:10000,2648:50000,2649:50000,2627:-1,2701:75000 +prontera,164,260,4 shop Bows 4_M_JOB_BLACKSMITH,1702:20000,1705:50000,1708:20000,1720:50000,1723:75000,1724:75000,1725:75000 +prontera,164,258,4 shop Staffs / Rods 4_M_JOB_BLACKSMITH,1602:20000,1605:20000,1608:20000,1611:45000,1618:85000,1620:85000,1622:50000,1624:50000,1625:50000,1626:50000 +prontera,164,256,4 shop Garments 4_M_YOUNGKNIGHT,2504:10000,2506:40000,2507:82000,2508:56000,2514:50000,2518:60000,2519:60000,2528:85000,2531:10000,2553:10000 +prontera,164,254,4 shop Katars 4_M_YOUNGKNIGHT,1251:50000,1253:100000,1255:75000,1261:125000,1262:20000,1263:20000,1265:100000,1275:100000,1276:100000,1277:100000,1278:100000 +prontera,164,252,4 shop Lower Headgear 4_M_YOUNGKNIGHT,2218:10000,5054:30000,2267:5000,5107:100000,2265:5000,2266:50000,2269:50000,2270:50000 +prontera,164,250,4 shop Middle Headgear 4_M_YOUNGKNIGHT,2201:5000,2203:4000,2205:3500,2212:5000,2225:10000,2229:50000,2231:50000,2234:50000,2235:50000,2281:25000,2292:50000,2296:50000 +prontera,164,248,4 shop Upper Headgear 4_M_YOUNGKNIGHT,2210:1000,2211:1000,2213:10000,2214:20000,2217:10000,2221:5000,2223:10000,2246:75000,2256:75000,2264:100000,2280:20000,2299:30000 +prontera,164,246,4 shop Headgear 01 4_M_REIDIN_KURS,5380:40000,5382:40000,2269:5000,2270:5000,5107:15000,5110:15000,2247:30000:5206:10000,2245:30000,2286:35000,2296:15000,2258:45000,5161:200000,5104:40000,2295:20000,5026:30000,5032:100000,5038:30000,5229:65000,5227:65000,5228:65000,5198:50000,5058:300000,5253:80000,5252:60000,5296:100000,5231:300000,5232:300000,5233:300000,5230:300000,5234:300000,5076:50000 +prontera,164,244,4 shop Headgear 02 4_M_REIDIN_KURS,5059:100000,5235:75000,5236:75000,5237:75000,5293:150000,5303:35000,5304:65000,5312:65000,5315:45000,5317:45000,5319:75000,5320:120000,5323:588888,5336:50000,5337:50000,5338:50000,5339:50000,5346:50000 +prontera,164,242,4 shop Headgear 03 4_M_REIDIN_KURS,5181:300000,5102:500000,5016:75000,5349:150000,5013:700000,5022:500000,5171:1250000,5135:500000,5029:50000,5033:65000,5040:100000,5047:35000,5065:65000,5068:50000,5074:50000,5084:75000,5086:150000,5108:350000,5121:100000,5133:50000,5137:100000,5138:150000,5140:55000,5146:75000,5151:75000,5152:150000,5170:150000,5173:75000,5174:75000,5175:75000,5184:50000,5185:45000,5187:75000,5188:50000,5191:25000,5192:25000,5193:25000,5194:25000,5195:25000,5196:25000,5197:25000 +prontera,164,240,4 shop Headgear 04 4_M_REIDIN_KURS,5200:75000,5205:100000,5211:75000,5226:50000,5238:75000,5239:75000,5240:75000,5241:75000,5242:75000,5243:50000,5325:75000,5254:100000,5255:65000,5257:50000,5297:100000,2202:45000,5258:35000,5298:50000,5276:50000,5273:50000,5275:50000,5274:50000,5259:50000,5271:250000,5272:50000,5284:50000,5286:75000,5288:50000,5289:50000,5291:55000,5292:55000,5294:55000,5352:50000,5324:100000,5359:50000,5360:50000 +prontera,164,238,4 shop Headgear 05 4_M_REIDIN_KURS,5340:50000,5341:50000,5342:50000,5343:50000,5344:50000,5345:50000,5354:50000,5355:50000,5361:65000,5365:50000,5373:75000,5374:350000,5379:50000,5383:60000,5384:88888,5390:88888,5388:50000,5411:50000,5393:75000,5397:35000,5399:50000,5800:175000,5801:300000,5802:150000 +prontera,151,284,4 shop Ammunition 4_M_MASKMAN,1766:50,1755:20,1750:10,1754:20,1761:20,1752:20,1760:20,1759:20,1772:100,1757:30,1770:20,1769:30,1765:40,1763:30,1762:30,1767:30,1764:30,1751:20,1768:30,1753:30,1756:30,1758:30,1771:1000,13200:50,13202:100,13201:300,13206:500,13203:500,13207:500,13204:500,13205:500,13252:50,13254:500,13251:100,13253:300,13250:50,13256:50,13259:50,13258:50,13255:50,13257:50 +prontera,153,284,4 shop Alchemist Dealer 4_M_MASKMAN,715:600,716:600,717:600,1025:200,7136:500,7135:500,7137:500,7138:500,7139:500 +prontera,155,284,4 shop Street Dealer 4_M_MASKMAN,678:5000,505:-1,506:40,610:4000,545:150,546:600,547:1650 +prontera,157,284,4 shop Sheepy Gonzales 4_F_KHELLY,12028:1000,12262:500,12016:750 diff --git a/npc/custom/jobmaster.txt b/npc/custom/jobmaster.txt index 00963bf36..88a1897da 100644 --- a/npc/custom/jobmaster.txt +++ b/npc/custom/jobmaster.txt @@ -3,72 +3,91 @@ //===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.3 -//===== Compatible With: ===================================== -//= Hercules +//= 1.4 //===== Description: ========================================= //= A fully functional job changer. -//===== Additional Comments: ================================= +//===== 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 123,{ -function Job_Menu; function A_An; +prontera,153,193,6 script Job Master 2_F_MAGICMASTER,{ + 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) @@ -77,114 +96,167 @@ 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); + if (.@newjob == Job_Baby) { + resetlvl(4); + SkillPoint = 0; + } + 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; -}
\ No newline at end of file +} diff --git a/npc/custom/platinum_skills.txt b/npc/custom/platinum_skills.txt index 7f80158a3..da35da389 100644 --- a/npc/custom/platinum_skills.txt +++ b/npc/custom/platinum_skills.txt @@ -4,8 +4,6 @@ //= Keichii, DarkChild //===== Current Version: ===================================== //= 2.8 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Single NPC that assigns quests skills for all classes //===== Additional Comments: ================================= @@ -20,7 +18,7 @@ //= 2.8 Clustered conditionals replaced with switch to include all Upper types. [Euphy] //============================================================ -prontera,128,200,6 script Platinum Skill NPC 94,{ +prontera,128,200,6 script Platinum Skill NPC 4_F_MAID,{ mes "[Platinum Skill NPC]"; mes "I can give you the special skills available to your job."; mes "Would you like these skills now?"; diff --git a/npc/custom/quests/bandit_beard.txt b/npc/custom/quests/bandit_beard.txt index 175471f56..68c13727b 100644 --- a/npc/custom/quests/bandit_beard.txt +++ b/npc/custom/quests/bandit_beard.txt @@ -1,12 +1,12 @@ //===== Hercules Script ====================================== //= Bandit Beard Quest -//===== By: ================================================== +//===== By: ================================================== //= Mega Man Expert & Lupus -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.3 -//===== Description: ========================================= +//===== Description: ========================================= //= A harmless quest for a simply item w/o any bonuses "Bandit Beard" -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= Fully working. //= 1.0 First release //= 1.1 Fixed some exploits, bugs and typos. Optimized 8) [Lupus] @@ -15,7 +15,7 @@ //= 1.3 Removed duplicates [L0ne_W0lf] //============================================================ -umbala,126,129,4 script Bearded Man#bandit 120,{ +umbala,126,129,4 script Bearded Man#bandit 2_M_PHARMACIST,{ if(BEARD_QUEST == 4 ) goto L_MAKE; if(BEARD_QUEST >= 5 ) goto L_DONE; if(BEARD_QUEST >= 1 ) goto L_THREAD; @@ -44,7 +44,7 @@ L_THREAD: mes "[Bearded Man]"; mes "Also I would need you to get me some things for the beard."; mes "They are:"; -L_LIST: +L_List: mes "^8080FFElastic Band^000000"; mes "^8080FF5 Animal Skins^000000"; mes "^8080FFBlack Dye Stuff^000000"; @@ -96,11 +96,11 @@ L_NOITEMS: mes "What the hell! I can't make a beard without the items!"; mes "Here is the list again:"; emotion 23; - goto L_LIST; -} + goto L_List; +} //Master Tailor---------- -izlude_in,123,175,4 script Master Tailor#bandit 50,{ +izlude_in,123,175,4 script Master Tailor#bandit 1_M_04,{ mes "[Master Tailor]"; mes "Good evening! I am the Master Tailor!"; if(BEARD_QUEST != 1 ) close; @@ -117,14 +117,14 @@ izlude_in,123,175,4 script Master Tailor#bandit 50,{ close; } // Karfa Thread Clerk--- -aldeba_in,70,179,5 script Karfa Clerk#bandit 113,{ +aldeba_in,70,179,5 script Karfa Clerk#bandit 4_F_KAFRA5,{ mes "[Karfa Clerk]"; if(BEARD_QUEST == 3 ) goto L_REPEAT; if(BEARD_QUEST > 3 ) goto L_DONE; mes "What can I do for you?"; next; - if(BEARD_QUEST == 2 ) goto L_DELIVERY; + if(BEARD_QUEST == 2 ) goto L_Delivery; menu "What's in the boxes?",-,"Nothing.",M_NOPE; @@ -133,7 +133,7 @@ aldeba_in,70,179,5 script Karfa Clerk#bandit 113,{ M_NOPE: close; -L_DELIVERY: +L_Delivery: mes "[Karfa Clerk]"; mes "Sorry but we have not received any ^8080FFThread^000000."; @@ -155,7 +155,7 @@ L_DONE: } //Thread Merchant ------ -alberta,65,123,6 script Man#bandit 85,{ +alberta,65,123,6 script Man#bandit 4_M_03,{ if(BEARD_QUEST == 3 && $@beardMobD) goto L_KILLED; if(BEARD_QUEST > 3) goto L_DONE; @@ -209,7 +209,7 @@ M_NO: //mobsummons ------- alberta,1,1,1 script BRDQ_MOBS -1,{ OnStart: - set $@beardMob,10; + set $@beardmob,10; set $@beardMobD,0; monster "alberta",65,120,"Thef Bug Male",1054,1,"BRDQ_MOBS::OnDie"; monster "alberta",66,120,"Thef Bug Male",1054,1,"BRDQ_MOBS::OnDie"; @@ -227,9 +227,9 @@ OnDie: if($@beardmob > 0) end; set $@beardMobD,1; end; -On1201: -On0001: - set $@beardMob,0; +OnClock1201: +OnClock0001: + set $@beardmob,0; set $@beardMobD,0; end; } diff --git a/npc/custom/quests/berzebub.txt b/npc/custom/quests/berzebub.txt index 1ba44211e..8a57d4f3e 100644 --- a/npc/custom/quests/berzebub.txt +++ b/npc/custom/quests/berzebub.txt @@ -11,9 +11,9 @@ //= 1.2 Optimized. [Euphy] //============================================================ -prontera,165,178,8 script Old Woman 103,{ +prontera,165,178,8 script Old Woman 8_F_GRANDMOTHER,{ - setarray .@Items[0],714,25,1061,100,1095,200,618,10,1551,2,1614,1,727,20; + setarray .@items[0],714,25,1061,100,1095,200,618,10,1551,2,1614,1,727,20; set .@n$,"[Old Woman]"; mes .@n$; @@ -37,9 +37,9 @@ prontera,165,178,8 script Old Woman 103,{ next; mes .@n$; mes "I need all of the following items:"; - for(set .@i,0; .@i<getarraysize(.@Items); set .@i,.@i+2) { - mes " ~ "+.@Items[.@i+1]+"x "+getitemname(.@Items[.@i]); - if (countitem(.@Items[.@i]) < .@Items[.@i+1]) set .@nr,1; } + for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+2) { + mes " ~ "+.@items[.@i+1]+"x "+getitemname(.@items[.@i]); + if (countitem(.@items[.@i]) < .@items[.@i+1]) set .@nr,1; } next; if(select("I have all of that!:I'll get those ASAP")==2) goto M_Leave; @@ -47,8 +47,8 @@ prontera,165,178,8 script Old Woman 103,{ if (.@nr) { mes "You lie! Get out of here and get those items, you sorry excuse for a rock star."; close; } - for(set .@i,0; .@i<getarraysize(.@Items); set .@i,.@i+2) - delitem .@Items[.@i], .@Items[.@i+1]; + for(set .@i,0; .@i<getarraysize(.@items); set .@i,.@i+2) + delitem .@items[.@i], .@items[.@i+1]; getitem 4145,1; set BerzQuest, 1; mes "Congratulations! You have all the items. Here is your ^FF0000Berzebub Card^000000, as promised."; @@ -59,4 +59,4 @@ M_Leave: mes .@n$; mes "Such a great item I have right here..."; close; -}
\ No newline at end of file +} diff --git a/npc/custom/quests/dead_branch.txt b/npc/custom/quests/dead_branch.txt index 306a553c8..ef49db159 100644 --- a/npc/custom/quests/dead_branch.txt +++ b/npc/custom/quests/dead_branch.txt @@ -4,17 +4,15 @@ //= GM-Yevon //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== 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] //============================================================ -niflheim,204,179,3 script Mister Mobry 121,{ +niflheim,204,179,3 script Mister Mobry 2_M_MOLGENSTEIN,{ mes "[Mister Mobry]"; mes "Trees possess spirits you know..."; @@ -27,10 +25,10 @@ niflheim,204,179,3 script Mister Mobry 121,{ mes "[Mister Mobry]"; mes "I can create a spirited branch... That is, if you can provide me with the correct materials..."; next; - goto L_MENU; + goto L_Menu; -L_MENU: - menu "What Do I Need?",-,"Where Can I find this Crap?",M_FIND,"Make me a Dead Branch!",M_CREATE,"Forget it...",M_END; +L_Menu: + menu "What Do I Need?",-,"Where Can I find this Crap?",M_FIND,"Make me a Dead Branch!",M_CREATE,"Forget it...",M_End; mes "[Mister Mobry]"; mes "Mwehehe... I see you want to control tree spirits am I right? Ok... I need:"; @@ -39,7 +37,7 @@ L_MENU: mes "^1354455 Trunk^000000"; mes "^1354451 Wooden Gnarl^000000"; next; - goto L_MENU; + goto L_Menu; M_FIND: mes "[Mister Mobry]"; @@ -49,7 +47,7 @@ M_FIND: mes "^135445Trunks? Seriously, think wood...^000000"; mes "^135445Wooden Gnarl... Gibbet...^000000"; next; - goto L_MENU; + goto L_Menu; L_NOLOG: mes "[Mister Mobry]"; @@ -97,7 +95,7 @@ L_GIVE2: getitem 12103,1; //Bloody Branch close; -M_END: +M_End: mes "[Mister Mobry]"; mes "No spirit for you... then go!"; close; diff --git a/npc/custom/quests/elvenear.txt b/npc/custom/quests/elvenear.txt index 4cb5c11de..eb2d1ba4c 100644 --- a/npc/custom/quests/elvenear.txt +++ b/npc/custom/quests/elvenear.txt @@ -4,8 +4,6 @@ //= someone //===== Current Version: ===================================== //= 1.2 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Elven Ears (require 75+ Base Level) //===== Additional Comments: ================================= @@ -13,17 +11,17 @@ //= 1.2 Fixed exploit [Lupus] //============================================================ -geffen,127,49,5 script Elven Ears Quest 84,{ - mes "[Elven Ears Quest]"; - mes "Hi, today's quest is...."; - mes "Ah, the ^61B031Elven Ears ^000000Quest!"; - next; +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; 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; @@ -41,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 37b5e52b7..497fae849 100644 --- a/npc/custom/quests/event_6_new_hats.txt +++ b/npc/custom/quests/event_6_new_hats.txt @@ -4,8 +4,6 @@ //= RedxSwordxHero, Lupus //===== Current Version: ===================================== //= 1.4b -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= 4 brothers give you quests to get 6 new hats (missing //= from official quests) @@ -15,16 +13,16 @@ //= -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 704,{ +prt_in,130,66,5 script Zac 4_M_BIBI,{ mes "[Zac]"; mes "I am the oldest and strongest of the 4 brothers that makes all the newer hats. You will need to bring me the correct items for each hat, so I can make them."; next; @@ -84,7 +82,7 @@ L3: close; } -prt_in,162,131,5 script Blac 732,{ +prt_in,162,131,5 script Blac 4_M_JOB_HUNTER,{ mes "[Blac]"; mes "I am the youngest and sexiest of the 4 brothers that makes all the newer hats. You will need to bring me the correct items for each hat, so I can make them."; next; @@ -138,7 +136,7 @@ L3: close; } -prt_in,53,56,5 script Jac 107,{ +prt_in,53,56,5 script Jac 1_M_PAY_ELDER,{ mes "[Jac]"; mes "I am the 2nd oldest and calmest of the 4 brothers that makes all the newer hats. You will need to bring me the correct items for each hat, so I can make them."; next; @@ -222,7 +220,7 @@ L3: close; } -prt_in,45,113,5 script Pac 705,{ +prt_in,45,113,5 script Pac 4_M_GEF_SOLDIER,{ mes "[Pac]"; mes "I am 3rd oldest and wisest of the 4 brothers that makes all the newer hats. You will need to bring me the correct items for each hat so I can make them."; next; diff --git a/npc/custom/quests/hunting_missions.txt b/npc/custom/quests/hunting_missions.txt index fd07b8de6..c4e8187de 100644 --- a/npc/custom/quests/hunting_missions.txt +++ b/npc/custom/quests/hunting_missions.txt @@ -3,15 +3,23 @@ //===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.3 -//===== Compatible With: ===================================== -//= Hercules +//= 1.4a //===== Description: ========================================= //= Random hunting missions. //= Rewards are based on quest difficulty. +//===== Additional Comments: ================================= +//= 1.0 Initial script. +//= 1.1 Small improvements and fixes. +//= 1.2 Added party support and replaced blacklists with an +//= SQL query, both thanks to AnnieRuru. +//= 1.3 Re-added a blacklist adapted for the SQL query. +//= 1.3a Added mission reset options. +//= 1.4 Fix ranking table using new SQL database [ossi0110] +//= 1.4a Fix a bug when a character has deleted, that account +//= can't do mission. [AnnieRuru] //============================================================ -prontera,152,187,6 script Hunting Missions 951,{ +prontera,152,187,6 script Hunting Missions 4_F_EDEN_MASTER,{ function Chk; function Cm; mes "[Hunting Missions]"; mes "Hello, "+strcharinfo(0)+"!"; @@ -36,7 +44,7 @@ function Chk; function Cm; switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000")) { case 1: mes "[Hunting Missions]"; - if (#Mission_Count) { + if ( query_sql( "SELECT 1 FROM `char_reg_num_db` WHERE `key` = 'Mission0' AND `char_id` IN ( SELECT `char_id` FROM `char` WHERE `account_id` = "+ getcharid(3) +" )", .@dummy ) && #Mission_Count ) { mes "You've started a mission"; mes "on another character."; close; @@ -72,10 +80,24 @@ function Chk; function Cm; mes "[Hunting Missions]"; mes "Do you really want to"; mes "abandon your mission?"; - if (.Delay) mes "Your delay time will not be reset."; + if (.Reset < 0 && .Delay) + mes "Your delay time will not be reset."; + else if (.Reset > 0) + mes "It will cost "+Cm(.Reset)+" Zeny."; next; switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) { case 1: + if (.Reset > 0) { + if (Zeny < .Reset) { + mes "[Hunting Missions]"; + mes "You don't have enough"; + mes "Zeny to drop this mission."; + emotion e_sry; + close; + } + Zeny -= .Reset; + emotion e_cash; + } mes "[Hunting Missions]"; mes "Alright, I've dropped"; mes "your current mission."; @@ -85,7 +107,7 @@ function Chk; function Cm; setd "Mission"+.@i+"_",0; } set #Mission_Count,0; - if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600); + if (.Reset < 0 && .Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600); close; case 2: mes "[Hunting Missions]"; @@ -107,7 +129,7 @@ function Chk; function Cm; case 6: mes "[Hunting Missions]"; mes "The top hunters are:"; - query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `global_reg_value` WHERE str = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5",.@id,.@name$,.@val); + query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `char_reg_num_db` WHERE `key` = 'Mission_Total' ORDER BY `value` DESC LIMIT 5",.@id,.@name$,.@val); for(set .@i,0; .@i<5; set .@i,.@i+1) mes " [Rank "+(.@i+1)+"] "+((.@name$[.@i] == "")?"^777777none":"^0055FF"+.@name$[.@i]+"^000000 : ^FF0000"+.@val[.@i]+" pt.")+"^000000"; close; @@ -133,7 +155,7 @@ Mission_Status: set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6); set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5; set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5; - set .@Zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2]; + set .@zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2]; next; mes "[Hunting Missions]"; @@ -141,7 +163,7 @@ Mission_Status: mes " > Mission Points: ^0055FF"+.@Mission_Points+"^000000"; mes " > Base Experience: ^0055FF"+Cm(.@Base_Exp)+"^000000"; mes " > Job Experience: ^0055FF"+Cm(.@Job_Exp)+"^000000"; - mes " > Zeny: ^0055FF"+Cm(.@Zeny)+"^000000"; + mes " > Zeny: ^0055FF"+Cm(.@zeny)+"^000000"; if (@f) { set @f,0; return; } next; mes "[Hunting Missions]"; @@ -154,7 +176,7 @@ Mission_Status: set #Mission_Points, #Mission_Points+.@Mission_Points; set BaseExp, BaseExp+.@Base_Exp; set JobExp, JobExp+.@Job_Exp; - set Zeny, Zeny+.@Zeny; + Zeny += .@zeny; for(set .@i,0; .@i<.Quests; set .@i,.@i+1) { setd "Mission"+.@i,0; setd "Mission"+.@i+"_",0; @@ -162,8 +184,8 @@ Mission_Status: set #Mission_Count,0; if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600); set Mission_Total, Mission_Total+1; - if (Mission_Total == 1) query_sql("INSERT INTO `global_reg_value` (`char_id`,`str`,`value`,`type`,`account_id`) VALUES ("+getcharid(0)+",'Mission_Total','1',3,0)"); - else query_sql("UPDATE `global_reg_value` SET `value` = "+Mission_Total+" WHERE char_id = "+getcharid(0)+" AND `str` = 'Mission_Total'"); + if (Mission_Total == 1) query_sql("INSERT INTO `char_reg_num_db` (`char_id`,`key`,`index`,`value`) VALUES ("+getcharid(0)+",'Mission_Total','0',1)"); + else query_sql("UPDATE `char_reg_num_db` SET `value` = "+Mission_Total+" WHERE `char_id` = "+getcharid(0)+" AND `key` = 'Mission_Total'"); close; Mission_Info: @@ -240,7 +262,7 @@ OnNPCKillEvent: for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) { if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) { attachrid $@partymemberaid[.@i]; - if (#Mission_Count && Mission0 && HP > 0) { + if (#Mission_Count && Mission0 && Hp > 0) { getmapxy(.@map2$,.@x2,.@y2,0); if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) { for(set .@j,0; .@j<.Quests; set .@j,.@j+1) { @@ -262,6 +284,7 @@ OnInit: set .Delay,12; // Quest delay, in hours (0 to disable). set .Quests,4; // Number of subquests per mission (increases rewards). set .Party,3; // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only) + set .Reset,-1; // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time) setarray .Count[0], // Min and max monsters per subquest (increases rewards). 40,70; setarray .Modifier[0], // Multipliers for Base Exp, Job Exp, and Zeny rewards. @@ -280,4 +303,4 @@ OnInit: npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1]; end; } -- shop mission_shop -1,512:-1
\ No newline at end of file +- shop mission_shop -1,512:-1 diff --git a/npc/custom/quests/jewel_case.txt b/npc/custom/quests/jewel_case.txt index 9ec952a23..d725a33f1 100644 --- a/npc/custom/quests/jewel_case.txt +++ b/npc/custom/quests/jewel_case.txt @@ -4,14 +4,12 @@ //= Lupus //===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= A quest for players at base level 99, //= with Jewel Case as a reward. //============================================================ -lighthalzen,108,229,2 script La Fenn 766,{ +lighthalzen,108,229,2 script La Fenn 4_M_JPNOJI,{ mes "[La Fenn]"; if(BaseLevel<99) { if(Q_99LVL) { diff --git a/npc/custom/quests/kaho_balmung.txt b/npc/custom/quests/kaho_balmung.txt index a2a154acf..4e598922d 100644 --- a/npc/custom/quests/kaho_balmung.txt +++ b/npc/custom/quests/kaho_balmung.txt @@ -4,8 +4,6 @@ //= MagicalTux //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Custom quests for Balmung and Lord Kaho's Horns. //= WARNING: The quests are very easy, so be careful! @@ -13,7 +11,7 @@ //= 1.1 Cleaned and optimized. [Euphy] //============================================================ -prontera,158,356,4 script Royal Messenger 105,{ +prontera,158,356,4 script Royal Messenger 8W_SOLDIER,{ setarray .@Req1[0],1161,999,120,984,10,996,10,994,10,995,10,997,10; setarray .@Req2[0],5013,2298,1,1001,10,996,10,994,10,995,10,997,10; @@ -44,8 +42,8 @@ prontera,158,356,4 script Royal Messenger 105,{ close; } for(set .@j,1; .@j<13; set .@j,.@j+2) delitem getd(".@Req"+.@i+"["+.@j+"]"), getd(".@Req"+.@i+"["+(.@j+1)+"]"); - set Zeny, Zeny-1000000; + Zeny -= 1000000; mes "I see you already have all the items you need. Here's your "+getitemname(getd(".@Req"+.@i+"[0]"))+", as promised."; getitem getd(".@Req"+.@i+"[0]"),1; close; -}
\ No newline at end of file +} diff --git a/npc/custom/quests/kahohorn.txt b/npc/custom/quests/kahohorn.txt index 031631b74..8c5c4d8cf 100644 --- a/npc/custom/quests/kahohorn.txt +++ b/npc/custom/quests/kahohorn.txt @@ -1,20 +1,18 @@ //===== Hercules Script ====================================== //= Lord Kaho's Horns Quest //===== By: ================================================== -//= +//= //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Custom quest for Lord Kaho's Horns. //===== Additional Comments: ================================= //= 1.1 Optimized, and fixed some requirements. [Euphy] //============================================================ -geffen,115,107,5 script Lord Kaho's Servant 61,{ +geffen,115,107,5 script Lord Kaho's Servant 1_M_PUBMASTER,{ - setarray .@Items[0],7005, 968, 923, 734, 724,2268,7036,7020,5053,7018,741,742,743,750,751,752,753,754; + setarray .@items[0],7005, 968, 923, 734, 724,2268,7036,7020,5053,7018,741,742,743,750,751,752,753,754; setarray .@Drops[0],1272,1087,1039,1260,1046,1115,1252,1147,1038,1059; set .@n$, "[Lord Kaho's Servant]"; @@ -32,17 +30,17 @@ geffen,115,107,5 script Lord Kaho's Servant 61,{ next; mes .@n$; for(set .@i,0; .@i<10; set .@i,.@i+1) - mes "1x ^0055FF"+getitemname(.@Items[.@i])+"^000000 (from "+strmobinfo(1,.@Drops[.@i])+")"; + mes "1x ^0055FF"+getitemname(.@items[.@i])+"^000000 (from "+strmobinfo(1,.@Drops[.@i])+")"; next; mes .@n$; mes "We're not done yet, sweetie..."; mes "I'm a big fan of dolls, so you need to bring me these cuties!"; for(set .@i,10; .@i<18; set .@i,.@i+1) - mes "1x ^0055FF"+getitemname(.@Items[.@i])+"^000000"; + mes "1x ^0055FF"+getitemname(.@items[.@i])+"^000000"; 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?"; @@ -54,16 +52,16 @@ geffen,115,107,5 script Lord Kaho's Servant 61,{ close; } mes .@n$; for(set .@i,0; .@i<18; set .@i,.@i+1) - if (!countitem(.@Items[.@i])) { set .@nr,1; break; } + if (!countitem(.@items[.@i])) { set .@nr,1; break; } if (.@nr || countitem(714) < 3 || Zeny < 5000000) { mes "I can't afford to make this if you don't bring all materials needed. Please understand this is to benefit heroes such as yourself!"; close; } for(set .@i,0; .@i<18; set .@i,.@i+1) - delitem .@Items[.@i],1; + delitem .@items[.@i],1; delitem 714,3; - set Zeny, Zeny-5000000; + Zeny -= 5000000; mes "Wow! You are brave indeed!"; getitem 5013,1; mes "Enjoy being God of Rune-Midgard!"; close; -}
\ No newline at end of file +} diff --git a/npc/custom/quests/kings_items.txt b/npc/custom/quests/kings_items.txt index d935dac08..055315810 100644 --- a/npc/custom/quests/kings_items.txt +++ b/npc/custom/quests/kings_items.txt @@ -1,19 +1,17 @@ //===== Hercules Script ====================================== //= Event King Items -//===== By: ================================================== +//===== By: ================================================== //= $ephiroth -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules -//===== Description: ========================================= +//===== Description: ========================================= //= Grand Circlet Quest combined with Excalibur Quest. //===== Additional Comments: ================================= //= 2006/09/27: 1.0 Release and fully working. [$ephiroth] //= 1.1 Optimized. [Euphy] //============================================================ -prt_castle,80,170,4 script King of Prontera 108,{ +prt_castle,80,170,4 script King of Prontera 1_M_PRON_KING,{ mes "[King of Prontera]"; mes "Hello, can you help me?"; next; @@ -26,15 +24,15 @@ prt_castle,80,170,4 script King of Prontera 108,{ mes "If you get her these items I'm sure she'll calm down."; mes "I'll give you my crown or my sword as a reward."; next; - setarray .@Items1[0],5007,742,30,741,50,753,20,732,1,710,20,629,20; - setarray .@Items2[0],1137,2254,1,2282,1,714,1; + setarray .@items1[0],5007,742,30,741,50,753,20,732,1,710,20,629,20; + setarray .@items2[0],1137,2254,1,2282,1,714,1; switch(select("What do you need?:I have the items!:Forget it.")) { case 1: for(set .@i,1; .@i<3; set .@i,.@i+1) { mes "[King of Prontera]"; mes "If you could get me:"; - for(set .@j,1; .@j<getarraysize(getd(".@Items"+.@i)); set .@j,.@j+2) - mes " ~ ^0055FF"+getd(".@Items"+.@i+"["+(.@j+1)+"]")+"^000000x "+getitemname(getd(".@Items"+.@i+"["+.@j+"]")); + for(set .@j,1; .@j<getarraysize(getd(".@items"+.@i)); set .@j,.@j+2) + mes " ~ ^0055FF"+getd(".@items"+.@i+"["+(.@j+1)+"]")+"^000000x "+getitemname(getd(".@items"+.@i+"["+.@j+"]")); mes "I'll give my "+((.@i)?"sword.":"crown."); if (.@i==2) close; next; } @@ -43,16 +41,16 @@ prt_castle,80,170,4 script King of Prontera 108,{ mes "What item do you want?"; next; set .@i, select("Crown:Sword"); - 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; + 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; } - for(set .@j,1; .@j<getarraysize(getd(".@Items"+.@i)); set .@j,.@j+2) - delitem getd(".@Items"+.@i+"["+.@j+"]"), getd(".@Items"+.@i+"["+(.@j+1)+"]"); - getitem getd(".@Items"+.@i+"[0]"),1; + for(set .@j,1; .@j<getarraysize(getd(".@items"+.@i)); set .@j,.@j+2) + delitem getd(".@items"+.@i+"["+.@j+"]"), getd(".@items"+.@i+"["+(.@j+1)+"]"); + getitem getd(".@items"+.@i+"[0]"),1; mes "THANK YOU SOO MUCH!!"; mes "This will surely calm her down."; mes "As promised, here is my "+((.@i==1)?"crown.":"sword."); @@ -64,7 +62,7 @@ prt_castle,80,170,4 script King of Prontera 108,{ } } -prt_castle,84,170,4 script King's Daughter 62,{ +prt_castle,84,170,4 script King's Daughter 1_M_SIZ,{ mes "[King's Daughter]"; mes "Hmph, I hate my dad right now!!"; next; @@ -76,4 +74,4 @@ prt_castle,84,170,4 script King's Daughter 62,{ mes "Well, he won't give me what I want!!"; mes "He's the King of Prontera. He should be able to get me ANYTHING!!!"; close; -}
\ No newline at end of file +} diff --git a/npc/custom/quests/may_hats.txt b/npc/custom/quests/may_hats.txt index e0f1f87ee..ce2c09764 100644 --- a/npc/custom/quests/may_hats.txt +++ b/npc/custom/quests/may_hats.txt @@ -5,23 +5,21 @@ //= Lupus //===== Current Version: ===================================== //= 1.01 -//===== Compatible With: ===================================== -//= Hercules //===== 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 //============================================================ -gonryun,187,140,4 script Yakima 850,{ +gonryun,187,140,4 script Yakima 4_F_EINWOMAN,{ mes "[Yakima]"; mes callfunc("F_Hi"); mes "I can make some items for you."; mes "They are quite rare novadays..."; specialeffect 417; next; - menu "Bird Nest",-,"Lion Mask",M_2,"Skeleton Manteau",M_3,"Fashion Hip Sack",M_4,"Sales Banner",M_5,"Leave",M_EXIT; + menu "Bird Nest",-,"Lion Mask",M_2,"Skeleton Manteau",M_3,"Fashion Hip Sack",M_4,"Sales Banner",M_5,"Leave",M_Exit; mes "[Yakima]"; mes "Oh.. it's an excellent item for any beast hunter."; @@ -36,9 +34,9 @@ gonryun,187,140,4 script Yakima 850,{ mes "[Yakima]"; mes "Do you have all the items?"; next; - menu "Yeah.",-,"Nay.",M_EXIT; + menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(5067) < 1 || countitem(916) < 920 || countitem(925) < 310) GOTO L_NOITEM;//Items: Sombrero, Feather_of_Birds, Bill_of_Birds, + if(countitem(5067) < 1 || countitem(916) < 920 || countitem(925) < 310) goto L_NOITEM;//Items: Sombrero, Feather_of_Birds, Bill_of_Birds, delitem 5067,1;//Items: Sombrero, delitem 916,920;//Items: Feather_of_Birds, delitem 925,310;//Items: Bill_of_Birds, @@ -63,9 +61,9 @@ M_2: mes "[Yakima]"; mes "Do you have all the items?"; next; - menu "Yeah.",-,"Nay.",M_EXIT; + menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(5098) < 1 || countitem(1030) < 10 || countitem(1029) < 30 || countitem(7267) < 300) GOTO L_NOITEM;//Items: Tiger_Mask, Tiger_Skin, Tiger's_Footskin, Tiger_Panty, + if(countitem(5098) < 1 || countitem(1030) < 10 || countitem(1029) < 30 || countitem(7267) < 300) goto L_NOITEM;//Items: Tiger_Mask, Tiger_Skin, Tiger's_Footskin, Tiger_Panty, delitem 5098,1;//Items: Tiger_Mask, delitem 1030,10;//Items: Tiger's_Footskin, delitem 1029,30;//Items: Tiger_Skin, @@ -92,9 +90,9 @@ M_3: mes "[Yakima]"; mes "Do you have all the items?"; next; - menu "Yeah.",-,"Nay.",M_EXIT; + menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(2508) < 1 || countitem(2506) < 2 || countitem(2609) < 3 || countitem(7207) < 10) GOTO L_NOITEM;//Items: Ragamuffin_Manteau, Manteau_, Skull_Ring, Old_Manteau, + if(countitem(2508) < 1 || countitem(2506) < 2 || countitem(2609) < 3 || countitem(7207) < 10) goto L_NOITEM;//Items: Ragamuffin_Manteau, Manteau_, Skull_Ring, Old_Manteau, delitem 2508,1;//Items: Ragamuffin_Manteau, delitem 2506,2;//Items: Manteau_, delitem 2609,3;//Items: Skull_Ring, @@ -121,9 +119,9 @@ M_4: mes "[Yakima]"; mes "Do you have all the items?"; next; - menu "Yeah.",-,"Nay.",M_EXIT; + menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(2269) < 3 || countitem(2207) < 3 || countitem(2612) < 2 || countitem(2287)<3 ) GOTO L_NOITEM;//Items: Romantic_Flower, Fancy_Flower, Flower_Ring, + if(countitem(2269) < 3 || countitem(2207) < 3 || countitem(2612) < 2 || countitem(2287)<3 ) goto L_NOITEM;//Items: Romantic_Flower, Fancy_Flower, Flower_Ring, delitem 2269,3;//Items: Romantic_Flower, delitem 2207,3;//Items: Fancy_Flower, delitem 2612,2;//Items: Flower_Ring, @@ -152,9 +150,9 @@ M_5: mes "[Yakima]"; mes "Do you have all the items?"; next; - menu "Yeah.",-,"Nay.",M_EXIT; + menu "Yeah.",-,"Nay.",M_Exit; - if(countitem(975) < 1 || countitem(980) < 1 || countitem(2272) < 2 || countitem(2262) < 3 || countitem(7298) < 180 || countitem(7164) < 20) GOTO L_NOITEM;//Items: Scarlet_Dyestuff, Orange_Dyestuff, Stop_Post, Clown_Nose, Fig_Leaf, Solid_Peach, + if(countitem(975) < 1 || countitem(980) < 1 || countitem(2272) < 2 || countitem(2262) < 3 || countitem(7298) < 180 || countitem(7164) < 20) goto L_NOITEM;//Items: Scarlet_Dyestuff, Orange_Dyestuff, Stop_Post, Clown_Nose, Fig_Leaf, Solid_Peach, delitem 975,1;//Items: Scarlet_Dyestuff, delitem 980,1;//Items: Orange_Dyestuff, delitem 2272,2;//Items: Stop_Post, @@ -173,7 +171,7 @@ L_NOITEM: emotion e_sry; close; -M_EXIT: +M_Exit: mes "[Yakima]"; mes callfunc("F_Bye"); close; diff --git a/npc/custom/quests/quest_shop.txt b/npc/custom/quests/quest_shop.txt index 3f69c73ef..fb5b7993d 100644 --- a/npc/custom/quests/quest_shop.txt +++ b/npc/custom/quests/quest_shop.txt @@ -3,24 +3,30 @@ //===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.6 -//===== Compatible With: ===================================== -//= Hercules +//= 1.6a //===== Description: ========================================= //= A dynamic quest shop based on Lunar's, with easier config. //= Includes support for multiple shops & cashpoints. //= Item Preview script by ToastOfDoom. +//===== Additional Comments: ================================= +//= 1.0 Initial script. +//= 1.2 Added category support. +//= 1.3 More options and fixes. +//= 1.4 Added debug settings. +//= 1.5 Replaced categories with shop IDs. +//= 1.6 Added support for purchasing stackables. +//= 1.6a Added support for previewing costumes and robes. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ -prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; } +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); @@ -116,13 +122,13 @@ OnBuyItem: mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000"; next; setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11); - if (((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0) + if (@qe[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { - switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) { + 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; @@ -132,19 +138,20 @@ OnBuyItem: mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000"; close; } - if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]); + if (.@q[4]) Zeny -= (.@q[4]*.@q[1]); if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]); if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2) delitem .@q[.@i],.@q[.@i+1]*.@q[1]; getitem .@q[0],.@q[2]; if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(getitemname(.@q[0])))+"!",0; - specialeffect2 699; + specialeffect2 EF_FLOWERLEAF; close; case 2: - setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1; - if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2]; - if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2]; - if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2]; + setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1; + if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2]; + else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2]; + else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2]; + else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2]; break; case 3: close; @@ -152,12 +159,13 @@ OnBuyItem: } OnEnd: - if (@qe[6]) { + if (@qe[7]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; + changelook LOOK_ROBE, @qe[6]; } - deletearray @qe[0],7; + deletearray @qe[0],8; end; function Add { @@ -219,4 +227,4 @@ function script qshop { - shop qshop2 -1,909:-1 - shop qshop3 -1,909:-1 - shop qshop4 -1,909:-1 -- shop qshop5 -1,909:-1
\ No newline at end of file +- shop qshop5 -1,909:-1 diff --git a/npc/custom/quests/questboard.txt b/npc/custom/quests/questboard.txt index abfb61a4d..3e7a90d9d 100644 --- a/npc/custom/quests/questboard.txt +++ b/npc/custom/quests/questboard.txt @@ -4,11 +4,9 @@ //= tr0n //===== Current Version: ===================================== //= 1.4.4 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Easily add collection and hunting quests. -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= // 1.0.0 Release // 1.1.0 Added zeny reward // 1.2.0 Rewrote checkmob and killcounter @@ -17,7 +15,7 @@ // 1.4.4 Added Quest delay //============================================================ -prontera,129,215,5 script Questboard 857,{ +prontera,129,215,5 script Questboard 4_BOARD3,{ if(c_run==1){ mes "[^FF7700Questboard^000000]"; @@ -196,7 +194,7 @@ L_checkitems: mes "[^FF7700Questboard^000000]"; mes "Congratulation! Here is your Reward."; if(getd("." +currentquest$+"_collectionprize")!=0) getitem(getd("." +currentquest$+"_collectionprize"),getd("." +currentquest$+"_collectionamount")); - set Zeny,Zeny+getd("." +currentquest$+"_collectionzeny"); + Zeny += getd("." +currentquest$+"_collectionzeny"); getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]"); setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay; set currentquest$, ""; @@ -230,7 +228,7 @@ L_checkmobs2: setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0); } if(getd("." +currentquest$+"_huntingprize")!=0) getitem(getd("." +currentquest$+"_huntingprize"),getd("." +currentquest$+"_huntingamount")); - set Zeny, Zeny+getd("." +currentquest$+"_huntingzeny"); + Zeny += getd("." +currentquest$+"_huntingzeny"); getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]"); setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay; set currentquest$, ""; @@ -288,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; } @@ -311,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/sphinx_mask.txt b/npc/custom/quests/sphinx_mask.txt index b2cf64559..a32828b8b 100644 --- a/npc/custom/quests/sphinx_mask.txt +++ b/npc/custom/quests/sphinx_mask.txt @@ -1,19 +1,17 @@ //===== Hercules Script ====================================== //= Sphinx Mask Quest (custom) -//===== By: ================================================== +//===== By: ================================================== //= sabernet09 -//===== Current Version: ===================================== +//===== Current Version: ===================================== //= 1.3 -//===== Compatible With: ===================================== -//= Hercules -//===== Description: ========================================= +//===== Description: ========================================= //= This quest is related to Umbalian Chief. //= 1.1 Removed it from official Umbala quests [Lupus] //= 1.2 Added a missing variable (sphmask_q) [erKURITA] //= 1.3 Optimized, and coordinates moved. [Euphy] -//============================================================ +//============================================================ -morocc,208,90,6 script Turban Thief 58,{ +morocc,208,90,6 script Turban Thief 1_M_MERCHANT,{ mes "[Turban Thief]"; if(event_umbala < 2) { mes "What do you wan te withz me? Be gone!"; @@ -44,9 +42,9 @@ L_Menu: if (Zeny < getarg(2)) { mes "Are youz playin wit me? You don't have ze money!"; close; } - set Zeny, Zeny-getarg(2); + Zeny -= getarg(2); mes "O ho ho, it's a deal, then!"; getitem 7114,1; set sphmask_q,1; close; -}
\ No newline at end of file +} diff --git a/npc/custom/quests/sunglasses.txt b/npc/custom/quests/sunglasses.txt index 6e44ce007..447fca877 100644 --- a/npc/custom/quests/sunglasses.txt +++ b/npc/custom/quests/sunglasses.txt @@ -4,8 +4,6 @@ //= amichan //===== Current Version: ===================================== //= 1.8 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Quest to get Slotted Sunglasses. //= Will reset after quest completion. @@ -17,7 +15,7 @@ //= 1.8 Cleaning. [Euphy] //============================================================ -alberta,88,193,5 script Sunglasses Trader 73,{ +alberta,88,193,5 script Sunglasses Trader 1_F_MERCHANT_01,{ mes "[Sunglasses Trader]"; if(SG_QUEST1 == 1) { mes "There is nothing more I can tell you."; @@ -58,7 +56,7 @@ alberta,88,193,5 script Sunglasses Trader 73,{ close; } delitem 730,1; delitem 949,50; - set Zeny, Zeny-100000; + Zeny -= 100000; set SG_QUEST1,1; mes "[Sunglasses Trader]"; mes "Great. Now, listen carefully."; @@ -69,7 +67,7 @@ alberta,88,193,5 script Sunglasses Trader 73,{ close; } -moc_fild07,334,186,5 script Maseph 702,{ +moc_fild07,334,186,5 script Maseph 4_F_GON,{ mes "[Maseph]"; if(SG_QUEST1 != 1) { mes "Lovely day, isn't it ?"; @@ -96,7 +94,7 @@ moc_fild07,334,186,5 script Maseph 702,{ mes "You do not have enough Zeny. Come back to me when you do."; close; } delitem 2201,1; - set Zeny, Zeny-400000; + Zeny -= 400000; mes "Thank you. I will get on it right away..."; next; mes "[Maseph]"; @@ -105,4 +103,4 @@ moc_fild07,334,186,5 script Maseph 702,{ getitem 2202,1; set SG_QUEST1,0; close; -}
\ No newline at end of file +} diff --git a/npc/custom/quests/tha_statues.txt b/npc/custom/quests/tha_statues.txt index a9c53a033..c4787fcd3 100644 --- a/npc/custom/quests/tha_statues.txt +++ b/npc/custom/quests/tha_statues.txt @@ -4,8 +4,6 @@ //= Bibilol, Moryagorn //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Custom Thanatos Tower Quest //===== Additional Comments: ================================= @@ -15,7 +13,7 @@ //Statue (NPC)(U: UP, D: DOWN, R: RIGHT, L: LEFT) : // Explain Npc -tha_t08,69,106,4 script Statue 111,{ +tha_t08,69,106,4 script Statue HIDDEN_NPC,{ mes "You can read on the back of the statue:"; mes "'By the spirit of olds, the walls are closed"; mes "Upper floors or foreign taboo"; @@ -30,7 +28,7 @@ tha_t08,69,106,4 script Statue 111,{ //(Mediane)(D,R)-->tha_t09,84,99,4 //Script: -tha_t09,17,158,4 script Thalos 111,{ +tha_t09,17,158,4 script Thalos HIDDEN_NPC,{ if(TSQ_CHK == 1) goto done; mes "[Thalos]"; mes "You must find the 2nd Statue now."; @@ -43,13 +41,13 @@ done: } -tha_t09,84,99,4 script Mediane 111,{ +tha_t09,84,99,4 script Mediane HIDDEN_NPC,{ if(TSQ_CHK != 1) goto nook; mes "[Mediane]"; 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]"; @@ -63,7 +61,7 @@ nook: //(Veriaelle)(D,L)-->tha_t10,99,97,4 //Script: -tha_t10,130,159,4 script Melkor 111,{ +tha_t10,130,159,4 script Melkor HIDDEN_NPC,{ if(TSQ_CHK == 1) goto done; mes "[Melkor]"; mes "You must find the other Spirits now."; @@ -76,7 +74,7 @@ done: close; } -tha_t10,160,98,4 script Zebrus 111,{ +tha_t10,160,98,4 script Zebrus HIDDEN_NPC,{ if(TSQ_CHK != 1) goto nook; mes "[Zebrus]"; mes "Keep on this way, There is one Spirit left"; @@ -90,7 +88,7 @@ nook: close; } -tha_t10,99,97,4 script Veriaelle 111,{ +tha_t10,99,97,4 script Veriaelle HIDDEN_NPC,{ if(TSQ_CHK != 2) goto nook; mes "[Veriaelle]"; mes "Okay, i am warping you to the next floor."; @@ -113,7 +111,7 @@ nook: //(Seranes)(U,R)-->tha_t11,85,85,4 //Script: -tha_t11,16,85,4 script Throtre 111,{ +tha_t11,16,85,4 script Throtre HIDDEN_NPC,{ if(TSQ_CHK == 1) goto done; mes "[Throtre]"; mes "You got my authorization for the next floor"; @@ -126,7 +124,7 @@ done: close; } -tha_t11,85,16,4 script Klermaz 111,{ +tha_t11,85,16,4 script Klermaz HIDDEN_NPC,{ if(TSQ_CHK != 1) goto nook; mes "[Klermaz]"; mes "Hmm it seems that Throtre allowed you to pass."; @@ -141,7 +139,7 @@ nook: close; } -tha_t11,16,16,4 script Mihane 111,{ +tha_t11,16,16,4 script Mihane HIDDEN_NPC,{ if(TSQ_CHK != 2) goto nook; mes "[Mihane]"; mes "Keep on this way, Only 1 Left."; @@ -155,7 +153,7 @@ nook: close; } -tha_t11,85,85,4 script Seranes 111,{ +tha_t11,85,85,4 script Seranes HIDDEN_NPC,{ if(TSQ_CHK != 3 ) goto nook; mes "[Seranes]"; mes "Perfect, it seems that the other spirits grants you the access."; @@ -180,7 +178,7 @@ nook: //(Sox)(U)-->tha_t12,128,88,4 //Script: -tha_t12,103,18,4 script Nox 111,{ +tha_t12,103,18,4 script Nox HIDDEN_NPC,{ if(TSQ_CHK == 1 ) goto done; mes "[Nox]"; mes "Fine, 4 Spirits left."; @@ -192,7 +190,7 @@ done: close; } -tha_t12,162,58,4 script Vox 111,{ +tha_t12,162,58,4 script Vox HIDDEN_NPC,{ if(TSQ_CHK != 1 ) goto nook; mes "[Vox]"; mes "Keep on this way, 3 Spirits remaining !"; @@ -206,7 +204,7 @@ nook: close; } -tha_t12,96,57,4 script Hox 111,{ +tha_t12,96,57,4 script Hox HIDDEN_NPC,{ if(TSQ_CHK != 2 ) goto nook; mes "[Hox]"; mes "You are on the good way, 2 Spirits remaining !"; @@ -220,7 +218,7 @@ nook: close; } -tha_t12,153,17,4 script Dox 111,{ +tha_t12,153,17,4 script Dox HIDDEN_NPC,{ if(TSQ_CHK != 3 ) goto nook; mes "[Dox]"; mes "Perfect, 1 Spirit left."; @@ -234,7 +232,7 @@ nook: close; } -tha_t12,128,88,4 script Sox 111,{ +tha_t12,128,88,4 script Sox HIDDEN_NPC,{ if(TSQ_CHK != 4 ) goto nook; mes "[Sox]"; mes "You have just passed the test successfully."; diff --git a/npc/custom/quests/thq/THQS_ChatingNPC.txt b/npc/custom/quests/thq/THQS_ChatingNPC.txt index 752681e39..8ade6d8fd 100644 --- a/npc/custom/quests/thq/THQS_ChatingNPC.txt +++ b/npc/custom/quests/thq/THQS_ChatingNPC.txt @@ -4,8 +4,6 @@ //= Fredzilla //===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Start for Treasure hunter quests //===== Additional Comments: ================================= @@ -14,7 +12,7 @@ //============================================================ //Entrance Flags -yuno,48,101,6 script Notice 722,{ +yuno,48,101,6 script Notice GUILD_FLAG,{ mes "^FF0000[ Treasure Hunter Guild House ]^000000"; mes " "; mes "Welcome to the Treasure Hunter's Guild House."; @@ -26,7 +24,7 @@ yuno,48,101,6 script Notice 722,{ close; } //Saver Girl; -yuno_in01,32,178,3 script Ahlma 94,{ +yuno_in01,32,178,3 script Ahlma 4_F_MAID,{ mes "[Ahlma]"; if (Event_THQS == 0) goto N_Member; mes "Welcome to The Treasure Hunter Guild."; @@ -46,7 +44,7 @@ N_Member: close; } //Retired Smile mask girl; -yuno_in01,33,162,3 script Smile Helper 92,{ +yuno_in01,33,162,3 script Smile Helper 4_F_03,{ mes "[Smile Gal]"; mes "Oh man...I am so sick of"; mes "trading Mr. Smile masks for crap."; @@ -55,15 +53,15 @@ yuno_in01,33,162,3 script Smile Helper 92,{ close; } //Usless Female Assasin; -yuno_in01,22,162,6 script Female Assasin 725,{ +yuno_in01,22,162,6 script Female Assasin 4_F_JOB_ASSASSIN,{ mes "[Sharlet]"; if (Event_THQS > 0) goto N_Member; mes "Umm sorry I'm not gona waste my time talking to you if you arn't even a member!"; close; N_Member: - set @TEMP,rand(1,2); - if (@TEMP == 1) goto N_Chat1; - if (@TEMP == 2) goto N_Chat2; + set @temp,rand(1,2); + if (@temp == 1) goto N_Chat1; + if (@temp == 2) goto N_Chat2; mes "How are you reading this???"; mes "Well unless you are reading the code :)"; close; @@ -76,14 +74,14 @@ N_Chat2: close; } //another usless member -yuno_in01,25,162,6 script Female Wizard 123,{ +yuno_in01,25,162,6 script Female Wizard 2_F_MAGICMASTER,{ mes "[Sasha]"; if (Event_THQS > 0) goto N_Member; mes "Umm sorry I'm not gona waste my time talking to you if you arn't even a member!"; close; N_Member: - set @TEMP,rand(2); - if (@TEMP == 1) goto N_Chat; + set @temp,rand(2); + if (@temp == 1) goto N_Chat; mes "Ahh welcome fellow Treasure Hunter "+strcharinfo(0)+"."; mes "Did you hear about that goat man running around in the trees?"; mes " "; diff --git a/npc/custom/quests/thq/THQS_GuildNPC.txt b/npc/custom/quests/thq/THQS_GuildNPC.txt index 01b14687f..326735a7a 100644 --- a/npc/custom/quests/thq/THQS_GuildNPC.txt +++ b/npc/custom/quests/thq/THQS_GuildNPC.txt @@ -4,8 +4,6 @@ //= Fredzilla //===== Current Version: ===================================== //= 1.0 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Start for Treasure hunter quests //===== Additional Comments: ================================= @@ -13,7 +11,7 @@ //= #Treasure_Token - used to keep track of tokens //============================================================ -yuno_in01,124,164,6 script Guild Leader 108,{ +yuno_in01,124,164,6 script Guild Leader 1_M_PRON_KING,{ mes "[Keegan]"; mes "What brings you here? Have something to say?"; next; @@ -27,8 +25,8 @@ yuno_in01,124,164,6 script Guild Leader 108,{ mes "Umm... Well that is all you need to do. Hahaha."; next; menu "Pay ^FF000025,000z^000000.",-,"Thats way to high!!",N_HighPrice; - if (zeny < 25000) goto N_NoZeny; - set Zeny,Zeny-25000; + if (Zeny < 25000) goto N_NoZeny; + Zeny -= 25000; //getitem 7950, 1; //getitem 7951, 1; set Event_THQS,1; diff --git a/npc/custom/quests/thq/THQS_QuestNPC.txt b/npc/custom/quests/thq/THQS_QuestNPC.txt index 5b4d98a27..76790221b 100644 --- a/npc/custom/quests/thq/THQS_QuestNPC.txt +++ b/npc/custom/quests/thq/THQS_QuestNPC.txt @@ -4,8 +4,6 @@ //= Fredzilla //===== Current Version: ===================================== //= 1.4 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Start for Treasure hunter quests //===== Additional Comments: ================================= @@ -18,7 +16,7 @@ //= 1.4 Fixed typos. (bugreport:2607) [Kisuka] //============================================================ -yuno_in01,112,151,6 script Quest Manager 62,{ +yuno_in01,112,151,6 script Quest Manager 1_M_SIZ,{ mes "[Guy]"; mes "Welcome to the Treasure Hunters Guild "+strcharinfo(0)+"."; next; @@ -32,7 +30,7 @@ yuno_in01,112,151,6 script Quest Manager 62,{ mes "Good well get back out there."; close; N_PayZeny: - if (zeny < 2500) goto N_ZenyFail; + if (Zeny < 2500) goto N_ZenyFail; set one_qset, 0; set two_qset, 0; set three_qset, 0; @@ -44,9 +42,9 @@ N_PayZeny: set nine_qset, 0; set ten_qset, 0; set On_Quest, 0; - set Zeny,Zeny-2500; + Zeny -= 2500; //add time delay penalty. You can get another quest after 2 - 3 hours. [Lupus] - set #THQ_DELAY, (GetTime(7)*12*31*24+GetTime(6)*31*24+GetTime(5)*24+GetTime(3)+rand(2,3)); + set #THQ_DELAY, (gettime(7)*12*31*24+gettime(6)*31*24+gettime(5)*24+gettime(3)+rand(2,3)); mes "[Guy]"; mes "Its sad to see someone give a quest up..."; mes "Shame on you."; @@ -61,7 +59,7 @@ N_ZenyFail: N_NewQuest: if (Event_THQS == 0) goto N_Signup; //checking if time penalty is over [Lupus] - if (#THQ_DELAY > (GetTime(7)*12*31*24 + GetTime(6)*31*24 + GetTime(5)*24 + GetTime(3)) ) goto L_NoQuestsForYet; + if (#THQ_DELAY > (gettime(7)*12*31*24 + gettime(6)*31*24 + gettime(5)*24 + gettime(3)) ) goto L_NoQuestsForYet; mes "[Guy]"; mes "Ahh welcome fellow Treasure Hunter."; mes "You currently have ^FF0000"+#Treasure_Token+"^000000 treasure tokens!!!"; @@ -73,7 +71,7 @@ N_NewQuest: mes "Ok lets see what quest we can give you today."; mes "The quest names in ^FF0000This Colour^000000 mean that they are more challanging then the rest, but have better rewards."; next; - set #THQ_DELAY,(GetTime(7)*12*31*24+GetTime(6)*31*24+GetTime(5)*24+GetTime(3) + 1); //you can get another quest after 1 hour [Lupus] + set #THQ_DELAY,(gettime(7)*12*31*24+gettime(6)*31*24+gettime(5)*24+gettime(3) + 1); //you can get another quest after 1 hour [Lupus] emotion 21; if(@treasure_job==0) set @treasure_job,rand(1,10); //doesn't allow cheaters to pick any quest they want if(@treasure_job==2) goto N_JobList2; @@ -102,7 +100,7 @@ N_Signup: L_NoQuestsForYet: mes "[Guy]"; mes "I'm afraid there aren't any Quests for you yet."; - mes "Call in "+ (#THQ_DELAY - (GetTime(7)*12*31*24+GetTime(6)*31*24+GetTime(5)*24+GetTime(3)) )+" hours later."; + mes "Call in "+ (#THQ_DELAY - (gettime(7)*12*31*24+gettime(6)*31*24+gettime(5)*24+gettime(3)) )+" hours later."; emotion 17; close; diff --git a/npc/custom/quests/thq/THQS_Quests.txt b/npc/custom/quests/thq/THQS_Quests.txt index 70494ab9b..40e89c18b 100644 --- a/npc/custom/quests/thq/THQS_Quests.txt +++ b/npc/custom/quests/thq/THQS_Quests.txt @@ -4,8 +4,6 @@ //= Fredzilla //===== Current Version: ===================================== //= 1.6 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Start for Treasure hunter quests //===== Additional Comments: ================================= @@ -21,7 +19,7 @@ ///////Job list 1/////// //1-1 -mjolnir_09,187,189,6 script Old Man 107,{ +mjolnir_09,187,189,6 script Old Man 1_M_PAY_ELDER,{ if (one_qset==1) goto N_QuestStart; mes "[Old Man]"; mes "Eh! Can't and old man walk in peace anymore?!"; @@ -39,7 +37,7 @@ N_QuestStart: close; } //1-2; -pay_arche,86,129,6 script Archer 732,{ +pay_arche,86,129,6 script Archer 4_M_JOB_HUNTER,{ if (one_qset == 2) goto N_QuestStart; mes "[Kieth]"; mes "Sorry can't talk, I'm a busy man, I'm waiting for my package."; @@ -60,7 +58,7 @@ N_QuestStart: close; } //1-3 -prt_fild06,37,192,6 script Farmer 125,{ +prt_fild06,37,192,6 script Farmer 4_M_TELEPORTER,{ if (one_qset == 3 && countitem(909) > 19 && countitem(955) > 19 && countitem(914) > 19 && countitem(705) > 19) goto N_QuestComp; if (one_qset==3) goto N_QuestStart; mes "[Billy-Bob]"; @@ -87,7 +85,7 @@ N_QuestStart: close; } //1-4 -prontera,264,353,6 script Old Lady#thq 103,{ +prontera,264,353,6 script Old Lady#thq 8_F_GRANDMOTHER,{ if (one_qset == 4 && countitem(934) > 14) goto N_QuestComp; if (one_qset == 4) goto N_QuestStart; mes "[Old Lady]"; @@ -116,7 +114,7 @@ N_QuestStart: } ///////Job list 2/////// //2-1; -morocc,59,109,6 script Erika 700,{ +morocc,59,109,6 script Erika 8_F_GIRL,{ if (two_qset == 1 && countitem(1072) > 0) goto N_QuestComp; if (two_qset == 1) goto N_QuestStart; mes "[Erika]"; @@ -151,7 +149,7 @@ N_QuestStart: close; } //2-2; -in_moc_16,15,30,6 script Jeramiah 730,{ +in_moc_16,15,30,6 script Jeramiah 4_M_JOB_ASSASSIN,{ if (two_qset == 2 && countitem(1998) > 0) goto N_QuestComp; if (two_qset == 2) goto N_QuestStart; mes "[Jeramiah]"; @@ -174,7 +172,7 @@ N_QuestStart: close; } //2-3; -prt_fild07,316,263,6 script Marsh Man 84,{ +prt_fild07,316,263,6 script Marsh Man 4_M_02,{ if (two_qset == 3 && countitem(518) > 19) goto N_QuestComp; if (two_qset == 3) goto N_QuestStart; mes "[Lenith]"; @@ -199,7 +197,7 @@ N_QuestStart: close; } //2-4; -payon,161,72,6 script Molly 714,{ +payon,161,72,6 script Molly 4_F_06,{ if (two_qset == 4 && countitem(7005) > 0) goto N_QuestComp; if (two_qset == 4) goto N_QuestStart; mes "[Molly]"; @@ -229,7 +227,7 @@ N_QuestStart: } ///////Job list 3/////// //3-1; -moc_fild04,208,322,6 script Clark 65,{ +moc_fild04,208,322,6 script Clark 1_M_YOUNGKNIGHT,{ if (three_qset == 1 && countitem(1040) > 29) goto N_QuestComp; if (three_qset == 1) goto N_QuestStart; mes "[Clark]"; @@ -258,7 +256,7 @@ N_QuestStart: close; } //3-2; -yuno_fild01,186,162,6 script Flank 73,{ +yuno_fild01,186,162,6 script Flank 1_F_MERCHANT_01,{ if (three_qset == 2 && countitem(1082) > 0) goto N_QuestComp; if (three_qset == 2) goto N_QuestStart; mes "[Flank]"; @@ -283,7 +281,7 @@ N_QuestStart: close; } //3-3 Goes to 7-3 using callfunc -prt_sewb1,120,245,6 script Sewer Managment Knight 705,{ +prt_sewb1,120,245,6 script Sewer Managment Knight 4_M_GEF_SOLDIER,{ if (three_qset == 3 && countitem(955) > 149) goto N_QuestComp; if (three_qset == 3) goto N_QuestStart; if (seven_qset == 3) goto N_QuestStart2; @@ -311,7 +309,7 @@ N_QuestStart2: close; } //3-4 -mjolnir_02,87,357,6 script Man#01 51,{ +mjolnir_02,87,357,6 script Man#01 1_M_BARD,{ if (three_qset == 4 && countitem(1041) > 49) goto N_QuestComp; if (three_qset == 4) goto N_QuestStart; mes "[Rudolfo]"; @@ -339,7 +337,7 @@ N_QuestStart: } ///////Job list 4/////// //4-1; -pay_arche,45,138,6 script Flora 724,{ +pay_arche,45,138,6 script Flora 4_F_07,{ if (four_qset == 1 && countitem(957) > 49) goto N_QuestComp; if (four_qset == 1) goto N_QuestStart; mes "[Flora]"; @@ -373,7 +371,7 @@ OnMobDead: end; } //4-2; -yuno,45,138,6 script Zed 735,{ +yuno,45,138,6 script Zed 4_M_JOB_WIZARD,{ if (four_qset == 2 && countitem(1999) > 0) goto N_QuestComp; if (four_qset == 2) goto N_QuestStart; mes "[Zed]"; @@ -398,7 +396,7 @@ N_QuestStart: close; } //4-3; -prontera,176,204,6 script Dassy 95,{ +prontera,176,204,6 script Dassy 4_F_SISTER,{ if (four_qset == 3 && countitem(711) > 19) goto N_QuestComp; if (four_qset == 3) goto N_QuestStart; mes "[Dassy]"; @@ -424,7 +422,7 @@ N_QuestStart: close; } //4-4; -prt_gld,157,99,6 script Czhore 752,{ +prt_gld,157,99,6 script Czhore 4_M_CRU_OLD,{ if (four_qset == 4 && countitem(714) > 0) goto N_QuestComp; if (four_qset == 4) goto N_QuestStart; mes "[Czhore]"; @@ -457,7 +455,7 @@ N_QuestStart: } ///////Job list 5/////// //5-1; -prt_maze01,18,184,6 script Lithin#01 752,{ +prt_maze01,18,184,6 script Lithin#01 4_M_CRU_OLD,{ if (five_qset == 1 && countitem(1028) > 14) goto N_QuestComp; if (five_qset == 1) goto N_QuestStart; mes "[Lithin]"; @@ -484,7 +482,7 @@ N_QuestStart: close; } //5-2 goes to 6-2 using callfunc; -moc_ruins,75,167,6 script Lithin#02 87,{ +moc_ruins,75,167,6 script Lithin#02 4_M_BARBER,{ if (five_qset == 2 && countitem(932) > 29) goto N_QuestComp; if (five_qset == 2) goto N_QuestStart; if (six_qset == 2) goto N_QuestStart2; @@ -512,7 +510,7 @@ N_QuestStart2: callfunc "six_qset2"; } //5-3; -geffen,57,130,6 script Blonde Girl 724,{ +geffen,57,130,6 script Blonde Girl 4_F_07,{ if (five_qset == 3 && countitem(744) > 0) goto N_QuestComp; if (five_qset == 3) goto N_QuestStart; mes "[Blonde Girl]"; @@ -536,7 +534,7 @@ N_QuestStart: close; } //5-4; -gef_tower,49,27,6 script Wizard#01 735,{ +gef_tower,49,27,6 script Wizard#01 4_M_JOB_WIZARD,{ if (five_qset == 4 && countitem(1059) > 49) goto N_QuestComp; if (five_qset == 4) goto N_QuestStart; mes "[Wizard]"; @@ -564,7 +562,7 @@ N_QuestStart: } ///////Job list 6/////// //6-1; -moc_prydb1,47,132,6 script Thief 48,{ +moc_prydb1,47,132,6 script Thief 1_M_02,{ if (six_qset == 1 && countitem(1083) > 0) goto N_QuestComp; if (six_qset == 1) goto N_QuestStart; mes "[Thief]"; @@ -610,7 +608,7 @@ N_QuestComp2: close; } //6-3; -xmas,144,136,6 script Chirach 48,{ +xmas,144,136,6 script Chirach 1_M_02,{ if (six_qset == 3 && countitem(1083) > 0) goto N_QuestComp; if (six_qset == 3) goto N_QuestStart; mes "[Chirach]"; @@ -633,7 +631,7 @@ N_QuestStart: close; } //6-4; -gef_tower,52,87,6 script Wizard#02 735,{ +gef_tower,52,87,6 script Wizard#02 4_M_JOB_WIZARD,{ if (six_qset == 4 && countitem(944) > 19) goto N_QuestComp; if (six_qset == 4) goto N_QuestStart; mes "[Zuuzuu]"; @@ -665,7 +663,7 @@ N_QuestStart: } ///////Job list 7/////// //7-1 goes to 8-1 using callfunc; -prontera,123,208,6 script Little Girl#thq 717,{ +prontera,123,208,6 script Little Girl#thq 4_F_KID3,{ if (seven_qset == 1 && countitem(531) > 4) goto N_QuestComp; if (seven_qset == 1) goto N_QuestStart; if (eight_qset == 1) goto N_QuestStart2; @@ -692,7 +690,7 @@ N_QuestStart2: callfunc "eight_qset1"; } //7-2; -alberta,101,84,6 script Charles 48,{ +alberta,101,84,6 script Charles 1_M_02,{ if (seven_qset == 2 && countitem(1082) > 0) goto N_QuestComp; if (seven_qset == 2) goto N_QuestStart; mes "[Charles]"; @@ -735,7 +733,7 @@ N_QuestComp2: close; } //7-4; -alb2trea,94,102,6 script Scarlet 725,{ +alb2trea,94,102,6 script Scarlet 4_F_JOB_ASSASSIN,{ if (seven_qset == 4 && countitem(1127) > 0) goto N_QuestComp; if (seven_qset == 4) goto N_QuestStart; mes "[Scarlet]"; @@ -780,7 +778,7 @@ N_QuestComp2: close; } //8-2; -morocc,165,55,6 script Klye 48,{ +morocc,165,55,6 script Klye 1_M_02,{ if (eight_qset == 2 && countitem(1081) > 0) goto N_QuestComp; if (eight_qset == 2) goto N_QuestStart; mes "[Klye]"; @@ -804,7 +802,7 @@ N_QuestStart: } //8-3; -prt_maze02,103,86,6 script Zack 751,{ +prt_maze02,103,86,6 script Zack 4_M_CRU,{ if (eight_qset == 3 && countitem(923) > 0) goto N_QuestComp; if (eight_qset == 3) goto N_QuestStart; mes "[Zack]"; @@ -830,7 +828,7 @@ N_QuestStart: close; } //8-4; -payon,136,129,6 script Flower 703,{ +payon,136,129,6 script Flower 4_F_KID2,{ if (eight_qset == 4 && countitem(746) > 9) goto N_QuestComp; if (eight_qset == 4) goto N_QuestStart; mes "[Flower]"; @@ -856,7 +854,7 @@ N_QuestStart: } ///////Job list 9/////// //9-1; -geffen_in,168,124,6 script Mage 48,{ +geffen_in,168,124,6 script Mage 1_M_02,{ if (nine_qset == 1 && countitem(1082) > 0) goto N_QuestComp; if (nine_qset == 1) goto N_QuestStart; mes "[Mage]"; @@ -879,7 +877,7 @@ N_QuestStart: close; } //9-2; -pay_arche,98,74,6 script School Girl 703,{ +pay_arche,98,74,6 script School Girl 4_F_KID2,{ if (nine_qset == 2 && countitem(1020) > 19) goto N_QuestComp; if (nine_qset == 2) goto N_QuestStart; mes "[School Girl]"; @@ -907,7 +905,7 @@ N_QuestStart: close; } //9-3 -payon_in02,19,33,6 script Jack 740,{ +payon_in02,19,33,6 script Jack 2_M_ALCHE,{ if (nine_qset == 3 && countitem(1022) > 0) goto N_QuestComp; if (nine_qset == 3) goto N_QuestStart; if (nine_qset == 4) goto N_QuestStart2; @@ -953,7 +951,7 @@ N_QuestComp2: } ///////Job list 10/////// //10-1 -morocc,193,51,6 script Kreg 48,{ +morocc,193,51,6 script Kreg 1_M_02,{ if (ten_qset == 1 && countitem(1082) > 0) goto N_QuestComp; if (ten_qset == 1) goto N_QuestStart; mes "[Kreg]"; @@ -976,7 +974,7 @@ N_QuestStart: close; } //10-2; -pay_fild10,145,252,6 script Man#02 122,{ +pay_fild10,145,252,6 script Man#02 2_M_DYEINGER,{ if (ten_qset == 2 && countitem(1029) > 0) goto N_QuestComp; if (ten_qset == 2) goto N_QuestStart; mes "[Man]"; @@ -1001,7 +999,7 @@ N_QuestStart: close; } //10-3; -cmd_fild08,328,349,4 script Caral 119,{ +cmd_fild08,328,349,4 script Caral 2_M_SWORDMASTER,{ if (ten_qset == 3 && countitem(1015) > 0) goto N_QuestComp; if (ten_qset == 3) goto N_QuestStart; mes "[Caral]"; @@ -1026,7 +1024,7 @@ N_QuestStart: close; } //10-4 -moc_fild15,250,251,6 script Jeni 727,{ +moc_fild15,250,251,6 script Jeni 4_F_JOB_HUNTER,{ if (ten_qset == 4 && countitem(1096) > 0) goto N_QuestComp; if (ten_qset == 4) goto N_QuestStart; mes "[Jeni]"; diff --git a/npc/custom/quests/thq/THQS_TTShop.txt b/npc/custom/quests/thq/THQS_TTShop.txt index 0a706869b..c92c375ec 100644 --- a/npc/custom/quests/thq/THQS_TTShop.txt +++ b/npc/custom/quests/thq/THQS_TTShop.txt @@ -3,9 +3,7 @@ //===== By: ================================================== //= Fredzilla //===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= Hercules +//= 1.2a //===== Description: ========================================= //= Start for Treasure hunter quests //===== Additional Comments: ================================= @@ -14,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 65,{ - 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; - set zeny,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; - set zeny,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; - set zeny,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; + Zeny += @prize; + #Treasure_Token -= @price; 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; - 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; - - 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; + 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; + } -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/quests/umbalian_language.txt b/npc/custom/quests/umbalian_language.txt index f41b5500e..5bb17955e 100644 --- a/npc/custom/quests/umbalian_language.txt +++ b/npc/custom/quests/umbalian_language.txt @@ -4,13 +4,11 @@ //= sabernet09 //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= 1.1 Removed it from offical Umbala Quests [Lupus] //============================================================ -prontera,145,290,5 script Mason 742,{ +prontera,145,290,5 script Mason 2_M_SAGE_B,{ mes "[Mason]"; if(umb_lang==0) goto L_NOT_GOT_QUEST; if(umb_lang==2 || umb_mason==1) goto L_AGAIN; @@ -91,7 +89,7 @@ M_NO: close; } -aldebaran,153,212,1 script Mojo 740,{ +aldebaran,153,212,1 script Mojo 2_M_ALCHE,{ mes "[Mojo]"; if(umb_lang!=1) goto L_NOT_GOT_QUEST; mes "Oh no! I lost my teacher's ^FF0000old magic book^000000!"; @@ -104,7 +102,7 @@ L_NOT_GOT_QUEST: close; } -amatsu,267,189,4 script Marie 744,{ +amatsu,267,189,4 script Marie 4_F_ALCHE,{ mes "[Marie]"; if(umb_lang==0) goto L_NOT_GOT_QUEST; if(umb_lang==2 || umb_marie==1) goto L_AGAIN; @@ -154,13 +152,13 @@ L_AGAIN: close; } -yuno,157,366,2 script Wise Man Fabius 743,{ +yuno,157,366,2 script Wise Man Fabius 2_M_SAGE_OLD,{ mes "[Fabius]"; if(event_umbala >= 3) set umb_lang,2; //You already learnt Umbalian language from Umbalian Chief. So this Quest is disabled - if(umb_lang<2) goto L_QUEST; + if(umb_lang<2) goto L_Quest; mes "You speak Umbalian fluently! So you will never forget the language of Umbalians!"; close; -L_QUEST: +L_Quest: if((countitem(1006) < 1) || (countitem(7118) < 1) || (countitem(7117) < 1)) goto L_DONE;//Items: Old Magic Book, Torn Scroll, Torn Spell Book, delitem 1006,1; //Items: Old Magic Book, delitem 7118,1; //Items: Torn Scroll, diff --git a/npc/custom/quests/valhallen.txt b/npc/custom/quests/valhallen.txt index 07112c1c8..c70de008b 100644 --- a/npc/custom/quests/valhallen.txt +++ b/npc/custom/quests/valhallen.txt @@ -4,8 +4,6 @@ //= Avaji //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= All-in-one: Mjolnir,Sleipnir,Brisingamen,Gleipnir,Megingjard //= Custom quest, ingredients based on official RO FAQ @@ -13,7 +11,7 @@ //= 1.1 Optimized. [Euphy] //============================================================ -prontera,147,171,5 script Lenneth 811,{ +prontera,147,171,5 script Lenneth 4_F_VALKYRIE,{ mes "[Lenneth]"; mes "I come from Valhalla to aid you."; mes "I can transmute for you many of the Valhallen items,"; @@ -23,46 +21,46 @@ prontera,147,171,5 script Lenneth 811,{ case 1: mes "[Lenneth]"; mes "^3355FFMjolnir^000000 is the mighty Hammer of Thor."; - setarray .@Items[0],1530,1531,2,984,20,985,5,969,40,7074,2,7075,4,7078,5,7087,5,7089,5; + setarray .@items[0],1530,1531,2,984,20,985,5,969,40,7074,2,7075,4,7078,5,7087,5,7089,5; break; case 2: mes "[Lenneth]"; mes "^3355FFSleipnir^000000 are boots made after Odin's War Horse."; - setarray .@Items[0],2410,2406,2,984,1,969,20,985,10,7076,3,7079,5,7083,3,7086,3; + setarray .@items[0],2410,2406,2,984,1,969,20,985,10,7076,3,7079,5,7083,3,7086,3; break; case 3: mes "[Lenneth]"; mes "^3355FFBrisingammen^000000 is the magical Necklace of Freyja, goddess of Beauty."; - setarray .@Items[0],2630,2603,1,726,2,722,3,727,10,723,5,969,20,7073,4,7077,4,7088,3,7090,3,7092,3; + setarray .@items[0],2630,2603,1,726,2,722,3,727,10,723,5,969,20,7073,4,7077,4,7088,3,7090,3,7092,3; break; case 4: mes "[Lenneth]"; mes "The ^3355FFGleipnir^000000 is a light yet strong rope required to make ^3355FFMegingjard^000000"; - setarray .@Items[0],7058,7080,4,7081,5,7082,4,7084,3,7085,3; + setarray .@items[0],7058,7080,4,7081,5,7082,4,7084,3,7085,3; break; case 5: mes "[Lenneth]"; mes "The ^3355FFMegingjard^000000 is the powerful Belt of Thor."; - setarray .@Items[0],2629,7058,1,2627,1,969,10,726,10,984,5; + setarray .@items[0],2629,7058,1,2627,1,969,10,726,10,984,5; break; } mes "^FF0000The items I need are as follows:^000000"; - for(set .@i,1; .@i<getarraysize(.@Items[0]); set .@i,.@i+2) { - mes " ~ "+.@Items[.@i+1]+"x ^3355FF"+getitemname(.@Items[.@i])+"^000000"; - if (countitem(.@Items[.@i]) < .@Items[.@i+1]) set .@nr,1; } + for(set .@i,1; .@i<getarraysize(.@items[0]); set .@i,.@i+2) { + mes " ~ "+.@items[.@i+1]+"x ^3355FF"+getitemname(.@items[.@i])+"^000000"; + if (countitem(.@items[.@i]) < .@items[.@i+1]) set .@nr,1; } if (.@nr) close; next; mes "[Lenneth]"; - mes "Do you desire ^3355FF"+getitemname(.@Items[0])+"^000000?"; + mes "Do you desire ^3355FF"+getitemname(.@items[0])+"^000000?"; next; if(select("Yes:No")==2) { mes "[Lenneth]"; mes "Please return if you change your mind."; close; } mes "[Lenneth]"; - mes "Here is your ^3355FF"+getitemname(.@Items[0])+"^000000."; + mes "Here is your ^3355FF"+getitemname(.@items[0])+"^000000."; mes "May it serve you well."; - for(set .@i,1; .@i<getarraysize(.@Items); set .@i,.@i+2) - delitem .@Items[.@i], .@Items[.@i+1]; - getitem .@Items[0],1; + for(set .@i,1; .@i<getarraysize(.@items); set .@i,.@i+2) + delitem .@items[.@i], .@items[.@i+1]; + getitem .@items[0],1; close; } diff --git a/npc/custom/resetnpc.txt b/npc/custom/resetnpc.txt index cbb633e6a..1f8448111 100644 --- a/npc/custom/resetnpc.txt +++ b/npc/custom/resetnpc.txt @@ -13,7 +13,7 @@ //= 1.3 All statuses removed upon skill reset. [Euphy] //============================================================ -prontera,150,193,4 script Reset Girl 124,{ +prontera,150,193,4 script Reset Girl 4_F_TELEPORTER,{ set .@ResetStat,5000; // Zeny for stat reset set .@ResetSkill,5000; // Zeny for skill reset @@ -33,9 +33,9 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Sorry, you don't have enough Zeny."; close; } - set Zeny, Zeny-.@ResetSkill; + Zeny -= .@ResetSkill; sc_end SC_ALL; - ResetSkill; + resetskill; mes "There you go!"; close; case 2: @@ -44,8 +44,8 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Sorry, you don't have enough Zeny."; close; } - set Zeny, Zeny-.@ResetStat; - ResetStatus; + Zeny -= .@ResetStat; + resetstatus; mes "There you go!"; close; case 3: @@ -54,10 +54,10 @@ prontera,150,193,4 script Reset Girl 124,{ mes "Sorry, you don't have enough Zeny."; close; } - set Zeny, Zeny-.@ResetBoth; + Zeny -= .@ResetBoth; sc_end SC_ALL; - ResetSkill; - ResetStatus; + resetskill; + resetstatus; mes "There you go!"; close; case 4: diff --git a/npc/custom/stylist.txt b/npc/custom/stylist.txt index 853553f26..4bbc8f8dd 100644 --- a/npc/custom/stylist.txt +++ b/npc/custom/stylist.txt @@ -4,33 +4,31 @@ //= Euphy //===== Current Version: ===================================== //= 1.1 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= Changes your hair style, hair color, and cloth color. -//===== Additional Comments: ================================= +//===== Additional Comments: ================================= //= 1.1 Switched to 'getbattleflag', credits to Saithis. [Euphy] //============================================================ -prontera,170,180,1 script Stylist#custom_stylist 122,{ +prontera,170,180,1 script Stylist#custom_stylist 2_M_DYEINGER,{ - setarray .@Styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color"); + setarray .@styles[1],getbattleflag("max_cloth_color"),getbattleflag("max_hair_style"),getbattleflag("max_hair_color"); setarray .@Look[1],7,1,6; set .@s, select(" ~ Cloth color: ~ Hairstyle: ~ Hair color"); set .@Revert, getlook(.@Look[.@s]); - set .@Style,1; + set .@style,1; while(1) { - setlook .@Look[.@s], .@Style; - message strcharinfo(0),"This is style #"+.@Style+"."; - set .@menu$, " ~ Next (^0055FF"+((.@Style!=.@Styles[.@s])?.@Style+1:1)+"^000000): ~ Previous (^0055FF"+((.@Style!=1)?.@Style-1:.@Styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; + setlook .@Look[.@s], .@style; + message strcharinfo(0),"This is style #"+.@style+"."; + set .@menu$, " ~ Next (^0055FF"+((.@style!=.@styles[.@s])?.@style+1:1)+"^000000): ~ Previous (^0055FF"+((.@style!=1)?.@style-1:.@styles[.@s])+"^000000): ~ Jump to...: ~ Revert to original (^0055FF"+.@Revert+"^000000)"; switch(select(.@menu$)) { - case 1: set .@Style, ((.@Style!=.@Styles[.@s])?.@Style+1:1); break; - case 2: set .@Style, ((.@Style!=1)?.@Style-1:.@Styles[.@s]); break; - case 3: message strcharinfo(0),"Choose a style between 1 - "+.@Styles[.@s]+"."; - input .@Style,0,.@Styles[.@s]; - if (!.@Style) set .@Style, rand(1,.@Styles[.@s]); + case 1: set .@style, ((.@style!=.@styles[.@s])?.@style+1:1); break; + case 2: set .@style, ((.@style!=1)?.@style-1:.@styles[.@s]); break; + case 3: message strcharinfo(0),"Choose a style between 1 - "+.@styles[.@s]+"."; + input .@style,0,.@styles[.@s]; + if (!.@style) set .@style, rand(1,.@styles[.@s]); break; - case 4: set .@Style, .@Revert; setlook .@Look[.@s], .@Revert; break; + case 4: set .@style, .@Revert; setlook .@Look[.@s], .@Revert; break; } } } diff --git a/npc/custom/warper.txt b/npc/custom/warper.txt index 14dcfebf0..0b66c6a03 100644 --- a/npc/custom/warper.txt +++ b/npc/custom/warper.txt @@ -1,18 +1,23 @@ //===== Hercules Script ====================================== //= Warper -//===== By: ================================================== +//===== By: ================================================== //= Euphy //===== Current Version: ===================================== -//= 1.2 -//===== Compatible With: ===================================== -//= Hercules -//===== Description: ========================================= +//= 1.4 +//===== Description: ========================================= //= A complete - but very condensed - warper script. -//= Coordinates written largely by Tekno-Kanix and ToastOfDoom. +//= Some coordinates written by Tekno-Kanix and ToastOfDoom. +//===== Additional Comments: ================================= +//= 1.0 Initial script. +//= 1.1 Added missing duplicates and fixed coordinates. +//= 1.2 Added new episodes and simplified functions. +//= 1.3 Added Renewal checks and Instances menu. +//= Aligned coordinates with @go. +//= 1.4 Added new Guild Dungeons. //============================================================ - script Warper -1,{ -function Go; function Disp; function Pick; +function Go; function Disp; function Pick; function Restrict; // -------------------------------------------------- // Main Menu: @@ -20,21 +25,31 @@ function Go; function Disp; function Pick; menu "Last Warp ^777777["+lastwarp$+"]^000000",-, " ~ Towns",Towns, " ~ Fields",Fields, " ~ Dungeons",Dungeons, - " ~ Guild Castles",Castles, " ~ Special Areas",Special; + " ~ Guild Castles",Castles, " ~ Guild Dungeons",Guild_Dungeons, + " ~ Instances",Instances, " ~ Special Areas",Special; - if (lastwarp$ == "") dispbottom "You have not warped anywhere yet."; - else warp lastwarp$,lastwarpx,lastwarpy; + if (lastwarp$ == "") + message strcharinfo(0),"You haven't warped anywhere yet."; + else + warp lastwarp$,lastwarpx,lastwarpy; close; // ------------------- Functions ------------------- // * Go("<map>",<x>,<y>); // ~ Warps directly to a map. +// // * Disp("<Menu Option>",<first option>,<last option>); // * Pick("<map_prefix>"{,<index offset>}); -// ~ Dynamic menu and map selection. -// * Disp("","<Option 1>:<Option 2>:<etc.>"); +// ~ Dynamic menu and map selection (auto-numbered). +// +// * Disp("<Option 1>:<Option 2>:<etc.>"); // * Pick("","<map1>","<map2>","<etc.>"); -// ~ Manual menu and map selection. +// ~ Manual menu and map selection (listed). +// +// * Restrict("<RE | Pre-RE>"{,<menu option numbers>}); +// ~ Only allows map for Renewal or Pre-Renewal modes. +// If menu option numbers are given, only those maps +// will be restricted (i.e. not for "Go"). // // Other notes: // ~ Array @c[] holds all (x,y) coordinates. @@ -45,150 +60,194 @@ menu "Last Warp ^777777["+lastwarp$+"]^000000",-, function Go { warp getarg(0),getarg(1,0),getarg(2,0); getmapxy(lastwarp$,lastwarpx,lastwarpy,0); - close; + end; } function Disp { - set @menu$,""; - if(getarg(0)=="") { - set @menu$,getarg(1); - return; + if (getargcount() < 3) + set @menu$, getarg(0); + else { + set @menu$,""; + for(set .@i,getarg(1); .@i<=getarg(2); set .@i,.@i+1) + set @menu$, @menu$+getarg(0)+" "+.@i+":"; } - for(set .@i,getarg(1); .@i<=getarg(2); set .@i,.@i+1) - set @menu$, @menu$+getarg(0)+" "+.@i+":"; return; } function Pick { - if(getarg(0)=="") { - set .@i, select(@menu$); - warp getarg(.@i),@c[.@i*2],@c[.@i*2+1]; + set .@warp_block,@warp_block; + set @warp_block,0; + if (getarg(0) == "") { + set .@select, select(@menu$); + set .@i, .@select; + set .@map$, getarg(.@i); } else { - set .@i, select(@menu$)-getarg(1,0); - warp getarg(0)+((.@i<10)?"0":"")+.@i,@c[.@i*2],@c[.@i*2+1]; + set .@select, select(@menu$); + set .@i, .@select-getarg(1,0); + set .@map$, getarg(0)+((.@i<10)?"0":"")+.@i; } + if (.@warp_block & (1<<.@select)) { + message strcharinfo(0),"This map is not enabled in "+((checkre(0))?"":"Pre-")+"Renewal."; + close; + } + warp .@map$,@c[.@i*2],@c[.@i*2+1]; getmapxy(lastwarp$,lastwarpx,lastwarpy,0); - close; + deletearray @c[0],getarraysize(@c); + end; +} +function Restrict { + if ((getarg(0) == "RE" && !checkre(0)) || (getarg(0) == "Pre-RE" && checkre(0))) { + if (getarg(1,0)) { + set @warp_block,0; + for(set .@i,1; .@i<getargcount(); set .@i,.@i+1) + set @warp_block, @warp_block | (1<<getarg(.@i)); + } else { + message strcharinfo(0),"This map is not enabled in "+((checkre(0))?"":"Pre-")+"Renewal."; + close; + } + } + return; } // -------------------------------------------------- Towns: // -------------------------------------------------- menu "Prontera",T1, "Alberta",T2, "Aldebaran",T3, "Amatsu",T4, "Ayothaya",T5, - "Brasilis",T6, "Comodo",T7, "Dewata",T33, "Eclage",T34, "Einbech",T8, - "Einbroch",T9, "El Dicastes",T10, "Geffen",T11, "Gonryun",T12, "Hugel",T13, - "Izlude",T14, "Jawaii",T15, "Lighthalzen",T16, "Louyang",T17, "Lutie",T18, - "Malangdo",T35, "Malaya",T36, "Manuk",T19, "Midgarts Expedition Camp",T20, - "Mora",T21, "Morroc",T22, "Moscovia",T23, "Nameless Island",T24, - "Niflheim",T25, "Payon",T26, "Rachel",T27, "Splendide",T28, "Thor Camp",T29, - "Umbala",T30, "Veins",T31, "Yuno",T32; + "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, + "Mora",T25, "Morroc",T26, "Moscovia",T27, "Nameless Island",T28, + "Niflheim",T29, "Payon",T30, "Rachel",T31, "Splendide",T32, "Thor Camp",T33, + "Umbala",T34, "Veins",T35, "Yuno",T36; T1: Go("prontera",155,183); T2: Go("alberta",28,234); T3: Go("aldebaran",140,131); T4: Go("amatsu",198,84); T5: Go("ayothaya",208,166); -T6: Go("brasilis",195,220); +T6: Restrict("RE"); + Go("brasilis",196,217); T7: Go("comodo",209,143); -T8: Go("einbech",138,243); -T9: Go("einbroch",64,200); -T10: Go("dicastes01",197,187); -T11: Go("geffen",120,68); -T12: Go("gonryun",160,121); -T13: Go("hugel",96,145); -T14: Go("izlude",128,114); -T15: Go("jawaii",213,230); -T16: Go("lighthalzen",158,92); -T17: Go("louyang",217,100); -T18: Go("xmas",147,134); -T19: Go("manuk",260,175); -T20: Go("mid_camp",210,288); -T21: Go("mora",111,97); -T22: Go("morocc",156,93); -T23: Go("moscovia",219,193); -T24: Go("nameless_n",256,215); -T25: Go("niflheim",202,174); -T26: Go("payon",179,100); -T27: Go("rachel",130,111); -T28: Go("splendide",200,153); -T29: Go("thor_camp",246,68); -T30: Go("umbala",127,128); -T31: Go("veins",216,123); -T32: Go("yuno",157,51); -T33: Go("dewata",199,179); -T34: Go("eclage",111,39); -T35: Go("malangdo",224,184); -T36: Go("malaya",212,206); +T8: Restrict("RE"); + Go("dewata",200,180); +T9: Restrict("RE"); + Go("ecl_in01",48,53); +T10: Go("einbech",63,35); +T11: Go("einbroch",64,200); +T12: Restrict("RE"); + Go("dicastes01",198,187); +T13: Go("geffen",119,59); +T14: Go("gonryun",160,120); +T15: Go("hugel",96,145); +T16: Go("izlude",128,114); +T17: Go("jawaii",251,132); +T18: Go("lighthalzen",158,92); +T19: Go("louyang",217,100); +T20: Go("xmas",147,134); +T21: Restrict("RE"); + Go("malangdo",140,114); +T22: Restrict("RE"); + Go("malaya",212,206); +T23: Go("manuk",282,138); +T24: Go("mid_camp",210,288); +T25: Restrict("RE"); + Go("mora",55,146); +T26: Go("morocc",156,93); +T27: Go("moscovia",223,184); +T28: Go("nameless_n",256,215); +T29: Go("niflheim",202,174); +T30: Go("payon",179,100); +T31: Go("rachel",130,110); +T32: Go("splendide",201,147); +T33: Go("thor_camp",246,68); +T34: Go("umbala",97,153); +T35: Go("veins",216,123); +T36: Go("yuno",157,51); // -------------------------------------------------- Fields: // -------------------------------------------------- menu "Amatsu Fields",F1, "Ayothaya Fields",F2, "Bifrost Fields", F3, - "Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F26, - "Eclage Fields",F27, "Einbroch Fields",F6, "El Dicastes Fields",F7, - "Geffen Fields",F8, "Gonryun Fields",F9, "Hugel Fields",F10, - "Lighthalzen Fields",F11, "Louyang Field",F12, "Lutie Field",F13, - "Malaya Fields",F28, "Manuk Fields",F14, "Mjolnir Fields",F15, - "Moscovia Fields",F16, "Niflheim Fields",F17, "Payon Forests",F18, - "Prontera Fields",F19, "Rachel Fields",F20, "Sograt Deserts",F21, - "Splendide Fields",F22, "Umbala Fields",F23, "Veins Fields",F24, - "Yuno Fields",F25; + "Brasilis Fields",F4, "Comodo Fields",F5, "Dewata Fields",F6, + "Eclage Fields",F7, "Einbroch Fields",F8, "El Dicastes Fields",F9, + "Geffen Fields",F10, "Gonryun Fields",F11, "Hugel Fields",F12, + "Lighthalzen Fields",F13, "Louyang Field",F14, "Lutie Field",F15, + "Malaya Fields",F16, "Manuk Fields",F17, "Mjolnir Fields",F18, + "Moscovia Fields",F19, "Niflheim Fields",F20, "Payon Forests",F21, + "Prontera Fields",F22, "Rachel Fields",F23, "Sograt Deserts",F24, + "Splendide Fields",F25, "Umbala Fields",F26, "Veins Fields",F27, + "Yuno Fields",F28; F1: setarray @c[2],190,197; Disp("Amatsu Field",1,1); Pick("ama_fild"); F2: setarray @c[2],173,134,212,150; Disp("Ayothaya Field",1,2); Pick("ayo_fild"); -F3: setarray @c[2],193,220,220,187; +F3: Restrict("RE"); + setarray @c[2],193,220,220,187; Disp("Bifrost Field",1,2); Pick("bif_fild"); -F4: setarray @c[2],74,32; +F4: Restrict("RE"); + setarray @c[2],74,32; Disp("Brasilis Field",1,1); Pick("bra_fild"); -F5: setarray @c[2],180,178,231,160,191,172,228,194,224,203,190,223,234,177,194,175,172,172; +F5: Restrict("Pre-RE",5); + setarray @c[2],180,178,231,160,191,172,228,194,224,203,190,223,234,177,194,175,172,172; Disp("Comodo Field",1,9); Pick("cmd_fild"); -F6: setarray @c[2],142,225,182,141,187,228,185,173,216,173,195,148,272,220,173,214,207,174,196,200; +F6: Restrict("RE"); + setarray @c[2],371,212; + Disp("Dewata Field",1,1); Pick("dew_fild"); +F7: Restrict("RE"); + setarray @c[2],97,314; + Disp("Eclage Field",1,1); Pick("ecl_fild"); +F8: Restrict("Pre-RE",2,10); + setarray @c[2],142,225,182,141,187,228,185,173,216,173,195,148,272,220,173,214,207,174,196,200; Disp("Einbroch Field",1,10); Pick("ein_fild"); -F7: setarray @c[2],143,132,143,217; +F9: Restrict("RE"); + setarray @c[2],143,132,143,217; Disp("El Dicastes Field",1,2); Pick("dic_fild"); -F8: setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185; +F10: Restrict("Pre-RE",13,15); + setarray @c[0],46,199,213,204,195,212,257,192,188,171,166,263,248,158,195,191,186,183,221,117,178,218,136,328,240,181,235,235,211,185; Disp("Geffen Field",0,14); Pick("gef_fild",1); -F9: setarray @c[2],220,227; +F11: setarray @c[2],220,227; Disp("Gonryun Field",1,1); Pick("gon_fild"); -F10: setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197; +F12: Restrict("Pre-RE",3,7); + setarray @c[2],268,101,222,193,232,185,252,189,196,106,216,220,227,197; Disp("Hugel Field",1,7); Pick("hu_fild"); -F11: setarray @c[2],240,179,185,235,240,226; +F13: setarray @c[2],240,179,185,235,240,226; Disp("Lighthalzen Field",1,3); Pick("lhz_fild"); -F12: setarray @c[2],229,187; +F14: setarray @c[2],229,187; Disp("Louyang Field",1,1); Pick("lou_fild"); -F13: setarray @c[2],115,145; +F15: setarray @c[2],115,145; Disp("Lutie Field",1,1); Pick("xmas_fild"); -F14: setarray @c[2],35,236,35,262,84,365; +F16: Restrict("RE"); + setarray @c[2],40,272,207,180; + Disp("Malaya Field",1,2); Pick("ma_fild"); +F17: setarray @c[2],35,236,35,262,84,365; Disp("Manuk Field",1,3); Pick("man_fild"); -F15: setarray @c[2],204,120,175,193,208,213,179,180,181,240,195,270,235,202,188,215,205,144,245,223,180,206,196,208; +F18: setarray @c[2],204,120,175,193,208,213,179,180,181,240,195,270,235,202,188,215,205,144,245,223,180,206,196,208; Disp("Mjolnir Field",1,12); Pick("mjolnir_"); -F16: setarray @c[2],82,104,131,147; +F19: setarray @c[2],82,104,131,147; Disp("Moscovia Field",1,2); Pick("mosk_fild"); -F17: setarray @c[2],215,229,167,234; +F20: setarray @c[2],215,229,167,234; Disp("Niflheim Field",1,2); Pick("nif_fild"); -F18: setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150; +F21: Restrict("Pre-RE",5,11); + setarray @c[2],158,206,151,219,205,148,186,247,134,204,193,235,200,177,137,189,201,224,160,205,194,150; Disp("Payon Forest",1,11); Pick("pay_fild"); -F19: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164; +F22: setarray @c[0],208,227,190,206,240,206,190,143,307,252,239,213,185,188,193,194,187,218,210,183,195,149,198,164; Disp("Prontera Field",0,11); Pick("prt_fild",1); -F20: setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197; +F23: Restrict("Pre-RE",2,7,9,10,11,13); + setarray @c[2],192,162,235,166,202,206,202,208,225,202,202,214,263,196,217,201,87,121,277,181,221,185,175,200,174,197; Disp("Rachel Field",1,13); Pick("ra_fild"); -F21: setarray @c[2],219,205,177,206,194,182,224,170,198,216,156,187,185,263,206,228,208,238,209,223,85,97,207,202,31,195,38,195; - Disp("","Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 17:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21:Sograt Desert 22"); +F24: setarray @c[2],219,205,177,206,194,182,224,170,198,216,156,187,185,263,206,228,208,238,209,223,85,97,207,202,31,195,38,195; + Disp("Sograt Desert 1:Sograt Desert 2:Sograt Desert 3:Sograt Desert 7:Sograt Desert 11:Sograt Desert 12:Sograt Desert 13:Sograt Desert 16:Sograt Desert 17:Sograt Desert 18:Sograt Desert 19:Sograt Desert 20:Sograt Desert 21:Sograt Desert 22"); Pick("","moc_fild01","moc_fild02","moc_fild03","moc_fild07","moc_fild11","moc_fild12","moc_fild13","moc_fild16","moc_fild17","moc_fild18","moc_fild19","moc_fild20","moc_fild21","moc_fild22"); -F22: setarray @c[2],175,186,236,184,188,204; +F25: setarray @c[2],175,186,236,184,188,204; Disp("Splendide Field",1,3); Pick("spl_fild"); -F23: setarray @c[2],217,206,223,221,237,215,202,197; +F26: setarray @c[2],217,206,223,221,237,215,202,197; Disp("Umbala Field",1,4); Pick("um_fild"); -F24: setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307; +F27: Restrict("Pre-RE",5); + setarray @c[2],186,175,196,370,222,45,51,250,202,324,150,223,149,307; Disp("Veins Field",1,7); Pick("ve_fild"); -F25: setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304; +F28: Restrict("Pre-RE",5,10); + setarray @c[2],189,224,192,207,221,157,226,199,223,177,187,232,231,174,196,203,183,214,200,124,195,226,210,304; Disp("Yuno Field",1,12); Pick("yuno_fild"); -F26: setarray @c[2],371,212; - Disp("Dewata Field",1,1); Pick("dew_fild"); -F27: setarray @c[2],97,314; - Disp("Eclage Field",1,1); Pick("ecl_fild"); -F28: setarray @c[2],40,272,207,180; - Disp("Malaya Field",1,2); Pick("ma_fild"); // -------------------------------------------------- Dungeons: @@ -196,16 +255,15 @@ F28: setarray @c[2],40,272,207,180; menu "Abyss Lakes",D1, "Amatsu Dungeon",D2, "Anthell",D3, "Ayothaya Dungeon",D4, "Beach Dungeon",D5, "Bio Labs",D6, "Brasilis Dungeon",D7, "Byalan Dungeon",D8, "Clock Tower",D9, - "Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D41, - "Einbroch Dungeon",D13, "Endless Tower",D14, "Gefenia",D15, - "Geffen Dungeon",D16, "Glast Heim",D17, "Gonryun Dungeon",D18, - "Guild Dungeons",GD, "Hidden Dungeon",D19, "Ice Dungeon",D20, - "Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23, - "Magma Dungeon",D24, "Malangdo Dungeon",D42, "Moscovia Dungeon",D25, - "Nidhogg's Dungeon",D26, "Odin Temple",D27, "Orc Dungeon",D28, "Payon Dungeon",D29, - "Pyramids",D30, "Rachel Sanctuary",D31, "Scaraba Hole",D32, "Sealed Shrine",D33, - "Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36, "Thor Volcano",D37, - "Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40; + "Coal Mines",D10, "Culvert",D11, "Cursed Abbey",D12, "Dewata Dungeon",D13, + "Einbroch Dungeon",D14, "Gefenia",D15, "Geffen Dungeon",D16, + "Glast Heim",D17, "Gonryun Dungeon",D18, "Hidden Dungeon",D19, + "Ice Dungeon",D20, "Juperos",D21, "Kiel Dungeon",D22, "Louyang Dungeon",D23, + "Magma Dungeon",D24, "Malangdo Dungeon",D25, "Moscovia Dungeon",D26, + "Nidhogg's Dungeon",D27, "Odin Temple",D28, "Orc Dungeon",D29, + "Payon Dungeon",D30, "Pyramids",D31, "Rachel Sanctuary",D32, + "Scaraba Hole",D33, "Sphinx",D34, "Sunken Ship",D35, "Thanatos Tower",D36, + "Thor Volcano",D37, "Toy Factory",D38, "Turtle Dungeon",D39, "Umbala Dungeon",D40; D1: setarray @c[2],261,272,275,270,116,27; Disp("Abyss Lakes",1,3); Pick("abyss_"); @@ -214,17 +272,20 @@ D2: setarray @c[2],228,11,34,41,119,14; D3: setarray @c[2],35,262,168,170; Disp("Anthell",1,2); Pick("anthell"); D4: setarray @c[2],275,19,24,26; - Disp("","Ancient Shrine Maze:Inside Ancient Shrine"); Pick("ayo_dun"); + Disp("Ancient Shrine Maze:Inside Ancient Shrine"); Pick("ayo_dun"); D5: setarray @c[2],266,67,255,244,23,260; Disp("Beach Dungeon",1,3); Pick("","beach_dun","beach_dun2","beach_dun3"); -D6: setarray @c[2],150,288,150,18,140,134; - Disp("Bio Lab",1,3); Pick("lhz_dun"); -D7: setarray @c[2],87,47,262,262; +D6: Restrict("RE",4); + setarray @c[2],150,288,150,18,140,134,244,52; + Disp("Bio Lab",1,4); Pick("lhz_dun"); +D7: Restrict("RE"); + setarray @c[2],87,47,262,262; Disp("Brasilis Dungeon",1,2); Pick("bra_dun"); -D8: setarray @c[0],168,168,253,252,236,204,32,63,26,27; - Disp("Byalan Dungeon",1,5); Pick("iz_dun",1); +D8: Restrict("RE",6); + setarray @c[0],168,168,253,252,236,204,32,63,26,27,141,187; + Disp("Byalan Dungeon",1,6); Pick("iz_dun",1); D9: setarray @c[2],199,159,148,283,65,147,56,155,297,25,127,169,277,178,268,74; - Disp("","Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4"); + Disp("Clock Tower 1:Clock Tower 2:Clock Tower 3:Clock Tower 4:Basement 1:Basement 2:Basement 3:Basement 4"); Pick("","c_tower1","c_tower2","c_tower3","c_tower4","alde_dun01","alde_dun02","alde_dun03","alde_dun04"); D10: setarray @c[2],52,17,381,343,302,262; Disp("Coal Mines",1,3); Pick("mjo_dun"); @@ -232,16 +293,17 @@ D11: setarray @c[2],131,247,19,19,180,169,100,92; Disp("Culvert",1,4); Pick("","prt_sewb1","prt_sewb2","prt_sewb3","prt_sewb4"); D12: setarray @c[2],51,14,150,11,120,10; Disp("Cursed Abbey",1,3); Pick("abbey"); -D13: setarray @c[2],22,14,292,290; +D13: Restrict("RE"); + setarray @c[2],285,160,299,29; + Disp("Dewata Dungeon",1,2); Pick("dew_dun"); +D14: setarray @c[2],22,14,292,290; Disp("Einbroch Dungeon",1,2); Pick("ein_dun"); -D14: setarray @c[2],72,112; - Disp("","Misty Island"); Pick("","e_tower"); D15: setarray @c[2],40,103,203,34,266,168,130,272; Disp("Gefenia",1,4); Pick("gefenia",0); D16: setarray @c[0],104,99,115,236,106,132,203,200; Disp("Geffen Dungeon",1,4); Pick("gef_dun",1); -D17: setarray @c[2],375,304,199,29,104,25,150,15,157,287,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14; - Disp("","Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2"); +D17: setarray @c[2],370,304,199,29,104,25,150,15,157,287,147,15,258,255,108,291,171,283,68,277,156,7,12,7,133,271,224,274,14,70,150,14; + Disp("Entrance:Castle 1:Castle 2:Chivalry 1:Chivalry 2:Churchyard:Culvert 1:Culvert 2:Culvert 3:Culvert 4:St. Abbey:Staircase Dungeon:Underground Cave 1:Underground Cave 2:Underground Prison 1:Underground Prison 2"); Pick("","glast_01","gl_cas01","gl_cas02","gl_knt01","gl_knt02","gl_chyard","gl_sew01","gl_sew02","gl_sew03","gl_sew04","gl_church","gl_step","gl_dun01","gl_dun02","gl_prison","gl_prison1"); D18: setarray @c[2],153,53,28,113,68,16; Disp("Gonryun Dungeon",1,3); Pick("gon_dun"); @@ -250,32 +312,34 @@ D19: setarray @c[2],176,7,93,20,23,8; D20: setarray @c[2],157,14,151,155,149,22,33,158; Disp("Ice Dungeon",1,4); Pick("ice_dun"); D21: setarray @c[2],140,51,53,247,37,63,150,285; - Disp("","Entrance:Juperos 1:Juperos 2:Core"); + Disp("Entrance:Juperos 1:Juperos 2:Core"); Pick("","jupe_cave","juperos_01","juperos_02","jupe_core"); D22: setarray @c[2],28,226,41,198; Disp("Kiel Dungeon",1,2); Pick("kh_dun"); D23: setarray @c[2],218,196,282,20,165,38; - Disp("","The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun"); + Disp("The Royal Tomb:Inside the Royal Tomb:Suei Long Gon"); Pick("lou_dun"); D24: setarray @c[2],126,68,47,30; Disp("Magma Dungeon",1,2); Pick("mag_dun"); -D25: setarray @c[2],189,48,165,30,32,135; +D25: Restrict("RE"); + setarray @c[2],33,230; + Disp("Malangdo Dungeon",1,1); Pick("mal_dun"); +D26: setarray @c[2],189,48,165,30,32,135; Disp("Moscovia Dungeon",1,3); Pick("mosk_dun"); -D26: setarray @c[2],61,239,60,271; +D27: setarray @c[2],61,239,60,271; Disp("Nidhogg's Dungeon",1,2); Pick("nyd_dun"); -D27: setarray @c[2],298,167,224,149,266,280; +D28: setarray @c[2],298,167,224,149,266,280; Disp("Odin Temple",1,3); Pick("odin_tem"); -D28: setarray @c[2],32,170,21,185; +D29: setarray @c[2],32,170,21,185; Disp("Orc Dungeon",1,2); Pick("orcsdun"); -D29: setarray @c[0],21,183,19,33,19,63,155,159,201,204; +D30: setarray @c[0],21,183,19,33,19,63,155,159,201,204; Disp("Payon Dungeon",1,5); Pick("pay_dun",1); -D30: setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8; - Disp("","Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2"); Pick("moc_pryd"); -D31: setarray @c[2],140,11,32,21,4,149,204,218,150,9; +D31: setarray @c[2],192,9,10,192,100,92,181,11,94,96,192,8; + Disp("Pyramids 1:Pyramids 2:Pyramids 3:Pyramids 4:Basement 1:Basement 2"); Pick("moc_pryd"); +D32: setarray @c[2],140,11,32,21,4,149,204,218,150,9; Disp("Rachel Sanctuary",1,5); Pick("ra_san"); -D32: setarray @c[2],364,44,101,141; +D33: Restrict("RE"); + setarray @c[2],364,44,101,141; Disp("Scaraba Hole",1,2); Pick("dic_dun"); -D33: setarray @c[2],306,143; - Disp("","Friar Patrick"); Pick("","monk_test"); D34: setarray @c[2],288,9,149,81,210,54,10,222,100,99; Disp("Sphinx",1,5); Pick("","in_sphinx1","in_sphinx2","in_sphinx3","in_sphinx4","in_sphinx5"); D35: setarray @c[2],69,24,102,27; @@ -287,17 +351,11 @@ D37: setarray @c[2],21,228,75,205,34,272; D38: setarray @c[2],205,15,129,133; Disp("Toy Factory",1,2); Pick("xmas_dun"); D39: setarray @c[2],154,49,148,261,132,189,100,192; - Disp("","Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun"); -D40: setarray @c[2],42,31,48,30,204,78; - Disp("","Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain"); + Disp("Entrance:Turtle Dungeon 1:Turtle Dungeon 2:Turtle Dungeon 3"); Pick("tur_dun"); +D40: Restrict("Pre-RE",1,2); + setarray @c[2],42,31,48,30,204,78; + Disp("Carpenter's Shop in the Tree:Passage to a Foreign World:Hvergermil's Fountain"); Pick("","um_dun01","um_dun02","yggdrasil01"); -D41: setarray @c[2],285,160,299,29; - Disp("Dewata Dungeon",1,2); Pick("dew_dun"); -D42: setarray @c[2],33,230; - Disp("Malangdo Dungeon",1,1); Pick("mal_dun"); -GD: setarray @c[2],119,93,39,161,50,44,116,45,199,195,200,124; - Disp("","Baldur:Luina:Valkyrie:Britoniah:Arunafeltz:Schwaltzvalt"); - Pick("","gld_dun01","gld_dun02","gld_dun03","gld_dun04","arug_dun01","schg_dun01"); // -------------------------------------------------- Castles: @@ -306,86 +364,132 @@ menu "Aldebaran Castles",C1, "Geffen Castles",C2, "Payon Castles",C3, "Prontera Castles",C4, "Arunafeltz Castles",C5, "Schwaltzvalt Castles",C6; C1: setarray @c[2],48,83,95,249,142,85,239,242,264,90; - Disp("","Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg"); + Disp("Neuschwanstein:Hohenschwangau:Nuenberg:Wuerzburg:Rothenburg"); Pick("","alde_gld","alde_gld","alde_gld","alde_gld","alde_gld"); C2: setarray @c[2],214,75,308,240,143,240,193,278,305,87; - Disp("","Repherion:Eeyolbriggar:Yesnelph:Bergel:Mersetzdeitz"); + Disp("Repherion:Eeyolbriggar:Yesnelph:Bergel:Mersetzdeitz"); Pick("","gef_fild13","gef_fild13","gef_fild13","gef_fild13","gef_fild13"); C3: setarray @c[2],121,233,295,116,317,293,140,160,204,266; - Disp("","Bright Arbor:Scarlet Palace:Holy Shadow:Sacred Altar:Bamboo Grove Hill"); + Disp("Bright Arbor:Scarlet Palace:Holy Shadow:Sacred Altar:Bamboo Grove Hill"); Pick("","pay_gld","pay_gld","pay_gld","pay_gld","pay_gld"); C4: setarray @c[2],134,65,240,128,153,137,111,240,208,240; - Disp("","Kriemhild:Swanhild:Fadhgridh:Skoegul:Gondul"); + Disp("Kriemhild:Swanhild:Fadhgridh:Skoegul:Gondul"); Pick("","prt_gld","prt_gld","prt_gld","prt_gld","prt_gld"); C5: setarray @c[2],158,272,83,47,68,155,299,345,292,107; - Disp("","Mardol:Cyr:Horn:Gefn:Banadis"); + Disp("Mardol:Cyr:Horn:Gefn:Banadis"); Pick("","aru_gld","aru_gld","aru_gld","aru_gld","aru_gld"); C6: setarray @c[2],293,100,288,252,97,196,137,90,71,315; - Disp("","Himinn:Andlangr:Viblainn:Hljod:Skidbladnir"); + Disp("Himinn:Andlangr:Viblainn:Hljod:Skidbladnir"); Pick("","sch_gld","sch_gld","sch_gld","sch_gld","sch_gld"); // -------------------------------------------------- + Guild_Dungeons: +// -------------------------------------------------- +menu "Baldur",G1, "Luina",G2, "Valkyrie",G3, "Britoniah",G4, + "Arunafeltz",G5, "Schwaltzvalt",G6; + +G1: Restrict("RE",2,3); + setarray @c[2],119,93,119,93,120,130; + Disp("Baldur F1:Baldur F2:Hall of Abyss"); + Pick("","gld_dun01","gld_dun01_2","gld2_pay"); +G2: Restrict("RE",2,3); + setarray @c[2],39,161,39,161,147,155; + Disp("Luina F1:Luina F2:Hall of Abyss"); + Pick("","gld_dun02","gld_dun02_2","gld2_ald"); +G3: Restrict("RE",2,3); + setarray @c[2],50,44,50,44,140,132; + Disp("Valkyrie F1:Valkyrie F2:Hall of Abyss"); + Pick("","gld_dun03","gld_dun03_2","gld2_prt"); +G4: Restrict("RE",2,3); + setarray @c[2],116,45,116,45,152,118; + Disp("Britoniah F1:Britoniah F2:Hall of Abyss"); + Pick("","gld_dun04","gld_dun04_2","gld2_gef"); +G5: Go("arug_dun01",199,195); +G6: Go("schg_dun01",200,124); + +// -------------------------------------------------- + Instances: +// -------------------------------------------------- + +menu "Endless Tower",I1, "Hazy Forest",I2, "Malangdo Culvert",I3, + "Nidhoggur's Nest",I4, "Octopus Cave",I5, "Orc's Memory",I6, "Sealed Shrine",I7; + +I1: Go("e_tower",72,112); +I2: Restrict("RE"); + Go("bif_fild01",161,334); +I3: Restrict("RE"); + Go("mal_in01",164,21); +I4: Go("nyd_dun02",95,193); +I5: Restrict("RE"); + Go("mal_dun01",152,230); +I6: Go("gef_fild10",240,198); +I7: Go("monk_test",306,143); + +// -------------------------------------------------- Special: // -------------------------------------------------- -menu "Auction Hall",S1, "Battlegrounds",S2, "Casino",S3, "Gonryun Arena",S4, - "Izlude Arena",S5, "Monster Race Arena",S6, "Turbo Track",S7; +menu "Auction Hall",S1, "Battlegrounds",S2, "Casino",S3, "Eden Group Headquarters",S4, + "Gonryun Arena",S5, "Izlude Arena",S6, "Monster Race Arena",S7, "Turbo Track",S8; S1: Go("auction_01",22,68); S2: Go("bat_room",154,150); S3: Go("cmd_in02",179,129); -S4: Go("gon_test",48,10); -S5: Go("arena_room",100,88); -S6: Go("p_track01",62,41); -S7: Go("turbo_room",99,114); +S4: Restrict("RE"); + Go("moc_para01",31,14); +S5: Go("gon_test",48,10); +S6: Go("arena_room",100,88); +S7: Go("p_track01",62,41); +S8: Go("turbo_room",99,114); } // -------------------------------------------------- // Duplicates: // -------------------------------------------------- -prontera,159,192,4 duplicate(Warper) Warper#1 811 -rachel,135,116,4 duplicate(Warper) Warper#2 811 -alberta,28,240,4 duplicate(Warper) Warper#3 811 -aldebaran,145,118,4 duplicate(Warper) Warper#4 811 -amatsu,203,87,4 duplicate(Warper) Warper#5 811 -ayothaya,209,169,6 duplicate(Warper) Warper#6 811 -comodo,194,158,4 duplicate(Warper) Warper#7 811 -einbech,142,246,4 duplicate(Warper) Warper#8 811 -einbroch,69,202,4 duplicate(Warper) Warper#9 811 -hugel,101,151,4 duplicate(Warper) Warper#10 811 -lighthalzen,151,101,6 duplicate(Warper) Warper#11 811 -geffen,124,72,4 duplicate(Warper) Warper#12 811 -izlude,132,120,4 duplicate(Warper) Warper#13 811 -xmas,150,136,4 duplicate(Warper) Warper#14 811 -morocc,159,97,4 duplicate(Warper) Warper#15 811 -payon,182,108,4 duplicate(Warper) Warper#16 811 -yuno,162,47,4 duplicate(Warper) Warper#17 811 -moc_fild04,207,331,4 duplicate(Warper) Warper#18 811 -izlu2dun,104,82,4 duplicate(Warper) Warper#19 811 -mjolnir_02,85,363,4 duplicate(Warper) Warper#20 811 -prt_fild05,273,215,4 duplicate(Warper) Warper#21 811 -glast_01,370,308,4 duplicate(Warper) Warper#22 811 -yuno_fild03,37,135,4 duplicate(Warper) Warper#23 811 -gef_fild10,71,339,4 duplicate(Warper) Warper#24 811 -pay_arche,39,135,4 duplicate(Warper) Warper#25 811 -moc_ruins,64,166,4 duplicate(Warper) Warper#26 811 -moc_fild19,106,97,4 duplicate(Warper) Warper#27 811 -alb2trea,73,101,4 duplicate(Warper) Warper#28 811 -tur_dun01,148,239,4 duplicate(Warper) Warper#29 811 -gonryun,162,122,4 duplicate(Warper) Warper#30 811 -louyang,208,103,6 duplicate(Warper) Warper#31 811 -umbala,132,130,4 duplicate(Warper) Warper#32 811 -brasilis,201,222,4 duplicate(Warper) Warper#33 811 -manuk,262,177,4 duplicate(Warper) Warper#34 811 -splendide,205,153,4 duplicate(Warper) Warper#35 811 -mid_camp,216,288,4 duplicate(Warper) Warper#36 811 -dicastes01,194,194,6 duplicate(Warper) Warper#37 811 -mora,110,100,4 duplicate(Warper) Warper#38 811 -moscovia,216,196,6 duplicate(Warper) Warper#39 811 -nameless_n,259,213,4 duplicate(Warper) Warper#40 811 -niflheim,205,179,4 duplicate(Warper) Warper#41 811 -thor_camp,249,76,4 duplicate(Warper) Warper#42 811 -veins,214,123,4 duplicate(Warper) Warper#43 811 -dewata,194,178,6 duplicate(Warper) Warper#44 811 -eclage,107,37,4 duplicate(Warper) Warper#45 811 -malaya,210,205,4 duplicate(Warper) Warper#46 811 -malangdo,220,188,6 duplicate(Warper) Warper#47 811 +alb2trea,57,70,6 duplicate(Warper) Warper#tre 4_F_VALKYRIE +alberta,28,240,4 duplicate(Warper) Warper#alb 4_F_VALKYRIE +aldebaran,145,118,4 duplicate(Warper) Warper#alde 4_F_VALKYRIE +amatsu,203,87,4 duplicate(Warper) Warper#ama 4_F_VALKYRIE +ayothaya,209,169,6 duplicate(Warper) Warper#ayo 4_F_VALKYRIE +comodo,194,158,4 duplicate(Warper) Warper#com 4_F_VALKYRIE +einbech,59,38,6 duplicate(Warper) Warper#einbe 4_F_VALKYRIE +einbroch,69,202,4 duplicate(Warper) Warper#einbr 4_F_VALKYRIE +gef_fild10,71,339,4 duplicate(Warper) Warper#orc 4_F_VALKYRIE +geffen,124,72,4 duplicate(Warper) Warper#gef 4_F_VALKYRIE +glast_01,372,308,4 duplicate(Warper) Warper#glh 4_F_VALKYRIE +gonryun,162,122,4 duplicate(Warper) Warper#gon 4_F_VALKYRIE +hugel,101,151,4 duplicate(Warper) Warper#hug 4_F_VALKYRIE +izlu2dun,110,92,4 duplicate(Warper) Warper#izd 4_F_VALKYRIE +izlude,132,120,4 duplicate(Warper) Warper#izl 4_F_VALKYRIE +jawaii,253,138,4 duplicate(Warper) Warper#jaw 4_F_VALKYRIE +lighthalzen,162,102,4 duplicate(Warper) Warper#lhz 4_F_VALKYRIE +louyang,208,103,6 duplicate(Warper) Warper#lou 4_F_VALKYRIE +manuk,274,146,6 duplicate(Warper) Warper#man 4_F_VALKYRIE +mid_camp,216,288,4 duplicate(Warper) Warper#mid 4_F_VALKYRIE +mjolnir_02,85,364,4 duplicate(Warper) Warper#mjo 4_F_VALKYRIE +moc_ruins,64,164,4 duplicate(Warper) Warper#moc 4_F_VALKYRIE +morocc,159,97,4 duplicate(Warper) Warper#mor 4_F_VALKYRIE +moscovia,229,191,4 duplicate(Warper) Warper#mos 4_F_VALKYRIE +nameless_n,259,213,4 duplicate(Warper) Warper#nam 4_F_VALKYRIE +niflheim,205,179,4 duplicate(Warper) Warper#nif 4_F_VALKYRIE +pay_arche,42,134,4 duplicate(Warper) Warper#arc 4_F_VALKYRIE +payon,182,108,4 duplicate(Warper) Warper#pay 4_F_VALKYRIE +prontera,159,192,4 duplicate(Warper) Warper#prt 4_F_VALKYRIE +prt_fild05,279,223,6 duplicate(Warper) Warper#cul 4_F_VALKYRIE +rachel,135,116,4 duplicate(Warper) Warper#rac 4_F_VALKYRIE +splendide,205,153,4 duplicate(Warper) Warper#spl 4_F_VALKYRIE +thor_camp,249,76,4 duplicate(Warper) Warper#thor 4_F_VALKYRIE +umbala,106,150,3 duplicate(Warper) Warper#umb 4_F_VALKYRIE +veins,214,123,4 duplicate(Warper) Warper#ve 4_F_VALKYRIE +xmas,150,136,6 duplicate(Warper) Warper#xmas 4_F_VALKYRIE +yuno,162,47,4 duplicate(Warper) Warper#yuno 4_F_VALKYRIE + +// -------------------------------------------------- +// Duplicates (Renewal): +// -------------------------------------------------- +brasilis,201,222,4 duplicate(Warper) Warper#bra 4_F_VALKYRIE +dewata,204,186,6 duplicate(Warper) Warper#dew 4_F_VALKYRIE +dicastes01,194,194,6 duplicate(Warper) Warper#dic 4_F_VALKYRIE +ecl_in01,51,60,4 duplicate(Warper) Warper#ecl 4_F_VALKYRIE +malangdo,134,117,6 duplicate(Warper) Warper#mal 4_F_VALKYRIE +malaya,210,205,4 duplicate(Warper) Warper#ma 4_F_VALKYRIE +mora,57,152,4 duplicate(Warper) Warper#mora 4_F_VALKYRIE diff --git a/npc/custom/woe_controller.txt b/npc/custom/woe_controller.txt index c7d3f4e9e..824fa4a4f 100644 --- a/npc/custom/woe_controller.txt +++ b/npc/custom/woe_controller.txt @@ -4,8 +4,6 @@ //= Euphy //===== Current Version: ===================================== //= 1.5 -//===== Compatible With: ===================================== -//= Hercules //===== Description: ========================================= //= A controller for War of Emperium designed for //= simplicity and ease of use. @@ -19,7 +17,7 @@ // Information NPC //============================================================ -prontera,149,193,4 script WOE Information 835,{ +prontera,149,193,4 script WOE Information 2_BOARD1,{ doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: @@ -107,7 +105,7 @@ OnMinute00: if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) == $WOE_CONTROL[.@i+2]) { OnWOEEnd: announce "The War Of Emperium is over!",bc_all|bc_woe; - AgitEnd; AgitEnd2; + agitend; agitend2; sleep 1000; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1); @@ -125,10 +123,10 @@ OnMinute00: if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) { deletearray .Active[0],2; set .Active[0], $WOE_CONTROL[.@i+3]; - if (.Init) { AgitEnd; AgitEnd2; } + if (.Init) { agitend; agitend2; } else announce "The War Of Emperium has begun!",bc_all|bc_woe; sleep 1000; - AgitStart; AgitStart2; + agitstart; agitstart2; for(set .@j,0; .@j<30; set .@j,.@j+1) { if (.Active[0]&(1<<.@j)) { if (!.Init) Disp_Owner(.Castles$[.@j],0); @@ -165,9 +163,9 @@ OnReward: freeloop(1); for(set .@i,0; .@i<30; set .@i,.@i+1) if (getarg(0)&(1<<.@i)) { - set .@gid, getcastledata(.Castles$[.@i],1); - if (!.@gid) continue; - set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); + set .@GID, getcastledata(.Castles$[.@i],1); + if (!.@GID) continue; + set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@GID+"' AND "+.@sql$,.@aid,.@cid); for(set .@j,0; .@j<.@size; set .@j,.@j+1) { if (.Options&8 && !(.Options&4)) { set .@ip$, replacestr(getcharip(.@aid[.@j]),".","a"); @@ -275,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"; } @@ -299,26 +297,26 @@ while(1) { } mes "Select a day."; next; - set .@Day, select(" ~ "+implode(.Days$,": ~ "))-1; + set .@day, select(" ~ "+implode(.Days$,": ~ "))-1; mes "[New Session]"; - mes "Select a start time for ^0055FF"+.Days$[.@Day]+"^000000."; + mes "Select a start time for ^0055FF"+.Days$[.@day]+"^000000."; next; set .@menu$,""; for(set .@i,0; .@i<23; set .@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; - set .@Start, select(.@menu$)-1; + set .@start, select(.@menu$)-1; mes "[New Session]"; - mes "Select an end time for ^0055FF"+.Days$[.@Day]+"^000000."; + mes "Select an end time for ^0055FF"+.Days$[.@day]+"^000000."; next; set .@menu$,""; - for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1) + for(set .@i,.@start+1; .@i<24; set.@i,.@i+1) set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":"; - set .@End, select(.@menu$)+.@Start; + set .@end, select(.@menu$)+.@start; for(set .@i,0; .@i<.Size; set .@i,.@i+4) - if (.@Day == $WOE_CONTROL[.@i] && - ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) || - (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) || - (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) { + if (.@day == $WOE_CONTROL[.@i] && + ((.@start >= $WOE_CONTROL[.@i+1] && .@start < $WOE_CONTROL[.@i+2]) || + (.@end > $WOE_CONTROL[.@i+1] && .@end <= $WOE_CONTROL[.@i+2]) || + (.@start <= $WOE_CONTROL[.@i+1] && .@end >= $WOE_CONTROL[.@i+2]))) { mes "[New Session]"; mes "The chosen times overlap with an existing session."; next; @@ -326,22 +324,22 @@ while(1) { break; } if (.@d) { set .@d,0; break; } - set .@Castle,0; + set .@castle,0; while(1) { mes "[New Session]"; - mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000"; + mes "^0055FF"+.Days$[.@day]+" ("+Add_Zero(.@start)+"-"+Add_Zero(.@end)+")^000000"; mes " > Castles:"; - if (!.@Castle) + if (!.@castle) mes " ~ ^777777(none selected)^000000"; else for(set .@i,0; .@i<30; set .@i,.@i+1) - if (.@Castle&(1<<.@i)) mes " ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")"; + if (.@castle&(1<<.@i)) mes " ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")"; next; - set .@menu$,((.@Castle)?" ~ ^FF0000Finished...^000000":"")+":"; + set .@menu$,((.@castle)?" ~ ^FF0000Finished...^000000":"")+":"; for(set .@i,0; .@i<30; set .@i,.@i+1) - set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:"; + set .@menu$, .@menu$+" ~ "+((.@castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:"; set .@i, select(.@menu$)-1; if (.@i) - set .@Castle, .@Castle^(1<<(.@i-1)); + set .@castle, .@castle^(1<<(.@i-1)); else { mes "[New Session]"; mes "Are you sure?"; @@ -349,13 +347,13 @@ while(1) { switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) { case 1: for(set .@i,0; .@i<.Size; set .@i,.@i+4) - if ((.@Day == $WOE_CONTROL[.@i] && .@End <= $WOE_CONTROL[.@i+1]) || .@Day < $WOE_CONTROL[.@i]) { + if ((.@day == $WOE_CONTROL[.@i] && .@end <= $WOE_CONTROL[.@i+1]) || .@day < $WOE_CONTROL[.@i]) { set .@d,1; break; } if (!.@d) { set .@d,1; set .@i,.Size; } copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i; - setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle; + setarray $WOE_CONTROL[.@i], .@day, .@start, .@end, .@castle; set .Size, getarraysize($WOE_CONTROL); case 3: mes "[New Session]"; @@ -447,4 +445,4 @@ while(1) { case 5: close; } } -}
\ No newline at end of file +} |