Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

3aiophX.png&key=f0b83627671ed61359c14173

Lua demo in-game

 

Quando me deparei com a necessidade de ter que fazer e registrar uma talkaction sempre quando fosse testar algum algoritmo ou função Lua, eu decidi fazer esse sisteminha. Ele permite executar códigos e instruções Lua in-game sem a necessidade de dar reload ou sequer sair do client do Tibia, também é possivel executar qualquer função Lua existente na engine em execução no servidor.

 

Algumas imagens

Citar

RqBAglA.png >>>>>>>>> MkNp7tV.png

unw4fJT.png>>>>>>>>> 46Y4Lo6.png

v0sLQcX.gif

 

A declaração de variáveis, uso de loops e condicionais também é possivel desde que todas instruções estejam na mesma linha (escrever sem dar enter):

jV9VD1P.png>>>>>>>>> y19VWLC.png

2.gif.a423730d65deb80e0d2bb82c90070313.gif

 

Alem disso, em caso de erros, também é exibido in-game (erro proposital cometido na linha 2):

06Y6aiY.png

SDueoKd.png

 

Instalação

Crie um arquivo chamado lua.lua dentro do seguinte diretório e com o conteúdo exibido abaixo:

data/talkactions/scripts/

function onSay(cid, words, param)
	registerCreatureEvent(cid, "luaDemo")
	doShowTextDialog(cid, 1947, true)
	return true
end

Após isso crie um outro arquivo, dessa vez chamado lua_demo.lua dentro do seguinte diretório e com o conteúdo exibido abaixo:

data/creaturescripts/scripts/

function onTextEdit(cid, item, newText)
	if item.itemid == 1947 then
		_G.cid = cid
		local lines = {}
		for line in newText:gmatch("[^\n]+") do
			table.insert(lines, line)
		end
		for i = 1, #lines do
			local func = loadstring(lines[i])
			if func then
				local ret, err = pcall(func)
				if not ret then
					doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "[Lua error]:\nline "..i..": "..err)
				end
			end
		end	
		unregisterCreatureEvent(cid, "luaDemo")
	end
	return true
end

Depois basta registrar ambos os scripts conforme indicado abaixo:

data/talkactions/talkactions.xml

<talkaction log="yes" words="/lua" access="5" event="script" value="lua.lua"/>

data/creaturescripts/creaturescript.xml

<event type="textedit" name="luaDemo" event="script" value="lua_demo.lua"/>

 

É isso... o sistema da grandes possibilidades aos administradores que souberem Lua e praticidade pra quem for desenvolver ou debugar algum código Lua.

Editado por WooX (veja o histórico de edições)

  • Respostas 7
  • Visualizações 2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Sem querer desmerecer o Vitor Subhi, mas a versão dele nem se compara com essa do Woox.  @WooX já tinha visto antes mas não deixa de me impressionar, muito foda.

  • Acho que ja vi esse sistema "parecido" em algum lugar. Parabéns ótimo conteúdo!

Posted Images

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo