Kannst dir auch PostgreSQL anschauen.
Hmm, was genau ist den anders als Mysql etc.?
Kannst dir auch PostgreSQL anschauen.
Hmm, was genau ist den anders als Mysql etc.?
Ich verstehe Kones schon gut! 3 Themen aufzumachen ist ganz einfach unnötig.
Ein Thema reicht, außerdem wird BlackAce nicht gesund wenn ihr ihm irgendein Geschenkt macht.
Ja, das ist mir bewusst.
Ich werde es morgen mal ausprobieren
Danke an alle die mir versucht haben zu helfen
Aww, mein Login / Register war mir R5
Campbell
Ist es vorteilhaft Sqlite zu benutzen? Und könnte ich damit ein Haussystem etc. abspeichern / laden?
Campbell
R5 sieht ja ganz einfach aus aber das mit BlueG R8 versteht ich nicht
Arbeite dich ein - man lernt nie aus aber man lernt auch nicht von heute auf morgen. Man sollte aber daran festhalten, immer mehr und neues zu entdecken. Schau dir also Tutorials an und arbeite dich ein. Datenbanken haben viele Vorteile im Vergleich zu Dateisystemen.
Okay, hast du für mich ein verständliches Tutorial, wie man ein Login / Register System mit MySql erstellen kann?
Ich hatte schon eins, aber da du ja gesagt hast das das mit dem mysql_GetInt etc. unvorteilhaft ist möchte ich es neu machen.
- Da fehlt ein for() in der ersten Funktion.
- Egal ob das Auto nun erstellt wird oder nicht, fc1 wird weiterhin hochgezählt (Ergebnis: 200 Autos wurden anscheinend erstellt).
- Diese mysql_GetFloat, mysql_GetInt, ... sind Schwachsinn und uneffizient. Verwende sie nicht!
- Schleifen mit fester Zahl zum Erstellen von Autos durch Datenbanken zu erstellen ist Blödsinn. Hole dir die Reihen aus der Datenbank und erstelle dann eine Schleife mit der Anzahl der Datensätze.
Danke für die Antwort, da ich aber ein Anfänger in Sachen MySql bin weiß ich nicht ganz genau was und wie ich jetzt vorgehen sollte?
Hallo,
Ich wollte mal ein paar Dinge in MySql ausprobieren, da ich eigentlich fast nie mit MySql arbeite und somit kein Plan davon habe
Also:
stock LoadFraktionCars()
{
new string[5],fc1;
{
for(new fc = 0; fc <200; fc++)
{
format(string,sizeof(string),"%d",fc);
FraktionsAutos[fc][FX] = mysql_GetFloat("frakcars", "PosX", "IDtoGet", string);
FraktionsAutos[fc][FY] = mysql_GetFloat("frakcars", "PosY", "IDtoGet", string);
FraktionsAutos[fc][FZ] = mysql_GetFloat("frakcars", "PosZ", "IDtoGet", string);
FraktionsAutos[fc][FA] = mysql_GetFloat("frakcars", "PosA", "IDtoGet", string);
FraktionsAutos[fc][fcolor1] = mysql_GetInt("frakcars", "fcolor1", "IDtoGet", string);
FraktionsAutos[fc][fcolor2] = mysql_GetInt("frakcars", "fcolor2", "IDtoGet", string);
FraktionsAutos[fc][Fraktion] = mysql_GetInt("frakcars", "Fraktion", "IDtoGet", string);
FraktionsAutos[fc][VehicleID] = mysql_GetInt("frakcars", "ModelID", "IDtoGet", string);
FraktionsAutos[fc][vehobj] = CreateVehicle(FraktionsAutos[fc][VehicleID],FraktionsAutos[fc][FX],FraktionsAutos[fc][FY],FraktionsAutos[fc][FZ],FraktionsAutos[fc][FA],FraktionsAutos[fc][fcolor1],FraktionsAutos[fc][fcolor2],-1);
fc1++;
}
}
return printf(" '%d' Fraktionsfahrzeug(e) wurden geladen & erstellt.",fc1);
}
stock SaveFraktionsCars()
{
new string[5];
for(new fc = 0; fc <200; fc++)
{
if(FraktionsAutos[fc][erstellt] == 0)continue;
if(FraktionsAutos[fc][VehicleID] >= 400 && FraktionsAutos[fc][VehicleID] <= 611)
{
format(string,sizeof(string),"%d",fc);
mysql_SetInt("frakcars", "ModelID",FraktionsAutos[fc][VehicleID], "IDtoGet", string);
mysql_SetFloat("frakcars", "PosX",FraktionsAutos[fc][FX], "IDtoGet", string);
mysql_SetFloat("frakcars", "PosY",FraktionsAutos[fc][FY], "IDtoGet", string);
mysql_SetFloat("frakcars", "PosZ",FraktionsAutos[fc][FZ], "IDtoGet", string);
mysql_SetFloat("frakcars", "PosA",FraktionsAutos[fc][FA], "IDtoGet", string);
mysql_SetInt("frakcars", "fcolor1",FraktionsAutos[fc][fcolor1], "IDtoGet", string);
mysql_SetInt("frakcars", "fcolor2",FraktionsAutos[fc][fcolor2], "IDtoGet", string);
mysql_SetInt("frakcars", "Fraktion",FraktionsAutos[fc][Fraktion], "IDtoGet", string);
}
}
return 1;
}
stock CreateFraktionsCar(fraktid,vehmodel,color1,color2,Float:x,Float:y,Float:z,Float:a)
{
for(new fc = 0; fc <200; fc++)
{
if(FraktionsAutos[fc][erstellt] == 1)continue;
FraktionsAutos[fc][erstellt] = 1;
FraktionsAutos[fc][FX] = x;
FraktionsAutos[fc][FY] = y;
FraktionsAutos[fc][FZ] = z;
FraktionsAutos[fc][FA] = a;
FraktionsAutos[fc][fcolor1] = color1;
FraktionsAutos[fc][fcolor2] = color2;
FraktionsAutos[fc][Fraktion] = fraktid;
FraktionsAutos[fc][VehicleID] = vehmodel;
FraktionsAutos[fc][vehobj] = CreateVehicle(vehmodel,x,y,z,a,color1,color2,-1);
return 1;
}
return 1;
}
Wenn ich meinen Server starte, steht dann schon im Serverlog folgendes:
[22:42:25] '200' Fraktionsfahrzeug(e) wurden geladen & erstellt.
Obwohl die Datenbank leer ist. Meine Datenbank sieht so aus:
Und wenn ich ein Auto InGame erstellt habe, wird es in MySql nicht gespeichert
Versuch mal Xfire
ganz oben bei includes new falseCount[MAX_PLAYERS];
bei OnPlayerDisconnect falseCount[playerid] = 0;
und dann wenn er falsch eingegeben hat falseCount[playerid]++;
und if(falseCount[playerid] == 3)return Kick(playerid);
hab ich grad gefunden
Ahh stimmt ich hab ja Whirlpool Hash der verbraucht ja ziemlich viel an Länge, ich teste kurz
//Edit,
Geht Danke
Manche Dinge sind englisch, werde im falschen Interior gespawnt...
Ist bei mir nicht so, muss an dir liegen
Hallo,
Ich hab ein Problem mit SqlLite. Ich hab noch nie mit SqlLite gearbeitet.
Ich wollte ein Login System machen aber er speichert nicht ab wenn man sich registriert:
stock Register(playerid,pw[])
{
new query[128];
format(query, sizeof(query), "INSERT INTO `Accounts` (`Name`, `Passwort`, `Geld`, `Adminlevel`, `Level`) VALUES('%s','%s','0', '0', '0')", SpielerName(playerid), pw);
db_query(Database,query);
SendClientMessage(playerid,Grün,"Du bist nun erfolgreich Registriert!");
return 1;
}
Hab den Benchmark mal gemacht, und bei mir war es 1070ms langsamer als format.
Wie du im Serverlog sehen kannst werden die Funktionen von MySql nicht geladen.
Wenn du Linux hast musst du hinter dem Plugin ein .so setzen
Nimm mal dieses Plugin: http://forum.sa-mp.com/showthread.php?t=249226
und poste dann den Serverlog