Ir para conteúdo
  • Cadastre-se

Normal (ADICIONAR) Adicionar função no reset system.


Posts Recomendados

Bom rapaziada, sempre sou breve com oque quero... segue só, nesse script de Reset System preciso adcionar a função por estage... aaaah Storms mas como assim ?

exemplo: 1 Reset a exp é normal, mas quando o player parte para o segundo reset, diminuir x % do exp dele, sacas ? por exemplo no primeiro reset tenho 100% de exp, no segundo diminui 20%, e assim sucessivamente, agradeço desde já quem puder me ajudar Beijos <3....

@Nazo

local cfg = {
    storage = 12129, -- Storage que salva reset
    kick_seconds = 3, -- Segundos antes de kickar o player
    reset_effect = CONST_ME_SOUND_GREEN, -- Efeito ao Resetar
    reset_multiply = 1000, -- Ex: Cada reset precisará de 1000 leveis a mais para o próximo
    level_multiply = 2254834200, -- Exp para o Level 8 (Consulte na Tabela a Quantidade para Level Desejado)
    }
 
function onSay(cid, words, param)
    if not hasCondition(cid, CONDITION_INFIGHT) then
        sto = getPlayerStorageValue(cid, cfg.storage)
        if sto < 1 then
            if getPlayerLevel(cid) >= cfg.reset_multiply then
                doPlayerResetBySwatt(cid)
                setPlayerStorageValue(cid, cfg.storage, 1)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have make your first reset succesfully, your character be kicked in "..cfg.kick_seconds.." seconds.")
            else
                doPlayerSendCancel(cid, "You need level "..cfg.reset_multiply.." to do your first reset.")

            end
        else
            if getPlayerLevel(cid) >= ((sto+1) * cfg.reset_multiply) then
                doPlayerResetBySwatt(cid)
                setPlayerStorageValue(cid, cfg.storage, sto+1)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have been reset for "..(sto+1).." succesfully, your character be kicked in "..cfg.kick_seconds.." seconds.")
            else
                doPlayerSendCancel(cid, "You need level "..((sto+1) * cfg.reset_multiply).." to do your first reset.")
            end
        end
    else
        doPlayerSendCancel(cid, "You can't stay infight to execute this command.")
    end
return true
end
 
function doPlayerResetBySwatt(cid)
    getHealth, getMana = getCreatureMaxHealth(cid), getCreatureMaxMana(cid)
    remove_exp = getPlayerExperience(cid)
    doPlayerAddExp(cid, -remove_exp)
    doPlayerAddExp(cid, cfg.level_multiply)
    setCreatureMaxHealth(cid, getHealth)
    setCreatureMaxMana(cid, getMana)
    doSendMagicEffect(getThingPos(cid), cfg.reset_effect)
    addEvent(doRemoveCreature, cfg.kick_seconds * 1000, cid)
return true
end

 

Editado por StormsHard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Perdão, mas não irei te ajudar considerando isso:

Citar

Lembrando não dou permissão a ninguém de divulgar meu script e nem usar agradeço.

 

 

Estamos em um fórum, uma comunidade, e tudo postado aqui deve ser aberto ao público, mesmo que você não queira que divulguem por aí até com seus créditos, não farei um script "privado" em algo público, sorry.

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

Link para o post
Compartilhar em outros sites
Agora, Nazo disse:

Perdão, mas não irei te ajudar considerando isso:

 

 

Estamos em um fórum, uma comunidade, e tudo postado aqui deve ser aberto ao público, mesmo que você não queira que divulguem por aí até com seus créditos, não farei um script "privado" em algo público, sorry.

O script, não foi eu que desenvolvi Foi criado pelo meu amigo Adriano Swatt, e não quero que ele veja seu script perambulando por aí, ok até entendo... mas se forem utilizar que coloquem os créditos dele.. apenas o dele

3 minutos atrás, Nazo disse:

Perdão, mas não irei te ajudar considerando isso:

 

 

Estamos em um fórum, uma comunidade, e tudo postado aqui deve ser aberto ao público, mesmo que você não queira que divulguem por aí até com seus créditos, não farei um script "privado" em algo público, sorry.

Topico editado já....

Link para o post
Compartilhar em outros sites

Me explique uma coisa, se o player tem 100 de xp e reseta, quer que ele perca de 20% em 20% a cada reset? Se sim, me explique uma coisa:

O player tem 100 de xp e reseta 3x (alcançando o tal level 3x), quanto de xp ele fica no primeiro reset, segundo e terceiro?

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

Link para o post
Compartilhar em outros sites
Agora, Nazo disse:

Me explique uma coisa, se o player tem 100 de xp e reseta, quer que ele perca de 20% em 20% a cada reset? Se sim, me explique uma coisa:

O player tem 100 de xp e reseta 3x (alcançando o tal level 3x), quanto de xp ele fica no primeiro reset, segundo e terceiro?

Não exatamente em todos os resets serão de 20% em 20% , mais todos os resets serão configurados por exemplo primeiro reset 100%, segundo 90% terceiro 80% quarto 70%, e assim em diante, não entendi muito bem a segunda pergunta, mas a cada level pra resetar você precisa de 1k a mais ou seja se eu pego level 1k, e taco reset a primeira vez ele vai resetar normal, mais quando vou tentar resetar a segunda vez, ele já acrescenta mais 1k ou seja, só vou poder resetar nivel 2k, e assim em diante... mas não entendi bem a pergunta :s

Vamos se dizer, que ficaria assim kk não sou script e nem nada do tipo apenas uma forma 

{Reset1= 100%}

{Reset2= 80%} 

e assim vai,mais tudo seria configuravel ao meu ver, você pode só criar o primeiro e me explicar como adicionar, que eu mesmo vou adicionando

Mas você também poderia adicionar, para a cada reset perder 20% de exp e assim ficaria mais dificil de upar, a cada reset OBS: exp editavel que cada player ficaria...

Link para o post
Compartilhar em outros sites

Me faça uma tabela exemplo, com 3 linhas, xp atual, numero do reset e level do player, entende? Para eu entender melhor como você quer o stage.

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

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

Me faça uma tabela exemplo, com 3 linhas, xp atual, numero do reset e level do player, entende? Para eu entender melhor como você quer o stage.

Não tem como eu te falar o EXP atual que o player vai resetar, pois ele pode querer resetar level 4k, 5k,6k e assim vai, porque quanto mais alto o level melhor... pois o script só reseta o level do player... Mas se tiver pra por só assim no script 1 reset , já diminuia 20% de exp do player NÃO IMPORTA O LEVEL QUE ELE está, ou sei lá uma forma de checar o level... 2 RESET, 20% DO primeiro RESET E MAIS 20% DO SEGUNDO, DANO O TOTAL DE 40% A MENOS DE EXP... mais tudo isso séria editado...Não sei como explicar bem vey :s, mas se você já tiver sacado mais ou menos pode fazer como você bem entender, que super vou apoiar... o importante é que diminua a EXP a cada reset.... para ir ficando mais dificil 

 

--[[( Marcryzius D'evil )]]--
function onSay(cid, words, param)
local C ={
    level = 8, -- LVL need to first reset.
    RemainingLvl = 8, --LVL that will remain after reset.
    pid = getPlayerGUID(cid), -- not fuse.
    stages = 3, -- resets needed to add more tier levels.
    nivel = 2, -- more to add per reset stage.
    skull = "yes", --players with white skull can reset? ("yes" or "no").
    redskull = "yes", -- players with red skull can reset? ("yes" or "no").
    prot = "no", --needs to be in a protected area? ("yes" or "no").
    bat = "no" --not battler to reset? ("yes" or "no").
}
function getResets(cid) return getPlayerStorageValue(cid,1020) < 0 and 0 or getPlayerStorageValue(cid,1020)end
 
    if(C.skull == "no") and (getCreatureSkullType(cid) == 3) then
        doPlayerSendTextMessage(cid,22,"Only players without white skull can reset.")
    elseif(C.redskull == "no") and (getCreatureSkullType(cid) == 4) then
        doPlayerSendTextMessage(cid,22,"Only players without red skull can reset.")
    elseif(C.prot == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
        doPlayerSendTextMessage(cid,22,"you need to be in a protected zone so I can reset.")
    elseif(C.bat == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
        doPlayerSendTextMessage(cid,22,"you must be without battler so I can reset.")
    else
    local get = math.floor(getResets(cid)/C.stages)
        if(getPlayerLevel(cid) >= (get*C.nivel)+C.level)then
            setPlayerStorageValue(cid,1020,getResets(cid)+1)
            doPlayerPopupFYI(cid,"you now was reset, you have "..getResets(cid).." reset\'s.")
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
            doRemoveCreature(cid)
            db.executeQuery("UPDATE `players` SET `level` = "..C.RemainingLvl..", `experience` = "..getExperienceForLevel(C.RemainingLvl).." WHERE `id` = "..C.pid)
        else
            doPlayerSendCancel(cid, "You need to have level "..(get*C.nivel)+C.level.." or more you may be reset.")
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        end
    end
    return TRUE
end

Encontrei esse script, que tem uma forma de checar a stage do player.... ou o nivel sei lá kkk ver se tu entende, não manjo nada de script :s

Link para o post
Compartilhar em outros sites

Eu não consegui entender o que você está pedindo, pq segundo o script que você mostrou, o player sempre fica com 2254834200 de xp (xp do level 8), como está na linha a seguir, então não faria sentido ele perder mais xp

	level_multiply = 2254834200, -- Exp para o Level 8 (Consulte na Tabela a Quantidade para Level Desejado)

 

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

Link para o post
Compartilhar em outros sites
2 minutos atrás, Nazo disse:

Eu não consegui entender o que você está pedindo, pq segundo o script que você mostrou, o player sempre fica com 2254834200 de xp (xp do level 8), como está na linha a seguir, então não faria sentido ele perder mais xp


	level_multiply = 2254834200, -- Exp para o Level 8 (Consulte na Tabela a Quantidade para Level Desejado)

 

Meu amigo, esse é o level que ele volta ao resetar, ele sempre vai voltar pra esse level... Mas estou querendo que a cada reset fique mais dificil de upar entendeu ?, oque eu quero é deixar mais dificil de upar a cada reset :s apenas isso

Editado por StormsHard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ahhh, agora ficou mais prático de entender xd

 

Vê se funciona, se seu tfs for 1.x é provável que sim.

 

TAG XML em creaturescripts:
 

<event type="kill" name="resetStages" event="script" value="resetstages.lua"/>

 

No creaturescripts/scripts/login.lua:

player:registerEvent("resetStages")

 

Em creaturescripts/scripts/ crie o resetstages.lua e coloque o seguinte conteúdo:

-- by Nazo (tibiaking.com)

config = {
	storage = 12129 -- storage dos resets
}

function onKill(cid, target, lastHit)
	
	if(getPlayerStorageValue(cid,config.storage) >= 1)then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if(player)then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience()
				local expFormula = -((experience * Game.getExperienceStage(player:getLevel())) / 100)
				if(getPlayerStorageValue(cid, config.storage) < 10) then
					expFormula = expFormula * getPlayerStorageValue(cid, config.storage)*10
				else
					expFormula = expFormula * 90
				end
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

 

 

O que acontece aqui, é que o script pega o número de resets do players, multiplica por 10 e tira de porcentagem no monstro morto, exemplo:

Tenho 5 resets, matei um monstro que dá 100 de xp, o script multiplica meus resets por 10 (que dá 50) e tira de porcentagem da xp, assim eu ganharia 50 de xp, invés de 100.

Caso eu tenha 10 ou mais resets, eu ganho 10% da xp real do monstro apenas.

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

Programador PHP, Lua, Java, database administrator.

 

"Nada é verdade, tudo é permitido."

Requiescat in pace.

Link para o post
Compartilhar em outros sites
17 horas atrás, Nazo disse:

Ahhh, agora ficou mais prático de entender xd

 

Vê se funciona, se seu tfs for 1.x é provável que sim.

 

TAG XML em creaturescripts:
 


<event type="kill" name="resetStages" event="script" value="resetstages.lua"/>

 

No creaturescripts/scripts/login.lua:


player:registerEvent("resetStages")

 

Em creaturescripts/scripts/ crie o resetstages.lua e coloque o seguinte conteúdo:


-- by Nazo (tibiaking.com)

config = {
	storage = 12129 -- storage dos resets
}

function onKill(cid, target, lastHit)
	
	if(getPlayerStorageValue(cid,config.storage) >= 1)then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if(player)then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience()
				local expFormula = -((experience * Game.getExperienceStage(player:getLevel())) / 100)
				if(getPlayerStorageValue(cid, config.storage) < 10) then
					expFormula = expFormula * getPlayerStorageValue(cid, config.storage)*10
				else
					expFormula = expFormula * 90
				end
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

 

 

O que acontece aqui, é que o script pega o número de resets do players, multiplica por 10 e tira de porcentagem no monstro morto, exemplo:

Tenho 5 resets, matei um monstro que dá 100 de xp, o script multiplica meus resets por 10 (que dá 50) e tira de porcentagem da xp, assim eu ganharia 50 de xp, invés de 100.

Caso eu tenha 10 ou mais resets, eu ganho 10% da xp real do monstro apenas.

 

TFS 0.4, não testei pois estou no trabalho , mas quando chegar em casa eu testo obrigado ❤

17 horas atrás, Nazo disse:

Ahhh, agora ficou mais prático de entender xd

 

Vê se funciona, se seu tfs for 1.x é provável que sim.

 

TAG XML em creaturescripts:
 


<event type="kill" name="resetStages" event="script" value="resetstages.lua"/>

 

No creaturescripts/scripts/login.lua:


player:registerEvent("resetStages")

 

Em creaturescripts/scripts/ crie o resetstages.lua e coloque o seguinte conteúdo:


-- by Nazo (tibiaking.com)

config = {
	storage = 12129 -- storage dos resets
}

function onKill(cid, target, lastHit)
	
	if(getPlayerStorageValue(cid,config.storage) >= 1)then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if(player)then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience()
				local expFormula = -((experience * Game.getExperienceStage(player:getLevel())) / 100)
				if(getPlayerStorageValue(cid, config.storage) < 10) then
					expFormula = expFormula * getPlayerStorageValue(cid, config.storage)*10
				else
					expFormula = expFormula * 90
				end
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

 

 

O que acontece aqui, é que o script pega o número de resets do players, multiplica por 10 e tira de porcentagem no monstro morto, exemplo:

Tenho 5 resets, matei um monstro que dá 100 de xp, o script multiplica meus resets por 10 (que dá 50) e tira de porcentagem da xp, assim eu ganharia 50 de xp, invés de 100.

Caso eu tenha 10 ou mais resets, eu ganho 10% da xp real do monstro apenas.

 

Meu amigo, deu erro no meu console na hora que mato o monstro , ele não morre a vida dele some tudo mas ainda continua vivo...

[19:4:25.754] [Error - CreatureScript Interface]
[19:4:25.754] data/creaturescripts/scripts/resetstages.lua:onKill
[19:4:25.754] Description:
[19:4:25.754] data/creaturescripts/scripts/resetstages.lua:10: attempt to call g
lobal 'Monster' (a nil value)
[19:4:25.754] stack traceback:
[19:4:25.754]   data/creaturescripts/scripts/resetstages.lua:10: in function <da
ta/creaturescripts/scripts/resetstages.lua:7>

@Nazossss.thumb.png.5b3503c9cb35b5dfb58d68e622cbb9d5.png

Editado por StormsHard (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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo