De speler zal dus eindigen op die coords als de huidige actie niet onderbroken word de velocity past zich de hele tijd aan, als je stil staat is het vanzelfsprekend dat alles in de velocity op 0 staat.
Verkrijg de velocity van een voertuig en slaag deze op.
Voorbeelden
Je kan met velocity een speler in de lucht laten springen net als een voertuig ik geef een voorbeeld van hoe je een /jump commando maakt:
// Bij OnPlayerCommandText
if (!strcmp("/jump", cmdtext)) // commando /jump
{
if(IsPlayerInAnyVehicle(playerid)) // Kijk of de speler in een voertuig zit.
{
SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0,3); // Laat voertuig springen.
}
else
{
SetPlayerVelocity(playerid,0.0,0.0,25); // Laat speler springen.
}
return 1;
}
Een speedboost functie die ook werkt te voet:
// Bij OnPlayerCommandText
if (!strcmp("/speed", cmdtext)) // commando /jump
{
new Float:x, Float:y, Float:z;
if(IsPlayerInAnyVehicle(playerid)) // Kijk of de speler in een voertuig zit.
{
GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z); // Haal de huidige speler velocity op.
SetVehicleVelocity(GetPlayerVehicleID(playerid), x*1.2, y*1.2, z*1.2); // Stel voertuig velocity in (*1.2)
}
else
{
GetPlayerVelocity(playerid,x,y,z); // Haal de huidige speler velocity op.
SetPlayerVelocity(playerid, x*1.2, y*1.2, z*1.2); // Stel speler velocity in (*1.2).
}
return 1;
}
Snelheid (in kmh) ophalen van de speler (met dank aan Wanted):
stock GetPlayerSpeed(playerid) // zet dit vanonder in je gamemode!
{
new Float:X, Float:Y, Float:Z;
if(IsPlayerInAnyVehicle(playerid))
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), X, Y, Z);
return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
}
else
{
GetPlayerVelocity(playerid, X, Y, Z);
return floatround(floatmul(floatmul(floatsqroot(floatpower(floatabs(X), 2) + floatpower(floatabs(Y), 2) + floatpower(floatabs(Z), 2)), 100), 1.621371192), floatround_round);
}
}
// voorbeeld om snelheid voor speler op te halen.
new Str[128];
format(Str, sizeof(Str), "Je rijd nu %d kilometer per uur!", GetPlayerSpeed(playerid));
SendClientMessage(playerid, Str);
return 1;
Mijn tutorial is nu afgelopen, heb je ideeën of vragen, meld het in dit topic.
Tutorial: Velocity
Wat is velocity?
Velocity is de hoeveelheid x, y, z coords van de huidige positie waarnaar de speler zich beweegt ik geef een voorbeeld:
Speler: X: 2540.0 Y: 1250.0 Z: 10.0
De speler gaat nu bijvoorbeeld in een auto beginnen rijden.
Velocity: X: 5.0 Y: 2.0 Z: 0.0
X+X(Velocity) = 2545.0 Y+Y(Velocity) = 1252 Z+Z(Velocity) = 10.0
De speler zal dus eindigen op die coords als de huidige actie niet onderbroken word de velocity past zich de hele tijd aan, als je stil staat is het vanzelfsprekend dat alles in de velocity op 0 staat.
Functies
SetPlayerVelocity(playerid, Float:x, Float:y, Float:z);
Je kan met deze functie handmatig een speler zijn velocity instellen, dit werkt enkel als de speler te voet is.
SetVehicleVelocity(vehicleid, Float:x, Float:y, Float:z);
Stel de velocity van een voertuig in.
GetPlayerVelocity(playerid, &Float:x, &Float:y, &Float:z);
Verkrijg de velocity van een speler en slaag deze op.
GetVehicleVelocity(vehicleid, &Float:x, &Float:y, &Float:z);
Verkrijg de velocity van een voertuig en slaag deze op.
Voorbeelden
Je kan met velocity een speler in de lucht laten springen net als een voertuig ik geef een voorbeeld van hoe je een /jump commando maakt:
Een speedboost functie die ook werkt te voet:
Snelheid (in kmh) ophalen van de speler (met dank aan Wanted):
Mijn tutorial is nu afgelopen, heb je ideeën of vragen, meld het in dit topic.
Bewerkt: door megadreams