Beiträge von Kaliber

    Ich weiß um ehrlich zu sein nicht was die Schleife da oben genau soll

    Na..stellen wir uns mal folgendes vor, wir haben folgendes Array:


    [1,2,3,-1,-1,-1,-1]


    Dann ist der letzte Eintrag ja nicht -1, sondern 3...


    Ich dachte, wir reden hier von einem Array welches nicht voll gefüllt ist, wenn natürlich das Element immer auf einem statischen Feld ist..ist das ja trivial und du kannst es natürlich mit array[sizeof(array)-1] lösen..

    Das mit den Pickups musst du leider z.B. so machen:


    Ist es ausserdem Moeglich, irgendwie aus einem Array immer die letzte Zeile im Array auszulesen?

    Das ist gar nicht so leicht.
    Es geht mit invaliden Werten und wenn du immer das Array sortierst bzw keine leeren Felder drinnen hast.


    Hier mal ein Beispiel:


    Hoffe ich konnte dir bisschen zeigen, was man da so alles anstellen kann ^^

    Also mal als erstes, wenn du schon Makros nutzt, dann pack sie statisch rein, da brauchst keine extra Funktionen und auch keine Variablen:


    C
    PlayerTextDrawSetString(playerid, TeamText[playerid], "Team: "#FIRST_TEAM_COLOR_TAG);
    PlayerTextDrawShow(playerid,TeamText[playerid]);
    
    
    PlayerTextDrawSetString(playerid, LocText[playerid], "Location: "#FIRST_TEAM_LOCATION);
    PlayerTextDrawShow(playerid,LocText[playerid]);

    Der Grund aber, wieso das in SendClientMessage Funktioniert, aber nicht mit TextDraws oder GameTexten liegt daran, dass es dort diese Color codes mit den Klammern {FFFFFF} nicht gibt!



    Schau mal hier:
    http://wiki.sa-mp.com/wiki/Colors_List#GameText


    Wenn da musst du eben sowas verwenden:


    #define FIRST_TEAM_COLOR_TAG "~b~~h~~h~VIOLETT"


    #grammar nazi

    Du brauchst den String nicht formatieren, wenn es eine Konstante ist...



    #define FIRST_TEAM_COLOR_TAG "{610D96}VIOLET"


    SendClientMessage(playerid, -1, FIRST_TEAM_COLOR_TAG);

    Es reicht hier sowas...du musst dir einfach vorstelle, dass das Makro 1zu1 vom Compiler übersetzt wird...und das sieht ja nicht wirklich gut aus:


    SendClientMessage(playerid, -1, ""#"{610D96}VIOLET""");


    Ich meine gut, könnte sogar compilen...aber nunja e^pi*i ist auch -1...aber deshalb muss man es ja nicht hinschreiben xD

    ...habe das query doch geschrieben..


    Hier der vollständige Code, wenn du nicht weißt wie man ein query aufbaut und abschickt:


    C
    new DBResult:db_result,anzahl;
    db_result = db_query(db_handle, "SELECT COUNT(*) FROM `table`");
    db_get_field_int(db_result, 0, anzahl);
    db_free_result(db_result);
    
    
    //Anzhal der Spieler steht nun in anzahl

    Das mit den " oben ist richtig.


    Lass diese mal so, dann müsste folgendes gehen:


    Textdraw00 = TextDrawCreate(10.000000,379.000000,"Location: "#FIRST_TEAM_LOCATION);


    Aber auch das mit format müsste funktionieren ^^


    printe der halt mal, was da eigentlich drinnen steht oder schau, ob dir deine TextDraws so auch richtig angezeigt werden, wenn du statisch was reinschreibst ;) Eventuell liegts ja gar nicht am Makro :)

    Das beste wäre...wenn du diese umschreibst xD


    Aber wenn du ein GF nutzt ist das sicherlich zuviel arbeit.


    Dann ändere dort das OnPlayerCommandText in folgendes:


    Wie soll er %s auslesen wenn der Spieler Offline ist ?

    Um den Spieler offline anzusprechen muss man den Namen eingeben (Also der Spieler der den Command ausführt muss logischerweise den Spielernamen eingeben, sscanf nutz also nur bei dem online spieler, bei dem offline spieler arbeite direkt mit dem params (escape den string natürlich vorher erst)..er hat ja schließlich keine spielerid ^^