Ir para conteúdo
  • Cadastre-se

Normal Error - CreatureScript Interface


Posts Recomendados

A script ta tentando chamar a função IsSummon mais não está conseguindo e esta retornando Nil " Valor Nulo ", possivelmente você não tem essa função na lib, ou a Script está declarada com um valor mais não tem ele. Posta o Script em spolier aqui, vou " tentar " ajudar, não garanto nada, estou iniciando em Script ainda! 

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

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
Citar

 

local shinys = {
"Venusaur", "Blastoise", "Butterfree", "Beedrill", "Pidgeot", "Rattata", "Raticate", "Raichu", "Golbat", "Paras", "Parasect", "Magmar", "Typhlosion", "Xatu", "Growlithe", "Arcanine", "Tentacruel", "Farfetch'd", "Gengar", "Krabby", "Tauros", 
"Kingler", "Cubone", "Horsea", "Scizor", "Houndoom", "Seadra", "Tangrowth", "Sudowoodo",  "Weezing", "Scyther", "Pinsir", "Skarmory", "Slowking", "Wobbuffet", "Crobat", "Zubat", "Tentacool", "Feraligatr", "Machamp", "Meganium", "Alakazam", "Tangela", "Ampharos", "Electabuzz", "Jynx", "Charizard", "Voltorb", "Electrode", "Marowak", "Magcargo", "Grimer", "Muk", "Sandslash", "Tauros", "dratini", "xatu", "larvitar", "Venonat", "venomoth", "pupitar", "Lanturn" }

local raros = { "mr. mime", "Dragonair", "Dratini", "Giant Magikarp", "Gyarados", "Magmortar", "Electivire", "Salamence", "Mantine"}                               

local function ShinyName(cid)
if isCreature(cid) then
   if string.find(tostring(getCreatureName(cid)), "Shiny") then
      local newName = tostring(getCreatureName(cid)):match("Shiny (.*)")             
      doCreatureSetNick(cid, newName)
      if isMonster(cid) then
         doSetCreatureDropLoot(cid, false)  
      end
   end
end
end

local function doSetRandomGender(cid)
    if not isCreature(cid) then return true end
    if isSummon(cid) then return true end
    local gender = 0
    local name = getCreatureName(cid)
    if not newpokedex[name] then return true end
    local rate = newpokedex[name].gender
        if rate == 0 then
            gender = 3
        elseif rate == 500 then
            gender = 4
        elseif rate == -1 then
            gender = 0
        elseif math.random(1, 500) <= rate then
            gender = 4
        else
            gender = 3
        end
    doCreatureSetSkullType(cid, gender)
end

local function doShiny(cid)
if isCreature(cid) then
   if isSummon(cid) then return true end
   if getPlayerStorageValue(cid, 74469) >= 1 then return true end
   if getPlayerStorageValue(cid, 22546) >= 1 then return true end 
   if isNpcSummon(cid) then return true end
   if getPlayerStorageValue(cid, 637500) >= 1 then return true end  --alterado v1.9
   
if isInArray(shinys, getCreatureName(cid)) then  --alterado v1.9 \/
   chance = 2.0    --1% chance        
elseif isInArray(raros, getCreatureName(cid)) then   --n coloquem valores menores que 0.1 !!
   chance = 1.0   --1% chance       
else
   return true
end    
    if math.random(1, 500) <= chance*10 then  
      doSendMagicEffect(getThingPos(cid), 18)               
      local name, pos = "Shiny ".. getCreatureName(cid), getThingPos(cid)
      doRemoveCreature(cid)
      local shi = doCreateMonster(name, pos, false)
      setPlayerStorageValue(shi, 74469, 1)      
   else
       setPlayerStorageValue(cid, 74469, 1)
   end                                        --/\
else                                                            
return true
end
end
                                                                
function onSpawn(cid)

    registerCreatureEvent(cid, "Experience")
    registerCreatureEvent(cid, "GeneralConfiguration")
    registerCreatureEvent(cid, "DirectionSystem")
    registerCreatureEvent(cid, "CastSystem")
    
    if isSummon(cid) then
        registerCreatureEvent(cid, "SummonDeath")
    return true
    end
    
    addEvent(doShiny, 10, cid)
    addEvent(ShinyName, 15, cid)
    addEvent(adjustWildPoke, 5, cid)

return true
end

 

 

~ Se ajudei +Rep

sheele_schere__akame_ga_kill__minimalist

~ Sheele

Link para o post
Compartilhar em outros sites

Desculpa a demora pra responder, tava ocupado! 

A script está tentando chamar a função " isSummon ", porém ela não existe em sua lib, adicione ela e problema resolvido! 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
13 minutos atrás, KotZletY disse:

adicione ela e problema resolvido! 

Em qual parte do script devo adicionar ela @KotZletY?

local function doSetRandomGender(cid)
	if not isCreature(cid) then return true end
	if isSummon(cid) then return true end
	local gender = 0
	local name = getCreatureName(cid)
	if not newpokedex[name] then return true end
	local rate = newpokedex[name].gender

Mas nessa parte do spawn.lua tem o isSummon, o que faço?

UP

~ Se ajudei +Rep

sheele_schere__akame_ga_kill__minimalist

~ Sheele

Link para o post
Compartilhar em outros sites
1 hora atrás, KotZletY disse:

Na sua lib de funções! 

Acho que se n for de grande incomodo você me explique detalhadamente, porque não tenho muito conhecimento sobre scripts :c

Tenho um arquivo chamado 050-function.lua na pasta data/lib

E nesse que tenho que adicionar? Qual parte ... 

Citar

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)
    if str:find("[AaEeIiOoUuYy]") then 
       return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
    else
       print("Error trying to use Look.lua in a pokeball!!")
       return "a"
    end
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)
    amount = tonumber(amount) or 1
    if amount <= 0 then amount = 1 end
                                         
    if(skill == SKILL__LEVEL) then    
        return doPlayerAddLevel(cid, amount, round)
    elseif(skill == SKILL__MAGLEVEL) then
        return doPlayerAddMagLevel(cid, amount)
    end
    for i = 1, amount do
        doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
    end
    return true
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 doDittoTransform(ditto, pokemon)
local sid = getCreatureMaster(ditto)
local eff = 184
local name = pokemon
local pos = getCreaturePosition(ditto)
local outfit = getPokemonXMLOutfit(pokemon)
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", transform into "..getArticle(pokemon).." "..pokemon.."!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
return true
end
function doDittoRevert(m)
local sid = m
local eff = 184
local name = "Ditto"
local outfit = getPokemonXMLOutfit(name)
if #getCreatureSummons(sid) <= 0 then
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
elseif #getCreatureSummons(sid) == 1 then
local ditto = getCreatureSummons(sid)[1]
local pos = getCreaturePosition(ditto)
if getCreatureName(ditto) == "Ditto" then
return true
end
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", untransfrom!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
end
end 

 

 

~ Se ajudei +Rep

sheele_schere__akame_ga_kill__minimalist

~ Sheele

Link para o post
Compartilhar em outros sites

Na próxima coloca em " Spolier " as script. 

Em qualquer lugar, desde que não interfira em outra função!

Spoiler

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 isSummon(cid)
        if getCreatureMaster(cid) == cid or getCreatureMaster(cid) == nil then
                return false
        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)
    if str:find("[AaEeIiOoUuYy]") then 
       return str:find("[AaEeIiOoUuYy]") == 1 and "an" or "a"
    else
       print("Error trying to use Look.lua in a pokeball!!")
       return "a"
    end
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)
    amount = tonumber(amount) or 1
    if amount <= 0 then amount = 1 end
                                         
    if(skill == SKILL__LEVEL) then    
        return doPlayerAddLevel(cid, amount, round)
    elseif(skill == SKILL__MAGLEVEL) then
        return doPlayerAddMagLevel(cid, amount)
    end
    for i = 1, amount do
        doPlayerAddSkillTry(cid, skill, (getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill)) / getConfigInfo('rateSkill'))
    end
    return true
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 doDittoTransform(ditto, pokemon)
local sid = getCreatureMaster(ditto)
local eff = 184
local name = pokemon
local pos = getCreaturePosition(ditto)
local outfit = getPokemonXMLOutfit(pokemon)
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", transform into "..getArticle(pokemon).." "..pokemon.."!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
return true
end
function doDittoRevert(m)
local sid = m
local eff = 184
local name = "Ditto"
local outfit = getPokemonXMLOutfit(name)
if #getCreatureSummons(sid) <= 0 then
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
elseif #getCreatureSummons(sid) == 1 then
local ditto = getCreatureSummons(sid)[1]
local pos = getCreaturePosition(ditto)
if getCreatureName(ditto) == "Ditto" then
return true
end
 doSendMagicEffect(getThingPosWithDebug(ditto), eff)
 doSetCreatureOutfit(ditto, {lookType = outfit}, -1)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "poke", name)
 doItemSetAttribute(getPlayerSlotItem(sid, 8).uid, "ehditto", 1)
 doPlayerSay(sid, ""..getPokeName(ditto)..", untransfrom!", 1)
  doCreatureSay(ditto, "TRANSFORM!", TALKTYPE_MONSTER)
 doRemoveCreature(ditto)
 doSummonMonster(sid, name)
 doTeleportThing(getCreatureSummons(sid)[1], pos, false)
 adjustStatus(getCreatureSummons(sid)[1], getPlayerSlotItem(sid, 8).uid, true, false)
doUpdateMoves(sid)
end
end 

 

 

Só fiz adicionar a função " isSummon "

function isSummon(cid)
        if getCreatureMaster(cid) == cid or getCreatureMaster(cid) == nil then
                return false
        end
        return true
end

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

@KotZletY eu encontrei a fonte do problema que era no configuration.lua e não precisei disso, mas é bom deixar guardado aqui caso venha dar o mesmo erro novamente eu testarei e lhe informarei. Mas obg pelo seu empenho em me ajudar.

~ Se ajudei +Rep

sheele_schere__akame_ga_kill__minimalist

~ Sheele

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo