From 426eff10025a7a614085eaa80d2ebcdace0c058c Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 15 May 2020 11:41:34 -0300 Subject: This should get rid of Katazuli issues --- npc/042-10/ctrl.txt | 44 ++++++++++++++++++++++++++++++++++++++++++-- npc/functions/event.txt | 2 +- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/npc/042-10/ctrl.txt b/npc/042-10/ctrl.txt index bb13e8d5c..162f7cac4 100644 --- a/npc/042-10/ctrl.txt +++ b/npc/042-10/ctrl.txt @@ -205,9 +205,10 @@ function script KatazuliCore { // (Probably spawn Dark Rose Field) // PS. Every monster in this floor will drop them getmapxy(.@m$, .@x, .@y, 0); + KamelotCaveSpawn($KAMELOT_PC[.@g], .@x-rand2(4), .@y-rand2(4), .@x+rand2(4), .@y+rand2(4), $KAMELOT_MX[.@g], "042-10"); .@x+=any(-3,-2,-1,1,2,3); .@y+=any(-3,-2,-1,1,2,3); - monster(.@m$, .@x, .@y, strmobinfo(1, MagicGoblin), MagicGoblin, rand2(3,6)); + monster(.@m$, .@x, .@y, strmobinfo(1, MagicGoblin), MagicGoblin, (@kataspam == 1 ? 6 : (@kataspam == 2 ? 5 : (@kataspam == 3 ? 4 : 3))) ); // Take away some HP and MP, but do not make you stand percentheal -1, -5; @@ -282,6 +283,25 @@ OnInstanceInit: initnpctimer; end; +OnKillMob: + if (!playerattached()) + end; + .@g=getcharid(2); + + // Handle Dark Petal + // XXX: How MX/PC should affect drop rates? + // I imagine a higher MX will increase DR.... (Right now, level 100 = +20% DR) + .@r=rand2(500); + if (.@r < 100+$KAMELOT_MX[.@g]) { + getmapxy(.@m$, .@x, .@y, 0); + makeitem(DarkPetal, 1, .@m$, rand2(.@x-1, .@x+1), rand2(.@y-1, .@y+1)); + } + + // Maybe a reward is due + if (.@g < 1) die(); + getexp $KAMELOT_MX[.@g]*10, $KAMELOT_MX[.@g]*5; + end; + // Every minute, recover some energy OnTimer60000: explode(.@map$, .map$, "@"); @@ -346,6 +366,25 @@ OnInstanceInit: initnpctimer; end; +OnKillMob: + if (!playerattached()) + end; + .@g=getcharid(2); + + // Handle Dark Petal + // XXX: How MX/PC should affect drop rates? + // I imagine a higher MX will increase DR.... (Right now, level 100 = +20% DR) + .@r=rand2(500); + if (.@r < 100+$KAMELOT_MX[.@g]) { + getmapxy(.@m$, .@x, .@y, 0); + makeitem(DarkPetal, 1, .@m$, rand2(.@x-1, .@x+1), rand2(.@y-1, .@y+1)); + } + + // Maybe a reward is due + if (.@g < 1) die(); + getexp $KAMELOT_MX[.@g]*10, $KAMELOT_MX[.@g]*5; + end; + // Every minute, recover some energy OnTimer60000: explode(.@map$, .map$, "@"); @@ -541,6 +580,8 @@ OnInit: OnKillMob: if (!playerattached()) goto OnRespawn; + .@g=getcharid(2); + // Handle Dark Petal // XXX: How MX/PC should affect drop rates? // I imagine a higher MX will increase DR.... (Right now, level 100 = +20% DR) @@ -551,7 +592,6 @@ OnKillMob: } // Maybe a reward is due - .@g=getcharid(2); if (.@g < 1) die(); getexp $KAMELOT_MX[.@g]*10, $KAMELOT_MX[.@g]*5; .@delay=max(5000, 30000-$KAMELOT_PC[.@g]*1250); diff --git a/npc/functions/event.txt b/npc/functions/event.txt index 33892439c..1ca0c8a81 100644 --- a/npc/functions/event.txt +++ b/npc/functions/event.txt @@ -3,7 +3,7 @@ // Jesusalva // Description: // Controls world events so Saulc and I can take vacations. -// The event specifics are more often scattered accross seasons.txt, command/event.txt +// See also: seasons.txt, command/event.txt, aurora.txt // 003-1/events.txt, soulmenhir.txt and, of course, the event maps (if any). // Schedule, if needed to change, can be found in the OnInit loop. // An event, obviously, cannot last more than 7... 15 days at WORST. -- cgit v1.2.3-60-g2f50