Pessoal, boa noite.
 
	Instalei um Exp hit no meu servidor, porém ao atacar o treiner ele mostra esse erro na distro.
 
	Acredito que o exp hit não reconheça o monstro chamado Treiner Tibia, e por esse motivo retorna esse erro.
 
	Alguém conseguiria me ajudar com alguma função para que esse erro não surgisse na distro ao atacar o treiner ou qualquer outro tipo de monstro que tenha um nome diferente dos comuns?
 
	Agradeço.
 
	Qual servidor ou website você utiliza como base? 
 
	TFS 0.4
 
	Qual o motivo deste tópico? 
 
	DUVIDA COM SCRIPT
 
	Está surgindo algum erro? Se sim coloque-o aqui. 
 
 
	 
 
	Você tem o código disponível? Se tiver publique-o aqui: 
 
	-- CONFIGURAÇÕES DE EXPERIENCIA --
 
	useStages = true -- Usar sistema de Stages , true/false 
	premiumMultipliqueExp = 1 -- Players Premiums terão exp multiplicada, caso não querer deixe 1. 
	rateExp = 50 -- Exp caso não for usar stages.
 
	 
	local stages = { -- ["DELEVEL-ATELEVEL"] = EXP, (OBS: NUNCA  REPETIR O MSM NUMERO, SEMPRE COLOCAR UM A MAIS.) 
	    ["1-50"] = 150, 
	    ["51-80"] = 100, 
	    ["81-100"] = 80, 
	    ["101-150"] = 70, 
	    ["151-180"] = 60, 
	    ["181-200"] = 50, 
	    ["201-230"] = 45, 
	    ["231-250"] = 40, 
	    ["251-280"] = 35, 
	    ["281-300"] = 30,     
	    ["301-320"] = 25,     
	    ["321-350"] = 20,     
	    ["351-400"] = 15,     
	} 
	ultimateExp = 10 -- exp que vai usar caso o level do player não tiver mais na tabela .
 
	-- CONFIGURAÇÕES DA PARTY
 
	partyPorcent = 40 -- Quantos Porcento da exp vai para os membros da party 
	levelBlockParty = 1000 -- Diferença Maxima de Level permitida para membro da party ganhar exp. 
	expShareRadiusX = 30 -- Distancia maxima permitida no eixo X para membro da party ganhar exp. 
	expShareRadiusY = 30 -- Distancia maxima permitida no eixo Y para membro da party ganhar exp. 
	expShareRadiusZ = 1 -- Distancia maxima permitida no eixo Z para membro da party ganhar exp.
 
	-- CONFIGURAÇÕES DE RINGS --
 
	local rings = { -- [ID DO ANEL] = EXP MULTIPLICADA POR X EXP. 
	    [3048] = 2, 
	    [3049] = 4, 
	    [3050] = 6, 
	}
 
	-- FIM DAS CONFIGURAÇÕES --
 
	 
	function CalculeExp(monsterhp, exptotal, hit) 
	    hit = hit <= monsterhp and math.ceil(exptotal * hit / monsterhp) or 0 
	    return hit < 0 and 0 or hit 
	end
 
	function isSummon(cid) 
	return getCreatureMaster(cid) 
	end
 
	function onStatsChange(cid, attacker, type, combat, value) 
	    if isPlayer(attacker) and isMonster(cid) then 
	        if getCreatureStorage(cid, 50001) ~= 1 then 
	            doCreatureSetStorage(cid, 50002, getMonsterInfo(getCreatureName(cid)).experience * rateExp) 
	            doCreatureSetStorage(cid, 50001, 1) 
	        end 
	    end 
	    if type == STATSCHANGE_HEALTHLOSS then 
	        if isMonster(cid) then 
	            if isCreature(attacker) then 
	                local _cid = isSummon(attacker) and getCreatureMaster(attacker) or attacker 
	                if isPlayer(_cid) then 
	                    if useStages then 
	                        for strstage, experience in pairs(stages) do 
	                            tabstage = string.explode(strstage, "-") 
	                            if getPlayerLevel(_cid) >= tonumber(tabstage[1]) and getPlayerLevel(_cid) <= tonumber(tabstage[2]) then 
	                                ultimateExp = experience 
	                            end 
	                        end 
	                        experienceRate = ultimateExp 
	                    else 
	                        experienceRate = rateExp 
	                    end 
	                    local expgain = CalculeExp(getCreatureMaxHealth(cid), getMonsterInfo(getCreatureName(cid)).experience * experienceRate, value) 
	                    if getCreatureStorage(cid, 50002) > 0 then 
	                        if getCreatureStorage(cid, 50002) - expgain < 0 then 
	                            expgain = getCreatureStorage(cid, 50002) 
	                        end 
	                        doCreatureSetStorage(cid, 50002, getCreatureStorage(cid, 50002) - expgain) 
	                        local ringexp = 1 
	                        for idring, expring in pairs(rings) do 
	                            if getPlayerSlotItem(_cid, 9).itemid == idring then 
	                                ringexp = expring 
	                                break 
	                            end 
	                        end 
	                        local premiumMultipliqueExp = isPremium(_cid) and premiumMultipliqueExp or 1 
	                        expgain = expgain * ringexp * premiumMultipliqueExp 
	                        local party = false 
	                        if isInParty(_cid) then 
	                            local partyMembers, expParty = getPartyMembers(getPartyLeader(_cid)), expgain / 100 * partyPorcent 
	                            for indice, partyMember in pairs(partyMembers) do 
	                                attackerLevel, partyLevel = getPlayerLevel(_cid), getPlayerLevel(partyMember) 
	                                attackerPos, partyPos = getThingPos(_cid), getThingPos(partyMember) 
	                                x = false 
	                                if math.abs(attackerLevel - partyLevel) > levelBlockParty then 
	                                    x = true 
	                                elseif math.abs(attackerPos.x - partyPos.x) > expShareRadiusX then 
	                                    x = true 
	                                elseif math.abs(attackerPos.y - partyPos.y) > expShareRadiusY then 
	                                    x = true 
	                                elseif attackerPos.z ~= partyPos.z then 
	                                    x = true 
	                                elseif _cid == partyMember then 
	                                    x = true 
	                                end 
	                                if x then 
	                                    partyMembers[indice] = nil 
	                                end 
	                            end 
	                            if #partyMembers ~= 0 then 
	                                expParty = math.ceil(expgain / 100 * partyPorcent) 
	                                expmember = math.ceil(expParty / #partyMembers) 
	                                for _, member in pairs(partyMembers) do 
	                                    if member ~= _cid then 
	                                        doPlayerSendTextMessage(member, 12, "You received "..expmember.." party exp.") 
	                                        doSendAnimatedText(getCreaturePosition(member), expmember, 215) 
	                                        doPlayerAddExp(member, expmember) 
	                                    end 
	                                end 
	                                doPlayerSendTextMessage(_cid, 12, "You gain "..expgain.." exp. (" ..partyPorcent.."% send to party)") 
	                                doSendAnimatedText(_cid, expgain - expParty, 215) 
	                                doPlayerAddExp(_cid, expgain - expParty) 
	                                party = true 
	                            else 
	                                party = false 
	                            end 
	                        end 
	                        if not party then 
	                            doPlayerAddExp(_cid, expgain) 
	                            doSendAnimatedText(getThingPos(_cid), expgain, 215) 
	                        end 
	                    end 
	                end 
	            end 
	        end 
	    end 
	    return true 
	end
 
	function onCombat(cid, target) 
	    if isMonster(target) and not isSummon(target) and not isPlayer(target) then 
	        registerCreatureEvent(target, "ExpGain") 
	    end 
	    return true 
	end
 
	 
 
	Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
 
	 
 
	RESOLVIDO
 
	Vou deixar a solução abaixo caso alguém futuramente tenha o mesmo problema.
 
	Eu havia feito uma atualização no meu training monk, dessa forma, acusava o erro "(luaGetMonsterInfo) Monster not found".
 
	Simplesmente o que eu fiz foi editar o meu training monk.xml e adicionar ele no monster.xml com o nome de training monk.
 
	Vou deixar abaixo os dois arquivos.