@Jeffry
@xXBastianXx
undzwar der rang wird nicht von der mysql abgelesen und nicht in dem textdraw angezeigt
ich hoffe ihr könnt mir helfen
forward LOLTIMER(playerid);
public LOLTIMER(playerid)
{
new query[256],Get[206];
format(query,sizeof(query),"SELECT `rangname%i` FROM `gangrangs` WHERE `fID`='%i'",rang,id);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(Get);
mysql_free_result();
format(Get,sizeof(Get),"%s",rang);
PlayerTextDrawSetString(playerid,Rang2[playerid], Get);
return 1;
}
Rang wird von der mysql db abgelesen
- TimeLine
- 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
-
-
Haste mal n print-Debug gemacht, und geschaut ob der Wert wirklich geladen wird?
//Edit: Was machst n da? rang ist doch ein integer...wtf
format(Get,sizeof(Get),"%s",rang);
Lösche mal diese Zeile..das quatsch!Wenn ja, dann pack ans ende evtl nochmal:
PlayerTextDrawShow(playerid, Rang2[playerid]);
-
ja das soll den rangnamen auslesen
-
ja das soll den rangnamen auslesen
Schon klar..aber diese Format Zeile ist Müll...lösche Sie einfach, dann sollte das klappen
-
okey ich versuchs mal wenn ich zuhause bin melde mich dan spätestens morgen wieder
-
dann sollte das klappen
Das wage ich mal zu bezweifeln
format(query,sizeof(query),"SELECT `rangname%i` FROM `gangrangs` WHERE `fID`='%i'",rang,id);
Du nimmst hier die Variablen Rang und id aber du erstellst sie nirgendwo vorher
-
wo soll ich das erstellen ?
-
Na am besten davor, was möchtest du denn mit deinem Code erreichen?
-
im text draw soll der rang name stehen
-
Gut, dann gehen wir die Sache mal richtig an.
1.
Wie und von wo aus, wird LOLTIMER denn aufgerufen? Poste bitte den Code dazu.2.
Wo kommen "rang" und "id" her? Die sind im LOLTIMER nicht deklariert und müssen daher global deklariert sein.
Wie bekommen sie ihren Wert?Die Lösung müsste am Ende in etwa so aussehen, abhängig von deinen Variablenbezeichnungen eben:
forward LOLTIMER(playerid);
public LOLTIMER(playerid)
{
new query[128];
format(query,sizeof(query),"SELECT `rangname%i` FROM `gangrangs` WHERE `fID`='%i'",SpielerInfo[playerid][rang],SpielerInfo[playerid][frakID]);
mysql_query(query);
mysql_store_result();
mysql_fetch_row(query);
mysql_free_result();
PlayerTextDrawSetString(playerid,Rang2[playerid],query);
return 1;
}Wobei die Frage offen bleibt, warum das in einem Timer stehen soll.
-
-
damit der das aktull hält wenn man einen neuen rang bekommt sofort der neue rang name aufm textdraw erscheint
-
Das solltest du nicht per Timer machen, sondern die Funktion dort aufrufen, wo der Rang geändert wird.
Sonst spricht der Code ja ständig die Datenbank an. Bei mehreren Spielern wird das ziemlich ressourcenlastig. -
wie soll ich das den machen und kannst du mir bei diesem problem helfen ?
error 017: undefined symbol "mysql_function_query -
wie soll ich das den machen
Dort wo sich der Rang ändert:
LOLTIMER(playerid);
Dann wird die Funktion nur dann einmal aufgerufen, wenn sie es soll. Und beim Login eventuell.kannst du mir bei diesem problem helfen ?
Die Funktion existiert bei dir nicht. Nutze mysql_query und lese das Ergebnis danach aus, wie im Code oben.
-
wie kann ich das ressourcen schonend machen ? ein beispiel wäre gut
-
Ein Beispiel zu was?
-
damit das nicht so ressourcenlastig. ist
-
Zu was denn?
Zu dem Rangbezeichner?Das habe ich dir ja geschrieben.
Dort, wo sich der Rang ändert, das hier einfügen:
LOLTIMER(playerid);Den SetTimer zu LOLTIMER komplett entfernen. Somit wird das Textdraw nur dann geändert, wenn es auch geändert werden muss.
-
breadfish.de
Hat das Thema geschlossen.