Ir para conteúdo
  • 0

Creature scripts erro look.lua


caique8921

Pergunta

Alguem pode me ajuda no seguinte erro: O poke e capturado normal e depois de upar-lo(level system) com um tempo ele buga na ball e nao aparece mais no look nem da para usar o pokemon e da esse seguinte erro no executavel que estarei postando... oque pode ser? D: e com isso o pokemon simpleste some e nao da mais para usar nem aparece a foto nem nada como se nao tivesse nada na pokebola

00000.png

1231311.png

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
5 minutos atrás, gabriel28 disse:

@caique8921
Manda essa função 'getArticle' e o look.lua.

Função

function getArticle(str)
    return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
end

 

Look.lua:

 

function onLook(cid, thing, position, lookDistance)

    local str = ""

    if not isCreature(thing.uid) then

        local iname = getItemInfo(thing.itemid)

        if isPokeball(thing.itemid) then

            local owner = getItemAttribute(thing.uid, "firstpoke")

            local pokename = getItemAttribute(thing.uid, "poke")
            local item = getItemInfo(thing.itemid)
            str = "You see "..item.article.." "..item.name..".\n"
            str = str.."It contains "..getArticle(pokename).." "..pokename.." [level "..getItemAttribute(thing.uid, "level").."].\n"

            if owner and owner ~= getCreatureName(cid) then
                str = str.."It belongs to "..owner..".\nIt is a unique item."
                doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
            return false
            end

            local boost = getItemAttribute(thing.uid, "boost") or 0
            local boostshow = ""

            if boost > 0 then
                str = str.."Boost level: +"..boost..".\n"
            end

            if getItemAttribute(thing.uid, "nick") then
                str = str.."It's nickname is: "..getItemAttribute(thing.uid, "nick")..".\n"
            end
        
            if getItemAttribute(thing.uid, "gender") == SEX_MALE then
                str = str.."It is male."
            elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then
                str = str.."It is female."
            else
                str = str.."It is genderless."
            end
    
            str = str.."\n--- Status ---"
            str = str.."\nOffense: "..math.floor(getItemAttribute(thing.uid, "offense")).." Defense: "..math.floor(getItemAttribute(thing.uid, "defense")).."\n"
            str = str.."Agility: "..math.floor(getItemAttribute(thing.uid, "speed")).." Sp. Attack: "..math.floor(getItemAttribute(thing.uid, "specialattack")).."\n"
            str = str.."Vitality: "..math.floor(getItemAttribute(thing.uid, "vitality"))..""    

        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

        return false

        elseif string.find(iname.name, "fainted") or string.find(iname.name, "defeated") then

            str = "You see a "..string.lower(iname.name).." ["..getItemAttribute(thing.uid, "level").."].\n"

            if getItemAttribute(thing.uid, "gender") == SEX_MALE then
                str = str.."It is male."
            elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then
                str = str.."It is female."
            else
                str = str.."It is genderless."
            end
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

        return false

        else

        return true

        end
    end

    local npcname = getCreatureName(thing.uid)
    local l = string.len(npcname)
        if not isPlayer(thing.uid) and not isMonster(thing.uid) then
            --string.sub(npcname, l - 1, l) == "  " then
            local article = getPlayerStorageValue(thing.uid, 9891) == 1 and "He is" or "She is"
            local nname = string.sub(npcname, 1, l - 2)
            if nname == getCreatureName(cid) then
                nname = "yourself"
                article = "You are"
            end
            str = "You see "..nname..". "..article.." a pokemon trainer."
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
        return false
        end

    if not isMonster(thing.uid) then
    return true
    end

    if getCreatureName(thing.uid) == "Evolution" then return false end

    if not isSummon(thing.uid) then
        local str = "You see a wild "..string.lower(getCreatureName(thing.uid)).." [level "..getPokemonLevel(thing.uid).."].\n"
        if getPokemonGender(thing.uid)  == SEX_MALE then
            str = str.."It is male."
        elseif getPokemonGender(thing.uid)  == SEX_FEMALE then
            str = str.."It is female."
        else
            str = str.."It is genderless."
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
    return false
    elseif isSummon(thing.uid) and not isPlayer(thing.uid) then

        local boostlevel = getItemAttribute(getPlayerSlotItem(getCreatureMaster(thing.uid), 8).uid, "boost") or 0
        local boostshow = " + "..boostlevel.."]"

        if showBoostSeparated then
            boostshow = "] [+"..boostlevel.."]"
        end

        local levelinfo = "["..getPokemonLevel(thing.uid)..""..boostshow..""

        if getCreatureMaster(thing.uid) == cid then
            local myball = getPlayerSlotItem(cid, 8).uid
            local nexp = getItemAttribute(myball, "nextlevelexp")

            local string = "You see your "..string.lower(getCreatureName(thing.uid)).." "..levelinfo.."."
            string = string.."\nHit points: "..getCreatureHealth(thing.uid).."/"..getCreatureMaxHealth(thing.uid).."."
            string = string.."\n"..getPokemonHappinessDescription(thing.uid)
                if getItemAttribute(myball, "level") <= 100 then
                    string = string.."\nExperience needed to level up: "..nexp.."."
                end
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
        else
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You see a "..string.lower(getCreatureName(thing.uid)).." "..levelinfo..".\nIt belongs to "..getCreatureName(getCreatureMaster(thing.uid))..".")
        end


    return false
    end

return true
end

@gabriel28 ou se preferir o lib fuction lua completo

function doPlayerGiveItem(cid, itemid, amount, subType)
	local item = 0
	if(isItemStackable(itemid)) then
		item = doCreateItemEx(itemid, amount)
		if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
			return false
		end
	else
		for i = 1, amount do
			item = doCreateItemEx(itemid, subType)
			if(doPlayerAddItemEx(cid, item, true) ~= RETURNVALUE_NOERROR) then
				return false
			end
		end
	end

	return true
end

function doPlayerGiveItemContainer(cid, containerid, itemid, amount, subType)
	for i = 1, amount do
		local container = doCreateItemEx(containerid, 1)
		for x = 1, getContainerCapById(containerid) do
			doAddContainerItem(container, itemid, subType)
		end

		if(doPlayerAddItemEx(cid, container, true) ~= RETURNVALUE_NOERROR) then
			return false
		end
	end

	return true
end

function doPlayerTakeItem(cid, itemid, amount)
	return getPlayerItemCount(cid, itemid) >= amount and doPlayerRemoveItem(cid, itemid, amount)
end

function doPlayerBuyItem(cid, itemid, count, cost, charges)
	return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItem(cid, itemid, count, charges)
end

function doPlayerBuyItemContainer(cid, containerid, itemid, count, cost, charges)
	return doPlayerRemoveMoney(cid, cost) and doPlayerGiveItemContainer(cid, containerid, itemid, count, charges)
end

function doPlayerSellItem(cid, itemid, count, cost)
	if(not doPlayerTakeItem(cid, itemid, count)) then
		return false
	end

	if(not doPlayerAddMoney(cid, cost)) then
		error('[doPlayerSellItem] Could not add money to: ' .. getPlayerName(cid) .. ' (' .. cost .. 'gp).')
	end

	return true
end

function doPlayerWithdrawMoney(cid, amount)
	if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
		return false
	end

	local balance = getPlayerBalance(cid)
	if(amount > balance or not doPlayerAddMoney(cid, amount)) then
		return false
	end

	doPlayerSetBalance(cid, balance - amount)
	return true
end

function doPlayerDepositMoney(cid, amount)
	if(not getBooleanFromString(getConfigInfo('bankSystem'))) then
		return false
	end

	if(not doPlayerRemoveMoney(cid, amount)) then
		return false
	end

	doPlayerSetBalance(cid, getPlayerBalance(cid) + amount)
	return true
end

function isPremium(cid)
	return (isPlayer(cid) and (getPlayerPremiumDays(cid) > 0 or getBooleanFromString(getConfigInfo('freePremium'))))
end

