Пишу первый скрипт на луа. Нужна помощь

Vlegos

Новичок
Автор темы
15
0
Решил я написать скрипт "Запоминалка". Вроде все работает но не запоминает то, что должен. Суть в том что когда пишу /past выдает "Вот: " и пусто
Lua:
require "lib.moonloader"

local tag = "Запоминалка: "
local color_text = 0xffff00

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

    sampAddChatMessage(tag .. "приветствую, этот скрипт создал юный Vlegos",0xffff00)
    sampRegisterChatCommand("copy", cmd_copy)
    sampRegisterChatCommand("past", cmd_past)

    while true do

        wait(0)
    end
end

function cmd_copy(arg)
    if arg == "" then
        sampAddChatMessage(tag .. "Мне нечего запоминать!", color_text)
    else
        sampAddChatMessage(tag .. "Запомнил! Напиши /past чтобы увидеть, что я запомнил", color_text)
    end
end

function cmd_past(arg)
    sampAddChatMessage(tag .. "Вот: " .. arg, color_text)
end
 
Решение
Используй глобальную переменную
Lua:
require "lib.moonloader"

local tag = "Запоминалка: "
local color_text = 0xffff00
local text;

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

    sampAddChatMessage(tag .. "приветствую, этот скрипт создал юный Vlegos",0xffff00)
    sampRegisterChatCommand("copy", cmd_copy)
    sampRegisterChatCommand("past", cmd_past)

    while true do

        wait(0)
    end
end

function cmd_copy(arg)
    if arg == "" then
        sampAddChatMessage(tag .. "Мне нечего запоминать!", color_text)
    else
        sampAddChatMessage(tag .. "Запомнил! Напиши /past чтобы увидеть, что я запомнил", color_text)
        text = arg...

Dark_Knight

Me, me and me.
Друг
4,064
2,078
Используй глобальную переменную
Lua:
require "lib.moonloader"

local tag = "Запоминалка: "
local color_text = 0xffff00
local text;

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

    sampAddChatMessage(tag .. "приветствую, этот скрипт создал юный Vlegos",0xffff00)
    sampRegisterChatCommand("copy", cmd_copy)
    sampRegisterChatCommand("past", cmd_past)

    while true do

        wait(0)
    end
end

function cmd_copy(arg)
    if arg == "" then
        sampAddChatMessage(tag .. "Мне нечего запоминать!", color_text)
    else
        sampAddChatMessage(tag .. "Запомнил! Напиши /past чтобы увидеть, что я запомнил", color_text)
        text = arg;
    end
end

function cmd_past(arg)
    sampAddChatMessage(tag .. "Вот: " .. text, color_text)
end
Переменные arg в разных командах - это 2 разные локальные переменных, которые существуют только в момент вызова функции и до того момента пока функция не завершится.

Вот пример
 
  • Нравится
Реакции: Sargon

Vlegos

Новичок
Автор темы
15
0
Используй глобальную переменную
Lua:
require "lib.moonloader"

local tag = "Запоминалка: "
local color_text = 0xffff00
local text;

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

    sampAddChatMessage(tag .. "приветствую, этот скрипт создал юный Vlegos",0xffff00)
    sampRegisterChatCommand("copy", cmd_copy)
    sampRegisterChatCommand("past", cmd_past)

    while true do

        wait(0)
    end
end

function cmd_copy(arg)
    if arg == "" then
        sampAddChatMessage(tag .. "Мне нечего запоминать!", color_text)
    else
        sampAddChatMessage(tag .. "Запомнил! Напиши /past чтобы увидеть, что я запомнил", color_text)
        text = arg;
    end
end

function cmd_past(arg)
    sampAddChatMessage(tag .. "Вот: " .. text, color_text)
end
Переменные arg в разных командах - это 2 разные локальные переменных, которые существуют только в момент вызова функции и до того момента пока функция не завершится.

Вот пример
а вопрос тогда другой. Как задать значение глобальной переменной
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,891
1,254