Pickup script

Have questions about CoD4 mapping that aren't covered in the tutorials section? Post here!

Moderator: Core Staff

Post Reply
izak1996
CJ Wannabe
CJ Wannabe
Posts: 27
Joined: August 1st, 2012, 11:20 am

Pickup script

Post by izak1996 » August 1st, 2012, 1:19 pm

Hey guys!
So, i've got a pickup script, but something is wrong with it... When i start the server, the server shuts down and in the console says that there's been a compile error (unknown function on line 13). I don't actually know anything about scripting, so if someone could just repair this script and paste a new one.
here's the code:

Code: Select all

_AdminPickup()
{
	self endon("disconnect");

        while(1)
	{			
                while(!self secondaryoffhandButtonPressed())
                {
                        wait 0.05;
                }
                
                start = getPlayerEyePosition();
                end = start + vector_scale(anglestoforward(self getPlayerAngles()), 999999);
                trace = bulletTrace(start, end, true, self);
                dist = distance(start, trace["position"]);

                ent = trace["entity"];

                if(isDefined(ent) && ent.classname == "player")
                {
		        if(isPlayer(ent))
			        ent IPrintLn("^1You've been picked up by the admin ^2" + self.name + "^1!");

                        self IPrintLn("^1You've picked up ^2" + ent.name + "^1!");

                        linker = spawn("script_origin", trace["position"]);
                        ent linkto(linker);

		        while(self secondaryoffhandButtonPressed())
                        {
			        wait 0.05;
                        }

                        while(!self secondaryoffhandButtonPressed() && isDefined(ent))
                        {
                                start = getPlayerEyePosition();
                                end = start + vector_scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                dist = distance(start, trace["position"]);

			        if(self fragButtonPressed() && !self adsButtonPressed())
				        dist -= 15;
			        else if(self fragButtonPressed() && self adsButtonPressed())
				        dist += 15;

			        end = start + vector_Scale(anglestoforward(self getPlayerAngles()), dist);
			        trace = bulletTrace(start, end, false, ent);
                                linker.origin = trace["position"];

                                wait 0.05;
                        }
		
                        if(isDefined(ent))
		        {
			        ent unlink();
			        if(isPlayer(ent))
				        ent IPrintLn("^1You've been dropped by the admin ^2" + self.name + "^1!");

			        self IPrintLn("^1You've dropped ^2" + ent.name + "^1!");
		        }

		        linker delete();
                } 
 
                while(self secondaryoffhandButtonPressed())
                {
		        wait 0.05;
                }
        }
}

User avatar
Opel
CJ Fan
CJ Fan
Posts: 188
Joined: September 15th, 2008, 12:28 pm
Location: Scotland

Re: Pickup script

Post by Opel » August 1st, 2012, 1:53 pm

Code: Select all

 
_AdminPickup()
{
   self endon("disconnect");
 
        while(1)
        {         
                while(!self secondaryoffhandButtonPressed())
                {
                        wait 0.05;
                }
                
                start = self getEye();
                end = start + maps\mp\_utility::vector_scale(anglestoforward(self getPlayerAngles()), 999999);
                trace = bulletTrace(start, end, true, self);
                dist = distance(start, trace["position"]);
 
                ent = trace["entity"];
 
                if(isDefined(ent) && ent.classname == "player")
                {
                        if(isPlayer(ent))
                                ent IPrintLn("^1You've been picked up by the admin ^2" + self.name + "^1!");
 
                        self IPrintLn("^1You've picked up ^2" + ent.name + "^1!");
 
                        linker = spawn("script_origin", trace["position"]);
                        ent linkto(linker);
 
                        while(self secondaryoffhandButtonPressed())
                        {
                                wait 0.05;
                        }
 
                        while(!self secondaryoffhandButtonPressed() && isDefined(ent))
                        {
                                start = self getEye();
                                end = start + maps\mp\_utility::vector_scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                dist = distance(start, trace["position"]);
 
                                if(self fragButtonPressed() && !self adsButtonPressed())
                                        dist -= 15;
                                else if(self fragButtonPressed() && self adsButtonPressed())
                                        dist += 15;
 
                                end = start + maps\mp\_utility::vector_Scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                linker.origin = trace["position"];
 
                                wait 0.05;
                        }
      
                        if(isDefined(ent))
                        {
                                ent unlink();
                                        
                                if(isPlayer(ent))
                                        ent IPrintLn("^1You've been dropped by the admin ^2" + self.name + "^1!");
 
                                self IPrintLn("^1You've dropped ^2" + ent.name + "^1!");
                        }
 
                        linker delete();
                } 
 
                while(self secondaryoffhandButtonPressed())
                {
                        wait 0.05;
                }
        }
}
 
 

