From 40dcd5a42ff0b8afbb776be33440876bc891e1c9 Mon Sep 17 00:00:00 2001 From: euphyy Date: Fri, 8 Jun 2012 00:35:56 +0000 Subject: * Added "eA Job System" documentation for third classes (doc\ea_job_system.txt) * Fixed Eden: Romeo#02 not setting para_suv01 upon quest completion (bugreport:5949) * Cleaned and edited "Item Signer" script for general use (custom\item_signer.txt) * Merged and cleaned "Poring Track" custom script, then moved and renamed (custom\events\p_track.txt) * Optimized "Valhallen Quests" script (custom\quests\valhallen.txt) * Optimized "Event King Items" script (custom\events\kings_items.txt) * Deleted "Market Place" script, not sure why this existed... (custom\etc\market.txt) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16239 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/custom/etc/market.txt | 39 ---- npc/custom/events/kings_items.txt | 213 ++++++-------------- npc/custom/events/p_track.txt | 67 +++++++ npc/custom/events/p_track/p_track_core.txt | 44 ----- npc/custom/events/p_track/p_track_warpers.txt | 72 ------- npc/custom/item_signer.txt | 273 ++++++++------------------ npc/custom/quests/valhallen.txt | 227 +++++---------------- npc/quests/eden/eden_quests.txt | 1 + npc/scripts_custom.conf | 3 +- 9 files changed, 262 insertions(+), 677 deletions(-) delete mode 100644 npc/custom/etc/market.txt create mode 100644 npc/custom/events/p_track.txt delete mode 100644 npc/custom/events/p_track/p_track_core.txt delete mode 100644 npc/custom/events/p_track/p_track_warpers.txt (limited to 'npc') diff --git a/npc/custom/etc/market.txt b/npc/custom/etc/market.txt deleted file mode 100644 index d07eabac8..000000000 --- a/npc/custom/etc/market.txt +++ /dev/null @@ -1,39 +0,0 @@ -//===== rAthena Script ======================================= -//= Market Place -//===== By: ================================================== -//= Lupus -//===== Current Version: ===================================== -//= 1.1 -//===== Compatible With: ===================================== -//= rAthena SVN -//===== Description: ========================================= -//= This script should move vending crowds from Prontera -//= streets to a suitable market place. Save your traffic 8) -//===== Additional Comments: ================================= -//= 1.1 Optimized it, Removed labels. [Spre] -//============================================================ - -prontera,144,174,3 script Market Place 722,{ - mes"[Market Place]"; - mes"Tristan III's order: ^FF0000Move all the private shops to a special Market Place^000000."; - next; - if (select("Yes Please:No") == 2) { - close; - } - // I didn't see the need to check and show venders.... Since it didnt even work - warp "gon_test",27+rand(5),98; - end; -} - -gon_test,73,103,0 script MarketExit 45,1,2,{ - warp "prontera",155,177-rand(10); - end; -} - -//disable vending in Prontera -prontera mapflag novending -prt_in mapflag novending -//Market Place settings -gon_test mapflag noteleport -gon_test mapflag nomemo -gon_test mapflag nobranch diff --git a/npc/custom/events/kings_items.txt b/npc/custom/events/kings_items.txt index a706e037c..8140827c1 100644 --- a/npc/custom/events/kings_items.txt +++ b/npc/custom/events/kings_items.txt @@ -3,176 +3,77 @@ //===== By: ================================================== //= $ephiroth //===== Current Version: ===================================== -//= 1.0 +//= 1.1 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= Grand Circlet Quest combined with Excalibur Quest. -//= Converted to rAthena format from Fusion. +//===== 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,{ - set @npcname$,"[King of Prontera]"; - - mes @npcname$; - mes "Hello can you help me?"; - next; - menu "Sure, what can I do?",L_Sure,"No sorry I'm busy",L_Quit; - -L_Sure: - mes @npcname$; - mes "Thank you."; - mes "Well, my daughter next to me is a little rowdy"; - mes "if you got her these items I'm sure she would calm down."; - mes "If you bring me these items I'll give you my crown or my sword"; - mes "Both are very special."; - next; - menu "Ok what do you need?",L_Req,"I have the items",L_Have,"Forget it",L_Quit; - -L_Req: - mes @npcname$; - mes "If you could get me:"; - mes "^00B6FF30 Chonchon doll^000000"; - mes "^D5A50050 Poring doll^000000"; - mes "^0080FF20 Yoyo doll^000000"; - mes "^CC66331 3carat diamond^000000"; - mes "^3131FF20 Illusion Flowers^000000"; - mes "^AA00AA20 Singing Flowers^000000"; - mes "I'll give you my crown."; - next; - mes @npcname$; - mes "If you could get me:"; - mes "^0000881 Angel Band^000000"; - mes "^4422FF1 Heaven Ring^000000"; - mes "^AA00AA1 Emperium^000000"; - mes "I'll give my sword."; - mes "Once you find those, come back to me."; - close; - -L_Have: - mes @npcname$; - mes "What item you want?"; - next; - menu "Crown",L_crown,"Sword",L_sword; - -L_crown: - if(countitem(742)<30) goto L_Error; - if(countitem(741)<50) goto L_Error1; - if(countitem(753)<20) goto L_Error2; - if(countitem(732)<1) goto L_Error3; - if(countitem(710)<20) goto L_Error4; - if(countitem(629)<20) goto L_Error5; - delitem 742,30; - delitem 741,50; - delitem 753,20; - delitem 732,1; - delitem 710,20; - delitem 629,20; - mes @npcname$; - mes "THANK YOU SOO MUCH!!"; - mes "This will surely calm her down."; - mes "Let me just take the items from you."; + mes "[King of Prontera]"; + mes "Hello, can you help me?"; next; - mes @npcname$; - mes "As I promised here is my crown."; - getitem 5007,1; + if(select("Sure, what can I do?:Sorry, I'm busy.")==2) { + mes "[King of Prontera]"; + mes "Ok, that's fine, I'm sure someone else will help."; + close; } + mes "[King of Prontera]"; + mes "Thank you. Well, my daughter next to me is a little rowdy..."; + 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; - mes @npcname$; - mes "Well, I have to calm her down now."; - mes "Thanks again!"; - close; -L_sword: - if(countitem(2254)<1) goto L_NoAngel; - if(countitem(2282)<1) goto L_NoHeaven; - if(countitem(714)<1) goto L_NoEmp; - delitem 2254,1; - delitem 2282,1; - delitem 714,1; - mes @npcname$; - mes "THANK YOU SOO MUCH!!"; - mes "This will surely calm her down."; - mes "Let me just take the items from you."; - next; - mes @npcname$; - mes "As I promised here is my sword."; - getitem 1137,1; - next; - mes @npcname$; - mes "Well, I have to calm her down now."; - mes "Thanks again!"; - close; - -L_NoAngel: - mes @npcname$; - mes "Sorry but you must have at least one Angel Band."; - mes "Come back after you get ALL the items."; - close; - -L_NoHeaven: - mes @npcname$; - mes "Sorry but you must have at least one Heaven Ring."; - mes "Come back after you get ALL the items."; - close; - -L_NoEmp: - mes @npcname$; - mes "Sorry but you must have at least one Emperium."; - mes "Come back after you get ALL the items."; - close; - -L_Error: - mes @npcname$; - mes "Oh darn, you need 30 Chonchon Dolls."; - close; - -L_Error1: - mes @npcname$; - mes "Oh darn, you need 50 Poring dolls."; - close; - -L_Error2: - mes @npcname$; - mes "Oh darn, you need 20 Yoyo dolls."; - close; - -L_Error3: - mes @npcname$; - mes "Oh darn, you need one 3 Carat Diamond."; - close; - -L_Error4: - mes @npcname$; - mes "Oh darn, you need 20 Illusion Flowers."; - close; - -L_Error5: - mes @npcname$; - mes "Oh darn, you need 20 Singing Flowers."; - close; - -L_Quit: - mes @npcname$; - mes "Ok, that's fine, I'm sure someone else will help."; - close; + 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,{,...} (0 to disable) + setarray .@Cost[0],0,5000; // Zeny requirements: , + mes "[Perchik]"; - if(BaseJob==Job_Novice || BaseLevel<50) { - mes "Sorry, I don't help newbies. Go kill more Porings."; - emotion e_sry; - close; - } - mes "Hi, I can ^000090sign your name^000000 on almost any rare item you can hold."; - next; - menu "Tell me more...",-, "Sign my items, please",M_DO; - - mes "[Perchik]"; - mes "I can put your name on any slotless equipment or weapon."; - emotion e_ic; + mes "I can ^0055FFsign your name^000000 on almost any rare item you hold."; next; - mes "[Perchik]"; - mes "A week ago, my BOSS told me to send away newbies. I dunno why."; - next; - mes "[Perchik]"; - mes "For my work I accept ^0000803 Gift Box^000000es (gray one)"; - mes "plus ^FF00005000z^000000 per each refine of your item."; - next; - emotion e_cry; - mes "[Perchik]"; - mes "Alas, I have 12 hungry children"; - mes "and a very angry wife."; - next; - mes "[Perchik]"; - mes "Or it was... 12 angry children"; - mes "and a very hungry wife..."; - emotion e_hmm; - close; - -M_DO: + if(select("Tell me more...:Sign my items, please!")==1) { + mes "[Perchik]"; + mes "I can put your name on any slotless equipment or weapon."; + emotion e_ic; + next; + mes "[Perchik]"; + if (getarraysize(.@Item) || getarraysize(.@Cost)) { + mes "For my work I accept:"; + if (getarraysize(.@Item)) + for(set .@i,0; .@i4000 && @slot0<5000) { + close; } + if (.@slot[0]>4000 && .@slot[0]<5000) { mes "A card? Here?!"; mes "As I said before, I don't sign items with cards."; emotion e_hmm; - goto M_MENU; - } - if(getiteminfo(@id,10)) { - mes "Sorry. I don't sign slotted items."; + close; } + if (getiteminfo(.@id,10)) { + mes "Sorry, I don't sign slotted items."; emotion e_sry; - goto M_MENU; - } + close; } getinventorylist; - for (set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){ - if(@inventorylist_expire[.@i] != 0) { + for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) + if (@inventorylist_expire[.@i] != 0) { mes "Sorry, I don't sign rental items!"; emotion e_hmm; - goto M_MENU; - } - } - - if(@ref)mes "It has been refined "+@ref+" times... Adding ^FF00005000z^000000 per time."; - mes "Give me ^0000803 gray Gift Boxes^000000"; - if(@ref)mes "and ^FF0000"+(5000*@ref)+"z^000000."; + close; } + set .@price, .@Cost[0]+(.@Cost[1]*.@ref); + if (getarraysize(.@Item) || .@price) { + mes "I will need:"; + if (getarraysize(.@Item)) + for(set .@i,0; .@i=(5000*@ref) && countitem(644)>=3) { - delitem 644,3; - set Zeny,Zeny-(5000*@ref); - goto L_MAKE; - } - mes "[Perchik]"; - mes "I don't work for 'thanks'."; - emotion e_sry; - close; - -L_MAKE: - if(countitem2(@id,1,@ref,0,@slot0,@slot1,@slot2,@slot3)==0) { + if(select("Ok!:Leave")==2) { mes "[Perchik]"; - mes "Where is... "+getitemname(@id)+"?"; + mes "See you..."; + emotion e_yawn; + close; } + mes "[Perchik]"; + if (Zeny < .@price || .@nr) { + mes "I don't work for 'thanks'."; + emotion e_sry; + close; } + if (!countitem2(.@id,1,.@ref,0,.@slot[0],.@slot[1],.@slot[2],.@slot[3])) { + mes "Where is "+getitemname(@id)+"...?"; npctalk "You're a snoozy cheater!"; logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id); emotion e_wah; - close; - } - delitem2 @id,1,1,@ref,0,@slot0,@slot1,@slot2,@slot3; - - mes "[Perchik]"; + close; } + if (.@price) set Zeny, Zeny-.@price; + if (getarraysize(.@Item)) + for(set .@i,0; .@i>16)&0xffff; - close; - -M_END: - mes "[Perchik]"; - mes "See you..."; - emotion e_yawn; + getitem2 .@id,1,1,.@ref,0,254,0,getcharid(0)&0xffff,(getcharid(0)>>16)&0xffff; + equip .@id; close; } diff --git a/npc/custom/quests/valhallen.txt b/npc/custom/quests/valhallen.txt index e976640cc..19480b105 100644 --- a/npc/custom/quests/valhallen.txt +++ b/npc/custom/quests/valhallen.txt @@ -1,197 +1,68 @@ //===== rAthena Script ======================================= -//= Valhallen items Quests NPC +//= Valhallen Items Quests NPC //===== By: ================================================== //= Avaji //===== Current Version: ===================================== -//= 1.0 +//= 1.1 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= -//= All-in-one: Mjollnir,Sleipnir,Brisingammen,Gleipnir,Megingjard -//===== Additional Comments: ================================= +//= All-in-one: Mjolnir,Sleipnir,Brisingamen,Gleipnir,Megingjard //= Custom quest, ingredients based on official RO FAQ +//===== Additional Comments: ================================= +//= 1.1 Optimized. [Euphy] //============================================================ prontera,147,171,5 script Lenneth 811,{ mes "[Lenneth]"; mes "I come from Valhalla to aid you."; - mes "I can transmute for you many of the Valhallen items."; - mes "Although they require many rare elements to make."; - next; - mes "[Lenneth]"; - mes "What would you like?"; - next; - menu "Mjollnir",-,"Sleipnir",L_SLE,"Brisingammen",L_BRI,"Gleipnir",L_GLE,"Megingjard",L_MEG; - - mes "[Lenneth]"; - mes "^3355FFMjollnir^000000 is the mighty Hammer of Thor."; - mes "The items I need to transmute 2 ^3355FFSpanners^000000 into ^3355FFMjollnir^000000 are as follows:"; - mes "20 ^3355FFOridecon^000000 5 ^3355FFElunium^000000 and 40 ^3355FFGold^000000"; - mes "I also need the following essences:"; - mes "2 ^3355FFThor's Guntlet^000000"; - mes "4 ^3355FFIron Maiden^000000"; - mes "5 ^3355FFWrath of Valkyrie^000000"; - mes "5 ^3355FFBreath of Soul^000000"; - mes "5 ^3355FFOmen of tempest^000000"; - next; - mes "[Lenneth]"; - mes "Do you desire ^3355FFMjollnir^000000?"; - next; - menu "Yes",-,"No",L_OUT; - - if(countitem(984) < 20 || countitem(985) < 5 || countitem(969) < 40 || countitem(1531) < 2 || countitem(7089) < 5 - || countitem(7074) < 2 || countitem(7075) < 4 || countitem(7078) < 5 || countitem(7087) < 5) goto L_NOTENOUGH; - - delitem 984,20; - delitem 985,5; - delitem 969,40; - delitem 1531,2; - delitem 7074,2; - delitem 7075,4; - delitem 7078,5; - delitem 7087,5; - delitem 7089,5; - - getitem 1530,1; - - mes "[Lenneth]"; - mes "Here is your ^3355FFMjollnir^000000, may it serve you well."; - close; -L_SLE: - - mes "[Lenneth]"; - mes "^3355FFSleipnir^000000 are boots made after Odin's War Horse."; - mes "To be able to transmute 2 ^3355FFBoots^000000 into ^3355FFSleipnir^000000 I will need:"; - mes "1 ^3355FFOridecon^000000 10 ^3355FFElunium^000000 and 20 ^3355FFGold^000000"; - mes "I also need the following essences:"; - mes "3 ^3355FFWheel of the Unknown^000000"; - mes "5 ^3355FFFeather of Angel^000000"; - mes "3 ^3355FFSprirt of Fish^000000"; - mes "3 ^3355FFEmblem of the Sun God^000000"; + mes "I can transmute for you many of the Valhallen items,"; + mes "although they require many rare elements to make."; next; - mes "[Lenneth]"; - mes "Do you desire ^3355FFSleipnir^000000?"; + switch(select("Mjolnir:Sleipnir:Brisingamen:Gleipnir:Megingjard")) { + 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; + 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; + 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; + 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; + 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; + break; } + mes "^FF0000The items I need are as follows:^000000"; + for(set .@i,1; .@i