Salut, am facut un sistem de drag racing cu acelasi CP pentru ambii jucatori, insa daca cel care a dat /drag (id) intra primul in CP, acesta nu se dezactiveaza, se dezactiveaza doar daca intra cel care a dat /accept drag.
YCMD:drag(playerid, params[], help) {
new userID, szMessage[180];
if(!PlayerToPoint(10, playerid, 748.0566,-2379.0576,12.9100)) return SCM(playerid, COLOR_GREY, "Nu te aflii pe pista de drag.");
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) return SCM(playerid, COLOR_ORANGE, "Nu esti la volanul unei masini!");
if(sscanf(params, "u", userID)) return SCM(playerid, COLOR_GREY, "Syntax: {FFFFFF}/drag <playerid/name>");
if(!IsPlayerConnected(userID) && userID == INVALID_PLAYER_ID) return SCM(playerid, COLOR_GREY, "Acel player nu este conectat.");
if(!PlayerToPoint(10, userID, 748.0566,-2379.0576,12.9100)) return SCM(playerid, -1, "Acel player nu este pe pista de drag!");
if(GetPlayerState(userID)!=PLAYER_STATE_DRIVER) return SCM(playerid, COLOR_ORANGE, "Acel player nu este la volanul unei masini!");
if(userID == playerid) return SCM(playerid, COLOR_GREY, "Nu poti folosi aceasta comanda asupra ta!");
if(!ProxDetectorS(10.0, playerid, userID)) return SCM(playerid, COLOR_GREY, "Nu esti langa acel jucator.");
if(DragID[userID] == playerid) return SCM(playerid, COLOR_LGREEN, "Eroare: I-ai trimis deja o invitatie acestui player!");
DragID[userID] = playerid;
format(szMessage, 256, "%s(%d) te-a invitat sa faci o cursa cu el cu el! (/accept drag %d).", GetName(playerid), playerid, playerid);
SCM(userID, 0xFAD4D4FF, szMessage);
format(szMessage, 256, "L-ai invitat pe %s(%d) sa faca o cursa cu tine.", GetName(userID), userID);
SCM(playerid, 0xFAD4D4FF, szMessage);
return 1;
}
if( strcmp ( x_job, "drag" , true ) == 0 )
{
new userID = id;
if(DragID[playerid] == -1) return SCM(playerid,COLOR_WHITE,"Nimeni nu te-a invitat sa faci o cursa.");
if(id == playerid) return SCM(playerid, COLOR_GREY, "Nu poti folosi aceasta comanda asupra ta!");
if(!PlayerToPoint(10, playerid, 748.0566,-2379.0576,12.9100)) return SCM(playerid, COLOR_GREY, "Nu te aflii pe pista de drag.");
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) return SCM(playerid, COLOR_ORANGE, "Nu esti la volanul unei masini!");
if(GetPVarInt(userID, "InDrag") == 1) return SCM(playerid, -1, "Acel player este deja intr-o cursa.");
if(IsPlayerConnected(id)) {
if(DragID[playerid] == id)
{
new vehuserid = GetPlayerVehicleID(userID);
new vehplayerid = GetPlayerVehicleID(playerid);
if(!ProxDetectorS(10.0, playerid, id)) return SCM(playerid, COLOR_GREY, "Nu te aflii langa acel jucator!");
SetPVarInt(playerid, "InDrag", 1);
SetPVarInt(userID, "InDrag", 1);
SetVehiclePosEx(userID, vehuserid, 756.0446,-2377.2810,12.6371);
SetVehicleZAngleEx(vehuserid, 180);
SetPlayerFacingAngle(userID, 183.8938);
SetVehiclePosEx(playerid, vehplayerid, 740.3959,-2377.2373,12.6371);
SetVehicleZAngleEx(vehplayerid, 180);
SetPlayerFacingAngle(playerid, 183.8938);
PutPlayerInVehicle(playerid, GetPlayerVehicleID(playerid), 0);
PutPlayerInVehicle(userID, GetPlayerVehicleID(userID), 0);
TogglePlayerControllable(playerid, 0);
TogglePlayerControllable(userID, 0);
TextDrawShowForPlayer(playerid, CountTD);
Countnr = 5;
Count();
TextDrawShowForPlayer(userID, CountTD);
Countnr = 5;
Count();
SetTimerEx("drag", 5000, false, "i", playerid);
SetTimerEx("drag", 5000, false, "i", userID);
foreach(new i : Player)
{
SetPlayerRaceCheckpoint(i, 1, 748.2872,-2689.0310,12.8837, 0.0,0.0,0.0, 25);
CP[playerid] = 618;
}
if(CP[playerid] == 618) {
foreach(new i : Player)
{
DisablePlayerRaceCheckpoint(i);
SetPVarInt(i, "InDrag", 0);
}
}