Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- spawnDrivableCar(model)
- {
- if(!isDefined(self.car["spawned"]))
- {
- self setClientDvar("cg_thirdPersonRange",300);
- self.car["carModel"] = model;
- self.car["spawned"] = true;
- self.car["runCar"] = true;
- self.car["spawnPosition"] = self.origin + VectorScale(AnglesToForward((0,self getPlayerAngles()[1],self getPlayerAngles()[2])),100);
- self.car["spawnAngles"] = (0,self getPlayerAngles()[1],self getPlayerAngles()[2]);
- self.car["carEntity"] = spawn("script_model",self.car["spawnPosition"]);
- self.car["carEntity"].angles = self.car["spawnAngles"];
- self.car["carEntity"] setModel(self.car["carModel"]);
- wait .2;
- self thread Vehicle_Wait_Think();
- }
- else
- {
- self iPrintln("You Can Only Spawn One Car At A Time!");
- }
- }
- Vehicle_Wait_Think()
- {
- self endon("disconnect");
- self endon("end_car");
- while(self.car["runCar"])
- {
- if(distance(self.origin,self.car["carEntity"].origin)< 120)
- {
- if(self useButtonPressed())
- {
- if(!self.car["inCar"])
- {
- self iPrintln("Press [{+attack}] To Accelerate");
- self iPrintln("Press [{+speed_throw}] To Reverse/Break");
- self iPrintln("Press [{+reload}] To Exit Car");
- self.car["speed"]=0;
- self.car["inCar"]=true;
- self disableWeapons();
- self detachAll();
- self setOrigin(((self.car["carEntity"].origin)+(AnglesToForward(self.car["carEntity"].angles)* 20)+(0,0,3)));
- self hide();
- //self setClientThirdPerson(true);
- self setClientDvar("camera_thirdPerson",1);
- self setClientDvar("cg_thirdPerson",1);
- self setClientDvar("scr_thirdPerson",1);
- self setPlayerAngles(self.car["carEntity"].angles +(0,0,0));
- self PlayerLinkTo(self.car["carEntity"]);
- thread Vehicle_Physics_Think();
- thread Vehicle_Death_Think();
- wait 1;
- }
- else thread Vehicle_Exit_Think();
- }
- }
- wait .05;
- }
- }
- Vehicle_Physics_Think()
- {
- self endon("disconnect");
- self endon("end_car");
- carPhysics=undefined;
- carTrace=undefined;
- newCarAngles=undefined;
- while(self.car["runCar"])
- {
- carPhysics =((self.car["carEntity"].origin)+((AnglesToForward(self.car["carEntity"].angles)*(self.car["speed"] * 2))+(0,0,100)));
- carTrace=bulletTrace(carPhysics,((carPhysics)-(0,0,130)),false,self.car["carEntity"])["position"];
- if(self attackButtonPressed())
- {
- if(self.car["speed"] < 0)self.car["speed"]=0;
- if(self.car["speed"] < 50)self.car["speed"] += 0.4;
- newCarAngles=vectorToAngles(carTrace - self.car["carEntity"].origin);
- self.car["carEntity"] moveTo(carTrace,0.2);
- self.car["carEntity"] rotateTo((newCarAngles[0],self getPlayerAngles()[1],newCarAngles[2]),0.2);
- }
- else
- {
- if(self.car["speed"] > 0)
- {
- newCarAngles=vectorToAngles(carTrace - self.car["carEntity"].origin);
- self.car["speed"] -= 0.7;
- self.car["carEntity"] moveTo(carTrace,0.2);
- self.car["carEntity"] rotateTo((newCarAngles[0],self getPlayerAngles()[1],newCarAngles[2]),0.2);
- }
- }
- if(self adsButtonPressed())
- {
- if(self.car["speed"] > -20)
- {
- if(self.car["speed"] < 0)newCarAngles=vectorToAngles(self.car["carEntity"].origin - carTrace);
- self.car["speed"] -= 0.5;
- self.car["carEntity"] moveTo(carTrace,0.2);
- }
- else self.car["speed"] += 0.5;
- self.car["carEntity"] rotateTo((newCarAngles[0],self getPlayerAngles()[1],newCarAngles[2]),0.2);
- }
- else
- {
- if(self.car["speed"] < -1)
- {
- if(self.car["speed"] < 0)newCarAngles=vectorToAngles(self.car["carEntity"].origin - carTrace);
- self.car["speed"] += 0.8;
- self.car["carEntity"] moveTo(carTrace,0.2);
- self.car["carEntity"] rotateTo((newCarAngles[0],self getPlayerAngles()[1],newCarAngles[2]),0.2);
- }
- }
- wait 0.05;
- }
- }
- Vehicle_Death_Think()
- {
- self endon("disconnect");
- self endon("end_car");
- self waittill("death");
- if(self.car["inCar"])thread Vehicle_Exit_Think();
- else self.car["carEntity"] delete();
- wait 0.2;
- }
- Vehicle_Exit_Think()
- {
- self.car["speed"]=0;
- self.car["inCar"]=false;
- self.car["runCar"]=false;
- self.car["spawned"]=undefined;
- self.car["carEntity"] delete();
- self unlink();
- self enableWeapons();
- self show();
- //self setClientThirdPerson(false);
- self setClientDvar("camera_thirdPerson",0);
- self setClientDvar("cg_thirdPerson",0);
- self setClientDvar("scr_thirdPerson",0);
- wait 0.3;
- self notify("end_car");
- }
- traceBulletCar(distance)
- {
- if(!isDefined(distance))distance=10000000;
- return bulletTrace(self getEye(),self getEye()+ vectorScale(AnglesToForward(self getPlayerAngles()),distance),false,self)["position"];
- }
- vectorScale(vector,scale)
- {
- return(vector[0]*scale,vector[1]*scale,vector[2]*scale);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement