PHP код:
new pVehID[MAX_PLAYERS],
pState[MAX_PLAYERS char],
fix_bug_moto[MAX_PLAYERS char];
//native PutPlayerInVehicle(playerid, vehicleid, seatid); её перехватить не забыть и другие нужные функции где бы обнулялась/ставилась инфа
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
pVehID[playerid] = vehicleid;
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
pState{playerid} = newstate;
return 1;
}
public OnPlayerUpdate(playerid)
{
static
keys,
__,
Float: v_vel_x,
Float: v_vel_y,
Float: v_vel_z;
GetPlayerKeys(playerid, keys, __, __);
if(ud & KEY_UP)
{
if(pState{playerid} == PLAYER_STATE_DRIVER)
{
switch(GetVehicleModel(pVehID[playerid])) //с GetVehicleModel перепутал, хотя можно под каждый транспорт выделить ячейку и туда записывать модель, я бы так и сделал, мне не жалко памяти :)
{
case 462, 522:
{
fix_bug_moto{playerid} += 2;
if(fix_bug_moto{playerid} > 5)
{
fix_bug_moto{playerid} = 0;
GetVehicleVelocity(pVehID[playerid], v_vel_x, v_vel_y, v_vel_z);
SetVehicleVelocity(pVehID[playerid], floatmul(v_vel_x, 0.9), floatmul(v_vel_y, 0.9), floatmul(v_vel_z, 0.9));
//на сколько я знаю делать операции для дробных чисел через ^такие функции чучуть идут быстрее
//+ я не проверял какие функции ещё могут тормозить игрока, там полюбасу можно найти что то быстрее
}
}
}
}
}
else
{
if(fix_bug_moto{playerid} > 0) fix_bug_moto{playerid} --;
}
return 1;
}