Не меняется значение в ini файле

vidix

Участник
Автор темы
46
6
Версия MoonLoader
.027.0-preview
Всем привет. Команда /markset [arg] должна изменять значение ключа на arg. Но, она ничего не меняет, подскажите пожалуйста, что мне делать?
1626041161623.png
 
Решение
Функцию задействовал, но ничего не меняется
Ну потому что код говно.

Lua:
script_name('PatrolHelper')
script_author('vidix')
script_version(1.0)
script_version_number(1)

require "lib.moonloader"
require "lib.sampfuncs"

local inicfg = require "inicfg"

local mainIni = inicfg.load({
  patrol =
  {
    mark = ""
  }
})
--local stateIni = inicfg.save(mainIni, derictIni)

-- // Доп.инфа // --
local info = {
    [0] = {'Code 0 - Самый приоритетный вызов, обычно объявляется, когда офицер/офицеры на земле (ранены/убиты).', 'Code 1 - Офицер в бедственном положении, под обстрелом например, но ещё в состоянии стоять на ногах. Второй по приоритету вызов после Code 0.', 'Code 1-1 - Выезжаем с гаража.', 'Code 1-3 - Уходим с патруля...

vidix

Участник
Автор темы
46
6
Там много лишнего, которое буду убирать.
Код:
script_name('PatrolHelper')
script_author('vidix')
script_version(1.0)
script_version_number(1)

require "lib.moonloader"
require "lib.sampfuncs"

local inicfg = require "inicfg"

local directIni = "moonloader\\patrol.ini"

local mainIni = inicfg.load(nil, directIni)
--local stateIni = inicfg.save(mainIni, derictIni)

-- // Доп.инфа // --
local info = {
    [0] = {'Code 0 - Самый приоритетный вызов, обычно объявляется, когда офицер/офицеры на земле (ранены/убиты).', 'Code 1 - Офицер в бедственном положении, под обстрелом например, но ещё в состоянии стоять на ногах. Второй по приоритету вызов после Code 0.', 'Code 1-1 - Выезжаем с гаража.', 'Code 1-3 - Уходим с патруля [Причина].', 'Code 1-4 - Везём преступника в департамент.', 'Code 2 - Требуется подмога, тихий режим (без сирен/стробоскопов).', 'Code 3 - Срочно требуется подмога/экстренный вызов, необходимо срочно выехать на местоположение, где объявлен код.', 'Code 4 - Ситуация под контролем/справимся сами.', 'Code 4 ADAM - Ситуация под контролем/справимся сами, однако ближайшие патрули должны быть готовы оказать поддержку.', 'Code 5 - Требуется подмога близ находящихся патрулей.', 'Code 6 - Офицерам держаться подальше от опасного места. (Включая локацию)', 'Code 7 - Обеденный перерыв. (Включая локацию, где остановится юнит для перекуса)', 'Code 8 - Требуется скорая помощь. (Включая локацию и код ситуации)', 'Code 9 - Выставить оцепление. (Включая локацию)', 'Code 21 - Преступник был нейтрализован.', 'Code 50 - Доложить о составе полиции на рабочем месте.'},
    [1] = {'10-3 - Радио-молчание (для срочных сообщений).', '10-4 - Принято.', '10-6 - Отрицательно.', '10-00 - Всем сотрудникам выйти на связь.', '10-20 - Локация (местоположение).', '10-27 - Смена маркировки патруля (включая старую и новую маркировку).', '10-30 - Дорожное транспортное происшествие.', '10-50 - Прошу слова.', '10-55 - Провожу трафик-стоп', '10-57 V (VICTOR) - Начинаю преследование авто с нарушителем.', '10-57 F (FOXTROT) - Начинаю пешее преследование за нарушителем.', '10-60 - Информация об автомобиле.', '10-61 - Информация об пешем преступнике.', '10-66 - Провожу трафик-стоп повышенного риска.', '10-90 - Повторите сообщение.', '10-99 - Ситуация урегулирована (Возобновление нормальной работы).'},
    [2] = {'A(Adam) - Парный патрульный юнит состоящий из двух офицеров Patrol Division (Иногда может состоять из трёх офицеров).', 'L(Lincoln) - Одиночный патрульный юнит состоящий из одного офицера Patrol Division.', 'M(Mary) - Одиночный мото-юнит. (Cop Bike)', 'H(Henry,HSIU) - Одиночный или парный скоростной юнит. (Cheetah)', 'ASD (Air Support Division) - Парный Эйр юнит состоящий из пилота и координатора. (Police Maverick)', 'D(David) - Юнит Platoon D (SWAT) состоящий от двух до четырёх офицеров Platoon D.', 'C(Charles) - Юнит Platoon C состоящий от двух до четырёх офицеров Platoon C.', 'K(King) - Юнит Platoon K9 состоящий от одного до четырёх кинологов.', 'R(Robert) - Юнит детективов Robbery Homicide Division состоящий от одного до четырёх детективов.', 'G(George) - Юнит детективов Gang&Narcotics Division состоящий от одного до четырёх детективов.', 'VICE - Юнит детективов Organised Crime and Vice Division состоящий от одного до четырёх детективов.', 'F(Felix) - Юнит детективов Internal Affairs Division состоящий от одного до четырёх детективов.'}
}

prefix = "{ffffff}[{0055ff}Patrol{ff3c0f}Helper{ffffff}]:"

-- // Диалоги // --
local dialogArr2 = {"Ситуационные коды", "Тен-коды", "Маркировки"}
local dialogArr3 = {"A(Adam)", "L(Lincoln)", "M(Mary)", "H(Henry)", "ASD(Air Support Division)", "D(David)", "C(Charles)", "K(King)", "R(Robert)", "G(George)", "VICE", "F(Felix)"}
local dialogArr4 = {"A(Adam)", "L(Lincoln)", "M(Mary)", "H(Henry)", "ASD(Air Support Division)", "D(David)", "C(Charles)", "K(King)", "R(Robert)", "G(George)", "VICE", "F(Felix)"}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    print('Скрипт успешно загружен!')
    sampAddChatMessage(prefix ..' Скрипт {2de320}успешно {ffffff}загружен! Введите команду /phelp.', -1)

    sampRegisterChatCommand('phelp', cmd_help)
    sampRegisterChatCommand('pinfo', function()
        sampShowDialog(2, 'Выберите раздел', arrayDialog(dialogArr2), 'Выбрать', 'Закрыть', 2)
    end)
    sampRegisterChatCommand('pstart', function()
        sampShowDialog(3, 'Выберите маркировку', arrayDialog(dialogArr3), 'Выбрать', 'Закрыть', 2)
    end)
    sampRegisterChatCommand('markset', cmd_markset)
    sampRegisterChatCommand('markget', cmd_markget)
    sampRegisterChatCommand('pstop', cmd_stop)
    sampRegisterChatCommand('doclad', cmd_doclad)

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    while true do
        wait(0)
        local result, button, list, input = sampHasDialogRespond(2)
        if result then
            if button == 1 then
                if list == 0 then
                    sampAddChatMessage('Список ситуационных кодов:', -1)
                    arrayAddChatMessage(info[list], 70)
                elseif list == 1 then
                    sampAddChatMessage('Список тен-кодов:', -1)
                    arrayAddChatMessage(info[list], 70)
                elseif list == 2 then
                    sampAddChatMessage('Список маркировок:', -1)
                    arrayAddChatMessage(info[list], 70)
                end
            else

            end
        end

        local result, button, list, input = sampHasDialogRespond(3)
        if result then
            if button == 1 then
                if list == 0 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как A-6, доступен.')
                elseif list == 1 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как L-4, доступен.')
                elseif list == 2 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как M-2, доступен.')
                elseif list == 3 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как H-7, доступен.')
                elseif list == 4 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как ASD-3, доступен.')
                elseif list == 5 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как D-5, доступен.')
                elseif list == 6 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как C-8, доступен.')
                elseif list == 7 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как K-6, доступен.')
                elseif list == 8 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как R-1, доступен.')
                elseif list == 9 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как G-9, доступен.')
                elseif list == 10 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как V-11, доступен.')
                elseif list == 11 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как F-6, доступен.')
                end
            else

            end
        end

        local result, button, list, input = sampHasDialogRespond(4)
        if result then
            if button == 1 then
                if list == 0 then
                    mainIni.patrol.mark = Adam
                    if inicfg.save(mainIni, derictIni) then
                        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
                    else
                        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
                    end
                elseif list == 1 then
                    mainIni.patrol.mark = Lincoln
                    if inicfg.save(mainIni, derictIni) then
                        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
                    else
                        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
                    end
                elseif list == 2 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как M-2, доступен.')
                elseif list == 3 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как H-7, доступен.')
                elseif list == 4 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как ASD-3, доступен.')
                elseif list == 5 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как D-5, доступен.')
                elseif list == 6 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как C-8, доступен.')
                elseif list == 7 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как K-6, доступен.')
                elseif list == 8 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как R-1, доступен.')
                elseif list == 9 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как G-9, доступен.')
                elseif list == 10 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как V-11, доступен.')
                elseif list == 11 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как F-6, доступен.')
                end
            else

            end
        end
    end
end

function cmd_markset()
    sampShowDialog(4, 'Выберите маркировку', arrayDialog(dialogArr4), 'Выбрать', 'Закрыть', 2)
end

function cmd_mark(arg)
    mainIni.patrol.mark = arg
    if inicfg.save(mainIni, derictIni) then
        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
    else
        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
    end
end

function cmd_markget(arg)
    mainIni = inicfg.load(nil, directIni)
    sampAddChatMessage(prefix .. ' Выбранная маркировка: ' .. mainIni.patrol.mark .. '.', -1)
end

function cmd_help()
    sampAddChatMessage(prefix .. ' Список команд:', -1)
    sampAddChatMessage(prefix .. ' /doclad - Меню докладов.', -1)
    sampAddChatMessage(prefix .. ' /patrolinfo - Дополнительная информация для патруля.', -1)
    sampAddChatMessage(prefix .. ' /patrolstart - Заступить в патруль.', -1)
    sampAddChatMessage(prefix .. ' /patrolstop - Завершить патруль.', -1)
end

function arrayDialog(array)
    local dialog_str = ''
    for _, str in pairs(array) do
        dialog_str = dialog_str .. str .. '\n'
    end
    return dialog_str
end

function arrayAddChatMessage(array, delay)
    lua_thread.create(function()
        for _, str in pairs(array) do
            sampAddChatMessage(str, 0xffffff); wait(delay)
        end
    end)
end
 

Fott

Простреленный
3,436
2,280
Там много лишнего, которое буду убирать.
Код:
script_name('PatrolHelper')
script_author('vidix')
script_version(1.0)
script_version_number(1)

require "lib.moonloader"
require "lib.sampfuncs"

local inicfg = require "inicfg"

local directIni = "moonloader\\patrol.ini"

local mainIni = inicfg.load(nil, directIni)
--local stateIni = inicfg.save(mainIni, derictIni)

-- // Доп.инфа // --
local info = {
    [0] = {'Code 0 - Самый приоритетный вызов, обычно объявляется, когда офицер/офицеры на земле (ранены/убиты).', 'Code 1 - Офицер в бедственном положении, под обстрелом например, но ещё в состоянии стоять на ногах. Второй по приоритету вызов после Code 0.', 'Code 1-1 - Выезжаем с гаража.', 'Code 1-3 - Уходим с патруля [Причина].', 'Code 1-4 - Везём преступника в департамент.', 'Code 2 - Требуется подмога, тихий режим (без сирен/стробоскопов).', 'Code 3 - Срочно требуется подмога/экстренный вызов, необходимо срочно выехать на местоположение, где объявлен код.', 'Code 4 - Ситуация под контролем/справимся сами.', 'Code 4 ADAM - Ситуация под контролем/справимся сами, однако ближайшие патрули должны быть готовы оказать поддержку.', 'Code 5 - Требуется подмога близ находящихся патрулей.', 'Code 6 - Офицерам держаться подальше от опасного места. (Включая локацию)', 'Code 7 - Обеденный перерыв. (Включая локацию, где остановится юнит для перекуса)', 'Code 8 - Требуется скорая помощь. (Включая локацию и код ситуации)', 'Code 9 - Выставить оцепление. (Включая локацию)', 'Code 21 - Преступник был нейтрализован.', 'Code 50 - Доложить о составе полиции на рабочем месте.'},
    [1] = {'10-3 - Радио-молчание (для срочных сообщений).', '10-4 - Принято.', '10-6 - Отрицательно.', '10-00 - Всем сотрудникам выйти на связь.', '10-20 - Локация (местоположение).', '10-27 - Смена маркировки патруля (включая старую и новую маркировку).', '10-30 - Дорожное транспортное происшествие.', '10-50 - Прошу слова.', '10-55 - Провожу трафик-стоп', '10-57 V (VICTOR) - Начинаю преследование авто с нарушителем.', '10-57 F (FOXTROT) - Начинаю пешее преследование за нарушителем.', '10-60 - Информация об автомобиле.', '10-61 - Информация об пешем преступнике.', '10-66 - Провожу трафик-стоп повышенного риска.', '10-90 - Повторите сообщение.', '10-99 - Ситуация урегулирована (Возобновление нормальной работы).'},
    [2] = {'A(Adam) - Парный патрульный юнит состоящий из двух офицеров Patrol Division (Иногда может состоять из трёх офицеров).', 'L(Lincoln) - Одиночный патрульный юнит состоящий из одного офицера Patrol Division.', 'M(Mary) - Одиночный мото-юнит. (Cop Bike)', 'H(Henry,HSIU) - Одиночный или парный скоростной юнит. (Cheetah)', 'ASD (Air Support Division) - Парный Эйр юнит состоящий из пилота и координатора. (Police Maverick)', 'D(David) - Юнит Platoon D (SWAT) состоящий от двух до четырёх офицеров Platoon D.', 'C(Charles) - Юнит Platoon C состоящий от двух до четырёх офицеров Platoon C.', 'K(King) - Юнит Platoon K9 состоящий от одного до четырёх кинологов.', 'R(Robert) - Юнит детективов Robbery Homicide Division состоящий от одного до четырёх детективов.', 'G(George) - Юнит детективов Gang&Narcotics Division состоящий от одного до четырёх детективов.', 'VICE - Юнит детективов Organised Crime and Vice Division состоящий от одного до четырёх детективов.', 'F(Felix) - Юнит детективов Internal Affairs Division состоящий от одного до четырёх детективов.'}
}

prefix = "{ffffff}[{0055ff}Patrol{ff3c0f}Helper{ffffff}]:"

-- // Диалоги // --
local dialogArr2 = {"Ситуационные коды", "Тен-коды", "Маркировки"}
local dialogArr3 = {"A(Adam)", "L(Lincoln)", "M(Mary)", "H(Henry)", "ASD(Air Support Division)", "D(David)", "C(Charles)", "K(King)", "R(Robert)", "G(George)", "VICE", "F(Felix)"}
local dialogArr4 = {"A(Adam)", "L(Lincoln)", "M(Mary)", "H(Henry)", "ASD(Air Support Division)", "D(David)", "C(Charles)", "K(King)", "R(Robert)", "G(George)", "VICE", "F(Felix)"}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    print('Скрипт успешно загружен!')
    sampAddChatMessage(prefix ..' Скрипт {2de320}успешно {ffffff}загружен! Введите команду /phelp.', -1)

    sampRegisterChatCommand('phelp', cmd_help)
    sampRegisterChatCommand('pinfo', function()
        sampShowDialog(2, 'Выберите раздел', arrayDialog(dialogArr2), 'Выбрать', 'Закрыть', 2)
    end)
    sampRegisterChatCommand('pstart', function()
        sampShowDialog(3, 'Выберите маркировку', arrayDialog(dialogArr3), 'Выбрать', 'Закрыть', 2)
    end)
    sampRegisterChatCommand('markset', cmd_markset)
    sampRegisterChatCommand('markget', cmd_markget)
    sampRegisterChatCommand('pstop', cmd_stop)
    sampRegisterChatCommand('doclad', cmd_doclad)

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    while true do
        wait(0)
        local result, button, list, input = sampHasDialogRespond(2)
        if result then
            if button == 1 then
                if list == 0 then
                    sampAddChatMessage('Список ситуационных кодов:', -1)
                    arrayAddChatMessage(info[list], 70)
                elseif list == 1 then
                    sampAddChatMessage('Список тен-кодов:', -1)
                    arrayAddChatMessage(info[list], 70)
                elseif list == 2 then
                    sampAddChatMessage('Список маркировок:', -1)
                    arrayAddChatMessage(info[list], 70)
                end
            else

            end
        end

        local result, button, list, input = sampHasDialogRespond(3)
        if result then
            if button == 1 then
                if list == 0 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как A-6, доступен.')
                elseif list == 1 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как L-4, доступен.')
                elseif list == 2 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как M-2, доступен.')
                elseif list == 3 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как H-7, доступен.')
                elseif list == 4 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как ASD-3, доступен.')
                elseif list == 5 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как D-5, доступен.')
                elseif list == 6 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как C-8, доступен.')
                elseif list == 7 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как K-6, доступен.')
                elseif list == 8 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как R-1, доступен.')
                elseif list == 9 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как G-9, доступен.')
                elseif list == 10 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как V-11, доступен.')
                elseif list == 11 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как F-6, доступен.')
                end
            else

            end
        end

        local result, button, list, input = sampHasDialogRespond(4)
        if result then
            if button == 1 then
                if list == 0 then
                    mainIni.patrol.mark = Adam
                    if inicfg.save(mainIni, derictIni) then
                        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
                    else
                        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
                    end
                elseif list == 1 then
                    mainIni.patrol.mark = Lincoln
                    if inicfg.save(mainIni, derictIni) then
                        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
                    else
                        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
                    end
                elseif list == 2 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как M-2, доступен.')
                elseif list == 3 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как H-7, доступен.')
                elseif list == 4 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как ASD-3, доступен.')
                elseif list == 5 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как D-5, доступен.')
                elseif list == 6 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как C-8, доступен.')
                elseif list == 7 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как K-6, доступен.')
                elseif list == 8 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как R-1, доступен.')
                elseif list == 9 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как G-9, доступен.')
                elseif list == 10 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как V-11, доступен.')
                elseif list == 11 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как F-6, доступен.')
                end
            else

            end
        end
    end
end

function cmd_markset()
    sampShowDialog(4, 'Выберите маркировку', arrayDialog(dialogArr4), 'Выбрать', 'Закрыть', 2)
end

function cmd_mark(arg)
    mainIni.patrol.mark = arg
    if inicfg.save(mainIni, derictIni) then
        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
    else
        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
    end
end

function cmd_markget(arg)
    mainIni = inicfg.load(nil, directIni)
    sampAddChatMessage(prefix .. ' Выбранная маркировка: ' .. mainIni.patrol.mark .. '.', -1)
end

function cmd_help()
    sampAddChatMessage(prefix .. ' Список команд:', -1)
    sampAddChatMessage(prefix .. ' /doclad - Меню докладов.', -1)
    sampAddChatMessage(prefix .. ' /patrolinfo - Дополнительная информация для патруля.', -1)
    sampAddChatMessage(prefix .. ' /patrolstart - Заступить в патруль.', -1)
    sampAddChatMessage(prefix .. ' /patrolstop - Завершить патруль.', -1)
end

function arrayDialog(array)
    local dialog_str = ''
    for _, str in pairs(array) do
        dialog_str = dialog_str .. str .. '\n'
    end
    return dialog_str
end

function arrayAddChatMessage(array, delay)
    lua_thread.create(function()
        for _, str in pairs(array) do
            sampAddChatMessage(str, 0xffffff); wait(delay)
        end
    end)
end
Lua:
local mainIni = inicfg.load({
  patrol =
  {
    mark = ""
  }
}, directIni)
 
  • Нравится
Реакции: vidix

Fott

Простреленный
3,436
2,280
Функцию задействовал, но ничего не меняется
Ну потому что код говно.

Lua:
script_name('PatrolHelper')
script_author('vidix')
script_version(1.0)
script_version_number(1)

require "lib.moonloader"
require "lib.sampfuncs"

local inicfg = require "inicfg"

local mainIni = inicfg.load({
  patrol =
  {
    mark = ""
  }
})
--local stateIni = inicfg.save(mainIni, derictIni)

-- // Доп.инфа // --
local info = {
    [0] = {'Code 0 - Самый приоритетный вызов, обычно объявляется, когда офицер/офицеры на земле (ранены/убиты).', 'Code 1 - Офицер в бедственном положении, под обстрелом например, но ещё в состоянии стоять на ногах. Второй по приоритету вызов после Code 0.', 'Code 1-1 - Выезжаем с гаража.', 'Code 1-3 - Уходим с патруля [Причина].', 'Code 1-4 - Везём преступника в департамент.', 'Code 2 - Требуется подмога, тихий режим (без сирен/стробоскопов).', 'Code 3 - Срочно требуется подмога/экстренный вызов, необходимо срочно выехать на местоположение, где объявлен код.', 'Code 4 - Ситуация под контролем/справимся сами.', 'Code 4 ADAM - Ситуация под контролем/справимся сами, однако ближайшие патрули должны быть готовы оказать поддержку.', 'Code 5 - Требуется подмога близ находящихся патрулей.', 'Code 6 - Офицерам держаться подальше от опасного места. (Включая локацию)', 'Code 7 - Обеденный перерыв. (Включая локацию, где остановится юнит для перекуса)', 'Code 8 - Требуется скорая помощь. (Включая локацию и код ситуации)', 'Code 9 - Выставить оцепление. (Включая локацию)', 'Code 21 - Преступник был нейтрализован.', 'Code 50 - Доложить о составе полиции на рабочем месте.'},
    [1] = {'10-3 - Радио-молчание (для срочных сообщений).', '10-4 - Принято.', '10-6 - Отрицательно.', '10-00 - Всем сотрудникам выйти на связь.', '10-20 - Локация (местоположение).', '10-27 - Смена маркировки патруля (включая старую и новую маркировку).', '10-30 - Дорожное транспортное происшествие.', '10-50 - Прошу слова.', '10-55 - Провожу трафик-стоп', '10-57 V (VICTOR) - Начинаю преследование авто с нарушителем.', '10-57 F (FOXTROT) - Начинаю пешее преследование за нарушителем.', '10-60 - Информация об автомобиле.', '10-61 - Информация об пешем преступнике.', '10-66 - Провожу трафик-стоп повышенного риска.', '10-90 - Повторите сообщение.', '10-99 - Ситуация урегулирована (Возобновление нормальной работы).'},
    [2] = {'A(Adam) - Парный патрульный юнит состоящий из двух офицеров Patrol Division (Иногда может состоять из трёх офицеров).', 'L(Lincoln) - Одиночный патрульный юнит состоящий из одного офицера Patrol Division.', 'M(Mary) - Одиночный мото-юнит. (Cop Bike)', 'H(Henry,HSIU) - Одиночный или парный скоростной юнит. (Cheetah)', 'ASD (Air Support Division) - Парный Эйр юнит состоящий из пилота и координатора. (Police Maverick)', 'D(David) - Юнит Platoon D (SWAT) состоящий от двух до четырёх офицеров Platoon D.', 'C(Charles) - Юнит Platoon C состоящий от двух до четырёх офицеров Platoon C.', 'K(King) - Юнит Platoon K9 состоящий от одного до четырёх кинологов.', 'R(Robert) - Юнит детективов Robbery Homicide Division состоящий от одного до четырёх детективов.', 'G(George) - Юнит детективов Gang&Narcotics Division состоящий от одного до четырёх детективов.', 'VICE - Юнит детективов Organised Crime and Vice Division состоящий от одного до четырёх детективов.', 'F(Felix) - Юнит детективов Internal Affairs Division состоящий от одного до четырёх детективов.'}
}

prefix = "{ffffff}[{0055ff}Patrol{ff3c0f}Helper{ffffff}]:"

-- // Диалоги // --
local dialogArr2 = {"Ситуационные коды", "Тен-коды", "Маркировки"}
local dialogArr3 = {"A(Adam)", "L(Lincoln)", "M(Mary)", "H(Henry)", "ASD(Air Support Division)", "D(David)", "C(Charles)", "K(King)", "R(Robert)", "G(George)", "VICE", "F(Felix)"}
local dialogArr4 = {"A(Adam)", "L(Lincoln)", "M(Mary)", "H(Henry)", "ASD(Air Support Division)", "D(David)", "C(Charles)", "K(King)", "R(Robert)", "G(George)", "VICE", "F(Felix)"}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    print('Скрипт успешно загружен!')
    sampAddChatMessage(prefix ..' Скрипт {2de320}успешно {ffffff}загружен! Введите команду /phelp.', -1)

    sampRegisterChatCommand('phelp', cmd_help)
    sampRegisterChatCommand('pinfo', function()
        sampShowDialog(2, 'Выберите раздел', arrayDialog(dialogArr2), 'Выбрать', 'Закрыть', 2)
    end)
    sampRegisterChatCommand('pstart', function()
        sampShowDialog(3, 'Выберите маркировку', arrayDialog(dialogArr3), 'Выбрать', 'Закрыть', 2)
    end)
    sampRegisterChatCommand('markset', cmd_markset)
    sampRegisterChatCommand('markget', cmd_markget)
    sampRegisterChatCommand('pstop', cmd_stop)
    sampRegisterChatCommand('doclad', cmd_doclad)

    _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
    nick = sampGetPlayerNickname(id)

    while true do
        wait(0)
        local result, button, list, input = sampHasDialogRespond(2)
        if result then
            if button == 1 then
                if list == 0 then
                    sampAddChatMessage('Список ситуационных кодов:', -1)
                    arrayAddChatMessage(info[list], 70)
                elseif list == 1 then
                    sampAddChatMessage('Список тен-кодов:', -1)
                    arrayAddChatMessage(info[list], 70)
                elseif list == 2 then
                    sampAddChatMessage('Список маркировок:', -1)
                    arrayAddChatMessage(info[list], 70)
                end
            else

            end
        end

        local result, button, list, input = sampHasDialogRespond(3)
        if result then
            if button == 1 then
                if list == 0 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как A-6, доступен.')
                elseif list == 1 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как L-4, доступен.')
                elseif list == 2 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как M-2, доступен.')
                elseif list == 3 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как H-7, доступен.')
                elseif list == 4 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как ASD-3, доступен.')
                elseif list == 5 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как D-5, доступен.')
                elseif list == 6 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как C-8, доступен.')
                elseif list == 7 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как K-6, доступен.')
                elseif list == 8 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как R-1, доступен.')
                elseif list == 9 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как G-9, доступен.')
                elseif list == 10 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как V-11, доступен.')
                elseif list == 11 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как F-6, доступен.')
                end
            else

            end
        end

        local result, button, list, input = sampHasDialogRespond(4)
        if result then
            if button == 1 then
                if list == 0 then
                    mainIni.patrol.mark = Adam
                    if inicfg.save(mainIni, derictIni) then
                        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
                    else
                        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
                    end
                elseif list == 1 then
                    mainIni.patrol.mark = Lincoln
                    if inicfg.save(mainIni, derictIni) then
                        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
                    else
                        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
                    end
                elseif list == 2 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как M-2, доступен.')
                elseif list == 3 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как H-7, доступен.')
                elseif list == 4 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как ASD-3, доступен.')
                elseif list == 5 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как D-5, доступен.')
                elseif list == 6 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как C-8, доступен.')
                elseif list == 7 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как K-6, доступен.')
                elseif list == 8 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как R-1, доступен.')
                elseif list == 9 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как G-9, доступен.')
                elseif list == 10 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как V-11, доступен.')
                elseif list == 11 then
                    sampSendChat('/r '.. nick ..' на CONTROL, заступаю в патруль как F-6, доступен.')
                end
            else

            end
        end
    end
end

function cmd_markset(arg)
     mainIni.patrol.mark = arg
    if inicfg.save(mainIni, derictIni) then
        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
    else
        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
    end
end

function cmd_mark(arg)
    mainIni.patrol.mark = arg
    if inicfg.save(mainIni, derictIni) then
        sampAddChatMessage(prefix .. ' {60a813}Маркировка успешно изменена.', -1)
    else
        sampAddChatMessage(prefix .. ' {bf524e}Маркировку не удалось сохранить.', -1)
    end
end

function cmd_markget(arg)
    mainIni = inicfg.load(nil, directIni)
    sampAddChatMessage(prefix .. ' Выбранная маркировка: ' .. mainIni.patrol.mark .. '.', -1)
end

function cmd_help()
    sampAddChatMessage(prefix .. ' Список команд:', -1)
    sampAddChatMessage(prefix .. ' /doclad - Меню докладов.', -1)
    sampAddChatMessage(prefix .. ' /patrolinfo - Дополнительная информация для патруля.', -1)
    sampAddChatMessage(prefix .. ' /patrolstart - Заступить в патруль.', -1)
    sampAddChatMessage(prefix .. ' /patrolstop - Завершить патруль.', -1)
end

function arrayDialog(array)
    local dialog_str = ''
    for _, str in pairs(array) do
        dialog_str = dialog_str .. str .. '\n'
    end
    return dialog_str
end

function arrayAddChatMessage(array, delay)
    lua_thread.create(function()
        for _, str in pairs(array) do
            sampAddChatMessage(str, 0xffffff); wait(delay)
        end
    end)
end
1626085971960.png
1626085984919.png