diff options
-rw-r--r-- | db/quest_db.conf | 5 | ||||
-rw-r--r-- | npc/003-5/_import.txt | 1 | ||||
-rw-r--r-- | npc/007-1/_import.txt | 3 | ||||
-rw-r--r-- | npc/007-1/tycoon.txt | 300 |
4 files changed, 308 insertions, 1 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf index b957c0368..520808e13 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -183,6 +183,11 @@ quest_db: ( // ID 131 to 150: Frostia Quests // ID 151 to 170: Artis Quests // ID 171 to 190: Esperia Quests +// ID 191 to 300: Dungeon Quests +{ + Id: 191 + Name: "MineQuest_Tycoon" +}, { Id: 192 Name: "MineQuest_Dracoula" diff --git a/npc/003-5/_import.txt b/npc/003-5/_import.txt index 018a08314..2333f5c53 100644 --- a/npc/003-5/_import.txt +++ b/npc/003-5/_import.txt @@ -2,3 +2,4 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/003-5/_warps.txt", "npc/003-5/jeweler.txt", +"npc/003-5/doors.txt", diff --git a/npc/007-1/_import.txt b/npc/007-1/_import.txt index bed02916c..f114525a3 100644 --- a/npc/007-1/_import.txt +++ b/npc/007-1/_import.txt @@ -2,4 +2,5 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/007-1/_mobs.txt", "npc/007-1/_warps.txt", -"npc/007-1/dracoula.txt",
\ No newline at end of file +"npc/007-1/dracoula.txt", +"npc/007-1/tycoon.txt", diff --git a/npc/007-1/tycoon.txt b/npc/007-1/tycoon.txt new file mode 100644 index 000000000..f987c411d --- /dev/null +++ b/npc/007-1/tycoon.txt @@ -0,0 +1,300 @@ +// TMW2 scripts. +// TMW2 Authors: +// Saulc +// Jesusalva +// Description: +// Miner leader asks you to purge mine from monsters. Currently disabled. +// Variable: +// MineQuest_Tycoon +// Reference: +// npc name from https://www.idleminertycoon.com/ +// Steps: +// 0: Not started +// +// 1: Took ratto Quest 10 kills +// 2: Completed ratto Quest - 50 EXP 50 GP +// 3: Awaiting next quest +// +// 4: Took Cave Maggot Quest 25 kills +// 5: Completed Cave Maggot Quest - 200 EXP 150 GP +// 6: Awaiting next quest +// +// 7: Took Cave Snake Quest 50 kills +// 8: Completed Cave Snake Quest - 1000 EXP 350 GP +// 9: Awaiting next quest +// +// 10: Took Red Scorpion Quest 100 kills +// 11: Completed Red Scorpion Quest - Miner Hat +// 12: Awaiting next quest +// +// 13: Took Black Scorpion Quest 200 kills +// 14: Completed Black Scorpion Quest - 12 000 EXP 5 000 GP +// 15: Finished all trainment + +007-1,66,65,0 script Tycoon NPC_PLAYER,{ + .@q=getq(MineQuest_Tycoon); + + mesn; + mesq lg("Hello my friend!"); + next; + mesq lg("Some of my miners friends died in this mine, because there are plenty of dangerous monsters."); + next; + mesq lg("Would you like to help us? Maybe you just need some information."); + next; + goto L_Menu; + +L_PreMenu: + mesn; + mesq l("I need your help dude!"); + next; + goto L_Menu; + +L_Menu: + mesn strcharinfo(0); + menu + rif(getq(MineQuest_Tycoon) < 15, l("I am a brave adventurer! How can I help you?")), L_Purge, + l("What does miners do in cave?"), L_CaveMiner, + l("Can you give me a tip?"), L_Tip, + l("Are you a terranite?"), L_Terranite, + l("I don't care about dirty miners problem."), L_Close, + l("No, thanks, it's not my job!"), L_Close; + +L_Purge: + .@q=getq(MineQuest_Tycoon); + mes ""; + if (BaseLevel < 15) goto L_NoLevel; + .@k=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + + mesn; + if (.@q == 0) { + mesq l("Ok, you look strong enough. Now, let me think on an easy task for you..."); + next; + mesq l("Ah! I know. Kill 10 @@. They usually are near the mine's inn.", getmonsterlink(Ratto)); + setq MineQuest_Tycoon, 1, 0; + } else if (.@q == 1) { + mesq l("You are killing @@. They usually are near the mine's Inn.", getmonsterlink(Ratto)); + } else if (.@q == 2) { + mesq l("Good job! Here is your reward! (50 xp 50 gp)"); + getexp 50, 0; + set Zeny, Zeny + 50; + setq MineQuest_Tycoon, 3, 0; + } else if (.@q == 3 && BaseLevel >= 19) { + mesq l("Less rattos means more food. So, this time the monsters will be a little stronger."); + next; + mesq l("Ok, now I want you to purge the cave from maggots. Kill 25 @@. They keep respawning and annoy miners team.", getmonsterlink(CaveMaggot)); + setq MineQuest_Tycoon, 4, 0; + } else if (.@q == 3 && BaseLevel < 19) { + mesq l("You are too weak for my task, please come back later with some levels."); + } else if (.@q == 4) { + mesq l("You are killing @@ at the cave. Good progress!", getmonsterlink(CaveMaggot)); + } else if (.@q == 5) { + mesq l("Perfect! Here is your reward! (200 xp 150 gp)"); + getexp 200, 0; + set Zeny, Zeny + 150; + setq MineQuest_Tycoon, 6, 0; + } else if (.@q == 6 && BaseLevel >= 24) { + mesq l("That was fast. Do not forget to sell their... parts... for some extra cash."); + next; + mesq l("Now, please kill 50 @@, Try to collect some lamps in the same time, they could be useful later.", getmonsterlink(CaveSnake)); + setq MineQuest_Tycoon, 7, 0; + } else if (.@q == 6 && BaseLevel < 24) { + mesq l("You are too weak for my task, please come back later with some levels."); + } else if (.@q == 7) { + mesq l("You are killing @@ at the cave.", getmonsterlink(CaveSnake)); + } else if (.@q == 8) { + mesq l("I hope you got a Jean Shorts, but that depends on luck. Anyway, here is your reward. (1000 xp 350 gp)"); + getexp 1000, 0; + set Zeny, Zeny + 350; + setq MineQuest_Tycoon, 9, 0; + } else if (.@q == 9 && BaseLevel >= 29) { + mesq l("If you want to be a real miner friend, do this hard task for me. I will reward you with a @@.", getitemlink(MinerHat)); + next; + mesq l("I'll ask you to kill 100 @@. This will prove your worth. Good luck.", getmonsterlink(RedScorpion)); + setq MineQuest_Tycoon, 10, 0; + } else if (.@q == 9 && BaseLevel < 29) { + mesq l("You are too weak for my task, please come back later with some levels."); + } else if (.@q == 10) { + mesq l("You are killing @@. It's still in progress.", getmonsterlink(RedScorpion)); + } else if (.@q == 11) { + mesq l("Congratulations! Here is your reward, a @@!", getitemlink(MinerHat)); + mesq l("Mining opearations advance steadly day by day with your help, thanks! Maybe one day, we find a Mana Stone here!"); + inventoryplace MinerHat, 1; + getitem MinerHat, 1; + setq MineQuest_Tycoon, 12, 0; + } else if (.@q == 12 && BaseLevel >= 34) { + mesq l("The last task I could give you is to exterminate @@. They actually stop miners progress on the mine.", getmonsterlink(BlackScorpion)); + setq MineQuest_Tycoon, 13, 0; + } else if (.@q == 12 && BaseLevel < 34) { + mesq l("You are too weak for my last task, please come back later with some levels."); + } else if (.@q == 13) { + mesq l("You are killing @@ at the cave.", getmonsterlink(BlackScorpion)); + } else if (.@q == 14) { + mesq l("Wow! You did it! I do not think anyone else could have done that."); + mesq l("Here, take this @@ - you deserve it! And here is 5.000 GP and 8.000 XP.", getitemlink(Ruby)); + inventoryplace Ruby, 1; + getitem Ruby, 1; + getexp 8000, 0; + set Zeny, Zeny + 5000; + setq MineQuest_Tycoon, 15, 0; + } + next; + goto L_PreMenu; + +L_NoLevel: + mesn; + mesq l("Ah, yes... You see, there is just no task I can give to you right now. You are too weak to fight these monsters."); + next; + mesn; + mesq l("come back stronger, and I will give you a task."); + next; + goto L_Close; + + + +L_CaveMiner: + mes ""; + mesn; + mesq l("Tulimshar miners mainly try to optain gems."); + next; + mesq l("In this cave we can easily find Coal, Iron ore, and sometimes @@.", getitemlink(Ruby)); // maybe add link for coal and iron ? + next; + goto L_Menu; + +L_Tip: + mes ""; + mesn; + mesq l("If you fight Black scorpion or others dangerous monster you should use the 'hit and run' tatic."); + next; + mesn; + mesq l("To do this you need to disable auto move to target in 'yellow bar'."); + next; + mesn; + mesq l("To open yellow Bar you need to right click on your health bar and active status bar, also called yellow bar. Or you can press '8' on numeric keypad."); + next; + mesn; + mesq l("Now you need to fight monster with the maximum range, you can to do this do these steps in order: lock enemy, Attack, hit, move backwards of one tile, hit, ETC."); + next; + mesn; + mesq l("With this tip you will be able to fight strong monsters. It's on Saul's Strategy Guide Against Archwizards."); + next; + goto L_Menu; + +L_Terranite: + mes ""; + mesn; + mesq l("Haha, no, I'm not! But we found traces of them."); + next; + mesn; + mesq l("Terranite probably mined part of this mine long time ago."); + next; + mesn; + mesq l("That can explain why we have difficulties to find rare gems here. They probably were already extracted."); + next; + goto L_Menu; + + +L_Close: + close; + + + function tycoon_add_kills + { + .@qp=getq(MineQuest_Tycoon); + .@kp=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + setq MineQuest_Tycoon, .@qp, .@kp+1; + //message strcharinfo(0), l("Set status @@ with @@ kills", .@qp, .@kp); + } + + function tycoon_max_kills + { + .@qp=getq(MineQuest_Tycoon); + setq MineQuest_Tycoon, .@qp+1, 0; + //message strcharinfo(0), l("End status @@", .@qp); + } + +OnKillRatto: + .@q=getq(MineQuest_Tycoon); + .@k=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + if (.@q == 1) { + if (.@k+1 >= 10) { + tycoon_max_kills(); + message strcharinfo(0), l("All rattos are dead! Go back to Tycoon."); + } else { + tycoon_add_kills(); + message strcharinfo(0), l("@@/10 Rattos", .@k+1); + } + } + end; +OnKillCaveMaggot: + .@q=getq(MineQuest_Tycoon); + .@k=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + if (.@q == 4) { + if (.@k+1 >= 25) { + tycoon_max_kills(); + message strcharinfo(0), l("All cave maggots are dead! Go back to Tycoon."); + } else { + tycoon_add_kills(); + message strcharinfo(0), l("@@/25 Cave Maggots", .@k+1); + } + } else { + if (is_staff()) + dispbottom "It's working. (T:OKHM)"; + } + end; +OnKillCaveSnake: + .@q=getq(MineQuest_Tycoon); + .@k=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + if (.@q == 7) { + if (.@k+1 >= 50) { + tycoon_max_kills(); + message strcharinfo(0), l("All cave snakes are dead! Go back to Tycoon."); + } else { + tycoon_add_kills(); + message strcharinfo(0), l("@@/50 Cave Snakes", .@k+1); + } + } + end; +OnKillRedScorpion: + .@q=getq(MineQuest_Tycoon); + .@k=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + if (.@q == 10) { + if (.@k+1 >= 100) { + tycoon_max_kills(); + message strcharinfo(0), l("All red scorpions are dead! Go back to Tycoon."); + } else { + tycoon_add_kills(); + message strcharinfo(0), l("@@/100 Red Scorpions", .@k+1); + } + } + end; +OnKillBlackScorpion: + .@q=getq(MineQuest_Tycoon); + .@k=getq2(MineQuest_Tycoon); // Get number of kills (via getq2) + if (.@q == 13) { + if (.@k+1 >= 200) { + tycoon_max_kills(); + message strcharinfo(0), l("All black scorpions are dead! Go back to Tycoon."); + } else { + tycoon_add_kills(); + message strcharinfo(0), l("@@/1 Black Scorpions", .@k+1); + } + } + end; + +OnInit: + .@npcId = getnpcid(0, .name$); + setunitdata(.@npcId, UDT_HEADTOP, ArtisTankTop); + setunitdata(.@npcId, UDT_HEADMIDDLE, BromenalPants); + setunitdata(.@npcId, UDT_HEADBOTTOM, MinerHat); + setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); + setunitdata(.@npcId, UDT_HAIRSTYLE, 19); + setunitdata(.@npcId, UDT_HAIRCOLOR, 8); + + .sex = G_MALE; + .distance = 4; + + // TODO: NPC is not ready + disablenpc .name$; + + end; +} |