Postado Maio 25, 2018 7 anos Boa tarde Galerinha DO TK Como esta a Greve Por aeee??? bem vamos ao conteúdo depois de muito pesquisar atras de um script finalmente encontrei oque precisava..... mas nao esta muito do jeito que eu quero vcs conseguem modificar ele um pouco para min?? e o seguinte esse script ataca fire e e psychical e tem buff e heal gostaria de mudar onde e buff e heal para ataque de ice e veneno e quem funcionasse de longe tbm pois so funciona se o players estiver colado no monstro chega de conversa e vamos ao script -- Configuracoes do script local globalConfig = { storageID = 23000, } local burnBuff = { interval = 1, -- intervalo entre turnos damage = 5, -- dano de cada turno ticks = 5, -- quantidade de turnos effect = CONST_ME_HITBYFIRE, -- efeito } local energyBuff = { chance = 50, -- % de ativacao, 0~100 effect = CONST_ME_ENERGYHIT, -- efeito } local healBuff = { chance = 25, -- % de ativacao, 0~100 lifePercentage = 25, -- % de vida em cura, 0~100 effect = CONST_ME_SMALLPLANTS, -- efeito } local waterBuff = { cooldown = 30, -- tempo para ativar proximo cooldownStorage = 23001, -- storage interval = 1, -- intevalo entre turnos effect = CONST_ME_LOSEENERGY, -- efeito } -- Caso queira configurar damage/area, que não se apliquem nas configuracoes acima, -- modifique abaixo: -- FIRE EFFECT local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, burnBuff.effect) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) local condition = createConditionObject(CONDITION_FIRE) setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, burnBuff.ticks, burnBuff.interval, -burnBuff.damage) setCombatCondition(combat, condition) ------------------------------------------------------------------------ -- ENERGY EFFECT local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0) local arr = { {0, 0, 0}, {1, 3, 1}, {0, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat1, area) ------------------------------------------------------------------------ -- WATER EFFECT local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, waterBuff.effect) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0) local arr2 = { {1, 1, 1}, {1, 2, 1}, {1, 1, 1} } local area = createCombatArea(arr2) setCombatArea(combat2, area) ------------------------------------------------------------------------ function onAttack(cid, target) storageStatus = getPlayerStorageValue (cid, globalConfig.storageID) playerPos = getCreaturePosition (cid) targetPos = getCreaturePosition (target) if storageStatus == 0 then return true end -- FIM - jogador sem o buff if getDistanceBetween (playerPos, targetPos) > 1 then return true end -- FIM - jogador longe if storageStatus == 1 then -- Efeito Energy if math.random (0, 100) < energyBuff.chance then -- % de ativacao doCombat(cid, combat1, numberToVariant(target)) -- Dano em area doSendMagicEffect (targetPos, energyBuff.effect) -- efeito end elseif storageStatus == 2 then -- Efeito de Burn doCombatAreaCondition(cid, targetPos, nil, condition, burnBuff.effect) elseif storageStatus == 3 then -- Efeito de Heal if math.random (0, 100) < healBuff.chance then -- % de ativacao doCreatureAddHealth (cid, getCreatureMaxHealth(cid) * healBuff.lifePercentage / 100) -- formula de Heal doSendMagicEffect (playerPos, healBuff.effect) -- efeito end elseif storageStatus == 4 then if getPlayerStorageValue(cid, waterBuff.cooldownStorage) < os.time() then -- respeitando intervalo (para nao stackar 2 skills) setPlayerStorageValue (cid, waterBuff.cooldownStorage, os.time() + waterBuff.cooldown) -- cooldown set addEvent (waterCombat, waterBuff.interval * 1000, cid, waterBuff.cooldown) -- inicia evento waterCombat, responsavel pela skill end end return true end -- evento waterCombat function waterCombat (cid, times) if times == 0 then -- caso base de recursividade, quando termina o evento return true else -- caso recursivo doCombat (cid, combat2, numberToVariant(cid)) -- skill individual addEvent (waterCombat, waterBuff.interval * 1000, cid, times - 1) -- reativa o evento end end obrigado por ajudar
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.