diff options
-rw-r--r-- | npc/config/magic.txt | 7 | ||||
-rw-r--r-- | npc/functions/filters.txt | 20 | ||||
-rw-r--r-- | npc/functions/mobpoint.txt | 9 |
3 files changed, 18 insertions, 18 deletions
diff --git a/npc/config/magic.txt b/npc/config/magic.txt index b0ebea7a6..9792e3394 100644 --- a/npc/config/magic.txt +++ b/npc/config/magic.txt @@ -133,21 +133,16 @@ function script areaharm { getunitdata(.@t, UDT_MAPIDXY, .@loc); .@x=.@loc[1]; .@y=.@loc[2]; - debugmes("Loc %s (%d, %d) - Real loc %s", .@m$, .@x, .@y, str(.@loc[0])); + //debugmes("Loc %s (%d, %d) - Real loc %s", .@m$, .@x, .@y, str(.@loc[0])); .@c=getunits(.@b, .@mbs, false, .@m$, .@x-.@r, .@y-.@r, .@x+.@r, .@y+.@r); - debugmes "Begin"; for (.@i = 0; .@i < .@c; .@i++) { // Filtering if (!callfunc(.@f$, .@mbs[.@i])) continue; - debugmes "Target %d", .@mbs[.@i]; harm(.@mbs[.@i], .@d, .@t, .@e); - debugmes "Harmed"; specialeffect(FX_ATTACK, AREA, .@mbs[.@i]); - debugmes "FX'ed"; } - debugmes "Done"; return; } diff --git a/npc/functions/filters.txt b/npc/functions/filters.txt index f47c16beb..945ab8bce 100644 --- a/npc/functions/filters.txt +++ b/npc/functions/filters.txt @@ -64,37 +64,35 @@ function script filter_sameguildorpartynotyou { // filter_hostile( id ) function script filter_hostile { - debugmes "filter_hostile %d", getarg(0); - .@type=getunitdata(getarg(0), UDT_TYPE); + //.@type=getunitdata(getarg(0), UDT_TYPE); + .@type=getunittype(getarg(0)); .@chkid=getarg(0); - debugmes "filter_hostile: Checking %d (BL %d)", getarg(0), .@type; - // Monsters - if (.@type == BL_MOB) + if (.@type == UNITTYPE_MOB) return true; // NPCs - if (.@type == BL_NPC) + if (.@type == UNITTYPE_NPC) return false; // Homunculus - if (.@type == BL_HOM) + if (.@type == UNITTYPE_HOM) .@chkid=charid2rid(getunitdata(getarg(0), UDT_MASTERCID)); // Pets - if (.@type == BL_PET) + if (.@type == UNITTYPE_PET) .@chkid=getunitdata(getarg(0), UDT_MASTERAID); // Mercenaries - if (.@type == BL_MER) + if (.@type == UNITTYPE_MER) .@chkid=charid2rid(getunitdata(getarg(0), UDT_MASTERCID)); // Elementals - if (.@type == BL_ELEM) + if (.@type == UNITTYPE_ELEM) .@chkid=charid2rid(getunitdata(getarg(0), UDT_MASTERCID)); - debugmes "filter_hostile: Filtering %d (original %d) (BL %d)", .@chkid, getarg(0), .@type; + //debugmes "filter_hostile: Filtering %d (original %d) (BL %d)", .@chkid, getarg(0), .@type; // Players (and slaves) return !(filter_sameguildorparty(.@chkid)); } diff --git a/npc/functions/mobpoint.txt b/npc/functions/mobpoint.txt index b069dbe27..49d742298 100644 --- a/npc/functions/mobpoint.txt +++ b/npc/functions/mobpoint.txt @@ -13,7 +13,8 @@ function script fix_mobkill { function script mobpoint { if (!MPQUEST) return; - //if (killedrid < 1002) goto L_Return; + if (!killedrid) // A bug! + return; .@moblv=strmobinfo(3,killedrid); // You get MobLv + 20% as MobPoints. @@ -62,6 +63,10 @@ OnNPCKillEvent: JobExp-=1; } + // killedrid was not set, so we skip + if (!killedrid) + return; + // call functions callfunc "mobpoint"; callfunc "mobhunter"; @@ -71,6 +76,8 @@ OnNPCKillEvent: callfunc "Guardhouse_RandQuestCheck"; callfunc "AuroraMobkill"; + // Unset killedrid. This affects multiple calls of this function + // But it is in overall more reliable imao killedrid=0; end; |