Ich habe ein Problem bei meinen "Carlock"
Die Fahrzeuge vom Spieler sollen beim Spawn und Laden der Fahrzeuge nach dem Einloggen bgeschlossen sein. Jedoch funktioniert es nicht so wie es soll.
Car-Lock Befehl
command(carlock, playerid, params[]) {
if(SpielerInfo[playerid][pCars] == 0) return SendClientMessage(playerid, COLOR_RED, "Du besitzt kein Fahrzeug");
new check, Float:X, Float:Y, Float:Z;
for(new x=0;x<SpielerInfo[playerid][pCars];x++) {
GetVehiclePos(CarInfo[playerid][x][cID],X,Y,Z);
if(IsPlayerInRangeOfPoint(playerid,3,X,Y,Z)) {
check = 1;
if(CarInfo[playerid][x][cLock] == 1) {
GameTextForPlayer(playerid, "~w~Fahrzeug ~g~aufgeschlossen", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
UnLockCar(CarInfo[playerid][x][cID]);
CarInfo[playerid][x][cLock] = 0;
} else {
GameTextForPlayer(playerid, "~w~Fahrzeug ~r~abgeschlossen", 5000, 6);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
LockCar(CarInfo[playerid][x][cID]);
CarInfo[playerid][x][cLock] = 1;
}
}
}
if(check==0) {
SendClientMessage(playerid, COLOR_RED, "Du bist nicht in der Nähe von deinem Fahrzeug!");
}
return 1;
}
** Wenn ich /carlock zuerst eingebe erscheint korrekt "Fahrzeug aufgeschlossen" Jedoch das fahrzeug ist bereits offen. Wenn ich das 2te mal /carlock eingebe ist es wirklich korrekt abgeschlossen. Abwohl ich immer die gleiche Function LockCar und UnLockCar verwende
OnVehicleSpawn
public OnVehicleSpawn(vehicleid)
{
for(new i=0;i<MAX_PLAYERS;i++) {
if(!IsPlayerConnected(i)) continue;
for(new x=0;x<SpielerInfo[i][pCars];x++) {
if(CarInfo[i][x][cID] == 0 ) continue;
if(CarInfo[i][x][cID] == vehicleid) {
CarInfo[i][x][cLock] = 1;
LockCar(vehicleid);
SendClientMessage(i, -1, "Dein Fahrzeug wurde gespawnt");
}
}
}
return 1;
}
LoadPlayerCars
stock LoadPlayerCars(playerid)
{
//Auszug
if(mysql_retrieve_row()) {
mysql_fetch_field_row(field,"besitzer");format(CarInfo[playerid][i][cBesitzer], 100, "%s", field);
mysql_fetch_field_row(field2,"id");CarInfo[playerid][i][cDBid] = strval(field2);
mysql_fetch_field_row(field2,"x");CarInfo[playerid][i][cX] = floatstr(field2);
mysql_fetch_field_row(field2,"y");CarInfo[playerid][i][cY] = floatstr(field2);
mysql_fetch_field_row(field2,"z");CarInfo[playerid][i][cZ] = floatstr(field2);
mysql_fetch_field_row(field2,"a");CarInfo[playerid][i][cA] = floatstr(field2);
mysql_fetch_field_row(field2,"modelid");CarInfo[playerid][i][cModelid] = strval(field2);
mysql_fetch_field_row(field2,"color1");CarInfo[playerid][i][cColor1] = strval(field2);
mysql_fetch_field_row(field2,"color2");CarInfo[playerid][i][cColor2] = strval(field2);
CarInfo[playerid][i][cID] = CreateVehicle(CarInfo[playerid][i][cModelid],CarInfo[playerid][i][cX],CarInfo[playerid][i][cY],CarInfo[playerid][i][cZ],CarInfo[playerid][i][cA],CarInfo[playerid][i][cColor1],CarInfo[playerid][i][cColor2],-1);
LockCar(CarInfo[playerid][i][cID]); // <== Das Problemkind
CarInfo[playerid][i][cLock] = 1;
}
LockCar & UnLockCar
forward LockCar(carid);
public LockCar(carid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetVehicleParamsForPlayer(carid,i,0,1);
}
return 1;
}
forward UnLockCar(carid);
public UnLockCar(carid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetVehicleParamsForPlayer(carid,i,0,0);
}
return 1;
}
Was mache ich falsch?