Ir para conteúdo

Posts Recomendados

Ola pessoal xtibiano.

 

O Info Monster e um sistema que permite ver informações importantes de um monstro para o player.

Ele exibe vários atribbutos do monstro como por exemplo os ataques do monstro.

Assim o player antes de caçar um monstro ele irá analisar se ele poderá derrotar o monstro.

Além disso se o player errar o nome do monstro a talk exibe os nomes de todos os monstro do seu otserv assim o player podera identificar o monstro que ele procura.

 

 

Então vamos a talkactions.

 

Crie um arquivo lua chamado de info em talkactions e coloque isto:

 

function getDirMonsterByNameMonster(name)
t = {}
local monster = io.open("data/monster/monsters.xml", "r")
for i in monster:read("*a"):gmatch('<monster name="'..tostring(name)..'" file="(.-)"/>') do
table.insert(t, tostring(i))
end
return t[1] or 0
end
function getMonsterAttacks(name)
local dir = "data/monster/"..getDirMonsterByNameMonster(name)..""
local monster = io.open(""..dir.."", "r")
str = ""
for i in monster:read("*a"):gmatch('attack name="(.-)"') do
str = ""..str.." - "..i..""
end
return str
end
function getMonsterDefense(name)
local dir = "data/monster/"..getDirMonsterByNameMonster(name)..""
local monster = io.open(""..dir.."", "r")
str = ""
for i in monster:read("*a"):gmatch('defense name="(.-)"') do
str = ""..str.." - "..i..""
end
return str
end
function getMonsterLootItens(name)
local dir = "data/monster/"..getDirMonsterByNameMonster(name)..""
local monster = io.open(""..dir.."", "r")
str = ""
for i in monster:read("*a"):gmatch('id="(.-)"') do
str = ""..str.." - "..i..""
end
return str
end
function getMonsterVoices(name)
local dir = "data/monster/"..getDirMonsterByNameMonster(name)..""
local monster = io.open(""..dir.."", "r")
str = ""
for i in monster:read("*a"):gmatch('voice sentence="(.-)"') do
str = ""..str.." - "..i..""
end
return str
end
function getAllMonster()
local str = ""
local monster = io.open("data/monster/monsters.xml", "r")
str = "Você digitou incorretamente o nome do monstro veja a lista de monstro\n"
for i in monster:read("*a"):gmatch('<monster name="(.-)"') do
str = ""..str.." - "..i..""
end
return str
end
function getAttrMonster(name)
return "Vida = "..getMonsterInfo(name).health.."\nExp = "..getMonsterInfo(name).experience.."\n"
end
function onSay(cid, words, param, channel)
if param == "" or not param or param == " " then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa dizer o nome do monstro")
return true
end
local name = param
if (getMonsterInfo(param)) then
doShowTextDialog(cid, 1397, "Info Monster "..name.."\n"..getAttrMonster(name).."\nAttacks = "..getMonsterAttacks(name).."\n\nDefense = "..getMonsterDefense(name).."\n\nVoices = "..getMonsterVoices(name).."\n\nLoots = "..getMonsterLootItens(name).."")
else
doShowTextDialog(cid, 1397, getAllMonster())
return true
end
return true
end

 

Agora vá em talkactions.xml e coloque isto:

 

<talkaction words="/infom" event="script" value="info.lua"/>

 

 

Diga /infom(nome do monstro)

Se dizer um monstro que não existe irá abrir a lista dos monstro do seu otserv

Editado por caotic
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...