diff options
Diffstat (limited to 'npc/008-3-5')
-rw-r--r-- | npc/008-3-5/_import.txt | 7 | ||||
-rw-r--r-- | npc/008-3-5/_mobs.txt | 12 | ||||
-rw-r--r-- | npc/008-3-5/_warps.txt | 6 | ||||
-rw-r--r-- | npc/008-3-5/bryant.txt | 79 | ||||
-rw-r--r-- | npc/008-3-5/lordcave.txt | 101 | ||||
-rw-r--r-- | npc/008-3-5/nunia.txt | 81 |
6 files changed, 286 insertions, 0 deletions
diff --git a/npc/008-3-5/_import.txt b/npc/008-3-5/_import.txt new file mode 100644 index 00000000..cb743792 --- /dev/null +++ b/npc/008-3-5/_import.txt @@ -0,0 +1,7 @@ +// Map 008-3-5: Bandit Cave +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/008-3-5/_mobs.txt", +"npc/008-3-5/_warps.txt", +"npc/008-3-5/bryant.txt", +"npc/008-3-5/lordcave.txt", +"npc/008-3-5/nunia.txt", diff --git a/npc/008-3-5/_mobs.txt b/npc/008-3-5/_mobs.txt new file mode 100644 index 00000000..5331e5e6 --- /dev/null +++ b/npc/008-3-5/_mobs.txt @@ -0,0 +1,12 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 008-3-5: Bandit Cave mobs +008-3-5,87,83,22,16 monster Cave Maggot 1027,8,2000,20000 +008-3-5,79,68,54,12 monster Crafty 1018,12,2500,35000 +008-3-5,71,62,49,39 monster Thief Slime 1105,3,20000,100000 +008-3-5,90,70,13,29 monster Yellow Slime 1073,8,20000,75000 +008-3-5,79,82,21,15 monster Bandit 1063,3,2000,20000 +008-3-5,74,66,38,21 monster Snake 1075,3,10000,100000 +008-3-5,54,41,26,21 monster Robin Bandit 1064,2,2000,20000 +008-3-5,44,51,13,33 monster Cave Maggot 1027,7,2000,20000 +008-3-5,49,41,38,21 monster Bandit 1063,2,2000,20000 +008-3-5,133,72,24,9 monster Ratto 1005,6,5000,10000 diff --git a/npc/008-3-5/_warps.txt b/npc/008-3-5/_warps.txt new file mode 100644 index 00000000..be81f002 --- /dev/null +++ b/npc/008-3-5/_warps.txt @@ -0,0 +1,6 @@ +// This file is generated automatically. All manually added changes will be removed when running the Converter. +// Map 008-3-5: Bandit Cave warps +008-3-5,158,72,0 warp #008-3-5_158_72 0,2,008-3-4,22,85 +008-3-5,109,67,0 warp #008-3-5_109_67 0,2,008-3-5,101,68 +008-3-5,102,68,0 warp #008-3-5_102_68 0,2,008-3-5,110,67 +008-3-5,92,108,0 warp #008-3-5_92_108 0,0,008-1,109,83 diff --git a/npc/008-3-5/bryant.txt b/npc/008-3-5/bryant.txt new file mode 100644 index 00000000..4199c484 --- /dev/null +++ b/npc/008-3-5/bryant.txt @@ -0,0 +1,79 @@ +// TMW2 Script. +// Author: +// Jesusalva +// Description: +// Part of Helena's quest +// Gives spoilers about what Jesusalva plans in doing with Bryant + +008-3-5,101,85,0 script Bryant NPC_CRASMANDE,{ + function bryantBanditLord; + function bryantSilverKey; + function bryantComplete; + .@q=getq(HurnscaldQuest_Bandits); + if (.@q == 5) bryantSilverKey(); + if (.@q == 6) bryantBanditLord(); + if (.@q >= 7) bryantComplete(); + mesn; + mesq l("Welcome."); + next; + mesn; + mesq l("I'm looking everywhere for the bandit leader. I can't seem to find him. So I stopped here to rest a bit."); + close; + +function bryantSilverKey { + mesn; + mesq l("Don't say anything, I can smell the scent of Lena's hair on you."); + next; + inventoryplace PiberriesInfusion, 3; + getitem PiberriesInfusion, 3; + setq HurnscaldQuest_Bandits, 6; + mesn; + mesq l("I guess she sent you to kill the Bandit Lord, right? I'll lure him for you."); + next; + mesn; + mesq l("It is pretty close to here. I advise you to use a good sword, and heal yourself often."); + next; + mesn; + mesq l("I will give you 3 @@. Use them on this fight, or you're doomed to fail.", getitemlink(PiberriesInfusion)); + close; +} + +function bryantBanditLord { + mesn; + mesq l("What are you waiting for? Go kill the bandit lord."); + next; + mesn strcharinfo(0); + select + l("I'm going, don't worry."), + l("There was nobody on the Bandit Lord's room."); + if (@menu == 1) + close; + mes ""; + mesn; + mesq l("...Have you ever gone there yet?"); + next; + mesn; + mesq l("Go kill the Bandit Lord!"); + close; +} + +function bryantComplete { + mesn; + mesq l("Good job defeating the Bandit Lord."); + close; +} + +OnInit: + /* + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, FairyHat); + setunitdata(.@npcId, UDT_HEADMIDDLE, ForestArmor); + setunitdata(.@npcId, UDT_HEADBOTTOM, JeansChaps); + setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); + setunitdata(.@npcId, UDT_HAIRSTYLE, 24); + setunitdata(.@npcId, UDT_HAIRCOLOR, 1); + */ + + .distance = 5; + end; +} diff --git a/npc/008-3-5/lordcave.txt b/npc/008-3-5/lordcave.txt new file mode 100644 index 00000000..906cd8ad --- /dev/null +++ b/npc/008-3-5/lordcave.txt @@ -0,0 +1,101 @@ +// TMW2 Script +// Author: +// Jesusalva +// FIXME: +// Create a party instance for this + +008-3-5,83,49,0 script #BanditLordDen NPC_HIDDEN,0,5,{ + function lordCleanup; + end; + +function lordCleanup { + // Bug + if (!.lock) { + consolemes(CONSOLEMES_ERROR, "No lock passed to Lord Cave during cleanup"); + end; + } + + // Cleanup + .lock = false; + delcells "BanditLordDenWall"; + killmonster("008-3-5", "#BanditLordDen::OnLordDeath"); + stopnpctimer; + return; +} + +OnInit: + .maxLevel = 55; + .lock=false; + end; + +OnTouch: + .@q=getq(HurnscaldQuest_Bandits); + if (.@q != 6) end; + + // Oooh, we got a challenger! + + // But the Lord is busy? Oh well, try again later + if (.lock) { + dispbottom l("%s came here first, you should wait for them.", strcharinfo(0, "Someone", .lock)); + slide 92, 52; + end; + } + + // Block the NPC + .lock=getcharid(3); + slide 80, 49; + + // Block the passage + mapannounce "008-3-5", "A minor earthquake happens.", bc_map; + setcells "008-3-5", 82, 48, 83, 51, 2, "BanditLordDenWall"; + initnpctimer; + + // Summon + if (mobcount("008-3-5", "#BanditLordDen::OnLordDeath") == 0) + monster "008-3-5", 48, 35, "Bandit Lord", BanditLord, 1, "#BanditLordDen::OnLordDeath"; + end; + +OnLordDeath: + // Unlock + lordCleanup(); + + // If killed by a monster, GM, whatever, abort + if (!playerattached()) + end; + + // Complete quest (if PC is attached and doing quest) + .@q=getq(HurnscaldQuest_Bandits); + if (.@q == 6 && !ispcdead()) { + setq HurnscaldQuest_Bandits, 7; + quest_xp(.maxLevel, 2500); + dispbottom l("Phew! The Bandit Lord was killed."); + } else { + dispbottom l("I killed the Bandit Lord! ...Why I did that, again?"); + } + end; + +OnTimer5000: + .@pc=attachrid(.lock); + + // Player logged out + if (!.@pc) { + lordCleanup(); + end; + } + + // Player killed in combat + if (ispcdead()) { + lordCleanup(); + end; + } + + // Player changed map + if (getmap() != "008-3-5") { + lordCleanup(); + end; + } + + // Battle ongoing, restart timer + initnpctimer; + end; +} diff --git a/npc/008-3-5/nunia.txt b/npc/008-3-5/nunia.txt new file mode 100644 index 00000000..cd12a085 --- /dev/null +++ b/npc/008-3-5/nunia.txt @@ -0,0 +1,81 @@ +// Evol scripts. +// Author: +// Micksha +// Description: +// Nunia, Henry's friend and Woodland's master thief. +// THIS IS A PLACEHOLDER! + +008-3-5,35,65,0 script Nunia NPC_NUNIA,{ + function nuniaIntruder; + function nuniaHenry; + function nuniaBegin; + + // What do we have here? + .@q=getq(ThiefQuests_Artis); + switch (.@q) { + case 7: + nuniaHenry(); + break; + case 8: + case 9: + nuniaBegin(); + // TODO: Script control; Transfer quest variable authority + break; + default: + nuniaIntruder(); + break; + } + close; + +/////////////////////////////////////////////////////////////////////////////// +function nuniaIntruder { + speech + l("Who dares to enter this cave? Who are you?"), + l("At least, you look peaceful."), + l("Let's do like this: You leave me alone, and I don't mess with you. Deal?"); + select + l("Deal."), + l("No deal, I'm going to report you to authorities!"); + mes ""; + // Some meta option/dialog to improve the immersion + if (@menu == 2) { + mesn; + mesq l("There's only one problem, you know..."); + next; + mesn; + mesq l("The dead can't speak."); + percentheal -100, -100; + } + return; +} + +function nuniaHenry { + mesn; + mesq l("Your smell... Did Henry sent you here? How cute of him!"); + next; + mesn; + mesq l("I've raised too much suspicion, so my friends told me to lay low for a while."); + next; + mesn; + mesq l("The Brotherhood is watching our movements, they already suspect who is a member and who isn't, but they don't know for sure."); + next; + mesn; + mesq l("Therefore, we had to cut off our connection with Artis. Don't want Brotherhood to find the secrets of our structure."); + setq1 ThiefQuests_Artis, 8; + return; +} + +function nuniaBegin { + speech + l("Who dares to enter this cave? Who are you?"), + l("At least, you look peaceful. And I see by your fingers that you can deal with lockpicks."), + l("I am going to teach you all what a thief needs to know, later"), + l("Call for Micksha and Jesusalva to implement all this, please."), + l("And Tanveer, our president in Tulimshar, should be able to give you even more training. If you manage to find our headquarters, of course, hahaha!"); + return; +} + +OnInit: + .distance = 4; + end; +} |