diff options
-rw-r--r-- | world/map/npc/001-2/casino.txt | 16 | ||||
-rw-r--r-- | world/map/npc/021-1/north_shops.txt | 13 | ||||
-rw-r--r-- | world/map/npc/021-1/weellos.txt | 17 | ||||
-rw-r--r-- | world/map/npc/021-2/_import.txt | 1 | ||||
-rw-r--r-- | world/map/npc/021-2/kylian.txt | 275 | ||||
-rw-r--r-- | world/map/npc/021-2/yanis.txt | 27 | ||||
-rw-r--r-- | world/map/npc/022-1/_import.txt | 1 | ||||
-rw-r--r-- | world/map/npc/022-1/adrian.txt | 52 |
8 files changed, 393 insertions, 9 deletions
diff --git a/world/map/npc/001-2/casino.txt b/world/map/npc/001-2/casino.txt index 1ee4770a..d058b8c1 100644 --- a/world/map/npc/001-2/casino.txt +++ b/world/map/npc/001-2/casino.txt @@ -1,4 +1,18 @@ -// +// Casino + +// takes part in quest given by 021-2/kylian.txt +001-2.gat,32,72,0|script|#CasinoEntrance|32767,1,1,{ + set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowCasinoNT; + set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT); + if (@kylian != 6) + goto L_End; + message strcharinfo(0), "You wonder if Kylian would like to visit the casino in the evening."; + goto L_End; + +L_End: + set @kylian, 0; + end; +} 001-2.gat,134,23,0|script|Valdo|117,{ mes "[Valdo the Worker]"; diff --git a/world/map/npc/021-1/north_shops.txt b/world/map/npc/021-1/north_shops.txt index c02141d3..a64a1d87 100644 --- a/world/map/npc/021-1/north_shops.txt +++ b/world/map/npc/021-1/north_shops.txt @@ -6,9 +6,22 @@ 021-1.gat,136,38,0|shop|Inar|108,CottonShirt :-1,CottonShorts :-1,WhiteCottonBoots :-1,DesertShirt :-1,SilkRobe :-5,DesertHat :-4 // A snobby store that won't sell to the player +// takes part in quest given by 021-2/kylian.txt 021-1.gat,138,29,0|script|Latoy|106,{ + + set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowLatoyNT; + set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT); + mes "[Latoy]"; mes "\"There's nothing here you could want or afford.\""; + if (@kylian != 7) + goto L_Close; + next; + mes "Maybe this is the kind of shop Kylian is looking for?"; + goto L_Close; + +L_Close: + set @kylian, 0; close; } diff --git a/world/map/npc/021-1/weellos.txt b/world/map/npc/021-1/weellos.txt index ec57a457..d86f7221 100644 --- a/world/map/npc/021-1/weellos.txt +++ b/world/map/npc/021-1/weellos.txt @@ -1,6 +1,10 @@ // A historian +// takes part in quest given by 021-2/kylian.txt 021-1.gat,130,125,0|script|Weellos|103,{ + set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowWeellosNT; + set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT); + set @hw2011_npc_id, $@hw2011_npc_weellos; if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day) goto L_TrickOrTreat; @@ -10,12 +14,23 @@ L_Begin: mes "[Weellos]"; mes "\"This is a very historic building. One of the oldest in the area.\""; - close; + goto L_BeforeClose; // If the player is inside the fence with Weellos L_In: mes "[Weellos]"; mes "\"What did you think of the historic building?\""; + goto L_BeforeClose; + +L_BeforeClose: + if (@kylian != 4) + goto L_Close; + next; + mes "You wonder if Kylian would be interested to see this building."; + goto L_Close; + +L_Close: + set @kylian, 0; close; L_TrickOrTreat: diff --git a/world/map/npc/021-2/_import.txt b/world/map/npc/021-2/_import.txt index 592a9a3f..bb80fc32 100644 --- a/world/map/npc/021-2/_import.txt +++ b/world/map/npc/021-2/_import.txt @@ -8,6 +8,7 @@ npc: npc/021-2/government_building.txt npc: npc/021-2/heathin.txt npc: npc/021-2/inya.txt npc: npc/021-2/jhedia.txt +npc: npc/021-2/kylian.txt npc: npc/021-2/mapflags.txt npc: npc/021-2/workshop.txt npc: npc/021-2/yanis.txt diff --git a/world/map/npc/021-2/kylian.txt b/world/map/npc/021-2/kylian.txt new file mode 100644 index 00000000..0376f0ca --- /dev/null +++ b/world/map/npc/021-2/kylian.txt @@ -0,0 +1,275 @@ +// Kylian is a businessman from Argeas who wants to eventually open a shop in Tulimshar +// asks the player for several information about the city +// Quest uses Nibble 4 and 5 of QUEST_NorthTulimshar +// Author: Jenalya + +// Nibble 4 is used as flags to indicate if the player knows certain places/persons +// Bit 0: player talked to Yanis in the government building +// Bit 1: player talked to Latoy on the market in North Tulimshar +// Bit 2: player talked to Weellos as the historic building +// Bit 3: player was in the casino rooms + +// Nibble 5 is used to save the quest progress with Kylian +// state 1: player has the task to get the luggage from the harbor +// state 2: Adrian gave the luggage to the player +// state 3: player gave luggage to Kylian and Kylian asks who to talk to for the shop license +// after the player answered this, @KylianNTLicense is set. +// the player can only continue the quest when logging out and therefore setting that value to 0 again +// state 4: Kylian asks for a historical building to get some cultural knowledge +// state 5: Kylian asks where to get some typical food +// after the player answered this, @KylianNTSightSeeing is set. +// the player can only continue the quest when logging out and therefore setting that value to 0 again +// state 6: Kylian asks where to go to have some fun in the evening (casino) +// state 7: Kylian asks where to get exquisite clothing before going out in the evening +// after the player answered this, @KylianNTSightSeeing is set. +// the player can only continue the quest when logging out and therefore setting that value to 0 again +// state 8: Kylian was in the casino and gives a desert hat as reward +// state 9: To be continued here + +// temporary variables used to check if the player logged out or left the building in the meanwhile +// this is to ensure some 'time in between' different actions of the quest +// @KylianNTLicense +// @KylianNTSightSeeing +// @KylianNTCasino + +-|script|#businessmanNTconfig|-1,{ +OnInit: + // Nibble 4 + set $@knowYanisNT, 0x10000; + set $@knowLatoyNT, 0x20000; + set $@knowWeellosNT, 0x40000; + set $@knowCasinoNT, 0x80000; + + set $@businessmanNT_MASK, NIBBLE_5_MASK; + set $@businessmanNT_SHIFT, NIBBLE_5_SHIFT; + end; +} + +021-2.gat,25,67,0|script|#KylianOut|32767,1,1,{ + set @KylianNTLicense, 0; + set @KylianNTSightSeeing, 0; + set @KylianNTCasino, 0; + end; +} + +021-2.gat,32,92,0|script|Kylian|193,{ + + set @state, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT); + + set @acorn_amount, 12; + set @suitcase_money, 100; + set @suitcase_exp, 50; + set @license_money, 50; + set @license_exp, 20; + set @sightseeing_money, 50; + set @sightseeing_exp, 20; + set @food_money, 50; + set @food_exp, 20; + set @clothes_money, 50; + set @clothes_exp, 20; + set @fun_money, 50; + set @fun_exp, 20; + + if (@state == 9) goto L_Done; + if (@KylianNTCasino) goto L_CasinoDone; + if (@state == 8) goto L_DesertHat; + if (@state == 7) goto L_Clothes; + if (@KylianNTSightSeeing) goto L_SightSeeingDone; + if (@state == 6) goto L_Casino; + if (@state == 5) goto L_Food; + if (@KylianNTLicense) goto L_LicenseDone; + if (@state == 4) goto L_SightSeeing; + if (@state == 3) goto L_ShopLicense; + if (@state >= 1) goto L_Suitcase; + + mes "[Kylian]"; + mes "\"Ah, are you the room service? I've some requests.\""; + menu + "Sure, what can I do for you?",L_Luggage, + "No, I'm not!",-; + mes "[Kylian]"; + mes "\"Too bad. Would you be interested in earning some quick money with some errands regardless?\""; + menu + "I'm a great adventurer! I don't do errands.",L_Close, + "No, I'm busy.",L_Close, + "Mh, ok.",L_Luggage; +L_Luggage: + mes "[Kylian]"; + mes "\"I need someone to get my luggage from the docks. Show this paper to the sailor who's taking care about the luggage.\""; + mes "He gives you his ticket which you store in your pocket, seperated from your inventory."; + set @state, 1; + callsub S_Update_Mask; + goto L_Close; + +L_Suitcase: // @state >= 1, but below 3 + mes "[Kylian]"; + mes "\"Did you already get my luggage from the docks?\""; + if (@state != 2) + goto L_Close; + menu + "Here it is.",-, + "I'm on my way, don't worry.",L_Close; + if (countitem("LeatherSuitcase") < 1) + goto L_NoItem; + delitem "LeatherSuitcase", 1; + set Zeny, Zeny + @suitcase_money; + getexp @suitcase_exp, 0; + set @state, 3; + callsub S_Update_Mask; + mes "[Kylian]"; + mes "\"Ah, very good. I really need to have a look at some of my papers in there.\""; + mes "He gives you some money."; + next; + mes "[Kylian]"; + mes "\"Oh, and I have some acorns left, I had them with me as travelling fare. You can have them, they're tasty."; + mes "In case you don't like them, you could also bring them to the Tulimshar bakery. I heard they use them to make some special flour out of them.\""; + getitem "Acorn", @acorn_amount; + next; +L_ShopLicense: // @state == 3 + mes "[Kylian]"; + mes "\"I'm a salesman and came to Tulimshar because I'm thinking about establishing a shop here. While I'm going through my papers, could you find out who I have to talk to in regards of opening a shop in this city?\""; + if (!(QUEST_NorthTulimshar & $@knowYanisNT)) + goto L_Close; + menu + "You need to talk to Yanis in the government building.",-, + "I'll see what I can do.",L_Close; + set Zeny, Zeny + @license_money; + getexp @license_exp, 0; + set @state, 4; + callsub S_Update_Mask; + set @KylianNTLicense, 1; + mes "[Kylian]"; + mes "\"Ah, excellent. That's very helpful. Could you tell me how to get to that building?\""; + mes "You explain the way to the building."; + next; +L_LicenseDone: // the player didn't log out yet after telling about Yanis + mes "[Kylian]"; + mes "\"I need to prepare my papers now. I might have some more questions later.\""; + goto L_Close; + +L_SightSeeing: // @state == 4 and logged out somewhen between getting to that state and now + mes "[Kylian]"; + mes "\"You just came here the right moment. I have finished my business affairs. I think I should use my time here to also get a bit cultural knowledge about the area. Can you tell me if there are any historical places to visit?\""; + if (!(QUEST_NorthTulimshar & $@knowWeellosNT)) + goto L_Close; + menu + "There is a very old historic building not far from here.",-, + "I don't know, but will have a look around.",L_Close; + set Zeny, Zeny + @sightseeing_money; + getexp @sightseeing_exp, 0; + set @state, 5; + callsub S_Update_Mask; + mes "[Kylian]"; + mes "\"This sounds interesting. Please explain me the way.\""; + mes "You tell him how to get to the historic building."; + next; +L_Food: // @state == 5 + mes "[Kylian]"; + mes "\"While I'm out, I could also get something to eat. Maybe some typical dish for this region. Do you have a good suggestion for that?\""; + if (TMW_Quest < 4) // didn't yet help Bernard to make his soup + goto L_Close; + menu + "Bernard on the bazaar makes a great soup.",-, + "No idea, I'll try to find out.",L_Close; + set Zeny, Zeny + @food_money; + getexp @food_exp, 0; + set @state, 6; + callsub S_Update_Mask; + set @KylianNTSightSeeing, 1; +L_SightSeeingDone: + mes "[Kylian]"; + mes "\"I'm going to see the historic building you told me about and try this local soup on the bazaar. Thank you for the suggestions.\""; + goto L_Close; + +L_Casino: // @state == 6 and logged out somewhen between getting to that state and now + mes "[Kylian]"; + mes "\"Hello. I just came back from my sight-seeing tour. And this soup from Bernard really was delicious. I wonder what it's made of...\""; + next; + mes "\"However, I was wondering if you know about a good place to spend the evening? Some place to have fun?\""; + if (!(QUEST_NorthTulimshar & $@knowCasinoNT)) + goto L_Close; + menu + "Of course! The casino!",-, + "Not really.",L_Close; + set Zeny, Zeny + @casino_money; + getexp @casino_exp, 0; + set @state, 7; + callsub S_Update_Mask; + mes "[Kylian]"; + mes "\"Oh, there's a casino in this city? That's a wonderful thing. Where can i find it?\""; + mes "You explain how to get to the casino."; + next; +L_Clothes: // @state == 7 + mes "[Kylian]"; + mes "\"I should get proper clothing before I go to the casino tonight. Do you know a reputable shop where clothing of high quality is sold?\""; + if (!(QUEST_NorthTulimshar & $@knowLatoyNT)) + goto L_Close; + menu + "At the market near the harbor district...",-, + "Mh, I don't know.",L_Close; + set Zeny, Zeny + @clothes_money; + getexp @clothes_exp, 0; + set @state, 8; + callsub S_Update_Mask; + set @KylianNTCasino, 1; + mes "You explain about Latoy and his high quality shop."; + mes "[Kylian]"; + mes "\"This seems to be exactly what I need. Thanks a lot.\""; + goto L_Close; + +L_CasinoDone: + mes "[Kylian]"; + mes "\"I'm looking forward to going to the casino tonight. See me tomorrow.\""; + goto L_Close; + +L_DesertHat: // @state == 8 + mes "Kylian looks a bit tired."; + mes "[Kylian]"; + mes "\"That was an interesting night. Thanks for your suggestion to visit the casino.\""; + next; + mes "\"You helped my a lot, so I bought a souvenir for you while I was shopping.\""; + if ((checkweight("DesertHat", count) == 0) || (@inventory_count == 100)) + goto L_Inventory; + getitem "DesertHat", 1; + set @state, 9; + callsub S_Update_Mask; + next; +L_Done: + mes "[Kylian]"; + mes "\"I hope to get a positive response about my shop license soon. I might have more things to do for you then, if you're interested."; + mes "Just stop by later.\""; + goto L_Close; + +L_Inventory: + mes "[Kylian]"; + mes "\"Oh, you're carrying a lot of things. Come back when you have more room.\""; + goto L_Close; + +L_NoItem: + mes "[Kylian]"; + mes "\"I don't see it! Are you trying to tease me? This is not funny!\""; + goto L_Close; + +L_Close: + set @acorn_amount, 0; + set @suitcase_money, 0; + set @suitcase_exp, 0; + set @license_money, 0; + set @license_exp, 0; + set @sightseeing_money, 0; + set @sightseeing_exp, 0; + set @food_money, 0; + set @food_exp, 0; + set @clothes_money, 0; + set @clothes_exp, 0; + set @fun_money, 0; + set @fun_exp, 0; + set @inventory_count, 0; + // NOT set to zero: @KylianNTLicense, @KylianNTSightSeeing and @KylianNTCasino + // those are used to check if the player logged out in the meanwhile + close; + +S_Update_Mask: + set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~($@businessmanNT_MASK)) | (@state << $@businessmanNT_SHIFT); + return; +} diff --git a/world/map/npc/021-2/yanis.txt b/world/map/npc/021-2/yanis.txt index 0add08cf..6b47b599 100644 --- a/world/map/npc/021-2/yanis.txt +++ b/world/map/npc/021-2/yanis.txt @@ -1,26 +1,39 @@ +// Government official taking care about shop licenses +// involved in quest given by 021-1/imec.txt and 021-2/kylian.txt + 021-2.gat,33,17,0|script|Yanis|107,{ - set @state, ((QUEST_NorthTulimshar & $@ImecShopNT_MASK) >> $@ImecShopNT_SHIFT); + set QUEST_NorthTulimshar, QUEST_NorthTulimshar | $@knowYanisNT; + set @kylian, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT); + set @imec, ((QUEST_NorthTulimshar & $@ImecShopNT_MASK) >> $@ImecShopNT_SHIFT); mes "[Yanis]"; mes "\"Welcome. I'm handling issues with trading licenses for the shop owners in Tulimshar. Can I help you?\""; - if (@state != 1) + if (@imec != 1) menu - "Nothing right now.",L_Close; + "Nothing right now.",L_BeforeClose; menu "Imec asked me to bring this petition.",-, - "Nothing right now.",L_Close; + "Nothing right now.",L_BeforeClose; mes "[Yanis]"; mes "\"Imec? I see. Give it to me.\""; mes "Yanis has a disapprovingly look on his face. He takes the letter and writes something on another paper."; next; mes "[Yanis]"; mes "\"Here you have a letter of acknowledgement. You can bring that back to Imec. We will have a look at his case.\""; - set @state, 2; - set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~($@ImecShopNT_MASK)) | (@state << $@ImecShopNT_SHIFT); + set @imec, 2; + set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~($@ImecShopNT_MASK)) | (@imec << $@ImecShopNT_SHIFT); + goto L_BeforeClose; + +L_BeforeClose: + if (@kylian != 3) + goto L_Close; + next; + mes "You think that this is the person Kylian needs to talk to. You should tell him."; goto L_Close; L_Close: - set @state, 0; + set @imec, 0; + set @kylian, 0; close; } diff --git a/world/map/npc/022-1/_import.txt b/world/map/npc/022-1/_import.txt index cc46a286..9695d72f 100644 --- a/world/map/npc/022-1/_import.txt +++ b/world/map/npc/022-1/_import.txt @@ -3,6 +3,7 @@ map: 022-1.gat npc: npc/022-1/_mobs.txt npc: npc/022-1/_warps.txt +npc: npc/022-1/adrian.txt npc: npc/022-1/anwar.txt npc: npc/022-1/dock.txt npc: npc/022-1/ferry_master.txt diff --git a/world/map/npc/022-1/adrian.txt b/world/map/npc/022-1/adrian.txt new file mode 100644 index 00000000..f9af1d81 --- /dev/null +++ b/world/map/npc/022-1/adrian.txt @@ -0,0 +1,52 @@ +// part of quest given by 021-2/kylian.txt +// Author: Jenalya + +// state 1: player has the task to get the luggage from the harbor +// state 2: Adrian gave the luggage to the player +// state 3: player gave luggage to Kylian and Kylian asks who to talk to for the shop license + +022-1.gat,58,54,0|script|Adrian|213,{ + + set @state, ((QUEST_NorthTulimshar & $@businessmanNT_MASK) >> $@businessmanNT_SHIFT); + + mes "[Adrian]"; + mes "\"Hello. Are you here to get the luggage from some of our passengers?\""; + if (@state == 1) + menu + "Yes, Kylian sent me to get his luggage.",L_Get, + "No.",L_No; + menu + "No.",-; +L_No: + mes "[Adrian]"; + mes "\"Too bad. I wantto go and drink a beer, but I have to wait here until all the luggage is picked up.\""; + mes "He sighs."; + goto L_Close; + +L_Get: + mes "[Adrian]"; + mes "\"Wonderful! Show me the ticket.\""; + mes "He checks the paper Kylian gave you and then takes a critical look at you."; + next; + getinventorylist; + if ((checkweight("LeatherSuitcase", 1) == 0) || (@inventory_count == 100)) + goto L_Inventory; + mes "[Adrian]"; + mes "\"Alright, here it is.\""; + mes "Adrain hands you a very heavy suitcase."; + getitem "LeatherSuitcase", 1; + set @state, 2; + set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~($@businessmanNT_MASK)) | (@state << $@businessmanNT_SHIFT); + goto L_Close; + +L_Inventory: + mes "[Adrian]"; + mes "\"The suitcase is rather heavy. You doesn't look as if you can handle that."; + mes "Maybe if you get rid of some of the other stuff you're carrying.\""; + goto L_Close; + +L_Close: + set @state, 0; + set @inventory_count, 0; + close; +} |