Vehicle Speed hochschrauben

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 habe mal eben schnell eine Funktion für dich erstellt (keine Ahnung obs funktioniert):
    SpeedUp(vehicleid, prozent)
    {
    new Float:Velo[3];
    GetVehicleVelocity(vehicleid, Velo[0], Velo[1], Velo[2]);
    SetVehicleVelocity(vehicleid, Velo[0] + ((Velo[0]/100)*prozent), Velo[1] + ((Velo[1]/100)*prozent), Velo[2] + ((Velo[2]/100)*prozent));
    return 1;
    }
    Benutzung:
    SpeedUp(vehicleid, 100); //VehicleSpeed verdoppelt sich (erhöht sich um 100%)

  • Heißt das nicht?


    stock SpeedUp(vehicleid, prozent)
    {
    new Float:Velo[3];
    GetVehicleVelocity(vehicleid, Velo[0], Velo[1], Velo[2]);
    SetVehicleVelocity(vehicleid, Velo[0] + ((Velo[0]/100)*prozent), Velo[1] + ((Velo[1]/100)*prozent), Velo[2] + ((Velo[2]/100)*prozent));
    return 1;
    }

  • Ich selbst habe noch nie die Geschwindigkeiten von Fahrzeugen erhöht habe aber eventuell eine Lösung.


    Zuerst bräuchtest du einen Timer welcher einen Intervall von ca. 200ms hat. Nun gehst du in diesem alle Spieler
    durch. (foreach von Y_Less würde ich empfehlen)
    Jetzt prüfst ob sich die Spieler in einem Fahrzeug (in deinem Fall Hydra) befinden. Sollte dies Zutreffen
    würde ich mit "GetPlayerKeys" die Tasten welcher der Spieler aktuell drückt abfragen, da das Fahrzeug sich
    ja nur beschleunigen soll, wenn der Spieler Gas gibt.
    Im nächsten Schritt würde ich mit "GetVehicleVelocity" die aktuelle Geschwindigkeit in Variablen zwischen-
    lagern.
    Nun multiplizierst du den ausgelesenen x- sowie y-Wert mit einem Multiplikator. Also um welchen Faktor das
    Fahrzeug sich beschleunigen sollte. Wenn du dies gemacht hast setzt du die Geschwindigkeit von dem Fahrzeug
    mit "SetVehicleVelocity" auf die neuen x-,y- und z-Werte.
    Dies solltest du solange machen bis deine maximale Wunschgeschwindigkeit erreicht wurde.



    Mit freundlichen Grüßen
    aStar

  • Würde ich nicht so machen wie aStar. Was ist wenn man mit der Hydra grade nach oben fliegt? Also im "Schwebemodus" ist.
    Dann würde der Spieler ungewollt nach vorne katapultiert werden.


    Ich würds einfach mit einer Boost-Taste lösen


  • Hab es getestet. Wenn sich das Auto bewegt aber ich habs mit nem Befehl gemacht also wenn es sicht bewegt und du es ausführen lässt dann bekommt es mehr speed hier mein Befehel-
    COMMAND:addspeed(playerid,params[])
    {
    if(ImTutorial[playerid] != 0)return SendClientMessage(playerid,GRAU,"Du kannst keine Befehle nutzen,da du im Tutorial bist.");
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,GRAU,"Du bist nicht eingeloggt!");
    if(Spieler[playerid][pAWAYFROMKEYBOARD] == 1)return SendClientMessage(playerid,WRONGCMD,"Du bist im AFK-Modus und kannst somit keine Befehle nutzen."),SendClientMessage(playerid,WRONGCMD,"BENUTZE: /back");
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,GRAU,"Du bist kein "#SERVERTAG" Teammitglied./Du hast nicht den jeweiligen Adminrang.");
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du sitzt in keinem Fahrzeug!");
    new speed,str[128];
    if(sscanf(params,"d",speed)) return SendClientMessage(playerid,WRONGCMD,"Benutze: /addspeed [SPEED]");
    if(speed <100 || speed >500) return SendClientMessage(playerid,WRONGCMD,"Minimal: 100 || Maximal 500 Speed!");
    SpeedUp(GetPlayerVehicleID(playerid),speed);
    format(str,sizeof(str),"Du hast dem Auto | %s | ( %d ) mehr Speed gegeben!",VehicleDefinations,speed);
    SendClientMessage(playerid,BLAU,str);
    return 1;
    }