Ir para conteúdo

Featured Replies

Postado
11 horas atrás, louco3626 disse:

não funciono continua vindo com o tanto de vida do lv 1000

e outra sempre que eu logo o char morre...  deu algum bug

Olha nao deu erro em nada mais só que quando eu to no lv 1000 tenho 15000 de vida e quando eu reseto minha vida continua 15000/15000 e se eu colocar a "percent" em 0 o personagem fica morrendo infinitamente e tenho que deletalo porque buga, teria alguma forma de minha vida volta para 435/435 como ela realmente é no lv 20?

 

Tenta esse 



local config = {
    minlevel = 150, --- level inical para resetar
    price = 10000, --- preço inicial para resetar
    newlevel = 20, --- level após reset
    priceByReset = 0, --- preço acrescentado por reset
    percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à  sua antiga vida total)
    maxresets = 50, --- quantidade maxima de resets
    levelbyreset = 0, --- quanto de level vai precisar a mais no próximo reset
    item = 2160, --- ID do item que vai adicionar
    qnts = 1 --- Quantidade de item que vai adicionar
}
--- 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) 
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        local hp = getCreatureMaxHealth(cid)
        doCreatureAddHealth(cid, hp)
        local mana = getCreatureMaxMana(cid)
        doCreatureAddMana(cid, mana)
        doPlayerAddItem(cid,config.item,config.qnts)
        doRemoveCreature(cid)        
        local description = resets+1
        db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
        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('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())

  • 1 year later...
  • Respostas 187
  • Visualizações 33.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Fala galera do TK, hoje vim pra trazer pra vocês um npc criado por mim e pelo Nogard numa madrugada aí para solucionar a dúvida de um cara no suporte. Eu dei uma melhorada no script original, tirei um

  • Ulatson, eu ando meio ocupado pra ficar scriptando então só vou dar dicas de como fazer ou onde conseguir: tem como colocar no script por exemplo para o Player falar só !resetar? Esse script foi fei

  • cara, aquilo que eu te passei era pra vc substituir no seu script;;; ficando assim:   local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatPa

Posted Images

  • 7 months later...
Postado
Em 16/01/2018 em 16:38, xWhiteWolf disse:

a resposta é bem simples:

vc vai precisar de uma tabela estilo essa aqui:

local itemsneeded = {
[reset] = {item, quantidade},
}

pra cada valor q reset pode assumir.

Você também pode fazer ranges de reset, se for maior que X e menor que Y então é tal item.

Por fim você pode fazer mais de um item, por ex, 3 minotaur leather e 50 gold coins. Dependendo da forma q vc escolher o resto do código fica diferente

Sera que pode montar um exemplo? nao entendi direito como faz, queria saber tambem pra cada reset ele pedir 1 item a mais

Postado

Desculpem reviver o tópico.

 

@xWhiteWolf, tem como disponibilizar nesse mesmo tópico, uma versão onde em vez do reset custar dinheiro, precisar entregar um item super raríssimo onde só dropa dos Boss fodão, no qual precisa de 3 EK pra solar, mais 8 ED dando exura sio?

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

Postado
  • Autor
On 1/30/2021 at 10:08 PM, Heyron said:

Desculpem reviver o tópico.

 

@xWhiteWolf, tem como disponibilizar nesse mesmo tópico, uma versão onde em vez do reset custar dinheiro, precisar entregar um item super raríssimo onde só dropa dos Boss fodão, no qual precisa de 3 EK pra solar, mais 8 ED dando exura sio?

é só vc olhar no código onde tem essas linhas aqui:

if getPlayerMoney(cid) < newPrice then
			selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)

 

doPlayerRemoveMoney(cid,newPrice)

e trocar por funções que sejam de checar itens.

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo