Ir para conteúdo
  • Cadastre-se

resets [Pedido] Sistema de Resets com Stages


Posts Recomendados

Boa Tarde Galera venho aqui de novo para tentar achar uma solução com vocês.

Como diz o Nome do post [sistema de Resets com Stages], vamos lá!

 

Eu tenho em meu servidor um sistema de reset pela sources

 

link do sistema utilizado http://www.tibiaking.com/forum/topic/9256-reset-system-with-sources/

 

e uso o sistema de reset que tem no mesmo topico acima e irei postar o meu.

config = {
	RemainingLvl = 8,
	exp = 4200,
	redskull = false,
	battle = true,
	pz = false
}

stages = {

	{resets = 1, level = 300},
	{resets = 10, level = 350},
	{resets = 20, level = 350},
	{resets = 30, level = 400},
	{resets = 40, level = 450},
	{resets = 50, level = 500},
	{resets = 60, level = 550},
	{resets = 70, level = 600},
	{resets = 80, level = 800}
}
function onSay(cid, words, param)
	local pid = getPlayerGUID(cid)
	if(config.redskull) and (getCreatureSkullType(cid) == 4) then
		return doPlayerSendTextMessage(cid, 22, "Apenas player sem red skull podem resetar.")
	end
	
	if(config.pz) and (not getTilePzInfo(getCreaturePosition(cid))) then
		return doPlayerSendTextMessage(cid, 22, "Você precisa estar em protection zone pra poder resetar.")
	end
	
	if(config.battle) and (getCreatureCondition(cid, CONDITION_INFIGHT)) then
		return doPlayerSendTextMessage(cid, 22, "Você precisa estar sem battle pra poder resetar.")
	end
	
	for _, stage in ipairs(stages) do
		if getResets(cid) <= stage.resets then
			if getPlayerLevel(cid) >= stage.level then
				setResets(cid, 1)
				doRemoveCreature(cid, true)
				db.executeQuery("UPDATE `players` SET `level` = "..config.RemainingLvl..", `experience` = "..config.exp.." WHERE `id` = "..pid)
				else
				doPlayerSendCancel(cid, "Você precisa do level "..stage.level.." ou mais para resetar.")
				doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
			end
		end
	end
	return true
end

Como podem ver as STAGES estão la

stages = {

	{resets = 1, level = 300},
	{resets = 10, level = 350},
	{resets = 20, level = 350},
	{resets = 30, level = 400},
	{resets = 40, level = 450},
	{resets = 50, level = 500},
	{resets = 60, level = 550},
	{resets = 70, level = 600},
	{resets = 80, level = 800}
}

Mas quando um Player exemplo com a imagem a baixo

 

 

da a seguinte mensagem 

 

Você precisa do level 800 ou mais para resetar.

 

http://prntscr.com/6rqc8p

 

ai quando o player entra no level exato ele resetar normalmente, mas no console da isso

 

http://prntscr.com/6rqgir

 

se alguem ai poder ajudar,

 

o #fireelement ja tentou me ajudar, mas nunca conseguimos fazer o stages funcionar rs

 

desde ja obrigado! E Rep+

Link para o post
Compartilhar em outros sites

Experimente trocar a linha - if getResets(cid) <= stage.resets then

 

Por if getResets(cid, 1) <= stage.resets then

Te ajudei?? REP + e ficamos quites...  ;D

Atenciosamente,

 

Junior.
 

 

 

gifs-tumblr-01.gif      1542383_2.png

Link para o post
Compartilhar em outros sites

Se possível, pegue um personagem com o level onde o bug ocorre, execute a talkaction com as seguintes modificações e informe o que for imprimido no console.

Acima de:

for _, stage in ipairs(stages) do

adicione:

print(getResets(cid))

Depois, abaixo de:

for _, stage in ipairs(stages) do

adicione:

print(stage.resets)
print(type(stage.resets))
print(getResets(cid))
print(type(getResets(cid)))

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

@juniorpavani

 

fiz a modificação mas deu erro, nem deu o poff e a msg que precisa do level

 

@zipter98

 

mano alterei aqui ficando da seguinte forma

print(getResets(cid))	
	for _, stage in ipairs(stages) do	
			print(stage.resets)
			print(type(stage.resets))
			print(getResets(cid))
			print(type(getResets(cid)))		
		if getResets(cid) <= stage.resets then
			if getPlayerLevel(cid) >= stage.level then

e deu a msg de que nao esta no level e um erro no console veja na imagem a baixo

 

http://prntscr.com/6rru7y

Link para o post
Compartilhar em outros sites

Qual o erro no console? O mesmo mostrado anteriormente? E tem mais alguma informação imprimida no console que você esqueceu de mostrar? E quantos resets este personagem tem?

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Somente esse erro que mostrei

3

1

number

3

number

10

number

3

number

20

assim até chegar no 80 serias os stages né

e o jogador tem 18:40 You see yourself (Level 8) [Reset 3]

=======================================================================

ae mano alterei o tipo de mensagem que aparece quando nao tem o level

de:

doPlayerSendCancel(cid, "Você precisa do level " .. level .. " ou mais para resetar.")
para :
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa do level "..stage.level.." ou mais para resetar.")
e agora ele me deu isso mas o erro no console continua o mesmo
18:51 Voce precisa do level 350 ou mais para resetar.18:51 Voce precisa do level 350 ou mais para resetar.18:51 Voce precisa do level 400 ou mais para resetar.18:51 Voce precisa do level 450 ou mais para resetar.18:51 Voce precisa do level 500 ou mais para resetar.18:51 Voce precisa do level 550 ou mais para resetar.18:51 Voce precisa do level 600 ou mais para resetar.18:51 Voce precisa do level 800 ou mais para resetar.
Editado por markmv (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Fiz de acordo com a tabela do RadBR, testei e ta funcionado :pirate:

local config = {
    backToLevel = 8,
    redskull = false,
    battle = true,
    pz = false,
    stages = {
        {resets = 4, level = 350},
        {resets = 9, level = 355},
        {resets = 14, level = 360},
        {resets = 19, level = 365},
        {resets = 24, level = 380},
        {resets = 29, level = 390},
        {resets = 34, level = 410},
        {resets = 39, level = 430},
        {resets = 44, level = 450}
    }
}

function onSay(cid, words, param)
    if config.redskull and getCreatureSkullType(cid) == 4 then
        return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.")
    elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.")
    elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
        return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.")
    end

    local resetLevel = 0
    for x, y in ipairs(config.stages) do
        if getResets(cid) <= y.resets then
            resetLevel = y.level
            break
        end
    end

    if getPlayerLevel(cid) < resetLevel then
        return doPlayerSendCancel(cid, "Voce precisa do level " .. resetLevel .. " ou mais para resetar.")
    end

    setResets(cid, 1)
    local guid = getPlayerGUID(cid)
    doRemoveCreature(cid, true)
    db.executeQuery("UPDATE `players` SET `level` = " .. config.backToLevel .. ", `experience` = " .. getExperienceForLevel(config.backToLevel) .. " WHERE `id` = " .. guid)
    return true
end
Editado por fireelement (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

local config = {
    backToLevel = 8,
    redskull = false,
    battle = true,
    pz = false,
    stages = {
        {resets = 4, level = 350, vip = 330},
        {resets = 9, level = 355, vip = 335},
        {resets = 14, level = 360, vip = 340},
        {resets = 19, level = 365, vip = 345},
        {resets = 24, level = 380, vip = 350},
        {resets = 29, level = 390, vip = 355},
        {resets = 34, level = 410, vip = 360},
        {resets = 39, level = 430, vip = 365},
        {resets = 44, level = 450, vip = 370}
    }
}

function onSay(cid, words, param)
    if config.redskull and getCreatureSkullType(cid) == 4 then
        return doPlayerSendCancel(cid, "Voce precisa estar sem red skull para resetar.")
    elseif config.pz and not getTilePzInfo(getCreaturePosition(cid)) then
        return doPlayerSendCancel(cid, "Voce precisa estar em protection zone para resetar.")
    elseif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then
        return doPlayerSendCancel(cid, "Voce precisa estar sem battle para resetar.")
    end

    local resetLevel = 0
    for x, y in ipairs(config.stages) do
        if getResets(cid) <= y.resets then
            resetLevel = isPremium(cid) and y.vip or y.level
            break
        end
    end

    if getPlayerLevel(cid) < resetLevel then
        return doPlayerSendCancel(cid, "Voce precisa do level " .. resetLevel .. " ou mais para resetar.")
    end

    setResets(cid, 1)
    local guid = getPlayerGUID(cid)
    doRemoveCreature(cid, true)
    db.executeQuery("UPDATE `players` SET `level` = " .. config.backToLevel .. ", `experience` = " .. getExperienceForLevel(config.backToLevel) .. " WHERE `id` = " .. guid)
    return true
end
Editado por fireelement (veja o histórico de edições)
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 samukajoga
      olá, eu gostaria de saber se alguém pode me ajudar com um npc pra resetar a storege dos players pra q eles possam fazer as quests dnv, em troca de um certo item,  ou até msm um item q reset a storage q dai faço o npc q troca ele pelo outro item, tentei algumas formas, mas n consigo resetar tds asstoreges ;-; ,
      bem axo q é isso desde já obgd
    • Por Estronda
      Ot : Subwat
      Versão : 8.6
      Distro : Tfs
       
       
      Eae Galera do TibiaKing !
           
                               Gostaria que vocês me ajudassem, eu queria que minha sd só poderia ser usada a parti de  250 resets. Já tem umas tags ae de resets, mas essa não funciona, se puder editar para mim eu agradeço.
       
      Runa2.lua
      local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 26) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 3) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6500, 0, -7300, 0) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) function onCastSpell(cid, var) local resets = 100 if getPlayerReset(cid) < resets then doPlayerSendCancel(cid, "Você precisa ter "..resets.." resets para usar essa runa.") return false end return doCombat(cid, combat, var) end                              Eu não tenho o script de tp, mas gostaria de 1, se puderem fação para min..
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo