Die TextDraws zum Beispiel als PlayerTextDraws erstellen, also nicht für jedes Auto eins, sondern für jeden Spieler eins, das bei OnPlayerDisconnect wieder entfernt wird.
Mit Zeilenumbrüchen arbeiten, anstatt zehn TextDraws untereinander zu setzen
Beiträge von Jeffry
-
-
-
Das weiß ich nicht ob das geht, ich habe es bis jetzt in phpMyAdmin immer über oben beschriebene Methode gemacht, das reicht mir eigentlich voll aus.
Solltest du vielleicht besser hier fragen, ob man das irgendwie sehen kann: http://www.heidisql.com/forum.php -
if(Fahrzeug[jv][Job] == Spieler[playerid][pJob]))
zu:
if(Fahrzeug[jv][Job] == Spieler[playerid][pJob])Da war eine Klammer zu viel.
Nächstes mal bitte gleich alle Infos auf einmal posten, dann geht's schneller. -
Das liegt daran, dass \n nur einen Character darstellt. Du wirst es also in deinem Editor nie wirklich korrekt sehen können. Um es trotzdem editieren zu können, nutze diesen Trick:
In deiner Datenbank sieht das ganze so aus:ZitatDieser Zeilenumbruch~wird nun beachtet.
Code:
for(new i=0; i<strlen(string); i++) if(string[i] == '~') string[i] = '\n';
ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Info",string,"Schließen","");string = der Wert aus der Datenbankspalte in der der Text steht.
-
Und welche Zeile in deinem Code oben (Zeilennummer) ist die 37050?
-
Welcher Error?
Welche Zeile? (Bitte markieren, oder mit "[pwn=ZEILENANGABE" arbeiten. -
Nein, weil das nicht der ganze Code ist der debuggt werden musst, sondern nur ein Teil. In dem Fall macht das wenig Sinn.
Ich werde mir den Code später anschauen, da ich noch an was anderem arbeite. Ich melde mich dann. -
Poste dein OnPlayerDisconnect und den Befehl mit dem du dem Spieler das Geld gibst.
-
Ja.
Entweder hier, oder in PN. Wenn du es nicht öffentlich haben willst in PN. Ich fange damit nichts an, weil ich einen eigenen Server habe, da brauche ich deinen Code nicht. -
Also so wird das nichts.
http://www.pastebin.com => Setze deinen ganzen Code dort rein und poste den Link hier. Wenn du es nicht öffentlich haben willst, kannst es mir meinetwegen auch in PN schicken, dann schaue ich es mir später genauers an. -
format(str1, sizeof(str1), "{66FFFF}Auto-Führerschein: {FFFFFF}%s.\n{66FFFF}Fluglizenz: {FFFFFF}%s.\n{66FFFF}Segelschein: {FFFFFF}%s.\n{66FFFF}Angelschein: {FFFFFF}%s.\n{66FFFF}Waffenschein: {FFFFFF}%s.\n{66FFFF}Motorrad-Führerschein: {FFFFFF}%s.\n{66FFFF} LKW: {FFFFFF}%s",text1,text3,text4,text5,text6,text7,text8,[AutoPunkte],[BikePunkte],[LKWPunkte]");
Ich nehme an das sind Spieler-Statistiken, die AutoPunkte etc.
Also mach es so:
format(str1, sizeof(str1), "{66FFFF}Auto-Führerschein: {FFFFFF}%s.\n{66FFFF}Fluglizenz: {FFFFFF}%s.\n{66FFFF}Segelschein: {FFFFFF}%s.\n{66FFFF}Angelschein: {FFFFFF}%s.\n{66FFFF}Waffenschein: {FFFFFF}%s.\n{66FFFF}Motorrad-Führerschein: {FFFFFF}%s.\n{66FFFF} LKW: {FFFFFF}%s",text1,text3,text4,text5,text6,text7,text8,Spieler[playerid][AutoPunkte],Spieler[playerid][BikePunkte],Spieler[playerid][LKWPunkte]"); -
Nein macht er nicht, Passwort ist ja wenn er es nicht mit inputtext formatiert leer.. mysql_escape_string ist ein Schutz gegen MySQL Injektion
Klar macht er es.
mysql_escape_string(inputtext,passwort,dbhandle);
Hier wird der Variable "passwort" der Wert von "inputtext" zugeweisen, nachdem er überprüft worden ist. -
Du hast viel zu viele TextDraws.
Das Limit liegt bei 2048 http://wiki.sa-mp.com/wiki/LimitsDu erstellst (wenn MAX_VEHICLES noch auf 2000 steht) alleine in diesem Code den du gepostet hast 12001 TextDraws. Das sind knapp 10000 zu viel.
-
Also, das Dollar-Zeichen hast du ja nicht selektierbar gemacht:
TextDrawSetSelectable(Shop[3], 0);
Falls man es auswählen können soll, dann musst du das zu 1 setzen.Bei dem Premium-Schriftzug ist es genau andersherum. Dort hast du es auf 1, also man kann es auswählen.
Außerdem solltest du bei dem Premium Schriftzug TextDrawTextSize nutzen, falls du es selektierbar haben willst.Ich rate dir, mach erst mal die Schriftzüge aus dem Code raus, und teste es dann (natürlich auch bei der clickedid die Zahlen ändern!). Dann sollte es ohne Probleme klappen. Dann fügst du die Schriftzüge unselektierbar wieder ein, mit TextDrawTextSize beschränkt.
-
An dem geposteten Code liegt es nicht, da steht ja weder was von SpawnPlayer noch von SetPlayerPos. Es wäre interessant zu wissen, ob erst die Nachricht kommt, dass das Passwort falsch ist, oder ob er erst gespawnt wird. Füge da jeweils mal einen print ein (bei der Nachricht) und bei OnPlayerSpawn. Welcher der prints kommt zuerst?
Außerdem: Nutzt du Filterscripts? Wenn ja, passiert der Fehler auch, wenn du die aus dem Server nimmst?
Wenn du den Code debuggen könntest wäre die ganze Sache einfacher. Versuch es doch mal, bei allen Teilen vom Login und vom Spawn prints einzufügen (einfach "print("1");", dann paar Zeilen weiter print 2, usw...).
-
Genau das.
Füge das hier unter deinen Includes ein:
#pragma dynamic 300000Die Meldung sollte dann weg sein. Wenn nicht, erhöhe die Zahl etwas.
Dann sollte auch der Code funktionieren.Übrigens, 4000 als Länge ist für das relativ kurze Query etwas übertrieben. 1000 reichen da ewig. Etwas sparsamer umgehen mit den Bytes.
-
Hast du im Compiler-Fenster eine Meldung mit vielen Zahlen, wenn du den Code kompilierst?
-
Zitat
[22:45:44] [DEBUG] CMySQLQuery::Execute[()] - starting query execution
[22:45:44] [DEBUG] CMySQLQuery::Execute[()] - query was successfulLaut Log funktioniert es.
Sicher, dass du in der richtigen Datenbank schaust, ob es aktualisiert worden ist?Stimmt der Wert der ID als "0" mit dem in der Datenbank überein?
-
Schalte bitte den MySQL Debug Modus an und poste was im Log steht. Wie du das machst steht hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4.)
EDIT:
Gebannt steht auf 1 weil der Wert von
pInfo[playerid][gebannt],
auf 1 steht. Entweder das wurde falsch geladen, oder es steht so in der Datenbank, wenn der Spieler eingeloggt wird.