Ir para conteúdo
  • Cadastre-se

(Resolvido)Adicionar para ganhar damage_percent no script reset


Ir para solução Resolvido por Mateus Robeerto,

Posts Recomendados

Alguem pode ajudar adicionar o damage_percent nesse script de reset por favor !

TFS 0.4 - 8.60



 

Citar

local config = {
    minlevel = 950, --- level inical para resetar
    price = 100000, --- preço inicial para resetar
    newlevel = 25, --- level após reset
    priceByReset = 100000, --- preço acrescentado por reset
    percent = 2, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
    maxresets = 15,
    levelbyreset = 10 --- 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

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) 
                doPlayerAddPoints2(cid, 15)
        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.executeQuery("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('[RESET] --> Voce quer resetar seu personagem? custa '..newPrice..' gp\'s!', cid)
            talkState[talkUser] = 1
        else
            selfSay('[RESET] --> Voce ja atingiu o maximo de resetes', cid)
        end
        
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
        if getPlayerMoney(cid) < newPrice then
            selfSay('[RESET] --> E necessario ter '..newPrice..' gp\'s para resetar', cid)
        elseif getPlayerLevel(cid) < newminlevel then
            selfSay('[RESET] --> O minimo para resetar e level '..newminlevel..'!', cid)
        else
            doPlayerRemoveMoney(cid,newPrice)
            playerid = getPlayerGUID(cid)
            addEvent(function()
                if isPlayer(cid) then
                    addReset(cid)
                end
            end, 10000)
            local number = getResets(cid)+1
            local msg ="[RESET] --> Voce resetou! ---[Reset(s): "..number.."]--- \n\nVoce sera desconectado em 10 segundos para concluir o resete.\n\n[+] Bonificacao: 2% do Hp/Mp e [10] [Baiak Points]"
            doPlayerPopupFYI(cid, msg) 
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
                        doBroadcastMessage("[RESET] --> ["..getPlayerName(cid).."] Acabou de Resetar ["..number.." Reset(s)].", MESSAGE_STATUS_CONSOLE_ORANGE)
        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('[RESET] --> Voce tem no total de '..getResets(cid)..' reset(s).', cid)
        talkState[talkUser] = 0
    end
    return true
end

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

 

Link para o post
Compartilhar em outros sites
  • Solução
5 horas atrás, GM Vortex disse:

Funcionou man, muito obrigado !

So me tira uma duvida porfavor caso voce saiba, na questao do mage, como faço pra aumentar o damage da staff ?
teria q usar outro script de dano da staff para que possa aumentar ?

Link para o post
Compartilhar em outros sites
  • Moderador
Em 28/11/2023 em 13:16, Doidodepeda disse:

Funcionou man, muito obrigado !

So me tira uma duvida porfavor caso voce saiba, na questao do mage, como faço pra aumentar o damage da staff ?
teria q usar outro script de dano da staff para que possa aumentar ?

No arquivo Weapons.xml dentro da pasta XML do seu servidor você pode manipular o dano das wands/rods.

Participe da organização Open-Tibia.
Meus Perfils pessoais

Linkedin Rafhael Oliveira Tryber | XP Inc Github Rafhael Oliveira Tryber | XP Inc

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo