Как получить значения переменных из другой команды

Sanurial

Участник
Автор темы
82
13
Lua:
sampRegisterChatCommand('re', function(id)
        lua_thread.create(function ()
            sampSendChat('/re ' .. id)
            local name = sampGetPlayerNickname(id)
            wait(1001)
            sampSendChat('/a Начинаю слежку за игроком: ' .. name .. '[' .. id .. ']')
        end)
    end)

    sampRegisterChatCommand('reoff', function(id)
        lua_thread.create(function ()
            sampSendChat('/reoff ')
            wait(1001)
            sampSendChat('/a Прекратил слежку за игроком: ' .. name .. '[' .. id .. ']')
        end)
    end)
 
Решение
зачем регать команду если можно обойтись хуком
Lua:
local recon = {
    id = -1,
    nick = 'none'
}
require('lib.samp.events').onSendCommand = function(command)
    if command:find('/re %d+') then
        recon.id = tonumber(command:match('/re (%d+)'))
        recon.nick = sampGetPlayerNickname(recon.id)
        sampSendChat('/a Начинаю слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
    elseif command:find('/reoff') then
        sampSendChat('/a Прекратил слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
        recon.id = -1
        recon.nick = 'none'
    end
end

chapo

tg/inst: @moujeek
Всефорумный модератор
9,117
12,210
Lua:
local id, name = -1, 'none'

sampRegisterChatCommand('re', function(arg)
    local _id = tonumber(arg)
    if not _id or not sampIsPlayerConnected(_id) then
        return sampAddChatMessage('incorrect id or player not found', -1)
    end
    id, name = _id, sampGetPlayerNickname(_id)
    sampSendChat('/re '..id)
    sampSendChat('/a Начинаю слежку за игроком: ' .. name .. '[' .. id .. ']')
end)

sampRegisterChatCommand('reoff', function()
    sampSendChat('/reoff ')
    sampSendChat('/a Прекратил слежку за игроком: ' .. name .. '[' .. id .. ']')
end)
 
  • Грустно
Реакции: Lance_Sterling

Sanurial

Участник
Автор темы
82
13
Lua:
local id, name = -1, 'none'

sampRegisterChatCommand('re', function(arg)
    local _id = tonumber(arg)
    if not _id or not sampIsPlayerConnected(_id) then
        return sampAddChatMessage('incorrect id or player not found', -1)
    end
    id, name = _id, sampGetPlayerNickname(_id)
    sampSendChat('/re '..id)
    sampSendChat('/a Начинаю слежку за игроком: ' .. name .. '[' .. id .. ']')
end)

sampRegisterChatCommand('reoff', function()
    sampSendChat('/reoff ')
    sampSendChat('/a Прекратил слежку за игроком: ' .. name .. '[' .. id .. ']')
end)
Пишет что отсуствует команда /reoff
 
  • Эм
Реакции: YarikVL

Lance_Sterling

Известный
999
355
зачем регать команду если можно обойтись хуком
Lua:
local recon = {
    id = -1,
    nick = 'none'
}
require('lib.samp.events').onSendCommand = function(command)
    if command:find('/re %d+') then
        recon.id = tonumber(command:match('/re (%d+)'))
        recon.nick = sampGetPlayerNickname(recon.id)
        sampSendChat('/a Начинаю слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
    elseif command:find('/reoff') then
        sampSendChat('/a Прекратил слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
        recon.id = -1
        recon.nick = 'none'
    end
end
 
  • Нравится
Реакции: YarikVL

VRush

https://t.me/vrushscript
2,417
1,209
зачем регать команду если можно обойтись хуком
Lua:
local recon = {
    id = -1,
    nick = 'none'
}
require('lib.samp.events').onSendCommand = function(command)
    if command:find('/re %d+') then
        recon.id = tonumber(command:match('/re (%d+)'))
        recon.nick = sampGetPlayerNickname(recon.id)
        sampSendChat('/a Начинаю слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
    elseif command:find('/reoff') then
        sampSendChat('/a Прекратил слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
        recon.id = -1
        recon.nick = 'none'
    end
end
а сделать в хуке, ну или в цикле? чтоб писало когда ты в слежке мол "Слежу за челиком" и если нет, то "Не слежу за челиком"
 
  • Эм
Реакции: Lance_Sterling

waparabka

Известный
118
184
зачем регать команду если можно обойтись хуком
Lua:
local recon = {
    id = -1,
    nick = 'none'
}
require('lib.samp.events').onSendCommand = function(command)
    if command:find('/re %d+') then
        recon.id = tonumber(command:match('/re (%d+)'))
        recon.nick = sampGetPlayerNickname(recon.id)
        sampSendChat('/a Начинаю слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
    elseif command:find('/reoff') then
        sampSendChat('/a Прекратил слежку за игроком: ' .. recon.nick .. '[' .. recon.id .. ']')
        recon.id = -1
        recon.nick = 'none'
    end
end
зачем событие хуком называть

как вариант можешь заюзать, доделывай под себя сам @Sanurial

Lua:
local events = require('lib.samp.events')

events.onSpectatePlayer = function ( id, cam_type )

    print("start spec " .. id)
   
    events.onTogglePlayerSpectating = function ( state )

        if state == false then

            print("stop spec " .. id)
        end
    end
end
 
Последнее редактирование:
  • Эм
Реакции: Lance_Sterling

VRush

https://t.me/vrushscript
2,417
1,209
Lua:
local sampev = require('lib.samp.events')
id = nil
sampev.onSpectatePlayer = function ( id, cam_type )
    id = id
    sampSendChat(("/a Начинаю  слежку за игроком: %s[%d}"):format(sampGetPlayerNickname(id), id))
end

sampev.onTogglePlayerSpectating = function ( state )
    if not state and id ~= nil then
        sampSendChat(("/a Прекратил слежку за игроком: %s[%d}"):format(sampGetPlayerNickname(id), id))
    end
end
 

Lance_Sterling

Известный
999
355
зачем событие хуком называть

как вариант можешь заюзать, доделывай под себя сам @Sanurial

Lua:
local events = require('lib.samp.events')

events.onSpectatePlayer = function ( id, cam_type )

    print("start spec " .. id)
  
    events.onTogglePlayerSpectating = function ( state )

        if state == false then

            print("stop spec " .. id)
        end
    end
end
Lua:
local sampev = require('lib.samp.events')
id = nil
sampev.onSpectatePlayer = function ( id, cam_type )
    id = id
    sampSendChat(("/a Начинаю  слежку за игроком: %s[%d}"):format(sampGetPlayerNickname(id), id))
end

sampev.onTogglePlayerSpectating = function ( state )
    if not state and id ~= nil then
        sampSendChat(("/a Прекратил слежку за игроком: %s[%d}"):format(sampGetPlayerNickname(id), id))
    end
end
Без названия (2).jpeg