Ir para conteúdo

Sistema de resets com rates


HatakeeKakashi

Posts Recomendados

acho que o titulo já é alto explicativo mais eu posso comentar rapidamente ...

Eu uso sistema de resets e a cada determinado reset conquistado a exp diminuiria isso é uma coisa que quero que aconteça não tem aqui . Exemplo com 1 - 100 resets minha exp tá 10k ai de 101 resets em diante ela vai pra 5k

 

Aqui vai o script

-- CONFIGS --
prem = false -- Premium Account necessária para resetar? (true / false)
pz = true -- É preciso estar em Protection Zone para resetar? (true / false)
white = false -- Players com White Skull podem resetar? (true / false)
red = false -- Players com Red Skull podem resetar? (true / false)
black = false  -- Players com Black Skull podem resetar? (true / false)
battle = true -- Players com battle podem resetar? (true / false)
teleport = false -- Teleportar o player para o templo após o reset? (true / false)
look = true -- Aparecer resets no look? (true / false)
 
level = 350 -- Level necessário para resetar
nlevel = 100 -- Level que o player ficará após o reset
time = 1 -- Tempo para o player deslogar ao resetar (segundos)
limite = 3500 -- Limite de resets (Caso não queira limite, coloque false)
 
system = "storage" -- Modo do sistema (database / storage)
storage = 39650 -- Storage dos resets
group = 5 -- ID do Group que tem permissão para adicionar resets (6 = god, 5 = cm, 4 = gm, 3 = senior tutor, 2 = tutor)
exhastor = 17138
-- CONFIGS --
------------------------------------------------------------------------------------------------------------------------------------
function getPlayerResets(tid)
        if system == "database" then
                local a = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..pid..";")
                b = a:getDataInt("resets", pid)
                return b
        elseif system == "storage" then
                return getPlayerStorageValue(tid, storage) < 0 and 0 or getPlayerStorageValue(tid, storage)
        else
                return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")
        end
end
 
function doPlayerAddResets(tid, count)
        if system == "database" then
                return db.executeQuery("UPDATE `players` SET `resets` = '"..(getPlayerResets(tid)+(count == nil and 1 or count)).."' WHERE `id` = '"..pid.."';")
        elseif system == "storage" then
                return setPlayerStorageValue(tid, storage, getPlayerResets(tid)+(count == nil and 1 or count))
        else
                return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")
        end
end
 
function doPlayerReset(tid, count, mid)
        if teleport then
                doTeleportThing(tid, getTownTemplePosition(getPlayerTown(tid)))
        end
        local resets = getPlayerResets(tid)
        function setResetsInLook(tid)
                return db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..(resets+(count == nil and 1 or count)).."]' WHERE `id` = '"..(mid == nil and pid or mid).."';")
        end
        if system == "database" then
                doRemoveCreature(tid)
                doPlayerAddResets(tid, count == nil and 1 or count)
        elseif system == "storage" then
                doPlayerAddResets(tid, count == nil and 1 or count)
                doRemoveCreature(tid)
        else
                return print("Erro: Configuração da variável 'system' no sistema de resets incorreta.")
        end
                db.executeQuery("UPDATE `players` SET `level` = '"..nlevel.."' WHERE `id` = '"..(mid == nil and pid or mid).."';")
        if look then
                setResetsInLook(tid)
        end
end
------------------------------------------------------------------------------------------------------------------------------------
function onSay(cid, words, param)
        pid = getPlayerGUID(cid)
 
        if words == "!reset" or words == "!resetar" then
                if prem and not isPremium(cid) then
                        doPlayerSendCancel(cid, "Você precisa ser Premium Account para resetar.") return true
                elseif pz and not getTilePzInfo(getCreaturePosition(cid)) then
                        doPlayerSendCancel(cid, "Você precisa estar em Protection Zone para resetar.") return true
                elseif white and getCreatureSkullType(cid) == SKULL_WHITE then
                        doPlayerSendCancel(cid, "Você precisa estar sem White Skull para resetar.") return true
                elseif red and getCreatureSkullType(cid) == SKULL_RED then
                        doPlayerSendCancel(cid, "Você precisa estar sem Red Skull para resetar.") return true
                elseif black and getCreatureSkullType(cid) == SKULL_BLACK then
                        doPlayerSendCancel(cid, "Você precisa estar sem Black Skull para resetar.") return true
                elseif battle and hasCondition(cid, CONDITION_INFIGHT) then
                        doPlayerSendCancel(cid, "Você precisa estar sem battle para resetar.") return true
                elseif getPlayerLevel(cid) < level then
                        doPlayerSendCancel(cid, "Você precisa ter level "..level.." para resetar.") return true
                elseif limite and getPlayerResets(cid) == limite then
                        doPlayerSendCancel(cid, "Você já está no limite de resets ("..limite..").") return true
                elseif exhaustion.check(cid, exhastor) then
                        doPlayerSendCancel(cid, "Espere "..exhaustion.get(cid, exhastor).." segundos para usar o comando novamente.") return true
                end
               
                        addEvent(doPlayerReset, time*1000, cid)
                        doPlayerPopupFYI(cid, "Você resetou com sucesso. Você agora tem "..(getPlayerResets(cid)+1).." resets. Você será deslogad"..(getPlayerSex(cid) >= 1 and "o" or "a").." em "..time.." segundos.")
                        exhaustion.set(cid, exhastor, time)
        elseif words == "/addresets" then
                local t = string.explode(param, ",")
                if getPlayerGroupId(cid) < group then return false
                elseif not t then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parâmetros incorretos. Especifique o nome do player e opcionalmente a quantidade de resets.") return true
                elseif not getPlayerByName(t[1]) then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Player "..t[1].." não encontrado.") return true
                elseif t[3] then
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parâmetros incorretos. Especifique apenas o nome do player e opcionalmente a quantidade de resets.") return true
                end
               
                        addEvent(doPlayerReset, time*1000, getPlayerByName(t[1]), t[2] == nil and "1" or t[2], getPlayerGUIDByName(t[1]))
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..(t[2] == nil and "1" or t[2]).." resets no player "..getCreatureName(getPlayerByName(t[1]))..". Agora el"..(getPlayerSex(getPlayerByName(t[1])) >= 1 and "e" or "a").." possui "..(getPlayerResets(getPlayerByName(t[1]))+(t[2] == nil and "1" or t[2])).." resets.")
                        doPlayerPopupFYI(getPlayerByName(t[1]), ""..getCreatureName(cid).." adicionou "..(t[2] == nil and "1" or t[2]).." resets em seu character. Você agora tem "..(getPlayerResets(getPlayerByName(t[1]))+(t[2] == nil and "1" or t[2])).." resets. Você será deslogad"..(getPlayerSex(getPlayerByName(t[1])) >= 1 and "o" or "a").." em "..time.." segundos.")
        end
return true
end

Vlw e até mais ! ( Qualquer duvida posta ai obg )


Ops deu double post ;x

 

se alguem puder apagar pra min ! vlw

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...