• Страница 1 из 1
  • 1
[FAQ] Двигатель, фары, бензин.
WedMacKДата: Воскресенье, 03.07.2011, 23:15 | Сообщение # 1
Сдешний
Сообщений: 51
Награды: 0
Репутация: -1
FAQ по созданию завода двигателя, управления фарами, учета бензина.

Здравствуйте, в этой теме я хотел бы рассказать, как сделать завод двигателя, управление фарами и учет бензина, в зависимости от того заведен двигатель или нет. Возможно, что то подобное уже обсуждалось, но моя тема рассчитана конкретно под мод Godfather, хотя легко можно приспособить и к другому моду.

Подготавливаемся.

Для начала нам нужно убедиться, что версия нашего сервера 0.3c, иначе все бесполезно.
Если с версией все в порядке, приступаем непосредственно к реализации.
Открываем наш мод в pawno, для начала нам нужно создать несколько вспомогательных функций, если их еще нет в моде.

Во-первых нам нужна функция, которая определяет по ID транспорта, велосипед это или нет. Если такой функции нет, создаем ее.
В начале мода прописываем forward IsAVelik(carid);
Затем в любом месте, главное до использования этой функции, описываем ее.

Quote
public IsAVelik(carid)
{
new model = GetVehicleModel(carid);
if(model==509||model==481||model==510)
{
return 1;
}
return 0;
}


Аналогично можно сделать проверку для водного транспорта и воздушного.
После этого нам нужно сделать функцию, которая будет определять состояние двигателя автомобиля (заведен или нет).
Для этого опять в начале мода прописываем forward Checkengine(carid);
Дальше так же описываем функцию.

Quote
public CheckEngine(carid)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective);
if(engine){
return 1;
}
else { return 0; }
}


На этом подготовка закончена, приступаем к основной части.

Реализовываем.

В самом начале public OnGameModeInit() прописываем ManualVehicleEngineAndLights();
Данная функция делает выключенными двигатель и фары, когда игрок садится в машину.
Но тут есть небольшая проблема, двигатель и фары действительно выключены, но если получить параметры автомобиля, то результаты будут такие, как будто двигатель и фары включены. Поэтому в том же паблике после того как объявлены автомобили мода, добавляем следующий цикл:

Quote
or(new i = 0 ; i<99 ; i ++)
{
if(!IsAVelik(i)) {
SetVehicleParamsEx(i,false,false,false,false,false,false,false);
}
else {
SetVehicleParamsEx(i,true,false,false,false,false,false,false); }

}


Вместо 99, пишем количество машин в моде. Данный цикл устанавливает выключенными двигатель и фары у всего транспорта в моде, кроме велосипедов. Аналогично можно проверять водный транспорт и воздушный. Кстати, если в моде у вас есть команда, которая респавнит все машины, то этот же цикл нужно добавить в тело этой команды.

Далее делаем так, что бензин не заканчивается если двигатель выключен.
Ищем public CheckGas() и первая часть этой функции должны выглядеть так:

Quote
public CheckGas()
{
new string[256];
new vehicle = GetPlayerVehicleID(i);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{

if(GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsAVelik(vehicle) && CheckEngine(vehicle))
{

if(Gas[vehicle] >= 1)
{


Quote
Тут важно учесть, что строка с переменой new vehicle = GetPlayerVehicleID(i);, должна быть указана один раз и в том месте где это указано в моем коде. После этого ищем public OnPlayerKeyStateChange

И в самое начало прописываем new vid = GetPlayerVehicleID(playerid); и после объявления переменных добавляем


Quote
if (newkeys == 4 && IsPlayerInVehicle(playerid,vid) && !IsAVelik(vid))
{

new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(engine){SetVehicleParamsEx(vid,false,lights,alarm,doors,bonnet,boot,objective);
format(string, sizeof(string), "* %s заглушил двигатель.",name);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else if(!engine){SetVehicleParamsEx(vid,true,true,alarm,doors,bonnet,boot,objective);
format(string, sizeof(string), "* %s завел двигатель.",name);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}

}
if (newkeys == 1 && IsPlayerInVehicle(playerid,GetPlayerVehicleID(playerid)) && !IsAVelik(vid))
{

new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(lights){SetVehicleParamsEx(vid,engine,false,alarm,doors,bonnet,boot,objective);}
else if(!lights){SetVehicleParamsEx(vid,engine,true,alarm,doors,bonnet,boot,objective);}

}
 
MateoДата: Среда, 18.04.2012, 18:51 | Сообщение # 2
Проверенный
Сообщений: 26
Награды: 0
Репутация: 0
Молодец.

111
 
bob-94Дата: Суббота, 10.11.2012, 21:15 | Сообщение # 3
Проверенный
Сообщений: 20
Награды: 0
Репутация: 0
респект автору от уши спасибо очень помогло
 
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Последние посты Популярные темы Топ пользователей Новые пользователи
Наткнулся на интерес... Пост от [ Dodo ]
[CHEAT] Смена скина ... Пост от [ madeinprestige ]
Cоздание HUD интерфе... Пост от [ Player321 ]
Форма заявки! Пост от [ West ]
[GM] SF-LV TDM v 4.0... Пост от [ kimalto452 ]
[GM] Virtual World Пост от [ kimalto452 ]
[GM] Nero RolePlay Пост от [ kimalto452 ]
[GM] Engine Role PLa... Пост от [ kimalto452 ]
[GM] Godfather (Madt... Пост от [ kimalto452 ]
[GTA CriminalRussia]... Пост от [ kimalto452 ]
Новый шаблон главной Ответов [ 25 ]
Игра "Я знаю 5&... Ответов [ 23 ]
Разработка [GTA-MP] ... Ответов [ 22 ]
[GTA-MP]~Russian'... Ответов [ 21 ]
Какая у вас oc? Ответов [ 16 ]
Общение Ответов [ 16 ]
Как долго вы на Gta-... Ответов [ 12 ]
Города Ответов [ 12 ]
RussianWorld [Долгож... Ответов [ 12 ]
"Вот это прикол... Ответов [ 11 ]
West Постов [ 163 ]
Папа Постов [ 103 ]
Sup Постов [ 80 ]
Deni Постов [ 52 ]
WedMacK Постов [ 51 ]
apaccer Постов [ 50 ]
DriftStyle Постов [ 50 ]
XEK Постов [ 45 ]
AK47 Постов [ 44 ]
heyo Постов [ 36 ]
OffingSTДата [ 22.10.2023 ]
ЛексДата [ 30.09.2022 ]
ArsherДата [ 13.01.2021 ]
Graffiton5656Дата [ 13.01.2021 ]
Grom5656Дата [ 13.01.2021 ]
novok94Дата [ 15.09.2020 ]
ArsebДата [ 17.06.2020 ]
SANEK3826Дата [ 27.12.2019 ]
6twertwgdrgДата [ 13.08.2019 ]
zornik123Дата [ 23.07.2019 ]

Sitemap
Хостинг от uCoz