Hi,
ich habe mal wieder ein Problem. Undzwar habe ich nun ein System eingebaut das man den Motor eines Fahrzeuges mit /motor einschalten muss aber dies nur funktioniert wenn einem das fahrzeug gehört. Wem das Fahrzeug gehört speicher ich in meinem Player enum via VehicleID. Jetzt habe ich aber festgestellt das, wenn ich ein Fahrzeug lösche das danach beim nächsten mal mit einer anderen ID spawnt und das Fahrzeug gehört laut script nicht mehr dem eigentlichen besitzer.
Hier einmal Codes die ich für nützlich finde:
public LadeFahrzeug(carid) //Wird im onGameModeInit mit dieser for-Schleife (new i = 1; i < MAX_VEHICLES; i++) aufgerufen
{
new str[25];
format(str, sizeof(str), "/Vehicles/%d.car", carid);
if(carid == 0)
{
return 1;
}
if(fexist(str))
{
CarInfo[carid][cID] = dini_Int(str, "cID");
CarInfo[carid][cX] = dini_Float(str, "cX");
CarInfo[carid][cY] = dini_Float(str, "cY");
CarInfo[carid][cZ] = dini_Float(str, "cZ");
CarInfo[carid][cR] = dini_Float(str, "cR");
CarInfo[carid][cModel] = dini_Int(str, "cModel");
//tuning
CarInfo[carid][tuning_0] = dini_Int(str, "tuning_0");
CarInfo[carid][tuning_1] = dini_Int(str, "tuning_1");
CarInfo[carid][tuning_2] = dini_Int(str, "tuning_2");
CarInfo[carid][tuning_3] = dini_Int(str, "tuning_3");
CarInfo[carid][tuning_4] = dini_Int(str, "tuning_4");
CarInfo[carid][tuning_5] = dini_Int(str, "tuning_5");
CarInfo[carid][tuning_6] = dini_Int(str, "tuning_6");
CarInfo[carid][tuning_7] = dini_Int(str, "tuning_7");
CarInfo[carid][tuning_8] = dini_Int(str, "tuning_8");
CarInfo[carid][tuning_9] = dini_Int(str, "tuning_9");
CarInfo[carid][tuning_10] = dini_Int(str, "tuning_10");
CarInfo[carid][tuning_11] = dini_Int(str, "tuning_11");
CarInfo[carid][tuning_12] = dini_Int(str, "tuning_12");
CarInfo[carid][tuning_13] = dini_Int(str, "tuning_13");
CarInfo[carid][color_1] = dini_Int(str, "color_1");
CarInfo[carid][color_2] = dini_Int(str, "color_2");
CarInfo[carid][paintjob] = dini_Int(str, "paintjob");
}
return 1;
}
public sellCarInShop(playerid, carPrice, carName[], carID){ //Hier wird ein Fahrzeug erstellt und eingetragen wenn es im Shop gekauft wird (also wenn der Shop ein Auto an den Spieler verkauft)
if(GetPlayerMoney(playerid) >= carPrice){
if(PlayerInfo[playerid][pCar1] == 0 || PlayerInfo[playerid][pCar2] == 0 || PlayerInfo[playerid][pCar3] == 0 || PlayerInfo[playerid][pCar4] == 0){
new car = CreateVehicle(carID, -1917.0745, 296.8005, 41.0469, 178.7229, 0, 0, 0);
PutPlayerInVehicle(playerid, car, 0);
new id = GetPlayerVehicleID(playerid);
CarInfo[id][cID] = id;
CarInfo[id][cModel] = 411;
CarInfo[id][cX] = 0;
CarInfo[id][cY] = 0;
CarInfo[id][cZ] = 10;
CarInfo[id][cR] = 0;
if(PlayerInfo[playerid][pCar1] == 0){
PlayerInfo[playerid][pCar1] = CarInfo[car][cID];
} else if(PlayerInfo[playerid][pCar2] == 0){
PlayerInfo[playerid][pCar2] = CarInfo[car][cID];
} else if(PlayerInfo[playerid][pCar3] == 0){
PlayerInfo[playerid][pCar3] = CarInfo[car][cID];
} else if(PlayerInfo[playerid][pCar4] == 0){
PlayerInfo[playerid][pCar4] = CarInfo[car][cID];
}
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, PlayerInfo[playerid][pGeld] - carPrice);
PlayerInfo[playerid][pGeld] = GetPlayerMoney(playerid);
new string[128];
format(string, sizeof(string), "Du hast dir erfolgreich einen %s gekauft.", carName);
SendClientMessage(playerid, COLOR_GREEN, string);
} else {
SendClientMessage(playerid, COLOR_RED, "[SHOP] Du hast keinen Fahrzeug Slot mehr frei!");
}
} else {
SendClientMessage(playerid, COLOR_RED, "[SHOP] Du hast nicht genug Geld dabei!");
}
return 1;
}
public SpeicherFahrzeug(carid) //Im OnGameModeExit wieder mit dieser for-Schleife: for(new i = 1; i < MAX_VEHICLES; i++)
{
if(carid <= 0)
{
return 1;
}
CarInfo[carid][cModel] = GetVehicleModel(CarInfo[carid][cID]);
if(CarInfo[carid][cModel] == 0) return 1;
new str[25];
format(str, sizeof(str), "/Vehicles/%d.car", carid);
dini_Create(str);
dini_IntSet(str,"cID",CarInfo[carid][cID]);
dini_FloatSet(str,"cX", CarInfo[carid][cX]);
dini_FloatSet(str,"cY", CarInfo[carid][cY]);
dini_FloatSet(str,"cZ", CarInfo[carid][cZ]);
dini_FloatSet(str,"cR", CarInfo[carid][cR]);
dini_IntSet(str,"cModel",CarInfo[carid][cModel]);
//tuning
dini_IntSet(str, "tuning_0", CarInfo[carid][tuning_0]);
dini_IntSet(str, "tuning_1", CarInfo[carid][tuning_1]);
dini_IntSet(str, "tuning_2", CarInfo[carid][tuning_2]);
dini_IntSet(str, "tuning_3", CarInfo[carid][tuning_3]);
dini_IntSet(str, "tuning_4", CarInfo[carid][tuning_4]);
dini_IntSet(str, "tuning_5", CarInfo[carid][tuning_5]);
dini_IntSet(str, "tuning_6", CarInfo[carid][tuning_6]);
dini_IntSet(str, "tuning_7", CarInfo[carid][tuning_7]);
dini_IntSet(str, "tuning_8", CarInfo[carid][tuning_8]);
dini_IntSet(str, "tuning_9", CarInfo[carid][tuning_9]);
dini_IntSet(str, "tuning_10", CarInfo[carid][tuning_10]);
dini_IntSet(str, "tuning_11", CarInfo[carid][tuning_11]);
dini_IntSet(str, "tuning_12", CarInfo[carid][tuning_12]);
dini_IntSet(str, "tuning_13", CarInfo[carid][tuning_13]);
dini_IntSet(str, "color_1", CarInfo[carid][color_1]);
dini_IntSet(str, "color_2", CarInfo[carid][color_2]);
dini_IntSet(str, "paintjob", CarInfo[carid][paintjob]);
return 1;
}
dcmd_motor(playerid, params[]) {//motor befehl
#pragma unused params
if(GetPlayerVehicleSeat(playerid) == 0)
{
new carID = GetPlayerVehicleID(playerid);
if(PlayerInfo[playerid][pCar1] == carID || PlayerInfo[playerid][pCar2] == carID || PlayerInfo[playerid][pCar3] == carID || PlayerInfo[playerid][pCar4] == carID)
{
new car = GetPlayerVehicleID(playerid);
if(GetVehicleModel(car) == 509 || GetVehicleModel(car) == 481 || GetVehicleModel(car) == 510)
{
SendClientMessage(playerid, COLOR_RED, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
}
else if (Tank[car] < 1)
{
SendClientMessage(playerid, COLOR_RED, "Der Tank ist leer. Du musst erst /tanken.");
}
else if (Motor[car] == false )
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
Motor[car] = true; // Setzt den Bool Motor auf true
}
else
{
GetVehicleParamsEx(car,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(car,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[car] = false; // Setzt den Bool wieder auf falsch zurück.
}
}else{
SendClientMessage(playerid, COLOR_RED, "Dein Schlüssel passt hier nicht!");
}
}
return 1;
}
Ich höffe ihr könnt mir helfen
Vielen Dank