text:find

Статус
В этой теме нельзя размещать новые ответы.

hack222

Известный
Автор темы
16
16
Версия MoonLoader
.027.0-preview
qq
Хотел сделать недо скрипт, осваиваю азы lua, да и принципе впервые пишу.
Как вы можете заметить я хотел сделать чтобы при ввиде текста "are you hungry" кушал оленину
Но не задача, скрипт умерает.
И пожалуйста если не проблема объясните что я сделал не так
(заранее спасибо)
Lua:
function main()
    sampAddChatMessage('Auto havka {800080}by Amid',-1)
    sampRegisterChatCommand('autojmeat', havka)
    sampRegisterChatCommand('automeatbag', havkaa)
    while not isSampAvailable() do wait(0) end 
    while true do
        wait(0)
    end
end

function havka()
    sampAddChatMessage('Вы будете жрать оленину!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat('/jmeat')
    end
end

function havkaa()
    sampAddChatMessage('Вы будете жрать мясо из мешка!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat("/meatbag")
    end
end
 
Решение
qq
Хотел сделать недо скрипт, осваиваю азы lua, да и принципе впервые пишу.
Как вы можете заметить я хотел сделать чтобы при ввиде текста "are you hungry" кушал оленину
Но не задача, скрипт умерает.
И пожалуйста если не проблема объясните что я сделал не так
(заранее спасибо)

Lua:
function main()
    sampAddChatMessage('Auto havka {800080}by Amid',-1)
    sampRegisterChatCommand('autojmeat', havka)
    sampRegisterChatCommand('automeatbag', havkaa)
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
    end
end

function havka()
    sampAddChatMessage('Вы будете жрать оленину!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat('/jmeat')
    end
end...

3211Marlon1123

Участник
135
13
qq
Хотел сделать недо скрипт, осваиваю азы lua, да и принципе впервые пишу.
Как вы можете заметить я хотел сделать чтобы при ввиде текста "are you hungry" кушал оленину
Но не задача, скрипт умерает.
И пожалуйста если не проблема объясните что я сделал не так
(заранее спасибо)

Lua:
function main()
    sampAddChatMessage('Auto havka {800080}by Amid',-1)
    sampRegisterChatCommand('autojmeat', havka)
    sampRegisterChatCommand('automeatbag', havkaa)
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
    end
end

function havka()
    sampAddChatMessage('Вы будете жрать оленину!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat('/jmeat')
    end
end

function havkaa()
    sampAddChatMessage('Вы будете жрать мясо из мешка!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat("/meatbag")
    end
end
Я может и недалёк в скриптах, но как я вижу, ты хочешь найти в незаданном аргументе, или переменной, какой-либо текст. И ещё, не уверен, но "!" считается знаком, который не читается, я экранировал его. Предложу свой вариант. Снизу прикрепил кусок своего говнокода.


12:
local hook = require 'lib.samp.events'

onhavka = false
onhavkaa = false

function main()
    sampAddChatMessage('Auto havka {800080}by Amid',-1)
    sampRegisterChatCommand('autojmeat', havka)
    sampRegisterChatCommand('automeatbag', havkaa)
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
    end
end



function havka()
    sampAddChatMessage('Вы будете жрать оленину!', -1)
    onhavka = true
end



function havkaa()
    sampAddChatMessage('Вы будете жрать мясо из мешка!', -1)
    onhavka = true
end


function hook.onServerMessage(color, text)
    if onhavka = true then
        if text:find("You are hungry%!") or text:find("You are very hungry%!") then
               sampSendChat('/jmeat')
            onhavka = false
        else
            onhavka = false
        end
    end
    if onhavkaa = true then
        if text:find("You are hungry%!") or text:find("You are very hungry%!") then
            sampSendChat("/meatbag")
            onhavkaa = false
        else
            onhavka = false
        end
    end
end
 
  • Нравится
Реакции: hack222

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,909
1,286
Lua:
hook = require 'lib.samp.events'
onhavka, onhavkaa = false, false

function main()
    repeat wait(0) until isSampAvailable()
    sampAddChatMessage('Auto havka {800080}by Amid',-1)
    sampRegisterChatCommand('autojmeat', function()
        onhavka = not onhavka
        sampAddChatMessage('Вы '..(onhavka and '' or 'не ')..'будете жрать оленину', -1)
    end)
    sampRegisterChatCommand('automeatbag', function()
        onhavkaa = not onhavkaa
        sampAddChatMessage('Вы '..(onhavkaa and '' or 'не ')..'будете жрать мясо из мешка', -1)
    end)
end

function hook.onDisplayGameText(style, time, text)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        if onhavka then
            sampSendChat('/jmeat')
            onhavka = false
        elseif onhavkaa then
            sampSendChat("/meatbag")
            onhavkaa = false
        end
    end
end
 
  • Нравится
Реакции: ADIxxx и hack222

Freym

Известный
488
204
qq
Хотел сделать недо скрипт, осваиваю азы lua, да и принципе впервые пишу.
Как вы можете заметить я хотел сделать чтобы при ввиде текста "are you hungry" кушал оленину
Но не задача, скрипт умерает.
И пожалуйста если не проблема объясните что я сделал не так
(заранее спасибо)

Lua:
function main()
    sampAddChatMessage('Auto havka {800080}by Amid',-1)
    sampRegisterChatCommand('autojmeat', havka)
    sampRegisterChatCommand('automeatbag', havkaa)
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
    end
end

function havka()
    sampAddChatMessage('Вы будете жрать оленину!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat('/jmeat')
    end
end

function havkaa()
    sampAddChatMessage('Вы будете жрать мясо из мешка!', -1)
    if text:find("You are hungry!") or text:find("You are very hungry!") then
        sampSendChat("/meatbag")
    end
end
Дам маленький совет, открывай исходники других скриптов и смотри как сделано там.... Весь текст (показываемый на экране по типу You are very hungry!) который приходит с сервера ты можешь дбагнуть через
onDisplayGameText(style, time, text)
 
  • Нравится
Реакции: hack222
Статус
В этой теме нельзя размещать новые ответы.