You sure there are no other errors in the console? No offence, of course. But the problem definitely lies here:
Code:
DestroyMissile local.missile:
self stufftext "set ui_GuidedMissileHealth 0"
self iprint Boom!
local.missile.cam unbind local.missile
local.Exp = spawn models/emitters/fx_explosion_mine.tik origin local.missile.origin
local.Exp anim start
local.missile.jet remove
local.missile hide
for(local.i=1;local.i<=$player.size;local.i++)
{
if(self cansee $player[local.i])
{
if( vector_within $player[local.i].origin self.origin self.radius)
{
if(local.gametype == 1)
{
$player[local.i] thread do_damage self.player self.origin
}
else
{
if(local.teamdamage == 1)
{
$player[local.i] thread do_damage self.player self.origin
}
else
{
if($player[local.i].dmteam != self.dmteam)
{
$player[local.i] thread do_damage self.player self.origin
}
}
}
}
}
}
wait 1
self physics_on
self unglue local.missile.cam
local.missile.cam remove
if(local.missile.trig != NIL && local.missile.trig != NULL)
local.missile.trig remove
switch(local.missile.team)
{
case allies:
if(level.GMAllies != "unlimited")
level.GMAllies++
break
case axis:
if(level.GMAxis != "unlimited")
level.GMAxis++
break
}
local.missile remove
local.Exp remove
self waitthread Respawn
self.missile = NIL
end
(1) self.player is not defined. With an unavailable self.player, the damage command cannot work with NIL input.
(2) local.gametype is not defined. The condition is never recognised as true and so FFA is not handled.
(3) local.teamdamage is not defined. The condition is never recognised as true and so teamdamage is not handled.
(4) self.radius is not defined. The input to vector_within is NIL and that's why you get that vector casting error.
Try this:
Code:
DestroyMissile local.missile:
self stufftext "set ui_GuidedMissileHealth 0"
self iprint Boom!
local.missile.cam unbind local.missile
local.Exp = spawn models/emitters/fx_explosion_mine.tik origin local.missile.origin
local.Exp anim start
local.missile.jet remove
local.missile hide
local.radius = 250.0
for(local.i=1;local.i<=$player.size;local.i++)
{
if(self cansee $player[local.i])
{
if( vector_within $player[local.i].origin self.origin local.radius)
{
if((getcvar "g_gametype") == "1")
{
$player[local.i] thread do_damage self self.origin
}
else
{
if((getcvar "g_teamdamage") == "1")
{
$player[local.i] thread do_damage self self.origin
}
else
{
if($player[local.i].dmteam != self.dmteam)
{
$player[local.i] thread do_damage self self.origin
}
}
}
}
}
}
wait 1
self physics_on
self unglue local.missile.cam
local.missile.cam remove
if(local.missile.trig != NIL && local.missile.trig != NULL)
local.missile.trig remove
switch(local.missile.team)
{
case allies:
if(level.GMAllies != "unlimited")
level.GMAllies++
break
case axis:
if(level.GMAxis != "unlimited")
level.GMAxis++
break
}
local.missile remove
local.Exp remove
self waitthread Respawn
self.missile = NIL
end
Copy&pasting code never works. If it does, it is a purely coincidental miracle.