summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/config/magic.txt7
-rw-r--r--npc/functions/filters.txt20
-rw-r--r--npc/functions/mobpoint.txt9
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;