Понедельник, 18.01.2021, 16:35
Logo site
  • Главная
  • Форум
  • Мы в Контакте
  • Pwn-Zone.Ru
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » SA-MP » Wiki-The-Samp » [Tutorial] Ограничитель скорости по уровням
[Tutorial] Ограничитель скорости по уровням
НазарДата: Воскресенье, 20.11.2011, 12:37 | Сообщение # 1
Гл. Администратор
Группа: Пользователь
Сообщений: 125
Награды: 7
Замечания: 0%
Code
#define SLOW_FACTOR 0.6 // На сколько будет сбавляться скорость при превышении порога.
forward Timer(playerid);//форфард для паблика
new Float:speedlevel[MAX_PLAYERS];//скорость
new timer[MAX_PLAYERS];//наш таймер


OnPlayerSpawn
Code
if(PlayerInfo[playerid][pLevel]==1)speedlevel[playerid]=0.4;//60 -точно незнаю
if(PlayerInfo[playerid][pLevel]==2)speedlevel[playerid]=0.8;//120
if(PlayerInfo[playerid][pLevel]==3)speedlevel[playerid]=1.2;//180
if(PlayerInfo[playerid][pLevel]==4)speedlevel[playerid]=1.6;//240


В любое место
Code
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);


По всем вопросам обращайтесь на форум :)
 
Форум » SA-MP » Wiki-The-Samp » [Tutorial] Ограничитель скорости по уровням
  • Страница 1 из 1
  • 1
Поиск:

Лучшая рип студия!

Проследить за всеми новостями мы не можем, так как новости берутся из открытых источников. Если вы считаете, что новость нарушает ваши права на авторство или дизайн, то обратитесь к администрации данного ресурса. | Хостинг от uCoz