Beiträge von Kaliber

    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