Здесь Мы используем темы
Разделение техники
Заводим автомобиль и включаем свет
Делаем объем бака для каждого автомобиля свой
Система АЗС(на файлах)
Сделаем разделение топлива
Объявим максимальное количество техники на сервере
Код:
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
{
}
}Ну вот и все
Дальше будет интереснее. Оставайтесь с нами.


