• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Бензин
adminДата: Вторник, 26.10.2010, 00:34:25 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Начнем с того, что все айди в pawno хранятся в формате integer, расставлены по порядку. То есть когда вы создаете объект, машину, пикап и так далее, ему выдается свой порядковый айди.
Раньше я думал что перед машиной к которой прикрепляешь какое то действие переменную, в ней сохраняется айди в каком то левом формате. То есть без переменных никак. Я ошибался.

Для чего я все это сказал? Это поможет нам сделать маленький код требования бензина для авто, который будет распространятся на все авто и будет иметь маленький размер именно благодаря этому.

В

Code
public OnGameModeInt

Code

      SetTimer("FuelCheck",10000,1);

Мы создали таймер, этот таймер будет вызывать public FuelCheck раз в 10 000 миллисекунд (10 сек), повторяя этот цикл до бесконечности.

Такс, у нас есть таймер для паблика, но у нас нет public, давайте создадим его
В любое свободное место вне public

Code

      new Fuel[2000]; //Переменная котороя отвечает за бензин в машинах
      forward FuelCheck(); //Функция создания public
      public FuelCheck() //Действия public
      {
      for(new i; i<GetMaxPlayers();) //запускаем цикл, он будет повторятся пока i не будет ровна
      //Максимальному количеству игроков установленному в Server.cfg
      {
      if(IsPlayerInAnyVehicle(i)) //Если игрок с айди  = i, сидит в любой машине
      {
      Fuel[GetPlayerVehicleID(i)] -= 1; //Отнимаем 1 литр бензина у машины игрока
      if(Fuel[GetPlayerVehicleID(i)] > 1 ) //Если бензина в машине игрока меньше 1 литра
      {
      RemovePlayerFromVehicle(i); //Выставляем игрока из машины
      SendClientMessage(i,0xffd400aa,"В этой машине нет бензина"); //отправляем игроку сообщение
      }
      ++i;
      }
      }

      return 1;
      }

И так, теперь раз в 10 секунд от у каждой машины отнимается по 1 литру бензина. Если в это время игрок сидит в машине без бензина, его выкидывает из авто.
Но что если игрок сел в машину без бензина? Давайте сделаем так, если игрок сел в машину без бензина, его из нее выкидывало.
Я думаю вы подумали о public OnPlayerEnterVehicle? он срабатывает тогда когда игрок нажимает F у машины. А когда игрок садится в машину, его нельзя выбросить из нее, это происходит потому что игрок еще не в машине, но он садится в нее. Нам нужен public OnPlayerStateChange.
В него вставляем
Code

      if(newstate == 2) //Если игрок водитель авто, зачем нам выкидывать пассажиров?   
      {
      if(Fuel[GetPlayerVehicleID(playerid)] < 1) //Если в тачке нет бензина
      {
      RemovePlayerFromVehicle(playerid); //Выкидываем игрока
      SendClientMessage(playerid,0xffd400aa,"В этой машине нет бензина"); //и отправляем ему сообщение
      }
      }

Ну вот и все.
Как все? А где заправка? Где выдача арендованного бензина? У вас в головах. Я показал вам принцип, объяснил как это сделать. Я могу вам только показать путь, а вы уже сами идете по нему. Такова моя логика. Как я могу вас научить, если вы будите просто копировать мой код?
Скажу так, если вы будите додумывать сами, решать проблемы сами, вы научитесь. А иначе просто пропустите мимо глаз.

Автор:(Xe[N]o)



zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеНачнем с того, что все айди в pawno хранятся в формате integer, расставлены по порядку. То есть когда вы создаете объект, машину, пикап и так далее, ему выдается свой порядковый айди.
Раньше я думал что перед машиной к которой прикрепляешь какое то действие переменную, в ней сохраняется айди в каком то левом формате. То есть без переменных никак. Я ошибался.

Для чего я все это сказал? Это поможет нам сделать маленький код требования бензина для авто, который будет распространятся на все авто и будет иметь маленький размер именно благодаря этому.

В

Code
public OnGameModeInt

Code

      SetTimer("FuelCheck",10000,1);

Мы создали таймер, этот таймер будет вызывать public FuelCheck раз в 10 000 миллисекунд (10 сек), повторяя этот цикл до бесконечности.

Такс, у нас есть таймер для паблика, но у нас нет public, давайте создадим его
В любое свободное место вне public

Code

      new Fuel[2000]; //Переменная котороя отвечает за бензин в машинах
      forward FuelCheck(); //Функция создания public
      public FuelCheck() //Действия public
      {
      for(new i; i<GetMaxPlayers();) //запускаем цикл, он будет повторятся пока i не будет ровна
      //Максимальному количеству игроков установленному в Server.cfg
      {
      if(IsPlayerInAnyVehicle(i)) //Если игрок с айди  = i, сидит в любой машине
      {
      Fuel[GetPlayerVehicleID(i)] -= 1; //Отнимаем 1 литр бензина у машины игрока
      if(Fuel[GetPlayerVehicleID(i)] > 1 ) //Если бензина в машине игрока меньше 1 литра
      {
      RemovePlayerFromVehicle(i); //Выставляем игрока из машины
      SendClientMessage(i,0xffd400aa,"В этой машине нет бензина"); //отправляем игроку сообщение
      }
      ++i;
      }
      }

      return 1;
      }

И так, теперь раз в 10 секунд от у каждой машины отнимается по 1 литру бензина. Если в это время игрок сидит в машине без бензина, его выкидывает из авто.
Но что если игрок сел в машину без бензина? Давайте сделаем так, если игрок сел в машину без бензина, его из нее выкидывало.
Я думаю вы подумали о public OnPlayerEnterVehicle? он срабатывает тогда когда игрок нажимает F у машины. А когда игрок садится в машину, его нельзя выбросить из нее, это происходит потому что игрок еще не в машине, но он садится в нее. Нам нужен public OnPlayerStateChange.
В него вставляем
Code

      if(newstate == 2) //Если игрок водитель авто, зачем нам выкидывать пассажиров?   
      {
      if(Fuel[GetPlayerVehicleID(playerid)] < 1) //Если в тачке нет бензина
      {
      RemovePlayerFromVehicle(playerid); //Выкидываем игрока
      SendClientMessage(playerid,0xffd400aa,"В этой машине нет бензина"); //и отправляем ему сообщение
      }
      }

Ну вот и все.
Как все? А где заправка? Где выдача арендованного бензина? У вас в головах. Я показал вам принцип, объяснил как это сделать. Я могу вам только показать путь, а вы уже сами идете по нему. Такова моя логика. Как я могу вас научить, если вы будите просто копировать мой код?
Скажу так, если вы будите додумывать сами, решать проблемы сами, вы научитесь. А иначе просто пропустите мимо глаз.

Автор:(Xe[N]o)


Автор - admin
Дата добавления - 26.10.2010 в 00:34:25
-=GunsUp=-Дата: Среда, 10.11.2010, 14:38:23 | Сообщение # 2

Группа: Пользователи
Сообщений: 17
Укажи автора, автор статьи я (Xe[N]o)

Готово

 
СообщениеУкажи автора, автор статьи я (Xe[N]o)

Готово


Автор - -=GunsUp=-
Дата добавления - 10.11.2010 в 14:38:23
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
08:50:21
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2024

vkontakte :samp-pawno.ru: