RakBot Wiki

Качай аккаунты не напрягаясь!

Инструменты пользователя

Инструменты сайта


scripting:example

Пример простого Lua-скрипта RakBot

Ниже предоставлен скрипт, выполняющий простые действия в боте, такие как:

  • обработка команд
  • добавление строки в лог-окно
  • обработка новых строк в лог-окне
  • поиск текста в строке
  • обработка входящих диалогов
  • отправка ответа на диалог
demo.lua
NAME = 'LUA - demo'
FINDSTR = 'админ'
 
function onScriptStart()
	printLog('[RAKBOT] [' .. NAME .. '] Данный скрипт показывает основы скриптинга в RakBot')
end
 
function onScriptExit()
	printLog('[RAKBOT] [' .. NAME .. '] Выход из скрипта')
end
 
function split(s, delimiter)
    result = {};
    for match in (s..delimiter):gmatch("(.-)"..delimiter) do
        table.insert(result, match);
    end
    return result;
end
 
function onDialogShow(id, style, title, btn1, btn2, data)
	printLog('[RAKBOT] [' .. NAME .. '] Показан диалог #' .. id .. ' с заголовком ' .. title)
 
	if id == 22 then
		if title == 'MainMenu' then
			sendDialog(22, 1, 3, '')
			return true
		elseif title == 'Информация' then
			sendDialog(22, 1, 0, '')
			return true
		elseif title == 'Статистика персонажа' then
			s = split(data, "\n")
			for key, value in pairs(s) do
				if string.len(value) > 0 then
					printLog('[RAKBOT] [' .. NAME .. '] ' .. string.gsub(value, "\t", " "))
				end
			end
			return true
		end
	end
 
	return false
end
 
function onPrintLog(msg)
	if string.match(msg, FINDSTR) then
		printLog('[RAKBOT] [' .. NAME .. '] Слово \'' .. FINDSTR .. '\' найдено')
	end
end
 
function onRunCommand(cmd)
	if cmd == '!luatest' then
		runCommand('/mm')
		return true
	elseif cmd == '!luagetinfo' then
		info = getInfo()
		s = split(info, "\n")
		for key, value in pairs(s) do
			if string.len(value) > 0 then
				printLog('[RAKBOT] [' .. NAME .. '] ' .. string.gsub(value, "\t", " "))
			end
		end
		return true
	end
end
scripting/example.txt · Последние изменения: 2018/04/20 21:37 (внешнее изменение)

Инструменты страницы