Fehler bei format-Befehl

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
  • Hallo liebe com,


    habe ein Problem und zwar hab ich mir nen Befehl erstellt um die Mieter des Hauses in einer Liste anzeigen zu lassen:





    und das Public zu der mysql_function_query:


    Code
    new ShowTenands[MAX_PLAYERS][300];

    angezeigt bekomme ich folgenden fehler:


    Code
    C:\Users\Riagine\Desktop\GTA\GTA Server\gamemodes\invisible.pwn(324) : error 001: expected token: "]", but found "-identifier-"
    C:\Users\Riagine\Desktop\GTA\GTA Server\gamemodes\invisible.pwn(324) : warning 215: expression has no effect
    C:\Users\Riagine\Desktop\GTA\GTA Server\gamemodes\invisible.pwn(324) : error 001: expected token: ";", but found "]"
    C:\Users\Riagine\Desktop\GTA\GTA Server\gamemodes\invisible.pwn(324) : error 029: invalid expression, assumed zero
    C:\Users\Riagine\Desktop\GTA\GTA Server\gamemodes\invisible.pwn(324) : fatal error 107: too many error messages on one line

    die Zeile 324 ist in dem fall bei dem Public die format funktion in Zeile 7. allerdings komme ich nicht drauf wo der Fehler liegen soll.


    Vielen Dank schonmal für eure Hilfe

  • sizeof ShowTenands[playerid]

    Das hier ist dein Fehler :)


    Das müsste: sizeof(ShowTenans[]) heißen.


    Allerdings würde ich dir gerne auch ein paar Optimierungstipps geben, schau mal hier rein: Schneller & strukturierter skripten


    Gibt viele Möglichkeiten den unteren Teil extremst zu kürzen, hier mal eine trickige:


    C
    public OnUserLoadTenands(playerid,slot)
    {
    	new name[MAX_PLAYER_NAME];
    	cache_get_field_content(0,"username",name,dbhandle,sizeof name);
    	format(ShowTenands[playerid],sizeof ShowTenands[],"%s\nMieter %c: %s",ShowTenands[playerid],64+slot,name);
    	return 1;
    }

    %c macht aus einer Zahl, einen Character, nach der ASCII Tabelle: https://www.torsten-horn.de/techdocs/ascii.htm



    65 = A
    Dementsprechend sind B..C..D
    66,67,68, also immer 64+slot :)


    //Edit: Gerade gesehn, kann ja nur einen Slot geben ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Kaliber ()

  • Gerade erst gemerkt, dass du mit slot 1 beginnst, also musst du natürlich 64+slot rechnen, damit du bei A anfängst ^^


    Und du hast noch einen kleinen Denkfehler gemacht, wenn ich mir deine Querys so ansehe.



    SELECT * FROM user WHERE id='%i'

    Da suchst du nur nach dem Slot.


    Das bedeutet ja aber, dass es nur ein Haus geben kann ^^


    Du solltest dir da evtl nochmal ein paar Tutorials anschauen, wie so Häuser Systeme realisiert werden, denn du brauchst hier halt auch noch eine HausID, damit du von diesem Haus die Mieter abfragen kannst ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ne da hast du was falsch verstanden..
    mit dieser query frage ich nicht die Häuser ab sondern lasse damit die row vom mieter laden um den Usernamen anzeigen zu lassen.
    eine Haus ID gibt es ja natürlich schon bin ja nicht blöd ^^.



    Also mit deiner ersten Verbesserung wo das ShowTenands[playerid] zu ShowTenands[] wird hat wieder alles Funktioniert.


    Habe auch schon das ganze house System schon fast fertig das sind jetzt nur noch extra Funktionen.


    buyhouse,sellhouse,openhouse,closehouse,leaverent,kickrent,renthouse,setrent,showtenands,copyhouseinterior,unloadhouses,loadhouses,reloadhouses,changehousespawn,edithousecosts,edithousebuylevel,edithouseinterior,edithouseinteriorpos,sethouseowner,deletehouse,createhouse... das hab ich schon alles eingebaut und ist auch Vollständig Funktionsfähig.