local TARGET = nil local PLAYER_DISTANCE = 00 local GUN_SKILL_DAMAGE = 00 local GUN_ID = 00 local GUN_RARE = 00 local GUN_LEVEL = 00 local GUN_STAR = 00 local GUN_TYPE = 00 local RING_ID = 00 local RING_RARE = 00 local RING_LEVEL = 00 local RING_STAR = 00 local RING_CHANCE = 00 local DMG_MIN = 00 local DMG_MAX = 00 local PASS_LEVEL = 00 local DMG_FOR_LEVEL = 00 local SYSTEM_GUN = { [01] = {SPEED = 0300, DISTANCE = 04, SKILL = SKILL_CLUB, DMG_FOR_LEVEL = 01}, -- METRALHADORA [02] = {SPEED = 1000, DISTANCE = 05, SKILL = SKILL_AXE, DMG_FOR_LEVEL = 03}, -- PISTOLA [03] = {SPEED = 2000, DISTANCE = 06, SKILL = SKILL_SWORD, DMG_FOR_LEVEL = 02}, -- RIFLES [04] = {SPEED = 1500, DISTANCE = 03, SKILL = SKILL_FIST, DMG_FOR_LEVEL = 04}, -- ESPINGARDAS } local arr = { { {0, 0, 0, 0 ,0 ,0 ,0}, {0, 0, 0, 0 ,0 ,0 ,0}, {0, 0, 1, 1 ,1 ,0 ,0}, {0, 0, 1, 3 ,1 ,0 ,0}, {0, 0, 1, 1 ,1 ,0 ,0}, {0, 0, 0, 0 ,0 ,0 ,0}, {0, 0, 0, 0 ,0 ,0 ,0}, }, } local combat = Combat() combat:setParameter(COMBAT_PARAM_BLOCKARMOR, 1) local combatESP = Combat() combatESP:setArea(createCombatArea(arr[1])) local combatMET = Combat() combatMET:setParameter(COMBAT_PARAM_BLOCKARMOR, 1) local combatTRA = Combat() combatTRA:setParameter(COMBAT_PARAM_BLOCKARMOR, 1) local function onWeaponDamage() local DanoMinBase = 0 local DanoMaxBase = 0 DanoMinBase = _ITEMS[GUN_ID].MIN or 0 DanoMaxBase = _ITEMS[GUN_ID].MAX or 0 if GUN_TYPE == 01 then RARE_DMG = _RARIDADES[GUN_RARE].Arm else RARE_DMG = _RARIDADES[GUN_RARE].Gun end local DanoMinAtual = (DanoMinBase + (GUN_STAR * 10)) + (GUN_LEVEL * DMG_FOR_LEVEL) + RARE_DMG local DanoMaxAtual = (DanoMaxBase + (GUN_STAR * 10)) + (GUN_LEVEL * DMG_FOR_LEVEL) + RARE_DMG DMG_MIN = DanoMinAtual DMG_MAX = DanoMaxAtual end local function onGetPassivas(player, id) if player:getStorageValue(_SYSTEM.POINTS_ATR[01]) == id then PASS_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[08]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[02]) == id then PASS_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[09]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[03]) == id then PASS_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[10]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[04]) == id then PASS_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[11]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[05]) == id then PASS_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[12]) return true elseif player:getStorageValue(_SYSTEM.POINTS_ATR[06]) == id then PASS_LEVEL = player:getStorageValue(_SYSTEM.POINTS_ATR[13]) return true else PASS_LEVEL = 00 return false end end function onGetFormulaValues(player, level, maglevel) return -01, -01 end combatTRA:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onGetFormulaValues(player, level, maglevel) local min = player:getStorageValue(_PLAYER_INFO.ATK_MIN) or 01 local max = player:getStorageValue(_PLAYER_INFO.ATK_MAX) or 01 return -min, -max end combatMET:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onGetFormulaValues(player, level, maglevel) onWeaponDamage() local min = DMG_MIN local max = DMG_MAX -- ATRIBUTOS local cid = player:getId() local ATR_CRITICO = player:getStorageValue(_PLAYER_INFO.ATR_CRITICO) or 0 local ATR_TAXA = player:getStorageValue(_PLAYER_INFO.ATR_TAXA) or 0 local ATR_HP_CRITICO = player:getStorageValue(_PLAYER_INFO.ATR_HP_CRITICO) or 0 local ATR_DAMAGE = player:getStorageValue(_PLAYER_INFO.ATR_DAMAGE) or 0 local HP_CRIT_TAXA = player:getStorageValue(_PLAYER_INFO.HP_CRIT_TAXA) or 0 local DROP_TAXA = player:getStorageValue(_PLAYER_INFO.DROP_TAXA) or 0 local GOLD_ATR_TAX = player:getStorageValue(_PLAYER_INFO.GOLD_ATR_TAX) or 0 local EXP_CRIT = player:getStorageValue(_PLAYER_INFO.EXP_CRIT) or 0 local EXETA_RES = player:getStorageValue(_PLAYER_INFO.EXETA_RES) or 0 local CRIT_DIST = player:getStorageValue(_PLAYER_INFO.CRIT_DIST) or 0 local CRIT_EXP = player:getStorageValue(_PLAYER_INFO.CRIT_EXP) or 0 -- SYSTEM local GET_PLA_CRIT = player:getStorageValue(_SYSTEM.CRITICAL_VALUES[01]) or 0 local GET_PLA_TAXA = player:getStorageValue(_SYSTEM.CRITICAL_VALUES[02]) or 0 local GET_GOLD_TAXA = player:getStorageValue(_SYSTEM.CRITICAL_VALUES[03]) or 0 local STATUS_CRITICAL = player:getStorageValue(_SYSTEM.POINTS_ATR[06]) or 0 local AMULET_EFFECT = player:getStorageValue(_SYSTEM.AMULET_VALUES[00][02]) or 0 local CRIT_CHANCE = math.random(_SYSTEM.CRITICAL_CHANCE) - ATR_TAXA local CRITICAL_HEARTH = 20 * (player:getBaseMaxHealth() / 100) local RING_DMG_EXTRA = 10 local CRITICAL_DAMAGE = 05 + GET_PLA_CRIT local TAXA_DAMAGE = GET_PLA_TAXA + ATR_TAXA CRITICAL_DAMAGE = CRITICAL_DAMAGE + math.floor(STATUS_CRITICAL / 05) -- PASSIVAS local TotalPercent = 0 if onGetPassivas(player, 26) then -- Aumenta o seu Dano Crítico. local Percent = _PASSIVES[26].POWER_BASE + (_PASSIVES[26].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[26].CATEGORY then Percent = Percent + _PASSIVES[26].BOOST end end CRITICAL_DAMAGE = CRITICAL_DAMAGE + Percent end if onGetPassivas(player, 45) then -- Aumenta sua taxa crítica quando com vida abaixo de 30%. local HP_LOWER = 30 * (player:getBaseMaxHealth() / 100) if player:getHealth() < HP_LOWER then local Percent = _PASSIVES[45].POWER_BASE + (_PASSIVES[45].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[45].CATEGORY then Percent = Percent + _PASSIVES[45].BOOST end end TAXA_DAMAGE = TAXA_DAMAGE + Percent end end if onGetPassivas(player, 61) then -- Aumenta sua taxa crítica quando com vida acima de 70%. local HP_HIGH = 70 * (player:getBaseMaxHealth() / 100) if player:getHealth() > HP_HIGH then local Percent = _PASSIVES[61].POWER_BASE + (_PASSIVES[61].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[61].CATEGORY then Percent = Percent + _PASSIVES[61].BOOST end end TAXA_DAMAGE = TAXA_DAMAGE + Percent end end if onGetPassivas(player, 11) then -- Concede Skill de Rifle. local Percent = _PASSIVES[11].POWER_BASE + (_PASSIVES[11].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[11].CATEGORY then Percent = Percent + _PASSIVES[11].BOOST end end GUN_SKILL_DAMAGE = GUN_SKILL_DAMAGE + Percent end if onGetPassivas(player, 25) then -- Concede Skill de Pistola. local Percent = _PASSIVES[25].POWER_BASE + (_PASSIVES[25].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[25].CATEGORY then Percent = Percent + _PASSIVES[25].BOOST end end GUN_SKILL_DAMAGE = GUN_SKILL_DAMAGE + Percent end if onGetPassivas(player, 40) then -- Concede Skill de Metralhadora. local Percent = _PASSIVES[40].POWER_BASE + (_PASSIVES[40].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[40].CATEGORY then Percent = Percent + _PASSIVES[40].BOOST end end GUN_SKILL_DAMAGE = GUN_SKILL_DAMAGE + Percent end if onGetPassivas(player, 58) then -- Aumenta seu dano com METRALHADORA quando com HP acima de 70%. if GUN_TYPE == 01 then local HP_HIGH = 70 * (player:getBaseMaxHealth() / 100) if player:getHealth() > HP_HIGH then local Percent = _PASSIVES[58].POWER_BASE + (_PASSIVES[58].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[58].CATEGORY then Percent = Percent + _PASSIVES[58].BOOST end end TotalPercent = TotalPercent + Percent end end end if onGetPassivas(player, 59) then -- Aumenta seu dano com RIFLE quando com HP acima de 70%. if GUN_TYPE == 03 then local HP_HIGH = 70 * (player:getBaseMaxHealth() / 100) if player:getHealth() > HP_HIGH then local Percent = _PASSIVES[59].POWER_BASE + (_PASSIVES[59].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[59].CATEGORY then Percent = Percent + _PASSIVES[59].BOOST end end TotalPercent = TotalPercent + Percent end end end if onGetPassivas(player, 05) then -- Aumenta seu dano com PISTOLA quando com HP acima de 70%. if GUN_TYPE == 02 then local HP_HIGH = 70 * (player:getBaseMaxHealth() / 100) if player:getHealth() > HP_HIGH then local Percent = _PASSIVES[05].POWER_BASE + (_PASSIVES[05].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[05].CATEGORY then Percent = Percent + _PASSIVES[05].BOOST end end TotalPercent = TotalPercent + Percent end end end if onGetPassivas(player, 01) then -- Maior dano estando a 1 SQM de distancia. if PLAYER_DISTANCE == 01 then local Percent = _PASSIVES[01].POWER_BASE + (_PASSIVES[01].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[01].CATEGORY then Percent = Percent + _PASSIVES[01].BOOST end end TotalPercent = TotalPercent + Percent end end if onGetPassivas(player, 07) then -- Maior dano estando a 4 SQM ou mais do alvo. if PLAYER_DISTANCE >= 04 then local Percent = _PASSIVES[07].POWER_BASE + (_PASSIVES[07].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[07].CATEGORY then Percent = Percent + _PASSIVES[07].BOOST end end TotalPercent = TotalPercent + Percent end end if TARGET:isMonster() then if _MONSTER_LOOT[TARGET:getName()] then if _MONSTER_LOOT[TARGET:getName()][00].Type == "Constructos" then if onGetPassivas(player, 02) then local Percent = _PASSIVES[02].POWER_BASE + (_PASSIVES[02].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[02].CATEGORY then Percent = Percent + _PASSIVES[02].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 19 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Dimensionais" then if onGetPassivas(player, 13) then local Percent = _PASSIVES[13].POWER_BASE + (_PASSIVES[13].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[13].CATEGORY then Percent = Percent + _PASSIVES[13].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 22 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Mamiferos" then if onGetPassivas(player, 16) then local Percent = _PASSIVES[16].POWER_BASE + (_PASSIVES[16].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[16].CATEGORY then Percent = Percent + _PASSIVES[16].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 16 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Gigantes" then if onGetPassivas(player, 17) then local Percent = _PASSIVES[17].POWER_BASE + (_PASSIVES[17].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[17].CATEGORY then Percent = Percent + _PASSIVES[17].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 18 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Dragon" then if onGetPassivas(player, 20) then local Percent = _PASSIVES[20].POWER_BASE + (_PASSIVES[20].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[20].CATEGORY then Percent = Percent + _PASSIVES[20].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 09 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Demon" then if onGetPassivas(player, 30) then local Percent = _PASSIVES[30].POWER_BASE + (_PASSIVES[30].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[30].CATEGORY then Percent = Percent + _PASSIVES[30].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 17 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Humanoide" then if onGetPassivas(player, 32) then local Percent = _PASSIVES[32].POWER_BASE + (_PASSIVES[32].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[32].CATEGORY then Percent = Percent + _PASSIVES[32].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 21 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Magica" then if onGetPassivas(player, 37) then local Percent = _PASSIVES[37].POWER_BASE + (_PASSIVES[37].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[37].CATEGORY then Percent = Percent + _PASSIVES[37].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 11 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Repteis" then if onGetPassivas(player, 39) then local Percent = _PASSIVES[39].POWER_BASE + (_PASSIVES[39].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[39].CATEGORY then Percent = Percent + _PASSIVES[39].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 12 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Vermes" then if onGetPassivas(player, 41) then local Percent = _PASSIVES[41].POWER_BASE + (_PASSIVES[41].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[41].CATEGORY then Percent = Percent + _PASSIVES[41].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 15 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Boss" then if onGetPassivas(player, 44) then local Percent = _PASSIVES[44].POWER_BASE + (_PASSIVES[44].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[44].CATEGORY then Percent = Percent + _PASSIVES[44].BOOST end end TotalPercent = TotalPercent + Percent end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Aquaticos" then if onGetPassivas(player, 46) then local Percent = _PASSIVES[46].POWER_BASE + (_PASSIVES[46].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[46].CATEGORY then Percent = Percent + _PASSIVES[46].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 13 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Morto-Vivo" then if onGetPassivas(player, 49) then local Percent = _PASSIVES[49].POWER_BASE + (_PASSIVES[49].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[49].CATEGORY then Percent = Percent + _PASSIVES[49].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 14 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end end end end -- FORMULA DE SKILLS if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 00 if GUN_TYPE == 01 then -- METRALHADORA ID_BONUS = 03 elseif GUN_TYPE == 02 then -- PISTOLA ID_BONUS = 02 elseif GUN_TYPE == 03 then -- RIFLE ID_BONUS = 05 end if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then GUN_SKILL_DAMAGE = GUN_SKILL_DAMAGE + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- CRITICAL_DAMAGE ID_BONUS = 06 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then CRITICAL_DAMAGE = CRITICAL_DAMAGE + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- TAXA CRITICA ID_BONUS = 07 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then TAXA_DAMAGE = TAXA_DAMAGE + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- DANO MINIMO ID_BONUS = 39 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- DANO MAXIMO ID_BONUS = 41 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then max = max + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- AMPLIFICAÇÃO DE DISPARO ID_BONUS = 42 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end local NEW_DMG = (GUN_SKILL_DAMAGE + min) if NEW_DMG > max then min = max max = NEW_DMG else min = NEW_DMG end if EXETA_RES > 0 then doChallengeCreature(player, TARGET) end if GOLD_ATR_TAX > 0 then player:setStorageValue(_SYSTEM.ATR_VALUES[03], GOLD_ATR_TAX) else player:setStorageValue(_SYSTEM.ATR_VALUES[03], 00) end if DROP_TAXA > 0 then player:setStorageValue(_SYSTEM.ATR_VALUES[02], DROP_TAXA) else player:setStorageValue(_SYSTEM.ATR_VALUES[02], 00) end if player:getHealth() <= CRITICAL_HEARTH and HP_CRIT_TAXA > 0 then CRIT_CHANCE = CRIT_CHANCE - HP_CRIT_TAXA end if player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_01) > 0 then if player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_01) == 7007 then CRIT_CHANCE = CRIT_CHANCE - 05 end end --DANO CRITICO E TAXA if CRIT_CHANCE <= TAXA_DAMAGE then local CRITICAL_PERCENT = 0 local TARGET_POS = TARGET:getPosition() TARGET_POS:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then onPlayerDesafios(player, 33, 01) end -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if GUN_TYPE == 02 then -- [[DESAFIO] Crítico com Pistola.] onPlayerDesafios(player, 01, 01) elseif GUN_TYPE == 01 then -- [[DESAFIO] Crítico com Metralhadora.] onPlayerDesafios(player, 02, 01) elseif GUN_TYPE == 03 then -- [[DESAFIO] Crítico com Rifle.] onPlayerDesafios(player, 03, 01) end end if ATR_CRITICO > 0 then CRITICAL_PERCENT = ATR_CRITICO * (CRITICAL_DAMAGE / 100) end if ATR_HP_CRITICO > 0 then local HP_CRITICAL = math.floor(ATR_HP_CRITICO * (player:getBaseMaxHealth() / 100)) doTargetCombat(0, player, COMBAT_HEALING, HP_CRITICAL, HP_CRITICAL) end if CRIT_DIST > 0 then if PLAYER_DISTANCE >= 04 then local condition = Condition(CONDITION_HASTE) condition:setParameter(CONDITION_PARAM_TICKS, 10000) condition:setFormula(0.0, CRIT_DIST, 0.0, CRIT_DIST) player:addCondition(condition) end end if RING_ID > 0 then if RING_ID == 7003 then -- Ao dar Critical Damage, chance de curar 05% da vida. if RING_CHANCE <= _AMULET_CHANCE_MODE[RING_RARE] then local HP_PERCENT = math.floor(05 * (player:getBaseMaxHealth() / 100)) doTargetCombat(0, player, COMBAT_HEALING, HP_PERCENT, HP_PERCENT) end end if RING_ID == 7006 then -- Aumenta seu Dano Crítico em + 50%. CRITICAL_PERCENT = CRITICAL_PERCENT + 50 end end min = min + CRITICAL_DAMAGE + CRITICAL_PERCENT max = max + CRITICAL_DAMAGE + CRITICAL_PERCENT if CRIT_EXP > 0 then if TARGET:getName() ~= "Target" then player:addExperience((max/2), true, true) end end if onGetPassivas(player, 08) then -- Causa status POISON no alvo ao dar Dano Critico. local Percent = _PASSIVES[08].POWER_BASE + (_PASSIVES[08].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[08].CATEGORY then Percent = Percent + _PASSIVES[08].BOOST end end local condition = createConditionObject(CONDITION_POISON) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(09) end if onGetPassivas(player, 22) then -- Causa status ENERGY no alvo ao dar Dano Critico. local Percent = _PASSIVES[22].POWER_BASE + (_PASSIVES[22].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[22].CATEGORY then Percent = Percent + _PASSIVES[22].BOOST end end local condition = createConditionObject(CONDITION_ENERGY) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(12) end if onGetPassivas(player, 35) then -- Causa status FIRE no alvo ao dar Dano Critico. local Percent = _PASSIVES[35].POWER_BASE + (_PASSIVES[35].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[35].CATEGORY then Percent = Percent + _PASSIVES[35].BOOST end end local condition = createConditionObject(CONDITION_FIRE) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(16) end if onGetPassivas(player, 42) then -- Causa status DEATH no alvo ao dar Dano Critico. local Percent = _PASSIVES[42].POWER_BASE + (_PASSIVES[42].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[42].CATEGORY then Percent = Percent + _PASSIVES[42].BOOST end end local condition = createConditionObject(CONDITION_CURSED) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(18) end if onGetPassivas(player, 24) then -- Cura um pouco de HP ao dar Dano Crítico. local Percent = _PASSIVES[24].POWER_BASE + (_PASSIVES[24].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[24].CATEGORY then Percent = Percent + _PASSIVES[24].BOOST end end doTargetCombat(0, player, COMBAT_HEALING, Percent, Percent) player:getPosition():sendMagicEffect(15) end end --AMULETS if AMULET_EFFECT > 00 then if AMULET_EFFECT == 11 then -- Melhora o Dano com Pistolas if GUN_TYPE == 02 then min = min + (RING_DMG_EXTRA * (min / 100)) max = max + (RING_DMG_EXTRA * (min / 100)) end end if AMULET_EFFECT == 12 then -- Melhora o Dano com Metralhadoras if GUN_TYPE == 01 then min = min + (RING_DMG_EXTRA * (min / 100)) max = max + (RING_DMG_EXTRA * (min / 100)) end end if AMULET_EFFECT == 14 then -- Melhora o Dano com Rifles if GUN_TYPE == 03 then min = min + (RING_DMG_EXTRA * (min / 100)) max = max + (RING_DMG_EXTRA * (min / 100)) end end if AMULET_EFFECT == 15 then min = min + 25 end if AMULET_EFFECT == 16 then max = max + 25 end end -- ATRIBUTO if ATR_DAMAGE > 0 then if player:getStorageValue(_SYSTEM.ATR_VALUES[01]) == 01 then local AcsMaxDamage = math.floor(ATR_DAMAGE * (max / 100)) min = max + AcsMaxDamage max = max + AcsMaxDamage player:setStorageValue(_SYSTEM.ATR_VALUES[01], 00) end else player:setStorageValue(_SYSTEM.ATR_VALUES[01], 00) end -- MAESTRIA if player:getStorageValue(_SYSTEM.MAESTRIA[01]) == 03 then if player:getStorageValue(_SYSTEM.MAESTRIA[04]) > 0 then min = max max = max * 2 player:getPosition():sendMagicEffect(178) end end -- ESPECIALISTA if player:getStorageValue(_SYSTEM.WARZONE) < 01 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) > 00 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) ~= 03 then local ESP_DMG = { [-1] = 01; [00] = 10; [01] = 15; [02] = 20; [03] = 25; [04] = 30; [05] = 35; } if GUN_TYPE == 02 then -- Pistolas if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) == 01 then local EspLevel = player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) local EspAtkMin = ESP_DMG[EspLevel] * (min / 100) local EspAtkMax = ESP_DMG[EspLevel] * (max / 100) min = min + EspAtkMin max = max + EspAtkMax end end if GUN_TYPE == 01 then -- Metralhadoras if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) == 02 then local EspLevel = player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) local EspAtkMin = (ESP_DMG[EspLevel] / 2) * (min / 100) local EspAtkMax = (ESP_DMG[EspLevel] / 2) * (max / 100) min = min + EspAtkMin max = max + EspAtkMax end end if GUN_TYPE == 03 then -- Rifles if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) == 04 then local EspLevel = player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) local EspAtkMin = ESP_DMG[EspLevel] * (min / 100) local EspAtkMax = ESP_DMG[EspLevel] * (max / 100) min = min + EspAtkMin max = max + EspAtkMax end end end end end if _CHEATS.FURIUS_SHOOTING then min = min + 10000 max = max + 10000 end -- WARZONE if Game.getStorageValue(_GLOBAL_RANDOM.WARZONE.STORAGE_START_WARZONE) == 01 then if player:getStorageValue(_SYSTEM.WARZONE) > 00 then if GUN_TYPE ~= 01 then min = min * 2 max = max * 2 end end end player:setStorageValue(_PLAYER_INFO.ATK_MIN, min) player:setStorageValue(_PLAYER_INFO.ATK_MAX, max) return -min, -max end combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onGetFormulaValues(player, level, maglevel) onWeaponDamage() local min = DMG_MIN local max = DMG_MAX local cid = player:getId() local DMG_CRITICO = false -- ATRIBUTOS local ATR_CRITICO = player:getStorageValue(_PLAYER_INFO.ATR_CRITICO) or 0 local ATR_TAXA = player:getStorageValue(_PLAYER_INFO.ATR_TAXA) or 0 local ATR_HP_CRITICO = player:getStorageValue(_PLAYER_INFO.ATR_HP_CRITICO) or 0 local ATR_DAMAGE = player:getStorageValue(_PLAYER_INFO.ATR_DAMAGE) or 0 local HP_CRIT_TAXA = player:getStorageValue(_PLAYER_INFO.HP_CRIT_TAXA) or 0 local DROP_TAXA = player:getStorageValue(_PLAYER_INFO.DROP_TAXA) or 0 local GOLD_ATR_TAX = player:getStorageValue(_PLAYER_INFO.GOLD_ATR_TAX) or 0 local EXP_CRIT = player:getStorageValue(_PLAYER_INFO.EXP_CRIT) or 0 local EXETA_RES = player:getStorageValue(_PLAYER_INFO.EXETA_RES) or 0 local CRIT_DIST = player:getStorageValue(_PLAYER_INFO.CRIT_DIST) or 0 local CRIT_EXP = player:getStorageValue(_PLAYER_INFO.CRIT_EXP) or 0 -- SYSTEM local GET_PLA_CRIT = player:getStorageValue(_SYSTEM.CRITICAL_VALUES[01]) or 0 local GET_PLA_TAXA = player:getStorageValue(_SYSTEM.CRITICAL_VALUES[02]) or 0 local GET_GOLD_TAXA = player:getStorageValue(_SYSTEM.CRITICAL_VALUES[03]) or 0 local STATUS_CRITICAL = player:getStorageValue(_SYSTEM.POINTS_ATR[06]) or 0 local AMULET_EFFECT = player:getStorageValue(_SYSTEM.AMULET_VALUES[00][02]) or 0 local CRIT_CHANCE = math.random(_SYSTEM.CRITICAL_CHANCE) - ATR_TAXA local CRITICAL_HEARTH = 20 * (player:getBaseMaxHealth() / 100) local RING_DMG_EXTRA = 10 local TARGET_POS = TARGET:getPosition() local CRITICAL_DAMAGE = 05 + GET_PLA_CRIT local TAXA_DAMAGE = 05 + GET_PLA_TAXA + ATR_TAXA CRITICAL_DAMAGE = CRITICAL_DAMAGE + math.floor(STATUS_CRITICAL / 05) -- PASSIVAS local TotalPercent = 0 if onGetPassivas(player, 26) then -- Aumenta o seu Dano Crítico. local Percent = _PASSIVES[26].POWER_BASE + (_PASSIVES[26].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[26].CATEGORY then Percent = Percent + _PASSIVES[26].BOOST end end CRITICAL_DAMAGE = CRITICAL_DAMAGE + Percent end if onGetPassivas(player, 45) then -- Aumenta sua taxa crítica quando com vida abaixo de 30%. local HP_LOWER = 30 * (player:getBaseMaxHealth() / 100) if player:getHealth() < HP_LOWER then local Percent = _PASSIVES[45].POWER_BASE + (_PASSIVES[45].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[45].CATEGORY then Percent = Percent + _PASSIVES[45].BOOST end end TAXA_DAMAGE = TAXA_DAMAGE + Percent end end if onGetPassivas(player, 61) then -- Aumenta sua taxa crítica quando com vida acima de 70%. local HP_HIGH = 70 * (player:getBaseMaxHealth() / 100) if player:getHealth() > HP_HIGH then local Percent = _PASSIVES[61].POWER_BASE + (_PASSIVES[61].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[61].CATEGORY then Percent = Percent + _PASSIVES[61].BOOST end end TAXA_DAMAGE = TAXA_DAMAGE + Percent end end if onGetPassivas(player, 04) then -- Concede Skill de Espingarda. local Percent = _PASSIVES[04].POWER_BASE + (_PASSIVES[04].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[04].CATEGORY then Percent = Percent + _PASSIVES[04].BOOST end end GUN_SKILL_DAMAGE = GUN_SKILL_DAMAGE + Percent end if onGetPassivas(player, 60) then -- Aumenta seu dano com ESPINGARDA quando com HP acima de 70%. if GUN_TYPE == 01 then local HP_HIGH = 70 * (player:getBaseMaxHealth() / 100) if player:getHealth() > HP_HIGH then local Percent = _PASSIVES[60].POWER_BASE + (_PASSIVES[60].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[60].CATEGORY then Percent = Percent + _PASSIVES[60].BOOST end end TotalPercent = TotalPercent + Percent end end end if onGetPassivas(player, 01) then -- Maior dano estando a 1 SQM de distancia. if PLAYER_DISTANCE == 01 then local Percent = _PASSIVES[01].POWER_BASE + (_PASSIVES[01].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[01].CATEGORY then Percent = Percent + _PASSIVES[01].BOOST end end TotalPercent = TotalPercent + Percent end end if onGetPassivas(player, 07) then -- Maior dano estando a 4 SQM ou mais do alvo. if PLAYER_DISTANCE >= 04 then local Percent = _PASSIVES[07].POWER_BASE + (_PASSIVES[07].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[07].CATEGORY then Percent = Percent + _PASSIVES[07].BOOST end end TotalPercent = TotalPercent + Percent end end if TARGET:isMonster() then if _MONSTER_LOOT[TARGET:getName()] then if _MONSTER_LOOT[TARGET:getName()][00].Type == "Constructos" then if onGetPassivas(player, 02) then local Percent = _PASSIVES[02].POWER_BASE + (_PASSIVES[02].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[02].CATEGORY then Percent = Percent + _PASSIVES[02].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 19 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Dimensionais" then if onGetPassivas(player, 13) then local Percent = _PASSIVES[13].POWER_BASE + (_PASSIVES[13].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[13].CATEGORY then Percent = Percent + _PASSIVES[13].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 22 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Mamiferos" then if onGetPassivas(player, 16) then local Percent = _PASSIVES[16].POWER_BASE + (_PASSIVES[16].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[16].CATEGORY then Percent = Percent + _PASSIVES[16].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 16 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Gigantes" then if onGetPassivas(player, 17) then local Percent = _PASSIVES[17].POWER_BASE + (_PASSIVES[17].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[17].CATEGORY then Percent = Percent + _PASSIVES[17].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 18 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Dragon" then if onGetPassivas(player, 20) then local Percent = _PASSIVES[20].POWER_BASE + (_PASSIVES[20].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[20].CATEGORY then Percent = Percent + _PASSIVES[20].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 09 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Demon" then if onGetPassivas(player, 30) then local Percent = _PASSIVES[30].POWER_BASE + (_PASSIVES[30].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[30].CATEGORY then Percent = Percent + _PASSIVES[30].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 17 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Humanoide" then if onGetPassivas(player, 32) then local Percent = _PASSIVES[32].POWER_BASE + (_PASSIVES[32].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[32].CATEGORY then Percent = Percent + _PASSIVES[32].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 21 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Magica" then if onGetPassivas(player, 37) then local Percent = _PASSIVES[37].POWER_BASE + (_PASSIVES[37].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[37].CATEGORY then Percent = Percent + _PASSIVES[37].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 11 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Repteis" then if onGetPassivas(player, 39) then local Percent = _PASSIVES[39].POWER_BASE + (_PASSIVES[39].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[39].CATEGORY then Percent = Percent + _PASSIVES[39].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 12 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Vermes" then if onGetPassivas(player, 41) then local Percent = _PASSIVES[41].POWER_BASE + (_PASSIVES[41].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[41].CATEGORY then Percent = Percent + _PASSIVES[41].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 15 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Boss" then if onGetPassivas(player, 44) then local Percent = _PASSIVES[44].POWER_BASE + (_PASSIVES[44].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[44].CATEGORY then Percent = Percent + _PASSIVES[44].BOOST end end TotalPercent = TotalPercent + Percent end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Aquaticos" then if onGetPassivas(player, 46) then local Percent = _PASSIVES[46].POWER_BASE + (_PASSIVES[46].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[46].CATEGORY then Percent = Percent + _PASSIVES[46].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 13 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end elseif _MONSTER_LOOT[TARGET:getName()][00].Type == "Morto-Vivo" then if onGetPassivas(player, 49) then local Percent = _PASSIVES[49].POWER_BASE + (_PASSIVES[49].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) min = min + math.floor(Percent * (min / 100)) max = max + math.floor(Percent * (min / 100)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[49].CATEGORY then Percent = Percent + _PASSIVES[49].BOOST end end TotalPercent = TotalPercent + Percent end if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 14 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (min / 100)) max = max + math.floor(_BONUS_EXTRA_TABLE[cid][ID_BONUS] * (max / 100)) end end end end end -- FORMULA DE SKILLS if _BONUS_EXTRA_TABLE[cid] then local ID_BONUS = 04 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then GUN_SKILL_DAMAGE = GUN_SKILL_DAMAGE + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- CRITICAL_DAMAGE ID_BONUS = 06 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then CRITICAL_DAMAGE = CRITICAL_DAMAGE + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- TAXA CRITICA ID_BONUS = 07 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then TAXA_DAMAGE = TAXA_DAMAGE + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- DANO MINIMO ID_BONUS = 39 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then min = min + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end -- DANO MAXIMO ID_BONUS = 41 if _BONUS_EXTRA_TABLE[cid][ID_BONUS] > 00 then max = max + _BONUS_EXTRA_TABLE[cid][ID_BONUS] end end local NEW_DMG = (GUN_SKILL_DAMAGE + min) if NEW_DMG > max then min = max max = NEW_DMG else min = NEW_DMG end if EXETA_RES > 0 then doChallengeCreature(player, TARGET) end if GOLD_ATR_TAX > 0 then player:setStorageValue(_SYSTEM.ATR_VALUES[03], GOLD_ATR_TAX) else player:setStorageValue(_SYSTEM.ATR_VALUES[03], 00) end if DROP_TAXA > 0 then player:setStorageValue(_SYSTEM.ATR_VALUES[02], DROP_TAXA) else player:setStorageValue(_SYSTEM.ATR_VALUES[02], 00) end if player:getHealth() <= CRITICAL_HEARTH and HP_CRIT_TAXA > 0 then CRIT_CHANCE = CRIT_CHANCE - HP_CRIT_TAXA end if player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_01) > 0 then if player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_01) == 7007 then CRIT_CHANCE = CRIT_CHANCE - 05 end end --DANO CRITICO E TAXA if CRIT_CHANCE <= TAXA_DAMAGE then local CRITICAL_PERCENT = 0 DMG_CRITICO = true -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then onPlayerDesafios(player, 33, 01) end -- DESAFIO if player:getStorageValue(_DESAFIOS[00].DESAFIO_ID) > 00 then if GUN_TYPE == 04 then -- [[DESAFIO] Crítico com Espingarda.] onPlayerDesafios(player, 04, 01) end end if ATR_CRITICO > 0 then CRITICAL_PERCENT = ATR_CRITICO * (CRITICAL_DAMAGE / 100) end if ATR_HP_CRITICO > 0 then local HP_CRITICAL = math.floor(ATR_HP_CRITICO * (player:getBaseMaxHealth() / 100)) doTargetCombat(0, player, COMBAT_HEALING, HP_CRITICAL, HP_CRITICAL) end if CRIT_DIST > 0 then if PLAYER_DISTANCE >= 04 then local condition = Condition(CONDITION_HASTE) condition:setParameter(CONDITION_PARAM_TICKS, 10000) condition:setFormula(0.0, CRIT_DIST, 0.0, CRIT_DIST) player:addCondition(condition) end end if RING_ID > 0 then if RING_ID == 7003 then -- Ao dar Critical Damage, chance de curar 05% da vida. if RING_CHANCE <= _AMULET_CHANCE_MODE[RING_RARE] then local HP_PERCENT = math.floor(05 * (player:getBaseMaxHealth() / 100)) doTargetCombat(0, player, COMBAT_HEALING, HP_PERCENT, HP_PERCENT) end end if RING_ID == 7006 then -- Aumenta seu Dano Crítico em + 50%. CRITICAL_PERCENT = CRITICAL_PERCENT + 50 end end min = min + CRITICAL_DAMAGE + CRITICAL_PERCENT max = max + CRITICAL_DAMAGE + CRITICAL_PERCENT if CRIT_EXP > 0 then if TARGET:getName() ~= "Target" then player:addExperience((max/2), true, true) end end if onGetPassivas(player, 08) then -- Causa status POISON no alvo ao dar Dano Critico. local Percent = _PASSIVES[08].POWER_BASE + (_PASSIVES[08].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[08].CATEGORY then Percent = Percent + _PASSIVES[08].BOOST end end local condition = createConditionObject(CONDITION_POISON) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(09) end if onGetPassivas(player, 22) then -- Causa status ENERGY no alvo ao dar Dano Critico. local Percent = _PASSIVES[22].POWER_BASE + (_PASSIVES[22].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[22].CATEGORY then Percent = Percent + _PASSIVES[22].BOOST end end local condition = createConditionObject(CONDITION_ENERGY) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(12) end if onGetPassivas(player, 35) then -- Causa status FIRE no alvo ao dar Dano Critico. local Percent = _PASSIVES[35].POWER_BASE + (_PASSIVES[35].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[35].CATEGORY then Percent = Percent + _PASSIVES[35].BOOST end end local condition = createConditionObject(CONDITION_FIRE) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(16) end if onGetPassivas(player, 42) then -- Causa status DEATH no alvo ao dar Dano Critico. local Percent = _PASSIVES[42].POWER_BASE + (_PASSIVES[42].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[42].CATEGORY then Percent = Percent + _PASSIVES[42].BOOST end end local condition = createConditionObject(CONDITION_CURSED) setConditionParam(condition, CONDITION_PARAM_PERIODICDAMAGE, -Percent) setConditionParam(condition, CONDITION_PARAM_TICKS, ((Percent * 100) / 02)) setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 1000) TARGET:addCondition(condition) TARGET:getPosition():sendMagicEffect(18) end if onGetPassivas(player, 24) then -- Cura um pouco de HP ao dar Dano Crítico. local Percent = _PASSIVES[24].POWER_BASE + (_PASSIVES[24].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[24].CATEGORY then Percent = Percent + _PASSIVES[24].BOOST end end doTargetCombat(0, player, COMBAT_HEALING, Percent, Percent) player:getPosition():sendMagicEffect(15) end end --AMULETS if AMULET_EFFECT > 00 then if AMULET_EFFECT == 13 then -- Melhora o Dano com Espingardas if GUN_TYPE == 04 then min = min + (RING_DMG_EXTRA * (min / 100)) max = max + (RING_DMG_EXTRA * (min / 100)) end end if AMULET_EFFECT == 15 then min = min + 25 end if AMULET_EFFECT == 16 then max = max + 25 end end -- ATRIBUTO if ATR_DAMAGE > 0 then if player:getStorageValue(_SYSTEM.ATR_VALUES[01]) == 01 then local AcsMaxDamage = math.floor(ATR_DAMAGE * (max / 100)) min = max + AcsMaxDamage max = max + AcsMaxDamage player:setStorageValue(_SYSTEM.ATR_VALUES[01], 00) end else player:setStorageValue(_SYSTEM.ATR_VALUES[01], 00) end -- MAESTRIA if player:getStorageValue(_SYSTEM.MAESTRIA[01]) == 03 then if player:getStorageValue(_SYSTEM.MAESTRIA[04]) > 0 then min = max max = max * 2 player:getPosition():sendMagicEffect(178) end end -- ESPECIALISTA if player:getStorageValue(_SYSTEM.WARZONE) < 01 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) > 00 then if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) ~= 03 then local ESP_DMG = { [-1] = 01; [00] = 10; [01] = 15; [02] = 20; [03] = 25; [04] = 30; [05] = 35; } if GUN_TYPE == 04 then -- Espingardas if player:getStorageValue(_SYSTEM.ESPECIALISTA[01]) == 01 then local EspLevel = player:getStorageValue(_SYSTEM.ESPECIALISTA[02]) local EspAtkMin = ESP_DMG[EspLevel] * (min / 100) local EspAtkMax = ESP_DMG[EspLevel] * (max / 100) min = min + EspAtkMin max = max + EspAtkMax end end end end end if _CHEATS.FURIUS_SHOOTING then min = min + 10000 max = max + 10000 end if Game.getStorageValue(_GLOBAL_RANDOM.WARZONE.STORAGE_START_WARZONE) == 01 then if player:getStorageValue(_SYSTEM.WARZONE) > 00 then min = min * 2 max = max * 2 end end if DMG_CRITICO then local Pos1, Tile1 = Position(TARGET_POS.x, TARGET_POS.y - 1, TARGET_POS.z), Tile(TARGET_POS.x, TARGET_POS.y - 1, TARGET_POS.z) local Pos2, Tile2 = Position(TARGET_POS.x + 1, TARGET_POS.y - 1, TARGET_POS.z), Tile(TARGET_POS.x + 1, TARGET_POS.y - 1, TARGET_POS.z) local Pos3, Tile3 = Position(TARGET_POS.x + 1, TARGET_POS.y, TARGET_POS.z), Tile(TARGET_POS.x + 1, TARGET_POS.y, TARGET_POS.z) local Pos4, Tile4 = Position(TARGET_POS.x + 1, TARGET_POS.y + 1, TARGET_POS.z), Tile(TARGET_POS.x + 1, TARGET_POS.y + 1, TARGET_POS.z) local Pos5, Tile5 = Position(TARGET_POS.x, TARGET_POS.y + 1, TARGET_POS.z), Tile(TARGET_POS.x, TARGET_POS.y + 1, TARGET_POS.z) local Pos6, Tile6 = Position(TARGET_POS.x - 1, TARGET_POS.y + 1, TARGET_POS.z), Tile(TARGET_POS.x - 1, TARGET_POS.y + 1, TARGET_POS.z) local Pos7, Tile7 = Position(TARGET_POS.x - 1, TARGET_POS.y, TARGET_POS.z), Tile(TARGET_POS.x - 1, TARGET_POS.y, TARGET_POS.z) local Pos8, Tile8 = Position(TARGET_POS.x - 1, TARGET_POS.y - 1, TARGET_POS.z), Tile(TARGET_POS.x - 1, TARGET_POS.y - 1, TARGET_POS.z) TARGET_POS:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, TARGET, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) if Tile1 then local Target_1 = Tile1:getTopCreature() if Target_1 then if Target_1:isPlayer() then if player:hasSecureMode() == true or Tile(Target_1:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_1:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos1:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_1, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos1:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_1, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile2 then local Target_2 = Tile2:getTopCreature() if Target_2 then if Target_2:isPlayer() then if player:hasSecureMode() == true or Tile(Target_2:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_2:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos2:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_2, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos2:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_2, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile3 then local Target_3 = Tile3:getTopCreature() if Target_3 then if Target_3:isPlayer() then if player:hasSecureMode() == true or Tile(Target_3:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_3:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos3:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_3, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos3:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_3, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile4 then local Target_4 = Tile4:getTopCreature() if Target_4 then if Target_4:isPlayer() then if player:hasSecureMode() == true or Tile(Target_4:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_4:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos4:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_4, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos4:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_4, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile5 then local Target_5 = Tile5:getTopCreature() if Target_5 then if Target_5:isPlayer() then if player:hasSecureMode() == true or Tile(Target_5:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_5:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos5:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_5, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos5:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_5, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile6 then local Target_6 = Tile6:getTopCreature() if Target_6 then if Target_6:isPlayer() then if player:hasSecureMode() == true or Tile(Target_6:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_6:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos6:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_6, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos6:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_6, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile7 then local Target_7 = Tile7:getTopCreature() if Target_7 then if Target_7:isPlayer() then if player:hasSecureMode() == true or Tile(Target_7:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_7:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos7:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_7, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos7:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_7, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end if Tile8 then local Target_8 = Tile8:getTopCreature() if Target_8 then if Target_8:isPlayer() then if player:hasSecureMode() == true or Tile(Target_8:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) or player:getStorageValue(_PVP_ROOM[00].PVP_SALA_ID) > 00 and player:getStorageValue(_PVP_ROOM[00].TIME_ID) == Target_8:getStorageValue(_PVP_ROOM[00].TIME_ID) then else Pos8:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_8, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end else Pos8:sendMagicEffect(CONST_ME_CRITICAL_DAMAGE) doTargetCombat(player, Target_8, COMBAT_PHYSICALDAMAGE, -min, -max, CONST_ME_HITAREA) end end end return true end return -min, -max end combatESP:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(player, variant) TARGET = Creature(variant:getNumber()) GUN_ID = player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01) local LEVEL_FOR_RARE = 05 local LEVEL_FOR_LEVEL = 04 local EVENT_VALUE = 00 if GUN_ID > 0 then GUN_TYPE = _ITEMS[GUN_ID].GUN_TYPE DISTANCE_TARGET = 05 if TARGET then if TARGET:getName() == "Target" then local TARGET_POS = TARGET:getPosition() if player:getPosition():getDistance(TARGET_POS) > DISTANCE_TARGET then player:sendCancelMessage("Alvo muito longe.") return false end player:setAttackSpeed(800) player:addSkillTries(SYSTEM_GUN[GUN_TYPE].SKILL, 01) combatTRA:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_PHYSICALDAMAGE) combatTRA:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) combatTRA:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 41) combatTRA:execute(player, variant) return false end else local variantTarget = player:getTarget() local targetPos = variantTarget:getPosition() if variantTarget:getName() == "Target" then targetPos:sendMagicEffect(10) doTargetCombat(player, variantTarget, COMBAT_PHYSICALDAMAGE, -1, -1, CONST_ME_HITAREA) return false end end player:setAttackSpeed(300) GUN_RARE = player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_02) or 0 GUN_LEVEL = player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07) or 0 GUN_STAR = player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03) or 0 GUN_AMMO = player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10) or 0 RING_ID = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_01) or 0 RING_RARE = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_02) or 0 RING_STAR = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_03) or 0 RING_LEVEL = player:getStorageValue(_SYSTEM.INVENTARIO[07].UID_05) or 0 GUN_BASE_LEVEL = _ITEMS[GUN_ID].LEVEL if GUN_RARE < 00 then GUN_RARE = 00 end if GUN_LEVEL < 00 then GUN_LEVEL = 00 end if GUN_STAR < 00 then GUN_STAR = 00 end REQUISITO_LEVEL = GUN_BASE_LEVEL + (GUN_RARE * LEVEL_FOR_RARE) + (GUN_LEVEL * LEVEL_FOR_LEVEL) + ((GUN_STAR * 10) * LEVEL_FOR_LEVEL) if player:getStorageValue(_SYSTEM.WARZONE) > 00 then REQUISITO_LEVEL = 01 end if player:getLevel() >= REQUISITO_LEVEL then if GUN_AMMO < 01 then player:getPosition():sendMagicEffect(03) return false end player:setAttackSpeed(SYSTEM_GUN[GUN_TYPE].SPEED) DISTANCE_TARGET = SYSTEM_GUN[GUN_TYPE].DISTANCE DMG_FOR_LEVEL = SYSTEM_GUN[GUN_TYPE].DMG_FOR_LEVEL GUN_SKILL_DAMAGE = player:getSkillLevel(SYSTEM_GUN[GUN_TYPE].SKILL) -- EVENTOS if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_ID) == 12 then if Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_5) == 01 then EVENT_VALUE = Game.getStorageValue(_GLOBAL_RANDOM.EVENTOS_TABLE[00].EVENT_UID_4) or 0 end end if TARGET then local TARGET_POS = TARGET:getPosition() local DISPARO_TYPE = 00 if player:getPosition():getDistance(TARGET_POS) > DISTANCE_TARGET then player:sendCancelMessage("Alvo muito longe.") return false end PLAYER_DISTANCE = player:getPosition():getDistance(TARGET_POS) player:addSkillTries(SYSTEM_GUN[GUN_TYPE].SKILL, 01) if player:getStorageValue(_PLAYER_INFO.GUN_DELAY) <= 00 then if onGetPassivas(player, 10) then -- Chance de disparo do tipo ICE. local CHANCE_PASSIVE = _PASSIVES[10].POWER_BASE + (_PASSIVES[10].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[10].CATEGORY then CHANCE_PASSIVE = CHANCE_PASSIVE + _PASSIVES[10].BOOST end end local _PASSIVES_CHANCE = math.random(00, 100) if _PASSIVES_CHANCE <= CHANCE_PASSIVE then combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_ICEDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 29) combat:execute(player, variant) DISPARO_TYPE = 01 end end if onGetPassivas(player, 12) then -- Chance de disparo do tipo EARTH. local CHANCE_PASSIVE = _PASSIVES[12].POWER_BASE + (_PASSIVES[12].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[12].CATEGORY then CHANCE_PASSIVE = CHANCE_PASSIVE + _PASSIVES[12].BOOST end end local _PASSIVES_CHANCE = math.random(00, 100) if _PASSIVES_CHANCE <= CHANCE_PASSIVE then combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_EARTHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 30) combat:execute(player, variant) DISPARO_TYPE = 01 end end if onGetPassivas(player, 23) then -- Chance de disparo do tipo ENERGY. local CHANCE_PASSIVE = _PASSIVES[23].POWER_BASE + (_PASSIVES[23].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[23].CATEGORY then CHANCE_PASSIVE = CHANCE_PASSIVE + _PASSIVES[23].BOOST end end local _PASSIVES_CHANCE = math.random(00, 100) if _PASSIVES_CHANCE <= CHANCE_PASSIVE then combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_ENERGYDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 05) combat:execute(player, variant) DISPARO_TYPE = 01 end end if onGetPassivas(player, 29) then -- Chance de disparo do tipo HOLY. local CHANCE_PASSIVE = _PASSIVES[29].POWER_BASE + (_PASSIVES[29].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[29].CATEGORY then CHANCE_PASSIVE = CHANCE_PASSIVE + _PASSIVES[29].BOOST end end local _PASSIVES_CHANCE = math.random(00, 100) if _PASSIVES_CHANCE <= CHANCE_PASSIVE then combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_HOLYDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 38) combat:execute(player, variant) DISPARO_TYPE = 01 end end if onGetPassivas(player, 38) then -- Chance de disparo do tipo FIRE. local CHANCE_PASSIVE = _PASSIVES[38].POWER_BASE + (_PASSIVES[38].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[38].CATEGORY then CHANCE_PASSIVE = CHANCE_PASSIVE + _PASSIVES[38].BOOST end end local _PASSIVES_CHANCE = math.random(00, 100) if _PASSIVES_CHANCE <= CHANCE_PASSIVE then combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_FIREDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 04) combat:execute(player, variant) DISPARO_TYPE = 01 end end if onGetPassivas(player, 48) then -- Chance de disparo do tipo DEATH. local CHANCE_PASSIVE = _PASSIVES[48].POWER_BASE + (_PASSIVES[48].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[48].CATEGORY then CHANCE_PASSIVE = CHANCE_PASSIVE + _PASSIVES[48].BOOST end end local _PASSIVES_CHANCE = math.random(00, 100) if _PASSIVES_CHANCE <= CHANCE_PASSIVE then combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_DEATHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 11) combat:execute(player, variant) DISPARO_TYPE = 01 end end end if DISPARO_TYPE == 00 then if GUN_TYPE == 04 then combatESP:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_PHYSICALDAMAGE) combatESP:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) combatESP:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 41) combatESP:setParameter(COMBAT_PARAM_BLOCKARMOR, true) combatESP:setParameter(COMBAT_PARAM_USECHARGES, true) combatESP:execute(player, variant) else if GUN_TYPE == 01 then if player:getStorageValue(_PLAYER_INFO.GUN_DELAY) > 00 then combatMET:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_PHYSICALDAMAGE) combatMET:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) combatMET:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 41) combatMET:execute(player, variant) else player:setStorageValue(_PLAYER_INFO.GUN_DELAY, _PLAYER_INFO.SECONDS_DELAY) combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_PHYSICALDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 41) combat:execute(player, variant) end else combat:setParameter(COMBAT_PARAM_GUN_TYPE, COMBAT_PHYSICALDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA) combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, 41) combat:execute(player, variant) end end end -- EFEITOS ANEIS if player:getStorageValue(_PLAYER_INFO.GUN_DELAY) <= 00 then if RING_ID > 0 then RING_CHANCE = math.random(000, 200) if player:getStorageValue(_SYSTEM.MAESTRIA[04]) > 0 then RING_CHANCE = 00 end if RING_ID == 7002 then -- Ao atacar, chance de ativar rápida regeneração. if player:getStorageValue(_GLOBAL_RANDOM.BUFFS[01].STORAGE) <= 00 then if player:getStorageValue(_SYSTEM.MAESTRIA[01]) == 05 then if RING_CHANCE <= _AMULET_CHANCE_MODE[RING_RARE] then local Timer_Left = (RING_LEVEL + (RING_STAR * 10) + 5) local regenCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT) local RegenRandom = (math.random(02, 03)) local HPGain = RegenRandom * (player:getBaseMaxHealth() / 100) regenCondition:setTicks(10 * 1000) regenCondition:setParameter(CONDITION_PARAM_BUFF_SPELL, true) regenCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, 1000) regenCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, HPGain) player:addCondition(regenCondition) return true end end end end if RING_ID == 7001 then -- Ao atacar, chance de não consumir munição ao disparar. if RING_CHANCE <= _AMULET_CHANCE_MODE[RING_RARE] then return true end end end end -- MUNIÇÃO INFINITA if player:getStorageValue(_SYSTEM.SHOP_WARZONE) == 01 or EVENT_VALUE >= 1000 then return true end if onGetPassivas(player, 31) then -- Chance de não consumir munição. local Percent = _PASSIVES[31].POWER_BASE + (_PASSIVES[31].POWER_FOR_LEVEL * (PASS_LEVEL - 01)) if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.STORAGE) == 02 then -- PASSIVA DAS CORES if Game.getStorageValue(_GLOBAL_RANDOM.DAILY_EVENTS.PASSIVE) == _PASSIVES[31].CATEGORY then Percent = Percent + _PASSIVES[31].BOOST end end if math.random(100) <= Percent then return true end end player:setStorageValue(_SYSTEM.INVENTARIO[04].UID_10, (player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10) - 01)) player:sendCancelMessage("@LoadAmmo " ..player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10)) if REQUISITO_LEVEL < 30 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10450].PRICE) elseif REQUISITO_LEVEL < 60 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10451].PRICE) elseif REQUISITO_LEVEL < 99 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10452].PRICE) elseif REQUISITO_LEVEL < 150 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10453].PRICE) else player:sendCancelMessage("@Analyser#04#" .._ITEMS[10454].PRICE) end return true else local variantTarget = player:getTarget() local targetPos = variantTarget:getPosition() player:getPosition():sendDistanceEffect(targetPos, 41) if GUN_TYPE == 04 then local Pos1, Tile1 = Position(targetPos.x, targetPos.y - 1, targetPos.z), Tile(targetPos.x, targetPos.y - 1, targetPos.z) local Pos2, Tile2 = Position(targetPos.x + 1, targetPos.y - 1, targetPos.z), Tile(targetPos.x + 1, targetPos.y - 1, targetPos.z) local Pos3, Tile3 = Position(targetPos.x + 1, targetPos.y, targetPos.z), Tile(targetPos.x + 1, targetPos.y, targetPos.z) local Pos4, Tile4 = Position(targetPos.x + 1, targetPos.y + 1, targetPos.z), Tile(targetPos.x + 1, targetPos.y + 1, targetPos.z) local Pos5, Tile5 = Position(targetPos.x, targetPos.y + 1, targetPos.z), Tile(targetPos.x, targetPos.y + 1, targetPos.z) local Pos6, Tile6 = Position(targetPos.x - 1, targetPos.y + 1, targetPos.z), Tile(targetPos.x - 1, targetPos.y + 1, targetPos.z) local Pos7, Tile7 = Position(targetPos.x - 1, targetPos.y, targetPos.z), Tile(targetPos.x - 1, targetPos.y, targetPos.z) local Pos8, Tile8 = Position(targetPos.x - 1, targetPos.y - 1, targetPos.z), Tile(targetPos.x - 1, targetPos.y - 1, targetPos.z) targetPos:sendMagicEffect(10) doTargetCombat(player, variantTarget, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) Pos1:sendMagicEffect(10) Pos2:sendMagicEffect(10) Pos3:sendMagicEffect(10) Pos4:sendMagicEffect(10) Pos5:sendMagicEffect(10) Pos6:sendMagicEffect(10) Pos7:sendMagicEffect(10) Pos8:sendMagicEffect(10) if Tile1 then local Target_1 = Tile1:getTopCreature() if Target_1 then doTargetCombat(player, Target_1, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile2 then local Target_2 = Tile2:getTopCreature() if Target_2 then doTargetCombat(player, Target_2, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile3 then local Target_3 = Tile3:getTopCreature() if Target_3 then doTargetCombat(player, Target_3, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile4 then local Target_4 = Tile4:getTopCreature() if Target_4 then doTargetCombat(player, Target_4, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile5 then local Target_5 = Tile5:getTopCreature() if Target_5 then doTargetCombat(player, Target_5, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile6 then local Target_6 = Tile6:getTopCreature() if Target_6 then doTargetCombat(player, Target_6, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile7 then local Target_7 = Tile7:getTopCreature() if Target_7 then doTargetCombat(player, Target_7, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end if Tile8 then local Target_8 = Tile8:getTopCreature() if Target_8 then doTargetCombat(player, Target_8, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end end else targetPos:sendMagicEffect(10) doTargetCombat(player, variantTarget, COMBAT_PHYSICALDAMAGE, -DMG_MIN, -DMG_MAX, CONST_ME_HITAREA) end -- MUNIÇÃO INFINITA if player:getStorageValue(_SYSTEM.SHOP_WARZONE) == 01 or EVENT_VALUE >= 1000 then return true end player:setStorageValue(_SYSTEM.INVENTARIO[04].UID_10, (player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10) - 01)) player:sendCancelMessage("@LoadAmmo " ..player:getStorageValue(_SYSTEM.INVENTARIO[04].UID_10)) if REQUISITO_LEVEL < 30 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10450].PRICE) elseif REQUISITO_LEVEL < 60 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10451].PRICE) elseif REQUISITO_LEVEL < 99 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10452].PRICE) elseif REQUISITO_LEVEL < 150 then player:sendCancelMessage("@Analyser#04#" .._ITEMS[10453].PRICE) else player:sendCancelMessage("@Analyser#04#" .._ITEMS[10454].PRICE) end return true end end else player:sendCancelMessage("Equipe uma arma para atacar.") return false end return true end