• 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!

Lua Script Resets System (otx2- Clinet 8.60)

Gaber Zen

Well-Known Member
Joined
Apr 22, 2023
Messages
224
Reaction score
51
Location
Egypt
hello Otland
I have a problem with Script TalkAction, It works once and gets stuck with some people and I don't know why
Knowing that the first time it does not register list look Createscript
Tibia 8.60
Engine : OTX 2
Lua:
function onSay(cid, words, param)
    local maximum = {
        player = getPlayerGUID(cid),
        lvlmax = 8
    }

    if getPlayerStorageValue(cid, 14335) < 0 then
        if getPlayerLevel(cid) >= 500 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 500)
            setCreatureMaxMana(cid, 500)
            doCreatureAddMana(cid, 500)
            doCreatureAddHealth(cid, 500)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 500 para renascer.")
        end
elseif getPlayerStorageValue(cid, 14335) < 1 then
        if getPlayerLevel(cid) >= 1000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 1000)
            setCreatureMaxMana(cid, 1000)
            doCreatureAddMana(cid, 1000)
            doCreatureAddHealth(cid, 1000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 1000 para renascer.")
        end
elseif getPlayerStorageValue(cid, 14335) < 2 then
        if getPlayerLevel(cid) >= 2000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 1500)
            setCreatureMaxMana(cid, 1500)
            doCreatureAddMana(cid, 1500)
            doCreatureAddHealth(cid, 1500)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 2000 para renascer.")
        end
elseif getPlayerStorageValue(cid, 14335) < 3 then
        if getPlayerLevel(cid) >= 3000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 2000)
            setCreatureMaxMana(cid, 2000)
            doCreatureAddMana(cid, 2000)
            doCreatureAddHealth(cid, 2000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 3000 para renascer.")
        end
elseif getPlayerStorageValue(cid, 14335) < 4 then
        if getPlayerLevel(cid) >= 3500 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 2500)
            setCreatureMaxMana(cid, 2500)
            doCreatureAddMana(cid, 2500)
            doCreatureAddHealth(cid, 2500)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 3500 para renascer.")
        end
     elseif getPlayerStorageValue(cid, 14335) < 5 then
        if getPlayerLevel(cid) >= 4000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 3000)
            setCreatureMaxMana(cid, 3000)
            doCreatureAddMana(cid, 3000)
            doCreatureAddHealth(cid, 3000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 4000 para renascer.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
    end
    return true
end
Code:
function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
 
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
 
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    }
    return size.day + size.week + size.month
end
 
function onLogin(cid)
    registerCreatureEvent(cid, "fraglook")
    return true
end
 
function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) and thing.uid ~= cid then
       doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..'], [Reborn: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,14335)) or 0))..'], [Critical: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48903)) or 0))..'], [Dodge: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,98798644)) or 0))..']')
        return true
    elseif thing.uid == cid then
        doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..'], [Reborn: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,14335)) or 0))..'], [Critical: '..math.max(0,(tonumber(getCreatureStorage(cid,48903)) or 0))..'], [Dodge: '..math.max(0,(tonumber(getCreatureStorage(cid,98798644)) or 0))..']')
        local string = 'You see yourself.'
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
            string = string..' You are '.. getPlayerGroupName(cid) ..'.'
        elseif getPlayerVocation(cid) ~= 0 then
            string = string..' You are '.. getPlayerVocationName(cid) ..'.'
        else
            string = string..' You have no vocation.'
        end
        string = string..getPlayerSpecialDescription(cid)..''
 
        if getPlayerGuildId(cid) > 0 then
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
            string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
            string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
            string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
        return false
    end
    return true
end
 
I made a better, more organized and clean table by level... Try it here.

Lua:
function onSay(cid, words, param)
    local maximum = {
        player = getPlayerGUID(cid),
        lvlmax = 8
    }

    local levels = {
        { level = 500, health = 500, mana = 500 },
        { level = 1000, health = 1000, mana = 1000 },
        { level = 2000, health = 1500, mana = 1500 },
        { level = 3000, health = 2000, mana = 2000 },
        { level = 3500, health = 2500, mana = 2500 },
        { level = 4000, health = 3000, mana = 3000 }
    }

    local storageValue = getPlayerStorageValue(cid, 14335)

    if storageValue < #levels then
        local requiredLevel = levels[storageValue + 1].level

        if getPlayerLevel(cid) >= requiredLevel then
            setPlayerStorageValue(cid, 14335, storageValue + 1)
            local attributes = levels[storageValue + 1]
           
            setCreatureMaxHealth(cid, attributes.health)
            setCreatureMaxMana(cid, attributes.mana)
            doCreatureAddMana(cid, attributes.mana)
            doCreatureAddHealth(cid, attributes.health)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. requiredLevel .. " para renascer.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
    end

    return true
end
 
Last edited:
i upatde code,but
when i create new character to test.
get that

22:41 Você já renasceu o máximo de vezes.
he is have a reset 0
Lua:
function onSay(cid, words, param)
    local maximum = {
        player = getPlayerGUID(cid),
        lvlmax = 8
    }

    local levels = {
        { level = 500, health = 500, mana = 500 },
        { level = 1000, health = 1000, mana = 1000 },
        { level = 2000, health = 1500, mana = 1500 },
        { level = 3000, health = 2000, mana = 2000 },
        { level = 3500, health = 2500, mana = 2500 },
        { level = 4000, health = 3000, mana = 3000 }
    }

    local storageValue = getPlayerStorageValue(cid, 14335)

     if storageValue ~= -1 and storageValue < #levels then
        local requiredLevel = levels[storageValue + 1].level

        if getPlayerLevel(cid) >= requiredLevel then
            setPlayerStorageValue(cid, 14335, storageValue + 1)
            local attributes = levels[storageValue + 1]
           
            setCreatureMaxHealth(cid, attributes.health)
            setCreatureMaxMana(cid, attributes.mana)
            doCreatureAddMana(cid, attributes.mana)
            doCreatureAddHealth(cid, attributes.health)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. requiredLevel .. " para renascer.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
    end

    return true
end
 
Last edited:
Try This
function onSay(cid, words, param)
local maximum = {
player = getPlayerGUID(cid),
lvlmax = 8
}

local levels = {
{ level = 500, health = 500, mana = 500 },
{ level = 1000, health = 1000, mana = 1000 },
{ level = 2000, health = 1500, mana = 1500 },
{ level = 3000, health = 2000, mana = 2000 },
{ level = 3500, health = 2500, mana = 2500 },
{ level = 4000, health = 3000, mana = 3000 }
}

local storageValue = getPlayerStorageValue(cid, 14335)

if storageValue < 0 and storageValue < #levels then
local requiredLevel = levels[storageValue + 1].level

if getPlayerLevel(cid) >= requiredLevel then
setPlayerStorageValue(cid, 14335, storageValue + 1)
local attributes = levels[storageValue + 1]

setCreatureMaxHealth(cid, attributes.health)
setCreatureMaxMana(cid, attributes.mana)
doCreatureAddMana(cid, attributes.mana)
doCreatureAddHealth(cid, attributes.health)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have successfully respawned!")
doRemoveCreature(cid)
db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to be level " .. requiredLevel .. " to respawn.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have already respawned the maximum number of times.")
end

return true
end
 
I can't put a reset back to level 8. However, the script is currently working. Why don't you use an NPC to reset? For example, the player uses a command to reset and then talks to the NPC to return to level 8. It's that simple.

Lua:
function onSay(cid, words, param)


    local playerStorage = getPlayerStorageValue(cid, 14335)
    local resetLevels = {
        { levelRequired = 500, maxHealth = 500, maxMana = 500 },
        { levelRequired = 1000, maxHealth = 1000, maxMana = 1000 },
        { levelRequired = 2000, maxHealth = 1500, maxMana = 1500 },
        { levelRequired = 3500, maxHealth = 2000, maxMana = 2000 },
        { levelRequired = 4000, maxHealth = 2500, maxMana = 2500 }

    }

    if playerStorage < #resetLevels then
        local requiredLevel = resetLevels[playerStorage + 1].levelRequired
        local requiredMaxHealth = resetLevels[playerStorage + 1].maxHealth
        local requiredMaxMana = resetLevels[playerStorage + 1].maxMana
        local RemainingLvl = 8

        if getPlayerLevel(cid) >= requiredLevel then
            setPlayerStorageValue(cid, 14335, playerStorage + 1)
            setCreatureMaxHealth(cid, requiredMaxHealth)
            setCreatureMaxMana(cid, requiredMaxMana)
            doCreatureAddHealth(cid, requiredMaxHealth)
            doCreatureAddMana(cid, requiredMaxMana)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)

        db.executeQuery("UPDATE `players` SET `level` = "..RemainingLvl..", `experience` = 0 WHERE id = " .. getPlayerGUID(cid))

        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. requiredLevel .. " para renascer.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
    end

    return true
end
 
Remmeber db.executeQuery

Lua:
function onSay(cid, words, param)
    local maximum = {
        player = getPlayerGUID(cid),
        lvlmax = 8
    }

    if getPlayerStorageValue(cid, 14335) < 0 then
        if getPlayerLevel(cid) >= 500 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 500)
            setCreatureMaxMana(cid, 500)
            doCreatureAddMana(cid, 500)
            doCreatureAddHealth(cid, 500)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 500 para renascer.")
        end
    elseif getPlayerStorageValue(cid, 14335) < 1 then
        if getPlayerLevel(cid) >= 1000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 1000)
            setCreatureMaxMana(cid, 1000)
            doCreatureAddMana(cid, 1000)
            doCreatureAddHealth(cid, 1000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 1000 para renascer.")
        end
    elseif getPlayerStorageValue(cid, 14335) < 2 then
        if getPlayerLevel(cid) >= 2000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 1500)
            setCreatureMaxMana(cid, 1500)
            doCreatureAddMana(cid, 1500)
            doCreatureAddHealth(cid, 1500)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 2000 para renascer.")
        end
    elseif getPlayerStorageValue(cid, 14335) < 3 then
        if getPlayerLevel(cid) >= 3000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 2000)
            setCreatureMaxMana(cid, 2000)
            doCreatureAddMana(cid, 2000)
            doCreatureAddHealth(cid, 2000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 3000 para renascer.")
        end
    elseif getPlayerStorageValue(cid, 14335) < 4 then
        if getPlayerLevel(cid) >= 3500 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 2500)
            setCreatureMaxMana(cid, 2500)
            doCreatureAddMana(cid, 2500)
            doCreatureAddHealth(cid, 2500)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 3500 para renascer.")
        end
    elseif getPlayerStorageValue(cid, 14335) < 5 then
        if getPlayerLevel(cid) >= 4000 then
            setPlayerStorageValue(cid, 14335, getPlayerStorageValue(cid, 14335) + 1)
            setCreatureMaxHealth(cid, 3000)
            setCreatureMaxMana(cid, 3000)
            doCreatureAddMana(cid, 3000)
            doCreatureAddHealth(cid, 3000)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)
            db.executeQuery("UPDATE players SET level = " .. maximum.lvlmax .. ", experience = 10000 WHERE id = " .. maximum.player)
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level 4000 para renascer.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
    end
    return true
end

function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}

    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end

    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    }
    return size.day + size.week + size.month
end

function onLogin(cid)
    registerCreatureEvent(cid, "fraglook")
    return true
end

function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) and thing.uid ~= cid then
        doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..'], [Reborn: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,14335)) or 0))..'], [Critical: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48903)) or 0))..'], [Dodge: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,98798644)) or 0))..']')
        return true
    elseif thing.uid == cid then
        doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..'], [Reborn: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,14335)) or 0))..'], [Critical: '..math.max(0,(tonumber(getCreatureStorage(cid,48903)) or 0))..'], [Dodge: '..math.max(0,(tonumber(getCreatureStorage(cid,98798644)) or 0))..']')
        local string = 'You see yourself.'
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
            string = string..' You are '.. getPlayerGroupName(cid) ..'.'
        elseif getPlayerVocation(cid) ~= 0 then
            string = string..' You are '.. getPlayerVocationName(cid) ..'.'
        else
            string = string..' You have no vocation.'
        end
        string = string..getPlayerSpecialDescription(cid)..''

        if getPlayerGuildId(cid) > 0 then
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
        end

        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
            string = string..'\nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
            string = string..'\nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
        end

        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
            string = string..'\nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
        return false
    end
    return true
end
Post automatically merged:

I can't put a reset back to level 8. However, the script is currently working. Why don't you use an NPC to reset? For example, the player uses a command to reset and then talks to the NPC to return to level 8. It's that simple.

Lua:
function onSay(cid, words, param)


    local playerStorage = getPlayerStorageValue(cid, 14335)
    local resetLevels = {
        { levelRequired = 500, maxHealth = 500, maxMana = 500 },
        { levelRequired = 1000, maxHealth = 1000, maxMana = 1000 },
        { levelRequired = 2000, maxHealth = 1500, maxMana = 1500 },
        { levelRequired = 3500, maxHealth = 2000, maxMana = 2000 },
        { levelRequired = 4000, maxHealth = 2500, maxMana = 2500 }

    }

    if playerStorage < #resetLevels then
        local requiredLevel = resetLevels[playerStorage + 1].levelRequired
        local requiredMaxHealth = resetLevels[playerStorage + 1].maxHealth
        local requiredMaxMana = resetLevels[playerStorage + 1].maxMana
        local RemainingLvl = 8

        if getPlayerLevel(cid) >= requiredLevel then
            setPlayerStorageValue(cid, 14335, playerStorage + 1)
            setCreatureMaxHealth(cid, requiredMaxHealth)
            setCreatureMaxMana(cid, requiredMaxMana)
            doCreatureAddHealth(cid, requiredMaxHealth)
            doCreatureAddMana(cid, requiredMaxMana)
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
            doRemoveCreature(cid)

        db.executeQuery("UPDATE `players` SET `level` = "..RemainingLvl..", `experience` = 0 WHERE id = " .. getPlayerGUID(cid))

        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. requiredLevel .. " para renascer.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
    end

    return true
end
I this better this check

Lua:
function onSay(cid, words, param)
    local rebornLevels = {
        { requiredLevel = 500, maxHealth = 500, maxMana = 500 },
        { requiredLevel = 1000, maxHealth = 1000, maxMana = 1000 },
        { requiredLevel = 2000, maxHealth = 1500, maxMana = 1500 },
        { requiredLevel = 3500, maxHealth = 2000, maxMana = 2000 },
        { requiredLevel = 4000, maxHealth = 2500, maxMana = 2500 }
    }

    local playerStorage = getPlayerStorageValue(cid, 14335)

    if playerStorage >= #rebornLevels then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
        return true
    end

    local currentReborn = rebornLevels[playerStorage + 1]

    if getPlayerLevel(cid) >= currentReborn.requiredLevel then
        setPlayerStorageValue(cid, 14335, playerStorage + 1)
        setCreatureMaxHealth(cid, currentReborn.maxHealth)
        setCreatureMaxMana(cid, currentReborn.maxMana)
        doCreatureAddHealth(cid, currentReborn.maxHealth)
        doCreatureAddMana(cid, currentReborn.maxMana)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
        doRemoveCreature(cid)
        db.executeQuery("UPDATE players SET level = 8, experience = 0 WHERE id = " .. getPlayerGUID(cid))
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. currentReborn.requiredLevel .. " para renascer.")
    end

    return true
end
 
change this


Lua:
function onSay(cid, words, param)
    local currentReborn = 1

    currentReborn = currentReborn + 1
 
YOUR CODE


end

And if you forgot about the database, set the value there



Lua:
function onSay(cid, words, param)
    local rebornLevels = {
        { requiredLevel = 500, maxHealth = 500, maxMana = 500 },
        { requiredLevel = 1000, maxHealth = 1000, maxMana = 1000 },
        { requiredLevel = 2000, maxHealth = 1500, maxMana = 1500 },
        { requiredLevel = 3500, maxHealth = 2000, maxMana = 2000 },
        { requiredLevel = 4000, maxHealth = 2500, maxMana = 2500 }
    }

    local playerStorage = getPlayerStorageValue(cid, 14335)

    if playerStorage >= #rebornLevels then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
        return true
    end

    local currentReborn = rebornLevels[playerStorage + 1]

    if currentReborn and getPlayerLevel(cid) >= currentReborn.requiredLevel then
        setPlayerStorageValue(cid, 14335, playerStorage + 1)
        setCreatureMaxHealth(cid, currentReborn.maxHealth)
        setCreatureMaxMana(cid, currentReborn.maxMana)
        doCreatureAddHealth(cid, currentReborn.maxHealth)
        doCreatureAddMana(cid, currentReborn.maxMana)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
        doRemoveCreature(cid)
        db.executeQuery("UPDATE players SET level = 8, experience = 0 WHERE id = " .. getPlayerGUID(cid))
    else
        if currentReborn then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. currentReborn.requiredLevel .. " para renascer.")
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
        end
    end

    return true
end



If have error make PRINT :)
 
Last edited:
Não falo mais nada, só quero te ajudar, relaxe

Lua:
function onSay(cid, words, param)
    local rebornLevels = {
        { requiredLevel = 500, maxHealth = 500, maxMana = 500 },
        { requiredLevel = 1000, maxHealth = 1000, maxMana = 1000 },
        { requiredLevel = 2000, maxHealth = 1500, maxMana = 1500 },
        { requiredLevel = 3500, maxHealth = 2000, maxMana = 2000 },
        { requiredLevel = 4000, maxHealth = 2500, maxMana = 2500 }
    }

    local playerStorage = getPlayerStorageValue(cid, 14335)

    if playerStorage == -1 then
        playerStorage = 0
        setPlayerStorageValue(cid, 14335, playerStorage)
    end

    if playerStorage >= #rebornLevels then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
        return true
    end

    local currentReborn = rebornLevels[playerStorage + 1]

    if getPlayerLevel(cid) >= currentReborn.requiredLevel then
        setPlayerStorageValue(cid, 14335, playerStorage + 1)
        setCreatureMaxHealth(cid, currentReborn.maxHealth)
        setCreatureMaxMana(cid, currentReborn.maxMana)
        doCreatureAddHealth(cid, currentReborn.maxHealth)
        doCreatureAddMana(cid, currentReborn.maxMana)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")
        doRemoveCreature(cid)
        db.executeQuery("UPDATE players SET level = 8, experience = 0 WHERE id = " .. getPlayerGUID(cid))
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. currentReborn.requiredLevel .. " para renascer.")
    end

    return true
end
 
check too db.executeQuery

Lua:
function onSay(cid, words, param)
    local rebornLevels = {
        { requiredLevel = 500, maxHealth = 500, maxMana = 500 },
        { requiredLevel = 1000, maxHealth = 1000, maxMana = 1000 },
        { requiredLevel = 2000, maxHealth = 1500, maxMana = 1500 },
        { requiredLevel = 3500, maxHealth = 2000, maxMana = 2000 },
        { requiredLevel = 4000, maxHealth = 2500, maxMana = 2500 }
    }

    local playerStorage = getPlayerStorageValue(cid, 14335)

    if playerStorage == -1 then
        playerStorage = 0
        setPlayerStorageValue(cid, 14335, playerStorage)
    end

    if playerStorage >= #rebornLevels then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já renasceu o máximo de vezes.")
        return true
    end

    local currentReborn = rebornLevels[playerStorage + 1]

    if getPlayerLevel(cid) >= currentReborn.requiredLevel then
        setPlayerStorageValue(cid, 14335, playerStorage + 1)
        setCreatureMaxHealth(cid, currentReborn.maxHealth)
        setCreatureMaxMana(cid, currentReborn.maxMana)
        doCreatureAddHealth(cid, currentReborn.maxHealth)
        doCreatureAddMana(cid, currentReborn.maxMana)
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você renasceu com sucesso!")


        doPlayerSetLevel(cid, 8)
    
        db.executeQuery("UPDATE players SET level = 8, experience = 0 WHERE id = " .. getPlayerGUID(cid))
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa ser level " .. currentReborn.requiredLevel .. " para renascer.")
    end

    return true
end
 
Last edited:

Similar threads

Back
Top