Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] Spell que remove buff


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Fala guys, tenho uma spell de remover buff criada pelo @KotZletY, ela funciona perfeitamente, mas eu queria aprimorá-la para que o player que fosse atingido pela spell não conseguisse usar o buff durante um determinado tempo (configurável), segue o script abaixo:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 238)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)


function onCastSpell(cid, var)
local target = getCreatureTarget(cid)
local storage = 102053 -- Storage que ta em Todos os BUffs, alguns pode não está, então coloque a mesma storage em todos os buff.

if isPlayer(target) then

if getPlayerStorageValue(target, storage) == 1 then
setPlayerStorageValue(target, storage, 0)
return doCombat(cid, combat, var)
else 
doPlayerSendTextMessage(cid, 20, "O Player já está sem Buff.")
end

else 
doPlayerSendTextMessage(cid, 20, "Você só pode usar este Jutsu em Players, pois monstros não tem Buff.")
end

end

A spell remove o effect do player, mas não tira os atributos, tem como consertar isso?

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

@ZeeroBR faça o script acima entregar uma storage com um time e nos buffs você checa se o player tem essa storage, se o time dela for maior que o time atual, retorne false impedindo que use o buff!

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites

Obrigado mesmo, de verdade, mas eu tenho outra dúvida, no caso essa spell só remove o magic effect mas não remove os atributos que o personagem ganha, como posso editar isso?

 

Link para o post
Compartilhar em outros sites
  • Solução
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 238)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -40.2, 1, -40.2, 1)
function onCastSpell(cid, var)
	local target = getCreatureTarget(cid)
	local storage = 102053 -- Storage que ta em Todos os BUffs, alguns pode não está, então coloque a mesma storage em todos os buff.
	if isPlayer(target) then
		if getPlayerStorageValue(target, storage) == 1 then
			setPlayerStorageValue(target, storage, 0)
			doRemoveConditions(target, false)
			doRemoveCondition(target, CONDITION_ATTRIBUTES, jin_cond_id)
			return doCombat(cid, combat, var)
		else 
			doPlayerSendTextMessage(cid, 20, "O Player já está sem Buff.")
		end
	else 
		doPlayerSendTextMessage(cid, 20, "Você só pode usar este Jutsu em Players, pois monstros não tem Buff.")
	end
	return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
Em 25/06/2018 em 14:19, KotZletY disse:

@ZeeroBR faça o script acima entregar uma storage com um time e nos buffs você checa se o player tem essa storage, se o time dela for maior que o time atual, retorne false impedindo que use o buff!

 

Ae Kotzlety, eu tentei muito fazer isso mas não consegui, se você estiver livre pode fazer pra mim? só pra eu tentar entender e aprender mesmo (na spell de remover buff funcionou, mas na da bijuu não)

 

Buff bijuu:

 

function buff_bijuu(cid, pointsSkill, time, subId)

local buff_bijuu = createConditionObject(CONDITION_ATTRIBUTES)
 setConditionParam(buff_bijuu, CONDITION_PARAM_TICKS, time*1000)
 setConditionParam(buff_bijuu, CONDITION_PARAM_STAT_MAGICLEVEL, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SKILL_FIST, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SKILL_SWORD, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SKILL_AXE, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SKILL_CLUB, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SKILL_DISTANCE, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SKILL_SHIELD, pointsSkill)
 setConditionParam(buff_bijuu, CONDITION_PARAM_SUBID, subId)
return doAddCondition(cid, buff_bijuu)

end

function onCastSpell(cid, var)
local storageb = 102053 -- Storage que ta em Todos os BUffs, alguns pode não está, então coloque a mesma storage em todos os buff.
local waittime = 30 --tempo em segundos
local storage = 8877 --storage do exaust, em cada magia uma storage diferente.
local stor = 124123

if exhaustion.check(cid, storage) then
   doPlayerSendTextMessage(cid, 20, "Voce só pode usar o poder da bijuu novamente em " .. exhaustion.get(cid, storage) .. " segundos.")
return false
end
exhaustion.set(cid, storage, waittime)

if getPlayerStorageValue(cid, storageb) >= 0 then
setPlayerStorageValue(cid, storageb, 2)
doRemoveConditions(cid, false)
end

local position = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y+1, z=getPlayerPosition(cid).z}
 if jin.getPlayerBijuu(cid) ~= 0 then
  if not getCreatureCondition(cid, CONDITION_ATTRIBUTES, jin_cond_id) then
   doSetCreatureOutfit(cid, {lookType = jin_bijuus[jin.getPlayerBijuu(cid):lower()].bijuu_outfit} , jin_bijuus[jin.getPlayerBijuu(cid):lower()].time_buff*1000)
   buff_bijuu(cid, jin_bijuus[jin.getPlayerBijuu(cid):lower()].skill_p, jin_bijuus[jin.getPlayerBijuu(cid):lower()].time_buff, jin_cond_id)
   doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "A sua forma de bijuu foi ativada")
   doSendMagicEffect(getThingPosition(cid), jin_bijuus[jin.getPlayerBijuu(cid):lower()].effBuff)
   doSendMagicEffect(position, 301)
  else
   return false, doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce já esta com o buff de sua bijuu.")
  end
 else
  return false, doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce precisa selar alguma bijuu para usar seu buff.")
 end
  return true
end

 

Buff:

 

local tempo = 60 -- tempo em segundos.
local effect = {287} -- effect no player
local cdsto = 124122
local stora = 124123
local cdtime = 35 -- tempo em segundos
local storage = 666777 --storage do exaust, em cada magia uma storage diferente.
local stor = 102053
        
local ml = 55 -- quantos ira aumentar o skill de ML
local skillfist = 55 -- quantos ira aumentar o skill de Fist
local skillsword = 55 -- quantos ira aumentar o skill de Sword
local skillaxe = 55 -- quantos ira aumentar o skill de Axe
local skillclub = 55 -- quantos ira aumentar o skill de Club
local skilldistance = 55 -- quantos ira aumentar o skill de Distance
local skillshield = 55 -- quantos ira aumentar o skill de Shield
local health = 200 -- 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 magicEffect5555555(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[i])
                end
        end
end
end
							  
function onCastSpell(cid, var)
if getPlayerStorageValue(cid, cdsto) >= 1 or getPlayerStorageValue(cid, stor) >= 1 and exhaustion.check(cid, storage) then
   doPlayerSendTextMessage(cid, 20, "Voce está incapaz de usar o buff, aguarde " .. exhaustion.get(cid, storage) .. " segundos para usá-lo novamente.")
return false
end

exhaustion.set(cid, storage, cdtime)

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(magicEffect5555555, tempo2, tempo2, tempo*1000, cid)
                tempo2 = tempo2 + 200
        end
        setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
        doPlayerSendCancel(cid, "Voce já está com Buff.")
end
end

 

Editado por ZeeroBR (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
3 minutos atrás, KotZletY disse:

@ZeeroBR editei a resposta do vodkart e coloquei para remover o condition da bijuu.

 

Perfeito, agora tem mais uma coisa que estou quebrando a cabeça a uns dias, eu queria que quando eu utilizasse o buff da bijuu o meu buff normal saísse e não pudesse usar ele enquanto o buff da bijuu estiver ativo

Link para o post
Compartilhar em outros sites
10 minutos atrás, KotZletY disse:

@ZeeroBR editei a resposta do vodkart e coloquei para remover o condition da bijuu.

 

 

essa linha está certa?

 

doRemoveCondition(cid, CONDITION_ATTRIBUTES, jin_cond_id)

 

ao invès de 'cid' não é 'target'? 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo