как сделать с помощью sampSendChat() ввод своей команды?

brandon115

Новичок
Автор темы
25
5
Версия MoonLoader
.026-beta
как сделать с помощью sampSendChat() ввод своей команды? а то пишет что такой команды не существует. может есть какой-то способ через events.lua? помогите пж
 

brandon115

Новичок
Автор темы
25
5
эта функция один раз отправляет. Если флудит - это делает твой код, которого у меня нет
вот код. после того как команда /testt отправляеться ещё раз, то игрок начинает 2 раз лететь на координаты метки со своей позиции, и когда прилетает то игра на пару секунд зависает и по тексту на экране видно что скрипт флудит командой /testt

Lua:
require("lib.moonloader")

local sampev = require('lib.samp.events')

local maincolor = 0xFFFFFF

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

    sampRegisterChatCommand('testt', cmd_testt)
    thread = lua_thread.create_suspended(thread_func)
    
    while true do
        wait(0)
    end
end

function cmd_testt()
     thread:run()   
end

function thread_func()
    local ttp = true
    result, posX, posY, posZ = getTargetBlipCoordinates()
    local plPosX, plPosY, plPosZ = getCharCoordinates(PLAYER_PED)
    local rx, ry, rz = posX - plPosX, posY - plPosY, posZ - plPosZ
    local dist = getDistanceBetweenCoords3d(posX, posY, posZ, plPosX, plPosY, plPosZ)
    local steps = math.floor(dist / 10)
    local path = {}
    if result then
        sampAddChatMessage(dist, -1)
        sampAddChatMessage('X: ' .. plPosX - posX .. ' Y: ' .. plPosY - posY .. ' Z: ' .. plPosZ - posZ, -1)
        for i = 1, steps do
            path[#path+1] = {
                x = plPosX + (rx / steps) * i,
                y = plPosY + (ry / steps) * i,
                z = plPosZ + (rz / steps) * i
            }
        end
        path[#path+1] = {x = posX, y = posY, z = posZ}
        for i = 1, steps do
            wait(100)
            setCharCoordinates(PLAYER_PED, path[i].x, path[i].y, path[i].z)
        end
        local px, py, pz = getCharCoordinates(PLAYER_PED)
        if ttp then
            sampProcessChatInput('/testt')
            ttp = false
        end
    else
        sampAddChatMessage('Marker is not found.', -1)
    end
end
 
  • Bug
Реакции: Hinаta

Hinаta

Известный
784
356
вот код. после того как команда /testt отправляеться ещё раз, то игрок начинает 2 раз лететь на координаты метки со своей позиции, и когда прилетает то игра на пару секунд зависает и по тексту на экране видно что скрипт флудит командой /testt

Lua:
require("lib.moonloader")

local sampev = require('lib.samp.events')

local maincolor = 0xFFFFFF

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

    sampRegisterChatCommand('testt', cmd_testt)
    thread = lua_thread.create_suspended(thread_func)
   
    while true do
        wait(0)
    end
end

function cmd_testt()
     thread:run()  
end

function thread_func()
    local ttp = true
    result, posX, posY, posZ = getTargetBlipCoordinates()
    local plPosX, plPosY, plPosZ = getCharCoordinates(PLAYER_PED)
    local rx, ry, rz = posX - plPosX, posY - plPosY, posZ - plPosZ
    local dist = getDistanceBetweenCoords3d(posX, posY, posZ, plPosX, plPosY, plPosZ)
    local steps = math.floor(dist / 10)
    local path = {}
    if result then
        sampAddChatMessage(dist, -1)
        sampAddChatMessage('X: ' .. plPosX - posX .. ' Y: ' .. plPosY - posY .. ' Z: ' .. plPosZ - posZ, -1)
        for i = 1, steps do
            path[#path+1] = {
                x = plPosX + (rx / steps) * i,
                y = plPosY + (ry / steps) * i,
                z = plPosZ + (rz / steps) * i
            }
        end
        path[#path+1] = {x = posX, y = posY, z = posZ}
        for i = 1, steps do
            wait(100)
            setCharCoordinates(PLAYER_PED, path[i].x, path[i].y, path[i].z)
        end
        local px, py, pz = getCharCoordinates(PLAYER_PED)
        if ttp then
            sampProcessChatInput('/testt')
            ttp = false
        end
    else
        sampAddChatMessage('Marker is not found.', -1)
    end
end
А нахуя ты отправляешь команду вместо вызова cmd_testt() ?

И зачем вообще функция для одной строки