From 54839495835e5ad0126f194486e1c635ac8d14dd Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 29 Apr 2019 11:41:26 -0300 Subject: Minor balance + total rewrite to Dausen (Tulimshar Siege) --- npc/003-1/lieutenantdausen.txt | 182 ++++++++--------------------------------- 1 file changed, 34 insertions(+), 148 deletions(-) (limited to 'npc/003-1/lieutenantdausen.txt') diff --git a/npc/003-1/lieutenantdausen.txt b/npc/003-1/lieutenantdausen.txt index 46803c7cc..62c9c9628 100644 --- a/npc/003-1/lieutenantdausen.txt +++ b/npc/003-1/lieutenantdausen.txt @@ -117,121 +117,39 @@ L_MKControl: mesn; mes l("Oh noes! You've found the Tulimshar control panel!"); - menu - l("Initiate small siege (lv. 20)"), L_MKSmall, - l("Initiate medium siege (lv. 30)"), L_MKMedium, - l("Initiate huge siege (lv. 40)"), L_MKHuge, - l("Abort"), -; + select + l("Abort"), + l("Initiate a siege"); + mes ""; + if (@menu == 2) { + doevent "Lieutenant Dausen::OnStartSiege"; + closedialog; + } close; OnMKSiege: - addmapmask "003-1", MASK_MATTACK; - addmapmask "004-1", MASK_MATTACK; - changemusic "003-1", any("mythica.ogg", "eric_matyas_ghouls.ogg", "misuse.ogg", "Arabesque.ogg"); - disablenpc("Mana Stone"); - $@SIEGE_TULIM=rand(0,10); - pvpon("003-1"); - pvpon("004-1"); - announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all); - areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 10, "Lieutenant Dausen::OnBlackScorpionDeath"); + $@SIEGE_TULIM=rand(1,10); +OnStartSiege: + siege_setup("004-1"); + siege_setup("003-1", "WARNING! WARNING! Siege starting at Tulimshar!!"); + siege_cast("014-3", .name$, 0, TP_TULIM); initnpctimer; end; -L_MKSmall: - addmapmask "003-1", MASK_MATTACK; - addmapmask "004-1", MASK_MATTACK; - changemusic "003-1", "mythica.ogg"; - disablenpc("Mana Stone"); - $@SIEGE_TULIM=0; // factor zero - pvpon("003-1"); - pvpon("004-1"); - announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all); - areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 10, "Lieutenant Dausen::OnBlackScorpionDeath"); - initnpctimer; - close; - -L_MKMedium: - addmapmask "003-1", MASK_MATTACK; - addmapmask "004-1", MASK_MATTACK; - changemusic "003-1", "eric_matyas_ghouls.ogg"; - disablenpc("Mana Stone"); - $@SIEGE_TULIM=1; // factor one - pvpon("003-1"); - pvpon("004-1"); - announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all); - areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 15, "Lieutenant Dausen::OnBlackScorpionDeath"); - initnpctimer; - close; - -L_MKHuge: - addmapmask "003-1", MASK_MATTACK; - addmapmask "004-1", MASK_MATTACK; - changemusic "003-1", "misuse.ogg"; - disablenpc("Mana Stone"); - $@SIEGE_TULIM=5; // factor five - pvpon("003-1"); - pvpon("004-1"); - announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all); - areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 30, "Lieutenant Dausen::OnBlackScorpionDeath"); - initnpctimer; - close; - OnGuardDeath: end; -OnBlackScorpionDeath: - areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpionDeath"); - getmapxy(.@m$,.@x,.@y,3); - if (rand(10000) <= 90+($@SIEGE_TULIM*100)) - makeitem StrangeCoin, 1, .@m$, .@x, .@y; - end; - -OnBlackScorpion2Death: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, BlackScorpion), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death"); - getmapxy(.@m$,.@x,.@y,3); - if (rand(10000) <= 850+($@SIEGE_TULIM*100)) - makeitem StrangeCoin, 1, .@m$, .@x, .@y; - end; - -OnGreenSlimeDeath: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, GreenSlime), GreenSlime, 1, "Lieutenant Dausen::OnGreenSlimeDeath"); - getmapxy(.@m$,.@x,.@y,3); - if (rand(10000) <= 200+($@SIEGE_TULIM*100)) - makeitem StrangeCoin, 1, .@m$, .@x, .@y; - end; - -OnCandiedSlimeDeath: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), CandiedSlime, 1, "Lieutenant Dausen::OnCandiedSlimeDeath"); +// Respawn monster from $@SIEGE_TMPMOBS memory +OnRespawn: getmapxy(.@m$,.@x,.@y,3); - if (rand(10000) <= 150+($@SIEGE_TULIM*100)) + siege_spawn(.@m$, any_of($@SIEGE_TMPMOBS), 1, .name$+"::OnRespawn"); + if (rand(10000) <= $coinsrate+($@SIEGE_TULIM*50)) makeitem StrangeCoin, 1, .@m$, .@x, .@y; end; -OnManaGhostDeath: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), ManaGhost, 1, "Lieutenant Dausen::OnManaGhostDeath"); - getmapxy(.@m$,.@x,.@y,3); - if (rand(10000) <= 900+($@SIEGE_TULIM*100)) - makeitem StrangeCoin, 1, .@m$, .@x, .@y; - end; - -OnLieutenantDeath: - getitem StrangeCoin, 1; - Karma=Karma+1; - mapannounce("003-1", l("##2The Monster Lieutenant was defeated by @@!", strcharinfo(0)), bc_map); - $MK_TEMPVAR+=1; - end; - -OnColonelDeath: - getitem StrangeCoin, 1; - Karma=Karma+1; - $MOST_HEROIC$=strcharinfo(0); - mapannounce("003-1", l("##2The Monster Colonel was defeated by @@!", strcharinfo(0)), bc_map); - $MK_TEMPVAR+=10; - end; - OnTimer5000: - areamonster("004-1", 0, 0, 79, 81, "Black Scorpion", BlackScorpion, 5+$@SIEGE_TULIM, "Lieutenant Dausen::OnBlackScorpionDeath"); - areamonster("003-1", 0, 0, 120, 155, "Black Scorpion", BlackScorpion, 5+$@SIEGE_TULIM, "Lieutenant Dausen::OnBlackScorpion2Death"); + siege_cast("004-1", .name$, 0, TP_TULIM); + siege_cast("003-1", .name$, 0, TP_TULIM); mapannounce("003-1", "##2Message to all Tulimshar NPCs: Take shelter!", bc_map); disablenpc "Ched"; disablenpc "Aahna"; @@ -293,8 +211,8 @@ OnTimer5000: end; OnTimer15000: - areamonster("004-1", 0, 0, 79, 81, ("Black Scorpion"), BlackScorpion, 5, "Lieutenant Dausen::OnBlackScorpionDeath"); - areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 10, "Lieutenant Dausen::OnBlackScorpion2Death"); + siege_cast("004-1", .name$, $@SIEGE_TULIM, TP_TULIM); + siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM); disablenpc "Aidan"; disablenpc "Inar"; disablenpc "Malivox"; @@ -306,57 +224,30 @@ OnTimer15000: disablenpc "Colin"; end; -OnTimer60000: - if ($@SIEGE_TULIM >= 1 && $@SIEGE_TULIM < 5) { - mapannounce("003-1", "##1The Monster Lieutenant arrived!", bc_map); - areamonster("003-1", 0, 0, 120, 155, ("Monster Lieutenant"), 1077, 1, "Lieutenant Dausen::OnLieutenantDeath"); - } - areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 3, "Lieutenant Dausen::OnBlackScorpion2Death"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, GreenSlime), 1085, 10+$@SIEGE_TULIM, "Lieutenant Dausen::OnGreenSlimeDeath"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), 1089, 1+$@SIEGE_TULIM, "Lieutenant Dausen::OnCandiedSlimeDeath"); - end; - +// Boss after 2 minutes OnTimer120000: - if ($@SIEGE_TULIM >= 5) { - mapannounce("003-1", "##1The Monster Colonel arrived!", bc_map); - areamonster("003-1", 0, 0, 120, 155, ("Monster Colonel"), 1036, 1, "Lieutenant Dausen::OnColonelDeath"); - } - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 15); - areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, GreenSlime), 1085, 10, "Lieutenant Dausen::OnGreenSlimeDeath"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 2, "Lieutenant Dausen::OnManaGhostDeath"); - end; - -OnTimer180000: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 25); - areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), 1089, 10, "Lieutenant Dausen::OnCandiedSlimeDeath"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 2, "Lieutenant Dausen::OnManaGhostDeath"); - end; - -OnTimer240000: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 25); - areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 2, "Lieutenant Dausen::OnManaGhostDeath"); + siege_boss("003-1", $@SIEGE_TULIM); + siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM); end; +// Special spawn after 5 minutes OnTimer300000: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 5); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), 1089, 1, "Lieutenant Dausen::OnCandiedSlimeDeath"); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 1, "Lieutenant Dausen::OnManaGhostDeath"); + siege_cast("004-1", .name$, $@SIEGE_TULIM, TP_TULIM); + siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM); end; +OnTimer60000: +OnTimer180000: +OnTimer240000: OnTimer360000: OnTimer420000: OnTimer480000: - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 5+$@SIEGE_TULIM); - areamonster("003-1", 0, 0, 120, 155, ("Red Slime"), 1092, 1+$@SIEGE_TULIM); + siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM); end; OnTimer540000: mapannounce("003-1", "##1The Monster Army is getting tired of resistance!", bc_map); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 5+$@SIEGE_TULIM); - areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 1, "Lieutenant Dausen::OnManaGhostDeath"); + siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM); end; OnTimer600000: @@ -366,15 +257,10 @@ OnTimer600000: end; OnTimer630000: - removemapmask "003-1", MASK_MATTACK; - removemapmask "004-1", MASK_MATTACK; - changemusic "003-1", "bartk_adventure.ogg"; // Restore to default + siege_revert("003-1"); + siege_revert("004-1"); enablenpc("Mana Stone"); $@SIEGE_TULIM=0; - killmonsterall("003-1", 0); - killmonsterall("004-1", 0); - pvpoff("003-1"); - pvpoff("004-1"); announce(("Tulimshar siege is over!"), bc_all); enablenpc "Ched"; enablenpc "Aahna"; -- cgit v1.2.3-70-g09d2