randomjumper
CJ Wannabe
CJ Wannabe
Posts: 17
Joined: April 6th, 2011, 7:48 pm
Gamertag: notag
PSN ID: noid

Re: Pickup script

Post by randomjumper » August 1st, 2012, 2:20 pm


izak1996
CJ Wannabe
CJ Wannabe
Posts: 27
Joined: August 1st, 2012, 11:20 am

Re: Pickup script

Post by izak1996 » August 1st, 2012, 5:08 pm

Opel, thanks for quick reply, but yet it doesn't work... It gives me this error:
Error:
******* script compile error *******
Error: unknown function: (file 'codjumper/_codjumper.gsc', line 50)
addons\addon::init(); // Custom Stuff
*
************************************
********************
ERROR: script compile error
unknown function
addons\addon::init(); // Custom Stuff

Any ideas what this would mean?

User avatar
Opel
CJ Fan
CJ Fan
Posts: 188
Joined: September 15th, 2008, 12:28 pm
Location: Scotland

Re: Pickup script

Post by Opel » August 1st, 2012, 5:47 pm

It most likely is that the init() function is missing from addons.gsc. Just replace the contents of the gsc with this and it should work, unless you have other addons in the file.

Code: Select all

 
/* ______      ____      __
  / ____/___  / __ \    / /_  ______ ___  ____  ___  _____ _________  ____ ___
 / /   / __ \/ / / /_  / / / / / __ `__ \/ __ \/ _ \/ ___// ___/ __ \/ __ `__ \
/ /___/ /_/ / /_/ / /_/ / /_/ / / / / / / /_/ /  __/ /  _/ /__/ /_/ / / / / / /
\____/\____/_____/\____/\__,_/_/ /_/ /_/ .___/\___/_/  (_)___/\____/_/ /_/ /_/
                                      /*/
 
#include codjumper\_cj_utility;
 
init()
{
        /* You may use this file to add your custom             *
         * scripts without requiring a stock file hack. *
         * Thread your functions inside 'init()' and            *
         * place your custom functions below.           */
 
        thread onPlayerConnect();
        
 
 
}
 
onPlayerConnect()
{
        for(;;)
        {
                level waittill( "connected", player );
                
                player thread onPlayerSpawned();
        }
}
 
onPlayerSpawned()
{
        for(;;)
        {
                self waittill( "spawned_player" );
        
                self thread _AdminPickup();
        
        }
}
        
_AdminPickup()
{
   self endon("disconnect");
 
        while(1)
        {         
                while(!self secondaryoffhandButtonPressed())
                {
                        wait 0.05;
                }
                
                start = self getEye();
                end = start + maps\mp\_utility::vector_scale(anglestoforward(self getPlayerAngles()), 999999);
                trace = bulletTrace(start, end, true, self);
                dist = distance(start, trace["position"]);
 
                ent = trace["entity"];
 
                if(isDefined(ent) && ent.classname == "player")
                {
                        if(isPlayer(ent))
                                ent IPrintLn("^1You've been picked up by the admin ^2" + self.name + "^1!");
 
                        self IPrintLn("^1You've picked up ^2" + ent.name + "^1!");
 
                        linker = spawn("script_origin", trace["position"]);
                        ent linkto(linker);
 
                        while(self secondaryoffhandButtonPressed())
                        {
                                wait 0.05;
                        }
 
                        while(!self secondaryoffhandButtonPressed() && isDefined(ent))
                        {
                                start = self getEye();
                                end = start + maps\mp\_utility::vector_scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                dist = distance(start, trace["position"]);
 
                                if(self fragButtonPressed() && !self adsButtonPressed())
                                        dist -= 15;
                                else if(self fragButtonPressed() && self adsButtonPressed())
                                        dist += 15;
 
                                end = start + maps\mp\_utility::vector_Scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                linker.origin = trace["position"];
 
                                wait 0.05;
                        }
      
                        if(isDefined(ent))
                        {
                                ent unlink();
                                        
                                if(isPlayer(ent))
                                        ent IPrintLn("^1You've been dropped by the admin ^2" + self.name + "^1!");
 
                                self IPrintLn("^1You've dropped ^2" + ent.name + "^1!");
                        }
 
                        linker delete();
                } 
 
                while(self secondaryoffhandButtonPressed())
                {
                        wait 0.05;
                }
        }
}
 

izak1996
CJ Wannabe
CJ Wannabe
Posts: 27
Joined: August 1st, 2012, 11:20 am

Re: Pickup script

Post by izak1996 » August 1st, 2012, 6:05 pm

Yeah I guess it was that... I didn't even know that was necesary.
Thanks for your help.

EDIT:
it works now, there are just few problems... How would i make it so only admins and vips can pick up other players? because now everyone can pick up everyone. And again which button must i hold so the player goes away from me? (if i hold g he comes towards me, what must i hold so he goes away from me?)

User avatar
Tommy991
CJ Wannabe
CJ Wannabe
Posts: 25
Joined: January 27th, 2011, 3:01 pm

Re: Pickup script

Post by Tommy991 » August 1st, 2012, 7:02 pm

Code: Select all

_AdminPickup()
{
   self endon("disconnect");
 
        while(1)
        {        
                while(!self secondaryoffhandButtonPressed() || !self.cj["status"] >= 1)
                {
                        wait 0.05;
                }
               
                start = self getEye();
                end = start + maps\mp\_utility::vector_scale(anglestoforward(self getPlayerAngles()), 999999);
                trace = bulletTrace(start, end, true, self);
                dist = distance(start, trace["position"]);
 
                ent = trace["entity"];
 
                if(isDefined(ent) && ent.classname == "player")
                {
                        if(isPlayer(ent))
                                ent IPrintLn("^1You've been picked up by the admin ^2" + self.name + "^1!");
 
                        self IPrintLn("^1You've picked up ^2" + ent.name + "^1!");
 
                        linker = spawn("script_origin", trace["position"]);
                        ent linkto(linker);
 
                        while(self secondaryoffhandButtonPressed())
                        {
                                wait 0.05;
                        }
 
                        while(!self secondaryoffhandButtonPressed() && isDefined(ent))
                        {
                                start = self getEye();
                                end = start + maps\mp\_utility::vector_scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                dist = distance(start, trace["position"]);
 
                                if(self fragButtonPressed() && !self adsButtonPressed())
                                        dist -= 15;
                                else if(self fragButtonPressed() && self adsButtonPressed())
                                        dist += 15;
 
                                end = start + maps\mp\_utility::vector_Scale(anglestoforward(self getPlayerAngles()), dist);
                                trace = bulletTrace(start, end, false, ent);
                                linker.origin = trace["position"];
 
                                wait 0.05;
                        }
     
                        if(isDefined(ent))
                        {
                                ent unlink();
                                       
                                if(isPlayer(ent))
                                        ent IPrintLn("^1You've been dropped by the admin ^2" + self.name + "^1!");
 
                                self IPrintLn("^1You've dropped ^2" + ent.name + "^1!");
                        }
 
                        linker delete();
                }
 
                while(self secondaryoffhandButtonPressed())
                {
                        wait 0.05;
                }
        }
}
While player picked aim down sight then press frag to move player away ... :?

izak1996
CJ Wannabe
CJ Wannabe
Posts: 27
Joined: August 1st, 2012, 11:20 am

Re: Pickup script

Post by izak1996 » August 2nd, 2012, 12:19 am

Thank you Tommy... Now it works perfectly. And thanks to Opel as well :)

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests