Ir para conteúdo
  • Cadastre-se

(Resolvido)Problemas com o sistema de reset


Ir para solução Resolvido por mullino,

Posts Recomendados

Galera do TK, estou com um problema no sistema de resets...

Atualmente, tenho um script, mas não estou conseguindo dar o comando de !reset...

Ele me retorna o seguinte:

image.png

Estou tentando achar uma forma de consertar, mas não consigo...

O código que estou utilizando, o @Vodkart quem ajudou e modificou algumas coisas, mas não funcionou :/

O código atual é este:

Citar

local config = {
	level_remain= 130,
	exp_remain= 34963300,
	levels_reset= {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000}
}


function getPlayerResets(cid)
	local consulta = db.getResult("SELECT `reset` FROM `players` WHERE `id` = "..getPlayerGUID(cid))
	return consulta:getDataInt('reset') <= 0 and 0 or consulta:getDataInt('reset')
end
function setPlayerReset(cid)
	doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	doRemoveCreature(cid)	
	db.query("UPDATE `players` SET `level` = "..config.level_remain..", `experience` = "..config.exp_remain..", `reset` = `reset`+1 WHERE `id` = "..getPlayerGUID(cid))	
	return true
end
function onSay(cid, words, param, channel)
	if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
		doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.")
		return TRUE
	end
	local resets = getPlayerResets(cid)
	if (getPlayerLevel(cid) >= config.levels_reset[resets+1]) then
		setPlayerReset(cid)
	else
		doPlayerSendTextMessage(cid,22,"Voce nao tem level minimo para o reset.")
	end
	return true
end

Se alguém conseguir me ajudar, serei muito grato, pois faz mais de uma semana e ainda não consegui nada haha

Ajudei? REP+ ?

Servidor 8.6, Mapa Global Editado JKADS ?

Link para o post
Compartilhar em outros sites
  • Solução

@jakons 

local config = {
    minlevel = 30000, --- level inical para resetar
    price = 100000, --- preço inicial para resetar
    newlevel = 20, --- level apos reset
    priceByReset = 90000, --- preço acrescentado por reset
    percent = 80, ---- porcentagem da vida/mana que você terå ao resetar (em relação à sua antiga vida total)
    maxresets = 25,
        look = true,
    levelbyreset = 10000 --- quanto de level vai precisar a mais no prĂłximo reset
}

local function getResets(cid)
    local query = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
    return query:getDataInt("reset") <= 0 and 0 or query:getDataInt("reset")
end
local function addReset(cid)
    local resets = getResets(cid)
    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)
    local guid = getPlayerGUID(cid)
    doRemoveCreature(cid) 
    local description = resets+1
    db.query("UPDATE `players` SET `level` = "..config.newlevel..", `experience`= 0, `reset`= "..description.." WHERE `players`.`id`= ".. guid)
    return true
end

function onSay(cid, words, param, channel)
             
    local var = getResets(cid)
    local newPrice = config.price + (var * config.priceByReset)
    local newminlevel = config.minlevel + (var * config.levelbyreset)
    if param == "quantity" then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You have a total of '..var..' reset(s).')
    end
    if var >= config.maxresets then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'You already have reached the maximum of '.. config.maxresets.. ' resets!')
    elseif getPlayerMoney(cid) < newPrice then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'Its necessary to have at least '..newPrice..' gp\'s for reseting!')
    elseif getPlayerLevel(cid) < newminlevel then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'The minimum level for reseting is '..newminlevel..'!')

    end
    doPlayerRemoveMoney(cid,newPrice)
    addEvent(function()
        if isPlayer(cid) then
            addReset(cid)
        end
    end, 3000)
    local number = var+1
    local msg ="---[Reset: "..number.."]-- You have reseted! You'll be disconnected in 3 seconds."
    doPlayerPopupFYI(cid, msg)
    return true
end

Testa esse 

so configura do Jeito que vc Quer .

Link para o post
Compartilhar em outros sites

@mullino Então... Testei, ele voltou ao nível 130 como eu configurei, mas ele ele não atualizou a tabela de resets... O campo continuou em 0 :/

Eu preciso que ele atualize tudo na tabela para poder colocar o rank no site também e ter um controle do número de resets do personagem haha

O teu está atualizando a tabela? Se estiver, consegue me passar o script da table que tu tens?

Ajudei? REP+ ?

Servidor 8.6, Mapa Global Editado JKADS ?

Link para o post
Compartilhar em outros sites
local config = {
	level_remain= 130,
	exp_remain= 34963300,
	levels_reset= {1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000}
}


function getPlayerResets(cid)
	local consulta = db.getResult("SELECT `reset` FROM `players` WHERE `id` = "..getPlayerGUID(cid))
	return consulta:getDataInt('reset') <= 0 and 0 or consulta:getDataInt('reset')
end
function setPlayerReset(cid)
	local ret = (getPlayerResets(cid) + 1)	
	doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	doRemoveCreature(cid)
	db.query("UPDATE `players` SET `level` = "..config.level_remain..", `experience` = "..config.exp_remain..", `reset` = "..ret.." WHERE `id` = "..getPlayerGUID(cid))	
	return true
end
function onSay(cid, words, param, channel)
	if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
		doPlayerSendTextMessage(cid,22,"Voce Precisa estar sem Battle para Resetar.")
		return TRUE
	end
	local resets = getPlayerResets(cid)
	if (getPlayerLevel(cid) >= config.levels_reset[resets+1]) then
		setPlayerReset(cid)
	else
		doPlayerSendTextMessage(cid,22,"Voce nao tem level minimo para o reset.")
	end
	return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart Infelizmente não funcionou, ele continua não inserindo na tabela :/

 

O campo reset continua em 0 depois de usar o comando e a vida e life voltam para o valor do inicial, no caso do lvl 130 :(

 

Eu estou utilizando MySQL, sabe me dizer se tem algo a ver com o padrão do script enviado?

Ajudei? REP+ ?

Servidor 8.6, Mapa Global Editado JKADS ?

Link para o post
Compartilhar em outros sites
2 horas atrás, jakons disse:

@mullino Então... Testei, ele voltou ao nível 130 como eu configurei, mas ele ele não atualizou a tabela de resets... O campo continuou em 0 :/

Eu preciso que ele atualize tudo na tabela para poder colocar o rank no site também e ter um controle do número de resets do personagem haha

O teu está atualizando a tabela? Se estiver, consegue me passar o script da table que tu tens?

 

como ta o nome da tua tabala ...    "reset"  ou "resets "  ?

eu tive esse problema ai  eu add outra tabela com o nome reset pq a minha estava resets

image.png.6c45263d1332753a05cac5ad47a62be5.png

 

 

Link para o post
Compartilhar em outros sites

@mullino Tentei fazer das duas formas, tanto com o "resets" quanto "reset", mas nenhuma delas dá certo :(

@mullino Deu certo ?
Eu coloquei o script novamente e consegui fazer ele interagir com o banco, MUITO obrigado ?

Ajudei? REP+ ?

Servidor 8.6, Mapa Global Editado JKADS ?

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