From 3a1fe6e9998f20f4daf5b1eb2aa5e515a81e3bd8 Mon Sep 17 00:00:00 2001 From: L0ne_W0lf Date: Tue, 28 Oct 2008 04:29:37 +0000 Subject: * More boredom and bugfixing to various scripts. :D - Updated an outdated comment in refine.txt. (bugreport:2370) - Fixed two bad event calls in arug_cas04/05. (bugreport:2386) - Fixed wrong check in haire dresser script. (bugreport:2392) - Fixed infinite loop in archer quest scropt. (bugreport:2393) - Bonus: Updated the blacksmith supply dealer in Einbroch git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13330 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/Changelog.txt | 7 + npc/guild2/arug_cas04.txt | 7 +- npc/guild2/arug_cas05.txt | 7 +- npc/merchants/hair_dyer.txt | 5 +- npc/merchants/refine.txt | 243 ++++++++++++++++++++++++++++++++++- npc/quests/first_class/tu_archer.txt | 5 +- 6 files changed, 262 insertions(+), 12 deletions(-) diff --git a/npc/Changelog.txt b/npc/Changelog.txt index 0181beb46..af6cabc5d 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -1,5 +1,12 @@ Date Added ====== +2008/10/28 + * Rev. 13328 More boredom and bugfixing to various scripts. :D [L0ne_W0lf] + - Updated an outdated comment in refine.txt. (bugreport:2370) + - Fixed two bad event calls in arug_cas04/05. (bugreport:2386) + - Fixed wrong check in haire dresser script. (bugreport:2392) + - Fixed infinite loop in archer quest scropt. (bugreport:2393) + - Bonus: Updated the blacksmith supply dealer in Einbroch 2008/10/27 * Replaced 96 instances of "S_BonusREward" with "S_BonusReward" as it should be in monster_race.txt. [Paradox924X] 2008/10/25 diff --git a/npc/guild2/arug_cas04.txt b/npc/guild2/arug_cas04.txt index 1ccda2634..866f46f3c 100644 --- a/npc/guild2/arug_cas04.txt +++ b/npc/guild2/arug_cas04.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 1.7 +//= 1.8 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= @@ -20,6 +20,7 @@ //= 1.5 Fixed error with control devices. [L0ne_W0lf] //= 1.6 Corrected copy/paste error. [L0ne_W0lf] //= 1.7 Replaced effect numerics with constants. [L0ne_W0lf] +//= 1.8 Fixed wrong event call for stones. (bugreport:2386) [L0ne_W0lf] //============================================================ arug_cas04,1,1,0 script Manager#aru04_02 111,{ @@ -586,7 +587,7 @@ OnGuardianStoneDied: end; OnTimer300000: - donpcevent "1st Guardian Stone#aru04::OnGuardian"; + donpcevent "1st Guardian Stone#aru04::OnEnable"; setarray $agit_ar04[0],2; //Global Variable stopnpctimer; end; @@ -895,7 +896,7 @@ OnGuardianStoneDied: end; OnTimer300000: - donpcevent "2nd Guardian Stone#aru04::OnGuardian"; + donpcevent "2nd Guardian Stone#aru04::OnEnable"; setarray $agit_ar04[1],2; //Global Variable stopnpctimer; end; diff --git a/npc/guild2/arug_cas05.txt b/npc/guild2/arug_cas05.txt index 36bb499ca..e6f2bbbc8 100644 --- a/npc/guild2/arug_cas05.txt +++ b/npc/guild2/arug_cas05.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== -//= 1.7 +//= 1.8 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= @@ -20,6 +20,7 @@ //= 1.5 Fixed error with control devices. [L0ne_W0lf] //= 1.6 Corrected copy/paste error. [L0ne_W0lf] //= 1.7 Replaced effect numerics with constants. [L0ne_W0lf] +//= 1.8 Fixed wrong event call for stones. (bugreport:2386) [L0ne_W0lf] //============================================================ arug_cas05,1,1,0 script Manager#aru05_02 111,{ @@ -586,7 +587,7 @@ OnGuardianStoneDied: end; OnTimer300000: - donpcevent "1st Guardian Stone#aru05::OnGuardian"; + donpcevent "1st Guardian Stone#aru05::OnEnable"; setarray $agit_ar05[0],2; //Global Variable stopnpctimer; end; @@ -895,7 +896,7 @@ OnGuardianStoneDied: end; OnTimer300000: - donpcevent "2nd Guardian Stone#aru05::OnGuardian"; + donpcevent "2nd Guardian Stone#aru05::OnEnable"; setarray $agit_ar05[1],2; //Global Variable stopnpctimer; end; diff --git a/npc/merchants/hair_dyer.txt b/npc/merchants/hair_dyer.txt index 3914c6f38..794dbafa0 100644 --- a/npc/merchants/hair_dyer.txt +++ b/npc/merchants/hair_dyer.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= kobra_k88; L0ne_W0lf //===== Current Version: ===================================== -//= 1.3 +//= 1.4 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= @@ -13,6 +13,7 @@ //= 1.1 Bugfix: fixed missing menu label LEnd->M_End [Lupus] //= 1.2 Rescripted to Aegis 10.3 standards. [L0ne_W0lf] //= 1.3 Fixed problem what "freezes" the NPC. (bugreport:509) [Samuray22] +//= 1.4 Fixed getlook checking the wrong color. (bugreport:2392) [L0ne_W0lf] //============================================================ prt_in,243,168,4 script Jovovich 91,{ @@ -77,7 +78,7 @@ prt_in,243,168,4 script Jovovich 91,{ close; } - if (.@headpalette == getlook(7)) { + if (.@headpalette == getlook(6)) { mes "[Hairdresser Jovovich]"; mes "Eh? But that's the hair color you already have. Please choose a different color."; next; diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt index a41d26a0b..381ce73a3 100644 --- a/npc/merchants/refine.txt +++ b/npc/merchants/refine.txt @@ -51,13 +51,15 @@ //= Updated Repairmen and function. No longer shows menu. //= 2.7a A couple touch-ups to the repairman function. [L0ne_w0lf] //= 2.8 Changed the nonexistent variable .@matname$ for getitemname(.@material). (bugreport:2340) [Samuray22] +//= 2.8 Added proper Blacksmith Supplier to Einroch. [L0ne_W0lf] +//= Updated dated features comment to reflect new usage. //============================================================ //========================================================= // Christopher: Geffen Blacksmith //========================================================= -geffen_in,110,172,0 script Christopher#1::Chrisbs 63,{ +geffen_in,110,172,0 script Christopher#1 63,{ mes "[Christopher Guillenrow]"; mes "Welcome to Christopher's Workshop. Ye can get all yer stuff for forging here. What business"; mes "brings ye to me?"; @@ -321,7 +323,242 @@ geffen_in,110,172,0 script Christopher#1::Chrisbs 63,{ } } -ein_in01,38,29,6 duplicate(Chrisbs) Christopher#2 63 +//========================================================= +// Paul Spanner: Einbroch Blacksmith Supplier +//========================================================= +ein_in01,38,29,0 script Paul Spanner 63,{ + if (checkweight(1201,1) == 0) { + mes "- Wait a minute !! -"; + mes "- Currently you're carrying -"; + mes "- too many items with you. -"; + mes "- Please try again -"; + mes "- after you loose some weight. -"; + close; + } + mes "[Paul Spanner]"; + mes "Welcome, my friend."; + mes "In my shop, you will find everything that you need in forging."; + mes "Tell me what you need."; + next; + switch(select("Purchase Anvil.:Purchase Forging Items.:Purchase Metal.:Process Ores.:Quit.")) { + case 1: + mes "[Paul Spanner]"; + mes "Anvil is the most necessary item for Blacksmiths."; + mes "Since you will use an Anvil more than once, you'd better buy a nice one."; + next; + switch(select("Anvil - 30,000z.:Oridecon Anvil - 120,000z.:Golden Anvil - 300,000z.:I need a better anvil.:Cancel.")) { + case 1: + if (zeny < 30000) { + mes "[Paul Spanner]"; + mes "With that much of money, you cannot even buy a toy anvil!"; + close; + } + getitem 986,1; //Anvil + set zeny,zeny-30000; + mes "[Paul Spanner]"; + mes "It is the cheapest anvil which has the most basic ability."; + mes "Thank you for using my shop. If you need anything, just let me know."; + close; + case 2: + if (zeny < 120000) { + mes "[Paul Spanner]"; + mes "With that much of money, you cannot even buy a toy anvil!"; + close; + } + getitem 987,1; //Oridecon_Anvil + set zeny,zeny-120000; + mes "[Paul Spanner]"; + mes "Ah, you have an eye for anvil. A Blacksmith needs an anvil at least as good as this."; + mes "Thank you for using my shop. If you need anything, just let me know."; + close; + case 3: + if (zeny < 300000) { + mes "[Paul Spanner]"; + mes "With that much of money, you cannot even buy a toy anvil!"; + close; + } + getitem 988,1; //Golden_Anvil + set zeny,zeny-300000; + mes "[Paul Spanner]"; + mes "I can tell your ambition to become a good Blacksmith just by looking at you to choose this Golden Anvil!"; + mes "This anvil will surely aid you in creating the best weapons."; + close; + case 4: + mes "[Paul Spanner]"; + mes "I am sorry, but I do not sell better anvils than Golden Anvil."; + mes "Unless you find the legendary anvil of 'Linggell', I don't think that you could find better one than Golden Anvil in any other places."; + close; + case 5: + mes "[Paul Spanner]"; + mes "If you need anything, just let me know."; + close; + } + case 2: + mes "[Paul Spanner]"; + mes "You need various materials to process ores and to forge weapons."; + mes "I have everything that you need. Take a look."; + next; + switch(select("Mini Furnace - 150z.:Iron Hammer - 1,000z.:Golden Hammer - 3,000z.:Oridecon Hammer - 5,000z.:Cancel.")) { + case 1: + set .@item,612; + set .@item_cost,150; + set .@item_weight,200; + mes "[Paul Spanner]"; + mes "You definately need this furnce to process ores!"; + next; + break; + case 2: + set .@item,613; + set .@item_cost,1000; + set .@item_weight,200; + break; + case 3: + set .@item,614; + set .@item_cost,3000; + set .@item_weight,300; + break; + case 4: + set .@item,615; + set .@item_cost,5000; + set .@item_weight,400; + break; + case 5: + mes "[Paul Spanner]"; + mes "If you need anything, just let me know."; + close; + } + mes "[Paul Spanner]"; + mes "So, how many do you need? If you want to cancel the trade, enter '0'."; + next; + while(1) { + input .@input; + if (.@input == 0) { + mes "[Paul Spanner]"; + mes "You have canceled the trade. If you need anything, just let me know."; + close; + } + else if ((.@input < 0) || (.@input > 500)) { + mes "[Paul Spanner]"; + mes "You can only buy 500 or less at a time."; + next; + } + else { + break; + } + } + set .@sell,.@input * .@item_cost; + if (zeny < .@sell) { + mes "[Paul Spanner]"; + mes "You don't have enough money. Sorry, I cannot sell them at a loss."; + close; + } + if (checkweight(.@item,.@input) == 0) { + mes "[Paul Spanner]"; + mes "Hey, you look pale. Why don't you go lighten your weight first."; + close; + } + set zeny,zeny-.@sell; + getitem 612,.@input; + mes "[Paul Spanner]"; + mes "Thank you for using my shop. If you need anything, just let me know."; + close; + case 3: + mes "[Paul Spanner]"; + mes "I have high quality metal."; + mes "So, which metal would you like to buy?"; + next; + switch(select("Phracon - 200z.:Emveretarcon - 1,000z.:Quit.")) { + case 1: + set .@item,1010; + set .@item_price,200; + break; + case 2: + set .@item,1011; + set .@item_price,1000; + break; + case 3: + mes "[Paul Spanner]"; + mes "If you need anything, just let me know."; + close; + } + mes "[Paul Spanner]"; + mes "So, how many of them do you need? If you want to cancel the trade, enter '0'."; + next; + while(1) { + input .@input; + if (.@input == 0) { + mes "[Paul Spanner]"; + mes "The trade has been canceled. If you need anything, just let me know."; + close; + } + else if ((.@input < 0) || (.@input > 500)) { + mes "[Paul Spanner]"; + mes "You can buy 500 or less at a time."; + next; + } + else { + break; + } + } + set .@sell,.@input * .@item_price; + if (zeny < .@sell) { + mes "[Paul Spanner]"; + mes "You don't have enough money. Sorry, I cannot sell them at a loss."; + close; + } + if (checkweight(.@item,.@input) == 0) { + mes "[Paul Spanner]"; + mes "Hey, you look pale. Why don't you go lighten your weight first?"; + close; + } + getitem .@item,.@input; + set zeny,zeny-.@sell; + mes "[Paul Spanner]"; + mes "Thank you for using my shop. If you need anything, just let me know."; + close; + case 4: + mes "[Paul Spanner]"; + mes "I can process Oridecon and Elunium for you."; + mes "You need 5 ores to process them into one Oridecon or Elunium."; + mes "So, which one do you want to process?"; + switch(select("Oridecon:Elunium:Quit.")) { + case 1: + if (countitem(756) < 5) { + mes "[Paul Spanner]"; + mes "You need 5 ores to process them into one pure Oridecon."; + close; + } + else { + delitem 756,5; //Oridecon_Stone + getitem 984,1; //Oridecon + mes "[Paul Spanner]"; + mes "There you go. Thank you for using my service."; + close; + } + case 2: + if (countitem(757) < 5) { + mes "[Paul Spanner]"; + mes "You need 5 ores to process them into one pure Elunium."; + close; + } + else { + delitem 757,5; //Elunium_Stone + getitem 985,1; //Elunium + mes "[Paul Spanner]"; + mes "There you go. Thank you for using my service."; + close; + } + case 3: + mes "[Paul Spanner]"; + mes "If you need anything, just let me know."; + close; + } + case 5: + mes "[Paul Spanner]"; + mes "If you need anything, just let me know."; + close; + } +} //===================================================================================== // Weapon/Armor Refiners @@ -359,7 +596,7 @@ lhz_in02,282,20,7 script Fulerr 869,{ //= Main Refiner Function //============================================================ //= To allow auto safe refining/multiple refining set the -//= .@features variable to 1 +//= second argument to '1' in the function call. //============================================================ function script refinemain { set .@features,getarg(1); diff --git a/npc/quests/first_class/tu_archer.txt b/npc/quests/first_class/tu_archer.txt index 7e8c933d3..d517395e6 100644 --- a/npc/quests/first_class/tu_archer.txt +++ b/npc/quests/first_class/tu_archer.txt @@ -3,7 +3,7 @@ //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== -//= 1.5 +//= 1.6 //===== Compatible With: ===================================== //= eAthena SVN (Testet in Trunk 88xx) //===== Description: ========================================= @@ -16,6 +16,7 @@ //= Skill quest NPC) [Lupus] //= 1.4 Fixed experience gains to match upcoming rate adjustments. [SinSloth] //= 1.5 Fixed bad NPC header data to comply with rev. 11603. [L0ne_W0lf] +//= 1.6 Fixed infinate loop. (bugreport:2393) [L0ne_W0lf] //============================================================ @@ -1312,8 +1313,10 @@ pay_arche,84,139,3 script Seisner 727,{ mes "anything else that"; mes "you want to ask me?"; next; + set .@exitwhite,1; break; } + if (.@exitwhile) break; } break; case 3: -- cgit v1.2.3-70-g09d2