Ir para conteúdo

2 efeitos no buff


SkyDarkyes

Posts Recomendados

Achei esse script de buff, tem como colocar pra aparecer 2 efeitos simultaneos no player?

local tempo = 120 -- tempo em segundos.
local effect = {316} -- effect no player
        
local ml = 20 -- quantos ira aumentar o skill de ML
local skillfist = 20 -- quantos ira aumentar o skill de Fist
local skillsword = 20 -- quantos ira aumentar o skill de Sword
local skillaxe = 20 -- quantos ira aumentar o skill de Axe
local skillclub = 20 -- quantos ira aumentar o skill de Club
local skilldistance = 20 -- quantos ira aumentar o skill de Distance
local skillshield = 20 -- 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 magicEffect316(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, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
doSendMagicEffect(position, effect[i])
                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(magicEffect316, tempo2, tempo2, tempo*1000, cid)
                tempo2 = tempo2 + 300
        end
        setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
else
        doPlayerSendCancel(cid, "Berseker ja esta ativado.")
end
Link para o comentário
Compartilhar em outros sites

Não é só la que configura os efeitos tem aqui

 

function magicEffect316(tempo2,tempo3,cid)

 

e aqui

addEvent(magicEffect316, tempo2, tempo2, tempo*1000, cid)
Link para o comentário
Compartilhar em outros sites

Não. Na função magicEffect316 há um loop que envia um efeito para cada instância da tabela effect.

 

for i=1, #effect do
    local position = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}
    doSendMagicEffect(position, effect[i])
end
Link para o comentário
Compartilhar em outros sites

Mas se eu não colocar os efeitos lá tbm, não aparece

 

@up

 

@up

Man, é como foi citado acima, basta colocar na tabela, pois já há um loop que trata essa tabela, segue script com algumas modificações:

 

local tempo = 120 -- tempo em segundos.
local effect = {316, 19, 18, 23, 25} -- effect no player
        
local ml = 20 -- quantos ira aumentar o skill de ML
local skillfist = 20 -- quantos ira aumentar o skill de Fist
local skillsword = 20 -- quantos ira aumentar o skill de Sword
local skillaxe = 20 -- quantos ira aumentar o skill de Axe
local skillclub = 20 -- quantos ira aumentar o skill de Club
local skilldistance = 20 -- quantos ira aumentar o skill de Distance
local skillshield = 20 -- 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 magicEffect316(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, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} doSendMagicEffect(position, effect[i])
			end
		end
	end
end
                                
function onCastSpell(cid, var)
	if getPlayerStorageValue(cid, 102053) ~= 1 or not getCreatureCondition(cid, CONDITION_REGENERATION, 1) then
		doCombat(cid, combat, var)
		tempo2 = 0
		while (tempo2 ~= (tempo*1000)) do
			addEvent(magicEffect316, tempo2, tempo2, tempo*1000, cid)
			tempo2 = tempo2 + 300
		end
		setPlayerStorageValue(cid, 102053,1) -- storage verifica transformado, quando = 1 player esta transformado.
	else
		doPlayerSendCancel(cid, "Berseker ja esta ativado.")
	end
	return true
end

 

Link para o comentário
Compartilhar em outros sites

@@SkyDarkyes,

 

magicEffect316 é uma função.

 

Dentro da função, tem um loop que percorre toda a tabela:

for i=1, #effect do

end

 

#effect retorna o tamando da tabela.

 

Seria a mesma coisa no meu script:

for i=1, 5 do

end

 

Então a cada posição da tabela, ele vai usar a função de efeito:

doSendMagicEffect(position, effect)

 

effect = pega o efeito de cada posição da tabela que o loop percorre...

 

Acho que você está tão certo na sua ideia, que não está testando a nossa...

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...