[Мануал] Создание ограничителя скорости

Описание: Уроки по скриптингу
Модератор: SJplayer

Invi_Sasha M
Автор темы, Мл. сержант
Мл. сержант
Аватара
Invi_Sasha M
Автор темы, Мл. сержант
Мл. сержант
Сообщения: 34
Зарегистрирован: 20 мая 2013
С нами: 10 лет 10 месяцев

#1 Invi_Sasha » 22 мая 2013, 22:16

Всем привет!
Вот выкладываю урок по созданию ограничителя скорости
И так мы начинаем

В начало мода добавляем

Код: Выделить всё

#define MAX_SPEEDO 0.6 // Максимально допустимая скорость. 
#define SLOW_FACTOR 0.9 // На сколько будет сбавляться скорость при превышении порога. 
forward Timer(); 
new 
Limiter[MAX_PLAYERS]; 
new 
limtimer;  

В public OnPlayerConnect добавляем

Код: Выделить всё

Limiter[playerid] = 0;   

В public OnPlayerCommandText добавляем

Код: Выделить всё

if (strcmp("/limiter"cmdtexttrue) == 0
                            { 
                          for(new 
i=0;i<MAX_PLAYERS;i++) 
                         { 
                          if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER
                         { 
                         if(
Limiter[playerid] == 0
                          { 
                         
SendClientMessage(playerid,0xAA3333AA,"Ограничитель скорости включен."); 
                         
SendClientMessage(playerid,0xAA3333AA,"Что бы выключить используйте /offlimiter."); 
                         
limtimer SetTimer("Timer",1000,1); 
                         
Limiter[playerid] = 1
                          } 
                          else 
                          { 
                          
SendClientMessage(playerid ,COL OR_G REY"Огр анич ител ь скорости уже включен."); 
                           } 
                         return 
1
                         } 
                         
SendClientMessage(playeridCOLOR_GRAD2"  Вы не в машине!"); 
                         return 
1
                         } 
                         } 
                         if (
strcmp("/offlimiter"cmdtexttrue) == 0
                           { 
                           if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER
                         { 
                         if(
Limiter[playerid] == 1
                          { 
                         
KillTimer(limtimer); 
                           
SendClientMessage(playerid,0xAA3333AA,"Ограничитель скорости выключен."); 
                           
Limiter[playerid] = 0
                         return 
1
                         } 
                         else 
                         { 
                         
SendClientMessage(playerid,COL OR_G REY"Огр анич ител ь скорости не включен."); 
                         return 
1
                          } 
                           } 
                           
SendClientMessage(playeridCOLOR_GRAD2"Вы не в машине!"); 
                           return 
1
                           }   

В public OnPlayerStateChange добавляем

Код: Выделить всё

if(newstate == PLAYER_STATE_ONFOOT
                         {   

Ниже добавляем

Код: Выделить всё

KillTimer(limtimer); 
Limiter[playerid] = 0;   

Создаем новый паблик в конец мода

Код: Выделить всё

public Timer() 

                          new 
Float:x,Float:y,Float:z,veh
                          for(new 
ii<MAX_PLAYERSi++) 
                          { 
                          
veh=GetPlayerVehicleID(i); 
                          
GetVehicleVelocity(veh,x,y,z); 
                          if((
MAX_SPEEDO || < -MAX_SPEEDO) || (MAX_SPEEDO || < -MAX_SPEEDO)) 
                          { 
                          
SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACTOR,z); 
                          } 
                          } 
}   

На этом наш урок закончен
Всем спасибо за внимание
Автор урока: KaspeR


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 7 гостей
Боты: MailRu [Bot]