Guten Morgen
Ich habe folgendes Problem;
Wenn ich Autos mit dem AdminBefehl oder auch Kaufe wird es richtig in die Datenbank gespeichert. Sobald ein Admin versucht das Auto mit dem entfernungsbefehl es zu löschen aus der Datenbank so wie vom server wird es nicht gelöscht:
Hier der Code dazu:
Code
Enum:
enum autoEnum{
id_x,
model,
besitzer,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
db_id
}
AutosOhneMotor:
new autosOhneMotor[] = {
481,
509,
510
};
new aInfo[999][autoEnum];
Spielerspeichern und Spieler zurücksetzen:
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
//Speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i',firma='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][firma],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
resetPlayer(playerid)
{
for(new i=0; i<sizeof(sInfo[]); i++)
{
sInfo[playerid][playerInfo:i]=0;
}
return 1;
}
Spieler beim Verlassen:
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
resetPlayer(playerid);
loadPlayerCars(playerid);
return 1;
}
Autosspeichern SpeichernInDatenbank Spielerautoerstellen:
public carSavedToDB(carid)
{
aInfo[carid][db_id]=cache_insert_id(dbhandle);
return 1;
}
saveCarToDB(playerid,carid)
{
new query[128];
format(query,sizeof(query),"INSERT INTO autos(besitzer,model,x,y,z,r) VALUES('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],aInfo[carid][model],aInfo[carid][c_x],aInfo[carid][c_y],aInfo[carid][c_z],aInfo[carid][c_r]);
mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
return 1;
}
createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
{
for(new i=0; i<sizeof(aInfo); i++)
{
if(aInfo[i][id_x]!=0)continue;
aInfo[i][besitzer]=sInfo[playerid][db_id];
aInfo[i][c_x] =x;
aInfo[i][c_y] =y;
aInfo[i][c_z] =z;
aInfo[i][c_r] =r;
aInfo[i][model] =modelid;
aInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
new string[128];
format(string,sizeof(string),"Das Auto aInfo[%i]wurde erstellt",i);
SendClientMessageToAll(duneklhelblau,string);
saveCarToDB(playerid,i);
return 1;
}
return 1;
}
Autoerstellen und Autoentfernen:
ocmd:autoentfernen(playerid, params[])
{
new vID = GetPlayerVehicleID(playerid);
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, hellgrün, "Du bist in kein Auto!");
for (new i = 0; i < sizeof(aInfo); i++)
{
if(vID == aInfo[i] [id_x])
{
if(!strcmp(aInfo[i][besitzer], SpielerName(playerid)))
{
new query[128];
format(query, sizeof(query), "DELETE FROM autos WHERE id='%i'",aInfo[i][db_id]);
mysql_function_query(dbhandle,query,false," "," ");
DestroyVehicle(aInfo[i][besitzer]);
aInfo[i] [id_x] = 0;
SendClientMessage(playerid, hellgrün, "Du hast dein Auto entfernt.");
return 1;
}
break;
}
}
return SendClientMessage(playerid, hellgrün, "Du sitzt nicht in deinem Auto!");
}
ocmd:erstelleautos(playerid,params[])
{
if(!isAdmin(playerid,6))
return SendClientMessage(playerid,rot,"Dein Adminrang ist nicht hochgenug!");
new mID,pID;
if(sscanf(params,"ui",pID,mID))
return SendClientMessage(playerid,duneklhelblau,"INFO: /erstelleautos [playerid][model]");
if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Falsche Modelid!");
new Float:xc,Float:yc,Float:zc,Float:rc;
GetPlayerPos(pID,xc,yc,zc);
GetPlayerFacingAngle(pID,rc);
createPlayerCar(pID,mID,xc,yc,zc,rc);
return 1;
}
Autosladen so wie Eigene Funktion:
getFreeCarID()
{
for(new i=0; i<sizeof(aInfo); i++)
{
if(aInfo[i][id_x]==0)return i;
}
return 0;
}
public OnPlayerCarsLoad(playerid)
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
new id=getFreeCarID();
aInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
aInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
aInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
aInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
aInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
aInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
aInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
aInfo[id][id_x]=CreateVehicle(aInfo[id][model],aInfo[id][c_x],aInfo[id][c_y],aInfo[id][c_z],aInfo[id][c_r],-1,-1,-1);
}
return 1;
}
loadPlayerCars(playerid)
{
new query[128];
format(query,sizeof(query),"SELECT * FROM autos WHERE besitzer='%i'",sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,true,"OnPlayerCarsLoad","i",playerid);
return 1;
}
Alles anzeigen
Ich hoffe man kann mir dabei weiterhelfen