A simple bomb demonstration and how to use getareanpcs.
class: bomb
PHP Code:
function onCreated() {
this.image = "wbomb1.png";
// Set Timer to Go Off in a Few Seconds
setTimer(int(random(3, 7)));
}
function onTimeout() {
// Explode Bomb
explodeBomb();
}
function explodeBomb() {
if (!this.exploded) {
// Set Flag to Prevent Double Explosion
this.exploded = true;
// Trigger/Notify NPCs around it in a 4 tile square that it exploded
for (temp.n: getareanpcs(this.x - 4, this.y - 4, 8, 8)) {
temp.n.trigger("ExplosionHit", "");
}
// Destroy Bomb
destroy();
}
}
function onExplosionHit() {
explodeBomb();
}
class: block_explodable
PHP Code:
function onCreated() {
this.image = "block.png";
}
function onExplosionHit() {
// Make sure Block hasn't Exploded
if (!this.exploded) {
// Set Image to Fire
this.image = "g4_animation_fire.gif";
// Set Flag to Exploded
this.exploded = true;
// Set Timer to Go Off in 3 Seconds
setTimer(3);
}
}
function onTimeout() {
// Destroy the Fire
destroy();
}
Lay a bunch of them in a level using a level script or putnpc2:
Level script for bomb:
PHP Code:
function onCreated() {
this.join("bomb");
}
Level script for explodable block:
PHP Code:
function onCreated() {
this.join("block_explodable");
}