... This morning, Zodiac was crashed by a bush.
Directly from /stats:
1. 40.037491666 % npcs[128] (in level zodiacworld_am15.nw at pos (34, 20)) (bush)
The second NPC was the class 'leaps,' which is created when a bush is destroyed, at 9%.
I'm thinking it was done by a modem tap... But anyway, could anyone look at this script and tell me what may have happened or ways to prevent modem tapping?
PHP Code:
function onCreated() {
this.dead = false;
setimgpart("zodiac_bush.png",0,0,32,32);
setshape(1,32,32);
drawunderplayer();
layer = 0;
}
function onActionProjectile() {
if (this.dead) return;
for (this.a = 0; this.a < params[2].size(); this.a++) {
if (params[2][this.a][0] == "wepeff") {
if (params[2][this.a][1] in {"slash","piercing"}) {
CutBush("slash");
break;
}
}
if (params[2][this.a][0] == "magic") {
if (params[2][this.a][1] == "fire") {
CutBush("fire");
break;
}
}
}
}
function onActionDamage() {
if (this.dead) return;
for (this.a = 0; this.a < params[1].size(); this.a++) {
if (params[1][this.a][0] == "wepeff") {
if (params[1][this.a][1] in {"slash","piercing"}) {
CutBush("slash");
break;
}
}
if (params[1][this.a][0] == "magic") {
if (params[1][this.a][1] == "fire") {
CutBush("fire");
break;
}
}
}
}
function onTimeout() {
RespawnBush();
}
public function CutBush(cutfrom) {
if (this.dead) return;
if (cutfrom == "slash") {
this.leaps = putnpc2(x,y,"join(\"leaps\");");
this.leaps.leaptype = "bush";
}
if (cutfrom == "fire") {
this.leaps = putnpc2(x,y,"join(\"leaps\");");
this.leaps.leaptype = "fire";
}
if (random(0,1) < 0.3) {
this.dropitem = putnpc2(x, y, "join(\"item\");");
this.dropitem.quantity = 1;
this.dropitem.itemname = "Leaves";
this.dropitem.arcname = "items/leaves";
}
setimgpart("zodiac_bush.png",32,0,32,32);
setshape(1,32,32);
dontblock();
setTimer(random(30,40));
this.dead = true;
if (this.temporary) destroy();
}
public function RespawnBush() {
this.dead = false;
setimgpart("zodiac_bush.png",0,0,32,32);
blockagain();
}
//#CLIENTSIDE
function onPlayerEnters() {
setshape(1,32,32);
drawunderplayer();
layer = 0;
}