Help with CAR TOW - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Help with CAR TOW (
/showthread.php?tid=54235)
Help with CAR TOW -
Rady - 29.10.2008
I want the car to be towed everytime I press "Caps Lock"
And when I press it again, it UnTows the car..
For UnTowing it when I press Caps Lock again, what do I have to change here ?
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys==KEY_CROUCH)&&(IsPlayerInAnyVehicle(playerid))&&(GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
{
if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
{
SendClientMessage(playerid,COLOR_WHITE,"trying to tow a car");
new Float:pX,Float:pY,Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
new Float:vX,Float:vY,Float:vZ;
new Found=0;
new vid=0;
while((vid<MAX_VEHICLES)&&(!Found))
{
vid++;
GetVehiclePos(vid,vX,vY,vZ);
if ((floatabs(pX-vX)<7.0)&&(floatabs(pY-vY)<7.0)&&(floatabs(pZ-vZ)<7.0)&&(vid!=GetPlayerVehicleID(playerid)))
{
Found=1;
if (IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
{
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
}
AttachTrailerToVehicle(vid,GetPlayerVehicleID(playerid));
SendClientMessage(playerid,COLOR_WHITE,"Car towed!");
}
}
if (!Found)
{
SendClientMessage(playerid,COLOR_GREY,"There is no car in range.");
}
}
}
}
Re: Help with CAR TOW -
Rady - 29.10.2008
Can anyone help me ??
Re: Help with CAR TOW -
yugokoral - 29.10.2008
There are possible just theese keys:
Код:
#define KEY_ACTION (1)
#define KEY_CROUCH (2)
#define KEY_FIRE (4)
#define KEY_SPRINT (8)
#define KEY_SECONDARY_ATTACK (16)
#define KEY_JUMP (32)
#define KEY_LOOK_RIGHT (64)
#define KEY_HANDBRAKE (128)
#define KEY_LOOK_LEFT (256)
#define KEY_SUBMISSION (512)
#define KEY_LOOK_BEHIND (512)
#define KEY_WALK (1024)
#define KEY_ANALOG_UP (2048)
#define KEY_ANALOG_DOWN (4096)
#define KEY_ANALOG_RIGHT (16384)
#define KEY_ANALOG_LEFT (8192)
#define KEY_UP (65408)
#define KEY_DOWN (128)
#define KEY_LEFT (65408)
#define KEY_RIGHT (128)
This is from "a_samp.inc"
Re: Help with CAR TOW -
Rady - 29.10.2008
Hm.. ok, this is not the answer I'm looking for.
I know the keys.
But I dont know how to untow the car...
Re: Help with CAR TOW -
Lordkire - 05.11.2008
just first check if the car is already towwing something with IsTrailerAttachedToVehicle(GetPlayerVehicleID(play erid)),
and if so, DetachTrailerFromVehicle(vid,GetPlayerVehicleID(pl ayerid)); and return 1;
Then start the attaching procedure.
Re: Help with CAR TOW -
alma1305 - 06.01.2010
i have this problem too
Re: Help with CAR TOW -
CaHbKo - 06.01.2010
http://pawn.pastebin.com/f4b4c5045
Try that. (didn't test)
Put the..
pawn Код:
new Trailer[MAX_VEHICLES] = 0;
..on the top of the script.
When you TOW a car, Trailer[vehicleid] gets the car's ID, and when you press the button again, it checks if Trailer[vehicleid] equals to 0. If it does, script continues, otherwise it detaches the car, sets the Trailer[vehicleid] to 0 and returns 1 to stop the script from proceeding(without the return it will attach the same car again, since Trailer[vehicleid] is 0).
I'd also suggest to replace...
pawn Код:
if ((floatabs(pX-vX)<7.0)&&(floatabs(pY-vY)<7.0)&&(floatabs(pZ-vZ)<7.0)&&(vid!=GetPlayerVehicleID(playerid)))
...with...
pawn Код:
if (IsPlayerInRangeOfPoint(playerid, 7.0, vX, vY, vZ) && vid != GetPlayerVehicleID(playerid))