Hey Community Ich möchte gerne die Hydra schneller machen nur ich weis nicht wie ich hab schon gegoogelt man soll irgendwas mit elocity machen aber ich versteh das nicht kann mir da einer helfen?
Vehicle Speed hochschrauben
- S K R I L L E X
- Geschlossen
- Erledigt
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
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
SetVehicleVelocity glaube ich
-
Das weis ich ja aber wie mach ich das ich hab da keine peilung wie ich das machen soll oder anfangen soll
-
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
-
Irgendwie wird die Hydra nicht schneller woran kann es liegen?
-
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%)
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;
} -
breadfish.de
Hat das Thema geschlossen.