• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Lua exp dont working

viking

Member
Joined
Aug 20, 2015
Messages
323
Reaction score
22
PHP:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
local days = 1 -- dias que serão adicionados
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 1234)
local timenow = os.time()
if getPlayerStorageValue(cid, 1234) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dia de Double EXP no seu character.")
setPlayerStorageValue(cid, 1234, time)
local quantity = math.floor((getPlayerStorageValue(cid, 1234) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce tem ".. quantity .." dias de Double EXP restantes.")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
return TRUE
end

My TFS 1.0


MY tfs dont have on events "onGainexp...."
 
Last edited:
The first line in the console shows the server and version.
https://otland.net/threads/how-to-see-which-server-you-are-using.230892/

This script only sets a storage to a player when he uses a item, do you have any onGainExperience event?
Code:
local config = {
    removeOnUse = true,
    days = 1
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local daysvalue = config.days * 24 * 60 * 60
    local storageplayer = getPlayerStorageValue(cid, 1234)

    local timenow = os.time()
    if getPlayerStorageValue(cid, 1234) - os.time() <= 0 then
        time = timenow + daysvalue
    else
        time = storageplayer + daysvalue
    end

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. config.days .." dia de Double EXP no seu character.")
    setPlayerStorageValue(cid, 1234, time)

    local quantity = math.floor((getPlayerStorageValue(cid, 1234) - timenow) / (24 * 60 * 60))
    doSendMagicEffect(getPlayerPosition(cid), math.random(28, 30))
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce tem ".. quantity .." dias de Double EXP restantes.")

    if (config.removeOnUse) then
        doRemoveItem(item.uid, 1)
    end
    return true
end
 
The first line in the console shows the server and version.
https://otland.net/threads/how-to-see-which-server-you-are-using.230892/

This script only sets a storage to a player when he uses a item, do you have any onGainExperience event?
Code:
local config = {
    removeOnUse = true,
    days = 1
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local daysvalue = config.days * 24 * 60 * 60
    local storageplayer = getPlayerStorageValue(cid, 1234)

    local timenow = os.time()
    if getPlayerStorageValue(cid, 1234) - os.time() <= 0 then
        time = timenow + daysvalue
    else
        time = storageplayer + daysvalue
    end

    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. config.days .." dia de Double EXP no seu character.")
    setPlayerStorageValue(cid, 1234, time)

    local quantity = math.floor((getPlayerStorageValue(cid, 1234) - timenow) / (24 * 60 * 60))
    doSendMagicEffect(getPlayerPosition(cid), math.random(28, 30))
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce tem ".. quantity .." dias de Double EXP restantes.")

    if (config.removeOnUse) then
        doRemoveItem(item.uid, 1)
    end
    return true
end

I was tryed to put but dont work, you can send me player.lua with this or edit mine to test bro? please I really need help..

I tryed to put this:

Code:
function Player:onGainExperience(source, exp, rawExp)
     if self:getStorageValue(1234) >= 1 then
        exp = exp * 2
    end
dont work..

My player.lua
PHP:
function Player:onBrowseField(position)
    return true
end

function Player:onLook(thing, position, distance)
    local description = "You see " .. thing:getDescription(distance)
    if self:getGroup():getAccess() then
        if thing:isItem() then
            description = string.format("%s\nItemID: [%d]", description, thing:getId())

            local actionId = thing:getActionId()
            if actionId ~= 0 then
                description = string.format("%s, ActionID: [%d]", description, actionId)
            end
           
            local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)
            if uniqueId > 0 and uniqueId < 65536 then
                description = string.format("%s, UniqueId: [%d]", description, uniqueId)
            end
           
            description = description .. "."
            local itemType = thing:getType()
           
            local transformEquipId = itemType:getTransformEquipId()
            local transformDeEquipId = itemType:getTransformDeEquipId()
            if transformEquipId ~= 0 then
                description = string.format("%s\nTransformTo: [%d] (onEquip).", description, transformEquipId)
            elseif transformDeEquipId ~= 0 then
                description = string.format("%s\nTransformTo: [%d] (onDeEquip).", description, transformDeEquipId)
            end

            local decayId = itemType:getDecayId()
            if decayId ~= -1 then
                description = string.format("%s\nDecayTo: [%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: [X: %d] [Y: %d] [Z: %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: [X: %d] [Y: %d] [Z: %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)
    local tile = toPosition:getTile()
    if tile then
        local thing = tile:getItemByType(ITEM_TYPE_TELEPORT)
        if thing ~= nil then
            self:sendCancelMessage("Sorry, not possible.")
            self:getPosition():sendMagicEffect(CONST_ME_POFF)
            return false
        end
    end

    if isInArray({1714, 1715, 1716, 1717, 1738, 1740, 1741, 1747, 1748, 1749}, item.itemid) and item.actionid > 0 then
        self:sendCancelMessage('You cannot move this object.')
        self:getPosition():sendMagicEffect(CONST_ME_POFF)
        return false
    end
   
    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
 
Code:
if self:getStorageValue(1234) >= os.time() then
  exp = exp * 2
end
return exp

Remember to enable onGainExperience in events.xml.
 
Last edited:
Code:
if self:getStorageValue(1234) >= os.time() then
        exp = exp * 2
end

Remember to enable onGainExperience in events.xml.

You are a coder? Please send me your skype, I need repair 3 scripts, I can pay you... Need it fastt :S

<event class="Player" method="onGainExperience" enabled="1"/>
and dont work the event name:
ApVozSF.png
 
Back
Top