diff options
Diffstat (limited to 'world/map/npc/033-1')
-rw-r--r-- | world/map/npc/033-1/_import.txt | 13 | ||||
-rw-r--r-- | world/map/npc/033-1/_mobs.txt | 7 | ||||
-rw-r--r-- | world/map/npc/033-1/_nodes.txt | 4 | ||||
-rw-r--r-- | world/map/npc/033-1/_warps.txt | 5 | ||||
-rw-r--r-- | world/map/npc/033-1/backDoor.txt | 10 | ||||
-rw-r--r-- | world/map/npc/033-1/barbarianinit.txt | 26 | ||||
-rw-r--r-- | world/map/npc/033-1/birrod.txt | 264 | ||||
-rw-r--r-- | world/map/npc/033-1/kimarr.txt | 577 | ||||
-rw-r--r-- | world/map/npc/033-1/mapflags.txt | 1 | ||||
-rw-r--r-- | world/map/npc/033-1/traveler.txt | 11 | ||||
-rw-r--r-- | world/map/npc/033-1/yerrnk.txt | 206 |
11 files changed, 0 insertions, 1124 deletions
diff --git a/world/map/npc/033-1/_import.txt b/world/map/npc/033-1/_import.txt deleted file mode 100644 index 60a3096a..00000000 --- a/world/map/npc/033-1/_import.txt +++ /dev/null @@ -1,13 +0,0 @@ -// Map 033-1: snow Path -// This file is generated automatically. All manually added changes will be removed when running the Converter. -map: 033-1 -npc: npc/033-1/_mobs.txt -npc: npc/033-1/_nodes.txt -npc: npc/033-1/_warps.txt -npc: npc/033-1/backDoor.txt -npc: npc/033-1/barbarianinit.txt -npc: npc/033-1/birrod.txt -npc: npc/033-1/kimarr.txt -npc: npc/033-1/mapflags.txt -npc: npc/033-1/traveler.txt -npc: npc/033-1/yerrnk.txt diff --git a/world/map/npc/033-1/_mobs.txt b/world/map/npc/033-1/_mobs.txt deleted file mode 100644 index 2eb36796..00000000 --- a/world/map/npc/033-1/_mobs.txt +++ /dev/null @@ -1,7 +0,0 @@ -// This file is generated automatically. All manually added changes will be removed when running the Converter. -// snow Path mobs - -033-1,73,49,10,18|monster|Wolvern|1090,2,100000ms,30000ms -033-1,33,38,15,49|monster|Reinboo|1094,3,100000ms,30000ms -033-1,56,87,50,42|monster|Squirrel|1038,15,100000ms,30000ms -033-1,0,0,0,0|monster|WhiteBell|1095,3,100000ms,30000ms diff --git a/world/map/npc/033-1/_nodes.txt b/world/map/npc/033-1/_nodes.txt deleted file mode 100644 index 3842473e..00000000 --- a/world/map/npc/033-1/_nodes.txt +++ /dev/null @@ -1,4 +0,0 @@ -// This file is generated automatically. All manually added changes will be removed when running the Converter. -// snow Path nodes - -// (no nodes) diff --git a/world/map/npc/033-1/_warps.txt b/world/map/npc/033-1/_warps.txt deleted file mode 100644 index cc2d8af8..00000000 --- a/world/map/npc/033-1/_warps.txt +++ /dev/null @@ -1,5 +0,0 @@ -// This file is generated automatically. All manually added changes will be removed when running the Converter. -// snow Path warps - -033-1,22,20|warp|-1,0,034-1,159,19 -033-1,119,70|warp|-1,0,019-1,22,69 diff --git a/world/map/npc/033-1/backDoor.txt b/world/map/npc/033-1/backDoor.txt deleted file mode 100644 index 2740841b..00000000 --- a/world/map/npc/033-1/backDoor.txt +++ /dev/null @@ -1,10 +0,0 @@ -033-1,86,28,0|script|#KimarrBackDoor|45,0,0 -{ - if ($@Fluffy_Hunting == 0) - goto L_Warp; - end; - -L_Warp: - warp "033-1", 77, 30; - end; -} diff --git a/world/map/npc/033-1/barbarianinit.txt b/world/map/npc/033-1/barbarianinit.txt deleted file mode 100644 index 2523ebae..00000000 --- a/world/map/npc/033-1/barbarianinit.txt +++ /dev/null @@ -1,26 +0,0 @@ --|script|#barbarian033_1init|32767 -{ - end; - -OnInit: - set $@Q_Barbarians_MASK, NIBBLE_0_MASK; - set $@Q_Barbarians_SHIFT, NIBBLE_0_SHIFT; - set $@Q_Barbarians_wolvern_amount, 16; - set $@Q_Barbarians_Ambush_max, 0x00007FFF; - set $@Q_Barbarians_Ambush0_flag, 0x00000001; - set $@Q_Barbarians_Ambush1_flag, 0x00000002; - set $@Q_Barbarians_Ambush2_flag, 0x00000004; - set $@Q_Barbarians_Ambush3_flag, 0x00000008; - set $@Q_Barbarians_Ambush4_flag, 0x00000010; - set $@Q_Barbarians_Ambush5_flag, 0x00000020; - set $@Q_Barbarians_Ambush6_flag, 0x00000040; - set $@Q_Barbarians_Ambush7_flag, 0x00000080; - set $@Q_Barbarians_Ambush8_flag, 0x00000100; - set $@Q_Barbarians_Ambush9_flag, 0x00000200; - set $@Q_Barbarians_Ambush10_flag, 0x00000400; - set $@Q_Barbarians_Ambush11_flag, 0x00000800; - set $@Q_Barbarians_Ambush12_flag, 0x00001000; - set $@Q_Barbarians_Ambush13_flag, 0x00002000; - set $@Q_Barbarians_Ambush14_flag, 0x00004000; - end; -} diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt deleted file mode 100644 index 19586e51..00000000 --- a/world/map/npc/033-1/birrod.txt +++ /dev/null @@ -1,264 +0,0 @@ -033-1,72,27,0|script|Birrod|217 -{ - set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT); - - set @wolvern_level, 40; // minimum level to do the wolvern hunting - set @wolvern_exp, 5000; - - set @minigame_exp, 5000; - - if (@state >= 6) goto L_Impressed; - if (@state == 5) goto L_Questions; - if (@state == 4) goto L_Wolverns; - if (@state == 3) goto L_Hunting; - if (@state == 2) goto L_Kimarr; - if (@state == 1) goto L_Fluffy; - - mes "[Barbarian]"; - mes "\"Welcome. My name is Birrod, warrior of the Mangarr."; - mes "We usually live high up in the snowy mountains, but we need to solve a problem, so we came down here.\""; - next; - mes "\"But this shouldn't concern you.\""; - goto L_Close; - -L_Fluffy: - mes "[Birrod]"; - mes "\"Kimarr asked you to perform the Fluffy hunting? I'm curious how you're going to do it.\""; - mes "He grins."; - goto L_Close; - -L_Kimarr: - mes "[Birrod]"; - mes "\"Great! Very well done! Welcome to our tribe.\""; - next; - mes "\"I think Kimarr has something for you.\""; - goto L_Close; - -L_Hunting: - if (BaseLevel < @wolvern_level) - goto L_Weak; - mes "[Birrod]"; - mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\""; - next; - mes "\"I noticed some groups of Wolverns in the forest west of here which are unusually aggressive."; - mes "This makes it dangerous for all the small people from the nearby town to go there.\""; - next; - mes "\"To prove your skills, go to the forest and hunt down " + $@Q_Barbarians_wolvern_amount + " of the very aggressive Wolverns.\""; - next; - mes "\"There are also some Wolverns that behave normally and attack you only when you come too close to them."; - mes "Those are not the ones I mean, but those that seek the battle themselves.\""; - set @state, 4; - callsub S_Update_Mask; - goto L_Close; - -L_Wolverns: - if (wolvern_count >= $@Q_Barbarians_wolvern_amount) - goto L_Wolverns_Done; - mes "[Birrod]"; - mes "\"Greetings, my friend."; - mes "The aggressive wolverns are still roaming the forest west of here.\""; - next; - mes "\"This is your chance to prove your worth.\""; - goto L_Close; - -L_Wolverns_Done: - set @state, 5; - callsub S_Update_Mask; - set wolvern_count, 0; - mes "[Birrod]"; - mes "\"" + strcharinfo(0) + "!"; - mes "Good work. This area is much safer now.\""; - next; - getexp @wolvern_exp, 0; - if (getskilllv(SKILL_POOL) == 0) - goto L_Not_Ready; - mes "\"Your skills are impressive. You are worthy to be called a warrior of the Mangarr, if you accept.\""; - next; - goto L_Questions; - -L_Questions: - if (getskilllv(SKILL_POOL) == 0) - goto L_Not_Ready; - mes "Birrod has a very solemn look on his face."; - mes "[Birrod]"; - mes "\"" + strcharinfo(0) + ", are you ready to become a full-fledged member of our tribe, the Mangarr?\""; - menu - "Yes, what do I need to do?",L_Next, - "That's why I'm here.",L_Next, - "Sorry, I have to go. See you.",L_No_Member; - -L_Next: - mes "Birrod nods earnestly."; - mes "[Birrod]"; - mes "\"I will ask you some questions."; - mes "Think well and be honest, because your answers will determine whether you are worthy.\""; - next; - mes "\"What's the most important thing for a true warrior?\""; - menu - "Strength!",L_Fail11, - "A good weapon.",L_Fail12, - "Bravery.",L_Success11; - -L_Fail11: - mes "[Birrod]"; - mes "\"Strength is indeed important for a warrior. But before you can show strength, you need to have something else.\""; - next; - goto L_No_Member; - -L_Fail12: - mes "[Birrod]"; - mes "\"Are you kidding?\""; - next; - goto L_No_Member; - -L_Success11: - mes "[Birrod]"; - mes "\"Wise words.\""; - next; - mes "\"What would you do if you are wounded but Yetis are attacking our tribe?\""; - menu - "Run as fast as I can.",L_Fail21, - "Fight no matter what.",L_Fail22, - "Try to hold them back until everyone is safe, then retreat.",L_Success21; - -L_Fail21: - mes "[Birrod]"; - mes "\"You will never become an accepted member of our tribe with that attitude.\""; - next; - goto L_No_Member; - -L_Fail22: - mes "[Birrod]"; - mes "\"Honorable, but stupid.\""; - next; - goto L_No_Member; - -L_Success21: - mes "[Birrod]"; - mes "\"Right.\""; - next; - mes "\"When you are on a hunting trip with your comrades and it's time to set up a camp in the evening, what things do you do?\""; - menu - "Take care of everyone who got wounded.",L_Success31, - "Pitch the tent and make a fire.",L_Success32, - "Lay down and rest.",L_Fail31; - -L_Success31: - mes "[Birrod]"; - mes "\"You're a caring person. Good.\""; - next; - goto L_Success3; - -L_Success32: - mes "[Birrod]"; - mes "\"You're diligent, good.\""; - next; - goto L_Success3; - -L_Fail31: - mes "[Birrod]"; - mes "\"You wouldn't make friends that way.\""; - next; - goto L_No_Member; - -L_Success3: - mes "\"What is your goal in life?\""; - menu - "Learn new things and see the world.",L_Success41, - "Become as powerful as I can.",L_Fail41, - "Protect the ones I love.",L_Success42; - -L_Success41: - mes "[Birrod]"; - mes "\"You're curious. An attribute we appreciate.\""; - next; - goto L_Success4; - -L_Fail41: - mes "[Birrod]"; - mes "\"You're seeking power? For what?\""; - next; - goto L_No_Member; - -L_Success42: - mes "[Birrod]"; - mes "\"An honorable goal.\""; - next; - goto L_Success4; - -L_Success4: - mes "\"What do you think is a good reason to fight and kill?\""; - menu - "Because I want it.",L_Fail51, - "To survive.",L_Success51, - "To protect someone in need.",L_Success52; - -L_Fail51: - mes "[Birrod]"; - mes "\"You think so?\""; - next; - goto L_No_Member; - -L_Success51: - mes "[Birrod]"; - mes "\"Right.\""; - next; - goto L_Success5; - -L_Success52: - mes "[Birrod]"; - mes "\"Yes, that's the most honorable reason.\""; - next; - goto L_Success5; - -L_Success5: - getexp @minigame_exp, 0; - setskill SKILL_RAGING, 1; - set @state, 6; - callsub S_Update_Mask; - mes "You feel an exciting energy inside you."; - mes "[Birrod]"; - mes "\"You are now a warrior of the Mangarr.\""; - next; - mes "\"As a Mangarr warrior, you gain the ability to put back your own safety for Raging in battle with a tremendous power."; - mes "This power now lies within you, waiting for someone to help you focus on it.\""; - goto L_Close; - -L_Impressed: - mes "[Birrod]"; - mes "\"I'm very proud that you're a member of the tribe.\""; - goto L_Close; - -L_Not_Ready: - mes "[Birrod]"; - mes "\"" + strcharinfo(0) + ", you've shown great hunting skills and are an enrichment to our tribe."; - mes "But you still lack the needed mental skills to become a full member of our tribe.\""; - next; - mes "\"Roam this world to find more experienced persons than yourself to learn new things."; - mes "Then come back when you've gained the ability to focus your mind.\""; - goto L_Close; - -L_No_Member: - mes "Birrod shakes his head."; - mes "[Birrod]"; - mes "\"Think again about your position in our tribe and what you want to achieve."; - mes "Come back when you feel better prepared.\""; - goto L_Close; - -L_Weak: - mes "[Birrod]"; - mes "\"Hello, " + strcharinfo(0) + "! I might have a task for you when you've grown up a bit.\""; - goto L_Close; - -L_Close: - set @state, 0; - set @wolvern_level, 0; - set @wolvern_exp, 0; - set @minigame_exp, 0; - close; - -S_Update_Mask: - set QUEST_Barbarians, - (QUEST_Barbarians & ~($@Q_Barbarians_MASK)) | (@state << $@Q_Barbarians_SHIFT); - return; -} diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt deleted file mode 100644 index 8a16ab93..00000000 --- a/world/map/npc/033-1/kimarr.txt +++ /dev/null @@ -1,577 +0,0 @@ -// Fluffy hunting quest -// initially by Jenalya -// more by alastrim -// broken by o11c, then fixed - -// Variables: -// global $@Fluffy_Hunting - state of the quest -// 0: nobody is hunting -// 1-2: 2 timer iterations to give time for the warp to finish. -// 3: somebody is hunting. The script checks every second if there is food on the ground. -// global $@Fluffy_Time - the number of seconds since you entered the area -// global $@Fluffy_Spawn - how many fluffies have been spawned -// global $@Fluffy_Kills - how many fluffies you have killed so far -// global $@Fluffy_Min - how many fluffies you have to kill to get a reward -// global $@Fluffy_Alive - how many fluffies are currently alive -// global $@Fluffy_PC_Deaths - used to keep track of whether the fluffies kill you -// global $@Fluffy_Fighter$ - name of the person hunting fluffies (only used for ornamentation) -// global $@Fluffy_FighterID - ID of the person hunting fluffies -// nibble 0 of QUEST_Barbarians - state for this and adjacent NPCs -// 0: haven't talked about it -// 1: heard about it -// 2: finished quest -// 3: got reward - -// Note: if you're going to reenable the "drop multiple times" feature -// 1: please do it every second, not just once you've killed everything - Done -// 2: you should change $@Fluffy_Spawn to $@Fluffy_Alive and decrement it on kills -// Kept $@Fluffy_Spawn and added $@Fluffy_Alive. The script spawns the amount related to what you drop at each specific time. -// 3: add a variable to spawn more fluffies if you drop more than 100 apples, as you kill them - -// Also, the $@Fluffy_Extra behaviour should be reconsidered (hardly anything spawns ...) -// that's the only reason I didn't make that one a local variable like it really is - - -033-1,74,32,0|script|Kimarr|218 -{ - set @halloween_npc_id, $@halloween_npc_kimarr; - callfunc "TrickOrTreat"; - - if ($@Fluffy_FighterID == getcharid(3)) - goto L_Attention; - - set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT); - - if (@state >= 3) goto L_Again; - if (@state == 2) goto L_Reward; - if (@state == 1) goto L_Ask; - - mes "[Barbarian]"; - mes "\"Greetings, little person.\""; - next; - mes "\"I am Kimarr, hunter and warrior of the Mangarr.\""; - next; - mes "\"You are very small and must be careful in these snowy mountains. It is cold, and dangerous monsters are here.\""; - menu - "Hello, my name is " + strcharinfo(0) + " and I'm not small. I'm a great warrior!",L_Next, - "I'm " + strcharinfo(0) + ", don't underestimate me. I'm an experienced adventurer!",L_Next, - "I'm the legendary " + strcharinfo(0) + ", I've fought countless battles.",L_Next; - -L_Next: - mes "Kimarr seems to be amused."; - mes "[Kimarr]"; - mes "\"Really? Do you want to prove it?\""; - menu - "Sure! What shall I do?",L_Continue, - "No, I don't need to prove anything.",L_Close; - -L_Continue: - mes "\"Every young member of our tribe proves his or her worth by hunting monsters.\""; - next; - mes "\"The first monsters to hunt are Fluffies. Fluffies give a good meal for a young person and the fur can be used to make clothes and blankets.\""; - next; - set @state, 1; - callsub S_Update_Mask; - goto L_ExplainGame; - -L_ExplainGame: - mes "[Kimarr]"; - mes "\"In that cave there are living Fluffies. They like to eat apples.\""; - next; - mes "\"I also saw one of them getting excited about one of those sweet things you call 'cake'.\""; - next; - mes "\"Go to the cave entrance and throw food on the floor to make them come out.\""; - next; - mes "\"You should be careful, other monsters living here might like the food as well.\""; - next; - mes "\"Hunt as many Fluffies as you can until I tell you to stop.\""; - next; - mes "\"Drop more food when no Fluffies are left.\""; - next; - goto L_Ask; - -// dialog starts here if you've asked about it but not done it (@state == 1) -L_Ask: - if ($@KIMARR_EVENT) - goto L_WithEvent; - goto L_WithoutEvent; - -L_WithEvent: - mes "[Kimarr]"; - mes "\"So, are you going to try?\""; - menu - "Yeah, let's start!",L_Game, - "Could you explain again?",L_ExplainGame, - "Can you tell me who were the most successful Fluffy hunters?",L_ShowRecord, - "On the event, who were the most successful Fluffy hunters?",L_CRC_ShowRecord, - "Maybe later.",L_Close; - -L_WithoutEvent: - mes "[Kimarr]"; - mes "\"So, are you going to try?\""; - menu - "Yeah, let's start!",L_Game, - "Could you explain again?",L_ExplainGame, - "Can you tell me who were the most successful Fluffy hunters?",L_ShowRecord, - "Maybe later.",L_Close; - -L_AlreadyGotReward: - npctalk strnpcinfo(0), strcharinfo(0) + " killed " + $@Fluffy_Kills + " Fluffies and has once again proven to be a good hunter."; - message strcharinfo(0), "Kimarr: Once again you prove your worth as a hunter! You killed " + $@Fluffy_Kills + " Fluffies."; - callsub S_Clean; - goto L_Close; - -L_Reward1: - set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT); - - if (@state >= 2) - goto L_AlreadyGotReward; - - npctalk strnpcinfo(0), "Hooray! " + strcharinfo(0) + " killed " + $@Fluffy_Kills + " Fluffies and is now a worthy hunter."; - - // as far as I can tell, this fails because it won't resume from the "next" - // when the script is executed via the "OnFluffyDeath" callback - // (I haven't tried via the 301st call of OnTimer1000) - message strcharinfo(0), "Kimarr: Hooray! You hunted " + $@Fluffy_Kills + " Fluffies. Talk to me for your reward."; - - set @state, 2; - callsub S_Update_Mask; - callsub S_Clean; - goto L_Close; - -// this label is reached on completion of the quest, or, if you inventory was -// full at the time, when you next initiate dialog (with @state == 2) -L_Reward: - mes "[Kimarr]"; - mes "\"That was very impressive. Now you can call yourself a hunter, " + strcharinfo(0) + ".\""; - next; - - getinventorylist; - if (@inventorylist_count == 100) - goto L_Full_Inv; - set @inventorylist_count, 0; - - mes "\"Take this as a symbol of your strength. You're a member of our tribe now.\""; - getitem "YetiSkinShirt", 1; - set @state, 3; - callsub S_Update_Mask; - goto L_Close; - -L_Full_Inv: - mes "\"You can't carry the reward I want to give you.\""; - goto L_Close; - -// dialog starts here after you've completed this quest -L_Again: - if ($@KIMARR_EVENT) - goto L_AgainWithEvent; - goto L_AgainWithoutEvent; - -L_AgainWithEvent: - mes "[Kimarr]"; - mes "\"Does the hunter " + strcharinfo(0) + " want to hunt some Fluffies again?\""; - menu - "Yeah!",L_Game, - "Can you tell me who were the most successful Fluffy hunters?",L_ShowRecord, - "On the event, who were the most successful Fluffy hunters?",L_CRC_ShowRecord, - "Not now.",L_Close; - -L_AgainWithoutEvent: - mes "[Kimarr]"; - mes "\"Does the hunter " + strcharinfo(0) + " want to hunt some Fluffies again?\""; - menu - "Yeah!",L_Game, - "Can you tell me who were the most successful Fluffy hunters?",L_ShowRecord, - "Not now.",L_Close; - -L_Game: - if ($@Fluffy_Hunting) - goto L_Someone_Else; - set $@Fluffy_Hunting, 1; - set $@Fluffy_Kills, 0; - set $@Fluffy_PC_Deaths, PC_DIE_COUNTER; - set $@Fluffy_Fighter$, strcharinfo(0); - set $@Fluffy_FighterID, getcharid(3); - set $@Fluffy_Time, 180; - set $@Fluffy_Min, 1 + (BaseLevel*7)/10; - - warp "033-1", 79, 34; - initnpctimer; - goto L_Close; - -L_Someone_Else: - mes "[Kimarr]"; - mes "\"Someone else is hunting right now. Let's wait until that hunt has ended.\""; - goto L_Close; - -L_Attention: - message strcharinfo(0), "Kimarr: You should be focused on hunting Fluffies, not talking."; - end; - -OnTimer1000: -// Give 3 seconds, so the server can warp and the player can get ready - if ($@Fluffy_Hunting == 3) - goto L_Action; - set $@Fluffy_Hunting, $@Fluffy_Hunting + 1; - goto L_ContinueTimer; -L_Action: -// Checking if player is logged - if (attachrid($@Fluffy_FighterID) == 0) - goto L_GotOut; -// Checking if player is still in the map or used a towel or spell to get out - if (getareausers("033-1", 79, 28, 88, 42) == 0) - goto L_GotOut; - if (PC_DIE_COUNTER > $@Fluffy_PC_Deaths) - goto L_Died; -// Checking if there is more than 1 player in the fight area - if (getareausers("033-1", 79, 28, 88, 42) > 1) - areatimer 0, "033-1", 79, 28, 88, 42, 10, "Kimarr::OnTooMany"; - - if ($@Fluffy_Time == 180) - npctalk strnpcinfo(0), strcharinfo(0) + ", you have 3 minutes."; - if ($@Fluffy_Time == 120) - npctalk strnpcinfo(0), "You have 2 minutes left."; - if ($@Fluffy_Time == 60) - npctalk strnpcinfo(0), "You have 1 minute left."; - if ($@Fluffy_Time == 30) - npctalk strnpcinfo(0), "You have 30 seconds left."; - if ($@Fluffy_Time == 15) - npctalk strnpcinfo(0), "You have 15 seconds left."; - if ($@Fluffy_Time == 10) - npctalk strnpcinfo(0), "You have 10 seconds left."; - if ($@Fluffy_Time == 5) - npctalk strnpcinfo(0), "You have 5 seconds left."; - set $@Fluffy_Time, $@Fluffy_Time - 1; - if ($@Fluffy_Time < 0) - goto L_TimeOver; - goto L_CheckDrops; - -L_ContinueTimer: - setnpctimer 0; - end; - -L_GotOut: - npctalk strnpcinfo(0), "What a strange thing... " + $@Fluffy_Fighter$ + " just disappeared!"; - callsub S_Clean; - end; - -OnTooMany: - if (getcharid(3) == $@Fluffy_FighterID) - end; - npctalk strnpcinfo(0), "Hey " + strcharinfo(0) + "! What are you doing there? This hunt is for " + $@Fluffy_Fighter$ + " alone!"; - warp "033-1", 77, 34; - end; - -L_Died: - warp "033-1", 77, 34; - message strcharinfo(0), "You are dead."; - npctalk strnpcinfo(0), "Oh no! " + $@Fluffy_Fighter$ + " got overwhelmed!"; - callsub S_Clean; - end; - -L_TimeOver: - message strcharinfo(0), "Your time is over."; - goto L_MaybeRecordScore; - -L_CheckDrops: - set @Fluffy_RedApple, getareadropitem("033-1", 79, 29, 88, 42, "RedApple", 1); - set @Fluffy_XmasCake, getareadropitem("033-1", 79, 29, 88, 42, "XmasCake", 1); - set @Fluffy_Cake, getareadropitem("033-1", 79, 29, 88, 42, "Cake", 1); - set @Fluffy_GreenApple, getareadropitem("033-1", 79, 29, 88, 42, "GreenApple", 1); - if (@Fluffy_RedApple || @Fluffy_XmasCake || @Fluffy_Cake || @Fluffy_GreenApple) - goto L_BeginHunting; - goto L_ContinueTimer; - -L_BeginHunting: - set $@Fluffy_Spawn, @Fluffy_RedApple + 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + @Fluffy_GreenApple; - // limit the number of monsters that can be spawned, to prevent people creating lag with massive amount of monsters - if (($@Fluffy_Spawn + $@Fluffy_Alive) <= 100) - goto L_SpawnFluffies; - message strcharinfo(0), "Wow, calm down, there are already too many Fluffies around here."; - set $@Fluffy_Spawn, 100 - $@Fluffy_Alive; - if ($@Fluffy_Spawn <= 0) - goto L_ContinueTimer; - goto L_SpawnFluffies; - -L_SpawnFluffies: - areamonster "033-1", 79, 29, 88, 42, "", 1089, $@Fluffy_Spawn, "Kimarr::OnFluffyDeath"; - - set $@Fluffy_Extra, 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + 12 * ($@Fluffy_Alive + $@Fluffy_Spawn) + 7 * BaseLevel; - if ((BaseLevel > 40) && (rand($@Fluffy_Extra) > 500)) // Ice Goblin - areamonster "033-1", 79, 29, 88, 42, "", 1058, 1, "Kimarr::OnIceGoblinDeath"; - if ((BaseLevel > 60) && (rand($@Fluffy_Extra) > 550)) // Wolvern - areamonster "033-1", 79, 29, 88, 42, "", 1090, 1, "Kimarr::OnWolvernDeath"; - if ((BaseLevel > 70) && (rand($@Fluffy_Extra) > 600)) // Yeti - areamonster "033-1", 79, 29, 88, 42, "", 1072, 1, "Kimarr::OnYetiDeath"; - - set $@Fluffy_Extra, 0; - set @Fluffy_RedApple, 0; - set @Fluffy_XmasCake, 0; - set @Fluffy_Cake, 0; - set @Fluffy_GreenApple, 0; - set $@Fluffy_Alive, $@Fluffy_Alive + $@Fluffy_Spawn; - goto L_ContinueTimer; - -OnIceGoblinDeath: - set @MobID, 1058; - if (getcharid(3) != $@Fluffy_FighterID) - goto L_Punish; - set @MobID, 0; - end; - -OnWolvernDeath: - set @MobID, 1090; - if (getcharid(3) != $@Fluffy_FighterID) - goto L_Punish; - set @MobID, 0; - end; - -OnYetiDeath: - set @MobID, 1072; - if (getcharid(3) != $@Fluffy_FighterID) - goto L_Punish; - set @MobID, 0; - end; - -OnFluffyDeath: - set @MobID, 1089; - if ($@Fluffy_Hunting == 0) - end; - if (getcharid(3) != $@Fluffy_FighterID) - goto L_Punish; - set @MobID, 0; - set $@Fluffy_Kills, $@Fluffy_Kills + 1; - set $@Fluffy_Alive, $@Fluffy_Alive - 1; - if ($@Fluffy_Alive != 0) - end; - if (attachrid($@Fluffy_FighterID) == 1) - goto L_Killedall; - goto L_GotOut; - -L_Punish: - if (@MobID == 1089) - areamonster "033-1", 79, 29, 88, 42, "", 1089, 1, "Kimarr::OnFluffyDeath"; - if (@MobID == 1058) - areamonster "033-1", 79, 29, 88, 42, "", 1058, 1, "Kimarr::OnIceGoblinDeath"; - if (@MobID == 1090) - areamonster "033-1", 79, 29, 88, 42, "", 1090, 1, "Kimarr::OnWolvernDeath"; - if (@MobID == 1072) - areamonster "033-1", 79, 29, 88, 42, "", 1072, 1, "Kimarr::OnYetiDeath"; - - npctalk strnpcinfo(0), strcharinfo(0) + "! This hunt is for " + $@Fluffy_Fighter$ + " alone!"; - heal -Hp, 0; - set @MobID, 0; - end; - -L_Killedall: - message strcharinfo(0), "Good job, but you still have time to throw more food on the ground."; - end; - -S_Clean: - stopnpctimer; - set $@Fluffy_Hunting, 0; - set $@Fluffy_Time, 0; - set $@Fluffy_PC_Deaths, 0; - set $@Fluffy_Fighter$, ""; - set $@Fluffy_FighterID, 0; - set $@Fluffy_Kills, 0; - set $@Fluffy_Spawn, 0; - set $@Fluffy_Alive, 0; - killmonster "033-1", "Kimarr::OnIceGoblinDeath"; - killmonster "033-1", "Kimarr::OnWolvernDeath"; - killmonster "033-1", "Kimarr::OnYetiDeath"; - killmonster "033-1", "Kimarr::OnFluffyDeath"; - set @state, 0; - return; - -L_MaybeRecordScore: - warp "033-1", 77, 34; - set @loop, 0; - set @rank, 0; - if ($@KIMARR_EVENT) - goto L_CRC_MaybeInsertNext; - // No event, keep as usual - if ($@Fluffy_Kills < $@Fluffy_Min) - goto L_NotGoodEnough; - goto L_MaybeInsertNext; - -L_MaybeInsertNext: - if ($@Fluffy_Kills > $Record_Fluffy_Kills[@rank]) - goto L_InsertScore; - // you already had a better score - if (strcharinfo(0) == $Record_Fluffy_Name$[@rank]) - goto L_Reward1; - set @rank, @rank + 1; - if (@rank == MAX_HIGH_SCORES) - goto L_Reward1; - goto L_MaybeInsertNext; - -L_InsertScore: - set @loop, @rank; - goto L_FindLastScore; - -L_FindLastScore: - // comment this out to allow the player to be in the list more than once - // though actually, it might be better just to assume the list is full - if (strcharinfo(0) == $Record_Fluffy_Name$[@loop]) - goto L_MoveStuff; - - set @loop, @loop + 1; - if (@loop == MAX_HIGH_SCORES) - goto L_MoveStuff; - goto L_FindLastScore; - -L_MoveStuff: - if (@loop == @rank) - goto L_FinallyInsertMe; - set $Record_Fluffy_Kills[@loop], $Record_Fluffy_Kills[@loop - 1]; - set $Record_Fluffy_Name$[@loop], $Record_Fluffy_Name$[@loop - 1]; - set $Record_Fluffy_Date$[@loop], $Record_Fluffy_Date$[@loop - 1]; - set @loop, @loop - 1; - goto L_MoveStuff; - -L_FinallyInsertMe: - set $Record_Fluffy_Kills[@rank], $@Fluffy_Kills; - set $Record_Fluffy_Name$[@rank], strcharinfo(0); - callfunc "time_stamp"; - set $Record_Fluffy_Date$[@rank], @ts_date$ + " " + @ts_time$; - set @ts_date$, ""; - set @ts_time$, ""; - goto L_Reward1; - -L_NotGoodEnough: - npctalk strnpcinfo(0), "What a disappointment, " + strcharinfo(0) + " hunted only " + $@Fluffy_Kills + " Fluffies."; - message strcharinfo(0), "Kimarr: What a disappointment, you hunted only " + $@Fluffy_Kills + " Fluffies."; - callsub S_Clean; - end; - -L_ShowRecord: - set @rank, 0; - set @loop, 0; - goto L_ShowNextRecord; - -L_ShowNextRecord: - if ($Record_Fluffy_Kills[@loop] == 0) - goto L_Close; - mes (@loop + 1) + " - " + $Record_Fluffy_Name$[@loop] + " - " + $Record_Fluffy_Kills[@loop] + " Fluffies killed at " + $Record_Fluffy_Date$[@loop]; - set @loop, @loop + 1; - if (MAX_HIGH_SCORES > 4 && (@loop % 5) == 0 && $Record_Fluffy_Kills[@loop] > 0) - goto L_NextShowNextRecord; - goto L_ShowNextRecord; - -L_NextShowNextRecord: - next; - goto L_ShowNextRecord; - -L_CRC_MaybeRecordScore: - if ($@Fluffy_Kills < $@Fluffy_Min) - goto L_NotGoodEnough; - set @rank, 0; - set @loop, 0; - goto L_MaybeInsertNext; - -L_CRC_MaybeInsertNext: - if ($@Fluffy_Kills > $Record_CRC_Fluffy_Kills[@rank]) - goto L_CRC_InsertScore; - // you already had a better score - if (strcharinfo(0) == $Record_CRC_Fluffy_Name$[@rank]) - goto L_CRC_MaybeRecordScore; - set @rank, @rank + 1; - if (@rank == MAX_HIGH_SCORES) - goto L_CRC_MaybeRecordScore; - goto L_CRC_MaybeInsertNext; - -L_CRC_InsertScore: - set @loop, @rank; - goto L_CRC_FindLastScore; - -L_CRC_FindLastScore: - // comment this out to allow the player to be in the list more than once - // though actually, it might be better just to assume the list is full - if (strcharinfo(0) == $Record_CRC_Fluffy_Name$[@loop]) - goto L_CRC_MoveStuff; - - set @loop, @loop + 1; - if (@loop == MAX_HIGH_SCORES) - goto L_CRC_MoveStuff; - goto L_CRC_FindLastScore; - -L_CRC_MoveStuff: - if (@loop == @rank) - goto L_CRC_FinallyInsertMe; - set $Record_CRC_Fluffy_Kills[@loop], $Record_CRC_Fluffy_Kills[@loop - 1]; - set $Record_CRC_Fluffy_Name$[@loop], $Record_CRC_Fluffy_Name$[@loop - 1]; - set $Record_CRC_Fluffy_Date$[@loop], $Record_CRC_Fluffy_Date$[@loop - 1]; - set @loop, @loop - 1; - goto L_CRC_MoveStuff; - -L_CRC_FinallyInsertMe: - set $Record_CRC_Fluffy_Kills[@rank], $@Fluffy_Kills; - set $Record_CRC_Fluffy_Name$[@rank], strcharinfo(0); - callfunc "time_stamp"; - set $Record_CRC_Fluffy_Date$[@rank], @ts_date$ + " " + @ts_time$; - set @ts_date$, ""; - set @ts_time$, ""; - goto L_CRC_MaybeRecordScore; - -L_CRC_ShowRecord: - set @rank, 0; - set @loop, 0; - goto L_CRC_ShowNextRecord; - -L_CRC_ShowNextRecord: - if ($Record_CRC_Fluffy_Kills[@loop] == 0) - goto L_Close; - mes (@loop + 1) + " - " + $Record_CRC_Fluffy_Name$[@loop] + " - " + $Record_CRC_Fluffy_Kills[@loop] + " Fluffies killed at " + $Record_CRC_Fluffy_Date$[@loop]; - set @loop, @loop + 1; - if (MAX_HIGH_SCORES > 4 && (@loop % 5) == 0 && $Record_CRC_Fluffy_Kills[@loop] > 0) - goto L_CRC_NextShowNextRecord; - goto L_CRC_ShowNextRecord; - -L_CRC_NextShowNextRecord: - next; - goto L_CRC_ShowNextRecord; - -L_Close: - // clear all temporary player variables that are not otherwise cleared - - // it is not feasible to otherwise clear @loop - // but, not all jumpers to L_Close have necessarily used it ... - // still, I think it's a good precent to ALWAYS exit via L_Close - set @loop, 0; - - // if you unset @state, it might break the script - // If only we had the concept of "local constants" ... - close; - -S_Update_Mask: - set QUEST_Barbarians, - (QUEST_Barbarians & ~($@Q_Barbarians_MASK)) | (@state << $@Q_Barbarians_SHIFT); - return; -} - -function|script|FluffyDebug -{ - mes "[Numa]"; - mes "Please select an action."; - menu - "Enable/Disable Event Scoreboards", L_Enable, - "Reset event scoreboards", L_Reset; - -L_Enable: - set $@KIMARR_EVENT, !$@KIMARR_EVENT; - return; - -L_Reset: - if (GM < G_EVENT) goto L_Decline; - cleararray $Record_CRC_Fluffy_Kills, 0, MAX_HIGH_SCORES; - cleararray $Record_CRC_Fluffy_Name$, "", MAX_HIGH_SCORES; - cleararray $Record_CRC_Fluffy_Date$, "", MAX_HIGH_SCORES; - gmlog strcharinfo(0) + " wiped Fluffy Hunt Event Scoreboards."; - return; - -L_Decline: - mes "[Numa]"; - mes "I'm sorry, but your GM level does not authorizes you to perform this operation."; - return; -} diff --git a/world/map/npc/033-1/mapflags.txt b/world/map/npc/033-1/mapflags.txt deleted file mode 100644 index 08a33311..00000000 --- a/world/map/npc/033-1/mapflags.txt +++ /dev/null @@ -1 +0,0 @@ -033-1|mapflag|resave|033-1,67,33 diff --git a/world/map/npc/033-1/traveler.txt b/world/map/npc/033-1/traveler.txt deleted file mode 100644 index 462e2586..00000000 --- a/world/map/npc/033-1/traveler.txt +++ /dev/null @@ -1,11 +0,0 @@ -// This is a teleportation (warp) NPC. Its purpose is to offer expensive, fast trips throughout the world. -// Author: Wombat, wushin -// cost depending on level and adapted to new scripting guidelines: Jenalya - -033-1,63,30,0|script|Khoenan the Traveler|103 -{ - set @npcname$, "Khoenan"; - set @NpcTravelBit, $@barbarians_bit; - callfunc "Traveler"; - end; -} diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt deleted file mode 100644 index 16ada95b..00000000 --- a/world/map/npc/033-1/yerrnk.txt +++ /dev/null @@ -1,206 +0,0 @@ -033-1,66,28,0|script|Yerrnk|216 -{ - set @state, ((QUEST_Barbarians & $@Q_Barbarians_MASK) >> $@Q_Barbarians_SHIFT); - - set @yeti_level, 70; - - if (@state >= 9) goto L_Done; - if (@state == 8) goto L_Yeti_Success; - if (@state == 7) goto L_Hunt_Yeti; - if (@state == 6) goto L_Warrior; - if (@state == 5) goto L_Birrod; - if (@state == 4) goto L_Sorrow; - if (@state == 3) goto L_Duty; - if (@state == 2) goto L_Kimarr; - if (@state == 1) goto L_Fluffy; - - mes "[Barbarian]"; - mes "\"Hello. I'm Yerrnk, first warrior of the Mangarr.\""; - next; - mes "Yerrnk looks at you cautiously."; - mes "[Yerrnk]"; - mes "\"Please take care of your own business.\""; - goto L_Close; - -L_Fluffy: - mes "[Yerrnk]"; - mes "\"Kimarr talks too much sometimes.\""; - mes "He sighs."; - next; - mes "[Yerrnk]"; - mes "\"Are you going to accept Kimarr's task? It's an ancient ceremony in our tribe. A young member is accepted as an adult after completing it.\""; - goto L_Close; - -L_Kimarr: - mes "[Yerrnk]"; - mes "\"I think Kimarr wants to give you something.\""; - goto L_Close; - -L_Duty: - mes "[Yerrnk]"; - mes "\"I'm not sure if you are aware about the meaning of your actions.\""; - next; - mes "\"You passed the initiation rite for hunters of our tribe. That means now you are a hunter of our tribe, with all the rights and duties that come along with that.\""; - next; - mes "\"So you'll have to obey our laws and traditions, protect and help any member of our tribe that is in need, and show neither weakness nor fear in battle.\""; - next; - mes "\"Keep this in mind. If you fail you'll have to receive the elders' judgement.\""; - goto L_Close; - -L_Sorrow: - mes "[Yerrnk]"; - mes "\"I noticed that you're getting along with Kimarr and Birrod very well. That's good.\""; - mes "He smiles, but then an expression of worry returns to his face."; - next; - goto L_Mission; - -L_Mission: - mes "[Yerrnk]"; - mes "\"Our tribe is going through dire times. We have lived in harmony with the mountain since time beyond memory."; - mes "Life is hard in the snowy mountains, but this life suits our nature.\""; - next; - mes "\"Some weeks ago the Yetis started to act very strangely. Usually they are very shy, but now...."; - mes "They left the secluded areas high up in the mountains they used to live on and started roaming our hunting grounds.\""; - next; - mes "\"It became very dangerous to leave the village, so it's even harder to gather enough food to survive."; - mes "Not only this, but the Yetis are getting more daring every day. They might attack the village itself sooner or later.\""; - next; - mes "\"Other wild animals are more aggressive as well, though the Yetis are the most dangerous."; - mes "Something like this has never happened before. We have no idea what could cause the animals to behave like this.\""; - next; - mes "\"That's why we were sent on a mission to seek help from the Sages of Kaizei."; - mes "The Sages are wizards of great power and wisdom, and we hope they might be able to give us advice.\""; - next; - mes "\"We already went to Sage Nikolai, who's residence is located in the same snow mountains we live in."; - mes "But there happened some severe accident, so they weren't able to spent any attention to our problem and might rather need help themselves.\""; - next; - mes "\"That's why we came down here to search for Santa, he's one of the most powerful of the Sages.\""; - goto L_Close; - -L_Birrod: - mes "[Yerrnk]"; - mes "\"" + strcharinfo(0) + ", I have to admit that I'm surprised by your skills."; - mes "You've proven your bravery and strength.\""; - next; - if (getskilllv(SKILL_POOL) == 0) - goto L_Not_Ready; - mes "\"Please talk to Birrod to receive the initiation rite to become a warrior of the Mangarr.\""; - menu - "Alright.",L_Close, - "Can you tell me again what you are here for?",L_Mission; - -L_Not_Ready: - mes "[Yerrnk]"; - mes "\"But you're not yet ready to become a fully accepted warrior of our tribe."; - mes "You should travel the world to gain the ability to focus on your inner strength.\""; - menu - "Alright.",L_Close, - "What are you doing down here?",L_Mission; - -L_Warrior: - mes "[Yerrnk]"; - mes "\"" + strcharinfo(0) + ", welcome back!"; - mes "Do you have any question?\""; - menu - "Everything's all right, thanks.",L_Close, - "What are you doing down here?",L_Mission, - "Can you explain the Raging ability to me?",L_Skill, - "Do you have a task for me?",L_Task; - -L_Skill: - mes "[Yerrnk]"; - mes "\"As a warrior of our tribe it should be the most important thing to you to defend weaker members of the tribe."; - mes "To achieve this goal our warriors are training the skill to stand the pain of being hit and even use it to get into a state of rage.\""; - next; - mes "\"It works only in a melee fight, when you hear your opponent gasping, smell his sweat, and feel the heat of his body.\""; - next; - mes "Yerrnk gets excited, then he pauses a moment to calm down."; - mes "\"Basically you neglect of your own defense but gain the ability to hit your enemy with outstanding might.\""; - next; - mes "[Yerrnk]"; - mes "\"You can imagine that this creates some danger. That's why we usually fight as a group, so a weakened warrior can step back and recover while the others continue to fight."; - mes "It's also beneficial to have a healer, but very few members of our tribe are born with the ability to wield magic.\""; - goto L_Close; - -L_Task: - if (BaseLevel >= @yeti_level) - goto L_Yeti; - mes "[Yerrnk]"; - mes "\"Not at the moment."; - mes "Try to stop by later and use the time to practice your abilities.\""; - goto L_Close; - -L_Yeti: - mes "[Yerrnk]"; - mes "\"Indeed, there's something to do that needs a competent warrior."; - mes "We've got reports about a single Yeti prowling around one of the houses in the woods west of here.\""; - next; - mes "\"If you dare to take on this task, seek that Yeti and make the area secure again."; - mes "To find the house, enter the forest and then go first south and then west.\""; - set @state, 7; - callsub S_Update_Mask; - goto L_Close; - -L_Hunt_Yeti: - mes "[Yerrnk]"; - mes "\"That Yeti is still roaming in the forest west of here."; - mes "To find the house it's prowling around, enter the forest and then go first south and then west.\""; - menu - "I'm on it.",L_Close, - "What are you doing down here?",L_Mission, - "Can you explain the Raging ability to me?",L_Skill; - -L_Yeti_Success: - mes "[Yerrnk]"; - mes "\"" + strcharinfo(0) + "! You made it!"; - mes "You proved that you're one of the most skilled warriors of our tribe. Please have this.\""; - getitem "LeatherTrousers", 1; - set @state, 9; - callsub S_Update_Mask; - goto L_Close; - -L_Done: - if (countitem("Antlers") > 0 && @state < 10) goto L_AntlerHat; - mes "Yerrnk smiles at you."; - mes "[Yerrnk]"; - mes "\"Welcome back, great warrior.\""; - menu - "What's the reason you came here?",L_Mission, - "Can you explain the raging ability to me?",L_Skill, - "(Leave)",L_Close; - -L_AntlerHat: - mes "Yerrnk grins."; - next; - mes "[Yerrnk]"; - mes "\"Welcome back, great warrior.\""; - next; - mes "\"I could turn your " + getitemlink("Antlers") + " into a " + getitemlink("AntlerHat") + " for the modest price of 5,000,000 GP.\""; - if (Zeny >= 5000000) - menu - "Please do!", L_AntlerHat_Proceed; - menu - "Sorry, I'm broke", L_Close; - -L_AntlerHat_Proceed: - mes "[Yerrnk]"; - mes "\"There you go.\""; - set @state, 10; - callsub S_Update_Mask; - delitem "Antlers", 1; - if (Zeny < 5000000) goto L_Close; - set Zeny, Zeny - 5000000; - getitem "AntlerHat", 1; - goto L_Close; - -L_Close: - set @state, 0; - set @yeti_level, 0; - close; - -S_Update_Mask: - set QUEST_Barbarians, - (QUEST_Barbarians & ~($@Q_Barbarians_MASK)) - | (@state << $@Q_Barbarians_SHIFT); - return; -} |