Как ввести сообщение в чат с помощью LUA?

Виктор (Gonzalez)

Новичок
Автор темы
12
1
Нужна помощь, я не понимаю как написать скрипт, что бы при нажатии кнопки M выводилось в чат сообщение допустим.
Я нажимаю на M и у меня в чате появляется надпись "/n test"
помогите пожалуйста
 
  • Нравится
Реакции: posokhov

Oreshka23

Известный
338
164
  • Нравится
Реакции: Niall

JustDark

Участник
52
17
Не работает когда открыт чат или диалог:
function main()
while not isSampAvailable() do wait(0) end
while true do
wait(0)
if isKeyJustPressed(0x4D) and not sampIsChatInputActive() and not sampIsDialogActive() then
sampSendChat("твой текст, измени его!")
end
end
end
 
Последнее редактирование:
  • Нравится
Реакции: Lertex и ШPEK

DolgorukovGTA

Известный
Проверенный
652
345
Последнее редактирование:
  • Нравится
Реакции: 65raz

stranger_karelli

Потрачен
382
262
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

65raz

Новичок
10
2
поставь кодировку Windows 1251
Поменял, все та же проблема.
Вот код:
!:
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end -- Проверка
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("reklama", hello) -- Регистрация команды. Команда пишется без "/"
    while true do
        wait(0)
    end
end

function hello() -- Функция, которая выполнится после ввода команды
    sampSendChat("An, эн.", - 1)
end
 
  • Нравится
Реакции: MLycoris

DolgorukovGTA

Известный
Проверенный
652
345
Поменял, все та же проблема.
Вот код:
!:
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end -- Проверка
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("reklama", hello) -- Регистрация команды. Команда пишется без "/"
    while true do
        wait(0)
    end
end

function hello() -- Функция, которая выполнится после ввода команды
    sampSendChat("An, эн.", - 1)
end
Попробуй так:
Lua:
local encoding = require "encoding"
encoding.default = 'CP1251'
u8 = encoding.UTF8

function main()
    sampRegisterChatCommand("cmd", function()
        sampAddChatMessage(u8("привет"), -1)
    end)
    wait(-1)
end
 
  • Нравится
Реакции: 65raz

65raz

Новичок
10
2
Попробуй так:
Lua:
local encoding = require "encoding"
encoding.default = 'CP1251'
u8 = encoding.UTF8

function main()
    sampRegisterChatCommand("cmd", function()
        sampAddChatMessage(u8("привет"), -1)
    end)
    wait(-1)
end
Текст в документе:
An, эн.

Текст в игре:
An, РЎРЊР Р….
 

DolgorukovGTA

Известный
Проверенный
652
345
Текст в документе:
An, эн.

Текст в игре:
An, РЎРЊР Р….
Кодировку в скрипте выставить UTF-8 и использовать этот код, либо же выставить Windows 1251 в скрипте и ничего дописывать не придётся.
Lua:
encoding = require "encoding"
encoding.default = 'UTF-8'
cyr = encoding.CP1251
--
sampSendChat(cyr("привет"))
 
  • Нравится
Реакции: 65raz

65raz

Новичок
10
2
Кодировку в скрипте выставить UTF-8 и использовать этот код, либо же выставить Windows 1251 в скрипте и ничего дописывать не придётся.
Lua:
encoding = require "encoding"
encoding.default = 'UTF-8'
cyr = encoding.CP1251
--
sampSendChat(cyr("привет"))
Спасибо, работает
-----------------------------------------
@dolgorukov еще 2 вопроса -__-
Как сделать что-бы на 1 команду было 2 текста с задержкой, типо этого, но оно не работает, только 1 отправляет, 2 не отправляет:
!:
function bin1()
    sampSendChat(cyr("Текст 1"), -1)
        wait(1146)
    sampSendChat(cyr("Текст 2"), -1)
end
И как сделать что-бы команда работала много раз, а не только 1 раз? Я 1 раз ввел, написало "Текст 1" и все, дальше не работал.
Сам код:
!:
encoding = require "encoding"
encoding.default = 'UTF-8'
cyr = encoding.CP1251

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("reklama", bin1)
    while true do
        wait(0)
    end
end

function bin1()
    sampSendChat(cyr("Текст 1"), -1)
        wait(1146)
    sampSendChat(cyr("Текст 2"), -1)
end
 
Последнее редактирование:
  • Влюблен
Реакции: DolgorukovGTA

DolgorukovGTA

Известный
Проверенный
652
345
Спасибо, работает
-----------------------------------------
@dolgorukov еще 2 вопроса -__-
Как сделать что-бы на 1 команду было 2 текста с задержкой, типо этого, но оно не работает, только 1 отправляет, 2 не отправляет:
!:
function bin1()
    sampSendChat(cyr("Текст 1"), -1)
        wait(1146)
    sampSendChat(cyr("Текст 2"), -1)
end
И как сделать что-бы команда работала много раз, а не только 1 раз? Я 1 раз ввел, написало "Текст 1" и все, дальше не работал.
Сам код:
!:
encoding = require "encoding"
encoding.default = 'UTF-8'
cyr = encoding.CP1251

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    sampRegisterChatCommand("reklama", bin1)
    while true do
        wait(0)
    end
end

function bin1()
    sampSendChat(cyr("Текст 1"), -1)
        wait(1146)
    sampSendChat(cyr("Текст 2"), -1)
end
Функция отправки сообщения в чат принимает только один аргумент на вход, а не 2. Ты явно перепутал с функцией добавления сообщения. В функции main лучше использовать wait(-1), чем бесконечный цикл while true do в таком случае.
 
  • Нравится
Реакции: 65raz