Grim Reaper:
The script provided by Dualnames should get you started but it can't be used as-is.
Another thing: what you want is way easier if you split it up into its parts:
1. the arm hitting the player
2. shooting the monster results in a gush of blood
3. shooting all three objects kills the monster
1:[code]// player enters screen after fadein
SetTimer(1, 15);
// room's rep_ex
if (IsTimerExpired(1)) {
oArm.Visible = true;
if (player.InventoryQuantity[iShotgun.ID]==0) {
SetTimer(1, 15);
Wait(20);
oArm.Visible = false;
return;
}
player.LoseInventory(iShotgun);
Wait(10);
int x, y, dx, dy;
bool done;
while (!done) {
x = Random(320); y = Random(200);
dx = player.x-x; dy = player.y-y;
if ((dx*dx+dy*dy)<60*60 && GetWalkableAreaAt(x,y)>0) done=true;
}
x -= 20; // shotgun sprite is 40px wide
oShotgun.SetPosition(x, y);
oShotgun.Visible = true;
Wait(10);
SetTimer(1, 15);
oArm.Visible=false;
}[/code]
And that was the hard part.
2: use inv iShotgun on cMonster -> play an anim at mouse.x, mouse.y + offsets (using an object)
3.
[code]int hits;
function hit(int o) {
object
PlaySound(X); // ?
hits++;
if (hits == 3) {
SetTimer(1, 0);
cMonster.ChangeView(X); // monster dies
cMonster.Animate(...); // ?
player.ChangeRoom(X);
}
}
// use inventory on object 2, 3 & 4
hit(2); // hit(3); / hit(4);[/code]
PS: I wanted to keep it short, but then I started typing the script and couldn't stop
