Ir para conteúdo
  • 0

Spell que retira o Buff do TARGET por X Tempo


lucasromero0110

Pergunta

Versão do Servidor: 8.54

Nivel: Pro

Ola, estou criando um server e, com isso, ha alguns scripts que eu preciso ter.
Esse script que eu estou pedindo, quero que aconteça da seguinte forma:
O player usa a SPELL no TARGET, e assim o TARGET que estava com o BUFF Ativado perde as skills recebida do buff e para usar o buff novamente só depois de X Tempo e o Player que usou a SPELL só pode usar denovo apos X tempo também.
Não tenho a base do script.

Resumindo a Spell usada:

Fulano usou o jutsu em Polano.
Polano estava com o Buff Ativado e apos receber o ataque, o buff foi retirado e as skills recebidas também foram retiradas, e para usar o buff novamente demorou 10 segundos.

Dou 2 Rep + para quem ajudar.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

isso vai ser necessario alteraçao na spell de buff entao farei os 2 scripts.

 

Primeiro vá em data/spells/scripts e crie um arquivo .lua com nome Buff.lua e cole isto dentro:

 

 

local config = {
tempo = 60, -- tempo de duraçao do buff em segundos
effect = {10}, -- efeito do buff, caso mais de 1, adicionar virgulas dentro da tabela
timer = 300, -- loop de tempo em milisegundos para soltar efeito
}

local condition_config = {
magic = 30, -- quantos que ira almentar de Magic Level
fist = 30, -- quantos que ira almentar de Fist
sword = 30, -- quantos que ira almentar de Sword
axe = 30, -- quantos que ira almentar de Axe
club = 30, -- quantos que ira almentar de Club
distance = 30, -- quantos que ira almentar de Distance
shield = 30, -- quantos que ira almentar de Shield
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, condition_config.magic)
setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, condition_config.fist)
setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, condition_config.sword)
setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, condition_config.axe)
setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, condition_config.club)
setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, condition_config.distance)
setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, condition_config.club)
setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)
setCombatCondition(combat, condition)

local function Buff(cid)
if isCreature(cid) and getCreatureCondition(cid, CONDITION_ATTRIBUTES) == true then
for i=1, #config.effect do
local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
doSendMagicEffect(position, config.effect)
end
end
end

function onCastSpell(cid, var)
if getCreatureCondition(cid, CONDITION_ATTRIBUTES) == false then
if exhaustion.check(cid, 12345) == false then
doCombat(cid, combat, var)
local check = 0
while check <= config.tempo*1000 do
addEvent(Buff, check, cid)
check = check + config.timer
end
else
return doPlayerSendCancel(cid, "You are exhausted.") and false
end
else
return doPlayerSendCancel(cid, "Sorry, you are transformed.") and false
end
return true
end

 

 

agora crie um chamado Remove buff.lua e cole isto dentro:

 

 

local config = {
cid_time = 10, -- tempo em segundos que o usuario vai ficar com exhausted.
target_time = 10, -- tempo em segundos que o oponente vai ficar com exhausted.
}

function onCastSpell(cid, var)
if not isPlayer(getCreatureTarget(cid)) then
return doPlayerSendCancel(cid, "Only target players.") and false
end
if exhaustion.check(cid, 12346) == false then
doRemoveCondition(getCreatureTarget(cid), CONDITION_ATTRIBUTES)
exhaustion.set(getCreatureTarget(cid), 12345, config.target_time)
exhaustion.set(cid, 12346, config.cid_time)
else
return doPlayerSendCancel(cid, "You are exhausted.") and false
end
return true
end

 

 

 

agora so adiocionar as tags em spells.xml e editar a gosto:

<instant name="MAGIA DO BUFF" words="MAGIA DO BUFF" lvl="LEVEL" mana="MANA" prem="0" aggressive="0" exhaustion="0" needlearn="0" blockwalls="1" enabled="1" event="script" value="Buff.lua">
<vocation id="ID"/>
</instant>

<instant name="REMOVE BUFF" words="REMOVE BUFF" lvl="LEVEL" mana="MANA" prem="0" needtarget="1" range="5" aggressive="0" exhaustion="0" needlearn="0" blockwalls="1" enabled="1" event="script" value="Remove buff.lua">
<vocation id="ID"/>
</instant>

OBS: nao sao necessarios adicionar o exhausted nas tags.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...