Guten Abend,
Mein Car System funktioniert nicht. Das Car wird nach dem Kauf gespawned aber dann ist es bei /carkey nicht zufinden und nach relog wurde es zwar gespeichert spawned aber nicht.
Buy Befehl:
if(strcmp("/buycar", cmd, true) == 0)
{
if(Spectating[playerid] != -1)
{
if(Carlist[playerid][CarKey[playerid]][Typ] == -1)
{
new preis = Kaufliste[Spectating[playerid]][Preis];
if(preis <= PlayerInfo[playerid][pCash])
{
new VID = GetPlayerVehicleID(playerid);
new autohaus = Kaufliste[Spectating[playerid]][Autohaus];
GivePlayerMoneys(playerid, - preis);
Carlist[playerid][CarKey[playerid]][Typ] = GetVehicleModel(GetPlayerVehicleID(playerid));
Carlist[playerid][CarKey[playerid]][pos_x] = Autospawns[autohaus][pos_x];
Carlist[playerid][CarKey[playerid]][pos_y] = Autospawns[autohaus][pos_y];
Carlist[playerid][CarKey[playerid]][pos_z] = Autospawns[autohaus][pos_z];
Carlist[playerid][CarKey[playerid]][z_angle] = Autospawns[autohaus][z_angle];
Carlist[playerid][CarKey[playerid]][SpawnSaveX] = Autospawns[autohaus][pos_x];
Carlist[playerid][CarKey[playerid]][SpawnSaveY] = Autospawns[autohaus][pos_y];
Carlist[playerid][CarKey[playerid]][SpawnSaveZ] = Autospawns[autohaus][pos_z];
Carlist[playerid][CarKey[playerid]][SpawnSaveRot] = Autospawns[autohaus][z_angle];
Carlist[playerid][CarKey[playerid]][Status] = 0;
Carlist[playerid][CarKey[playerid]][Lock] = 0;
Carlist[playerid][CarKey[playerid]][ingarage] = 1;
Carlist[playerid][CarKey[playerid]][TankVolumen] = vehTank[GetVehicleModel(VID)-400];
Carlist[playerid][CarKey[playerid]][Carid] = CreateTunedCar(playerid, CarKey[playerid]);
Kilometer[Carlist[playerid][CarKey[playerid]][Carid]] = 0;
Gas[Carlist[playerid][CarKey[playerid]][Carid]] = Carlist[playerid][CarKey[playerid]][TankVolumen];
SetPlayerCheckpoint(playerid,Carlist[playerid][CarKey[playerid]][pos_x],Carlist[playerid][CarKey[playerid]][pos_y],Carlist[playerid][CarKey[playerid]][pos_z],10.0);
new query[900], h = CarKey[playerid];
format(query,sizeof(query),"INSERT INTO `cars` (`sqlid`,`carkey`,`ingarage`,`AH_Typ`,`AH_X`,`AH_Y`,`AH_Z`,`AH_Rot`,`AH_Status`,`AH_Lock`,`AH_Paintjob`,`AH_Farbe1`,`AH_Farbe2`,`AH_Mod1`,`AH_Mod2`,`AH_Mod3`,`AH_Mod4`,`AH_Mod5`,`AH_Mod6`,`AH_Mod7`,`AH_Mod8`,`AH_Mod9`,`AH_Mod10`,`AH_Mod11`,`AH_Mod12`,`AH_Mod13`,`AH_Mod14`,`AH_Mod15`,`AH_Mod16`,`AH_Mod17`,");
format(query,sizeof(query),"%s`AH_SpawnSaveX`,`AH_SpawnSaveY`,`AH_SpawnSaveZ`,`AH_SpawnSaveRot`,`AH_TankVolumen`,`AH_Mats`,`AH_Neon`,`AH_NeonType`,`AH_Drugs`,`AH_StandTime`,`AH_Meter`) VALUES (%d,%d,%i,%i,%f,%f,%f,%f,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%f,%f,%f,%f,%i,%i,%i,%i,%i,%i,%i)",
query,PlayerInfo[playerid][pSQLID],h,Carlist[playerid][h][ingarage],Carlist[playerid][h][Typ],Carlist[playerid][h][pos_x],Carlist[playerid][h][pos_y],Carlist[playerid][h][pos_z],
Carlist[playerid][h][z_angle],Carlist[playerid][h][Status],Carlist[playerid][h][Lock],Carlist[playerid][h][Paintjob],
Carlist[playerid][h][Farbe1],Carlist[playerid][h][Farbe2],Carlist[playerid][h][mod1],Carlist[playerid][h][mod2],
Carlist[playerid][h][mod3],Carlist[playerid][h][mod4],Carlist[playerid][h][mod5],Carlist[playerid][h][mod6],
Carlist[playerid][h][mod7],Carlist[playerid][h][mod8],Carlist[playerid][h][mod9],Carlist[playerid][h][mod10],
Carlist[playerid][h][mod11],Carlist[playerid][h][mod12],Carlist[playerid][h][mod13],Carlist[playerid][h][mod14],
Carlist[playerid][h][mod15],Carlist[playerid][h][mod16],Carlist[playerid][h][mod17],
Carlist[playerid][h][SpawnSaveX],Carlist[playerid][h][SpawnSaveY],Carlist[playerid][h][SpawnSaveZ],
Carlist[playerid][h][SpawnSaveRot],Carlist[playerid][h][TankVolumen],Carlist[playerid][h][cMats],
Carlist[playerid][h][Neon],Carlist[playerid][h][NeonType],Carlist[playerid][h][cDrugs],Carlist[playerid][h][StandTime],
Kilometer[Carlist[playerid][h][CarID]]);
mysql_query(query);
ForAllPlayers(i){
if(IsPlayerConnected(i)){
SetVehicleParamsForPlayer(Kaufliste[Spectating[playerid]][Carid], i, 0, 0);
print("OnPlayerDeath: message sent13");
}}
TogglePlayerControllable(playerid,1);
RemovePlayerFromVehicle(playerid);
format(string, sizeof(string), "Du hast dir erfolgreich für %s$ ein/einen %s gekauft!",GetPoint(preis),Kaufliste[Spectating[playerid]][Name]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "öffnen und Schließen kannst du es mit /lock und /carlock.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Mehr Befehle kannst du unter /carhelp sehen.");
SendClientMessage(playerid, COLOR_YELLOW, "Dein Auto steht am Ausgabepunkt(Roter Marker) bereit! Viel Spaß beim Fahren!");
GetPlayerName(playerid, sendername, sizeof(sendername));
if(Kaufliste[Spectating[playerid]][Autohaus] == 2)
{
BizInfo[13][bTill] += (preis/100)*19;
}
Spectating[playerid] = -1;
}
else
{
format(string, sizeof(string), " Du hast nicht genug Geld für das Auto (benötigt: $%i)!", preis);
SendClientMessage(playerid, COLOR_ERRORTEXT, string);
}
}
else
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Du besitzt bereits ein Auto auf dem ausgewählten Schlüssel!");
}
}
else
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Du besichtigst kein Auto !");
}
return 1;
}
public PlayerCarConnect(playerid)
{
if(IsPlayerNPC(playerid))
{
return 1;
}
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
for(new h = 0; h < MaxVeh[playerid]; h++)
{
new data[100],TextString[50];
format(TextString, sizeof(TextString), "SELECT * FROM `cars` WHERE `id`=%i", PlayerInfo[playerid][pSQLID]);
self_mysql_query(TextString);
mysql_store_result(MySQLConnection);
if(mysql_num_rows(MySQLConnection) != 0)
{
mysql_fetch_row_format(TextString);
self_mysql_get_field("id", data); Carlist[playerid][h][cid] = strval( data );
self_mysql_get_field("sqlid", data); Carlist[playerid][h][sqlid] = strval( data );
self_mysql_get_field("ingarage", data); Carlist[playerid][h][ingarage] = strval( data );
self_mysql_get_field("AH_Typ", data); Carlist[playerid][h][Typ] = strval( data );
self_mysql_get_field("AH_X", data); Carlist[playerid][h][pos_x] = floatstr( data );
self_mysql_get_field("AH_Y", data); Carlist[playerid][h][pos_y] = floatstr( data );
self_mysql_get_field("AH_Z", data); Carlist[playerid][h][pos_z] = floatstr( data );
self_mysql_get_field("AH_Rot", data); Carlist[playerid][h][z_angle] = floatstr( data );
self_mysql_get_field("AH_Status", data); Carlist[playerid][h][Status] = strval( data );
self_mysql_get_field("AH_Lock", data); Carlist[playerid][h][Lock] = strval( data );
self_mysql_get_field("AH_Paintjob", data); Carlist[playerid][h][Paintjob] = strval( data );
self_mysql_get_field("AH_Farbe1", data); Carlist[playerid][h][Farbe1] = strval( data );
self_mysql_get_field("AH_Farbe2", data); Carlist[playerid][h][Farbe2] = strval( data );
self_mysql_get_field("AH_mod1", data); Carlist[playerid][h][mod1] = strval( data );
self_mysql_get_field("AH_mod2", data); Carlist[playerid][h][mod2] = strval( data );
self_mysql_get_field("AH_mod3", data); Carlist[playerid][h][mod3] = strval( data );
self_mysql_get_field("AH_mod4", data); Carlist[playerid][h][mod4] = strval( data );
self_mysql_get_field("AH_mod5", data); Carlist[playerid][h][mod5] = strval( data );
self_mysql_get_field("AH_mod6", data); Carlist[playerid][h][mod6] = strval( data );
self_mysql_get_field("AH_mod7", data); Carlist[playerid][h][mod7] = strval( data );
self_mysql_get_field("AH_mod8", data); Carlist[playerid][h][mod8] = strval( data );
self_mysql_get_field("AH_mod9", data); Carlist[playerid][h][mod9] = strval( data );
self_mysql_get_field("AH_mod10", data); Carlist[playerid][h][mod10] = strval( data );
self_mysql_get_field("AH_mod11", data); Carlist[playerid][h][mod11] = strval( data );
self_mysql_get_field("AH_mod12", data); Carlist[playerid][h][mod12] = strval( data );
self_mysql_get_field("AH_mod13", data); Carlist[playerid][h][mod13] = strval( data );
self_mysql_get_field("AH_mod14", data); Carlist[playerid][h][mod14] = strval( data );
self_mysql_get_field("AH_mod15", data); Carlist[playerid][h][mod15] = strval( data );
self_mysql_get_field("AH_mod16", data); Carlist[playerid][h][mod16] = strval( data );
self_mysql_get_field("AH_mod17", data); Carlist[playerid][h][mod17] = strval( data );
self_mysql_get_field("AH_SpawnSaveX", data); Carlist[playerid][h][SpawnSaveX] = floatstr( data );
self_mysql_get_field("AH_SpawnSaveY", data); Carlist[playerid][h][SpawnSaveY] = floatstr( data );
self_mysql_get_field("AH_SpawnSaveZ", data); Carlist[playerid][h][SpawnSaveZ] = floatstr( data );
self_mysql_get_field("AH_SpawnSaveRot", data); Carlist[playerid][h][SpawnSaveRot] = floatstr( data );
self_mysql_get_field("AH_TankVolumen", data); Carlist[playerid][h][TankVolumen] = strval( data );
self_mysql_get_field("AH_Mats", data); Carlist[playerid][h][cMats] = strval(data);
self_mysql_get_field("AH_Neon", data); Carlist[playerid][h][Neon] = strval(data);
self_mysql_get_field("AH_NeonType", data); Carlist[playerid][h][NeonType] = strval(data);
self_mysql_get_field("AH_Drugs", data); Carlist[playerid][h][cDrugs] = strval(data);
self_mysql_get_field("AH_StandTime", data); Carlist[playerid][h][StandTime] = strval(data);
self_mysql_get_field("AH_Meter", data); Kilometer[Carlist[playerid][h][h]] = strval(data);
Carlist[playerid][h][Carid] = CreateTunedCar(playerid, h);
if(Carlist[playerid][h][Typ] != -1 && Carlist[playerid][h][Status] == 0){
printf("Fahrzeugspeicherung: Beginning Spawn.");
printf("Fahrzeugspeicherung: End Spawn.");}
printf("(%d,%d,%i,%i,%f,%f,%f,%f,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%f,%f,%f,%f,%i,%i,%i,%i,%i,%i,%f)",
PlayerInfo[playerid][pSQLID],h,Carlist[playerid][h][ingarage],Carlist[playerid][h][Typ],Carlist[playerid][h][pos_x],Carlist[playerid][h][pos_y],Carlist[playerid][h][pos_z],
Carlist[playerid][h][z_angle],Carlist[playerid][h][Status],Carlist[playerid][h][Lock],Carlist[playerid][h][Paintjob],
Carlist[playerid][h][Farbe1],Carlist[playerid][h][Farbe2],Carlist[playerid][h][mod1],Carlist[playerid][h][mod2],
Carlist[playerid][h][mod3],Carlist[playerid][h][mod4],Carlist[playerid][h][mod5],Carlist[playerid][h][mod6],
Carlist[playerid][h][mod7],Carlist[playerid][h][mod8],Carlist[playerid][h][mod9],Carlist[playerid][h][mod10],
Carlist[playerid][h][mod11],Carlist[playerid][h][mod12],Carlist[playerid][h][mod13],Carlist[playerid][h][mod14],
Carlist[playerid][h][mod15],Carlist[playerid][h][mod16],Carlist[playerid][h][mod17],
Carlist[playerid][h][SpawnSaveX],Carlist[playerid][h][SpawnSaveY],Carlist[playerid][h][SpawnSaveZ],
Carlist[playerid][h][SpawnSaveRot],Carlist[playerid][h][TankVolumen],Carlist[playerid][h][cMats],
Carlist[playerid][h][Neon],Carlist[playerid][h][NeonType],Carlist[playerid][h][cDrugs],Carlist[playerid][h][StandTime],
Kilometer[Carlist[playerid][h][CarID]]);
}
}
return 1;
}
public CreateTunedCar(playerid, CarKey1)
{
printf("ingarage=%i",Carlist[playerid][CarKey1][ingarage]);
if(IsPlayerConnected(playerid) && Carlist[playerid][CarKey1][Typ] != -1)
{
printf("ingarage=%i",Carlist[playerid][CarKey1][ingarage]);
if(Carlist[playerid][CarKey1][ingarage] == 1) return 1;
new carid = CreateVehicle(Carlist[playerid][CarKey1][Typ],Carlist[playerid][CarKey1][pos_x],Carlist[playerid][CarKey1][pos_y],Carlist[playerid][CarKey1][pos_z],Carlist[playerid][CarKey1][z_angle],-1,-1,-1);
Carlist[playerid][CarKey1][CarID] = carid;
printf("carid = %d", carid);
new string[50];
format(string, sizeof(string), "{FFFF00}E-RP-{21DD00}%d", carid);
printf("string=%s", string);
SetVehicleNumberPlate(carid,string);
Gas[carid] = Carlist[playerid][CarKey1][TankVolumen];
printf("Gas: %d", Gas[carid]);
Locked[carid] = Carlist[playerid][CarKey1][Lock];
printf("Locked: %d", Locked[carid]);
if(Carlist[playerid][CarKey1][Lock] == 1)
{
ForAllPlayers(i)
{
SetVehicleParamsForPlayer(carid,i,0,1);
}
}
printf("Vor components");
if(Carlist[playerid][CarKey1][mod1]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod1]); }
if(Carlist[playerid][CarKey1][mod2]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod2]); }
if(Carlist[playerid][CarKey1][mod3]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod3]); }
if(Carlist[playerid][CarKey1][mod4]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod4]); }
if(Carlist[playerid][CarKey1][mod5]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod5]); }
if(Carlist[playerid][CarKey1][mod6]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod6]); }
if(Carlist[playerid][CarKey1][mod7]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod7]); }
if(Carlist[playerid][CarKey1][mod8]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod8]); }
if(Carlist[playerid][CarKey1][mod9]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod9]); }
if(Carlist[playerid][CarKey1][mod10]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod10]); }
if(Carlist[playerid][CarKey1][mod11]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod11]); }
if(Carlist[playerid][CarKey1][mod12]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod12]); }
if(Carlist[playerid][CarKey1][mod13]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod13]); }
if(Carlist[playerid][CarKey1][mod14]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod14]); }
if(Carlist[playerid][CarKey1][mod15]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod15]); }
if(Carlist[playerid][CarKey1][mod16]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod16]); }
if(Carlist[playerid][CarKey1][mod17]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod17]); }
if(Carlist[playerid][CarKey1][Paintjob]!=-1) { ChangeVehiclePaintjob(carid,Carlist[playerid][CarKey1][Paintjob]); }
if(Carlist[playerid][CarKey1][Farbe1]!=-1) { ChangeVehicleColor(carid,Carlist[playerid][CarKey1][Farbe1],Carlist[playerid][CarKey1][Farbe2]); }
printf("Nach components");
for(new i; i<MaxVeh[playerid]; i++)
{
printf("i:%d", i);
if(Carlist[playerid][i][Neon]!=0)
{
printf("Neon: %d", Carlist[playerid][i][NeonType]);
switch(Carlist[playerid][i][NeonType])
{
case 0:AttachObjectToVehicle(CreateObject(18647,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18647,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 1:AttachObjectToVehicle(CreateObject(18648,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18648,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 2:AttachObjectToVehicle(CreateObject(18649,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18649,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 3:AttachObjectToVehicle(CreateObject(18650,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18650,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 4:AttachObjectToVehicle(CreateObject(18651,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18651,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 5:AttachObjectToVehicle(CreateObject(18652,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18652,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
}
}
}
printf("returning: %d", carid);
return carid;
}
printf("returning: error -1");
return -1;
}
[16:58:07] ingarage=0
[16:58:07] ingarage=0
[16:58:07] carid = 283
[16:58:07] string={FFFF00}E-RP-{21DD00}283
[16:58:07] Gas: 100
[16:58:07] Locked: 0
[16:58:07] Vor components
[16:58:07] Nach components
[16:58:07] i:0
[16:58:07] i:1
[16:58:07] i:2
[16:58:07] returning: 283
[16:58:07] OnPlayerDeath: message sent13
[16:58:12] [debug] Run time error 4: "Array index out of bounds"
[16:58:12] [debug] Accessing element at index 419 past array upper bound 44
[16:58:12] [debug] AMX backtrace:
[16:58:12] [debug] #0 000ab5b4 in public ocmdOnPlayerCommandText (0, 4248436) from irp.amx
[16:58:12] [debug] #1 native CallLocalFunction () from samp03svr
[16:58:12] [debug] #2 00002164 in public OnPlayerCommandText (0, 4248404) from irp.amx