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

RevScripts reset

alcapone

Member
Joined
Jan 13, 2021
Messages
247
Reaction score
19
Lua:
local resetSys = TalkAction("!reset")

local config = {
    storageResets = 500,
    backToLevel = 8,
    redskull = true, -- need to be without redskull to reset?
    battle = true, -- need to be without battle to reset?
    pz = false, -- need to be in protect zone to reset?
    stages = {
        {resets = 1, level = 1000, premium = 1000},
        {resets = 2, level = 2000, premium = 2000},
        {resets = 3, level = 3000, premium = 3000},
        {resets = 4, level = 4000, premium = 4000}
        
    }
}

local function getExperienceForLevel(lv)
    lv = lv - 1
    return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end

function resetSys.onSay(player, words, param)
    if config.redskull and player:getSkull() == 4 then
        player:sendCancelMessage("You need to be without red skull to reset.")
        return false
    elseif config.pz and not getTilePzInfo(player:getPosition()) then
        player:sendCancelMessage("You need to be in protection zone to reset.")
        return false
    elseif config.battle and player:getCondition(CONDITION_INFIGHT) then
        player:sendCancelMessage("You need to be without battle to reset.")
        return false
    end

    local playerResets = math.max(0, player:getStorageValue(config.storageResets))
    local stage = nil
    for _, _stage in pairs(config.stages) do
        if playerResets <= _stage.resets then
            stage = _stage
            break
        end
    end

    if not stage then
        print("[Warning - ResetSystem::onSay] Stage not found for player: " .. player:getName())
        return false
    end

    local resetLevel = player:isPremium() and stage.premium or stage.level
    local playerLevel = player:getLevel()
    if playerLevel < resetLevel then
        player:sendCancelMessage("You need level " .. resetLevel .. " or more to reset.")
        return false
    end

    playerResets = playerResets + 1
    player:setStorageValue(config.storageResets, playerResets)
    player:removeExperience(getExperienceForLevel(playerLevel) - getExperienceForLevel(config.backToLevel))
 

local newMaxHealth = 185
local newMaxMana = 90
 

    player:setMaxHealth(newMaxHealth)
    player:setMaxMana(newMaxMana)
    player:addHealth(newMaxHealth)
    player:addMana(newMaxMana)
 
    
    player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
    player:sendTextMessage(MESSAGE_INFO_DESCR, "Now you have " .. playerResets .. " " .. (playerResets == 1 and "reset" or "resets") .. ".")
    return false
end

resetSys:register()


I found this script on the forum I would like to modify it so if the player is level 2000, he gets 2 reset points if he is level 1000 1 reset point
 
I'm not an expert but I would do something like this, use a gold coin as an example.

Lua:
local resetSys = TalkAction("!reset")

local config = {
    storageResets = 500,
    backToLevel = 8,
    redskull = true, -- need to be without redskull to reset?
    battle = true, -- need to be without battle to reset?
    pz = false, -- need to be in protect zone to reset?
    stages = {
        {resets = 1, level = 1000, premium = 1000},
        {resets = 2, level = 2000, premium = 2000},
        {resets = 3, level = 3000, premium = 3000},
        {resets = 4, level = 4000, premium = 4000}
        
    }
}

local function getExperienceForLevel(lv)
    lv = lv - 1
    return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end

function resetSys.onSay(player, words, param)
    if config.redskull and player:getSkull() == 4 then
        player:sendCancelMessage("You need to be without red skull to reset.")
        return false
    elseif config.pz and not getTilePzInfo(player:getPosition()) then
        player:sendCancelMessage("You need to be in protection zone to reset.")
        return false
    elseif config.battle and player:getCondition(CONDITION_INFIGHT) then
        player:sendCancelMessage("You need to be without battle to reset.")
        return false
    end

    local playerResets = math.max(0, player:getStorageValue(config.storageResets))
    local stage = nil
    for _, _stage in pairs(config.stages) do
        if playerResets <= _stage.resets then
            stage = _stage
            break
        end
    end

    if not stage then
        print("[Warning - ResetSystem::onSay] Stage not found for player: " .. player:getName())
        return false
    end

    local resetLevel = player:isPremium() and stage.premium or stage.level
    local playerLevel = player:getLevel()
    if playerLevel < resetLevel then
        player:sendCancelMessage("You need level " .. resetLevel .. " or more to reset.")
        return false
    end
    
    if player:getLevel >= 1000 then
        player:addItem(2148, 1) -- this id is for gold coin you can change it anytime
        player:sendTextMessage(MESSAGE_INFO_DESCR, "You recieve 1 reset point") -- here just add a msg
    elseif player:getLevel >= 2000 then
        player:addItem(2148, 2)
        player:sendTextMessage(MESSAGE_INFO_DESCR, "You recieve 2 reset point")
    end
    
    playerResets = playerResets + 1
    player:setStorageValue(config.storageResets, playerResets)
    player:removeExperience(getExperienceForLevel(playerLevel) - getExperienceForLevel(config.backToLevel))
 

local newMaxHealth = 185
local newMaxMana = 90
 

    player:setMaxHealth(newMaxHealth)
    player:setMaxMana(newMaxMana)
    player:addHealth(newMaxHealth)
    player:addMana(newMaxMana)
 
    
    player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
    player:sendTextMessage(MESSAGE_INFO_DESCR, "Now you have " .. playerResets .. " " .. (playerResets == 1 and "reset" or "resets") .. ".")
    return false
end

resetSys:register()
 
Lua:
restablecimiento localSys = TalkAction("!reset")

configuración local = {
    reinicios de almacenamiento = 500,
    volver al nivel = 8,
    redskull = true, - ¿necesitas estar sin redskull para reiniciar?
    batalla = verdadero, - ¿necesitas estar sin batalla para reiniciar?
    pz = false, -- ¿necesita estar en la zona protegida para restablecer?
    etapas = {
        {se reinicia = 1, nivel = 1000, prima = 1000},
        {se reinicia = 2, nivel = 2000, prima = 2000},
        {se reinicia = 3, nivel = 3000, premium = 3000},
        {se reinicia = 4, nivel = 4000, premium = 4000}
       
    }
}

función local getExperienceForLevel(lv)
    nivel = nivel - 1
    retorno ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
fin

función resetSys.onSay(jugador, palabras, parámetro)
    si config.redskull y player:getSkull() == 4 entonces
        player:sendCancelMessage("Debes no tener la calavera roja para reiniciar.")
        falso retorno
    elseif config.pz y no getTilePzInfo(player:getPosition()) entonces
        player:sendCancelMessage("Debes estar en la zona de protección para reiniciar.")
        falso retorno
    elseif config.battle y player:getCondition(CONDITION_INFIGHT) entonces
        player:sendCancelMessage("Debes estar sin batalla para reiniciar.")
        falso retorno
    fin

    playerResets local = math.max(0, jugador:getStorageValue(config.storageResets))
    etapa local = nula
    para _, _stage en pares (config.stages) hacer
        si playerResets <= _stage.resets entonces
            etapa = _etapa
            romper
        fin
    fin

    Si no es escenario entonces
        print("[Advertencia - ResetSystem::onSay] Etapa no encontrada para el reproductor: " .. player:getName())
        falso retorno
    fin

    resetLevel local = player:isPremium() y stage.premium o stage.level
    nivel de jugador local = jugador:getLevel()
    si nivel de jugador <resetLevel entonces
        player:sendCancelMessage("Necesitas nivel " .. resetLevel .. " o más para restablecer.")
        falso retorno
    fin

    reinicios de jugador = reinicios de jugador + 1
    jugador:setStorageValue(config.storageResets, playerResets)
    jugador:removeExperience(getExperienceForLevel(playerLevel) - getExperienceForLevel(config.backToLevel))
 

local nuevoMaxHealth = 185
nuevoMaxMana local = 90
 

    jugador:setMaxHealth(nuevoMaxHealth)
    jugador:setMaxMana(nuevoMaxMana)
    jugador:addHealth(newMaxHealth)
    jugador: agregarMana (nuevoMaxMana)
 
   
    jugador:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
    player:sendTextMessage(MESSAGE_INFO_DESCR, "Ahora tienes " .. playerResets .. " " .. (playerResets == 1 y "reset" o "resets") .. ".")
    falso retorno
fin

resetSys:registro()[/CÓDIGO]


Encontré este script en el foro. Me gustaría modificarlo para que si el jugador tiene el nivel 2000, obtenga 2 puntos de reinicio. Si tiene el nivel 1000, 1 punto de reinicio.
[/QUOTE]

aqui te dejo una 
[CODE=lua]restablecimiento localSys = TalkAction("!reset")

configuración local = {
    reinicios de almacenamiento = 101,
    volver al nivel = 8,
    redskull = true, -- ¿Se necesita estar sin calavera roja para reiniciar?
    battle = true, -- ¿Se necesita estar fuera de combate para reiniciar?
    pz = false, -- ¿Se necesita estar en zona de protección para reiniciar?
    etapas = {
        {se reinicia = 10, nivel = 10, premium = 10},
        {se reinicia = 20, nivel = 20, premium = 20},
        {se reinicia = 30, nivel = 30, premium = 30},
        {se reinicia = 40, nivel = 40, premium = 40}
    }
}

función local getExperienceForLevel(lv)
    nivel = nivel - 1
    retorno ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
fin

función resetSys.onSay(jugador, palabras, parámetro)
    si config.redskull y player:getSkull() == SKULL_RED entonces
        player:sendCancelMessage("Debes no tener la calavera roja para reiniciar.")
        falso retorno
    elseif config.pz y no getTilePzInfo(player:getPosition()) entonces
        player:sendCancelMessage("Debes estar en la zona de protección para reiniciar.")
        falso retorno
    elseif config.battle y player:getCondition(CONDITION_INFIGHT) entonces
        player:sendCancelMessage("Debes estar sin batalla para reiniciar.")
        falso retorno
    fin

    playerResets local = math.max(0, jugador:getStorageValue(config.storageResets))
    etapa local = nula
    para _, _stage en pares (config.stages) hacer
        si playerResets <= _stage.resets entonces
            etapa = _etapa
            romper
        fin
    fin

    Si no es escenario entonces
        print("[Advertencia - ResetSystem::onSay] Etapa no encontrada para el reproductor: " .. player:getName())
        falso retorno
    fin

    resetLevel local = player:isPremium() y stage.premium o stage.level
    nivel de jugador local = jugador:getLevel()
    si nivel de jugador <resetLevel entonces
        player:sendCancelMessage("Necesitas nivel " .. resetLevel .. " o más para restablecer.")
        falso retorno
    fin
    
    puntos de reinicio locales = 0
    si playerLevel >= 10 y playerLevel < 20 entonces
        puntos de reinicio = 1
    elseif playerLevel >= 20 y playerLevel < 30 entonces
        puntos de reinicio = 2
    fin
    
    si resetPoints > 0 entonces
        player:addItem(35239, resetPoints) -- ID para monedas de oro (se puede cambiar)
        player:sendTextMessage(MESSAGE_INFO_DESCR, "Recibes " .. resetPoints .. " puntos de reinicio.")
    fin
    
    reinicios de jugador = reinicios de jugador + 1
    jugador:setStorageValue(config.storageResets, playerResets)
    jugador:removeExperience(getExperienceForLevel(playerLevel) - getExperienceForLevel(config.backToLevel))
 
    local nuevoMaxHealth = 185
    nuevoMaxMana local = 90

    jugador:setMaxHealth(nuevoMaxHealth)
    jugador:setMaxMana(nuevoMaxMana)
    jugador:addHealth(newMaxHealth)
    jugador: agregarMana (nuevoMaxMana)
    
    jugador:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
    player:sendTextMessage(MESSAGE_INFO_DESCR, "Ahora tienes " .. playerResets .. " " .. (playerResets == 1 y "reset" o "resets") .. ".")
    falso retorno
fin

resetSys:registro()
[/CÓDIGO]
Post automatically merged:

No soy un experto pero haría algo como esto, usaría una moneda de oro como ejemplo.

Lua:
restablecimiento localSys = TalkAction("!reset")

configuración local = {
    reinicios de almacenamiento = 500,
    volver al nivel = 8,
    redskull = true, - ¿necesitas estar sin redskull para reiniciar?
    batalla = verdadero, - ¿necesitas estar sin batalla para reiniciar?
    pz = false, -- ¿necesita estar en la zona protegida para restablecer?
    etapas = {
        {se reinicia = 1, nivel = 1000, prima = 1000},
        {se reinicia = 2, nivel = 2000, prima = 2000},
        {se reinicia = 3, nivel = 3000, premium = 3000},
        {se reinicia = 4, nivel = 4000, premium = 4000}
       
    }
}

función local getExperienceForLevel(lv)
    nivel = nivel - 1
    retorno ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
fin

función resetSys.onSay(jugador, palabras, parámetro)
    si config.redskull y player:getSkull() == 4 entonces
        player:sendCancelMessage("Debes no tener la calavera roja para reiniciar.")
        falso retorno
    elseif config.pz y no getTilePzInfo(player:getPosition()) entonces
        player:sendCancelMessage("Debes estar en la zona de protección para reiniciar.")
        falso retorno
    elseif config.battle y player:getCondition(CONDITION_INFIGHT) entonces
        player:sendCancelMessage("Debes estar sin batalla para reiniciar.")
        falso retorno
    fin

    playerResets local = math.max(0, jugador:getStorageValue(config.storageResets))
    etapa local = nula
    para _, _stage en pares (config.stages) hacer
        si playerResets <= _stage.resets entonces
            etapa = _etapa
            romper
        fin
    fin

    Si no es escenario entonces
        print("[Advertencia - ResetSystem::onSay] Etapa no encontrada para el reproductor: " .. player:getName())
        falso retorno
    fin

    resetLevel local = player:isPremium() y stage.premium o stage.level
    nivel de jugador local = jugador:getLevel()
    si nivel de jugador <resetLevel entonces
        player:sendCancelMessage("Necesitas nivel " .. resetLevel .. " o más para restablecer.")
        falso retorno
    fin
   
    si jugador: getLevel >= 1000 entonces
        player:addItem(2148, 1) -- esta identificación es para moneda de oro, puedes cambiarla en cualquier momento
        player:sendTextMessage(MESSAGE_INFO_DESCR, "Recibes 1 punto de reinicio") - aquí solo agrega un mensaje
    elseif jugador:getLevel >= 2000 entonces
        jugador:addItem(2148, 2)
        jugador:sendTextMessage(MESSAGE_INFO_DESCR, "Recibes 2 puntos de reinicio")
    fin
   
    reinicios de jugador = reinicios de jugador + 1
    jugador:setStorageValue(config.storageResets, playerResets)
    jugador:removeExperience(getExperienceForLevel(playerLevel) - getExperienceForLevel(config.backToLevel))
 

local nuevoMaxHealth = 185
nuevoMaxMana local = 90
 

    jugador:setMaxHealth(nuevoMaxHealth)
    jugador:setMaxMana(nuevoMaxMana)
    jugador:addHealth(newMaxHealth)
    jugador: agregarMana (nuevoMaxMana)
 
   
    jugador:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
    player:sendTextMessage(MESSAGE_INFO_DESCR, "Ahora tienes " .. playerResets .. " " .. (playerResets == 1 y "reset" o "resets") .. ".")
    falso retorno
fin

resetSys:registro()[/CÓDIGO]
[/QUOTE]

mista dando bug ya le puse una yo
 
Back
Top