Jump to content

Scripting Spell que bloqueia o target do player


Recommended Posts

  • Moderator

@Lurk como ficaria uma spell em área que tira o target de todos menos de quem esta em party ou da mesma guilda ficaria legal também usar magia em área não permitir atacar quem tomar essa spell tanto durante 5 segundos quanto remover apenas 1 vez

🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Link to post
Share on other sites

@LeoTK eu sei como não afetar quem é da guild e quem esta em party mas não sei como aplicar o efeito com magia em área

teria que criar uma condition customizada, talvez um membro mais experiente do fórum possa ajudar...

Link to post
Share on other sites

4 horas atrás, LeoTK disse:

@Lurk como ficaria uma spell em área que tira o target de todos menos de quem esta em party ou da mesma guilda ficaria legal também usar magia em área não permitir atacar quem tomar essa spell tanto durante 5 segundos quanto remover apenas 1 vez

Dessa forma que eu queria. a spell é um genjutsu de itachi

Link to post
Share on other sites

  • 3 weeks later...
Em 13/08/2020 em 14:03, Lurk disse:

eu sei como não afetar quem é da guild e quem esta em party mas não sei como aplicar o efeito com magia em área

teria que criar uma condition customizada, talvez um membro mais experiente do fórum possa ajudar...

Não é necessário, da pra fazer utilizando o callback onTargetCreature.

 

Em 13/08/2020 em 14:01, LeoTK disse:

como ficaria uma spell em área que tira o target de todos menos de quem esta em party ou da mesma guilda ficaria legal também usar magia em área não permitir atacar quem tomar essa spell tanto durante 5 segundos quanto remover apenas 1 vez

Em 13/08/2020 em 18:30, BangxD disse:

Dessa forma que eu queria. a spell é um genjutsu de itachi

 

Fiz com base na spell "exevo gran mas vis" do Tibia, os parâmetros da spell podem ser alterados.

--[[
	<instant name="Remove Target" words="gtfo" lvl="55" mana="650" selftarget="1" prem="0" exhaustion="1800" needlearn="0" event="script" value="support/remove_target.lua">
		<vocation id="1"/>
		<vocation id="5"/>
	</instant>
]]

local config = {
	blockTarget = true,
	blockTime = 5, -- Segundos
	affectAllies = false,
	affectTargetCasterOnly = false -- Se marcado como true ira remover o target somente de quem estiver atacando o usuario da spell
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 5, 7, 11)

function onTargetCreature(cid, target)
	if config.affectTargetCasterOnly and getCreatureTarget(target) ~= cid then
		return false
	end
	if not config.affectAllies then
		local partyMembers = getPartyMembers(cid)
		if getPlayerGuildId(cid) == getPlayerGuildId(target) or isInArray(partyMembers, target) then
			return false
		end
	end
	if config.blockTarget then
		setPlayerStorageValue(target, 234512, os.time() + config.blockTime)
	end
	--errors(false)
	doPlayerTargetCreature(target, target)
	--errors(true)
	return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

Edited by WooX (see edit history)

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

  • Assistente
1 hora atrás, WooX disse:

Não é necessário, da pra fazer utilizando o callback onTargetCreature.

 

 

Fiz com base na spell "exevo gran mas vis" do Tibia, os parâmetros da spell podem ser alterados.


--[[
	<instant name="Remove Target" words="gtfo" lvl="55" mana="650" selftarget="1" prem="0" exhaustion="1800" needlearn="0" event="script" value="support/remove_target.lua">
		<vocation id="1"/>
		<vocation id="5"/>
	</instant>
]]

local config = {
	blockTarget = true,
	blockTime = 5, -- Segundos
	affectAllies = false,
	affectTargetCasterOnly = false -- Se marcado como true ira remover o target somente de quem estiver atacando o usuario da spell
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 5, 7, 11)

function onTargetCreature(cid, target)
	if config.affectTargetCasterOnly and getCreatureTarget(target) ~= cid then
		return false
	end
	if not config.affectAllies then
		local partyMembers = getPartyMembers(cid)
		if getPlayerGuildId(cid) == getPlayerGuildId(target) or isInArray(partyMembers, target) then
			return false
		end
	end
	if config.blockTarget then
		setPlayerStorageValue(target, 234512, os.time() + config.blockTime)
	end
	--errors(false)
	doPlayerTargetCreature(target, target)
	--errors(true)
	return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

Testei aqui ele nao esta cancelando o target dos inimigos..

x1fCxnI.png

Link to post
Share on other sites

6 minutos atrás, .HuRRiKaNe disse:

Testei aqui ele nao esta cancelando o target dos inimigos..

Tem certeza? eu testei aqui e ta funcionando certinho, deu algum erro pra você?

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

  • Assistente
2 minutos atrás, WooX disse:

Tem certeza? eu testei aqui e ta funcionando certinho, deu algum erro pra você?

Certeza absoluta, testei a do amigo que criou o tópico e ele cancela o próprio target ao invés do inimigo, a sua solta a spell tudo normal, não dá nenhum erro, mas não cancela o target..

x1fCxnI.png

Link to post
Share on other sites

59 minutos atrás, .HuRRiKaNe disse:

Certeza absoluta, testei a do amigo que criou o tópico e ele cancela o próprio target ao invés do inimigo, a sua solta a spell tudo normal, não dá nenhum erro, mas não cancela o target..

  1. Certifique-se de que possui a função instalada na source.
  2. Ao realizar o teste, deixe uma arma no char que deve perder o target para ter certeza de que o ataque foi interrompido.
  3. Dependendo do client que estiver utilizando a marca do target não vai ser removida, essa parte é client-side.

lqJ8oC1.gif

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

3 horas atrás, WooX disse:

Não é necessário, da pra fazer utilizando o callback onTargetCreature.

 

 

Fiz com base na spell "exevo gran mas vis" do Tibia, os parâmetros da spell podem ser alterados.


--[[
	<instant name="Remove Target" words="gtfo" lvl="55" mana="650" selftarget="1" prem="0" exhaustion="1800" needlearn="0" event="script" value="support/remove_target.lua">
		<vocation id="1"/>
		<vocation id="5"/>
	</instant>
]]

local config = {
	blockTarget = true,
	blockTime = 5, -- Segundos
	affectAllies = false,
	affectTargetCasterOnly = false -- Se marcado como true ira remover o target somente de quem estiver atacando o usuario da spell
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 5, 7, 11)

function onTargetCreature(cid, target)
	if config.affectTargetCasterOnly and getCreatureTarget(target) ~= cid then
		return false
	end
	if not config.affectAllies then
		local partyMembers = getPartyMembers(cid)
		if getPlayerGuildId(cid) == getPlayerGuildId(target) or isInArray(partyMembers, target) then
			return false
		end
	end
	if config.blockTarget then
		setPlayerStorageValue(target, 234512, os.time() + config.blockTime)
	end
	--errors(false)
	doPlayerTargetCreature(target, target)
	--errors(true)
	return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

Testei aqui e nao funcionou tambem nao.

Link to post
Share on other sites

  • Assistente
17 horas atrás, WooX disse:
  1. Certifique-se de que possui a função instalada na source.
  2. Ao realizar o teste, deixe uma arma no char que deve perder o target para ter certeza de que o ataque foi interrompido.
  3. Dependendo do client que estiver utilizando a marca do target não vai ser removida, essa parte é client-side.

lqJ8oC1.gif

Bom dia, consegue adaptar para ao invés de cancelar o target, dar um nomove de 5 segundos e depois remover o nomove ao acabar?

x1fCxnI.png

Link to post
Share on other sites

Em 03/09/2020 em 17:50, BangxD disse:

Testei aqui e nao funcionou tambem nao.

A spell está configurada pra não afetar aliados (jogadores na mesma party ou da mesma guild), e também ira apenas remover o target, para realizar o bloqueio do target ainda é necessário utilizar em conjunto a spell o creaturescript postado pelo @Lurk, eu testei a spell novamente e está funcional.

 

Em 04/09/2020 em 10:13, .HuRRiKaNe disse:

Bom dia, consegue adaptar para ao invés de cancelar o target, dar um nomove de 5 segundos e depois remover o nomove ao acabar?

Spoiler

--[[
	<instant name="Paralyze Target" words="gtfo" lvl="55" mana="650" selftarget="1" prem="0" exhaustion="1800" needlearn="0" event="script" value="support/paralyze_target.lua">
		<vocation id="1"/>
		<vocation id="5"/>
	</instant>
]]

local config = {
	paralyzeTime = 5, -- Segundos
	affectAllies = false,
	affectTargetCasterOnly = false -- Se marcado como true ira paralyzar somente quem estiver atacando o usuario da spell
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 5, 7, 11)

function onTargetCreature(cid, target)
	if config.affectTargetCasterOnly and getCreatureTarget(target) ~= cid then
		return false
	end
	if not config.affectAllies then
		local partyMembers = getPartyMembers(cid)
		if getPlayerGuildId(cid) == getPlayerGuildId(target) or isInArray(partyMembers, target) then
			return false
		end
	end
	doCreatureSetNoMove(target, true)
	addEvent(function()
		if isPlayer(target) then
			doCreatureSetNoMove(target, false)
		end
	end, config.paralyzeTime * 1000)
	return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

 

Edited by WooX (see edit history)

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

  • Assistente
1 hora atrás, WooX disse:

A spell está configurada pra não afetar aliados (jogadores na mesma party ou da mesma guild), e também ira apenas remover o target, para realizar o bloqueio do target ainda é necessário utilizar em conjunto a spell o creaturescript postado pelo @Lurk, eu testei a spell novamente e está funcional.

 

  Ocultar conteúdo


--[[
	<instant name="Paralyze Target" words="gtfo" lvl="55" mana="650" selftarget="1" prem="0" exhaustion="1800" needlearn="0" event="script" value="support/paralyze_target.lua">
		<vocation id="1"/>
		<vocation id="5"/>
	</instant>
]]

local config = {
	paralyzeTime = 5, -- Segundos
	affectAllies = false,
	affectTargetCasterOnly = false -- Se marcado como true ira paralyzar somente quem estiver atacando o usuario da spell
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 8, 5, 7, 11)

function onTargetCreature(cid, target)
	if config.affectTargetCasterOnly and getCreatureTarget(target) ~= cid then
		return false
	end
	if not config.affectAllies then
		local partyMembers = getPartyMembers(cid)
		if getPlayerGuildId(cid) == getPlayerGuildId(target) or isInArray(partyMembers, target) then
			return false
		end
	end
	doCreatureSetNoMove(target, true)
	addEvent(function()
		if isPlayer(target)
			doCreatureSetNoMove(target, false)
		end
	end, config.paralyzeTime * 1000)
	return true
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature")

local area = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

 

 

Testei aqui nao funcionou, a minha distro é cheia de erros, não consigo ver se deu algum erro..

x1fCxnI.png

Link to post
Share on other sites

20 horas atrás, .HuRRiKaNe disse:

Testei aqui nao funcionou, a minha distro é cheia de erros, não consigo ver se deu algum erro..

Sem algum tipo de erro fica difícil te ajudar.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

  • 1 month later...
Em 05/09/2020 em 19:51, WooX disse:

Sem algum tipo de erro fica difícil te ajudar.

achei um erro aqui.

 

addEvent(function()
		if isPlayer(target)
			doCreatureSetNoMove(target, false)
		end
	end, config.paralyzeTime * 1000)

falta o then, mas msm assim nao acontece nada. os player nao ficam parado. 

 

 

sem erros distros...

Link to post
Share on other sites

Em 31/10/2020 em 20:52, BangxD disse:

achei um erro aqui.

 


addEvent(function()
		if isPlayer(target)
			doCreatureSetNoMove(target, false)
		end
	end, config.paralyzeTime * 1000)

falta o then, mas msm assim nao acontece nada. os player nao ficam parado. 

 

 

sem erros distros...

Corrigi o erro no meu post. Se não está funcionando pode ser algum problema com a função na sua source, eu testei e está funcional.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

16 horas atrás, WooX disse:

Corrigi o erro no meu post. Se não está funcionando pode ser algum problema com a função na sua source, eu testei e está funcional.

Eu removi a parte que verificar membro da guilda ou party  e funcionou.

Link to post
Share on other sites

8 horas atrás, BangxD disse:

