Guten Tag Com,
ich bin gerade dabei ein System zu schreiben, wo man Ingame Firmen erstellen kann. Diese sollen durch MySQL geladen und gespeichert werden. Nun habe ich leider keine Idee, wie ich diese speicher bzw. laden kann.
das System basiert auf dem Register & Loginsystem von maddin und nutzt daher folgendes zum speicher bzw. laden.
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}
stock mysql_GetString(Table[], Field[], Where[], Is[])
{
new query[128], Get[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
{
new query[128], Float:sqlfloat;
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
mysql_fetch_float(sqlfloat);
mysql_free_result();
return sqlfloat;
}
stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(To, To);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
stock mysql_CheckAccount(playerid)
{
new Query[128],Name[MAX_PLAYER_NAME],count;
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name, Name);
format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
mysql_query(Query);
mysql_store_result();
count = mysql_num_rows();
mysql_free_result();
return count;
}
stock mysql_ReturnPasswort(Name[])
{
new query[130], Get[130];
mysql_real_escape_string(Name, Name);
format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
return Get;
}
So, grundsätzlich habe ich ein Enum mit vorerst allen relevanten Daten erstellt.
#define MAX_FIRMEN 100
enum FirmenDaten
{
fID,
fBesitzer[64],
Float:fEntrancex,
Float:fEntrancey,
Float:fEntrancez,
Float:fExitx,
Float:fExity,
Float:fExitz,
fInt,
fArt,
fBank,
fOpen,
Text3D:flabel
}
new FirmenInfo[MAX_FIRMEN][FirmenDaten];
Damit sollten Ingame die Firmen erstellt werden. //Wird natürlich noch mit wichtigen Infos ausgeschmückt.
stock CreateFirma(playerid)
{
new query[256],Name[MAX_PLAYER_NAME];
new Tag, Monat, Jahr, Stunde, Minute;
getdate(Jahr,Monat,Tag); gettime(Stunde,Minute); GetPlayerName(playerid,Name,sizeof(Name));
mysql_real_escape_string(Name,Name);
format(query,sizeof(query),"INSERT INTO `firmen`(`Besitzer`) VALUES ('%s')",Name);
mysql_query(query);
return true;
}
Ich bitte nicht um eine komplett geschriebe Lösung sondern lediglich um Ansätze oder Hinweiße, sodass ich mit eurer Hilfe auf die Lösung komme und so noch etwas dazu lerne.
MfG
Edit: Fehler im stock CreateFirma behoben