измена значения переменной написанием в чат

Oki_Bern

Участник
Автор темы
247
6
Версия MoonLoader
Другое
Мне нужно чтоб когда я вводил команду в чате, а после нее число, и переменная бы меня значения на это число, например я пишу /text 1 и переменная равна одному, и я хочу чтоб это сохранялось в ini, пытался найти гайды на что то более менее похожее, но не нашел
 
  • Нравится
Реакции: TravkaCode.lover()
Решение
хотел сделать вот так:
Lua:
while true do
        wait(0)
        local hp = getCharHealth(PLAYER_PED)
        if (тут переменная) and hp < arg then
            sampProcessChatInput('/q')
        end
    end
но почему то не робит когда вмето числа arg
нафига ты к арг обращаешься, в данном случае он имеет значение только в пределах функции, где ты сохраняешь его в конфиг. Обращайся к значению из конфига
Lua:
local inicfg = require 'inicfg'
local ini = inicfg.load({
    set = {
        text = 0, -- здесь будет хранится нужный текст
    }}, 'ScriptName.ini')
inicfg.save(ini, 'ScriptName.ini')

function main()
    sampRegisterChatCommand('text', function(arg) -- регаем команду text
        if tonumber(arg) and tonumber(arg) >= 1 and...

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,992
2,187
вот простой пример сохранения в конфиг
Lua:
local inicfg = require 'inicfg'
local ini = inicfg.load({
    set = {
        text = '', -- здесь будет хранится нужный текст
    }}, 'ScriptName.ini')
inicfg.save(ini, 'ScriptName.ini')

function main()
    sampRegisterChatCommand('text', function(arg) -- регаем команду text
        if arg ~= '' then -- если аргумент не пустой, то
            ini.set.text = arg -- записываем в конфиг аргумент
            inicfg.save(ini, 'ScriptName.ini') -- сохраняем конфиг
            sampAddChatMessage('Новое значение конфига: '..ini.set.text,-1)
        else -- если аргумент всё таки пустой, то
            sampAddChatMessage('Текущее значение конфига: '..ini.set.text,-1) -- выводим в чат текущщее значение сохраненного текста
        end
    end)
    wait(-1)
end

 

Oki_Bern

Участник
Автор темы
247
6
вот простой пример сохранения в конфиг
Lua:
local inicfg = require 'inicfg'
local ini = inicfg.load({
    set = {
        text = '', -- здесь будет хранится нужный текст
    }}, 'ScriptName.ini')
inicfg.save(ini, 'ScriptName.ini')

function main()
    sampRegisterChatCommand('text', function(arg) -- регаем команду text
        if arg ~= '' then -- если аргумент не пустой, то
            ini.set.text = arg -- записываем в конфиг аргумент
            inicfg.save(ini, 'ScriptName.ini') -- сохраняем конфиг
            sampAddChatMessage('Новое значение конфига: '..ini.set.text,-1)
        else -- если аргумент всё таки пустой, то
            sampAddChatMessage('Текущее значение конфига: '..ini.set.text,-1) -- выводим в чат текущщее значение сохраненного текста
        end
    end)
    wait(-1)
end

А не подскажешь, как сделать, что-бы писать можно было только цифры(желательно от 1 до 100)
 

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,992
2,187
А не подскажешь, как сделать, что-бы писать можно было только цифры(желательно от 1 до 100)
на 10 строке поменяй проверку
Lua:
if tonumber(arg) >= 1 and tonumber(arg) <= 100 then -- если аргумент является числом 1 <= arg <= 100
 
  • Нравится
Реакции: Oki_Bern

Oki_Bern

Участник
Автор темы
247
6
хотел сделать вот так:
Lua:
while true do
        wait(0)
        local hp = getCharHealth(PLAYER_PED)
        if (тут переменная) and hp < arg then
            sampProcessChatInput('/q')
        end
    end
но почему то не робит когда вмето числа arg, обьясни что не так делаю, буду благодарен
 
Последнее редактирование:

chromiusj

Известный
Модератор
5,656
3,959
хотел сделать вот так:
Lua:
while true do
        wait(0)
        local hp = getCharHealth(PLAYER_PED)
        if (тут переменная) and hp < arg then
            sampProcessChatInput('/q')
        end
    end
но почему то не робит когда вмето числа arg
попробуй if tonumber(arg)
 
  • Нравится
Реакции: MLycoris

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,992
2,187
хотел сделать вот так:
Lua:
while true do
        wait(0)
        local hp = getCharHealth(PLAYER_PED)
        if (тут переменная) and hp < arg then
            sampProcessChatInput('/q')
        end
    end
но почему то не робит когда вмето числа arg
нафига ты к арг обращаешься, в данном случае он имеет значение только в пределах функции, где ты сохраняешь его в конфиг. Обращайся к значению из конфига
Lua:
local inicfg = require 'inicfg'
local ini = inicfg.load({
    set = {
        text = 0, -- здесь будет хранится нужный текст
    }}, 'ScriptName.ini')
inicfg.save(ini, 'ScriptName.ini')

function main()
    sampRegisterChatCommand('text', function(arg) -- регаем команду text
        if tonumber(arg) and tonumber(arg) >= 1 and tonumber(arg) <= 100 then -- если аргумент является числом 1 <= arg <= 100
            ini.set.text = arg
            inicfg.save(ini, 'ScriptName.ini') -- сохраняем конфиг
            sampAddChatMessage('Новое значение конфига: '..ini.set.text,-1)
        else -- если аргумент всё таки пустой, то
            sampAddChatMessage('Текущее значение конфига: '..ini.set.text,-1) -- выводим в чат текущщее значение сохраненного текста
        end
    end)
    while true do wait(0)
        if tonumber(ini.set.text) and getCharHealth(1) < tonumber(ini.set.text) then
            sampProcessChatInput('/q')
        end
    end
end
 
  • Нравится
Реакции: Oki_Bern и chromiusj