diff options
author | Jesusaves <cpntb1@ymail.com> | 2019-07-29 20:24:56 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2019-07-29 20:24:56 -0300 |
commit | b08955ff55790712de30e71782b7829f0d1696bc (patch) | |
tree | 8fb4bd87e1ad5a84b2f908cacdb085724cc236bd /npc/boss | |
parent | 8a6628c11c04179a7738c3d60b606d38bf567ab2 (diff) | |
download | serverdata-b08955ff55790712de30e71782b7829f0d1696bc.tar.gz serverdata-b08955ff55790712de30e71782b7829f0d1696bc.tar.bz2 serverdata-b08955ff55790712de30e71782b7829f0d1696bc.tar.xz serverdata-b08955ff55790712de30e71782b7829f0d1696bc.zip |
Monster King main basic functions
Diffstat (limited to 'npc/boss')
-rw-r--r-- | npc/boss/throne.txt | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/npc/boss/throne.txt b/npc/boss/throne.txt index d44a63c99..10e2fff92 100644 --- a/npc/boss/throne.txt +++ b/npc/boss/throne.txt @@ -16,11 +16,20 @@ OnTouch: // Controls the Event OnBegin: + .CYCLES=0; .MK=monster("boss", 45, 45, "The Monster King", MonsterKing, 1, .name$+"::OnVictory"); .@bhp=getunitdata(.MK, UDT_MAXHP); setunitdata(.MK, UDT_MAXHP, .@bhp+50000+2000*.FAILS); setunitdata(.MK, UDT_HP, .@bhp+50000+2000*.FAILS); + // Spawn reinforcements + .@mobId=MonsterLieutenant; + .@ts$="Lieutenant"; + monster("boss", 40, 40, strmobinfo(1, .@mobId), .@mobId, 1, "#SiegeCtrl::On"+.@ts$+"Death"); + monster("boss", 50, 50, strmobinfo(1, .@mobId), .@mobId, 1, "#SiegeCtrl::On"+.@ts$+"Death"); + monster("boss", 40, 50, strmobinfo(1, .@mobId), .@mobId, 1, "#SiegeCtrl::On"+.@ts$+"Death"); + monster("boss", 50, 40, strmobinfo(1, .@mobId), .@mobId, 1, "#SiegeCtrl::On"+.@ts$+"Death"); + initnpctimer; end; @@ -39,7 +48,22 @@ function CheckFinalAssault { return; } -OnTimer60000: +OnTimer120000: + .CYCLES+=1; + //areamonster("boss", 20, 20, 70, 70, "Monster King Slave", ); + // Spawn several monsters on the Boss Room every 2 minutes + siege_cast("boss", .name$, .FAILS, TP_TULIM|TP_HURNS|TP_NIVAL); + // Spawn an extra mini-boss at minutes: 10 and 30 + if (.CYCLES == 5) { + .@mobId=MonsterColonel; + .@ts$="Colonel"; + monster("boss", 45, 44, strmobinfo(1, .@mobId), .@mobId, 1, "#SiegeCtrl::On"+.@ts$+"Death"); + } + if (.CYCLES == 15) { + .@mobId=MonsterGeneral; + .@ts$="General"; + monster("boss", 45, 44, strmobinfo(1, .@mobId), .@mobId, 1, "#SiegeCtrl::On"+.@ts$+"Death"); + } initnpctimer; OnTimer15000: // Each fail raise curse duration in 0.1s - chance of curse is 15% each 15s @@ -58,7 +82,35 @@ OnTimer40000: OnTimer45000: OnTimer50000: OnTimer55000: +OnTimer60000: +OnTimer65000: +OnTimer70000: +OnTimer75000: +OnTimer80000: +OnTimer85000: +OnTimer90000: +OnTimer95000: +OnTimer100000: +OnTimer105000: +OnTimer110000: +OnTimer115000: CheckFinalAssault(); end; +// Monster King was defeated - game won +OnVictory: + // Not killed by a player? It doesn't counts, then + if (!playerattached()) + end; + kamibroadcast("has just defeated the Monster King.", strcharinfo(0)); + stopnpctimer; + mapwarp("boss", "017-1", 120, 88); + $GAME_STORYLINE=5; + getitembound(AegisShield, 1, 1); + dispbottom l("For defeating the Monster King, you've got the Legendary @@.", getitemlink(AegisShield)); + dispbottom l("This item cannot be traded normally and is a Legendary Item."); + dispbottom l("You can transfer it with \"@grantpower\" command. Please contact a GM for more info."); + dispbottom l("Protip: If you plan in selling it, it's adviseable to ask for GM mediation."); + end; } + |