система автораздач капчами и отправка сообщений по кд

coldplugg.

Участник
Автор темы
180
22
Версия MoonLoader
.026-beta
делаю бота для ракбота на луа, есть 2 задачи сделать систему автораздач капчами ивыдача предмете угадывая числа в рандомном диапазоне
больше интересует автораздач капчами, типо /ao Приз: рандом предмет(1-999) для получения отправьте капчу [капча рандом]. Ответы исключительно в /vr
и после правильной капчи /ao Первым ввел капчу: ник игрока. Капча была: [капча]
про числа почти также только принцип другйо и числа
 
Решение
Рабочий вариант: (в первой строке менять предмет, вместо 33 на свой)
Lua:
local item, code, state = 33, '', false
function genCode()
    code = randomString(5, true)
    printLog(code)
    sendInput('/ao Капча на вещь '..item..'. Капча: '..code)
    state = true
end
function onServerMessage(msg)
    if state and msg:match('%[.*%] .*%[.*%]') and not msg:match('Администратор') and msg:match(code) then
        local name, surname = msg:match('%[.*%] (.+)_(.+)%[.*%]')
        sendInput('/ao Победил игрок '..name..' '..surname..'. Капча была: '..code)
        state = false
    end
end
function onRunCommand(cmd)
    if cmd == '!captcha' then
        genCode()
        return true
    end
end

FakeSince

Активный
243
56
делаю бота для ракбота на луа, есть 2 задачи сделать систему автораздач капчами ивыдача предмете угадывая числа в рандомном диапазоне
больше интересует автораздач капчами, типо /ao Приз: рандом предмет(1-999) для получения отправьте капчу [капча рандом]. Ответы исключительно в /vr
и после правильной капчи /ao Первым ввел капчу: ник игрока. Капча была: [капча]
про числа почти также только принцип другйо и числа
Примерно так, переделай там под себя. При вызове функции genCode() в чат будет писать рандом капчу. С выдачей предмета сам придумаешь, понятия не имею как че на бонусниках работает
Lua:
local item, code, state = 0, 0, false

function genCode()
    code = math.random(10000,99999) -- капча в 5 символов
    item = math.random(1,999) -- Вещь, от 1 до 999
    runCommand('/ao Приз: предмет №'..item..', для получения отправьте капчу '..code)
    state = true
end

function onServerMessage(msg)
    if msg:match('%[.*%].+%[(%d+)%]: ') and msg:match(code) and state then
        local name = msg:match('%[.*%](.+)%[%d+%]: ')
        runCommand('/ao Первым ввел капчу '..name..'. Капча была: '..code)
        state = false
    end
end
 
Последнее редактирование:

ribalko

Участник
171
13
Примерно так, переделай там под себя. При вызове функции genCode() в чат будет писать рандом капчу. С выдачей предмета сам придумаешь, понятия не имею как че на бонусниках работает
Lua:
local item, code = 0, 0

function genCode()
    code = math.random(10000,99999) -- капча в 5 символов
    item = math.random(1,999) -- Вещь, от 1 до 999
    runCommand('/ao Приз: предмет №'..item..', для получения отправьте капчу '..code)
end

function onServerMessage(msg)
    if msg:match('%[.*%].+%[(%d+)%]: ') and msg:match(code) then
        local id = msg:match('%[.*%].+%[(%d+)%]: ')
        runCommand('/ao Первым ввел капчу '..sampGetPlayerNickname(id)..'. Капча была: '..code)
    end
end
а как запустить в коде
 

FakeSince

Активный
243
56
а как запустить в коде
Ты про что именно? Если как отправить капчу в чат - примером может послужить это. В окно ракбота пишешь !captcha
Lua:
function onRunCommand(cmd) -- вроде бы так
    if cmd == '!captcha' then
        genCode()
    end
end
 

ribalko

Участник
171
13
Ты про что именно? Если как отправить капчу в чат - примером может послужить это. В окно ракбота пишешь !captcha
Lua:
function onRunCommand(cmd) -- вроде бы так
    if cmd == '!captcha' then
        genCode()
    end
end
sampgetplayernickname не работает, на ракботе не помню аналога
 

FakeSince

Активный
243
56
на практике проверил, если у чела стоит хелпер ловли и он отправляет капчу в вип чат - бот выдает капчу ловли за капчу от предмета
опять обновил, проверь. понятия не имею как на бонусниках что работает, мне бы самому зайти потестить - сделал бы
 

FakeSince

Активный
243
56
Рабочий вариант: (в первой строке менять предмет, вместо 33 на свой)
Lua:
local item, code, state = 33, '', false
function genCode()
    code = randomString(5, true)
    printLog(code)
    sendInput('/ao Капча на вещь '..item..'. Капча: '..code)
    state = true
end
function onServerMessage(msg)
    if state and msg:match('%[.*%] .*%[.*%]') and not msg:match('Администратор') and msg:match(code) then
        local name, surname = msg:match('%[.*%] (.+)_(.+)%[.*%]')
        sendInput('/ao Победил игрок '..name..' '..surname..'. Капча была: '..code)
        state = false
    end
end
function onRunCommand(cmd)
    if cmd == '!captcha' then
        genCode()
        return true
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: ribalko

coldplugg.

Участник
Автор темы
180
22
Рабочий вариант: (в первой строке менять предмет, вместо 33 на свой)
Lua:
local item, code, state = 33, '', false
function genCode()
    code = randomString(5, true)
    printLog(code)
    sendInput('/ao Капча на вещь '..item..'. Капча: '..code..'')
    state = true
end
function onServerMessage(msg)
    if state and msg:match('%[.*%] .*%[.*%]') and not msg:match('Администратор') and msg:match(code) then
        local name, surname = msg:match('%[.*%] (.+)_(.+)%[.*%]')
        sendInput('/ao Победил игрок '..name..' '..surname..'. Капча была: '..code)
        state = false
    end
end
function onRunCommand(cmd)
    if cmd == '!captcha' then
        genCode()
        return true
    end
end
[/end]
по кд отправка возможна?