public Autoschadenspeichern()
{
new query[125];
for(new veh = 0; veh < MAX_VEHICLES;veh++)
{
if(!IsValidVehicle(veh))
{
GetVehicleHealth(AutoInfo[veh][Fahrzeugid],AutoInfo[veh][Schaden]);
format(query,sizeof(query),"UPDATE Autos SET Schaden = '%f' WHERE db_id= '%f'", AutoInfo[veh][Schaden],AutoInfo[veh] [db_id]);
mysql_function_query(dbhandle,query,false,"","");
}
}
return 1;
}
Beiträge von Blackshadowscript
-
-
es geht immer noch nicht
-
Der Schaden der Autos wird immer noch nicht in die Datenbank abgespeichert wodurch das Laden des Schadens auch nicht gehen wird.
So sieht mein AutoSystemEnum aus:
enum AutoSystemEnum{
Fahrzeugid,
Besitzer[MAX_PLAYER_NAME],
model,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
db_id,
Float:Schaden
}Speicherfunktion:
public Autoschadenspeichern()
{
new query[125];
for(new veh = 0; veh < MAX_VEHICLES;veh++)
{
if(!IsValidVehicle(veh))
{
GetVehicleHealth(AutoInfo[veh][Fahrzeugid],AutoInfo[veh][Schaden]);
format(query,sizeof(query),"UPDATE Autos SET Schaden = '%f' WHERE Shaden = '%f", AutoInfo[veh][Schaden],AutoInfo[veh] [Besitzer]);
mysql_function_query(dbhandle,query,false,"","");
}
}
return 1;
}
stock SetVehicleHeal(id) return SetVehicleHealth(AutoInfo[id][Fahrzeugid],AutoInfo[id][Schaden]);Laden der Fahrzeuge mit Schaden:
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;
}Es wird nichts gespeichert und wir auch in der Msysql.log so angezeigt:
-
enum AutoSystemEnum{
Fahrzeugid,
Besitzer[MAX_PLAYER_NAME],
model,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
db_id,
schaden float: ??
}Da ich Schaden in der db schon drin habe als nahmen
-
Kaito damit du es auch noch mal verstehst:
"Ich versuche mich grade an das speichern und laden des Schadens der Fahrzeuge" das heißt ich will es in meiner mysql_db abspeichern und auch wieder aus der db laden aber wenn er mir immer vorheült das die funktionen nicht deklariert wären was sie aber leider sind kann ich es vergessen.
-
Guten Morgen zusammen.
Ich versuche mich grade an das speichern und laden des Schadens der Fahrzeuge:
Ich habe die mit forward deklariert aber kommt immer noch Fehler:
forward Autoschadenspeichern();
forward Autoschadenladen(vID);hier von mein spielerlade-system:
forward AutoSpeichernPerDB(carid);
forward OnPlayerCarsLoad(playerid);getFreeCarID()
{
for(new i=0; i<sizeof(AutoInfo); i++)
{
if(AutoInfo[i][Fahrzeugid] == 0)return i;
}
return 0;
}
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;
}
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();
AutoInfo[id] [Besitzer]=cache_get_field_content_int(i,"Besitzer",dbhandle);
AutoInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
AutoInfo[id][c_x]=cache_get_field_content_float(i,"c_x",dbhandle);
AutoInfo[id][c_y]=cache_get_field_content_float(i,"c_y",dbhandle);
AutoInfo[id][c_z]=cache_get_field_content_float(i,"c_z",dbhandle);
AutoInfo[id][c_r]=cache_get_field_content_float(i,"c_r",dbhandle);
AutoInfo[id] [db_id]=cache_get_field_content_int(i,"id",dbhandle);
AutoInfo[id][Fahrzeugid]=CreateVehicle(AutoInfo[id][model],AutoInfo[id][c_x],AutoInfo[id][c_y],AutoInfo[id][c_z],AutoInfo[id][c_r],-1,-1,-1);
}
return 1;
}Nun will ich es aber auf
Autoschadenspeichern()
{
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 Float:CarHealth[MAX_VEHICLES];
GetVehicleHealth(GetPlayerVehicleID(playerid),CarHealth[GetPlayerVehicleID(playerid)]);
new query[125];
format(query,sizeof(query),"UPDATE Autos Schaden = '%f'",CarHealth[GetPlayerVehicleID(playerid)]);
return 1;
}
Autoschadenladen(vID)
{
new result[15];
Deine_content_Version_von_deiner_MySQL_Funktion(0,"Health",result);
CarHealth[0] = floatstr(result);
return 1;
}so wie ich es jetzt gemacht habe aber ich komm einfach nicht weiter.
Ich weiss einfach auch nicht was ich da machen muss. selbst in youtube forum gibt es kein tutorial dazu und somit bin ich rat los und wende mich an breadfish.
Jeffry bitte hier melden
-
Es kommt einfach kein Error Jeffry. Das Auto wird einfach nicht geparkt und somit funktoniert:
Autosparken:
cmd:autoparken(playerid, params[])
{
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
GetVehicleZAngle(vID,AutoInfo[i][c_r]);
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
printf("query: %s", query);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}
return 1;
} -
so geht es leider nicht bekomme nur errors
-
ocmd:autoparken(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:r;
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i] [Besitzer], SpielerName(playerid)))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
GetVehiclePos(AutoInfo[i][Fahrzeugid], AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
GetVehicleZAngle(AutoInfo[i] [Fahrzeugid],AutoInfo[i][c_r]);
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
AutoInfo[i][c_x] = x;
AutoInfo[i][c_y] = y;
AutoInfo[i][c_z] = z;
AutoInfo[i][c_r] = r;
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}der will einfach das auto nicht parken
-
auszug aus der MYSQL.log datei:
SQL
Alles anzeigen[20:44:23] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Besitzer", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Besitzer", data: "0" [20:44:23] [DEBUG] cache_get_field_content_int - row: 0, field_name: "model", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "model", data: "560" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_x", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_x", data: "368.143" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_y", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_y", data: "-2030.62" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_z", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_z", data: "7.67188" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_r", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_r", data: "340.635" [20:44:23] [DEBUG] cache_get_field_content_int - row: 0, field_name: "id", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "id", data: "81" [20:44:23] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called [20:44:26] [DEBUG] mysql_close - connection: 1 [20:44:26] [DEBUG] CMySQLConnection::Disconnect - connection was closed [20:44:26] [DEBUG] CMySQLHandle::~CMySQLHandle - deconstructor called
und das stimmt nicht mit 368.143 der cordinate weil ich habe ja auto wo anders geparkt aber das wird nicht gemacht
-
SQL
Alles anzeigen[20:44:23] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Besitzer", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Besitzer", data: "0" [20:44:23] [DEBUG] cache_get_field_content_int - row: 0, field_name: "model", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "model", data: "560" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_x", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_x", data: "368.143" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_y", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_y", data: "-2030.62" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_z", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_z", data: "7.67188" [20:44:23] [DEBUG] cache_get_field_content_float - row: 0, field_name: "c_r", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "c_r", data: "340.635" [20:44:23] [DEBUG] cache_get_field_content_int - row: 0, field_name: "id", connection: 1 [20:44:23] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "id", data: "81" [20:44:23] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called [20:44:26] [DEBUG] mysql_close - connection: 1 [20:44:26] [DEBUG] CMySQLConnection::Disconnect - connection was closed [20:44:26] [DEBUG] CMySQLHandle::~CMySQLHandle - deconstructor called
ich frage mich nur wieso der da ein fehler anzeigt
-
die db_id ist von der db. ich habe es auch mit id versucht geht auch nicht. ich kann kein auto parken
-
Pascal mit dein WHERE db_id kann ich jetzt garnicht helfen wenn ich nicht weiss woher du das jetzt gezogen hast und woher soll ich nun wissen was du meinst
-
autos werden nicht gepakt und ich weiss nicht wo ich den fehler gemacht haben soll:
ocmd:autoparken(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:r;
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i] [Besitzer], SpielerName(playerid)))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
GetVehiclePos(AutoInfo[i][Fahrzeugid], AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
GetVehicleZAngle(AutoInfo[i] [Fahrzeugid],AutoInfo[i][c_r]);
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
AutoInfo[i][c_x] = x;
AutoInfo[i][c_y] = y;
AutoInfo[i][c_z] = z;
AutoInfo[i][c_r] = r;
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE db_id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}
return SendClientMessage(playerid, dunkelgrün, "Du besitzt kein Auto!"); -
ocmd:parken(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:r;
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i] [Besitzer], SpielerName(playerid))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
GetVehiclePos(AutoInfo[i][Fahrzeugid], x, y, z);
GetVehicleZAngle(AutoInfo[i] [Fahrzeugid],AutoInfo[i][c_r]);
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
AutoInfo[i][c_x] = x;
AutoInfo[i][c_y] = y;
AutoInfo[i][c_z] = z;
AutoInfo[i][c_r] = r;
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE db_id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}
return SendClientMessage(playerid, dunkelgrün, "Du besitzt kein Auto!");
}ocmd-befehl-fehlercod:
lernen.p(484) : error 001: expected token: ")", but found "{" -
Hier der ganze befehl:
ocmd:parken(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:r;
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i] [Besitzer], SpielerName(playerid))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
GetVehiclePos(AutoInfo[i][Fahrzeugid], x, y, z);
GetVehicleZAngle(AutoInfo[i] [Fahrzeugid],AutoInfo[i][c_r]);
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
AutoInfo[i][c_x] = x;
AutoInfo[i][c_y] = y;
AutoInfo[i][c_z] = z;
AutoInfo[i][c_r] = r;
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE db_id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}
return SendClientMessage(playerid, dunkelgrün, "Du besitzt kein Auto!");
}Fehler code bezieht sich auf ocmd-befehl:
lernen.p(483) : error 017: undefined symbol "SpielerName" -
Hier mein AutoEnum
enum AutoSystemEnum{
Fahrzeugid,
Besitzer[MAX_PLAYER_NAME],
model,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
db_id
}
ocmd:parken(playerid, params[])
{
new Float:x, Float:y, Float:z, Float:r;
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i] [Besitzer],MAX_PLAYER_NAME(playerid));
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
GetVehiclePos(AutoInfo[i][Fahrzeugid], x, y, z);
GetVehicleZAngle(AutoInfo[i] [Fahrzeugid],AutoInfo[i][c_r]);
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
AutoInfo[i][c_x] = x;
AutoInfo[i][c_y] = y;
AutoInfo[i][c_z] = z;
AutoInfo[i][c_r] = r;
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE db_id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}
return SendClientMessage(playerid, dunkelgrün, "Du besitzt kein Auto!");
}geht nicht.
Der fehler code gehört zu den ocmd-befehl:
lernen.p(483) : error 029: invalid expression, assumed zero
lernen.p(483) : warning 215: expression has no effect
lernen.p(483) : error 001: expected token: ";", but found ")"
lernen.p(483) : error 029: invalid expression, assumed zero
lernen.p(483) : fatal error 107: too many error messages on one line -
das tutorial brinkt mir ja nichts wenn es für fraktion sind
-
Auto wird nicht an der neuen Position geparkt
-
Mein AutoEnum:
enum AutoSystemEnum{
Fahrzeugid,
Besitzer[MAX_PLAYER_NAME],
model,
Float:c_x,
Float:c_y,
Float:c_z,
Float:c_r,
db_idMir geht es darum ich will ein befehl mit ocmd machen