Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá,

 

Poderiam me ajudar ?

Seria possível criar uma spell que dê 200000 de hp por segundo, durante 5 segundos, com exaust de 3minutos ? Mas podendo somente usar com 90% de Life ou +. ?

Link para o post
Compartilhar em outros sites

Testa aí amigo:

 

spells.xml

<instant name="Cura" words="cura" lvl="1" mana="1" prem="0" selftarget="1" aggressive="0" needlearn="0" event="script" value="cura.lua"> 
  <vocation id="4"/>
</instant>

spells/scripts/cura.lua

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 5 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 200000)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
	local cd_stg = 90950 -- storage do cooldown
	local cd_time = 180 -- 1 = 1 segundo de cooldown

	if exhaustion.check(cid, cd_stg) == false then
		if (getCreatureHealth(cid) >= (getCreatureMaxHealth(cid) * 0.90)) then
			exhaustion.set(cid, cd_stg, cd_time)
			return doCombat(cid, combat, var)
		else
			doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
	        doPlayerSendCancel(cid, "You can only use this spell with more than 90% health.")
	        return false	
	   	end
	else
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        doPlayerSendCancel(cid, "Spells is on cooldown [" ..exhaustion.get(cid, cd_stg).."s].")
        return false
	end
end

 

Editado por Zanrix (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
8 horas atrás, diarmaint disse:

Tem como fazer uma que ao usar heale a mana e muda a vocação/outfit do player, e quando acabar o tempo voltasse como a vocação/outfit anterior?

Seria um sennin mode do naruto.

@Zanrix

Healar a vida e a mana ou só mana? e healar de uma vez só ou ir ganhando por segundo?

Link para o post
Compartilhar em outros sites

Testa aí

local voc_inical = 2 -- id da vocação antes de se transformar
local vocation = 4 -- id da vocação que a magia vai transformar
local outfit = 250 -- looktype da outfit que a magia vai transformar
local mana = 10 -- quanto de mana por segundo a magia vai dar
local segundos = 30 -- quantos segundos a magia vai durar

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * segundos * 1000)
setConditionParam(condition, CONDITION_PARAM_MANAGAIN, mana)
setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000)

local condition2 = createConditionObject(CONDITION_OUTFIT)
setConditionParam(condition2, CONDITION_PARAM_TICKS, 1 * segundos * 1000)
addOutfitCondition(condition2, {lookType = outfit, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0})

setCombatCondition(combat, condition)
setCombatCondition(combat, condition2)

local function onCastSpell1(parameters)
	doPlayerSetVocation(parameters.cid, vocation)
end

local function onCastSpell2(parameters)
	if parameters.cid then
		doPlayerSetVocation(parameters.cid, voc_inical)
	end
end

function onCastSpell(cid, var)
	local tempo = segundos * 1000
	local parameters = { cid = cid, var = var }
	addEvent(onCastSpell1, 1, parameters)
	addEvent(onCastSpell2, tempo, parameters)
	return doCombat(cid, combat, var)
end

 

Link para o post
Compartilhar em outros sites

Tem como sair um effect ao transformar e outro (diferente) quando o poder acabar, e quando ganha mana, tem como mostrar a quantidade aparecendo em cima do personagem igual quando usa postion?

Link para o post
Compartilhar em outros sites

Sobre a mana não vou saber te ajudar, mas aqui ta com os efeitos:

local voc_inical = 2 -- id da vocação antes de se transformar
local vocation = 4 -- id da vocação que a magia vai transformar
local outfit = 250 -- looktype da outfit que a magia vai transformar
local mana = 10 -- quanto de mana por segundo a magia vai dar
local segundos = 30 -- quantos segundos a magia vai durar
local efeito1 = CONST_ME_MAGIC_BLUE -- efeito de quando se transformar
local efeito2 = CONST_ME_MAGIC_BLUE -- efeito de quando acabar a transformação

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, efeito1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * segundos * 1000)
setConditionParam(condition, CONDITION_PARAM_MANAGAIN, mana)
setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000)

local condition2 = createConditionObject(CONDITION_OUTFIT)
setConditionParam(condition2, CONDITION_PARAM_TICKS, 1 * segundos * 1000)
addOutfitCondition(condition2, {lookType = outfit, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0})

setCombatCondition(combat, condition)
setCombatCondition(combat, condition2)

local function onCastSpell1(parameters)
	doPlayerSetVocation(parameters.cid, vocation)
