Beiträge von d0ma


    SetPlayerTeam hat jetzt den Effekt das die Fahrzeuge, in denen ein Teamler der Fahrer ist, keinen Schaden mehr nimmt.


    Das kannst du mit derFunktion abschalten ;)


    Nicht genau andersrum ? :D


    SetPlayerTeam setzt das Team und Leute im selben Team können sich gegenseitig nicht töten aber Fahrzeuge welche Teammitglieder fahren können sie weiterhin kaputtschießen.


    Wenn EnableVehicleFriendlyFire() im Skript ist und man im selben Team ist, dann kann man Fahrzeuge welche Teammitglieder fahren nichtmehr zerstören.

    Zitat

    - In 0.3x, the final parameter of OnVehicleDeath (killerid) will be the
    player who reported the vehicle dead. This should be renamed at some
    point, although, in the interest of keeping the callback compatible with
    old scripts, the name won't be changed for 0.3x.


    killerid ist in dem Fall NICHT der Spieler der das Auto zerstört hat, sondern der Spieler der den Fahrzeugtod an den Server gemeldet hat.(entweder ist killerid der Fahrer oder wenn das Auto leer(aufm kopf liegt) ist killerid der Spieler wo es als erstes explodieren sah)

    Die if Abfrage ist immer Wahr :)
    Wenn variable nicht 2 ist ODER variable nicht 1 ist.


    Ich nehm mal an man ist im Gefängnis wenn diese Variable 1 oder 2 ist ?
    Dann musst du bei der if Abfrage einfach das || durch && ersetzen, das es dann heißt:
    Wenn die Variable nicht 1 UND nicht 2 ist.

    Du kannst globale Variablen keinen Wert mit einer Funktion zuweisen. Der Server läuft noch nicht wenn das Script erstellt wird und somit kann der compiler auch kein random ausführen beim erstellen vom script.


    Führ es in OnGameModeInit/OnFilterScriptInit aus
    new Float:RCS[][] = {
    {2798.4609,-2334.4050,13.3599,180.7664},
    {2793.2554,-2334.6465,13.3599,180.9535},
    {2787.8979,-2334.6887,13.3599,180.0747},
    {2769.5759,-2335.4070,13.3599,181.0050},
    {2782.0942,-2334.9683,13.3599,178.5144},
    {2774.8792,-2335.3091,13.3599,179.6768}
    };
    new rand;


    public OnGameModeInit() // bzw filterscriptinit
    {
    rand = random(sizeof(RCS));
    }

    Hier richtig erklärt:


    Du erstellst ein TextDraw in OnGameModeInit bzw OnFilterScriptInit (je nachdem ob es gamemode oder filterscript ist):
    new Text:ipchange;
    public OnGameModeInit()
    {
    //hier das textdraw ohne TextDrawShowForAll erstellen
    ipchange = TextDrawCreate ...
    ...
    }


    Und in OnPlayerConnect:

    TextDrawShowForPlayer(playerid, ipchange);


    Und anschließend in deinem Timer KEIN neues TextDraw erstellen sondern nur:

    TextDrawSetString(ipchange, "text");


    und schon überlappt es nichtmehr weil du nichtmehr ständig neue textdraws erstellst sondern einfach vom alten den Text änderst :)

    Das diese RC Version nur 10-20 Slots hat stimmt nicht, gibt Server mit deutlich mehr Slots online.


    Und auch das man nicht updated weil noch nicht viele Spieler auf 0.3x stimmt nicht.


    Der Grund ist das hier der Topic Name falsch gewählt ist... "0.3x RC erschienen" sorgt für Verwirrung und sollte eig. i-was mit "0.3x RC Scripting Phase" sein. Diese RC Versionen sind hauptsächlich für Server Besitzer gedacht um ihr Script mit neuen Funktionen zu Updaten bevor 0.3x raus kommt und das sichergestellt ist das die neuen Funktionen großräumig getestet werden und reibungsfrei funktionieren. (RC = Release candidate)


    Heißt:
    Vor ca 2 Wochen habe ich eine Mail an team@sa-mp.com geschrieben, mit der Frage ob man mitlerweile mehr als 800 Slots haben könnte. Y_Less schrieb mir dann zurück, dass man mittlerweile schon Serverpackete mit maximal 2 K Slots bekommt


    SA-MP Server mit mehr als 500 Slots werden an diejenigen verteilt die mehr als 500 Slots benötigen. Heißt soviel wie: wenn der Server mehrere Stunden am Tag volle 500/500 Slots benötigt.
    Server mit über 1000 Slots gibt es nicht.

    Dein code:




    Besser ist es so:

    Code
    if(newstate == PLAYER_STATE_DRIVER)
    {
    // gesammter code für state_driver
    }


    Zum eigentlichen Problem, füge überall verteilt Debug Messages ein um zu sehen wie weit dein Code überhaupt läuft:
    zb: SendClientMessage(playerid,0xFF0000FF, "DEBUG: Code bis zum teil XYZ ausgeführt");
    So siehst du im Chat ob der Code überhaupt bis zu dieser Stelle läuft bzw wo er aufhört und der Fehler liegt.

    Nien Gehtr noch nicht


    Der Linux command behebt nicht das Problem sondern soll dir zeigen ob es an einem Programm liegt das die Ports belegt


    Mit "netstat -tulpn" kannst du nachschauen welche Ports von welchem Prozess bereits genutzt werden.


    Ports sind in der Spalte "Local Address" hinter dem ':', am Ende der Tabelle sollte jeweils der Prozess stehen der den Port belegt/lauscht.