Beiträge von Kaliber

    Wenn der String von dem ersten Charakter leer ist, wird das sogenannte NULL-Byte zurückgegeben.


    Sobald im String das NULL-Byte steht, wird jede lese Operation darauf abgebrochen.


    Beispiel kann dein string sein "\0Hallo" dann würdest du nicht Hallo lesen können, da beim NULL Byte schon abgebrochen wird.


    Folglich musst du prüfen ob das im String vorhanden ist :D


    aber dachte man kann den chat closen.

    Ja theoretisch ginge das, wenn du ein einfaches Include erstellst.


    Hier habe das mal für dich gemacht:



    Funktionieren tut das ganz einfach in deinem Fall:



    C
    //Wenn er in den TV-Mode geht:
    ClearChat(playerid); //cleart den chat
    HideChatForPlayer(playerid); //sorgt dafür, dass keine weiteren Nachrichten mehr an den Spieler gesendet werden können
    
    
    //Wenn er wieder raus geht:
    ShowChatForPlayer(playerid); //jetzt können wieder Nachrichten an den Spieler gesendet werden


    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------




    Allerdings würde er Informationen verlieren, falls er angeschrieben worden wäre in dieser Zeit.


    Dafür hatte ich mal das hier entwickelt: Nachrichten Cache


    Wenn du die Nachrichten zusätzlich dem Spieler erhalten magst, kannst du das integrieren.


    Also du musst das nachrichten-cache Include inkludieren und dann, das nachrichten-control Include so abändern:





    Nutzen tust du das dann einfach so:






    Hahaha, nur für den Fall der Fälle hahaha :D

    HideChatForPlayer oder wie?

    Eine native Funktion gibt es leider dafür nicht, aber sowas könnte man skripten.


    for(new i; i<50; i++) SendClientMessage(playerid,-1," ");


    Das Beispielsweise cleart den chat für den Spieler.
    Anschließend müsstest du dafür sorgen, dass der Spieler keine Nachrichten mehr bekommt über OnPlayerText. Ja ist etwas aufwändiger, aber ansonsten gibt es da keine Möglichkeit oder du sagst ihm er soll 2x F7 drücken hahaha :D

    Hab es versucht mit Textdraw Filterscript zu erstellen aber ich habe eine ganz alte Version und das hat nicht ganz geklappt.

    Das ist eine ziemlich schlechte & faule Ausrede...schließlich könntest du einfach eine neue Version downloaden und es nochmal probieren ^^


    Ansich nicht schlecht und in Zukunft wohl eine der besten Optionen.

    Naja...


    Da finde ich die Idee von Google viel ambitionierter und eleganter:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Wenn die glauben Fleisch wächst auf Bäumen, dann wurden die mit Lügen erzogen.

    Meins schon :lach:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    was ist hier los

    Ja wie schon erwähnt ist dies ein Skript Fehler.


    Nun bräuchten wir Code...so von OnPlayerConnect, OnPlayerRequestClass und eben da wo du den Spieler Einloggen willst usw.


    Oder du kannst auch auf eigene Faust ermitteln und mal überall prints verteilen und schauen, wie weit du kommst bzw wo der Code hängen bleibt :)


    Wenn du das gezielt machst, kannst du genau feststellen, an welcher Zeile es hängen bleibt ;)

    Meine fresse was juckt mich das wenn jemand vergewaltigt wird und getötet wird.

    In meinen Augen haben Leute die sowas sagen Sozial Strafen zu erledigen, damit sie mal etwas Empathie lernen.


    Ich bekomm richtig das Kotzen, wenn ich Menschen reden höre, die so 0 Empathie haben, das ist in meinen Augen der Untergang der Gesellschaft.

    Durchgeht er ja jedes mal das Server Limit von 500 Usern. Wie geht es perfomanter?

    Am besten wäre es einfach, sowas zu machen, das würde beide deiner Probleme auf einen Schlag lösen:



    C
    #undef MAX_PLAYERS
    #define MAX_PLAYERS 25

    Dann würdest du eben nur 25 Einträge durchgehen hahaha :D


    Aber schon richtig foreach wäre am besten:


    http://forum.sa-mp.com/showthread.php?t=570868


    Gehen würde auch sowas wie:


    for(new i=GetPlayerPoolSize(); i!=-1; i--)


    Das beispielsweise beginnt ab der höchsten spielerid auf dem Server und nicht z.B. ab 500 :)


    Also zur Verdeutlichung:


    MAX_PLAYERS = Ein fester (konstanter) Wert, den du für Arrays nutzen kannst. (Da dort nur feste Werte verwendet werden können, also Dinge die sich nicht ändern. Die müssen von vorne herein fest definiert sein.) Habe oben ja gezeigt, wie du das anpassen kannst.


    GetMaxPlayers = Diese Funktion liest dir aus der server.cfg den Wert aus. Ist schlecht und kann nicht für Arrays verwendet werden, da es eine Funktion ist und keine konstante! Also am Besten einfach MAX_PLAYERS den Wert von der server.cfg mittels dem Makro trick oben anpassen.


    GetPlayerPoolSize = Gibt die höchste Spielerid auf dem Server wieder. Halt gut geeignet für Loops, aber foreach ist besser, da bei foreach keine Lücken zwischen den IDs entstehen. Quasi wenn ID 4 die höchste Spielerid ist, aber nur ID 1 noch online. Dann beginnt die Loop trotzdem von 4 runter zu zählen. Und bei foreach hättest du nur 2 anstatt 5 (4-0) Einträge.




    Zu deinem 2. Punkt kann man nicht viel sagen.
    Es gibt Memory Editing Plugins, so dass man Variablen dynamisch allozieren kann.


    Einfacher wäre der spezielle Gebrauch von PVars, da du diesen Speicher wieder freigeben kannst.


    Oder eben gezielte Anpassung des Makros von MAX_PLAYERS :)

    Lade mal crashdetect und schaue in deinen server_log.


    Hast du auch alle Ordner erstellt in den scriptfiles und die ganzen Libs? xD

    Also du bist am Boden und bist quasi gefreezt?!


    Und du kannst auch nicht springen?


    Aber du kannst die Kamera bewegen?


    Kannst du uns mal dein Skript zeigen? :D

    Du meinst die Kamera bewegt sich nicht automatisch?


    Das liegt an deinen Client-Einstellungen, dafür musst du unter: ESC > OPTIONS > CONTROLER SETUP > Und dann bei Configuration JOYPAD auswählen :)

    Nein, das kommt meistens davon, dass nirgens [wiki]AddPlayerClass[/wiki] oder [wiki]SetPlayerSpawn[/wiki] verwendet wurde und man somit außerhalb der Map landet ;)

    Also willst du wirklich, dass der Typ theoretisch 100 Drogen dabei haben kann, okay :D


    Wenn dem so ist, liegt es an der Speichermethodik, in dini kannst du sowas nicht gut umsetzen.


    Da wäre wirklich zu empfehlen in dem Fall MySQL oder besser SQLite zu verwenden :)

    Um dir das mitteilen zu können, müsste ich erstmal deinen Code verstehen....


    Was macht das i?


    Wieso hast du 100 i?


    Das macht doch überhaupt keinen Sinn. Schließlich speicherst du nicht den Wert, den der Spieler dabei hat, sondern nur die Zahlen 0-99...


    Im Endeffekt brauchst du gar keine Schleife und das sollte deinen Code schon mal ziemlich effizienter und sinnvoller machen hahaha :D