function getMonthDayEnding(day)
	if(day == "01" or day == "21" or day == "31") then
		return "st"
	elseif(day == "02" or day == "22") then
		return "nd"
	elseif(day == "03" or day == "23") then
		return "rd"
	end

	return "th"
end

function getMonthString(m)
	return os.date("%B", os.time{year = 1970, month = m, day = 1})
end

function getArticle(str)
	return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
end

function isNumber(str)
	return tonumber(str) ~= nil
end

function doPlayerAddAddons(cid, addon)
	for i = 0, table.maxn(maleOutfits) do
		doPlayerAddOutfit(cid, maleOutfits[i], addon)
	end

	for i = 0, table.maxn(femaleOutfits) do
		doPlayerAddOutfit(cid, femaleOutfits[i], addon)
	end
end

function doPlayerWithdrawAllMoney(cid)
	return doPlayerWithdrawMoney(cid, getPlayerBalance(cid))
end

function doPlayerDepositAllMoney(cid)
	return doPlayerDepositMoney(cid, getPlayerMoney(cid))
end

function doPlayerTransferAllMoneyTo(cid, target)
	return doPlayerTransferMoneyTo(cid, target, getPlayerBalance(cid))
end

function playerExists(name)
	return getPlayerGUIDByName(name) ~= 0
end

function getTibiaTime()
	local minutes = getWorldTime()
	local hours = 0
	while (minutes > 60) do
		hours = hours + 1
		minutes = minutes - 60
	end

	return {hours = hours, minutes = minutes}
end

function doWriteLogFile(file, text)
	local f = io.open(file, "a+")
	if(not f) then
		return false
	end

	f:write("[" .. os.date("%d/%m/%Y %H:%M:%S") .. "] " .. text .. "\n")
	f:close()
	return true
end

function getExperienceForLevel(lv)
	lv = lv - 1
	return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end

function doMutePlayer(cid, time)
	local condition = createConditionObject(CONDITION_MUTED)
	setConditionParam(condition, CONDITION_PARAM_TICKS, time * 1000)
	return doAddCondition(cid, condition)
end

function getPlayerGroupName(cid)
	return getGroupInfo(getPlayerGroupId(cid)).name
end

function getPlayerVocationName(cid)
	return getVocationInfo(getPlayerVocation(cid)).name
end

function getPromotedVocation(vid)
	return getVocationInfo(vid).promotedVocation
end

function doPlayerRemovePremiumDays(cid, days)
	return doPlayerAddPremiumDays(cid, -days)
end

function getPlayerMasterPos(cid)
	return getTownTemplePosition(getPlayerTown(cid))
end

function getHouseOwner(houseId)
	return getHouseInfo(houseId).owner
end

function getHouseName(houseId)
	return getHouseInfo(houseId).name
end

function getHouseEntry(houseId)
	return getHouseInfo(houseId).entry
end

function getHouseRent(houseId)
	return getHouseInfo(houseId).rent
end

function getHousePrice(houseId)
	return getHouseInfo(houseId).price
end

function getHouseTown(houseId)
	return getHouseInfo(houseId).town
end

function getHouseTilesCount(houseId)
	return getHouseInfo(houseId).tiles
end

function getItemNameById(itemid)
	return getItemDescriptionsById(itemid).name
end

function getItemPluralNameById(itemid)
	return getItemDescriptionsById(itemid).plural
end

function getItemArticleById(itemid)
	return getItemDescriptionsById(itemid).article
end

function getItemName(uid)
	return getItemDescriptions(uid).name
end

function getItemPluralName(uid)
	return getItemDescriptions(uid).plural
end

function getItemArticle(uid)
	return getItemDescriptions(uid).article
end

function getItemText(uid)
	return getItemDescriptions(uid).text
end

function getItemSpecialDescription(uid)
	return getItemDescriptions(uid).special
end

function getItemWriter(uid)
	return getItemDescriptions(uid).writer
end

function getItemDate(uid)
	return getItemDescriptions(uid).date
end

function getTilePzInfo(pos)
	return getTileInfo(pos).protection
end