end

local function onCastSpell2(parameters)
	if parameters.cid then
		doSendMagicEffect(getPlayerPosition(parameters.cid), efeito2)
		doPlayerSetVocation(parameters.cid, voc_inical)
	end
end

function onCastSpell(cid, var)
	local tempo = segundos * 1000
	local parameters = { cid = cid, var = var }
	addEvent(onCastSpell1, 1, parameters)
	addEvent(onCastSpell2, tempo, parameters)
	return doCombat(cid, combat, var)
end

 

Link para o post
Compartilhar em outros sites

@Zanrix

Achei um probleminha, se eu uso e deslogo, quando eu logo novamente o effect e a vocação continuam,  o outfit volta ao normal.

Editado por diarmaint (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
9 horas atrás, diarmaint disse:

@Zanrix

Achei um probleminha, se eu uso e deslogo, quando eu logo novamente o effect e a vocação continuam,  o outfit volta ao normal.

Como assim o effect continua?

Sobre a vocação, faz assim:

creaturescripts/scripts/login.lua (Antes do último return true coloca):

if getPlayerVocation(cid) == 10 then -- aqui nesse 10 vc coloca o id da vocação do modo transformado
	doPlayerSetVocation(cid, 8) -- aqui nesse 8 vc coloca o id da vocação normal
end 

 

Link para o post
Compartilhar em outros sites

@Zanrix 

sobre isso > Como assim o effect continua? < ignora, era outra coisa e eu assimilei ao script.

Sim, deu certo, o único problema é que se eu uso, deslogo e entro em outro char dá esse erro,

E tbm dá pra usar, desloga, loga , usa dnv... tem como por exhaust contanto mesmo deslogado ?

 

 


 

[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/200/sage mode.lua:onCastSpell
Description:
(luaGetThingPosition) Thing not found


[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/200/sage mode.lua:onCastSpell
Description:
(luaDoPlayerSetVocation) Player not found
Josney has logged out.
Pedro has logged in.


[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/200/sage mode.lua:onCastSpell
Description:
(luaGetThingPosition) Thing not found


[Error - Spell Interface]
In a timer event called from:
data/spells/scripts/200/sage mode.lua:onCastSpell
Description:
(luaDoPlayerSetVocation) Player not found

 

 

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

@diarmaint

Testa aí

local voc_inical = 2 -- id da vocação antes de se transformar
local vocation = 4 -- id da vocação que a magia vai transformar
local outfit = 250 -- looktype da outfit que a magia vai transformar
local mana = 10 -- quanto de mana por segundo a magia vai dar
local segundos = 30 -- quantos segundos a magia vai durar
local efeito1 = CONST_ME_MAGIC_BLUE -- efeito de quando se transformar
local efeito2 = CONST_ME_MAGIC_BLUE -- efeito de quando acabar a transformação

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, efeito1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, true)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * segundos * 1000)
setConditionParam(condition, CONDITION_PARAM_MANAGAIN, mana)
setConditionParam(condition, CONDITION_PARAM_MANATICKS, 1000)

local condition2 = createConditionObject(CONDITION_OUTFIT)
setConditionParam(condition2, CONDITION_PARAM_TICKS, 1 * segundos * 1000)
addOutfitCondition(condition2, {lookType = outfit, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0})

setCombatCondition(combat, condition)
setCombatCondition(combat, condition2)

local function onCastSpell1(parameters)
	doPlayerSetVocation(parameters.cid, vocation)
end

local function onCastSpell2(parameters)
	if isCreature(parameters.cid) then
		doSendMagicEffect(getPlayerPosition(parameters.cid), efeito2)
		doPlayerSetVocation(parameters.cid, voc_inical)
	end
end

function onCastSpell(cid, var)
	local cd_stg = 98765
	local cd_time = 20 -- tempo de cooldown (20 = 20 segundos)
	local tempo = segundos * 1000
	local parameters = { cid = cid, var = var }
	if exhaustion.check(cid, cd_stg) == false then
		addEvent(onCastSpell1, 1, parameters)
		addEvent(onCastSpell2, tempo, parameters)
		exhaustion.set(cid, cd_stg, cd_time)
		return doCombat(cid, combat, var)
	else
    	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        doPlayerSendCancel(cid, "Spells is on cooldown [" ..exhaustion.get(cid, cd_stg).."s].")
        return false
	end
end

 

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 LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo