Hallo Brotfische,
Ich habe mir ein kleines System geschrieben das man als Administrator Ingame Bankautomaten anlegen kann. Das erstellen der Bankautomaten klappt wunderbar, doch wenn die Position bei einem Bankautomaten geändern werden, dann werden die alten Positionen wieder geladen, das bedeute diese werden darnicht geupdatet. Leider finde ich den Fehler nicht und hoffe nun auf eure Hilfe.
Code:
Befehl:
C
ocmd:editatm(playerid,params[])
{
for(new i = 1; i < MAX_ATMS; i++)
{
if(!IsPlayerInRangeOfPoint(playerid,3.0,atmInfo[i][atm_x],atmInfo[i][atm_y],atmInfo[i][atm_z]))continue;
AdminEditAtmID[playerid] = atmInfo[i][atm_id];
SendClientMessageEx(playerid,C_Error,"Atmid = %d",atmInfo[i][atm_id]);
AdminEditAtm[playerid] = atmInfo[i][atm_object];
atmInfo[i][atm_x]=0;
atmInfo[i][atm_y]=0;
atmInfo[i][atm_z]=0;
EditObject(playerid,AdminEditAtm[playerid]);
}
return 1;
}
Alles anzeigen
OnPlayerEditObject:
C
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ;
GetObjectPos(objectid, oldX, oldY, oldZ);
GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
if(!playerobject) // If this is a global object, move it for other players
{
if(!IsValidObject(objectid)) return;
MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
}
if(response == EDIT_RESPONSE_FINAL)
{
if(AdminEditAtm[playerid]!=0)
{
new query[256];
//format(query,sizeof(query),"INSERT INTO atm (x,y,z,money,disabled) VALUES ('%f','%f','%f','%d','%d') ",fX,fY,fZ,0,0);
format(query,sizeof(query),"UPDATE `atm` SET `x`='%f',`y`='%f',`z`='%f',`rx`='%f',`ry`='%f',`rz`='%f' WHERE `id`='%i'",fX,fY,fZ,fRotX,fRotY,fRotZ,AdminEditAtm[playerid]);
mysql_function_query(dbhandle,query,true,"SendQuery","");
mysql_format(dbhandle, query, 128, "SELECT * FROM atm WHERE id = %d",ExistATM);
mysql_function_query(dbhandle, query, true, "LoadATMS","d",ExistATM);
DestroyObject(AdminEditAtm[playerid]);
AdminEditAtm[playerid]=0;
SendClientMessageEx(playerid,COLOR_GREEN,"Wurde gespeichert. | AdminEditAtm = %d",AdminEditAtm[playerid]);
}
Alles anzeigen