Здесь Мы используем темы
Разделение техники
Заводим автомобиль и включаем свет
Делаем объем бака для каждого автомобиля свой
Система АЗС(на файлах)
Сделаем разделение топлива
Объявим максимальное количество техники на сервере
Код:
const MAX_VEHICLES = 1024;
Создадим переменные
Код:
local Fuel = array(MAX_VEHICLES, 0); local fuelCheckTimer; // таймер
В onScriptInit
Код:
fuelCheckTimer = timer(fuelCheck, 30000, -1); // таймер for (local car = 0; car < MAX_VEHICLES; car++) { Fuel[car] = 10; // начальное количество топлива в технике при старте сервера }
В onScriptExit
Код:
fuelCheckTimer.kill(); // убиваем таймер
Сделаем пару функций
Код:
function fuelCheck() // чтоб расходовалось топливо { foreach(playerid, playername in getPlayers()) { local vehid = getPlayerVehicleId(playerid).tointeger(); if(BoatVeh(vehid)||PlaneVeh(vehid)) return true; if(Engine[playerid] == 1) { if(Fuel[vehid] > 0) { Fuel[vehid]--; if(Fuel[vehid] == 0) { Engine[playerid] = 0; setVehicleEngineState(vehid, false); sendPlayerMessage(playerid,"Двигатель заглох",0xB4B5B7FF); } } else if(Fuel[vehid] <= 0) { Engine[playerid] = 0; setVehicleEngineState(vehid, false); sendPlayerMessage(playerid,"Двигатель заглох",0xB4B5B7FF); } } } } function fillUp() // заправка { foreach(playerid, playername in getPlayers()) { for(local a = 0; a< AZSInfo.len(); a++) { local carid = getPlayerVehicleId(playerid); local up = fuelMax(carid) - Fuel[carid]; local summa; if(AZSInfo[a].AZSProd < up) return sendPlayerMessage(playerid,"На АЗС закончились запасы топлива",0xB4B5B7FF); if(IsADiesel(carid)){ summa = up*AZSInfo[a].AZSCenaDis; } else if(IsA92Fuel(carid)){ summa = up*AZSInfo[a].AZSCena92; } else if(IsA95Fuel(carid)){ summa = up*AZSInfo[a].AZSCena95; } Fuel[carid] += up; users[playerid].money -= summa; givePlayerMoney(playerid, -summa); AZSInfo[a].AZSTill += summa; AZSInfo[a].AZSProd -= up; saveCFG(); sendPlayerMessage(playerid,"Вы заправили "+up+" л на сумму $"+summa,0xB4B5B7FF); } } }
Теперь в скрипт KeyPress.nut после
Код:
if(key == "l" && status == "down") { triggerServerEvent("switchLights"); }
Вставим
Код:
if(key == "h" && status == "down") // при нажатии на кнопку H(Сигнал) вызываем диалог { triggerServerEvent("fill"); }
Теперь в сам мод вставим функцию
Код:
addEvent("fill", function(playerid) { for(local a = 0; a< AZSInfo.len(); a++) { if(playerToPoint(playerid, 5.0, AZSInfo[a].AZSEntranceX, AZSInfo[a].AZSEntranceY, AZSInfo[a].AZSEntranceZ) && isPlayerInAnyVehicle(playerid)){ if(Engine[playerid] == 1) return sendPlayerMessage(playerid, "Заглушите автомобиль", 0xB4B5B7FF); showPlayerDialog(playerid, 4, 0, "АЗС", "Вы хотите заправить автомобиль?", "Да", "Нет"); } } } );
Ну и наконец в onDialogResponse
Код:
if(dialogid == 4) { if(response) { fillUp(); } else { } }
Ну вот и все
Дальше будет интереснее. Оставайтесь с нами.