Hallo zusammen ich habe ein Dynamisches ATM System geschrieben nun hab ich aber das Problem..
der ATM wird ja dort erstellt wo ich stehe ..
Wie kann ich das mit diesem SAMP Editor machen es gibt ja sowas wo man InGame bewegen kann und dann
wenn man speichert die Position gespeichert wird allerdings habe ich mich noch nie mit der Funktion auseinandergesetzt
weil ich davon keine Ahnung habe würde mich sehr freuen wenn mir jemand dabei helfen könnte so sieht man sys bis jetzt aus:
Und das Label ..:: Bank Automat ::.. wird nicht angezeigt ATM wird aber erstellt und Speichert / Lädt auch will halt nur das wenn man
den Atm erstellt ihn noch z.B. mit /editatm an dem man ganz nah dran ist bearbeiten kann. und halt das das Label angezeigt wird.
Sowas meine ich:
ocmd:createatm(playerid, params[])
{
if(!isAdmin(playerid, 3))return
SendClientMessage(playerid, 0xC30000FF, "Dein Adminrang ist zu niedrig.");
new Float:xc, Float:yc, Float:zc;
GetPlayerPos(playerid, xc, yc, zc);
new id=getFreeAtmID();
aInfo[id][a_x]=xc;
aInfo[id][a_y]=yc;
aInfo[id][a_z]=zc;
updateAtm(id);
//In Datenbank abspeichern
new query[256];
format(query, sizeof(query),
"INSERT INTO atm (a_x, a_y, a_z, atmObjekt) VALUES ('%f', '%f', '%f', 2942)",
xc, yc, zc);
mysql_function_query(dbhandle, query, true, "OnATMCreated", "i", id);
return 1;
}
//ATM SYS:
enum atmEnum{
Float:a_x,
Float:a_y,
Float:a_z,
a_id,
Text3D:a_text,
atmObjekt
}
new aInfo[100][atmEnum];
public OnAtmsLoad()
{
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=getFreeAtmID();
aInfo[id][a_x]=cache_get_field_content_float(i, "a_x", dbhandle);
aInfo[id][a_y]=cache_get_field_content_float(i, "a_y", dbhandle);
aInfo[id][a_z]=cache_get_field_content_float(i, "a_z", dbhandle);
aInfo[id][a_id]=cache_get_field_content_int(i, "id", dbhandle);
updateAtm(id);
}
return 1;
}
updateAtm(id)
{
new string[128];
if(aInfo[id][a_text])
{
Delete3DTextLabel(aInfo[id][a_text]);
}
if(!strlen(aInfo[id][a_id]))
{
format(string,sizeof(string), "..:: Bank Automat ::..");
CreateObject(2942, aInfo[id][a_x], aInfo[id][a_y], aInfo[id][a_z], 0.0, 0.0, 96.0);
aInfo[id][a_text]=Create3DTextLabel(string, 0xFFA000FF, aInfo[id][a_x], aInfo[id][a_y], aInfo[id][a_z], 10, 0, 1);
}
else
{
format(string,sizeof(string), "..:: Bank Automat ::..");
CreateObject(2942, aInfo[id][a_x], aInfo[id][a_y], aInfo[id][a_z], 0.0, 0.0, 96.0);
aInfo[id][a_text]=Create3DTextLabel(string, 0xFFA000FF, aInfo[id][a_x], aInfo[id][a_y], aInfo[id][a_z], 10, 0, 1);
}
return 1;
}
public OnATMCreated(id)
{
aInfo[id][a_id]=cache_insert_id();
}
getFreeAtmID()
{
for(new i=0; i<sizeof(aInfo); i++)
{
if(aInfo[i][a_id]==0)return i;
}
return 0;
}
//ATMS laden:
new query2[128];
format(query2, sizeof(query2), "SELECT * FROM atm");
mysql_function_query(dbhandle, query2, true, "OnAtmsLoad", "");
So sieht der Code zurzeit aus