#define SLOW_FACTOR 0.6 // На сколько будет сбавляться скорость при превышении порога. forward Timer(playerid);//форфард для паблика new Float:speedlevel[MAX_PLAYERS];//скорость new timer[MAX_PLAYERS];//наш таймер
public Timer(playerid) { new Float:x,Float:y,Float:z;//переменные для записи координат new veh=GetPlayerVehicleID(playerid);//узнаем ид ато GetVehicleVelocity(veh,x,y,z);//узнаем скорость if((x > speedlevel[playerid] || x < -speedlevel[playerid]) || (y > speedlevel[playerid] || y < -speedlevel[playerid]))SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACT OR,z);//усли скорость больше чем должно быть то уменьшаем до нужной
public OnPlayerStateChange(playerid, newstate, oldstate)
Code
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) timer[playerid]=SetTimerEx("Timer",200,true,"i",playerid); else KillTimer(timer[playerid]);//если нет то убиваем таймер
Спросите как можно использовать? Очень просто можно сделать команду для механиков которые будут улучшать двигатель и скорость будет больше.
Code
if(strcmp(cmd, "/ulush", true) == 0) { if(!PlayerInfo[playerid][pMember]==id)return SendClientMessage(playerid,0x6699FFAA,"Вы не механик!");//id заменить на свой ид фракции механиков new target; tmp=strtok(cmdtext,idx); if(!strlen(tmp)) return SendClientMessage(playerid,0x99FF00FF,"{FABD05}Используйте {FFFFFF}/ulush [ID] "); target = strval(tmp); new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z); if(!IsPlayerConnected(target)) return SendClientMessage(playerid,0xFF0033,"Игрока нет на сервере"); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,0xFF0033,"Игрок должен быть в машине"); if(!PlayerToPoint(8,target,x,y,z))return SendClientMessage(playerid,0xFF0033,"Игрок должен быть рядом с вами"); if(PlayerInfo[target][pLevel]==1)speedlevel[target]=0.4;//60 -точно незнаю if(PlayerInfo[target][pLevel]==2)speedlevel[target]=0.8;//120 if(PlayerInfo[target][pLevel]==3)speedlevel[target]=1.2;//180 if(PlayerInfo[target][pLevel]==4)speedlevel[target]=1.6;//240 format(string,sizeof(string),"Двигатель вашей машины улучшен.Теперь он может разогнаться до %d",speedlevel[target]); SendClientMessage(target,0xFFFFFFFF,string);