function getTileZoneInfo(pos)
	local tmp = getTileInfo(pos)
	if(tmp.pvp) then
		return 2
	end

	if(tmp.nopvp) then
		return 1
	end

	return 0
end

function doShutdown()
	return doSetGameState(GAMESTATE_SHUTDOWN)
end

function doSummonCreature(name, pos, displayError)
	local displayError, cid = displayError or true, doCreateMonster(name, pos, displayError)
	if(not cid) then
		cid = doCreateNpc(name, pos, displayError)
	end

	return cid
end

function getOnlinePlayers()
	local tmp = getPlayersOnline()
	local players = {}
	for i, cid in ipairs(tmp) do
		table.insert(players, getCreatureName(cid))
	end

	return players
end

function getPlayerByName(name)
	local cid = getCreatureByName(name)
	return isPlayer(cid) and cid or nil
end

function isPlayer(cid)
	return isCreature(cid) and cid >= AUTOID_PLAYERS and cid < AUTOID_MONSTERS
end

function isPlayerGhost(cid)
	if(not isPlayer(cid)) then
		return false
	end

	return getCreatureCondition(cid, CONDITION_GAMEMASTER, GAMEMASTER_INVISIBLE) or getPlayerFlagValue(cid, PLAYERFLAG_CANNOTBESEEN)
end

function isMonster(cid)
	return isCreature(cid) and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS
end

function isNpc(cid)
	return isCreature(cid) and cid >= AUTOID_NPCS
end

function doPlayerSetExperienceRate(cid, value)
	return doPlayerSetRate(cid, SKILL__LEVEL, value)
end

function doPlayerSetMagicRate(cid, value)
	return doPlayerSetRate(cid, SKILL__MAGLEVEL, value)
end

function doPlayerAddLevel(cid, amount, round)
	local experience, level = 0, getPlayerLevel(cid)
	if(amount > 0) then
		experience = getExperienceForLevel(level + amount) - (round and getPlayerExperience(cid) or getExperienceForLevel(level))
	else
		experience = -((round and getPlayerExperience(cid) or getExperienceForLevel(level)) - getExperienceForLevel(level + amount))
	end

	return doPlayerAddExperience(cid, experience)
end

function doPlayerAddMagLevel(cid, amount)
	for i = 1, amount do
		doPlayerAddSpentMana(cid, (getPlayerRequiredMana(cid, getPlayerMagLevel(cid, true) + 1) - getPlayerSpentMana(cid)) / getConfigInfo('rateMagic'))
	end
	return true
end  

function doPlayerAddSkill(cid, skill, amount, round)
	if(skill == SKILL__LEVEL) then
		return doPlayerAddLevel(cid, amount, round)
	elseif(skill == SKILL__MAGLEVEL) then
		return doPlayerAddMagLevel(cid, amount)
	end

	return doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
end

function getPartyLeader(cid)
	local party = getPartyMembers(cid)
	if(type(party) ~= 'table') then
		return 0
	end

	return party[1]
end

function isInParty(cid)
	return type(getPartyMembers(cid)) == 'table'
end

function isPrivateChannel(channelId)
	return channelId >= CHANNEL_PRIVATE
end

function doPlayerResetIdleTime(cid)
	return doPlayerSetIdleTime(cid, 0)
end

function doBroadcastMessage(text, class)
	local class = class or MESSAGE_STATUS_WARNING
	if(type(class) == 'string') then
		local className = MESSAGE_TYPES[class]
		if(className == nil) then
			return false
		end

		class = className
	elseif(class < MESSAGE_FIRST or class > MESSAGE_LAST) then
		return false
	end

	local players = getPlayersOnline()
	for _, pid in ipairs(players) do
		doPlayerSendTextMessage(pid, class, text)
	end

	print("> Broadcasted message: \"" .. text .. "\".")
	return true
end

function doPlayerBroadcastMessage(cid, text, class, checkFlag, ghost)
	local checkFlag, ghost, class = checkFlag or true, ghost or false, class or TALKTYPE_BROADCAST
	if(checkFlag and not getPlayerFlagValue(cid, PLAYERFLAG_CANBROADCAST)) then
		return false
	end

	if(type(class) == 'string') then
		local className = TALKTYPE_TYPES[class]
		if(className == nil) then
			return false
		end

		class = className
	elseif(class < TALKTYPE_FIRST or class > TALKTYPE_LAST) then
		return false
	end

	local players = getPlayersOnline()
	for _, pid in ipairs(players) do
		doCreatureSay(cid, text, class, ghost, pid)
	end

	print("> " .. getCreatureName(cid) .. " broadcasted message: \"" .. text .. "\".")
	return true
end

function getBooleanFromString(input)
	local tmp = type(input)
	if(tmp == 'boolean') then
		return input
	end

	if(tmp == 'number') then
		return input > 0
	end

	local str = string.lower(tostring(input))
	return (str == "yes" or str == "true" or (tonumber(str) ~= nil and tonumber(str) > 0))
end

function doCopyItem(item, attributes)
	local attributes = attributes or false

	local ret = doCreateItemEx(item.itemid, item.type)
	if(attributes) then
		if(item.actionid > 0) then
			doItemSetAttribute(ret, "aid", item.actionid)
		end
	end

	if(isContainer(item.uid)) then
		for i = (getContainerSize(item.uid) - 1), 0, -1 do
			local tmp = getContainerItem(item.uid, i)
			if(tmp.itemid > 0) then
				doAddContainerItemEx(ret, doCopyItem(tmp, true).uid)
			end
		end
	end

	return getThing(ret)
end

function doRemoveThing(uid)
	if(isCreature(uid)) then
		return doRemoveCreature(uid)
	end

	return doRemoveItem(uid)
end

function setAttackFormula(combat, type, minl, maxl, minm, maxm, min, max)
	local min, max = min or 0, max or 0
	return setCombatFormula(combat, type, -1, 0, -1, 0, minl, maxl, minm, maxm, min, max)
end

function setHealingFormula(combat, type, minl, maxl, minm, maxm, min, max)
	local min, max = min or 0, max or 0
	return setCombatFormula(combat, type, 1, 0, 1, 0, minl, maxl, minm, maxm, min, max)
end

function doChangeTypeItem(uid, subtype)
	local thing = getThing(uid)
	if(thing.itemid < 100) then
		return false
	end

	local subtype = subtype or 1
	return doTransformItem(thing.uid, thing.itemid, subtype)
end

function doSetItemText(uid, text, writer, date)
	local thing = getThing(uid)
	if(thing.itemid < 100) then
		return false
	end

	doItemSetAttribute(uid, "text", text)
	if(writer ~= nil) then
		doItemSetAttribute(uid, "writer", tostring(writer))
		if(date ~= nil) then
			doItemSetAttribute(uid, "date", tonumber(date))
		end
	end

	return true
end

function getFluidSourceType(itemid)
	local item = getItemInfo(itemid)
	return item and item.fluidSource or false
end

function getDepotId(uid)
	return getItemAttribute(uid, "depotid") or false
end

function getItemDescriptions(uid)
	local thing = getThing(uid)
	if(thing.itemid < 100) then
		return false
	end

	local item = getItemInfo(thing.itemid)
	return {
		name = getItemAttribute(uid, "name") or item.name,
		plural = getItemAttribute(uid, "pluralname") or item.plural,
		article = getItemAttribute(uid, "article") or item.article,
		special = getItemAttribute(uid, "description") or "",
		text = getItemAttribute(uid, "text") or "",
		writer = getItemAttribute(uid, "writer") or "",
		date = getItemAttribute(uid, "date") or 0
	}	
end

function getItemWeightById(itemid, count, precision)
	local item, count, precision = getItemInfo(itemid), count or 1, precision or false
	if(not item) then
		return false
	end

	if(count > 100) then
		-- print a warning, as its impossible to have more than 100 stackable items without "cheating" the count
		print('[Warning] getItemWeightById', 'Calculating weight for more than 100 items!')
	end

	local weight = item.weight * count
	--[[if(precision) then
		return weight
	end

	local t = string.explode(tostring(weight), ".")
	if(table.maxn(t) == 2) then
		return tonumber(t[1] .. "." .. string.sub(t[2], 1, 2))
	end]]--

	return weight
end

function getItemWeaponType(uid)
	local thing = getThing(uid)
	if(thing.itemid < 100) then
		return false
	end

	return getItemInfo(thing.itemid).weaponType
end

function getItemRWInfo(uid)
	local thing = getThing(uid)
	if(thing.itemid < 100) then
		return false
	end

	local item, flags = getItemInfo(thing.itemid), 0
	if(item.readable) then
		flags = 1
	end

	if(item.writable) then
		flags = flags + 2
	end

	return flags
end

function getItemLevelDoor(itemid)
	local item = getItemInfo(itemid)
	return item and item.levelDoor or false
end

function isItemStackable(itemid)
	local item = getItemInfo(itemid)
	return item and item.stackable or false
end

function isItemRune(itemid)
	local item = getItemInfo(itemid)
	return item and item.clientCharges or false
end

function isItemDoor(itemid)
	local item = getItemInfo(itemid)
	return item and item.type == 5 or false
end

function isItemContainer(itemid)
	local item = getItemInfo(itemid)
	return item and item.group == 2 or false
end

function isItemFluidContainer(itemid)
	local item = getItemInfo(itemid)
	return item and item.group == 12 or false
end

function isItemMovable(itemid)
	local item = getItemInfo(itemid)
	return item and item.movable or false
end

function isCorpse(uid)
	local thing = getThing(uid)
	if(thing.itemid < 100) then
		return false
	end

	local item = getItemInfo(thing.itemid)
	return item and item.corpseType ~= 0 or false
end

function getContainerCapById(itemid)
	local item = getItemInfo(itemid)
	if(not item or item.group ~= 2) then
		return false
	end

	return item.maxItems
end

function getMonsterAttackSpells(name)
	local monster = getMonsterInfo(name)
	return monster and monster.attacks or false
end

function getMonsterHealingSpells(name)
	local monster = getMonsterInfo(name)
	return monster and monster.defenses or false
end

function getMonsterLootList(name)
	local monster = getMonsterInfo(name)
	return monster and monster.loot or false
end

function getMonsterSummonList(name)
	local monster = getMonsterInfo(name)
	return monster and monster.summons or false
end

function ChecarPontos(cid)
local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
local Points= Info:getDataInt("premium_points")
Info:free()
return Points
end
return LUA_ERROR
end
function AddPontos(cid, points)
local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
db.executeQuery("UPDATE accounts SET premium_points = " .. points .. " WHERE id=" .. getPlayerAccountId(cid) .. ";")
Info:free()
return 1
end
end
function RemoverPontos(cid, points)
local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
if Info:getID() ~= LUA_ERROR then
db.executeQuery("UPDATE accounts SET premium_points = - " .. points .. " WHERE id=" .. getPlayerAccountId(cid) .. ";")
Info:free()
return 1
end
end

 

Link para o comentário
Compartilhar em outros sites

  • 0

@caique8921 Testa ai:

 

function onLook(cid, thing, position, lookDistance)

	local str = ""

	if not isCreature(thing.uid) then

		local iname = getItemInfo(thing.itemid)

		if isPokeball(thing.itemid) then

			local owner = getItemAttribute(thing.uid, "firstpoke")

			local pokename = getItemAttribute(thing.uid, "poke")
			local item = getItemInfo(thing.itemid)
			str = "You see "..item.article.." "..item.name..".\n"
			str = str.."It contains "..getArticle(pokename).." "..pokename..""

			local level = getItemAttribute(thing.uid, "level") or 1
			if level > 0 then
				str = str.." [level "..level.."].\n"
			end

			if owner and owner ~= getCreatureName(cid) then
				str = str.."It belongs to "..owner..".\nIt is a unique item."
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
			return false
			end

			local boost = getItemAttribute(thing.uid, "boost") or 0
			local boostshow = ""

			if boost > 0 then
				str = str.."Boost level: +"..boost..".\n"
			end

			if getItemAttribute(thing.uid, "nick") then
				str = str.."It's nickname is: "..getItemAttribute(thing.uid, "nick")..".\n"
			end
		
			if getItemAttribute(thing.uid, "gender") == SEX_MALE then
				str = str.."It is male."
			elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then
				str = str.."It is female."
			else
				str = str.."It is genderless."
			end
	
			str = str.."\n--- Status ---"
			str = str.."\nOffense: "..math.floor(getItemAttribute(thing.uid, "offense")).." Defense: "..math.floor(getItemAttribute(thing.uid, "defense")).."\n"
			str = str.."Agility: "..math.floor(getItemAttribute(thing.uid, "speed")).." Sp. Attack: "..math.floor(getItemAttribute(thing.uid, "specialattack")).."\n"
			str = str.."Vitality: "..math.floor(getItemAttribute(thing.uid, "vitality"))..""	

		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

		return false

		elseif string.find(iname.name, "fainted") or string.find(iname.name, "defeated") then

			str = "You see a "..string.lower(iname.name).." ["..getItemAttribute(thing.uid, "level").."].\n"

			if getItemAttribute(thing.uid, "gender") == SEX_MALE then
				str = str.."It is male."
			elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then
				str = str.."It is female."
			else
				str = str.."It is genderless."
			end
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

		return false

		else

		return true

		end
	end

	local npcname = getCreatureName(thing.uid)
	local l = string.len(npcname)
		if not isPlayer(thing.uid) and not isMonster(thing.uid) then
			--string.sub(npcname, l - 1, l) == "  " then
			local article = getPlayerStorageValue(thing.uid, 9891) == 1 and "He is" or "She is"
			local nname = string.sub(npcname, 1, l - 2)
			if nname == getCreatureName(cid) then
				nname = "yourself"
				article = "You are"
			end
			str = "You see "..nname..". "..article.." a pokemon trainer."
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
		return false
		end

	if not isMonster(thing.uid) then
	return true
	end

	if getCreatureName(thing.uid) == "Evolution" then return false end

	if not isSummon(thing.uid) then
		local str = "You see a wild "..string.lower(getCreatureName(thing.uid)).." [level "..getPokemonLevel(thing.uid).."].\n"
		if getPokemonGender(thing.uid)  == SEX_MALE then
			str = str.."It is male."
		elseif getPokemonGender(thing.uid)  == SEX_FEMALE then
			str = str.."It is female."
		else
			str = str.."It is genderless."
		end
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)
	return false
	elseif isSummon(thing.uid) and not isPlayer(thing.uid) then

		local boostlevel = getItemAttribute(getPlayerSlotItem(getCreatureMaster(thing.uid), 8).uid, "boost") or 0
		local boostshow = " + "..boostlevel.."]"

		if showBoostSeparated then
			boostshow = "] [+"..boostlevel.."]"
		end

		local levelinfo = "["..getPokemonLevel(thing.uid)..""..boostshow..""

		if getCreatureMaster(thing.uid) == cid then
			local myball = getPlayerSlotItem(cid, 8).uid
			local nexp = getItemAttribute(myball, "nextlevelexp")

			local string = "You see your "..string.lower(getCreatureName(thing.uid)).." "..levelinfo.."."
			string = string.."\nHit points: "..getCreatureHealth(thing.uid).."/"..getCreatureMaxHealth(thing.uid).."."
			string = string.."\n"..getPokemonHappinessDescription(thing.uid)
				if getItemAttribute(myball, "level") <= 100 then
					string = string.."\nExperience needed to level up: "..nexp.."."
				end
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You see a "..string.lower(getCreatureName(thing.uid)).." "..levelinfo..".\nIt belongs to "..getCreatureName(getCreatureMaster(thing.uid))..".")
		end


	return false
	end

return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 0

@gabrielzika nada.. fui reproduzir o erro ontem e reparei que ele da isso no executavel antes: 

[19/04/2019 22:56:07] [Warning - IOLoginData::loadItems] Unserialize error for item with id 11829

 

Ai causa esse bug do look e do poke sumir =/

esse ai no caso seria o id da ultraball, mais acontece com a normal tambem

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...