Beiträge von Kaliber

    Was ist das Ackslimit ?

    Das Ackslimit ist die maximale Anzahl an ACKs (Acknowledgement) die pro Sekunde vom Client an den Server gesendet werden dürfen. (Deshalb ja ackslimit)


    Das dient hauptsächlich dafür, dass man deinen Server nicht mehr so einfach in die Knie zwingt, indem man z.B. sowas spammen würde...


    Was kann passieren wenn es zu niedrig ist ?

    Dann wird deine Konsole zugespammt, dass der Client zuviele ACKs sendet, obwohl diese gebraucht werden.
    ACKs sind quasi nur eine Bestätigung, dass etwas angekommen ist...wie z.B. ja dieses Objekt ist angekommen.
    Solltest es also so setzen, dass das schon Sinn ergibt :)



    Was kann passieren wenn es zu hoch ist ?

    Erstmal nichts schlimmes...ein bisschen zu hoch ist besser, als ein bisschen zu niedrig.
    Wenn du es aber halt viel zu hoch setzt, läufst du Gefahr, dass du angegriffen werden kannst, indem Angreifer das halt ausnutzen und deinen Server durch Spam in die Knie zwingen...



    Hat das Ackslimit Einfluss auf die Performance des Server's ? (z.b.s Timer o.Ä)

    Nein das Ackslimit hat, wenn du es richtig setzt, erstmal nicht direkt was mit der Performance zu tun.
    Achte darauf, dass du halt effizient Skriptest und nicht den Client mit Funktionen o.ä. zu ballerst...dann sollte da nichts passieren :)

    Das liegt an deiner if-Abfrage :)


    Dort wird ja schonmal CreateVehicle aufgerufen und da dort ein Wert != 0 returnt wird...wird nochmal CreateVehicle im Codeblock aufgerufen.


    Das was du wolltest ist glaube ich sowas:


    C
    stock CreateVehicleEx(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0)
    {
        new veh = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay, addsiren);
        if(veh)
        {
            SetVehicleHealth(veh, MAX_VEHICLEHEALTH);
        }
        return veh; //das solltest du hier zurück geben 
    }

    muss das irgendwie anders schreiben

    Hier, so:


    Da gibt es mehrere Möglichkeiten:


    1. Möglichkeit if-Abfrage:


    C
    CMD:testbefehl(playerid,params[])
    {
        new target, str[64], type;
        if(sscanf(params,"iu",type,target)) return SendClientMessage(playerid, rot,"Benutz: /testbefehl <Type> <ID/Name>");
        if(type==0) SetPlayerHealth(playerid, 100);
        else if(type==1) SetPlayerArmour(playerid, 100);
        else SendClientMessage(playerid,rot,"Ungültiger Type!");
        return 1;
    }


    2. Möglichkeit switch (das wäre schneller wenn noch mehr Types hinzu kommen):



    oder kann es zu bugs kommen wenn das nicht da ist

    In diesem Fall nicht.



    Denn manchmal hat man die 3dtexte ja irgendwo an spielern wo man es nicht haben will. Woran liegt das ?

    Das kommt ja immer darauf an...was man für ein System hat...
    Meistens liegt das aber, wenn es um 3DTextLabels geht an falschen if-Abfragen...und nicht, weil die Variable nicht resettet wurde..(Es sei denn, man will prüfen ob das Label noch existiert..dann kann es natürlich auch an den Variablen liegen, wenn man diese nicht resettet hat..)
    Kann man halt nicht pauschal sagen..wo überall Bugs entstehen können..das geht nämlich meistens überall ^^

    Ist nicht mehr Normal, seid wann müssen denn alle Parameter angegeben werden? :o

    Müssen es nicht.
    Weißt du, deine Version klappt nicht, da die Virtuelle Welt auf 0 gesetzt war.
    Allerdings befindest du dich offensichtlich nicht in dieser.
    Das mit dem Dynamic funktioniert, da dort die Welt auf -1 gesetzt wurde und diese somit überall angezeigt wird :)


    Mit der Punkt Notation, kannste den Parameter btw direkt übergeben:


    CreateDynamic3DTextLabel("[- Fahrradverleih -]\nBenutze: '/radverleih'", 0x008080FF, 160.9182, -1921.3374, 3.7734, 25.0, .worldid = -1);