// TMW2 Scripts. // Author: // Jesusalva // Description: // Monster King Throne ($@MK_CHALLENGE) boss,45,45,0 script #monsterthrone NPC_HIDDEN,0,0,{ end; OnTouch: if (strcharinfo(2) == "Monster King") end; warp "boss", 45, 48; percentheal -15,0; dispbottom "The throne is cursed, only the Monster King may seat on it."; end; // Controls the Event OnBegin: .CYCLES=0; $@MK_CHALLENGE=true; .MK=monster("boss", 45, 45, "The Monster King", MonsterKing, 1, .name$+"::OnVictory"); .@bhp=getunitdata(.MK, UDT_MAXHP); setunitdata(.MK, UDT_MAXHP, .@bhp+2000*.FAILS); setunitdata(.MK, UDT_HP, .@bhp+2000*.FAILS); // Spawn reinforcements .@mobId=MonsterLieutenant; .@ts$="Lieutenant"; monster("boss", 40, 40, strmobinfo(1, .@mobId), .@mobId, 1); monster("boss", 50, 50, strmobinfo(1, .@mobId), .@mobId, 1); monster("boss", 40, 50, strmobinfo(1, .@mobId), .@mobId, 1); monster("boss", 50, 40, strmobinfo(1, .@mobId), .@mobId, 1); mapannounce("boss", "Begin!", bc_map|bc_npc); initnpctimer; end; function CheckFinalAssault { if (!siege_calcdiff("boss", 5)) { kamibroadcast("You noobs, you all deserve to die!", "Monster King"); stopnpctimer; $@MK_CHALLENGE=false; // Clean Up mapwarp("boss", "017-1", 120, 88); killmonsterall("boss"); // Raise difficulty .FAILS+=1; // Halt execution end; } return; } 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); } if (.CYCLES == 15) { .@mobId=MonsterGeneral; .@ts$="General"; monster("boss", 45, 44, strmobinfo(1, .@mobId), .@mobId, 1); } initnpctimer; OnTimer15000: // Each fail raise curse duration in 0.1s - chance of curse is 15% each 15s if (rand2(100) <= 15) { areasc2("boss", 45, 45, 25, 3000+(.FAILS*100), SC_CURSE, BL_PC | BL_HOM | BL_MER); //globalmes("MSG"); unittalk(.MK, "Be cursed, you fools! I am the mighty Monster King!!"); } OnTimer5000: OnTimer10000: OnTimer20000: OnTimer25000: OnTimer30000: OnTimer35000: 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; $@MK_CHALLENGE=false; kamibroadcast("has just defeated the Monster King.", strcharinfo(0)); stopnpctimer; mapwarp("boss", "017-1", 120, 88); specialeffect(FX_FANFARE, AREA, getcharid(3)); end; }