PDA

View Full Version : Pickup Script



nerdiiii
29th May 2019, 21:52
Hello,

I'm trying to set up a Pickup script which made by IzNoGod and I'm getting the error




******* 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:


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(an glestoforward(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(anglestofor ward(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

kung foo man
30th May 2019, 12:50
How do you actually call it in your script? E.g. player thread pickups();

nerdiiii
30th May 2019, 16:44
Hey kung! Thanks for replying!

I'm calling it from my SD.gsc like this
thread maps\mp\gametypes\_pickups::pickups();

Polat
31st May 2019, 08:56
thread dummy();
self thread pickups();


call it like this and should work, if not, try thread pickups();

vanfreddy
31st May 2019, 12:29
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
"

Polat
31st May 2019, 13:09
Or just self waittil("spawned_player");