Fahrzeug schnelligkeit

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ich hab es jetzt schon getestet, und es ist gar nicht so einfach wie ich mir das dachte. Ich verschiedene Varianten getestet, und hab es auch hinbekommen, dass das Auto 135 fährt, aber hab es nicht mehr abbremsen können. Ich hab leider nicht die Zeit dazu das komplett durchzutesten und zu optimieren, dass es auch tut. Vielleicht im Laufe der Woche, wenn, dann würde ich mich bei dir melden.
    Auf die Schnelle ist da aber leider nichts zu machen.

  • Teddybaer:
    Ich habe nun einen kleinen FS entworfen, der bei Weitem nicht perfekt ist, aber er tut das, was du willst. Ich hab es probiert, es funktioniert.


    #include <a_samp>


    new bool:GibtGas[MAX_PLAYERS];


    public OnPlayerUpdate(playerid)
    {
    if(IsPlayerNPC(playerid)) return 1;
    /*new str[128];
    format(str, sizeof(str), "%d", GetPlayerSpeed(playerid));
    SendClientMessageToAll(-1, str);
    //^debug^
    */
    if(IsPlayerInAnyVehicle(playerid) && GibtGas[playerid])
    {
    new id = GetPlayerVehicleID(playerid);
    new model = GetVehicleModel(id);
    if(model == 596) //LSPD
    {
    new speed = GetPlayerSpeed(playerid);
    if(speed <= 175 && speed > 170)
    {
    new Float:x1, Float:y1, Float:z1, Float:a;
    GetVehicleVelocity(id, x1, y1, z1);
    GetVehicleZAngle(id, a);
    SetVehicleVelocity(id, x1*202.0/175.0, y1*202.0/175.0, z1);
    }
    else if(speed <= 185 && speed > 180)
    {
    new Float:x1, Float:y1, Float:z1, Float:a;
    GetVehicleVelocity(id, x1, y1, z1);
    GetVehicleZAngle(id, a);
    SetVehicleVelocity(id, x1*202.0/185.0, y1*202.0/185.0, z1);
    }
    else if(speed <= 195 && speed > 190)
    {
    new Float:x1, Float:y1, Float:z1, Float:a;
    GetVehicleVelocity(id, x1, y1, z1);
    GetVehicleZAngle(id, a);
    SetVehicleVelocity(id, x1*202.0/195.0, y1*202.0/195.0, z1);
    }
    }
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_SPRINT) GibtGas[playerid] = true;
    else GibtGas[playerid] = false;
    return 1;
    }


    stock GetPlayerSpeed(playerid) //Credits an Michael@Belgium
    {
    new Float:ST[4];
    if(IsPlayerInAnyVehicle(playerid))
    GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
    else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
    return floatround(ST[3]);
    }


    Falls das jemand als Inspiration sieht dies zu perfektionieren, darf er gerne den Code benutzen, abändern oder neu veröffentlichen, ist mir völlig egal.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Es ist extrem Ressourcenlastig. Ich würde lieber einen Timer abfragen, der jede 3 Sekunden oder so läuft. OnPlayerUpdate saugt die Leistung deines Servers raus.

    Du brauchst eine Website?

    Du hast ein Layout angefertigt und willst es gecoded sehen?

    DANN SCHREIB MICH AN.

    Kostenlos und für euch.

  • Zitat


    Er hat nirgendwo behauptet das es ressourcen freundlich ist ;)
    Und du meinst mit einem Timer ist man besser dran?

    Was ist für dich besser? 10-100x (hängt von der Synchronisation ab z.B S.W.A.T Panzer Wasser Werfer oder Waffen schießen sehr Ressourcen fressend etwas laufen wenig Ressourcen fressend) die Sekunde oder alle 3 Sekunden 1x?

  • Danke :D einfach so ins script einfügen?
    Wie schnell läuft das ding nun?


    Ja.
    Genau so schnell wie du es wolltest.


    Es ist extrem Ressourcenlastig. Ich würde lieber einen Timer abfragen, der jede 3 Sekunden oder so läuft. OnPlayerUpdate saugt die Leistung deines Servers raus.


    Nur weil es OnPlayerUpdate benutzt ist es nicht gleich extrem Ressourcenlastig. Ich hab es bei mir auf dem PC getestet, meine CPU ist noch intakt. OnPlayerUpdate hat einfach einen schlechten Ruf, ich benutze es gerne für kleine Dinge und hatte noch nie nur einen Lag damit. Man muss nur wissen wie man es benutzt.


    Ich habe mit Absicht auf einen Timer verzichtet, weil es ungenau wird. Wie gesagt, es ist nicht perfekt, wer es besser machen will darf das gerne machen. Aber nur rumnörgeln ist nicht nötig, das hilft keinem.

  • Jeffrey, deine Abfragen verwirren mich.


    Die Variable 'speed' wird abgefragt von 170 bis 175, 180 bis 185 und 190 bis 195? Was ist mit den 5er Lücken?

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Finde es gut :D Bremsen funktioniert auch :D Was mich nur bisschen stört das driften :D wenn ich mit 135 drifte driftet das ding total lange :D


    Das liegt daran, dass das Auto ja nur auf die bestimmte Geschwindigkeit begrenzt ist, der script macht es aber schneller als vom Spiel her erlaubt, das führt dazu, dass es beim driften extrem lange driftet, da es länger braucht, bis die Geschwindigkeit wieder erreicht ist, bei der das Auto zu langsam ist um zu driften.



    Jeffrey, deine Abfragen verwirren mich.
    Die Variable 'speed' wird abgefragt von 170 bis 175, 180 bis 185 und 190 bis 195? Was ist mit den 5er Lücken?


    Ich hab das so gemacht, weil der script sonst das Auto die ganze Zeit auf der Maximalgeschwindigkeit hält, würde an manchen Stellen etwas komisch aussehen. Man kann es sicher auch ohne die Lücken machen, ob das aber einen merklichen Unterschied macht weiß ich nicht. Müsste man ausprobieren, was besser läuft.

  • (Haben nur einen Laptop gerade Zuhause, deswegen nun von diesem Account da wir uns abwechseln)


    Achso, aber von 186 würde er doch dadurch gar nicht mehr auf 190 kommen ohne 'Boost' oder habe ich gerade einen Denkfehler?


    Advertising has us chasing cars and clothes, working jobs we hate so we can buy shit we don’t need.
    – Tyler Durden


    Sobald Werbung im Spiel ist, bist du, die Nutzerin, der Nutzer, das Produkt.


  • Achso, aber von 186 würde er doch dadurch gar nicht mehr auf 190 kommen ohne 'Boost' oder habe ich gerade einen Denkfehler?


    Ja, aber das Auto wird sehr schnell langsamer, daher fällt es wieder unter die 180 und bekommt wieder einen Schub, ich fand die Schübe sonst etwas zu stark. Es wird besser je näher die einzelnen Werte aneinander liegen, ich wollte aber keine 100 else if's machen.


    So wie ich das sehe sind viele an etwas Besserem hier Interessiert, was einfacher zu benutzen ist und noch genauer funktioniert. Ich werde in den nächsten Tagen oder Wochen, sofern ich Zeit habe, mich damit auseinandersetzen, ob sich da eine möglichst einfach zu benutzende Include machen lässt.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen