Hello.
Use getareaunits to get everyone who is in the "safe zone". Then use getmapunits to get everyone on the map. Compare the two lists and attach the players who aren't on both arrays since this means they are out the area.
//REDUCE HP PLAYER OUT OF ZONE
prontera,1,1,1 script AutoReduceHP HIDDEN_NPC,{
end;
OnTimer2000:
.@percent = -30;
.@SafeArea = getareaunits(BL_PC,"prontera",145,83,164,69,.@safe_aid);
.@size = getmapunits(BL_PC,"prontera",.@aid);
if (.@size > 0) {
for (.@i = 0; .@i < .@size; .@i++) {
if (inarray(.@safe_aid, .@aid[.@i]) < 0) {
if (attachrid(.@aid[.@i])) {
if (Hp <= MaxHp) {
specialeffect2 107;
percentheal .@percent, .@percent;
if (Hp < 5) {
warp "SavePoint",0,0;
}
}
detachrid;
}
}
}
}
initnpctimer;
end;
OnInit:
initnpctimer;
end;
}