Ir para conteúdo
  • Cadastre-se

Posts Recomendados

@xWhiteWolf Poderia classificar o script de !rank;/rank por não somente rank e também level e magic level? 

 

local storage = 378378 -- storage que fica salvo os resets
local itens = {2182, 2190, 2456, 2395} -- itens cujas imagens aparecerao (se nao souber oque eh, nao mexa)

function onSay(cid, words, param, channel)
    local function getRankStorage(cid, value, max, RankName) -- by vodkart
    local str = ""
    str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n"
    local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY `value` DESC;")
        if (query:getID() ~= -1) then 
            k = 1 
            repeat
                if k > max then 
                    break
                end
            str = str .. "\n " .. k .. ". ["..getPlayerNameByGUID(query:getDataString("player_id")).."] - [Rest. " .. query:getDataInt("value") .. "]"
            k = k + 1        
            until not 
                query:next() 
            end 
    return doShowTextDialog(cid, itens[math.random(1, #itens)], str)
    end
    getRankStorage(cid, storage, 10, "Rank Resets")
return true
end

 

Link para o post
Compartilhar em outros sites
  • Respostas 187
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

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

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

talkactions/scripts/rankinreset local storage = 378378 -- storage que fica salvo os resets local itens = {2182, 2190, 2456, 2395} -- itens cujas imagens aparecerao (se nao souber oque eh, nao mexa)

Posted Images

8 hours ago, Roy said:

@xWhiteWolf Poderia classificar o script de !rank;/rank por não somente rank e também level e magic level? 

 


local storage = 378378 -- storage que fica salvo os resets
local itens = {2182, 2190, 2456, 2395} -- itens cujas imagens aparecerao (se nao souber oque eh, nao mexa)

function onSay(cid, words, param, channel)
    local function getRankStorage(cid, value, max, RankName) -- by vodkart
    local str = ""
    str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n"
    local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY `value` DESC;")
        if (query:getID() ~= -1) then 
            k = 1 
            repeat
                if k > max then 
                    break
                end
            str = str .. "\n " .. k .. ". ["..getPlayerNameByGUID(query:getDataString("player_id")).."] - [Rest. " .. query:getDataInt("value") .. "]"
            k = k + 1        
            until not 
                query:next() 
            end 
    return doShowTextDialog(cid, itens[math.random(1, #itens)], str)
    end
    getRankStorage(cid, storage, 10, "Rank Resets")
return true
end

 

Usa o script de rank q tem no meu perfil, com uma linha a mais tu deixa ele com storage tb

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)

Link para o post
Compartilhar em outros sites

Salve @xWhiteWolf, quanto tempo XD ! 

Esse script, tem como substituir o dinheiro por item?

Ele ira pedir 1 item a mais, a cada reset, ao invés de mais dinheiro.

Uma outra vez eu pedi isso a você, foi possível no entanto nao aumentava a quantidade de itens que ele pedia, era sempre a mesma quantidade em itens, to passando sufoco pra fazer essa nova idea :/

Link para o post
Compartilhar em outros sites

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

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)

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
Em 06/05/2014 em 14:46, xWhiteWolf disse:

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 umas coisas repetidas e adicionei novas funções; 
Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).

Testado em TFS 0.3.6, Versão 8.45

Sem mais delongas, vamos ao script.
Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:

Conteúdo Oculto



Você pode editar tudo mexendo aqui:
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)
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}

Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:

Conteúdo Oculto

Agora é só colocar o seu npc no mapa pelo mapa editor e curtir :grin:

OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.



--- EDIT: Coloquei algumas imagens pra vcs verem como fica no server

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto


 

Conteúdo Oculto




EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.

EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.

EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
O script também foi identado.

 

como eu coloco pra quando der look no player, aparecer quantos reset ele tem??

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • 1 month later...
Em 06/05/2014 em 14:46, xWhiteWolf disse:

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 umas coisas repetidas e adicionei novas funções; 
Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).

Testado em TFS 0.3.6, Versão 8.45

Sem mais delongas, vamos ao script.
Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:

Conteúdo Oculto



Você pode editar tudo mexendo aqui:
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)
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}

Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:

Conteúdo Oculto

Agora é só colocar o seu npc no mapa pelo mapa editor e curtir :grin:

OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.



--- EDIT: Coloquei algumas imagens pra vcs verem como fica no server

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto


 

Conteúdo Oculto




EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.

EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.

EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
O script também foi identado.

 

Teria como colocar pra ao inves de ganhar 100% da mana e vida que ja tinha, eu possa colocar pra resetar pra um valor exato e a cada reset aumentar 1000??

Exemplo:

 

Player ta level 500(sorcerer)  Tem 10k de mana e 5k de vida, assim que ele resetar pro 1 reset ele volta pro level 8 com 1k de mana e 1k de vida, foi la e upou ate o level 500k de novo, so que agora ele tem 11k de mana e 6k de vida. Foi la e resetou pro 2 reset, ele volta novamente pro level 8 com 2k de mana e 2k de vida.

 

@xWhiteWolf

 

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

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
Em 06/05/2014 em 14:46, xWhiteWolf disse:

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 umas coisas repetidas e adicionei novas funções; 
Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).

Testado em TFS 0.3.6, Versão 8.45

Sem mais delongas, vamos ao script.
Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:

Conteúdo Oculto



Você pode editar tudo mexendo aqui:
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)
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}

Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:

Conteúdo Oculto

Agora é só colocar o seu npc no mapa pelo mapa editor e curtir :grin:

OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.



--- EDIT: Coloquei algumas imagens pra vcs verem como fica no server

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto


 

Conteúdo Oculto




EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.

EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.

EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
O script também foi identado.

 

Alguém consegue coloca para ganhar  X item toda vez que for  reseta ? ♥

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
10 horas atrás, louco3626 disse:

Alguém consegue coloca para ganhar  X item toda vez que for  reseta ? ♥

 


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)
        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)
        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())

 

 

 

    item = 2160, --- ID do item que vai adicionar
    qnts = 1 --- Quantidade de item que vai adicionar

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

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
3 minutos atrás, tetheuscunha disse:

Que item tu quer que ganhe??

 

 

Item 21142

E a mana e vida tem que resetar também 

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
6 minutos atrás, louco3626 disse:

Item 21142

E a mana e vida tem que resetar também 

 

Tu quer que resete a mana e vida ao total? Voltar a ter mana e vida do lvl 8?? E so mudar de 100 para 0, olha o post anterior que la ja postei o que add o item, e só mudar la onde eu falei.

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

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
12 minutos atrás, tetheuscunha disse:

Tu quer que resete a mana e vida ao total? Voltar a ter mana e vida do lvl 8?? E so mudar de 100 para 0, olha o post anterior que la ja postei o que add o item, e só mudar la onde eu falei.


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

 

Muito obrigado meus Rep acabou  hj mais amanhã não esqueço de você ♥ assim que eu chegar em casa eu testo 

Editado por louco3626
Esqueci de uma coisa (veja o histórico de edições)

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
Em 16/04/2019 em 13:10, tetheuscunha disse:

Tu quer que resete a mana e vida ao total? Voltar a ter mana e vida do lvl 8?? E so mudar de 100 para 0, olha o post anterior que la ja postei o que add o item, e só mudar la onde eu falei.


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

 

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

Em 06/05/2014 em 14:46, xWhiteWolf disse:

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 umas coisas repetidas e adicionei novas funções; 
Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).

Testado em TFS 0.3.6, Versão 8.45

Sem mais delongas, vamos ao script.
Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:

Conteúdo Oculto



Você pode editar tudo mexendo aqui:
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)
levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}

Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:

Conteúdo Oculto

Agora é só colocar o seu npc no mapa pelo mapa editor e curtir :grin:

OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.



--- EDIT: Coloquei algumas imagens pra vcs verem como fica no server

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto

 

 

 

Conteúdo Oculto


 

Conteúdo Oculto




EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.

EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.

EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
O script também foi identado.

 

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?

Jamais se desespere em meio as sombrias afeiçoes da sua vida, pois das nuvens mais negras cai água límpida e fecunda

Link para o post
Compartilhar em outros sites
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())

Senhoras e senhores, se alguma resposta lhe ajudou, marque-a como a melhor resposta e de ponto positivo, assim você incentiva quem lhe ajudou a continuar ajudando!!.

Link para o post
Compartilhar em outros sites
  • 1 year later...
  • 7 months later...
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

  • Will :)
Link para o post
Compartilhar em outros sites

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)

Dark Souls Bonfire GIF - Dark Souls Bonfire Rest - Discover & Share GIFs

Link para o post
Compartilhar em outros sites
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.

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)

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.


  • Conteúdo Similar

    • Por Linus
      Você  pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
       
       
      Testado em tfs 1.1, Versão 10.77
       
       
       
       
      Vá em data/npc/lib/ crie npc_resets.lua :
       



       
      Você pode editar mexendo aqui. no script acima :
      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 = 30, ---- Porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) maxresets = 50, ---- Maximo de resets levelbyreset = 0 --- Quanto de level vai precisar a mais no próximo reset } agora em data/npc/ crie reseter.XML :
       



       
       
       
      Agora em data/npc/scripts crie reseter.lua :
       



       
       
       
      Img : 
       

    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por Marjer
      Ola! Eu tenho uma duvida!
      Eu tenho 1 mapa 9.60 e ficou 1 tempo online, e assim foi crecendo.. (accs, players, etc..)
      E eu consegui passar para 10.10
      E gostaria de saber se tem como passa a database do 9.60 pro 10.10 ?
      Tem algum jeito que eu possa fazer isso ?
      Eu fiz uns test..
      Quando eu coloquei a database do 9.60 na pasta do 10.10
      Eu abri o executer e aparece isso de primeiro :

      (Uso Distro : The Forgotten Server, version 0.3.7_7_SVN)

      Updating Database Manager
      Updating Database to version 37...
      Updating has been updated to version: 37.
      Updating Database to version 38...
      Updating has been updated to version: 38.
      Optimized database.

      E abriu normalmente...
      Nessa database tem as contas, e depois que abril certinho o mapa.
      Eu tento entra e fala que o password ou o login estao errados.
      E quando eu logo no account manager da esse erro :
      Error during getDataInt(offinetraining_time)
      Error during getDataInt(offinetraining_skill)
      sqlite3_prepare_v2(): SQILITE ERRO: no such table? player_inboxitems (SELECT "pid, "sid", "itemtype", "count", "attributes" FROM "player_inboxitems" WHERE "player_id" = 1 ORDEN BY "Sid Desc;)

      Toda vez que entro no jogo, com personagem, ou account manager, no Server Log aparece isso :
       00:32 You must be logged out for more than 10 minutes to start offline training.
      E quando entro eu ando um pouco, depois eu relogo, vai para o templo, e com a mesma mensagem acima!
      E quando logo, no executer, da 1 erro muitoo grande!
      Irei postar uma foto!
      Foto :



      Entao.. Tem como ?

      ---------------------------
      (Uso Distro : The Forgotten Server, version 0.3.7_7_SVN)
      Entao...
      Eu peguei outra database, porque a da versão 9.60 dava erro!
      Eu fiz varios tests com a database.
      Pelo o que eu procurei e testei, essa database funcionou 100%
      Massss.....
      Meu mapa é Radbr, então tem o sistema de resets.
      Já tentei falar, /installreset, é mesma coisa que nada!
      E quando o player reseta nessa database, da 1 erro!
      Mas sera que é erro no Script ? ( Mas na outra versão 8.60 ea 9.60 funcionava!.... )

      E o player volta pro level 20, e com vida e mana de antes.
      Mas não aparece no look, e da erro no executer :
      Error during get DataInt (reset)  "4 vezes aparece esse erro" e depois...
      Tabela de Resets: Intalada ... [success]
      Error during get DataInt (reset)
      Ai desloga o char.. E quando desloga da esse erro :

      sqlite3_prepare_v2(): SQLITE ERROR: no such column: reset (UPDATE "players" SET "reset" = 1 WHERE "id"=3;)
      Ai loga o char... E da esse erro :
      sqlite3_prepare_v2(): SQLITE ERROR: no such column: reset (SELECT "ID", "reset" FROM "players" ORDEN BY DESC;)

      Tem algum jeito de arruma isso ?
      Eu procurei algumas coisas mas não achei! Talvez alguma SQL query possa ajuda nisso! Talvez..
      Se alguém souber... Por favor me ajuda.
      Irei colocar meu servidor online, e preciso de uma database boa! Nem que não de a do 9.60
      Mas uma que funcione...! E não de erro do sistema de reset!
      Por favor se alguém puder me ajuda, eu agradeço!

      Atenciosamente, Marjer!
       
      EDIT : Foto postada
    • Por Cleiton Felipi
      Bom dia galera!
      Bom eu gostaria de saber se existe algum comando para mysql que reseta o level e mana o life e os skill dos players, sem deletar os char, e o comando que manda todos para o templo.
      Não sei se estou na area correta, se não tiver desculpa.
      Desde já obrigado.
    • Por RenanPhellip
      Eai galera!   
       
       
      Estou precisando de um npc que resete o player. Sendo mais específico preciso que tenha as seguintes funções se possível:
       
      Level minimo para resetar: 250.
      Level máximo: 600.
      Preço: 7 esferas do dragão.
      Manter skills, ml, life/mana e adicionar +25k de life/mana.
      Resete para o level 1.
      E por fim, troque a vocação do player (exemplo: se ele esta na vocação 2 , que vá para a 3).
      Aah, vale lembrar, que irei configurar várias vocações e não somente uma.
       
      Distro Utilizada: tfs 0.4 rev.3884
      Versão Do Servidor: 8.60
       
      Antes de mais nada vale lembrar que procurei em vários tópicos aqui no forum e os que encontrei não consegui modificá-los ao ponto que eu quero.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo