Deadpool 862 Postado Novembro 9, 2015 Share Postado Novembro 9, 2015 Alguem sabe me dizer o seguinte.. Quando os pokemons estão com pouca life, tipo no red, eles demoram pra morrer.. Alguem sabe solucionar ou dizer o que é? Meu script: local combats = { --alterado v1.6 \/ [PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC}, [GRASSDAMAGE] = {cor = COLOR_GRASS}, [POISONEDDAMAGE] = {cor = COLOR_GRASS}, [FIREDAMAGE] = {cor = COLOR_FIRE2}, [BURNEDDAMAGE] = {cor = COLOR_BURN}, [WATERDAMAGE] = {cor = COLOR_WATER}, [ICEDAMAGE] = {cor = COLOR_ICE}, [NORMALDAMAGE] = {cor = COLOR_NORMAL}, [FLYDAMAGE] = {cor = COLOR_FLYING}, [GHOSTDAMAGE] = {cor = COLOR_GHOST}, [GROUNDDAMAGE] = {cor = COLOR_GROUND}, [ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC}, [ROCKDAMAGE] = {cor = COLOR_ROCK}, [BUGDAMAGE] = {cor = COLOR_BUG}, [FIGHTDAMAGE] = {cor = COLOR_FIGHTING}, [DRAGONDAMAGE] = {cor = COLOR_DRAGON}, [POISONDAMAGE] = {cor = COLOR_POISON}, [DARKDAMAGE] = {cor = COLOR_DARK}, [STEELDAMAGE] = {cor = COLOR_STEEL}, [MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC}, [DARK_EYEDAMAGE] = {cor = COLOR_GHOST}, [SEED_BOMBDAMAGE] = {cor = COLOR_GRASS}, [SACREDDAMAGE] = {cor = COLOR_FIRE2}, [FAIRYDAMAGE] = {cor = COLOR_FAIRY}, } --alterado v1.5 tabelas agora estao em lib/configuration.lua local function sendPlayerDmgMsg(cid, text) if not isCreature(cid) then return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text) end local races = { [4] = {cor = COLOR_FIRE2}, [6] = {cor = COLOR_WATER}, [7] = {cor = COLOR_NORMAL}, [8] = {cor = COLOR_FIRE2}, [9] = {cor = COLOR_FIGHTING}, [10] = {cor = COLOR_FLYING}, [11] = {cor = COLOR_GRASS}, [12] = {cor = COLOR_POISON}, [13] = {cor = COLOR_ELECTRIC}, [14] = {cor = COLOR_GROUND}, [15] = {cor = COLOR_PSYCHIC}, [16] = {cor = COLOR_ROCK}, [17] = {cor = COLOR_ICE}, [18] = {cor = COLOR_BUG}, [19] = {cor = COLOR_DRAGON}, [20] = {cor = COLOR_GHOST}, [21] = {cor = COLOR_STEEL}, [22] = {cor = COLOR_DARK}, [23] = {cor = COLOR_FAIRY}, [1] = {cor = 180}, [2] = {cor = 180}, [3] = {cor = 180}, [5] = {cor = 180}, } local damages = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE} local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE, FAIRYDAMAGE} local ignored = {POISONEDDAMAGE, BURNEDDAMAGE} --alterado v1.6 local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE} function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS and getTileInfo(getThingPos(cid)).protection then return false end if isSummon(cid) and getTileInfo(getThingPos(cid)).protection and type == STATSCHANGE_HEALTHLOSS then return false end if isWithFear(attacker) then return false end if isParalyze(attacker) then return false end if combat == FLYSYSTEMDAMAGE then return false end if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV if not isCreature(attacker) then --alterado v1.5 cid == attacker if not isInArray(fixdamages, combat) and combats[combat] then doSendAnimatedText(getThingPos(cid), value, combats[combat].cor) end return true end local damageCombat = combat if getPlayerStorageValue(cid, 43934) >= 1 and type == STATSCHANGE_HEALTHLOSS then setPlayerStorageValue(cid, 43934, -1) docastspell(cid, "Destiny Bond2") end if combat == WHIRLDAMAGE then if getCreatureName(attacker) == "Rhyperior" then damageCombat = GROUNDDAMAGE elseif isInArray({"Forretress", "Shiny Forretress"}, getCreatureName(attacker)) then damageCombat = STEELDAMAGE else damageCombat = FLYDAMAGE end end if combat == WHIRLDAMAGE then pos = getThingPosWithDebug(cid) dist = 1 if getCreatureLookDir(attacker) == 0 then newpos = {x = pos.x, y = pos.y - dist, z = pos.z} elseif getCreatureLookDir(attacker) == 1 then newpos = {x = pos.x + dist, y = pos.y, z = pos.z} elseif getCreatureLookDir(attacker) == 2 then newpos = {x = pos.x, y = pos.y + dist, z = pos.z} elseif getCreatureLookDir(attacker) == 3 then newpos = {x = pos.x - dist, y = pos.y, z = pos.z} end if isWalkable(newpos) and not isInArray(waters, getTileInfo(newpos).itemid) then doTeleportThing(cid, newpos) end if notWhirlDamage then return false end end -------------------------------------------------- --alterado v1.6 retirado os combats sleep_powder e poison_powder daki! -------------------------------------------------- if type == STATSCHANGE_HEALTHGAIN then if cid == attacker then return true end if isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" then return false end return true end -------------------------------------------------- if isMonster(cid) then local valor = value if not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) * playerDamageReduction doCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor) --alterado v1.6 dano nos npcs return false elseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) return false end end -------------------------------------------------- if isPlayer(attacker) then local valor = value if valor > getCreatureHealth(cid) then valor = getCreatureHealth(cid) end if combat == COMBAT_PHYSICALDAMAGE then return false end if combat == PHYSICALDAMAGE then doSendMagicEffect(getThingPos(cid), 3) doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor) end if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor) end if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then --doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".") end return true end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then return false end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then if isSummon(attacker) or isPlayer(attacker) then if canAttackOther(cid, attacker) == "Cant" then return false end end local valor = 0 if combat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) else valor = getSpecialAttack(attacker) end valor = valor * playerDamageReduction valor = valor * math.random(83, 117) / 100 if valor >= getCreatureHealth(cid) then valor = getCreatureHealth(cid) end valor = math.floor(valor) if valor >= getCreatureHealth(cid) then if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then setPlayerStorageValue(cid, 6598754, -1) setPlayerStorageValue(cid, 6598755, -1) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v1.7 doTeleportThing(cid, posBackPVP, false) --pos pra onde o player vai ser teleportado quando morrer no pvp! configurar no lib/configuration.lua!! doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return true end if getPlayerStorageValue(cid, 89050) and getPlayerStorageValue(cid, 89050) >= 1 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return true end if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, 0) setPlayerStorageValue(cid, 17001, 0) setPlayerStorageValue(cid, 63215, -1) doChangeSpeed(cid, PlayerSpeed) local item = getPlayerSlotItem(cid, 8) local btype = getPokeballType(item.itemid) if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) end end end ------------Survival------------------- if getPlayerStorageValue(cid, 17769) > 0 then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 17769, -2) return true end ------------Edited Golden Arena------------------ --alterado v1.7 \/\/ if getPlayerStorageValue(cid, 22545) == 1 then if getGlobalStorageValue(22550) == 1 then doPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!") doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*2) --recompensa, a storage ali eh qnts waves o player guento! setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) setPlayerRecordWaves(cid) endGoldenArena() return true else setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1) setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) setPlayerRecordWaves(cid) return true end end ------------------------------------------- /\/\ --- local corpse = doCreateItem(3058, 1, getThingPos(cid)) doDecayItem(corpse) doItemSetAttribute(corpse, "pName", getCreatureName(cid)) --alterado v1.7 coloca corpse quando o player morre! doItemSetAttribute(corpse, "attacker", getCreatureName(attacker)) doItemSetAttribute(corpse, "article", getPlayerSex(cid) == 0 and "She" or "He") --- end setPlayerStorageValue(cid, 31040, -1) doCreatureAddHealth(cid, -valor, 3, 180) if not isPlayer(cid) then addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end return false end -------------------------------------------------- if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then if isPlayer(cid) then return false end if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then return false end end -------------------------------------------------- if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then return false end end -------------------------------------------------- if ehMonstro(cid) and ehMonstro(attacker) then return false --edited monstro nao atacar monstro end -------------------------------------------------- --------------------REFLECT----------------------- if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then if not isInArray(reflectBlock, getPlayerStorageValue(attacker, 21102)) then doSendMagicEffect(getThingPosWithDebug(cid), 135) doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS) addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102)) if getCreatureName(cid) == "Wobbuffet" or getCreatureName(cid) == "Shiny Wobbuffet" then doRemoveCondition(cid, CONDITION_OUTFIT) elseif getCreatureName(cid) == "Ditto" and isSummon(cid) then doSetCreatureOutfit(cid, {lookType = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "transOutfit")}, -1) end setPlayerStorageValue(cid, 21099, -1) --alterado v1.6 setPlayerStorageValue(cid, 21100, 1) setPlayerStorageValue(cid, 21101, attacker) setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f) setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType) return false end end ------------------------------------------------- local multiplier = 1 if isCreature(cid) then poketype1 = pokes[getCreatureName(cid)].type --alterado v1.6 poketype2 = pokes[getCreatureName(cid)].type2 end if not poketype1 or not poketype2 then return false end --alterado v1.6 if getCreatureCondition(cid, CONDITION_INVISIBLE) then return false end if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if effectiveness[damageCombat] then if isInArray(effectiveness[damageCombat].super, poketype1) then multiplier = multiplier + 0.5 end if isInArray(effectiveness[damageCombat].super, poketype2) then multiplier = multiplier + 0.5 end if isInArray(effectiveness[damageCombat].weak, poketype1) then --Edited effetivenes = pxg... ;p multiplier = multiplier - 0.25 end if isInArray(effectiveness[damageCombat].weak, poketype2) then multiplier = multiplier - 0.25 end if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v1.5 multiplier = 0.5 end if isLegendaryPokemon(getCreatureName(attacker)) then multiplier = 0.5 end end end elseif combat == COMBAT_PHYSICALDAMAGE then if isGhostPokemon(cid) then --alterado v1.3 if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --passiva Foresight!! doSendMagicEffect(getThingPos(cid), 3) return false end end local cd = getPlayerStorageValue(attacker, conds["Miss"]) local cd2 = getPlayerStorageValue(attacker, conds["Confusion"]) local cd3 = getPlayerStorageValue(attacker, conds["Stun"]) if cd >= 0 or cd2 >= 0 or cd3 >= 0 then if math.random(1, 100) > 50 then --Edited miss system -- 50% chance de da miss no atk fisico doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(attacker), "MISS", 215) --alterado v1.5 return false end end end -------------------------------------------------- local valor = value if multiplier == 1.5 and poketype2 == "no type" then multiplier = 2 --alterado v1.6 elseif multiplier == 1.5 and poketype2 ~= "no type" then multiplier = 1.75 elseif multiplier == 1.25 then --edited effetivines = pxg multiplier = 1 end -------------------------------------------------- if isSummon(cid) and isSummon(attacker) then if getCreatureMaster(cid) == getCreatureMaster(attacker) then return false end if canAttackOther(cid, attacker) == "Cant" then return false end end valor = valor * multiplier if isSummon(attacker) then valor = valor * getHappinessRate(attacker) else valor = valor * summonReduction end valor = math.floor(valor) if combat == COMBAT_PHYSICALDAMAGE then LvLP = getPokemonLevel(attacker) if isSummon(attacker) then if LvLP > getPlayerLevel(getCreatureMaster(attacker)) then LvLP = getPlayerLevel(getCreatureMaster(attacker)) end end block = 1 - (((2 * LvLP + 10) / 250) * (getOffense(attacker)) / (getDefense(cid) * getPokemonLevel(attacker)) + 2) --block = 1 - (((2 * LvLP + 10) / 250) * ((pokes[getCreatureName(attacker)].offense * getPokemonLevel(attacker)) / (pokes[getCreatureName(cid)].defense * getPokemonLevel(attacker))) + 2) if block < 0 then block = 1 - (block) end lvMin = LvLP - 2 lvMax = LvLP + 2 valor = math.floor((math.random(lvMin, lvMax) * block) * 2.5) if isSummon(cid) then if hasHeldItem(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) then if getHeldName(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) == "return" then if isMonster(attacker) and not isSummon(attacker) then valorReturn = math.abs(valor * helds.returnHunt[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)]) else valorReturn = math.abs(valor * helds.returnDuel[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)]) end if getCreatureName(cid) == "Blissey" then valorReturn = valorReturn / 4 end doTargetCombatHealth(getCreatureMaster(cid), attacker, PHYSICALDAMAGE, -valorReturn, -valorReturn, 255) end end end if isInArray(specialabilities["counter"], getCreatureName(cid)) then if math.random(1, 100) <= 10 then doCreatureAddHealth(attacker, -valor, 3, 180) --alterado v1.5 valor = 0 doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215) end end else valor = valor / getDefense(cid) end -------------------------Edited CLAN SYSTEM----------------------------------- if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then valor = valor*getClanPorcent(getCreatureMaster(attacker), damageCombat, "atk") --alterado v1.3 elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), damageCombat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2)) end ----------------------------------------------------------------------- ---------------------- FEAR / ROAR ------------------------------------ if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then --alterado!! return true end if isParalyze(attacker) then return false end -------------------------------------------------------------------------- if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if effectiveness[damageCombat] then if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v1.6 valor = valor * 0 --alterado v1.5 end end end end if damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 --alterado v1.5 end end ----------------------------------------------------------------------------- local p = getThingPos(cid) if p.x == 1 and p.y == 1 and p.z == 10 then return false end if getPlayerStorageValue(cid, 9658783) == 1 then return false --imune end ----------------------------------------------------------------------------- --------------- FIGHT MODE ----------------------- if useOTClient then if isSummon(cid) then --alterado v1.7 soh funciona com o OTClient q eu disponibilizei... local master = getCreatureMaster(cid) if getPlayerStorageValue(master, 248759) == 1 then valor = valor * 1.1 --ta aumentando 10% de dano/def e diminuindo 10% de dano/def elseif getPlayerStorageValue(master, 248759) == 3 then valor = valor * 0.9 end end if isSummon(attacker) then local master = getCreatureMaster(attacker) if getPlayerStorageValue(master, 248759) == 1 then valor = valor * 1.1 elseif getPlayerStorageValue(master, 248759) == 3 then valor = valor * 0.9 end end end ----------------------------------------------------------------------------- ------------------ SKILLs Q CURAM O ATTACKER --------------------------------- local function doHeal(cid, amount) if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid)) end if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then --alterado v1.6 doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) end end if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then if getPlayerStorageValue(attacker, 95487) >= 1 then doHeal(attacker, valor) setPlayerStorageValue(attacker, 95487, -1) --alterado v1.6 end elseif damageCombat == SEED_BOMBDAMAGE then doHeal(attacker, valor) end -------------------------------------------- ----------SACRED FIRE----------------------- if combat == SACREDDAMAGE and not ehNPC(cid) then --alterado v1.6 local ret = {} ret.id = cid ret.cd = 9 ret.check = getPlayerStorageValue(cid, conds["Silence"]) ret.eff = 39 ret.cond = "Silence" doCondition2(ret) end --------------------------------------------- --------------Passiva Lifesteal Clobat------------ if combat == COMBAT_PHYSICALDAMAGE then if isInArray(lifestealPassive, getCreatureName(attacker)) then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+"..math.floor(valor), 30) end end if getCreatureName(cid) == "Absol" then if damageCombat == DARKDAMAGE then setPlayerStorageValue(cid, 253, 1) end end if combat == COMBAT_PHYSICALDAMAGE or combat == PHYSICALDAMAGE then if getPlayerStorageValue(attacker, 51695) >= 1 then valor = math.floor(valor * 2) end end -------------------------------------------- if isSummon(cid) then if hasHeldItem(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) then if getHeldName(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) == "return" then if isMonster(attacker) and not isSummon(attacker) then valorReturn = math.abs(valor * helds.returnHunt[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)]) else valorReturn = math.abs(valor * helds.returnDuel[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)]) end if getCreatureName(cid) == "Blissey" then valorReturn = valorReturn / 4 end doTargetCombatHealth(getCreatureMaster(cid), attacker, damageCombat, -valorReturn, -valorReturn, 255) end end end if isSummon(attacker) then if isParalyze(attacker) then return false end if combat == COMBAT_PHYSICALDAMAGE then doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6 else doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255) end else if combat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) else doCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6 end if isSummon(cid) and valor ~= 0 then -- addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") addEvent(doPlayerSendCancel, 10, getCreatureMaster(cid), "#ph#,"..getCreatureHealth(cid)..","..getCreatureMaxHealth(cid).."") end end if damageCombat == FIREDAMAGE and not isBurning(cid) then local ret = {} ret.id = cid ret.cd = math.random(5, 12) ret.check = getPlayerStorageValue(cid, conds["Burn"]) local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker) damage = math.floor((getPokemonLevel(attacker)+lvl)/2) if isSummon(attacker) then if hasHeldItem(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) then if getHeldName(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) == "hellfire" then damage = math.floor(damage * helds.hellfire[getHeldTier(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid)]) end end end ret.damage = damage ret.cond = "Burn" doCondition2(ret) elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then local ret = {} ret.id = cid ret.cd = math.random(6, 15) ret.check = getPlayerStorageValue(cid, conds["Poison"]) local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker) damage = math.floor((getPokemonLevel(attacker)+lvl)/2) if isSummon(attacker) then if hasHeldItem(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) then if getHeldName(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) == "poison" then damage = math.floor(damage * helds.poison[getHeldTier(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid)]) end end end ret.damage = damage ret.cond = "Poison" doCondition2(ret) end ------------------------------------POTIONS------------------------------------------- if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 173) >= 1 then if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then setPlayerStorageValue(cid, 173, -1) --alterado v1.6 doSendAnimatedText(getThingPos(cid), "LOST HEAL", 144) doPlayerSendCancel(getCreatureMaster(cid), "#ph#,"..getCreatureHealth(cid)..","..getCreatureMaxHealth(cid).."") end end end ----------------------------------------PASSIVAS------------------------------------- --alterado v1.7 \/ passiveName = getCreatureName(cid) if isSummon(cid) and isInArray({"Ditto", "Shiny Ditto"}, passiveName) then passiveName = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "transName") or getCreatureName(cid) end if isSummon(cid) then if hasHeldItem(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) then if getHeldName(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) == "elemental" then if math.random(1, 100) <= helds.elemental[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)] then docastspell(cid, "Elemental") end end end end if isSummon(cid) and isSummon(attacker) then if valor >= getCreatureHealth(cid) or getCreatureHealth(cid) <= 0 then local owner = getCreatureMaster(cid) if getLivePokes(owner) <= 1 then local pvpp = getPlayerStorageValue(getCreatureMaster(attacker), 89051) and getPlayerStorageValue(getCreatureMaster(attacker), 89051) or 0 setPlayerStorageValue(getCreatureMaster(attacker), 89051, pvpp + 1) local pvplp = getPlayerStorageValue(getCreatureMaster(owner), 89052) and getPlayerStorageValue(getCreatureMaster(owner), 89052) or 0 setPlayerStorageValue(owner, 89052, pvplp + 1) end end end if passivesChances["Sheer Cold"][passiveName] and math.random(1, 100) <= passivesChances["Sheer Cold"][passiveName] then docastspell(cid, "Sheer Cold") end if passivesChances["Bone Spin"][passiveName] and math.random(1, 100) <= passivesChances["Bone Spin"][passiveName] then docastspell(cid, "Bone Slash") end if passivesChances["Rage"][passiveName] and math.random(1, 100) <= passivesChances["Rage"][passiveName] then docastspell(cid, "Rage") end if passivesChances["Night Daze"][passiveName] and math.random(1, 100) <= passivesChances["Night Daze"][passiveName] then docastspell(cid, "Night Daze") end if passivesChances["Spikes"][passiveName] and math.random(1, 100) <= passivesChances["Spikes"][passiveName] then docastspell(cid, "Spikes") end if passivesChances["Poison Powder"][passiveName] and math.random(1, 100) <= passivesChances["Poison Powder"][passiveName] then docastspell(cid, "Poison Powder") end -------------------------------------------Counter Helix------------------------------------ if passivesChances["Helix"][passiveName] and math.random(1, 100) <= passivesChances["Helix"][passiveName] then docastspell(cid, "Counter Helix") end -------------------------------------------Lava Counter/Electricity---------------------------- if passivesChances["Fire_Thunder"][passiveName] and math.random(1, 100) <= passivesChances["Fire_Thunder"][passiveName] then docastspell(cid, "Lava-Electricity") end ---------------------------------------Stunning Confusion----------------------------------------- if passivesChances["Stunning"][passiveName] and math.random(1, 100) <= passivesChances["Stunning"][passiveName] then docastspell(cid, "Stunning Confusion") end -----------------------------------------Groundshock----------------------------------- if passivesChances["Groundshock"][passiveName] and math.random(1, 100) <= passivesChances["Groundshock"][passiveName] then docastspell(cid, "Groundshock") end --------------------------------------Electric Charge--------------------------------------------- if passivesChances["Electric Charge"][passiveName] and math.random(1, 100) <= passivesChances["Electric Charge"][passiveName] then docastspell(cid, "Electric Charge", 0, 0) end -------------------------------------Melody------------------------------------ if passivesChances["Melody"][passiveName] and math.random(1, 100) <= passivesChances["Melody"][passiveName] then docastspell(cid, "Melody") end ------------------------------------- Dragon Fury / Fury --------------------------------------- if passivesChances["Dragon Fury"][passiveName] and math.random(1, 100) <= passivesChances["Dragon Fury"][passiveName] then docastspell(cid, "Dragon Fury", 0, 0) end ------------------------------------- Mega Drain --------------------------------------- if passivesChances["Mega Drain"][passiveName] and math.random(1, 100) <= passivesChances["Mega Drain"][passiveName] then docastspell(cid, "Mega Drain") end ------------------------------------- Spores Reaction --------------------------------------- if isSummon(attacker) then if passivesChances["Spores Reaction"][passiveName] and math.random(1, 100) <= passivesChances["Spores Reaction"][passiveName] then docastspell(cid, "Spores Reaction") end else chance = passivesChances["Spores Reaction"][passiveName] if chance and math.random(1, 100) <= (chance - 5) then docastspell(cid, "Spores Reaction") end end ------------------------------------ Amnesia ---------------------------------------- if passivesChances["Amnesia"][passiveName] and math.random(1, 100) <= passivesChances["Amnesia"][passiveName] then docastspell(cid, "Amnesia", 0, 0) end ----------------------------------- Zen Mind ----------------------------------------- if passivesChances["Zen Mind"][passiveName] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][passiveName] then docastspell(cid, "Zen Mind", 0, 0) end ---------------------------------- Mirror Coat --------------------------------------- if passivesChances["Mirror Coat"][passiveName] and math.random(1, 100) <= passivesChances["Mirror Coat"][passiveName] then docastspell(cid, "Mirror Coat", 0, 0) end ------------------------------------ Blaze ------------------------------------------- if passivesChances["Blaze"][passiveName] and math.random(1, 100) <= passivesChances["Blaze"][passiveName] then docastspell(cid, "Blaze", 0, 0) end --------------------------------- Illusion ----------------------------------------- return false end Link para o comentário Compartilhar em outros sites More sharing options...
alexalex 3 Postado Novembro 9, 2015 Share Postado Novembro 9, 2015 vc tem lag ? Link para o comentário Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Novembro 9, 2015 Autor Share Postado Novembro 9, 2015 Não, so oque eu disse mesmo Link para o comentário Compartilhar em outros sites More sharing options...
Aberos 71 Postado Novembro 9, 2015 Share Postado Novembro 9, 2015 (editado) tenta substituir o getDefense ou getOffense por valores tipo 1 so pra testar Editado Novembro 9, 2015 por Aberos Link para o comentário Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Novembro 9, 2015 Autor Share Postado Novembro 9, 2015 não foi :/// Link para o comentário Compartilhar em outros sites More sharing options...
RodriigoRobson 110 Postado Novembro 24, 2015 Share Postado Novembro 24, 2015 local combats = { --alterado v1.6 \/[PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC},[GRASSDAMAGE] = {cor = COLOR_GRASS},[POISONEDDAMAGE] = {cor = COLOR_GRASS},[FIREDAMAGE] = {cor = COLOR_FIRE2},[bURNEDDAMAGE] = {cor = COLOR_BURN},[WATERDAMAGE] = {cor = COLOR_WATER},[iCEDAMAGE] = {cor = COLOR_ICE},[NORMALDAMAGE] = {cor = COLOR_NORMAL},[FLYDAMAGE] = {cor = COLOR_FLYING},[GHOSTDAMAGE] = {cor = COLOR_GHOST},[GROUNDDAMAGE] = {cor = COLOR_GROUND},[ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC},[ROCKDAMAGE] = {cor = COLOR_ROCK},[bUGDAMAGE] = {cor = COLOR_BUG},[FIGHTDAMAGE] = {cor = COLOR_FIGHTING},[DRAGONDAMAGE] = {cor = COLOR_DRAGON},[POISONDAMAGE] = {cor = COLOR_POISON},[DARKDAMAGE] = {cor = COLOR_DARK},[sTEELDAMAGE] = {cor = COLOR_STEEL},[MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC},[DARK_EYEDAMAGE] = {cor = COLOR_GHOST},[sEED_BOMBDAMAGE] = {cor = COLOR_GRASS},[sACREDDAMAGE] = {cor = COLOR_FIRE2},[FAIRYDAMAGE] = {cor = COLOR_FAIRY},}--alterado v1.5 tabelas agora estao em lib/configuration.lualocal function sendPlayerDmgMsg(cid, text)if not isCreature(cid) then return true enddoPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text)endlocal races = {[4] = {cor = COLOR_FIRE2},[6] = {cor = COLOR_WATER},[7] = {cor = COLOR_NORMAL},[8] = {cor = COLOR_FIRE2},[9] = {cor = COLOR_FIGHTING},[10] = {cor = COLOR_FLYING},[11] = {cor = COLOR_GRASS},[12] = {cor = COLOR_POISON},[13] = {cor = COLOR_ELECTRIC},[14] = {cor = COLOR_GROUND},[15] = {cor = COLOR_PSYCHIC},[16] = {cor = COLOR_ROCK},[17] = {cor = COLOR_ICE},[18] = {cor = COLOR_BUG},[19] = {cor = COLOR_DRAGON},[20] = {cor = COLOR_GHOST},[21] = {cor = COLOR_STEEL},[22] = {cor = COLOR_DARK},[23] = {cor = COLOR_FAIRY},[1] = {cor = 180},[2] = {cor = 180},[3] = {cor = 180},[5] = {cor = 180},}local damages = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE}local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE, FAIRYDAMAGE}local ignored = {POISONEDDAMAGE, BURNEDDAMAGE} --alterado v1.6local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}function onStatsChange(cid, attacker, type, combat, value)if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS and getTileInfo(getThingPos(cid)).protection then return false endif isSummon(cid) and getTileInfo(getThingPos(cid)).protection and type == STATSCHANGE_HEALTHLOSS then return false endif isWithFear(attacker) then return false endif isParalyze(attacker) then return false endif combat == FLYSYSTEMDAMAGE then return false endif isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TVif not isCreature(attacker) then --alterado v1.5 cid == attackerif not isInArray(fixdamages, combat) and combats[combat] thendoSendAnimatedText(getThingPos(cid), value, combats[combat].cor)endreturn trueendlocal damageCombat = combatif getPlayerStorageValue(cid, 43934) >= 1 and type == STATSCHANGE_HEALTHLOSS thensetPlayerStorageValue(cid, 43934, -1)docastspell(cid, "Destiny Bond2")endif combat == WHIRLDAMAGE thenif getCreatureName(attacker) == "Rhyperior" thendamageCombat = GROUNDDAMAGEelseif isInArray({"Forretress", "Shiny Forretress"}, getCreatureName(attacker)) thendamageCombat = STEELDAMAGEelsedamageCombat = FLYDAMAGEendendif combat == WHIRLDAMAGE thenpos = getThingPosWithDebug(cid)dist = 1if getCreatureLookDir(attacker) == 0 thennewpos = {x = pos.x, y = pos.y - dist, z = pos.z}elseif getCreatureLookDir(attacker) == 1 thennewpos = {x = pos.x + dist, y = pos.y, z = pos.z}elseif getCreatureLookDir(attacker) == 2 thennewpos = {x = pos.x, y = pos.y + dist, z = pos.z}elseif getCreatureLookDir(attacker) == 3 thennewpos = {x = pos.x - dist, y = pos.y, z = pos.z}endif isWalkable(newpos) and not isInArray(waters, getTileInfo(newpos).itemid) thendoTeleportThing(cid, newpos)endif notWhirlDamage then return false endend----------------------------------------------------alterado v1.6 retirado os combats sleep_powder e poison_powder daki!--------------------------------------------------if type == STATSCHANGE_HEALTHGAIN thenif cid == attacker thenreturn trueendif isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" thenreturn falseendreturn trueend--------------------------------------------------if isMonster(cid) thenlocal valor = valueif not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE thenvalor = getOffense(attacker) * playerDamageReductiondoCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor) --alterado v1.6 dano nos npcsreturn falseelseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE thendoCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor)return falseendend--------------------------------------------------if isPlayer(attacker) thenlocal valor = valueif valor > getCreatureHealth(cid) thenvalor = getCreatureHealth(cid)endif combat == COMBAT_PHYSICALDAMAGE thenreturn falseendif combat == PHYSICALDAMAGE thendoSendMagicEffect(getThingPos(cid), 3)doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor)endif combats[damageCombat] and not isInArray(fixdmgs, damageCombat) thendoSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor)endif #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then--doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".")endreturn trueend--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS thenreturn falseend--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS thenif isSummon(attacker) or isPlayer(attacker) thenif canAttackOther(cid, attacker) == "Cant" then return false endendlocal valor = 0if combat == COMBAT_PHYSICALDAMAGE thenvalor = getOffense(attacker)elsevalor = getSpecialAttack(attacker)endvalor = valor * playerDamageReductionvalor = valor * math.random(83, 117) / 100if valor >= getCreatureHealth(cid) thenvalor = getCreatureHealth(cid)endvalor = math.floor(valor)if valor >= getCreatureHealth(cid) thenif getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 thensetPlayerStorageValue(cid, 6598754, -1)setPlayerStorageValue(cid, 6598755, -1)doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v1.7doTeleportThing(cid, posBackPVP, false) --pos pra onde o player vai ser teleportado quando morrer no pvp! configurar no lib/configuration.lua!!doCreatureAddHealth(cid, getCreatureMaxHealth(cid))return trueendif getPlayerStorageValue(cid, 89050) and getPlayerStorageValue(cid, 89050) >= 1 thendoCreatureAddHealth(cid, getCreatureMaxHealth(cid))return trueendif getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 thendoRemoveCondition(cid, CONDITION_OUTFIT)setPlayerStorageValue(cid, 17000, 0)setPlayerStorageValue(cid, 17001, 0)setPlayerStorageValue(cid, 63215, -1)doChangeSpeed(cid, PlayerSpeed)local item = getPlayerSlotItem(cid, 8)local btype = getPokeballType(item.itemid)if #getCreatureSummons(cid) <= 0 thenif isInArray(pokeballs[btype].all, item.itemid) thendoTransformItem(item.uid, pokeballs[btype].off)doItemSetAttribute(item.uid, "hp", 0)endendend------------Survival-------------------if getPlayerStorageValue(cid, 17769) > 0 thendoCreatureAddHealth(cid, getCreatureMaxHealth(cid))doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))setPlayerStorageValue(cid, 17769, -2)return trueend------------Edited Golden Arena------------------ --alterado v1.7 \/\/if getPlayerStorageValue(cid, 22545) == 1 thenif getGlobalStorageValue(22550) == 1 thendoPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!")doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*2) --recompensa, a storage ali eh qnts waves o player guento!setPlayerStorageValue(cid, 22545, -1)doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false)doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))setPlayerRecordWaves(cid)endGoldenArena()return trueelsesetGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)setPlayerStorageValue(cid, 22545, -1)doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))setPlayerRecordWaves(cid)return trueendend------------------------------------------- /\/\---local corpse = doCreateItem(3058, 1, getThingPos(cid))doDecayItem(corpse)doItemSetAttribute(corpse, "pName", getCreatureName(cid)) --alterado v1.7 coloca corpse quando o player morre!doItemSetAttribute(corpse, "attacker", getCreatureName(attacker))doItemSetAttribute(corpse, "article", getPlayerSex(cid) == 0 and "She" or "He")---endsetPlayerStorageValue(cid, 31040, -1)doCreatureAddHealth(cid, -valor, 3, 180)if not isPlayer(cid) thenaddEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")endreturn falseend--------------------------------------------------if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 thenif isPlayer(cid) thenreturn falseendif getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 thenreturn falseendend--------------------------------------------------if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 thenif getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 thenreturn falseendend--------------------------------------------------if ehMonstro(cid) and ehMonstro(attacker) thenreturn false --edited monstro nao atacar monstroend----------------------------------------------------------------------REFLECT-----------------------if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE thenif not isInArray(reflectBlock, getPlayerStorageValue(attacker, 21102)) thendoSendMagicEffect(getThingPosWithDebug(cid), 135)doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS)addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102))if getCreatureName(cid) == "Wobbuffet" or getCreatureName(cid) == "Shiny Wobbuffet" thendoRemoveCondition(cid, CONDITION_OUTFIT)elseif getCreatureName(cid) == "Ditto" and isSummon(cid) thendoSetCreatureOutfit(cid, {lookType = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "transOutfit")}, -1)endsetPlayerStorageValue(cid, 21099, -1) --alterado v1.6setPlayerStorageValue(cid, 21100, 1)setPlayerStorageValue(cid, 21101, attacker)setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f)setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType)return falseendend-------------------------------------------------local multiplier = 1if isCreature(cid) thenpoketype1 = pokes[getCreatureName(cid)].type --alterado v1.6poketype2 = pokes[getCreatureName(cid)].type2endif not poketype1 or not poketype2 then return false end --alterado v1.6if getCreatureCondition(cid, CONDITION_INVISIBLE) thenreturn falseendif damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) thenif effectiveness[damageCombat] thenif isInArray(effectiveness[damageCombat].super, poketype1) thenmultiplier = multiplier + 0.5endif isInArray(effectiveness[damageCombat].super, poketype2) thenmultiplier = multiplier + 0.5endif isInArray(effectiveness[damageCombat].weak, poketype1) then --Edited effetivenes = pxg... ;pmultiplier = multiplier - 0.25endif isInArray(effectiveness[damageCombat].weak, poketype2) thenmultiplier = multiplier - 0.25endif isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) thenif isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v1.5multiplier = 0.5endif isLegendaryPokemon(getCreatureName(attacker)) thenmultiplier = 0.5endendendelseif combat == COMBAT_PHYSICALDAMAGE thenif isGhostPokemon(cid) then --alterado v1.3if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --passiva Foresight!!doSendMagicEffect(getThingPos(cid), 3)return falseendendlocal cd = getPlayerStorageValue(attacker, conds["Miss"])local cd2 = getPlayerStorageValue(attacker, conds["Confusion"])local cd3 = getPlayerStorageValue(attacker, conds["Stun"])if cd >= 0 or cd2 >= 0 or cd3 >= 0 thenif math.random(1, 100) > 50 then --Edited miss system -- 50% chance de da miss no atk fisicodoSendMagicEffect(getThingPos(cid), 211)doSendAnimatedText(getThingPos(attacker), "MISS", 215) --alterado v1.5return falseendendend--------------------------------------------------local valor = valueif multiplier == 1.5 and poketype2 == "no type" thenmultiplier = 2 --alterado v1.6elseif multiplier == 1.5 and poketype2 ~= "no type" thenmultiplier = 1.75elseif multiplier == 1.25 then --edited effetivines = pxgmultiplier = 1end--------------------------------------------------if isSummon(cid) and isSummon(attacker) thenif getCreatureMaster(cid) == getCreatureMaster(attacker) thenreturn falseendif canAttackOther(cid, attacker) == "Cant" thenreturn falseendendvalor = valor * multiplierif isSummon(attacker) thenvalor = valor * getHappinessRate(attacker)elsevalor = valor * summonReductionendvalor = math.floor(valor)if combat == COMBAT_PHYSICALDAMAGE thenLvLP = getPokemonLevel(attacker)if isSummon(attacker) thenif LvLP > getPlayerLevel(getCreatureMaster(attacker)) thenLvLP = getPlayerLevel(getCreatureMaster(attacker))endendblock = 1 - (((2 * LvLP + 10) / 250) * (getOffense(attacker)) / (getDefense(cid) * getPokemonLevel(attacker)) + 2)--block = 1 - (((2 * LvLP + 10) / 250) * ((pokes[getCreatureName(attacker)].offense * getPokemonLevel(attacker)) / (pokes[getCreatureName(cid)].defense * getPokemonLevel(attacker))) + 2)if block < 0 thenblock = 1 - (block)endlvMin = LvLP - 2lvMax = LvLP + 2valor = math.floor((math.random(lvMin, lvMax) * block) * 2.5)if isSummon(cid) thenif hasHeldItem(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) thenif getHeldName(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) == "return" thenif isMonster(attacker) and not isSummon(attacker) thenvalorReturn = math.abs(valor * helds.returnHunt[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)])elsevalorReturn = math.abs(valor * helds.returnDuel[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)])endif getCreatureName(cid) == "Blissey" thenvalorReturn = valorReturn / 4enddoTargetCombatHealth(getCreatureMaster(cid), attacker, PHYSICALDAMAGE, -valorReturn, -valorReturn, 255)endendendif isInArray(specialabilities["counter"], getCreatureName(cid)) thenif math.random(1, 100) <= 10 thendoCreatureAddHealth(attacker, -valor, 3, 180) --alterado v1.5valor = 0doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)endendif isSummon(cid) thenvalor = valor / getDefense(cid) * summonSpecialDamageReduction + getSpecialAttack(cid)elseif isMonster(attacker) thenvalor = valor / (getDefense(attacker)/25)endendend-------------------------Edited CLAN SYSTEM-----------------------------------if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 thenvalor = valor*getClanPorcent(getCreatureMaster(attacker), damageCombat, "atk") --alterado v1.3elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 thenvalor = valor - (valor*getClanPorcent(getCreatureMaster(cid), damageCombat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))end--------------------------------------------------------------------------------------------- FEAR / ROAR ------------------------------------if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then --alterado!!return trueendif isParalyze(attacker) then return false end--------------------------------------------------------------------------if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) thenif effectiveness[damageCombat] thenif isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) thenif not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v1.6valor = valor * 0 --alterado v1.5endendendendif damageCombat == GROUNDDAMAGE thenif isInArray(specialabilities["levitate"], getCreatureName(cid)) thenvalor = 0 --alterado v1.5endend-----------------------------------------------------------------------------local p = getThingPos(cid)if p.x == 1 and p.y == 1 and p.z == 10 thenreturn falseendif getPlayerStorageValue(cid, 9658783) == 1 thenreturn false --imuneend-------------------------------------------------------------------------------------------- FIGHT MODE -----------------------if useOTClient thenif isSummon(cid) then --alterado v1.7 soh funciona com o OTClient q eu disponibilizei...local master = getCreatureMaster(cid)if getPlayerStorageValue(master, 248759) == 1 thenvalor = valor * 1.1 --ta aumentando 10% de dano/def e diminuindo 10% de dano/defelseif getPlayerStorageValue(master, 248759) == 3 thenvalor = valor * 0.9endendif isSummon(attacker) thenlocal master = getCreatureMaster(attacker)if getPlayerStorageValue(master, 248759) == 1 thenvalor = valor * 1.1elseif getPlayerStorageValue(master, 248759) == 3 thenvalor = valor * 0.9endendend----------------------------------------------------------------------------------------------- SKILLs Q CURAM O ATTACKER ---------------------------------local function doHeal(cid, amount)if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) thenamount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))endif getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then --alterado v1.6doCreatureAddHealth(cid, amount)doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)endendif damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE thenif getPlayerStorageValue(attacker, 95487) >= 1 thendoHeal(attacker, valor)setPlayerStorageValue(attacker, 95487, -1) --alterado v1.6endelseif damageCombat == SEED_BOMBDAMAGE thendoHeal(attacker, valor)end------------------------------------------------------SACRED FIRE-----------------------if combat == SACREDDAMAGE and not ehNPC(cid) then --alterado v1.6local ret = {}ret.id = cidret.cd = 9ret.check = getPlayerStorageValue(cid, conds["Silence"])ret.eff = 39ret.cond = "Silence"doCondition2(ret)end-----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE thenif isInArray(lifestealPassive, getCreatureName(attacker)) then --alterado v1.4doCreatureAddHealth(attacker, math.floor(valor))doSendAnimatedText(getThingPos(attacker), "+"..math.floor(valor), 30)endendif getCreatureName(cid) == "Absol" thenif damageCombat == DARKDAMAGE thensetPlayerStorageValue(cid, 253, 1)endendif combat == COMBAT_PHYSICALDAMAGE or combat == PHYSICALDAMAGE thenif getPlayerStorageValue(attacker, 51695) >= 1 thenvalor = math.floor(valor * 2)endend--------------------------------------------if isSummon(cid) thenif hasHeldItem(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) thenif getHeldName(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) == "return" thenif isMonster(attacker) and not isSummon(attacker) thenvalorReturn = math.abs(valor * helds.returnHunt[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)])elsevalorReturn = math.abs(valor * helds.returnDuel[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)])endif getCreatureName(cid) == "Blissey" thenvalorReturn = valorReturn / 4enddoTargetCombatHealth(getCreatureMaster(cid), attacker, damageCombat, -valorReturn, -valorReturn, 255)endendendif isSummon(attacker) thenif isParalyze(attacker) then return false endif combat == COMBAT_PHYSICALDAMAGE thendoTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6elsedoTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)endelseif combat ~= COMBAT_PHYSICALDAMAGE thendoCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor)elsedoCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor)addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6endif isSummon(cid) and valor ~= 0 then-- addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")addEvent(doPlayerSendCancel, 10, getCreatureMaster(cid), "#ph#,"..getCreatureHealth(cid)..","..getCreatureMaxHealth(cid).."")endendif damageCombat == FIREDAMAGE and not isBurning(cid) thenlocal ret = {}ret.id = cidret.cd = math.random(5, 12)ret.check = getPlayerStorageValue(cid, conds["Burn"])local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker)damage = math.floor((getPokemonLevel(attacker)+lvl)/2)if isSummon(attacker) thenif hasHeldItem(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) thenif getHeldName(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) == "hellfire" thendamage = math.floor(damage * helds.hellfire[getHeldTier(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid)])endendendret.damage = damageret.cond = "Burn"doCondition2(ret)elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) thenlocal ret = {}ret.id = cidret.cd = math.random(6, 15)ret.check = getPlayerStorageValue(cid, conds["Poison"])local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker)damage = math.floor((getPokemonLevel(attacker)+lvl)/2)if isSummon(attacker) thenif hasHeldItem(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) thenif getHeldName(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid) == "poison" thendamage = math.floor(damage * helds.poison[getHeldTier(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid)])endendendret.damage = damageret.cond = "Poison"doCondition2(ret)end------------------------------------POTIONS-------------------------------------------if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS thenif getPlayerStorageValue(cid, 173) >= 1 thenif damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE thensetPlayerStorageValue(cid, 173, -1) --alterado v1.6doSendAnimatedText(getThingPos(cid), "LOST HEAL", 144)doPlayerSendCancel(getCreatureMaster(cid), "#ph#,"..getCreatureHealth(cid)..","..getCreatureMaxHealth(cid).."")endendend----------------------------------------PASSIVAS------------------------------------- --alterado v1.7 \/passiveName = getCreatureName(cid)if isSummon(cid) and isInArray({"Ditto", "Shiny Ditto"}, passiveName) thenpassiveName = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "transName") or getCreatureName(cid)endif isSummon(cid) thenif hasHeldItem(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) thenif getHeldName(getPlayerSlotItem(getCreatureMaster(cid), 8).uid) == "elemental" thenif math.random(1, 100) <= helds.elemental[getHeldTier(getPlayerSlotItem(getCreatureMaster(cid), 8).uid)] thendocastspell(cid, "Elemental")endendendendif isSummon(cid) and isSummon(attacker) thenif valor >= getCreatureHealth(cid) or getCreatureHealth(cid) <= 0 thenlocal owner = getCreatureMaster(cid)if getLivePokes(owner) <= 1 thenlocal pvpp = getPlayerStorageValue(getCreatureMaster(attacker), 89051) and getPlayerStorageValue(getCreatureMaster(attacker), 89051) or 0setPlayerStorageValue(getCreatureMaster(attacker), 89051, pvpp + 1)local pvplp = getPlayerStorageValue(getCreatureMaster(owner), 89052) and getPlayerStorageValue(getCreatureMaster(owner), 89052) or 0setPlayerStorageValue(owner, 89052, pvplp + 1)endendendif passivesChances["Sheer Cold"][passiveName] and math.random(1, 100) <= passivesChances["Sheer Cold"][passiveName] thendocastspell(cid, "Sheer Cold")endif passivesChances["Bone Spin"][passiveName] and math.random(1, 100) <= passivesChances["Bone Spin"][passiveName] thendocastspell(cid, "Bone Slash")endif passivesChances["Rage"][passiveName] and math.random(1, 100) <= passivesChances["Rage"][passiveName] thendocastspell(cid, "Rage")endif passivesChances["Night Daze"][passiveName] and math.random(1, 100) <= passivesChances["Night Daze"][passiveName] thendocastspell(cid, "Night Daze")endif passivesChances["Spikes"][passiveName] and math.random(1, 100) <= passivesChances["Spikes"][passiveName] thendocastspell(cid, "Spikes")endif passivesChances["Poison Powder"][passiveName] and math.random(1, 100) <= passivesChances["Poison Powder"][passiveName] thendocastspell(cid, "Poison Powder")end-------------------------------------------Counter Helix------------------------------------if passivesChances["Helix"][passiveName] and math.random(1, 100) <= passivesChances["Helix"][passiveName] thendocastspell(cid, "Counter Helix")end-------------------------------------------Lava Counter/Electricity----------------------------if passivesChances["Fire_Thunder"][passiveName] and math.random(1, 100) <= passivesChances["Fire_Thunder"][passiveName] thendocastspell(cid, "Lava-Electricity")end---------------------------------------Stunning Confusion-----------------------------------------if passivesChances["Stunning"][passiveName] and math.random(1, 100) <= passivesChances["Stunning"][passiveName] thendocastspell(cid, "Stunning Confusion")end-----------------------------------------Groundshock-----------------------------------if passivesChances["Groundshock"][passiveName] and math.random(1, 100) <= passivesChances["Groundshock"][passiveName] thendocastspell(cid, "Groundshock")end--------------------------------------Electric Charge---------------------------------------------if passivesChances["Electric Charge"][passiveName] and math.random(1, 100) <= passivesChances["Electric Charge"][passiveName] thendocastspell(cid, "Electric Charge", 0, 0)end-------------------------------------Melody------------------------------------if passivesChances["Melody"][passiveName] and math.random(1, 100) <= passivesChances["Melody"][passiveName] thendocastspell(cid, "Melody")end------------------------------------- Dragon Fury / Fury ---------------------------------------if passivesChances["Dragon Fury"][passiveName] and math.random(1, 100) <= passivesChances["Dragon Fury"][passiveName] thendocastspell(cid, "Dragon Fury", 0, 0)end------------------------------------- Mega Drain ---------------------------------------if passivesChances["Mega Drain"][passiveName] and math.random(1, 100) <= passivesChances["Mega Drain"][passiveName] thendocastspell(cid, "Mega Drain")end------------------------------------- Spores Reaction ---------------------------------------if isSummon(attacker) thenif passivesChances["Spores Reaction"][passiveName] and math.random(1, 100) <= passivesChances["Spores Reaction"][passiveName] thendocastspell(cid, "Spores Reaction")endelsechance = passivesChances["Spores Reaction"][passiveName]if chance and math.random(1, 100) <= (chance - 5) thendocastspell(cid, "Spores Reaction")endend------------------------------------ Amnesia ----------------------------------------if passivesChances["Amnesia"][passiveName] and math.random(1, 100) <= passivesChances["Amnesia"][passiveName] thendocastspell(cid, "Amnesia", 0, 0)end----------------------------------- Zen Mind -----------------------------------------if passivesChances["Zen Mind"][passiveName] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][passiveName] thendocastspell(cid, "Zen Mind", 0, 0)end---------------------------------- Mirror Coat ---------------------------------------if passivesChances["Mirror Coat"][passiveName] and math.random(1, 100) <= passivesChances["Mirror Coat"][passiveName] thendocastspell(cid, "Mirror Coat", 0, 0)end------------------------------------ Blaze -------------------------------------------if passivesChances["Blaze"][passiveName] and math.random(1, 100) <= passivesChances["Blaze"][passiveName] thendocastspell(cid, "Blaze", 0, 0)end--------------------------------- Illusion -----------------------------------------return falseend Link para o comentário Compartilhar em outros sites More sharing options...
Deadpool 862 Postado Novembro 24, 2015 Autor Share Postado Novembro 24, 2015 Next, obrigado, mas já arrumei. Esqueci de editar o tópico. Como nao uso sistema de level, eu refiz vários cálculos. Sobre a vida do poke, def, attack, e dano por move.. Mas obg.. Link para o comentário Compartilhar em outros sites More sharing options...
SamueLGuedes 333 Postado Dezembro 11, 2015 Share Postado Dezembro 11, 2015 Tópico Movido Este tópico foi movido de "OTServ → Suporte OTServ → Suporte Derivados" para "OTServ → Suporte OTServ → Suporte Derivados → Pedidos e dúvidas resolvidos - Servidores derivados". Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Abril 21, 2018 Share Postado Abril 21, 2018 A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. + Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda. * Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados