adrian alvarez
Member
- Joined
- Mar 7, 2017
- Messages
- 46
- Solutions
- 1
- Reaction score
- 6
I have this revscript, it works perfectly but the problem is that for each reset it doubles life and mana, can you help me so that it only gives you a percentage of life and mana per reset? or that only 100 more points of life and mana
By doubling the life I mean that if the character has 50k of life, when doing a reset he keeps those 50k and when he reaches the required level of reset he would already have 100k and when doing a reset he would keep those 100k
By doubling the life I mean that if the character has 50k of life, when doing a reset he keeps those 50k and when he reaches the required level of reset he would already have 100k and when doing a reset he would keep those 100k
Lua:
local resetSys = TalkAction("!reset")
local config = {
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 = 4, level = 3500, premium = 3500},
{resets = 9, level = 3600, premium = 3600},
{resets = 14, level = 3700, premium = 3700},
{resets = 19, level = 3800, premium = 3800},
{resets = 24, level = 3900, premium = 3900},
{resets = 29, level = 4000, premium = 4000},
{resets = 34, level = 4100, premium = 4100},
{resets = 39, level = 4200, premium = 4200},
{resets = 44, level = 4300, premium = 4300},
{resets = 49, level = 4400, premium = 4400},
{resets = 54, level = 4500, premium = 4500},
{resets = 59, level = 4600, premium = 4600},
{resets = 64, level = 4700, premium = 4700},
{resets = 69, level = 4800, premium = 4800},
{resets = 74, level = 4900, premium = 4900},
{resets = 79, level = 5000, premium = 5000},
{resets = 84, level = 5100, premium = 5100},
{resets = 89, level = 5200, premium = 5200},
{resets = 94, level = 5300, premium = 5300},
{resets = 2^1024, level = 5400, premium = 5400}
}
}
function resetSys.onSay(player, words, param)
local function getExperienceForLevel(lv)
lv = lv - 1
return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3
end
local function getPlayerResets()
local resets = player:getStorageValue(500)
return resets < 0 and 0 or resets
end
local function doPlayerAddResets(count)
player:setStorageValue(500, getPlayerResets() + count)
end
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 resetLevel = 0
for x, y in ipairs(config.stages) do
if getPlayerResets() <= y.resets then
resetLevel = player:isPremium() and y.premium or y.level
break
end
end
if getPlayerLevel(player) < resetLevel then
player:sendCancelMessage("You need level " .. resetLevel .. " or more to reset.")
return false
end
doPlayerAddResets(1)
local healthMax, manaMax, health, mana = player:getMaxHealth(), player:getMaxMana(), player:getHealth(), player:getMana()
player:removeExperience(getExperienceForLevel(player:getLevel()) - getExperienceForLevel(config.backToLevel))
player:setMaxHealth(MaxHealth)
player:setMaxMana(MaxMana)
player:addHealth(health)
player:addMana(mana)
player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
player:sendTextMessage(MESSAGE_INFO_DESCR, "Now you have " .. getPlayerResets() .. " " .. (getPlayerResets() == 1 and "reset" or "resets") .. ".")
return false
end
resetSys:register()