Почему не крафтится ган?

riiiiiiii

Известный
Автор темы
34
1
Версия MoonLoader
.027.0-preview
Товарищи помогите с кодом, почему не крафтится ган?
Lua:
[/B]
script_name("ebala3")
script_author("R")
script_description("anti zero ammo /aza")

require "lib.moonloader"
local inicfg = require "inicfg"
local cfg = inicfg.load({
    settings = {
        tocraft = 14,
        count = 2
    },
})
inicfg.save(cfg)
local errors = false

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage("ebala3 loaded", 0x00DD00)
    sampRegisterChatCommand("aza", cmd_aza)
    while true do
        wait(1)
        ammo = getAmmoInCharWeapon(PLAYER_PED, 24)

        local aza_tocraft = tonumber(cfg.settings.tocraft)
        local aza_count = tonumber(cfg.settings.count)
        if errors == false then
            prevammo = getAmmoInCharWeapon(PLAYER_PED, 24)
            if prevammo == aza_tocraft then
                sampsendchat(string.format("/de %d", aza_count))
                taskPlayAnim(PLAYER_PED, "camcrch_stay", "CAMERA", 4.0, false, false, true, false, 1)
                wait(1000)
                nowammo = getAmmoInCharWeapon(PLAYER_PED, 24)
                if prevammo == nowammo then
                    errors = true
                    sampAddChatMessage("ebala3 script stopped due to error", 0x00DD00)
                end
            end
        end
    end
end
function cmd_aza(arg)
    local var1, var2 = string.match(arg, "(%d+)%s+(%d+)") -- всё до "inicfg.save" делал через гпт чат
    if var1 and var2 then
    cfg.settings.tocraft = tonumber(var1)
    cfg.settings.count = tonumber(var2)
    
    inicfg.save(cfg)
    sampAddChatMessage("ebala3 config saved: tocraft ="..var1..", count="..var2, 0x00DD00)
    else
        sampAddChatMessage("ebala3: use /aza [tocraft] [count]", 0x00DD00)
    end
end
function saveData()
    inicfg.save({
        settings = {
            tocraft = cfg.settings.tocraft,
            count = cfg.settings.count
        },
    }) 
end
[B]
 

Вложения

  • ebala3.lua
    2 KB · Просмотры: 0

creepymane

Известный
26
16
code:
script_name("ebala3")
script_author("R")
script_description("anti zero ammo /aza")

require "lib.moonloader"
local inicfg = require "inicfg"
local cfg = inicfg.load({
    settings = {
        tocraft = 14,
        count = 2
    },
})
local prevammo = 0

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage("ebala3 loaded", 0x00DD00)
    sampRegisterChatCommand("aza", cmd_aza)
    
    while true do
        wait(100)
        
        local current_ammo = getAmmoInCharWeapon(PLAYER_PED, 24)
        local aza_tocraft = tonumber(cfg.settings.tocraft)
        local aza_count = tonumber(cfg.settings.count)
        
        if current_ammo == aza_tocraft and prevammo > aza_tocraft then
            sampSendChat(string.format("/de %d", aza_count))
            wait(800)
        end
        
        prevammo = current_ammo
    end
end

function cmd_aza(arg)
    local var1, var2 = string.match(arg, "(%d+)%s+(%d+)")
    if var1 and var2 then
        cfg.settings.tocraft = tonumber(var1)
        cfg.settings.count = tonumber(var2)
        inicfg.save(cfg)
        sampAddChatMessage("ebala3 config saved: tocraft ="..var1..", count="..var2, 0x00DD00)
    else
        sampAddChatMessage("ebala3: use /aza [tocraft] [count]", 0x00DD00)
        sampAddChatMessage("Current: tocraft ="..cfg.settings.tocraft..", count="..cfg.settings.count, 0x00DD00)
    end
end

function onScriptTerminate(script, quitGame)
    if script == thisScript() then
        inicfg.save(cfg)
    end
end
Если он должен просто использовать команду /de ..aza_count.. в твоём скрипте, то этот скрипт работает. А если у тебя должен быть реализован какой-то другой функционал, то работать он не будет. По крайней мере то, что я увидел, он просто отслеживает количество патронов, которое у тебя остается, и, которое, ты указал, а далее просто использует команду.
 

riiiiiiii

Известный
Автор темы
34
1
code:
script_name("ebala3")
script_author("R")
script_description("anti zero ammo /aza")

require "lib.moonloader"
local inicfg = require "inicfg"
local cfg = inicfg.load({
    settings = {
        tocraft = 14,
        count = 2
    },
})
local prevammo = 0

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampAddChatMessage("ebala3 loaded", 0x00DD00)
    sampRegisterChatCommand("aza", cmd_aza)
   
    while true do
        wait(100)
       
        local current_ammo = getAmmoInCharWeapon(PLAYER_PED, 24)
        local aza_tocraft = tonumber(cfg.settings.tocraft)
        local aza_count = tonumber(cfg.settings.count)
       
        if current_ammo == aza_tocraft and prevammo > aza_tocraft then
            sampSendChat(string.format("/de %d", aza_count))
            wait(800)
        end
       
        prevammo = current_ammo
    end
end

function cmd_aza(arg)
    local var1, var2 = string.match(arg, "(%d+)%s+(%d+)")
    if var1 and var2 then
        cfg.settings.tocraft = tonumber(var1)
        cfg.settings.count = tonumber(var2)
        inicfg.save(cfg)
        sampAddChatMessage("ebala3 config saved: tocraft ="..var1..", count="..var2, 0x00DD00)
    else
        sampAddChatMessage("ebala3: use /aza [tocraft] [count]", 0x00DD00)
        sampAddChatMessage("Current: tocraft ="..cfg.settings.tocraft..", count="..cfg.settings.count, 0x00DD00)
    end
end

function onScriptTerminate(script, quitGame)
    if script == thisScript() then
        inicfg.save(cfg)
    end
end
Если он должен просто использовать команду /de ..aza_count.. в твоём скрипте, то этот скрипт работает. А если у тебя должен быть реализован какой-то другой функционал, то работать он не будет. По крайней мере то, что я увидел, он просто отслеживает количество патронов, которое у тебя остается, и, которое, ты указал, а далее просто использует команду.
Я хочу чтоб он мне крафтил дигл когда у меня остаётся 2 патрона через команду /de (есть же через /sellgun, но зачем если есть сокращённые команды), но я чёт допереть не могу как это сделать.
 

creepymane

Известный
26
16
Я хочу чтоб он мне крафтил дигл когда у меня остаётся 2 патрона через команду /de (есть же через /sellgun, но зачем если есть сокращённые команды), но я чёт допереть не могу как это сделать.
ну так я тебе скинул готовый код, он тебе крафтит ган при 2 пулях, у тебя скрипт работает по принципу определения количества патронов, потом если он обнаружит 2 пули ласт он пишет команду /de/
 

riiiiiiii

Известный
Автор темы
34
1
ну так я тебе скинул готовый код, он тебе крафтит ган при 2 пулях, у тебя скрипт работает по принципу определения количества патронов, потом если он обнаружит 2 пули ласт он пишет команду /de/
проверил, не работает