Ir para conteúdo

Featured Replies

Postado

Fala, pessoal!

Então, eu estou usando o Sistema de Reset do @xWhiteWolf e o primeiro reset ocorre numa boa... porém, no segundo adiante, ele não adiciona a porcentagem da vida amais ao resetar... 

EX: Do Reset 3, eu voltei com 4415 de vida, já no Reset 4, voltei com 4430 de vida!, não faz sentido!

 

Gostaria que o script calculasse 15% da vida do player e resetasse ele!

EX: O player tem 6500 de vida, gostaria que pegasse 15% dos 6500 de vida e adicionasse no reset... isso igual a cada reset!

 

aqui está o script:

Spoiler

local config = {
    minlevel = 510, --- level inical para resetar
    price = 0, --- preço inicial para resetar
    newlevel = 8, --- level após reset
    priceByReset = 100000000, --- preço acrescentado por reset
    percent = 15, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
    maxresets = 100,
    levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config

function getResets(uid)
    resets = getPlayerStorageValue(uid, 378378)
    if resets < 0 then
        resets = 0
    end
    return resets
end

function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) then
        resets = getPlayerStorageValue(thing.uid, 378378)+1
        doPlayerSetSpecialDescription(thing.uid, "\nResets: [" .. resets .."]")
    end
    return true
end

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end
 
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    function addReset(cid)
        if(npcHandler:isFocused(cid)) then
            npcHandler:releaseFocus(cid)
        end
        
        talkState[talkUser] = 0
        resets = getResets(cid)
        setPlayerStorageValue(cid, 378378, resets+1) 
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        local hp = getCreatureMaxHealth(cid)
        local resethp = hp*(config.percent/100)
        setCreatureMaxHealth(cid, resethp)
        local differencehp = (hp - resethp)
        doCreatureAddHealth(cid, -differencehp)
        local mana = getCreatureMaxMana(cid)
        local resetmana = mana*(config.percent/100)
        setCreatureMaxMana(cid, resetmana)
        local differencemana = (mana - resetmana)
        doCreatureAddMana(cid, -differencemana)
        doRemoveCreature(cid)        
        local description = resets+1
        db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
        db.query("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
        return true
    end
    
    local newPrice = config.price + (getResets(cid) * config.priceByReset)
    local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)

    if msgcontains(msg, 'reset') then
        if getResets(cid) < config.maxresets then
            selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
            talkState[talkUser] = 1
        else
            selfSay('You already reached the maximum reset level!', cid)
        end
        
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
        if getPlayerMoney(cid) < newPrice then
            selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
        elseif getPlayerLevel(cid) < newminlevel then
            selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
        else
            doPlayerRemoveMoney(cid,newPrice)
            playerid = getPlayerGUID(cid)
            addEvent(function()
                if isPlayer(cid) then
                    addReset(cid)
                end
            end, 3000)
            local number = getResets(cid)+1
            local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
            doPlayerPopupFYI(cid, msg) 
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
        end
        talkState[talkUser] = 0
    elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
        talkState[talkUser] = 0
        npcHandler:releaseFocus(cid)
        selfSay('Ok.', cid)
    elseif msgcontains(msg, 'quantity') then
        selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
        talkState[talkUser] = 0
    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

@Sttorm

Editado por Yamborghini (veja o histórico de edições)

tumblr_o70wteR8521r9n6kzo1_400.gif

  • Respostas 5
  • Visualizações 748
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • faltou uma aulinha de % aí hahaha percent = 15, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)   se você quer começar um novo reset com a vida q

Postado

faltou uma aulinha de % aí hahaha

percent = 15, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)

 

se você quer começar um novo reset com a vida que você tinha antes + 15% a porcentagem ali na configuração tem que ser 115. Dessa forma vc mantém os 100% que você tinha antes e de quebra ganha os 15% a mais que você quer

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Autor
5 minutos atrás, xWhiteWolf disse:

faltou uma aulinha de % aí hahaha

percent = 15, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)

 

se você quer começar um novo reset com a vida que você tinha antes + 15% a porcentagem ali na configuração tem que ser 115. Dessa forma vc mantém os 100% que você tinha antes e de quebra ganha os 15% a mais que você quer

nao, amigo...

eu gostaria de começar exemplo 10k de vida:

1 reset: 1500 de vida

ai uparia de novo e ficaria com 11.5k de vida

2 reset: 1750 de vida

ai uparia de novo e ficaria com 12k de vida

3 reset: 1800 de vida, sabe?

 quando cheguei ao 3 reset usando esse script ai, minha vida só mudou +30hp em relação ao outro reset...

 

 

 

tumblr_o70wteR8521r9n6kzo1_400.gif

Postado
  • Autor

li no seu tópico que ele só faz isso na primeira vez e apartir do 2 reset ele usa um cálculo lá... gostaria que fosse todas as vezes

tumblr_o70wteR8521r9n6kzo1_400.gif

Postado
5 hours ago, Yamborghini said:

li no seu tópico que ele só faz isso na primeira vez e apartir do 2 reset ele usa um cálculo lá... gostaria que fosse todas as vezes

????

nao tem calculo, olha como funciona:
       local hp = getCreatureMaxHealth(cid) -- pego a vida máxima
        local resethp = hp*(config.percent/100) -- multiplico ela por 15 e divido por 100 (extraio 15%)
        setCreatureMaxHealth(cid, resethp) -- seto a vida máxima como sendo 15% da vida anterior
        local differencehp = (hp - resethp) -- pego a diferença de hp entre oque vc tinha e oque vc passou a ter
        doCreatureAddHealth(cid, -differencehp) -- removo essa diferença

o que vc quer não tem nada a ver com o sistema, vc tem que colocar pra ganhar + hp ao upar ou deixar um level minimo maior pra resetar. Ou isso ou vc aumenta o 15 pra 20%

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.9k

Informação Importante

Confirmação de Termo