Ir para conteúdo

Featured Replies

Postado

Diz ai, se possível me envie uma MP pra eu ver seu post.

 

@edit

 

Tinha um bug no sistema de reset, usa esse:

local config = {
    backToLevel = 8,
    exp = 4200,
    redskull = false,
    battle = false,
    pz = false,
    stages = {
        {resets = 4, level = 350, vip = 330},
        {resets = 9, level = 355, vip = 335},
        {resets = 14, level = 360, vip = 340},
        {resets = 19, level = 365, vip = 345},
        {resets = 24, level = 380, vip = 350},
        {resets = 29, level = 390, vip = 355},
        {resets = 34, level = 410, vip = 360},
        {resets = 39, level = 430, vip = 365},
        {resets = 44, level = 450, vip = 370}
    }
}

function onSay(cid, words, param)
    local function getResets(cid)
        local resets = getPlayerStorageValue(cid, 1020)
        return resets < 0 and 0 or resets
    end
    
    local function setResets(cid, count)
        setPlayerStorageValue(cid, 1020, getResets(cid) + count)
    end
    
    if config.redskull and getCreatureSkullType(cid) == 4 then
        return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.")
    elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.")
    elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
        return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.")
    end
    
    local resetLevel = 0
    for x, y in ipairs(config.stages) do
        if getResets(cid) <= y.resets then
            resetLevel = isPremium(cid) and y.vip or y.level
            break
        end
    end
    
    if getPlayerLevel(cid) < resetLevel then
        return doPlayerSendCancel(cid, "Voce precisa do level " .. resetLevel .. " ou mais para resetar.")
    end
    
    setResets(cid, 1)
    local guid = getPlayerGUID(cid)
    doRemoveCreature(cid, true)
    db.query("UPDATE `players` SET `level` = " .. config.backToLevel .. ", `experience` = " .. config.exp .. " WHERE `id` = " .. guid)
    return true
end

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

  • Respostas 46
  • Visualizações 4.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Consegui testar agora. player.cpp, troque sua função getDescription por essa:

  • Fir3element
    Fir3element

    function onSay(cid, words, param)     local player = Player(cid)     local hasAccess = player:getGroup():getAccess()     local players = Game.getPlayers()     local playerCount = Game.getPlayerCount()

Postado
  • Autor

Fire quando estou dando look em items está dando esse erro

 

59e34f0af06718897b400c2891b611a52c76da0f

 

player.lua

function Player:onBrowseField(position)
    return true
end
 
function Player:onLook(thing, position, distance)
    local function getResets()
        local resets = thing:getStorageValue(1020)
        return resets < 0 and 0 or resets
    end
 
    local description = "You see " .. thing:getDescription(distance) .. ". Resets: " .. getResets()
    if self:getGroup():getAccess() then
        if thing:isItem() then
            description = string.format("%s\nItem ID: %d", description, thing:getId())
            
            local actionId = thing:getActionId()
            if actionId ~= 0 then
                description = string.format("%s, Action ID: %d", description, actionId)
            end
            
            local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)
            if uniqueId > 0 and uniqueId < 65536 then
                description = string.format("%s, Unique ID: %d", description, uniqueId)
            end
            
            local itemType = thing:getType()
            
            local transformEquipId = itemType:getTransformEquipId()
            local transformDeEquipId = itemType:getTransformDeEquipId()
            if transformEquipId ~= 0 then
                description = string.format("%s\nTransforms to: %d (onEquip)", description, transformEquipId)
                elseif transformDeEquipId ~= 0 then
                description = string.format("%s\nTransforms to: %d (onDeEquip)", description, transformDeEquipId)
            end
            
            local decayId = itemType:getDecayId()
            if decayId ~= -1 then
                description = string.format("%s\nDecays to: %d", description, decayId)
            end
            elseif thing:isCreature() then
            local str = "%s\nHealth: %d / %d"
            if thing:getMaxMana() > 0 then
                str = string.format("%s, Mana: %d / %d", str, thing:getMana(), thing:getMaxMana())
            end
            description = string.format(str, description, thing:getHealth(), thing:getMaxHealth()) .. "."
        end
        
        local position = thing:getPosition()
        description = string.format(
            "%s\nPosition: %d, %d, %d",
            description, position.x, position.y, position.z
        )
        
        if thing:isCreature() then
            if thing:isPlayer() then
                description = string.format("%s\nIP: %s.", description, Game.convertIpToString(thing:getIp()))
            end
        end
    end
    self:sendTextMessage(MESSAGE_INFO_DESCR, description)
end
 
function Player:onLookInBattleList(creature, distance)
    local description = "You see " .. creature:getDescription(distance)
    if self:getGroup():getAccess() then
        local str = "%s\nHealth: %d / %d"
        if creature:getMaxMana() > 0 then
            str = string.format("%s, Mana: %d / %d", str, creature:getMana(), creature:getMaxMana())
        end
        description = string.format(str, description, creature:getHealth(), creature:getMaxHealth()) .. "."
        
        local position = creature:getPosition()
        description = string.format(
            "%s\nPosition: %d, %d, %d",
            description, position.x, position.y, position.z
        )
        
        if creature:isPlayer() then
            description = string.format("%s\nIP: %s", description, Game.convertIpToString(creature:getIp()))
        end
    end
    self:sendTextMessage(MESSAGE_INFO_DESCR, description)
end
 
function Player:onLookInTrade(partner, item, distance)
    self:sendTextMessage(MESSAGE_INFO_DESCR, "You see " .. item:getDescription(distance))
end
 
function Player:onLookInShop(itemType, count)
    return true
end
 
function Player:onMoveItem(item, count, fromPosition, toPosition)
    return true
end
 
function Player:onMoveCreature(creature, fromPosition, toPosition)
    return true
end
 
function Player:onTurn(direction)
    return true
end
 
function Player:onTradeRequest(target, item)
    return true
end
 
function Player:onTradeAccept(target, item, targetItem)
    return true
end
 
local soulCondition = Condition(CONDITION_SOUL, CONDITIONID_DEFAULT)
soulCondition:setTicks(4 * 60 * 1000)
soulCondition:setParameter(CONDITION_PARAM_SOULGAIN, 1)
 
local function useStamina(player)
    local staminaMinutes = player:getStamina()
    if staminaMinutes == 0 then
        return
    end
    
    local playerId = player:getId()
    local currentTime = os.time()
    local timePassed = currentTime - nextUseStaminaTime[playerId]
    if timePassed <= 0 then
        return
    end
    
    if timePassed > 60 then
        if staminaMinutes > 2 then
            staminaMinutes = staminaMinutes - 2
            else
            staminaMinutes = 0
        end
        nextUseStaminaTime[playerId] = currentTime + 120
        else
        staminaMinutes = staminaMinutes - 1
        nextUseStaminaTime[playerId] = currentTime + 60
    end
    player:setStamina(staminaMinutes)
end
 
function Player:onGainExperience(source, exp, rawExp)
    if not source or source:isPlayer() then
        return exp
    end
    
    -- Soul regeneration
    local vocation = self:getVocation()
    if self:getSoul() < vocation:getMaxSoul() and exp >= self:getLevel() then
        soulCondition:setParameter(CONDITION_PARAM_SOULTICKS, vocation:getSoulGainTicks() * 1000)
        self:addCondition(soulCondition)
    end
    
    -- Apply experience stage multiplier
    exp = exp * Game.getExperienceStage(self:getLevel())
    
    -- Stamina modifier
    if configManager.getBoolean(configKeys.STAMINA_SYSTEM) then
        useStamina(self)
        
        local staminaMinutes = self:getStamina()
        if staminaMinutes > 2400 and self:isPremium() then
            exp = exp * 1.5
            elseif staminaMinutes <= 840 then
            exp = exp * 0.5
        end
    end
    
    return exp
end
 
function Player:onLoseExperience(exp)
    return exp
end
 
function Player:onGainSkillTries(skill, tries)
    if APPLY_SKILL_MULTIPLIER == false then
        return tries
    end
    
    if skill == SKILL_MAGLEVEL then
        return tries * configManager.getNumber(configKeys.RATE_MAGIC)
    end
    return tries * configManager.getNumber(configKeys.RATE_SKILL)
end

ca.png?1422745283

 

CONQUISTASdesigner-king.png   Designer.png    

 

Postado

player.cpp, troque:

        s << "yourself.";

por:

        int32_t value;
        getStorageValue(1020, value);
        if(value < 0)
            value = 0;

        s << "yourself [Resets: " << value << "].";

Se funcionar, me avise que faço o resto.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo