Im Serverpack auf sa-mp.com ist kein Plugin enthalten im plugin Ordner, wird keins mehr mit R7 benötigt?
Was meinst du damit genau ?
LG
Im Serverpack auf sa-mp.com ist kein Plugin enthalten im plugin Ordner, wird keins mehr mit R7 benötigt?
Was meinst du damit genau ?
LG
Im Serverpack auf sa-mp.com ist kein Plugin enthalten im plugin Ordner, wird keins mehr mit R7 benötigt?
mysql_function_query(handle,"SELECT ... FROM table ...'",true,"QueryFinished","si","Logan_Adams","playerid");
Hier oben wird playerid in "" gesetzt.
mysql_function_query(dbhandle,query,true,"OnPlayerCheck","d",playerid);
Hier unten nicht, hat das irgendeinen Grund bzw. ist das egal?
@GreenG:
Danke, dass du mich darauf aufmerksam gemacht hast,
das war ein Fehler, darf natürlich nicht in Anführungszeichen stehen.
Ist geändert ...
LG
Hallo, ne frage.
Ich will meine Vehicles laden.
Bei den alten versionen war das ja so das man so gemacht hat um durch alle daten zu gehen.
if(mysql_num_rows() > 0)
{
while(mysql_fetch_row(String))
{
Passiert das jetzt automatisch?
Wenn ja müsset das dann ja so seon oder?
stock LoadVehicles()
{
new query[128];
format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE `VehicleType` = '%d'", -1);
mysql_function_query(SQLHandle, query, true, "OnLoadVehicles", " ");
}
forward OnLoadVehicles();
public OnLoadVehicles()
{
Vehicles[VehicleCounter][fvID] = cache_get_row_int(0, 0, SQLHandle);
Vehicles[VehicleCounter][fvModel] = cache_get_row_int(0, 1, SQLHandle);
Vehicles[VehicleCounter][fvX] = cache_get_row_float(0, 2, SQLHandle);
Vehicles[VehicleCounter][fvY] = cache_get_row_float(0, 3, SQLHandle);
Vehicles[VehicleCounter][fvZ] = cache_get_row_float(0, 4, SQLHandle);
Vehicles[VehicleCounter][fvA] = cache_get_row_float(0, 5, SQLHandle);
...
cache_get_row(0, 12, Vehicles[VehicleCounter][fvBesitzer], SQLHandle, MAX_PLAYER_NAME);
...
VehicleCounter++
}
Danke für die hilfe.
Dafür benötigst du eine schleife hab das auf der ersten Seite schon gepostet
cache_get_data(rows, fields);
new i;
for(;i < rows;++i){
cache_get_row(i, 0, ....);
cache_get_row(i, 1, ....);
}
cache_get_row
kannst du durch die neuen funktionen ersetzen du musst für den ersten parameter das i setzen dies ist für die einträge
die werten mit dem query aus der datenbank herraus gefiltert
//edit vergess nicht ein return 1; am ende zu setzen das signalisiert dem plugin cache leeren.
Alles anzeigenDafür benötigst du eine schleife hab das auf der ersten Seite schon gepostet
cache_get_data(rows, fields);
new i;
for(;i < rows;++i){
cache_get_row(i, 0, ....);
cache_get_row(i, 1, ....);
}
cache_get_row
kannst du durch die neuen funktionen ersetzen du musst für den ersten parameter das i setzen dies ist für die einträge
die werten mit dem query aus der datenbank herraus gefiltert
hatte ich mir schon gedacht,
super danke dir
Ich habe mal das Tutorial auf den aktuellen Stand der Dinge gebracht.
Da bei der R8 2 neue Funktionen dazu gekommen sind, ist auch eine Erklärung dieser Funktionen im Tutorial vorzufinden.
Die neuen Funktionen wurden entsprechend markiert.
Danke dir! Super Tutorial
Edit:
Kleiner Fehler
So muss das aussehen bei der neuen Funktion mit Float:
public ...... { //Das entsprechende Callback
new Float:speicher;//Variable um die Gleitkommazahl zu speichern
speicher = cache_get_row_float(0,5); //Holt uns die Daten von jetzt z.B 'LastX' (natürlich muss der Index wieder stimmen)
printf("LastX-Koordinate: %f",speicher); //Ausgabe, aber dieses Mal ist keine Konvertierung nötig
}
grade erst bemerkt dass es so ein Tutorial gibt, werde damit wohl demnächst mein DT_DynamicCar updaten um den Leuten Mysql_strickenKid BluG R6 oder früher und R/ anzubieten.
grade erst bemerkt dass es so ein Tutorial gibt, werde damit wohl demnächst mein DT_DynamicCar updaten um den Leuten Mysql_strickenKid BluG R6 oder früher und R/ anzubieten.
Freut mich natürlich, wenn dann jmd. auch auf diese "Methoden" bzw. threaded Querys "umsteigt",so dass eine effektivere Benutzung
von MySQL möglich ist und man auch den MySQL Server (bzw. generell den SAMP Server) zu entlasten.
LG
@L0g4n:
Jemand ne idee, warum BluG's MYSQL Plugin R7 nicht den gesammten feldinhalt herausgibst.
hier wie ich auslese:
new Anzahl[128];
cache_get_row(0, 3, Anzahl);
print(Anzahl);
hier der Inhalt des Feldes:
1|1|1|1|1|1|1|1
hier die Ausgabe:
1|1
Also am Plugin kann es eigentlich nicht liegen, da eigentlich bei mir alles immer vollständig ausgegeben wird.
Kann es sein, dass du eine neuere Version als R7 verwendest ?
Muss ich nochmal schuaen, da der Server nicht von mir selbst ist.
Gutes Tutorial, mir sind noch ein paar kleine Fehler aufgefallen:
sscanf(store,"p<|>s[24]s[20],s[30]",pName,Fraktion,irgendeinstring)
Da sollte kein Komma zwischen s[20] und s[30] sein.
//Oberer Teil ist wieder weggelassen
//Natürlich muss unten stehender Code in ein Callback
new store[24];
cache_get_field_content(0,"Name","store"); //Holen uns Daten aus "Name" und speichern in "store"
printf("Name: %s",store); //Ausgeben des Wertes in der Konsole
Da steht die Variable bei cache_get_field_content in Anführungszeichen.
Verbesserungsvorschläge:
Edit:
So ich habe mal noch ein paar Erklärungen zu den Funktionen hinzugefügt, die dazu gekommen sind (cache_get_row_int,cache_get_row_float,
cache_get_field_content_int und cache_get_field_content_float).
Ich habe die R20 (aktuelle Version) ausprobiert und diese funktioniert genauso gut, jedoch muss man bei den Cachefunktionen explizit manuell die
max length angeben, sonst wird nämlich einfach nichts in eure Variablen geladen (Siehe dieser Post).
maddinat0r: Ich kann leider nicht mehr cache_set_active,cache_save, etc. hinzufügen, da mein Post die maximale Länge eines Postes erreicht hat (20.000 Zeichen).
Kann ein Moderator da man nicht irgendwas machen, das ich mehr Zeichen verwenden kann ?
LG
Also ich hab da eine Frage.
Hier bei
mysql_function_query(handle,"SELECT * From accounts",true,"LoadPlayers","");
Bei SELECT Anfragen sollte ja der Cache auf true sein, das verstehe ich. Muss man dann immer einen Public angeben wie hier im Beispiel LoadPlayers ?
Ehmm lol? ;D Gut für Anfänger!
Gutes Tutorial! Herzlichen glückwunsch! du Bekommst
Eine Gute Punktzahl von BrotFische Persönlich XD Spaß also
10/10 BrotFische Punkten
Also ich hab da eine Frage.
Hier bei
mysql_function_query(handle,"SELECT * From accounts",true,"LoadPlayers","");
Bei SELECT Anfragen sollte ja der Cache auf true sein, das verstehe ich. Muss man dann immer einen Public angeben wie hier im Beispiel LoadPlayers ?
Ja,denn r7 erlaubt nur noch die Threaded Methode.
Zitat* = R7 (supports only threaded scripts)
Erst wenn LoadPlayers() aufgerufen wurde, ist das Ergebnis der SQL Abfrage ( "SELECT * From accounts" ) fertig abgearbeitet.
//Edit:
//Edit2:
Damit ich nicht immer neue Funktionen anlegen muss,lass es es immer über OnQueryFinish verarbeitet.
Ist bei r7 vorhanden:
#define mysql_query(%1,%2,%3,%4) \
mysql_function_query(%4, %1, false, "OnQueryFinish", "siii", %1, %2, %3, %4)
Die Reihenfolge der Parameter muss entsprechend angepasst werden.