Jump to content
  • 0
potinho

Scripting [7.72] Info Monster - Talkaction

Question

potinho

Base: The OTX Server Version: (2.100 - 6000) - Codename: (FINAL)

 

Qual é a sua pergunta?

Estou disponibilizando um script muito interessante mas preciso de um ajuste final, nessa talkaction, quando você digita /info nome.monstro ele trás as informações de vida, exp e loot. Quando você digita um nome incorreto, ele abre uma janela dizendo que o nome do monstro está incorreto e trás a lista de monstros. Tudo está funcional, porém quando a pessoa digita o nome do monstro incorreto, dá um erro na minha console:

[24/3/2021 13:56:46] [Error - TalkAction Interface] 
[24/3/2021 13:56:46] data/talkactions/scripts/info.lua:onSay
[24/3/2021 13:56:46] Description: 
[24/3/2021 13:56:46] (LuaInterface::luaGetMonsterInfo) Monster not found

 

Apesar do alerta funcionar corretamente:

image.png.90f16a07d6778d91552a01afcb794a74.png

 

Poderiam me ajudar para remover esse erro da console? Segue script da talkaction, obrigado.

 

 

 

 

Você tem o código disponível? Se tiver poste-o na caixa de código que está dentro do spoiler abaixo:

Spoiler
 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 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.." - "..getItemNameById(i)..""
end
return str
end
function getAllMonster()
local str = ""
local monster = io.open("data/monster/monsters.xml", "r")
str = "Voce 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 "Life = "..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, "Voce precisa dizer o nome do monstro")
        return true
    end
    local name = param:lower()
    if getMonsterInfo(name) then
        name = name:gsub("(%l)(%w*)", function(a,b) return string.upper(a)..b end)
        doShowTextDialog(cid, 1397, "Info Monster "..name.."\n"..getAttrMonster(name).."\n\nLoots = "..getMonsterLootItens(name).."")
    else
        doShowTextDialog(cid, 1397, getAllMonster())
        return true
    end
    return true
end

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, anexe-a dentro do spoiler abaixo:

Spoiler

 

 

Share this post


Link to post

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×