Hallo Com ich wollte mal fragen wie ich ein Bankauszug system mache ich habe schon das ein Spieler Ein/aus Zahlen kann überweisen und Kontostand überprüfen kann und jetze will ich Wissen wie kann ich das machen,
dass man /atm machen kann sich ein Bank auszug lösen kann und da die letzten 10 Aktivitäten stehen z.b
22.01.2015: 10000$ ausgezahlt am Bankautomarten Fahrschule.
23.01.2015: 5000$ an Jeffry überwiesen.
und das im Dialog anzeigen lassen aber wie ?
Bank Auszug System
- reaL.
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Du speicherst jede Aktivität in einer Datei/Datenbank, und lässt die letzten 10 auslesen ?
Speichern & Laden, mehr ist des nichtZeig mir mal wie Du des angehen würdest ;b
-
@Paradoxon:
Oki danke erstmal
Kann man das irgendwie machen
Das wenn die 10 voll sind und kann wd was macht das 1 Gelöscht wird ? Das die Datenbank nicht so voll wird -
Wenn die Auszüge > 9 sind dann den ältesten Bankauszug anhand des Timestamps löschen, dann kommst du nie über 10. Du musst aber die Abfrage überall dort machen wenn du einen Kontoauszug bzw. eine Aktion in die Datenbank einträgst.
-
Ja, das kannst du machen.
Arbeite dazu mit einer Spielervariable, die du bei jeder Transaktion um eins erhöhst, also beispielsweise:
SetPVarInt(playerid, "TransaktionID", GetPVarInt(playerid, "TransaktionID") + 1);Dann fragst du beim speichern in die Datenbank ab, ob das größer als 10 ist, falls ja machst du ein Update, ansonsten ein Insert.
new id = GetPVarInt(playerid, "TransaktionID")-1;
if(id >= 10)
{
format(query, sizeof(query), "UPDATE tabelle SET datum = '%s', empfaenger = '%s' WHERE id = '%d' and name = '%s'", datum, empf, (id%10)+1, SpielerName(playerid));
//Das id%10 ist Modulo 10, also nur Werte zwischen 1 und 10.
}
else
{
format(query, sizeof(query), "INSERT INTO tabelle (id, datum, empfaenger, name) VALUES ('%d', '%s', '%s', '%s')", id+1, datum, empf, SpielerName(playerid));
}Alternativ kannst du es auch so machen, dass du immer weiter hoch zählst und die löschst, die älter als die 10 neusten sind:
new id = GetPVarInt(playerid, "TransaktionID");
format(query, sizeof(query), "DELETE FROM tabelle WHERE id <= '%d' and name = '%s'", id-10, SpielerName(playerid));
format(query, sizeof(query), "INSERT INTO tabelle (id, datum, empfaenger, name) VALUES ('%d', '%s', '%s', '%s')", id+1, datum, empf, SpielerName(playerid));
Ist eben nicht ganz so performant, das macht hier aber keinen Unterschied. -
Bluescreen:
Jeffry:
Danke falls es Probleme gibt melde ich mich wieder -
-
Und wie würdet ihr sie Tabelle erstellen ?
DB Id | String | Ort | Datum
1 | 5000$ vom Konto abgehoben | Bank Los Santos |24.01.2015
So ?Noch 2 Fragen
Gibt es ein Gutes Tutorial wie ich Frak Cars in einer Datenbank erstelle ?
Gibt es ein Gutes Tutorial wie ich eine Fraktion mit Eimer Datenbank erstelle ? -
Der Name ist eben wichtig, oder alternativ die Datenbank ID des Spielers. So dass du eben die Transaktion einem Spieler zuordnen kannst.Generell könntest du es auch anders machen:
Daraus könntest du dann flexibel den String erstellen.Zwecks der Tutorials: Mir wäre kein wirklich gutes bekannt.
-
Datum würde ich in UNIXTIME speichern, dann brauchst du dir nicht alles so umständlich machen.
-
-
Oke ich werde es am Pc Probieren
1 Frage
Wenn ich Frak Cars erstellen will mit einer Datenbank brauche ich ja ein Enum wo das enthalten sein mussFID (Frakid)
X
Y
Z
R
Farbe 1
Farbe 2Brauche ich nochwas ?
Genauso muss ich die Datenbank erstellen ?
Und dann bei ObGameModeInit -
Ja. Und ja, es wäre sinnvoll wenn die Datenbank gleich aussieht.
Laden musst du die Daten aus der Datenbank natürliche. -
-
Was und jetzt? Was willst du denn machen?
Hast du dir das Wiki zu deinem MySQL Plugin mal angeschaut? Das beantwortet eigentlich 90% aller Fragen. -
Wie erstelle ich jetze die Cars am Besten ?
-
Hier hast du mal einen Anhaltspunkt:
http://pastebin.com/rivx00rgSchau dir das Save- und LoadDynamicVehicles an, nach diesem Prinzip musst du es machen.
Wenn du das R39-2 verwendest sieht es natürlich anders aus, da musst du dann mit den cache-Funktionen arbeiten. -
Jeffry:
also ich habe die Cars vom Spieler so erstellt
und dann am besten einfach ein befehl machen und dort hinparken und das dann machen das es an dem ort in die Tabelle eingetragen wird ?
und dann halt wie die Player Cars laden/speichern ?createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
{
for(new i=0; i<sizeof(cInfo); i++)
{
new string[128];
if(cInfo[i][id_x]!=0)continue;
cInfo[i][besitzer]=sInfo[playerid][db_id];
cInfo[i][c_x]=x;
cInfo[i][c_y]=y;
cInfo[i][c_z]=z;
cInfo[i][c_r]=r;
cInfo[i][model]=modelid;
cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
tank[cInfo[i][id_x]] = 100;
format(string,sizeof(string),"%s",getPlayerName(playerid));
SetVehicleNumberPlate(cInfo[i][id_x],string);
SetVehicleParamsEx(cInfo[i][id_x],0,0,0,1,0,0,0);
saveCarToDB(playerid,i);
new query[256];
format(query,sizeof(query),"UPDATE autos SET Kennzeichen='%s' WHERE id='%i'",cInfo[i][ckz],cInfo[i][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
return 1;
}/edit oder am Besten für jede Fraktion eine Tabelle nach dem Prinzip erstellen ?
-
Das Laden, Speichern und Erstellen kannst du analog zu den PlayerCars machen, ja.
Du machst für jede Fraktion eine Zeile in der Tabelle, nicht für jede Fraktion eine eigene Tabelle, das wäre nicht gut.Generell kannst du es genau gleich aufbauen wie das PlayerCars-System, nur eben mit anderen Werten und Funktionen.
-
-
Wenn du dir die Daten in der Tabelle anschaust (zum Beispiel bei den Fahrzeugen), dann hat jedes Fahrzeuge eine Zeile in der Tabelle. Das meinte ich.
Weil du ja gefragt hast ob es besser wäre für jede Fraktion eine eigene Tabelle zu erstellen. Nein, alles in eine Tabelle.