Ir para conteúdo
  • 0

para lançar uma magia precisa de uma magia ativa ,


kavaskiva

Pergunta

Explicando o Pedido

 

vamos lá , então , eu quero assim , para você usar uma habilidade exemplo " Exiva " Precisa ter a magia " Melodia " ativa , ou seja quando um player for tentar usar exiva vai aparecer você precisa estar com a magia " Melodia " ativada caso contrario nao sera possível usar a magia " Exiva " , e quando o player ativar a magia " Melodia " ele conseguir usar o exiva , acho que deu para entender né ? Obrigado desde já !

 

@Valendo ?

 

Reputação ^^,

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

MELODIA:

 

 

local tempo = 60 -- tempo em segundos.

local effect = {136} -- effect no player

local ml = 6 -- quantos ira aumentar o skill de ML
local skillfist = 5 -- quantos ira aumentar o skill de Fist
local skillsword = 5 -- quantos ira aumentar o skill de Sword
local skillaxe = 5 -- quantos ira aumentar o skill de Axe
local skillclub = 5 -- quantos ira aumentar o skill de Club
local skilldistance = 5 -- quantos ira aumentar o skill de Distance
local skillshield = 5 -- quantos ira aumentar o skill de Shield
local health = 150 -- A cada 1 segundo quantos aumentar de vida
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)

function magicEffect(tempo2,tempo3,cid)
if (isCreature(cid)) then
if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
for i=1, #effect do
local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
doSendMagicEffect(position, effect)
end
end
end
end

function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
doCombat(cid, combat, var)
setPlayerStorageValue(cid, 91838, os.time() + tempo)
tempo2 = 0
while (tempo2 ~= (tempo*1000)) do
addEvent(magicEffect, tempo2, tempo2, tempo*1000, cid)
tempo2 = tempo2 + 300
end
setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
doPlayerSendCancel(cid, "Voce ja esta com Buff.")
end
end

 

 

 

EXIVA:

 

 

function onCastSpell(cid, var)
local mana = getCreatureMana(cid)
if not getCreatureCondition(cid, CONDITION_ATTRIBUTES) or getPlayerStorageValue(cid, 91838) < os.time() then
return doPlayerSendCancel(cid, "Voce prescisa esta com MELODIA ativada.")
end
if getCreatureTarget(cid) == nil or not getCreatureTarget(cid) or getCreatureTarget(cid) == 0 then
doPlayerSendCancel(cid, "Voce precisa de um alvo.")
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
return false
end
if isCreature(getCreatureTarget(cid)) then
doPlayerAddMana(cid, -mana)
doCreatureAddHealth(getCreatureTarget(cid), -mana)
doSendDistanceShoot(getThingPos(cid), getThingPos(getCreatureTarget(cid)), 13)
doSendMagicEffect(getThingPos(getCreatureTarget(cid)), 49)
end
return true
end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Na magia que necessita estar ativada para usar a outra, você seta uma storage com os.time (que seria a duração do efeito desta). Depois, no código da outra spell, você checa tal storage, como o exemplo a seguir demonstra:

--Melodia
function onCastSpell(cid, var)
    return setPlayerStorageValue(cid, 91838, os.time() + 5)
end
--Exiva
function onCastSpell(cid, var)
    if getPlayerStorageValue(cid, 91838) > os.time() then
        return print("Pode castar esta magia, pois está com o efeito de Melodia ativado.")
    else
        return print("Não pode castar esta magia, pois não está com o efeito de Melodia ativado.")
    end
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

magia melodia :

 

 

local tempo = 60 -- tempo em segundos.

local effect = {136} -- effect no player
local ml = 6 -- quantos ira aumentar o skill de ML
local skillfist = 5 -- quantos ira aumentar o skill de Fist
local skillsword = 5 -- quantos ira aumentar o skill de Sword
local skillaxe = 5 -- quantos ira aumentar o skill de Axe
local skillclub = 5 -- quantos ira aumentar o skill de Club
local skilldistance = 5 -- quantos ira aumentar o skill de Distance
local skillshield = 5 -- quantos ira aumentar o skill de Shield
local health = 150 -- A cada 1 segundo quantos aumentar de vida
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, ml)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, skillfist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, skillsword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, skillaxe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, skillclub)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, skilldistance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, skillshield)
setConditionParam(condition, CONDITION_PARAM_OUTFIT, outfit)
setCombatCondition(combat, condition)
local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_SPEED, 250)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)
local condition = createConditionObject(CONDITION_REGENERATION)
setConditionParam(condition, CONDITION_PARAM_SUBID, 1)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, health)
setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000)
setCombatCondition(combat, condition)
function magicEffect(tempo2,tempo3,cid)
if (isCreature(cid)) then
if getPlayerStorageValue(cid, 102053) > 0 and getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
for i=1, #effect do
local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
doSendMagicEffect(position, effect)
end
end
end
end
function onCastSpell(cid, var)
if getPlayerStorageValue(cid, 102053) ~= 1 or getCreatureCondition(cid, CONDITION_REGENERATION, 1) == false then
doCombat(cid, combat, var)
tempo2 = 0
while (tempo2 ~= (tempo*1000)) do
addEvent(magicEffect, tempo2, tempo2, tempo*1000, cid)
tempo2 = tempo2 + 300
end
setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
doPlayerSendCancel(cid, "Voce ja esta com Buff.")
end
end

magia " EXIVA "

function onCastSpell(cid, var)
local mana = getCreatureMana(cid)
if getCreatureTarget(cid) == nil or not getCreatureTarget(cid) or getCreatureTarget(cid) == 0 then
doPlayerSendCancel(cid, "Voce precisa de um alvo.")
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
return false
end
if isCreature(getCreatureTarget(cid)) then
doPlayerAddMana(cid, -mana)
doCreatureAddHealth(getCreatureTarget(cid), -mana)
doSendDistanceShoot(getThingPos(cid), getThingPos(getCreatureTarget(cid)), 13)
doSendMagicEffect(getThingPos(getCreatureTarget(cid)), 49)
end
return true
end
o que tenho que fazer eu tentei e não consegui ... ^^,
Editado por kavaskiva
Link para o comentário
Compartilhar em outros sites

  • 0

obrigado funfo , podem trancar ,

 

uma ultima duvida , tem como assim , eu usei melodia , ai usei exura , mais o melodia ( buff ) continua ativo teria como após usar o exura desativar o melodia ou seja retirando o storage eu acho '~'

Editado por kavaskiva
Link para o comentário
Compartilhar em outros sites

  • 0

tiro as condiçoes dos atributos e regeneração mais o buff continua ativo , pois vou usar melodia novamente e aparece vc ja esta com buff

 

consegui arrumar coloquei para remover a storage que verificava se o buff estava ativo , podem trancar !

Editado por kavaskiva
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...