Eu removi a parte que verificar membro da guilda ou party  e funcionou.

Não precisava remover, essa parte é opcional, é só alterar essa opção no código pra true.

affectAllies = false,

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link to post
Share on other sites

3 horas atrás, WooX disse:

Não precisava remover, essa parte é opcional, é só alterar essa opção no código pra true.


affectAllies = false,

 

Eu tava ligado, mas eu nao queria essa parte não. mas muito obrigado

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Nother
      Olá, gostaria de uma speel em área que puxasse o agro dos bixos para que eles parassem de focar outra pessoa e focassem quem agrou eles.
      A spell pode ser um quadrado de 4 sqm de distancia para todos os lados.
      Desde já agradeço
       
    • By Kanoshi
      Ent to tentando fazer com que o npc feche o shop assim que o player der bye porém ele continua com o shop aberto.
       
      Rep a quem ajudar!
    • By xBlackWolf
      .Qual servidor ou website você utiliza como base? 
      OTG 
       
      Qual o motivo deste tópico? 
      Estou tentando repassar para linguagem do OTG e não funciona o script, também não dá erros.
       
      Você tem o código disponível? Se tiver publique-o aqui: 
       function addOnlineBonus(player, minutos, bonus_contador, bonus_max) player:setStorageValue(bonus_contador, player:getStorageValue(bonus_contador) + 1) addEvent(addOnlineBonus, minutos * 60 * 1000, player, minutos, bonus_contador, bonus_max) end function MinutesToClock(minutes) local minutes = tonumber(minutes) if minutes <= 0 then return "00:00"; else if minutes >= 60 then hours = string.format("%02.f", math.floor(minutes/60)); mins = string.format("%02.f", math.floor(minutes - hours*60)); else hours = "00"; mins = minutes; end if hours ~= 1 then return hours.." Horas e "..mins.. " minutos." else return hours.." Hora e "..mins.. " minutos." end end end function showOnlineBonus(player,bonus_contador,minutos) local finaltime = 0 if(player:getStorageValue(bonus_contador) >= 60) then finaltime = MinutesToClock(player:getStorageValue(bonus_contador)) else finaltime = (player:getStorageValue(bonus_contador).." Minutos.") end player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Voce esta Online a: " ..finaltime) addEvent(showOnlineBonus, minutos * 600 * 1000, player, bonus_contador, minutos) end function onLogin(player) player:registerEvent("onlinebonus") local bonus_contador = 72702 -- Storage que vai guardar tempo online em minutos. local bonus_max = 99999 -- Quantidade de minutos máximo por dia. local minutos = 1 -- A cada quanto tempo vamos ganhar pontos. if player:getStorageValue(bonus_contador) > 0 then player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Tempo Online acumulado hoje: "..MinutesToClock(player:getStorageValue(cid,bonus_contador))) else player:setStorageValue(bonus_contador, 0) player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Fique Online e receba o TOP Online ! Alem de chances maiores na loteria ! Tenha um otimo jogo!") end addEvent(addOnlineBonus, minutos * 60 * 1000, player, minutos, bonus_contador, bonus_max) addEvent(showOnlineBonus, minutos * 600 * 1000, player, bonus_contador, minutos) return true end  
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
      Não tem print de erros, simplesmente o processo não inicia de contar os minutos disponíveis... também não envia nada ao player.
       
      Segue script usado como base TFS 0.4 :
      function addOnlineBonus(cid, minutos, bonus_contador, bonus_max) if not isPlayer(cid) then return false end setPlayerStorageValue(cid, bonus_contador, getPlayerStorageValue(cid, bonus_contador) + 1) addEvent(addOnlineBonus, minutos * 60 * 1000, cid, minutos, bonus_contador, bonus_max) end function MinutesToClock(minutes) local minutes = tonumber(minutes) if minutes <= 0 then return "00:00"; else if minutes >= 60 then hours = string.format("%02.f", math.floor(minutes/60)); mins = string.format("%02.f", math.floor(minutes - hours*60)); else hours = "00"; mins = minutes; end if hours ~= 1 then return hours.." Horas e "..mins.. " minutos." else return hours.." Hora e "..mins.. " minutos." end end end function showOnlineBonus(cid,bonus_contador,minutos) local finaltime = 0 if not isPlayer(cid) then return false end if(getPlayerStorageValue(cid,bonus_contador) >= 60) then finaltime = MinutesToClock(getPlayerStorageValue(cid,bonus_contador)) else finaltime = (getPlayerStorageValue(cid,bonus_contador).." Minutos.") end doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Voce esta Online a: " ..finaltime) addEvent(showOnlineBonus, minutos * 600 * 1000, cid, bonus_contador, minutos) end function onLogin(cid) local bonus_contador = 72702 -- Storage que vai guardar tempo online em minutos. local bonus_max = 99999 -- Quantidade de minutos máximo por dia. local minutos = 1 -- A cada quanto tempo vamos ganhar pontos. if getPlayerStorageValue(cid, bonus_contador) > 0 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Tempo Online acumulado hoje: "..MinutesToClock(getPlayerStorageValue(cid,bonus_contador))) else setPlayerStorageValue(cid, bonus_contador, 0) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Fique Online e receba o TOP Online ! Alem de chances maiores na loteria ! Tenha um otimo jogo!") end addEvent(addOnlineBonus, minutos * 60 * 1000, cid, minutos, bonus_contador, bonus_max) addEvent(showOnlineBonus, minutos * 600 * 1000, cid, bonus_contador, minutos) return true end  
       
      Aguardo quem puder me ajudar rsrs
    • By ZeeroBR
      Não sei se é padrão do game ou coisa do tipo, mas os summons que eu spawno conseguem me atacar com spells em área, alguém sabe a solução? tentei utilizar um script mas não tive êxito. Utilizo tfs 0.4 rev 3884 8.60
    • By Nother
      AQUI ESTOU EU COM MAIS UM PEDIDO KKK, GOSTARIA DE SABER SE ALGUEM CONSEGUE FAZER ESSE MEU BUFF TROCA A VOCATION ATUAL PARA A VOCATION NUMERO 11 DURANTE 30 MIN. TENHO O BUFF QUE DESENVOLVI COM AJUDA DO PESSOAL AQUI QUE FUNCIONA LEGAL NO MEU SERVER. ELE JA TEM A FUNÇÃO DE TEMPO QUE EU CONSIGO ALTERAR, ELE JA TROCA A OUTFIT E TEM O EXAUST. ACHO QUE APENAS SERIA ADCIONAR MESMO A TROCA DE VOCATION.
      CASO ALGUEM QUEIRA ME AJUDAR A FAZER, FAÇA DA MANEIRA QUE ACHAR MAIS FACIL. NÃO TEM IMPORTANCIA DO PLAYER MORRER E CONTINUAR TRANSFORMADO. 
       
       
       local tempo = 30 local effect = {80} local effect1 = {80} local outfit = {lookType = 3} local points = 20 local combat = createCombatObject() local health = 0.05 setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) function doHealthSecond(cid, amount, delay) -- function by vodka if not isCreature(cid) then return LUA_ERROR end doCreatureAddHealth(cid, amount) if delay ~= 1 then addEvent(doHealthSecond, 1000, cid, amount, delay -1) end end local function Magica(tempo2,tempo3,cid) if isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local position1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect[i]) doSendMagicEffect(position1, effect1[i]) end end end local function Outfitzinha(cid) doRemoveCondition(cid, CONDITION_OUTFIT) end function onCastSpell(cid, var) if exhaustion.check(cid, 102053) == FALSE then doCombat(cid, combat, var) tempo2 = 0 while (tempo2 ~= (tempo*1000)) do addEvent(Magica, tempo2, tempo2, tempo*1000, cid) addEvent(Outfitzinha, tempo*1000, cid) tempo2 = tempo2 + 1000 end local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} exhaustion.set(cid, 102053, tempo) doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 80) doHealthSecond(cid, -getCreatureMaxHealth(cid) * health, tempo) doSetCreatureOutfit(cid, outfit) else doPlayerSendCancel(cid, "Desculpe, voce ja esta Transformado.") end end ESSE É O CODIGO DO BUFF.
      USO TFS 0.4 E TIBIA 8.60
       
       
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo