Ir para conteúdo

Featured Replies

Postado

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 ?

Resolvido por mullino

Ir para solução
  • Respostas 6
  • Visualizações 492
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 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 `re

Posted Images

Postado
  • 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 .

Postado
  • Autor

@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 ?

Postado
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

 

Postado
  • Autor

@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 ?

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