-
Pickup Script
Hello,
I'm trying to set up a Pickup script which made by IzNoGod and I'm getting the error
Code:
******* script runtime error *******
type undefined is not a vector: (file 'maps/mp/gametypes/_pickups.gsc', line 10)
self.pickpoint=spawn("script_origin",self.origin);
*
called from:
(file 'maps/pam/sd.gsc', line 68)
thread maps\mp\gametypes\_pickups::pickups();
*
called from:
(file 'maps/mp/gametypes/_callbacksetup.gsc', line 15)
[[level.callbackStartGameType]]();
*
started from:
(file 'maps/mp/gametypes/_callbacksetup.gsc', line 10)
CodeCallback_StartGameType()
*
************************************
Sys_Error: Error during initialization:
script runtime error
(see console for details)
(file 'maps/mp/gametypes/_callbacksetup.gsc', line 10)
The script:
PHP Code:
pickups()
{
self endon("disconnect");
self endon("killed_player");
self endon("spawned_player");
self endon("spawned");
picked=undefined;
if(isdefined(self.pickpoint))
self.pickpoint delete();
self.pickpoint=spawn("script_origin",self.origin);
dist=0;
for(;;)
{
if(self usebuttonpressed())
{
if(!isdefined(picked))
{
trace=bullettrace(self geteye()+(0,0,20),self geteye()+(0,0,20)+maps\mp\_utility::vectorscale(anglestoforward(self getplayerangles()),99999),true,self);
if(trace["fraction"]!=1)
{
if(isdefined(trace["entity"]))
{
if(isplayer(trace["entity"]))
{
picked=trace["entity"];
picked iprintlnbold("picked up by admin");
self iprintlnbold("you picked up ",picked.name);
self.pickpoint.origin=picked.origin;
picked linkto(self.pickpoint);
dist=distance(self.origin,picked.origin);
}
}
}
}
else
{
if(!isplayer(picked)||!isalive(picked))
picked=undefined;
else
{
self.pickpoint.origin=self geteye()+maps\mp\_utility::vectorscale(anglestoforward(self getplayerangles()),dist);
if(self meleebuttonpressed())
dist+=15;
if(self attackbuttonpressed())
{
if(dist>50)
dist-=15;
}
}
}
}
else if(isdefined(picked)||!isplayer(picked)||!isalive(picked))
{
if(!isplayer(picked))
picked=undefined;
else
{
picked unlink();
picked iprintlnbold("dropped by admin");
self iprintlnbold("you dropped ",picked.name);
picked=undefined;
}
}
wait 0.05;
}
}
Any help? thanks :D
-
How do you actually call it in your script? E.g. player thread pickups();
-
Hey kung! Thanks for replying!
I'm calling it from my SD.gsc like this
Code:
thread maps\mp\gametypes\_pickups::pickups();
-
Code:
thread dummy();
self thread pickups();
call it like this and should work, if not, try thread pickups();
-
the code says self endon("spawned_player");
self endon("spawned");
so put it in the spawnplayer function and it should work "after the notify spawned/spawned_player is called
"
-
Or just self waittil("spawned_player");