Как реализовать? - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (
https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Как реализовать? (
/showthread.php?tid=297888)
Как реализовать? -
Hawkins - 18.11.2011
PHP код:
stock SpeedVehicle(playerid)
{
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)) * 100.3;
return floatround(ST[3]);
}
Эта функция которая вычисляет скорость автомобиля.
Как можно реализовать. Примерно в OnPlayerUpdate
PHP код:
if(SpeedVehicle >= 50)
{
}
Вот примерно как сделать чтобы при скорости в отметке 50, скорость больше не повышалась, то есть типо ограничителя
Re: Как реализовать? -
OKStyle - 18.11.2011
https://sampwiki.blast.hk/wiki/SetVehicleVelocity
Re: Как реализовать? -
EvgeN 1137 - 18.11.2011
pawn Код:
stock GetVehicleSpeed(vehicleid)
{
new Float:x, Float:y, Float:z;
GetVehicleVelocity(vehicleid, x, y, z);
return floatround(floatsqroot(x*x+y*y+z*z)*195);
}
stock setVehicleSpeed ( vehicleid, speed_mph )
{
if ( speed_mph < 1 ) speed_mph = 1;
new Float: v[3], cur_speed_mph;
GetVehicleVelocity( vehicleid, v[0], v[1], v[2] );
cur_speed_mph = floatround( 200.0 * floatsqroot( v[0]*v[0] + v[1]*v[1] + v[2]*v[2] ), floatround_floor );
if ( cur_speed_mph <= 0 )
{
new Float: zAngle;
GetVehicleZAngle( vehicleid, zAngle );
new Float: newVelX = floatcos( (zAngle -= 270.0), degrees ) * speed_mph / 200.0;
SetVehicleVelocity( vehicleid, newVelX, floattan(zAngle,degrees) * newVelX, 0.0 );
return;
}
new Float: vMultiplier = float(speed_mph) / float(cur_speed_mph);
SetVehicleVelocity( vehicleid, v[0] * vMultiplier, v[1] * vMultiplier, v[2] * vMultiplier );
}
а в OnPlayerUpdate:
pawn Код:
if(IsPlayerInAnyVehicle(playerid))
{
new veh = GetPlayerVehicleID(playerid);
if(GetVehicleSpeed(veh) > 50) SetVehicleSpeed(veh, 49);
}
как-то так
Re: Как реализовать? -
Crystal_Speed - 18.11.2011
есть же FS'ы ограничители скорости) гуглите)
Re: Как реализовать? -
Hawkins - 18.11.2011
EvgeN 1137, спасибо вам! И всем спс что помогаете