• Страница 1 из 1
  • 1
Автоматическая починка машины
fenix05Дата: Среда, 03.04.2013, 09:46 | Сообщение # 1
.::Offline::.
Гангстер
Сообщений: 151
[ 62 ]
Награды: 4

Статус отсутствует
Этот урок посвящён автоматической починке.

Создаём таймер в public OnGameModeInit()
Код
SetTimer("AutoRepair", 1000, true);

,где 1000 - время в миллисекундах (1000 = 1 секунда).

В любое место:
Код
forward AutoRepair();
public AutoRepair()
{
  for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
  {
      if (IsPlayerInAnyVehicle(playerid))
      {
    new Float:CarHP;
    GetVehicleHealth(GetPlayerVehicleID(playerid), CarHP);
             if (CarHP < 999)
             {
     RepairVehicle(GetPlayerVehicleID(playerid));
    }
   }
  }
  return 1;
}

,где:
if (IsPlayerInAnyVehicle(playerid)) - если игрок в машине.
GetVehicleHealth(GetPlayerVehicleID(playerid), CarHP); - записываем количество здоровья машины в переменную CarHP.
if (CarHP < 999) - если здоровья меньше чем 999 (Справка: полное >= 1000).
RepairVehicle(GetPlayerVehicleID(playerid)); - чиним машину.

Что у нас получилось?
Таймер, каждую секунду запускает public AutoRepair(), в котором идёт проверка на количество здоровья машины. Если уменьшилось, то происходит автоматическая починка.


Alien Brickman [vk.com/alien_brickman]Обложка:
 
ZioHikДата: Среда, 03.04.2013, 19:59 | Сообщение # 2
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует
Отличный урок, но можно чуть оптимизировать код:

Код
forward AutoRepair();    
public AutoRepair()    
{    
     for(new playerid=0; playerid<MAX_PLAYERS; playerid++)    
     {    
         if (!IsPlayerInAnyVehicle(playerid)) return 1;    
         new Float:CarHP;    
         GetVehicleHealth(GetPlayerVehicleID(playerid), CarHP);    
         if (CarHP < 999) return RepairVehicle(GetPlayerVehicleID(playerid));     
     }    
     return 1;    
}
 
fenix05Дата: Среда, 03.04.2013, 20:40 | Сообщение # 3
.::Offline::.
Гангстер
Сообщений: 151
[ 62 ]
Награды: 4

Статус отсутствует
Цитата (ZioHik)
оптимизировать код

Я полностью согласен, но исходя из личного опыта, новичкам сложно читать оптимизированный код (Сам таковым являлся). По моему мнению, более понятен код, для тех кто недавно в pawno, когда всё "разложено по полочкам". А оптимизация на второй план, т. к. цель уроков, это понять принцип кодинга.


Alien Brickman [vk.com/alien_brickman]Обложка:
 
ZioHikДата: Среда, 03.04.2013, 23:04 | Сообщение # 4
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует
fenix05, согласен с вами, ваш код отлично подходит для новичков.
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика