Ir para conteúdo

Hisoka Fail2

Campones
  • Total de itens

    61
  • Registro em

  • Última visita

Posts postados por Hisoka Fail2

  1. Olá, meu fishsystem tem o seguinte bug, ao chegar no level 59 de fish, o  sistema simplesmente buga, não sobe mais o nivel de fish (ganha xp, a barra sobe, mas em vez de upara para o level 60 de fish o player continua 59), coloquei para printar na distro o level da skill do player, séria de grande ajuda para mim e para a comunidade caso alguém me ajude solucionar o problema (creio que esse bug é de todas bases cyans, se não de todos pdas).

     

    OPS: Tenho as sources do servidor.

     

    Script:

     

    Citar

     

    
    local fishing = {
    [-1] = { segs = 5, pokes = {{"Magikarp", 5}} },
    
    [3976] = { segs = 5, pokes = {{"Horsea", 5}, {"Remoraid", 3}, {"Goldeen", 3}, {"Poliwag", 2}, {"Swinub", 2}} },  -- pega no client da pxg
    
    [12855] = { segs = 5, pokes = {{"Tentacool", 3}, {"Staryu", 2}, {"Krabby", 3}, {"Shellder", 2}, {"Omanyte", 3}} },
    
    [12854] = { segs = 5, pokes = {{"Seel", 2}, {"Chinchou", 2}, {"Slowpoke", 2}, {"Kabuto", 2}, {"Psyduck", 2}, {"Wooper", 2}} },
    
    [12858] = { segs = 5, pokes = {{"Seaking", 2}, {"Seadra", 2}, {"Poliwhirl", 2}, {"Squirtle", 2}, {"Totodile", 2}} },
    
    [12857] = { segs = 5, pokes = {{"Starmie", 2}, {"Kingler", 2}, {"Corsola", 2}, {"Qwilfish", 2}} },  -- pega no client da pxg
    
    [12860] = { segs = 2, pokes = {{"Lanturn", 2}, {"Dewgong", 2}, {"Slowbro", 2}, {"Azumarill", 2}} },
    
    [12859] = { segs = 2, pokes = {{"Cloyster", 2}, {"Poliwrath", 2}, {"Politoed", 2}, {"Octillery", 2}} },
    
    [12856] = { segs = 2, pokes = {{"Dratini", 3}, {"Quagsire", 2}, {"Dragonair", 2}, {"Omastar", 2}, {"Lapras", 1}} },
    
    [12853] = { segs = 2, pokes = {{"Gyarados", 1}, {"Mantine", 1}, {"Tentacruel", 1}, {"Kingdra", 1}, {"Giant Magikarp", 1}, {"Feraligatr", 1}, {"Blastoise", 1}} },
    }
    
    local storageP = 154585
    local sto_iscas = 5648454 --muda aki pra sto q ta no script da isca
    local bonus = 15
    local limite = 500000
    local pescax = 154588
    
    local function doFish(cid, pos, ppos, interval)
          if not isCreature(cid) then return false end
          if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then
             return false 
          end
          
          doSendMagicEffect(pos, CONST_ME_LOSEENERGY)
          
          if interval > 0 then
             addEvent(doFish, 1000, cid, pos, ppos, interval-1)
             return true
          end   
    
          local peixe = 0
          local playerpos = getClosestFreeTile(cid, getThingPos(cid))
          local fishes = fishing[getPlayerStorageValue(cid, sto_iscas)]
          local random = {}   
    
          if isPlayer(cid) then 
    
            local printpesca = getPlayerSkill(cid, 6)
    
            print(printpesca)
            doPlayerAddSkillTry(cid, 6, 9999999) 
    
    
    
          end
        
    
        
          random = fishes.pokes[math.random(#fishes.pokes)]
        
          for i = 1, math.random(random[2]) do
              peixe = doSummonCreature(random[1], playerpos)
          setCD(getPlayerSlotItem(cid, 2).uid, "pesca", 1)
              if not isCreature(peixe) then
                 setPlayerStorageValue(cid, storageP, 0)
                 setPlayerStorageValue(cid, pescax, 0)
                 doRemoveCondition(cid, CONDITION_OUTFIT)
                 return true
              end
              doCreatureSetLookDir(cid, getDirectionTo(getThingPos(cid), getThingPos(peixe)))  --alterado ver depois
            if #getCreatureSummons(cid) >= 1 then
                 doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 0)
             doChallengeCreature(getCreatureSummons(cid)[1], peixe)
              else  
                 doSendMagicEffect(getThingPos(cid), 0)
             doChallengeCreature(cid, peixe)
              end
           end
           setPlayerStorageValue(cid, storageP, -1)
           doRemoveCondition(cid, CONDITION_OUTFIT)
    return true
    end
    
    local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}
    
    function onUse(cid, item, fromPos, itemEx, toPos)
    
    if getPlayerGroupId(cid) == 11 then
    return true
    end
    
    local checkPos = toPos
    checkPos.stackpos = 0
    
    if getTileThingByPos(checkPos).itemid <= 0 then
       doPlayerSendCancel(cid, '!')
       return true
    end
    
    if not isInArray(waters, getTileInfo(toPos).itemid) then
       return true
    end
    
    if (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1) and not canFishWhileSurfingOrFlying then
       doPlayerSendCancel(cid, "You can't fish while surfing/flying.")
       return true
    end
    
    if isInArray(waters, getTileInfo(getThingPos(cid)).itemid) then
       doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")
       return true
    end
    
    if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then
      doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.")
    return true
    end
    
    
    if not isInArray({520, 521}, getCreatureOutfit(cid).lookType) then
       return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need fisher outfit for fishing.")
    end
    
    local delay = fishing[getPlayerStorageValue(cid, sto_iscas)].segs
    
    if getPlayerStorageValue(cid, sto_iscas) ~= -1 then
       if getPlayerItemCount(cid, getPlayerStorageValue(cid, sto_iscas)) >= 1 then
          doPlayerRemoveItem(cid, getPlayerStorageValue(cid, sto_iscas), 1)
       else
          setPlayerStorageValue(cid, sto_iscas, -1)
       end
    end
    
    local outfit = getCreatureOutfit(cid)
    local out = getPlayerSex(cid) == 0 and 1467 or 1468
    
    doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)
    setPlayerStorageValue(cid, storagePlayer, 1)     --alterei looktype
    doCreatureSetNoMove(cid, false)
    setPlayerStorageValue(cid, pescax, 1)  
    
    local count = {}
    for i, v in pairs(getPlayersOnline()) do
    local coodown = getCD(getPlayerSlotItem(v, 2).uid, "pesca", 1)
    if coodown > 0 then
    table.insert(count, coodown)
    end
    end
    if #count > 50 then return true end
      
    doFish(cid, toPos, getThingPos(cid), math.random(5, delay))
    
    return true
    end

     

    Print(distro e jogo):

    Citar

    image.thumb.png.bf2415eb38b3d36d50909b0ee695c445.png

     

  2. Em 23/07/2018 em 11:37, Pokeultion disse:

    Se for usar solto em apenas um script usa igual o amigo ai em cima falou, mas se realmente for usar mais vezes e achar mais pratico usar a função:

    
    function doPlayerAddItemAttribute(cid, item, quantidade, atributo)
    local item = doPlayerAddItem(cid, item, quantidade)
    doItemSetAttribute(item, atributo)
    return true
    end

     

    Muito obrigado, não tinha pensando nisso, sou novo ainda em programação.

  3. Olá, tentei aqui fazer sozinho mas não consegui, gostaria da seguinte função para o some functions, doPlayerAddItemAtribute(cid, itemid, quant, atribute), como podem ver é a mesma função do doPlayerAddItem, porém com a diferençã de adicionar o item já com um atributo, isso é possivel???, também resolveria se tive-se alguma forma de add um item ao player, e logo em seguida um atributo.

  4. Olá, comecei a estudar programação a algum tempo, e já consigo fazer alguns "sisteminhas" simples e edições no que necessito para meu servidor, qual dica vocês programadores mais experientes dariam para vocês mesmos no passado???, de como evoluir mais rápido, como sair daquele simples "editar e fazer uma coisinha" para o realmente desenvolver sistemas mais complexos, o que estudar mais a fundo????, como se desenvolver mais rápido????, obrigado desde de já.

     

     

  5. Script:

    Citar

    local config = {

        removeItem = {id = 2151, count = 1},

        addItem = {id = 18601, count = 1},

    }

     

    function onUse(cid, item)

        if not(doPlayerRemoveItem(cid, config.removeItem.id, config.removeItem.count)) then

            return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You dont have "..config.removeItem.count.." "..getItemNameById(config.removeItem.id)..".")

        end

     

        doPlayerAddItem(cid, config.addItem.id, config.addItem.count)

        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You gained "..config.addItem.count.." "..getItemNameById(config.addItem.id)..".")

    end

     

     

    050-....

    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, addon)
        end

        for i = 0, table.maxn(femaleOutfits) do
            doPlayerAddOutfit(cid, femaleOutfits, 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

    596cb14b0a408_bugmachado.thumb.png.0ba2cfaa8b2dbb25f79f06298fbfb606.png

     

     

    596cb14b0a408_bugmachado.thumb.png.0ba2cfaa8b2dbb25f79f06298fbfb606.png

  6. Estou com esse erro no meu pokeexp.lua : attempt to compare boolean with number

     

    Ai está a linha do erro:

    Citar

    if getPlayerLevel(pk) <= 1 then

     

     

    Eu já pesquise e sei que o erro é devido a isso : <= 1 (que está comparando algo), mas não sei se simplesmente remover isso, irá de fato corrigir o erro, ou se irá piorar tudo.

     

     

    Script completo:

    Citar

    local function playerAddExp(cid, exp)
    if isPlayer(cid) == TRUE then
        doPlayerAddExp(cid, exp)
        doSendAnimatedText(getThingPos(cid), exp, 215)
    else
    return true
    end
    end
     
     
    function onDeath(cid, corpse, deathList)
           
        --if not isCreature(cid) then return true end
        if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8
     

        local givenexp = getWildPokemonExp(cid)
        ---local killer = getItemAttribute(corpse.uid, "corpseowner")  
     
    if givenexp > 0 then
    for a = 1, #deathList do
    local pk = deathList[a]
    ---
    local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
    if isCreature(pk) then
       local expTotal = math.floor(givenexp)
       local party = getPartyMembers(pk)
       if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
          expTotal = math.floor(expTotal/#party)         --alterado v1.6.1
          for i = 1, #party do
              if isInArray(list, party) then          
    if getPlayerLevel(pk) <= 1 then
                 playerAddExp(party, expTotal * 200)  
    elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then
                 playerAddExp(party, expTotal * 130)
    elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then
                 playerAddExp(party, expTotal * 80)
    elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then
                 playerAddExp(party, expTotal * 40)
    elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then
                 playerAddExp(party, expTotal * 20)
    elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then
                 playerAddExp(party, expTotal * 10)
    elseif getPlayerLevel(pk) >= 351 then
                 playerAddExp(party, expTotal * 5)
                 end
              end
          end
       elseif not isInParty(pk) then
    if getPlayerLevel(pk) <= 1 then ERRO
    playerAddExp(pk, math.floor(200 * givenexp))
    elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then
    playerAddExp(pk, math.floor(130 * givenexp))
    elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then
    playerAddExp(pk, math.floor(80 * givenexp))
    elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then
    playerAddExp(pk, math.floor(40 * givenexp))
    elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then
    playerAddExp(pk, math.floor(20 * givenexp))
    elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then
    playerAddExp(pk, math.floor(10 * givenexp))
    elseif getPlayerLevel(pk) >= 351 then
    playerAddExp(pk, math.floor(5 * givenexp))
    return true end  
       end      
    end
    end
    end
     
        if isNpcSummon(cid) then
            local master = getCreatureMaster(cid)
            doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))
            doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)
            doRemoveCreature(cid)
        return false
        end
    if corpse.itemid ~= 0 then   --alterado v1.8
       doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
    end
    return true
    end

     

  7. local function playerAddExp(cid, exp) if isPlayer(cid) == TRUE then doPlayerAddExp(cid, exp) doSendAnimatedText(getThingPos(cid), exp, 215) else return true end end function onDeath(cid, corpse, deathList) if not isCreature(cid) then return true end if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8 local givenexp = getWildPokemonExp(cid) ---local killer = getItemAttribute(corpse.uid, "corpseowner") if givenexp > 0 then for a = 1, #deathList do local pk = deathList[a] --- local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false) if isCreature(pk) then local expTotal = math.floor(givenexp) local party = getPartyMembers(pk) if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then expTotal = math.floor(expTotal/#party) --alterado v1.6.1 for i = 1, #party do if isInArray(list, party) then if getPlayerLevel(pk) <= 0 then playerAddExp(party, expTotal * 200) elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then playerAddExp(party, expTotal * 130) elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then playerAddExp(party, expTotal * 80) elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then playerAddExp(party, expTotal * 40) elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then playerAddExp(party, expTotal * 20) elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then playerAddExp(party, expTotal * 10) elseif getPlayerLevel(pk) >= 351 then playerAddExp(party, expTotal * 5) end end end elseif not isInParty(pk) then if getPlayerLevel(pk) <= 0 then playerAddExp(pk, math.floor(200 * givenexp)) elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then playerAddExp(pk, math.floor(130 * givenexp)) elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then playerAddExp(pk, math.floor(80 * givenexp)) elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then playerAddExp(pk, math.floor(40 * givenexp)) elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then playerAddExp(pk, math.floor(20 * givenexp)) elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then playerAddExp(pk, math.floor(10 * givenexp)) elseif getPlayerLevel(pk) >= 351 then playerAddExp(pk, math.floor(5 * givenexp)) return true end end end end end if isNpcSummon(cid) then local master = getCreatureMaster(cid) doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000)) doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1) doRemoveCreature(cid) return false end if corpse.itemid ~= 0 then --alterado v1.8 doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid)) end return true end

    local function playerAddExp(cid, exp)
    if isPlayer(cid) == TRUE then
        doPlayerAddExp(cid, exp)
        doSendAnimatedText(getThingPos(cid), exp, 215)
    else
    return true
    end
    end
     
     
    function onDeath(cid, corpse, deathList)
           
        if not isCreature(cid) then return true end
        if isSummon(cid) or not deathList or getCreatureName(cid) == "Evolution" then return true end --alterado v1.8
     

        local givenexp = getWildPokemonExp(cid)
        ---local killer = getItemAttribute(corpse.uid, "corpseowner")  
     
    if givenexp > 0 then
    for a = 1, #deathList do
    local pk = deathList[a]
    ---
    local list = getSpectators(getThingPosWithDebug(pk), 30, 30, false)
    if isCreature(pk) then
       local expTotal = math.floor(givenexp)
       local party = getPartyMembers(pk)
       if isInParty(pk) and getPlayerStorageValue(pk, 4875498) <= -1 then
          expTotal = math.floor(expTotal/#party)         --alterado v1.6.1
          for i = 1, #party do
              if isInArray(list, party) then          
    if getPlayerLevel(pk) <= 0 then
                 playerAddExp(party, expTotal * 200)  
    elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then
                 playerAddExp(party, expTotal * 130)
    elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then
                 playerAddExp(party, expTotal * 80)
    elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then
                 playerAddExp(party, expTotal * 40)
    elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then
                 playerAddExp(party, expTotal * 20)
    elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then
                 playerAddExp(party, expTotal * 10)
    elseif getPlayerLevel(pk) >= 351 then
                 playerAddExp(party, expTotal * 5)
                 end
              end
          end
       elseif not isInParty(pk) then
    if getPlayerLevel(pk) <= 0 then
    playerAddExp(pk, math.floor(200 * givenexp))
    elseif getPlayerLevel(pk) >= 51 and getPlayerLevel(pk) <= 75 then
    playerAddExp(pk, math.floor(130 * givenexp))
    elseif getPlayerLevel(pk) >= 76 and getPlayerLevel(pk) <= 100 then
    playerAddExp(pk, math.floor(80 * givenexp))
    elseif getPlayerLevel(pk) >= 101 and getPlayerLevel(pk) <= 150 then
    playerAddExp(pk, math.floor(40 * givenexp))
    elseif getPlayerLevel(pk) >= 151 and getPlayerLevel(pk) <= 250 then
    playerAddExp(pk, math.floor(20 * givenexp))
    elseif getPlayerLevel(pk) >= 251 and getPlayerLevel(pk) <= 350 then
    playerAddExp(pk, math.floor(10 * givenexp))
    elseif getPlayerLevel(pk) >= 351 then
    playerAddExp(pk, math.floor(5 * givenexp))
    return true end  
       end      
    end
    end
    end
     
        if isNpcSummon(cid) then
            local master = getCreatureMaster(cid)
            doSendMagicEffect(getThingPos(cid), getPlayerStorageValue(cid, 10000))
            doCreatureSay(master, getPlayerStorageValue(cid, 10001), 1)
            doRemoveCreature(cid)
        return false
        end
    if corpse.itemid ~= 0 then   --alterado v1.8
       doItemSetAttribute(corpse.uid, "level", getPokemonLevel(cid))
    end
    return true
    end

  • Quem Está Navegando   0 membros estão online

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