Ir para conteúdo

Slicer

Príncipe
  • Total de itens

    4014
  • Registro em

  • Última visita

  • Dias Ganhos

    47

Posts postados por Slicer

  1. /\ algu assim?

    local function getItemInPos(pos)   local info = getTileInfo(pos)   local p = {x=pos.x, y=pos.y, z=pos.z}      for i = info.things, 1, -1 do      p.stackpos = i      local item = getTileThingByPos(p)      if item.itemid > 0 and not isCreature(item.uid) then         return item      end   end   return {itemid = 0, uid = 0}endlocal positions = {  {x = 1052, y = 1056, z = 7},  {x = 1052, y = 1057, z = 7},  {x = 1052, y = 1058, z = 7},  {x = 1052, y = 1059, z = 7},  {x = 1052, y = 1060, z = 7},  {x = 1052, y = 1051, z = 7}}local lastPos = nilfor i = 0, math.random(0, 19) do   lastPos = positions[(i%#positions)+1]     addEvent(doSendMagicEffect, i*150, lastPos, 6)   endlocal item = getItemInPos(lastPos)--agora podes usar item.itemid e item.uid

     

  2. 2 horas atrás, dalvorsn disse:
    local info = getTileInfo(pos)info.things -- todos os things( items + creatures )info.items -- todos os itemsinfo.creatures -- creatures no tileinfo.topItems info.downItems

    Sem o id e sem o stackpos o melhor que da pra fazer é puxar a lista de todos no tile

     

     

    Caso voce saiba o stack pos, tu pode usar esse aqui:

    getThingFromPosition(pos)

     

    setField(L, "things", tile->getThingCount());setField(L, "creatures", tile->getCreatureCount());setField(L, "items", tile->getItemCount());setField(L, "topItems", tile->getTopItemCount());setField(L, "downItems", tile->getDownItemCount());

     

    acho que soh retorna a qntdade heim... o.O

  3. troca isso:

    doSendAnimatedText(getThingPos(attacker), -returnbonus, 77)doCreatureAddHealth(attacker, -returnbonus)

    por isso:

    if returnbonus > 0 then   doSendAnimatedText(getThingPos(attacker), -returnbonus, 77)   doCreatureAddHealth(attacker, -returnbonus)end

     

  4. o.O eu n mudei nd no script doq tava antes... Os valores na lib tao como eu mandei antes neh? 

    Pra mim, o problema ta em o xReturn estando tao 'alto' no script.. acho q ele deveria ta mais abaixo após todo o calculo de % de clan e def e o escambau... ;x

    Tenta assim..

    Spoiler
    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}, [MUDBOMBDAMAGE] = {cor = COLOR_GROUND},[FAIRYDAMAGE] = {cor = COLOR_PSYCHIC},}--alterado v1.5  tabelas agora estao em lib/configuration.lualocal function sendPlayerDmgMsg(cid, text)    if not isCreature(cid) then return true end    doPlayerSendTextMessage(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_PSYCHIC},[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}-- Return ---local xreturn_tiers = {   [15] = {bonus = DmgReturn1},   [16] = {bonus = DmgReturn2},   [17] = {bonus = DmgReturn3},   [18] = {bonus = DmgReturn4},   [19] = {bonus = DmgReturn5},   [20] = {bonus = DmgReturn6},   [21] = {bonus = DmgReturn7},}local function xReturn(cid, attacker, value)   if isSummon(cid) then      local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)      local Tier = getItemAttribute(ball.uid, "heldx")            Tier = tonumber(Tier)      local returnbonus = 0      if isSummon(attacker) then         if Tier and xreturn_tiers[Tier] then            returnbonus = math.floor(value * xreturn_tiers[Tier].bonus)         end         elseif isMonster(attacker) then         if Tier and xreturn_tiers[Tier] then            returnbonus = math.floor(value * (xreturn_tiers[Tier].bonus * 5))         end        end      doSendAnimatedText(getThingPos(attacker), -returnbonus, 77)      doCreatureAddHealth(attacker, -returnbonus)   endend-- Return ---function onStatsChange(cid, attacker, type, combat, value)if 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 == attacker    if not isInArray(fixdamages, combat) and combats[combat] then        doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)    endreturn trueendlocal damageCombat = combat----------------------------------------------------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    endreturn trueend--------------------------------------------------if isMonster(cid) thenlocal 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   endend--------------------------------------------------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, cid, 20, "Seu "..getPokeName(getCreatureSummons(attacker)[1]).." causou "..valor.." de dano no "..getSomeoneDescription(cid)..".")    endreturn trueend--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then--if ehMonstro(attacker) and getClosestFreeTile(getCreatureSummons(cid)[1]) >= 1 then--doSendAnimatedText(getThingPosWithDebug(attacker), "Hmpfg!", 215)--doMonsterSetTarget(attacker, getCreatureSummons(cid)[1])--endreturn falseend--if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then--if ehMonstro(attacker) and getClosestFreeTile(getCreatureSummons(cid)[1]) <= 0 then--doSendAnimatedText(getThingPosWithDebug(attacker), "Grrr!", 215)--doMonsterSetTarget(attacker, cid)--end--return true--end--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS thenif isSummon(attacker) or isPlayer(attacker) then   if canAttackOther(cid, attacker) == "Cant" then return false endend    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)          doTeleportThing(cid, {x = 1001, y = 1026, z = 14}, false)          doCreatureAddHealth(cid, getCreatureMaxHealth(cid))          return false --alterado v1.8                      elseif getPlayerStorageValue(cid, 577869) >= 1 then      setPlayerStorageValue(cid, 577869, 0)      doTeleportThing(cid, {x = 1009, y = 1084, z = 14}, false)      doCreatureAddHealth(cid, getCreatureMaxHealth(cid))      return false      elseif getPlayerStorageValue(cid, 20000) >= 1 then      setPlayerStorageValue(cid, 20000, 0)      setPlayerStorageValue(cid,30,0)                   doTeleportThing(cid, {x = 1172, y = 1366, z = 7}, false)             doCreatureAddHealth(cid, getCreatureMaxHealth(cid))       doPlayerSendTextMessage(cid, 20, "Voc·morreu no Saffari por Favor volte mais tarde!")       return false       elseif getPlayerStorageValue(cid, 20001) >= 1 then      setPlayerStorageValue(cid,20001,0)              doTeleportThing(cid, {x = 1371, y = 1240, z = 7}, false)      doCreatureAddHealth(cid, getCreatureMaxHealth(cid))      doRemoveCondition(cid, CONDITION_OUTFIT)       doPlayerSendTextMessage(cid, 20, "You are died in demon room, please come back!")      return false      end                 -------------------------------------------     ---      if getPlayerStorageValue(cid, 18) >= 1 then      setPlayerStorageValue(cid,18,0)       doRemoveCondition(cid, CONDITION_OUTFIT)      end     ------------Saffari----------------------------------       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      ------------Edited Golden Arena------------------      if getPlayerStorageValue(cid, 22545) == 1 then         if getGlobalStorageValue(22550) == 1 then            doPlayerSendTextMessage(cid, 20, "Voc·foi o ?timo sobrevivente da Golden Arena! Tome sua recompensa!")            doPlayerAddItem(cid, 2160, getPlayerStorageValue(cid, 22551)*30/4)             doPlayerAddExperience(cid, 1000, getPlayerStorageValue(cid, 22551)*30)             setPlayerStorageValue(cid, 22545, -1)            doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false)              doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))            --setPlayerRecordWaves(cid)                 endGoldenArena()            return false --alterado v1.8                    else             setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)             setPlayerStorageValue(cid, 22545, -1)             doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)              doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*5)                doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))             --setPlayerRecordWaves(cid)                  return true         end      end    ----------------------------------     if getPlayerSex(cid) == 1 then     local corpse = doCreateItem(3058, 1, getThingPos(cid))     doDecayItem(corpse)     doItemSetAttribute(corpse, "name", "dead human (Vol:8). You recognize ".. getCreatureName(cid) ..". He was killed by a ".. getCreatureName(attacker) .."")     elseif getPlayerSex(cid) == 0 then          local corpse = doCreateItem(3065, 1, getThingPos(cid))     doDecayItem(corpse)     doItemSetAttribute(corpse, "name", "dead human (Vol:8). You recognize ".. getCreatureName(cid) ..". She was killed by a ".. getCreatureName(attacker) .."")    end    end    doCreatureAddHealth(cid, -valor, 3, 180)    if not isPlayer(cid) then    addEvent(sendPlayerDmgMsg, 5, cid, "Voc·perdeu "..valor.." em pontos de vida por um attack de "..getSomeoneDescription(attacker)..".")    endreturn falseend----------------------------------------------------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 monstroend----------------------------------------------------------------------REFLECT-----------------------if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then   if not isInArray({"Team Claw", "Team Slice"}, 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" then         doRemoveCondition(cid, CONDITION_OUTFIT)          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   endend-------------------------------------------------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    endif damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, 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                         --alterado v1.6    end    -- X-Attack --    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then    local TierArray = {8, 9, 10, 11, 12, 13, 14}    local Tiers = {[8] = {bonus = AtkBonus1},[9] = {bonus = AtkBonus2},[10] = {bonus = AtkBonus3},[11] = {bonus = AtkBonus4},[12] = {bonus = AtkBonus5},[13] = {bonus = AtkBonus6},[14] = {bonus = AtkBonus7},} local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)local Tier = getItemAttribute(ball.uid, "heldx")    local bonusatk = {}    if isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) then    bonusatk = Tiers[Tier].bonus    else    bonusatk = 1    end        multiplier = multiplier * bonusatk    end    -- X-Attack --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    endlocal cd = getPlayerStorageValue(attacker, conds["Miss"])        local cd2 = getPlayerStorageValue(attacker, conds["Confusion"])         local cd3 = getPlayerStorageValue(attacker, conds["Stun"])         legendarios = { "Blue Tower 1", "Blue Tower 2", "Blue Tower 3", "Red Tower 1", "Red Tower 2", "Red Tower 3", "Entei", "Moltres2", "Zapdos2", "Articuno2", "Celebi2"}        if cd >= 0 or cd2 >= 0 or cd3 >= 0 and not isInArray(legendarios, getCreatureName(attacker))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        endend--------------------------------------------------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       block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid)))       valor = getOffense(attacker) * block              if isInArray(specialabilities["counter"], getCreatureName(cid)) then          if math.random(1, 100) <= 10 then             doCreatureAddHealth(attacker, -valor, 3, 180)                 valor = 0             doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)          end       end         else           -- Critical --        if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then          local Tiers = {             [50] = {chance = Critical1},             [51] = {chance = Critical2},             [52] = {chance = Critical3},             [53] = {chance = Critical4},             [54] = {chance = Critical5},             [55] = {chance = Critical6},             [56] = {chance = Critical7},          }          local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)          local Tier = getItemAttribute(ball.uid, "heldx")          if Tier and Tier > 84 and Tier < 92 then             if math.random(1,100) <= Tiers[Tier].chance then                valor = valor * 2                doSendAnimatedText(getThingPos(cid), "STK "..(valor * 0.25), 115)             end          end       end       -- Critical --       valor = valor / getDefense(cid)   end        -------------------------Edited CLAN SYSTEM-----------------------------------    if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then       valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")                           --alterado v1.3    elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then       valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))    end    -----------------------------------------------------------------------    ---------------------- FEAR / ROAR ------------------------------------    if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then         --alterado!!    return true    end--------------------------------------------------------------------------if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, 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   endendif damageCombat == GROUNDDAMAGE then   if isInArray(specialabilities["levitate"], getCreatureName(cid)) then      valor = 0                      --alterado v1.5   endendif getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then    doSetCreatureOutfit(cid, {lookType = ironBody.outfit}, ironBody.duration * 1000)    setPlayerStorageValue(cid, 9658783, 1)    setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown)    addEvent(function()        if isCreature(cid) then            doRemoveCondition(cid, CONDITION_OUTFIT)            setPlayerStorageValue(cid, 9658783, -1)        end    end, ironBody.duration * 1000)end-----------------------------------------------------------------------------local p = getThingPos(cid)                     if p.x == 1 and p.y == 1 and p.z == 10 thenreturn false                                    endif getPlayerStorageValue(cid, 9658783) == 1 thenreturn false     --imuneend-----------------------------------------------------------------------------local config = {    sturdy = {                    --Pok?ons que possuem a habilidade Sturdy. Configura?o: ["nome_do_pokemon"] = lookType,        ["Aggron"] = 2279,        ["Mega Aggron"] = 2299,        ["Shiny Mega Aggron"] = 2299,                ["Shiny Aggron"] = 2280,        ["Sudowoodo"] = 2282,        ["Shiny Sudowoodo"] = 2282    },    cd = 0,                      --Cooldown da habilidade.    duration = 8,                 --Dura?o, em segundos, do Sturdy.    storage = 8402,} if getPlayerStorageValue(cid, config.storage) > -1 then    return falseendlocal hp = getCreatureHealth(cid) - valorif not isPlayer(cid) and hp <= 1 and config.sturdy[getCreatureName(cid)] then    local b = true    if isSummon(cid) then        local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)        if ball and getCD(ball.uid, "sturdy") > 0 then            b = false        end    end    if b then        if hp < 1 then            doCreatureAddHealth(cid, hp < 0 and (hp * -1) + 1 or 1)        end        setPlayerStorageValue(cid, config.storage, 1)        if isSummon(cid) then            local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)            if ball then                setCD(ball.uid, "sturdy", config.duration + config.cd)             end        end        doSetCreatureOutfit(cid, {lookType = config.sturdy[getCreatureName(cid)]}, config.duration * 1000)        addEvent(function()            if isCreature(cid) and getPlayerStorageValue(cid, config.storage) > -1 then                setPlayerStorageValue(cid, config.storage, -1)                doCreatureAddHealth(cid, -getCreatureHealth(cid))            end        end, config.duration * 1000)    endendif valor >= getCreatureHealth(cid) then    if isInArray(cannotKill, combat) and isPlayer(cid) then        valor = getCreatureHealth(cid) - 1    else        valor = getCreatureHealth(cid)     endend    valor = math.floor(valor)             --alterado v1.6    ------------------ SKILLs Q CURAM O ATTACKER ---------------------------------local function doHeal(cid, amount)if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then   amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))endif getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then           --alterado v1.6   doCreatureAddHealth(cid, amount)   doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) endend          if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then   if getPlayerStorageValue(attacker, 95487) >= 1 then      doHeal(attacker, valor)      setPlayerStorageValue(attacker, 95487, -1)                  --alterado v1.6   endelseif 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 getCreatureName(attacker) == "Crobat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Golbat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Zubat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Shiny Crobat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Shiny Golbat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Shiny Zubat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend--------------------------------------------    valor = math.abs(valor)    --alterado v1.9        -- Return --            xReturn(cid, attacker, valor)    -- Return --        if isSummon(cid) and valor >= getCreatureHealth(cid) then    onPokeHealthChange(getCreatureMaster(cid), true)     elseif isSummon(cid) then    onPokeHealthChange(getCreatureMaster(cid))    end     if isSummon(attacker) then        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), "Seu "..getCreatureName(cid).." perdeu "..valor.." de vida pelo attack do "..getSomeoneDescription(attacker)..".")        end    end    if damageCombat == FIREDAMAGE and not isBurning(cid) then    -- Helfire --    local hellfire = {}    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) thenlocal ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)local TierArray = {22, 23, 24, 25, 26, 27, 28}local Tiers = {[22] = {bonus = HellBonus1},[23] = {bonus = HellBonus2},[24] = {bonus = HellBonus3},[25] = {bonus = HellBonus4},[26] = {bonus = HellBonus5},[27] = {bonus = HellBonus6},[28] = {bonus = HellBonus7},}local Tier = getItemAttribute(ball.uid, "heldx")if Tier and Tier > 21 and Tier < 29 thenhellfire = Tiers[Tier].bonuselsehellfire = 1    end    end    -- Hellfire --       local ret = {}       ret.id = cid       ret.cd = math.random(5, 12)       ret.check = getPlayerStorageValue(cid, conds["Burn"])       ret.damage = isSummon(attacker) and (getMasterLevel(attacker)+getPokemonBoost(attacker)) * hellfire or getPokemonLevel(attacker)       ret.cond = "Burn"              doCondition2(ret)    elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then    -- Poison --    local xpoison = {}    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) thenlocal ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)local TierArray = {29, 30, 31, 32, 33, 34, 35}local Tiers = {[29] = {bonus = PoisonBonus1},[30] = {bonus = PoisonBonus2},[31] = {bonus = PoisonBonus3},[32] = {bonus = PoisonBonus4},[33] = {bonus = PoisonBonus5},[34] = {bonus = PoisonBonus6},[35] = {bonus = PoisonBonus7},}local Tier = getItemAttribute(ball.uid, "heldx")if Tier and Tier > 28 and Tier < 36 thenxpoison = Tiers[Tier].bonuselseif not isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) thenxpoison = 1end    end    -- Poison --       local ret = {}       ret.id = cid       ret.cd = math.random(6, 15)       ret.check = getPlayerStorageValue(cid, conds["Poison"])       local lvl = isSummon(attacker) and (getMasterLevel(attacker)) * xpoison or getPokemonLevel(attacker)       ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2)       ret.cond = "Poison"              doCondition2(ret)    end--[[---------------CD BAR-----------------------if isSummon(cid) then   doCreatureExecuteTalkAction(getCreatureMaster(cid), "/pokeread")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)      end   endend----------------------------------------PASSIVAS------------------------------------- --alterado v1.6 \/ todas as passivas agora estao em lib/pokemon moves.lua-------------------------------------------Counter Helix------------------------------------if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then   docastspell(cid, "Counter Helix")end-------------------------------------------Lava-Counter----------------------------if passivesChances["Lava"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Lava"][getCreatureName(cid)] then   docastspell(cid, "Lava-Counter")end-------------------------------------------Shock-Counter----------------------------if passivesChances["Shock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Shock"][getCreatureName(cid)] then   docastspell(cid, "Shock-Counter")end-------------------------------------------Bone Spin----------------------------if passivesChances["Bone"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Bone"][getCreatureName(cid)] then   docastspell(cid, "Bone-Spin")end---------------------------------------Stunning Confusion-----------------------------------------if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then     docastspell(cid, "Stunning Confusion")end--------------------------------------Electric Charge---------------------------------------------if passivesChances["Electric Charge"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Electric Charge"][getCreatureName(cid)] then   docastspell(cid, "Electric Charge", 0, 0)end-------------------------------------Melody------------------------------------if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then    docastspell(cid, "Melody")end------------------------------------- Dragon Fury / Fury ---------------------------------------if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then   docastspell(cid, "Dragon Fury", 0, 0)end------------------------------------- Mega Drain ---------------------------------------if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then   docastspell(cid, "Mega Drain")end------------------------------------- Spores Reaction ---------------------------------------if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then   docastspell(cid, "Spores Reaction")end------------------------------------ Amnesia ----------------------------------------   if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then    docastspell(cid, "Amnesia", 0, 0)end----------------------------------- Zen Mind -----------------------------------------if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then   docastspell(cid, "Zen Mind", 0, 0)end---------------------------------- Mirror Coat ---------------------------------------if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 80) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then      docastspell(cid, "Mirror Coat", 0, 0)end--------------------------------- Illusion -----------------------------------------return falseend

     

     

  5. Ja mencionei alguma vez q eu ODEIO esse exp.lua? kk' 

     

    Ve se assim vai...

    Spoiler
    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}, [MUDBOMBDAMAGE] = {cor = COLOR_GROUND},[FAIRYDAMAGE] = {cor = COLOR_PSYCHIC},}--alterado v1.5  tabelas agora estao em lib/configuration.lualocal function sendPlayerDmgMsg(cid, text)    if not isCreature(cid) then return true end    doPlayerSendTextMessage(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_PSYCHIC},[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}-- Return ---local xreturn_tiers = {   [15] = {bonus = DmgReturn1},   [16] = {bonus = DmgReturn2},   [17] = {bonus = DmgReturn3},   [18] = {bonus = DmgReturn4},   [19] = {bonus = DmgReturn5},   [20] = {bonus = DmgReturn6},   [21] = {bonus = DmgReturn7},}local function xReturn(cid, attacker, value)   if isSummon(cid) then      local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)      local Tier = getItemAttribute(ball.uid, "heldx")            Tier = tonumber(Tier)      local returnbonus = 0      if isSummon(attacker) then         if Tier and xreturn_tiers[Tier] then            returnbonus = math.floor(value * xreturn_tiers[Tier].bonus)         end         elseif isMonster(attacker) then         if Tier and xreturn_tiers[Tier] then            returnbonus = math.floor(value * (xreturn_tiers[Tier].bonus * 5))         end        end      doSendAnimatedText(getThingPos(attacker), -returnbonus, 77)      doCreatureAddHealth(attacker, -returnbonus)   endend-- Return ---function onStatsChange(cid, attacker, type, combat, value)if 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 == attacker    if not isInArray(fixdamages, combat) and combats[combat] then        doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)    endreturn trueendlocal damageCombat = combat----------------------------------------------------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    endreturn trueend--------------------------------------------------if isMonster(cid) thenlocal 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   endend--------------------------------------------------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, cid, 20, "Seu "..getPokeName(getCreatureSummons(attacker)[1]).." causou "..valor.." de dano no "..getSomeoneDescription(cid)..".")    endreturn trueend--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then--if ehMonstro(attacker) and getClosestFreeTile(getCreatureSummons(cid)[1]) >= 1 then--doSendAnimatedText(getThingPosWithDebug(attacker), "Hmpfg!", 215)--doMonsterSetTarget(attacker, getCreatureSummons(cid)[1])--endreturn falseend--if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then--if ehMonstro(attacker) and getClosestFreeTile(getCreatureSummons(cid)[1]) <= 0 then--doSendAnimatedText(getThingPosWithDebug(attacker), "Grrr!", 215)--doMonsterSetTarget(attacker, cid)--end--return true--end--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS thenif isSummon(attacker) or isPlayer(attacker) then   if canAttackOther(cid, attacker) == "Cant" then return false endend    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)          doTeleportThing(cid, {x = 1001, y = 1026, z = 14}, false)          doCreatureAddHealth(cid, getCreatureMaxHealth(cid))          return false --alterado v1.8                      elseif getPlayerStorageValue(cid, 577869) >= 1 then      setPlayerStorageValue(cid, 577869, 0)      doTeleportThing(cid, {x = 1009, y = 1084, z = 14}, false)      doCreatureAddHealth(cid, getCreatureMaxHealth(cid))      return false      elseif getPlayerStorageValue(cid, 20000) >= 1 then      setPlayerStorageValue(cid, 20000, 0)      setPlayerStorageValue(cid,30,0)                   doTeleportThing(cid, {x = 1172, y = 1366, z = 7}, false)             doCreatureAddHealth(cid, getCreatureMaxHealth(cid))       doPlayerSendTextMessage(cid, 20, "Voc·morreu no Saffari por Favor volte mais tarde!")       return false       elseif getPlayerStorageValue(cid, 20001) >= 1 then      setPlayerStorageValue(cid,20001,0)              doTeleportThing(cid, {x = 1371, y = 1240, z = 7}, false)      doCreatureAddHealth(cid, getCreatureMaxHealth(cid))      doRemoveCondition(cid, CONDITION_OUTFIT)       doPlayerSendTextMessage(cid, 20, "You are died in demon room, please come back!")      return false      end                 -------------------------------------------     ---      if getPlayerStorageValue(cid, 18) >= 1 then      setPlayerStorageValue(cid,18,0)       doRemoveCondition(cid, CONDITION_OUTFIT)      end     ------------Saffari----------------------------------       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      ------------Edited Golden Arena------------------      if getPlayerStorageValue(cid, 22545) == 1 then         if getGlobalStorageValue(22550) == 1 then            doPlayerSendTextMessage(cid, 20, "Voc·foi o ?timo sobrevivente da Golden Arena! Tome sua recompensa!")            doPlayerAddItem(cid, 2160, getPlayerStorageValue(cid, 22551)*30/4)             doPlayerAddExperience(cid, 1000, getPlayerStorageValue(cid, 22551)*30)             setPlayerStorageValue(cid, 22545, -1)            doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false)              doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))            --setPlayerRecordWaves(cid)                 endGoldenArena()            return false --alterado v1.8                    else             setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)             setPlayerStorageValue(cid, 22545, -1)             doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)              doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*5)                doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))             --setPlayerRecordWaves(cid)                  return true         end      end    ----------------------------------     if getPlayerSex(cid) == 1 then     local corpse = doCreateItem(3058, 1, getThingPos(cid))     doDecayItem(corpse)     doItemSetAttribute(corpse, "name", "dead human (Vol:8). You recognize ".. getCreatureName(cid) ..". He was killed by a ".. getCreatureName(attacker) .."")     elseif getPlayerSex(cid) == 0 then          local corpse = doCreateItem(3065, 1, getThingPos(cid))     doDecayItem(corpse)     doItemSetAttribute(corpse, "name", "dead human (Vol:8). You recognize ".. getCreatureName(cid) ..". She was killed by a ".. getCreatureName(attacker) .."")    end    end    doCreatureAddHealth(cid, -valor, 3, 180)    if not isPlayer(cid) then    addEvent(sendPlayerDmgMsg, 5, cid, "Voc·perdeu "..valor.." em pontos de vida por um attack de "..getSomeoneDescription(attacker)..".")    endreturn falseend----------------------------------------------------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 monstroend----------------------------------------------------------------------REFLECT-----------------------if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then   if not isInArray({"Team Claw", "Team Slice"}, 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" then         doRemoveCondition(cid, CONDITION_OUTFIT)          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   endend-------------------------------------------------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    endif damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, 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                         --alterado v1.6    end    -- X-Attack --    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then    local TierArray = {8, 9, 10, 11, 12, 13, 14}    local Tiers = {[8] = {bonus = AtkBonus1},[9] = {bonus = AtkBonus2},[10] = {bonus = AtkBonus3},[11] = {bonus = AtkBonus4},[12] = {bonus = AtkBonus5},[13] = {bonus = AtkBonus6},[14] = {bonus = AtkBonus7},} local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)local Tier = getItemAttribute(ball.uid, "heldx")    local bonusatk = {}    if isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) then    bonusatk = Tiers[Tier].bonus    else    bonusatk = 1    end        multiplier = multiplier * bonusatk    end    -- X-Attack --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    endlocal cd = getPlayerStorageValue(attacker, conds["Miss"])        local cd2 = getPlayerStorageValue(attacker, conds["Confusion"])         local cd3 = getPlayerStorageValue(attacker, conds["Stun"])         legendarios = { "Blue Tower 1", "Blue Tower 2", "Blue Tower 3", "Red Tower 1", "Red Tower 2", "Red Tower 3", "Entei", "Moltres2", "Zapdos2", "Articuno2", "Celebi2"}        if cd >= 0 or cd2 >= 0 or cd3 >= 0 and not isInArray(legendarios, getCreatureName(attacker))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        endend--------------------------------------------------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       block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid)))       valor = getOffense(attacker) * block              if isInArray(specialabilities["counter"], getCreatureName(cid)) then          if math.random(1, 100) <= 10 then             doCreatureAddHealth(attacker, -valor, 3, 180)                 valor = 0             doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)          end       end          -- Return --               xReturn(cid, attacker, valor)       -- Return --      else           -- Return --            xReturn(cid, attacker, valor)       -- Return --       -- Critical --        if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then          local Tiers = {             [50] = {chance = Critical1},             [51] = {chance = Critical2},             [52] = {chance = Critical3},             [53] = {chance = Critical4},             [54] = {chance = Critical5},             [55] = {chance = Critical6},             [56] = {chance = Critical7},          }          local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)          local Tier = getItemAttribute(ball.uid, "heldx")          if Tier and Tier > 84 and Tier < 92 then             if math.random(1,100) <= Tiers[Tier].chance then                valor = valor * 2                doSendAnimatedText(getThingPos(cid), "STK "..(valor * 0.25), 115)             end          end       end       -- Critical --       valor = valor / getDefense(cid)   end        -------------------------Edited CLAN SYSTEM-----------------------------------    if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then       valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")                           --alterado v1.3    elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then       valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))    end    -----------------------------------------------------------------------    ---------------------- FEAR / ROAR ------------------------------------    if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then         --alterado!!    return true    end--------------------------------------------------------------------------if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, 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   endendif damageCombat == GROUNDDAMAGE then   if isInArray(specialabilities["levitate"], getCreatureName(cid)) then      valor = 0                      --alterado v1.5   endendif getCreatureName(cid) == ironBody.name and getPlayerStorageValue(cid, 2818) < os.time() and math.random(1, 100) <= ironBody.chance then    doSetCreatureOutfit(cid, {lookType = ironBody.outfit}, ironBody.duration * 1000)    setPlayerStorageValue(cid, 9658783, 1)    setPlayerStorageValue(cid, 2818, os.time() + ironBody.cooldown)    addEvent(function()        if isCreature(cid) then            doRemoveCondition(cid, CONDITION_OUTFIT)            setPlayerStorageValue(cid, 9658783, -1)        end    end, ironBody.duration * 1000)end-----------------------------------------------------------------------------local p = getThingPos(cid)                     if p.x == 1 and p.y == 1 and p.z == 10 thenreturn false                                    endif getPlayerStorageValue(cid, 9658783) == 1 thenreturn false     --imuneend-----------------------------------------------------------------------------local config = {    sturdy = {                    --Pok?ons que possuem a habilidade Sturdy. Configura?o: ["nome_do_pokemon"] = lookType,        ["Aggron"] = 2279,        ["Mega Aggron"] = 2299,        ["Shiny Mega Aggron"] = 2299,                ["Shiny Aggron"] = 2280,        ["Sudowoodo"] = 2282,        ["Shiny Sudowoodo"] = 2282    },    cd = 0,                      --Cooldown da habilidade.    duration = 8,                 --Dura?o, em segundos, do Sturdy.    storage = 8402,} if getPlayerStorageValue(cid, config.storage) > -1 then    return falseendlocal hp = getCreatureHealth(cid) - valorif not isPlayer(cid) and hp <= 1 and config.sturdy[getCreatureName(cid)] then    local b = true    if isSummon(cid) then        local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)        if ball and getCD(ball.uid, "sturdy") > 0 then            b = false        end    end    if b then        if hp < 1 then            doCreatureAddHealth(cid, hp < 0 and (hp * -1) + 1 or 1)        end        setPlayerStorageValue(cid, config.storage, 1)        if isSummon(cid) then            local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)            if ball then                setCD(ball.uid, "sturdy", config.duration + config.cd)             end        end        doSetCreatureOutfit(cid, {lookType = config.sturdy[getCreatureName(cid)]}, config.duration * 1000)        addEvent(function()            if isCreature(cid) and getPlayerStorageValue(cid, config.storage) > -1 then                setPlayerStorageValue(cid, config.storage, -1)                doCreatureAddHealth(cid, -getCreatureHealth(cid))            end        end, config.duration * 1000)    endendif valor >= getCreatureHealth(cid) then    if isInArray(cannotKill, combat) and isPlayer(cid) then        valor = getCreatureHealth(cid) - 1    else        valor = getCreatureHealth(cid)     endend    valor = math.floor(valor)             --alterado v1.6    ------------------ SKILLs Q CURAM O ATTACKER ---------------------------------local function doHeal(cid, amount)if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then   amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))endif getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then           --alterado v1.6   doCreatureAddHealth(cid, amount)   doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) endend          if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then   if getPlayerStorageValue(attacker, 95487) >= 1 then      doHeal(attacker, valor)      setPlayerStorageValue(attacker, 95487, -1)                  --alterado v1.6   endelseif 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 getCreatureName(attacker) == "Crobat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Golbat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Zubat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Shiny Crobat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Shiny Golbat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then   if getCreatureName(attacker) == "Shiny Zubat" then                    --alterado v1.4      doCreatureAddHealth(attacker, math.floor(valor))      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)   endend--------------------------------------------    valor = math.abs(valor)    --alterado v1.9    if isSummon(cid) and valor >= getCreatureHealth(cid) then    onPokeHealthChange(getCreatureMaster(cid), true)     elseif isSummon(cid) then    onPokeHealthChange(getCreatureMaster(cid))    end     if isSummon(attacker) then        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), "Seu "..getCreatureName(cid).." perdeu "..valor.." de vida pelo attack do "..getSomeoneDescription(attacker)..".")        end    end    if damageCombat == FIREDAMAGE and not isBurning(cid) then    -- Helfire --    local hellfire = {}    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) thenlocal ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)local TierArray = {22, 23, 24, 25, 26, 27, 28}local Tiers = {[22] = {bonus = HellBonus1},[23] = {bonus = HellBonus2},[24] = {bonus = HellBonus3},[25] = {bonus = HellBonus4},[26] = {bonus = HellBonus5},[27] = {bonus = HellBonus6},[28] = {bonus = HellBonus7},}local Tier = getItemAttribute(ball.uid, "heldx")if Tier and Tier > 21 and Tier < 29 thenhellfire = Tiers[Tier].bonuselsehellfire = 1    end    end    -- Hellfire --       local ret = {}       ret.id = cid       ret.cd = math.random(5, 12)       ret.check = getPlayerStorageValue(cid, conds["Burn"])       ret.damage = isSummon(attacker) and (getMasterLevel(attacker)+getPokemonBoost(attacker)) * hellfire or getPokemonLevel(attacker)       ret.cond = "Burn"              doCondition2(ret)    elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then    -- Poison --    local xpoison = {}    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) thenlocal ball = getPlayerSlotItem(getCreatureMaster(attacker), 8)local TierArray = {29, 30, 31, 32, 33, 34, 35}local Tiers = {[29] = {bonus = PoisonBonus1},[30] = {bonus = PoisonBonus2},[31] = {bonus = PoisonBonus3},[32] = {bonus = PoisonBonus4},[33] = {bonus = PoisonBonus5},[34] = {bonus = PoisonBonus6},[35] = {bonus = PoisonBonus7},}local Tier = getItemAttribute(ball.uid, "heldx")if Tier and Tier > 28 and Tier < 36 thenxpoison = Tiers[Tier].bonuselseif not isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) thenxpoison = 1end    end    -- Poison --       local ret = {}       ret.id = cid       ret.cd = math.random(6, 15)       ret.check = getPlayerStorageValue(cid, conds["Poison"])       local lvl = isSummon(attacker) and (getMasterLevel(attacker)) * xpoison or getPokemonLevel(attacker)       ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2)       ret.cond = "Poison"              doCondition2(ret)    end--[[---------------CD BAR-----------------------if isSummon(cid) then   doCreatureExecuteTalkAction(getCreatureMaster(cid), "/pokeread")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)      end   endend----------------------------------------PASSIVAS------------------------------------- --alterado v1.6 \/ todas as passivas agora estao em lib/pokemon moves.lua-------------------------------------------Counter Helix------------------------------------if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then   docastspell(cid, "Counter Helix")end-------------------------------------------Lava-Counter----------------------------if passivesChances["Lava"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Lava"][getCreatureName(cid)] then   docastspell(cid, "Lava-Counter")end-------------------------------------------Shock-Counter----------------------------if passivesChances["Shock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Shock"][getCreatureName(cid)] then   docastspell(cid, "Shock-Counter")end-------------------------------------------Bone Spin----------------------------if passivesChances["Bone"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Bone"][getCreatureName(cid)] then   docastspell(cid, "Bone-Spin")end---------------------------------------Stunning Confusion-----------------------------------------if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then     docastspell(cid, "Stunning Confusion")end--------------------------------------Electric Charge---------------------------------------------if passivesChances["Electric Charge"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Electric Charge"][getCreatureName(cid)] then   docastspell(cid, "Electric Charge", 0, 0)end-------------------------------------Melody------------------------------------if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then    docastspell(cid, "Melody")end------------------------------------- Dragon Fury / Fury ---------------------------------------if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then   docastspell(cid, "Dragon Fury", 0, 0)end------------------------------------- Mega Drain ---------------------------------------if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then   docastspell(cid, "Mega Drain")end------------------------------------- Spores Reaction ---------------------------------------if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then   docastspell(cid, "Spores Reaction")end------------------------------------ Amnesia ----------------------------------------   if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then    docastspell(cid, "Amnesia", 0, 0)end----------------------------------- Zen Mind -----------------------------------------if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then   docastspell(cid, "Zen Mind", 0, 0)end---------------------------------- Mirror Coat ---------------------------------------if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 80) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then      docastspell(cid, "Mirror Coat", 0, 0)end--------------------------------- Illusion -----------------------------------------return falseend

     

     

  6. se o x-return antes tava retornando todo tpw de dado e se tu boto oq eu passei no ms lugar então n era pra da problema o.O provavelmente tu colocou no lugar mas boto algun(s) 'end' a + ou tiro algu(s)...

    oq eu passei ali era soh pra ser trocado pelo que tava entre o 1* comentário do x-return e o ultimo... 

     

    seria bom tu passar o teu exp2.0 antes de fazer a modificação soh para ver se eh esse ms o problema...

     

    sobre a msg, da pra por isso:

    doSendAnimatedText(getThingPos(attacker),-returnbonus, 77)

    emcima disso:

    doCreatureAddHealth(attacker, -returnbonus)
  7. algu assim?

    lib/

    Spoiler
    DmgReturn1 = 0.05DmgReturn2 = 0.06DmgReturn3 = 0.08DmgReturn4 = 0.1DmgReturn5 = 0.12DmgReturn6 = 0.14DmgReturn7 = 0.18

     

    exp2.0

    Spoiler
    -- Return --   local Tiers = {[15] = {bonus = DmgReturn1},[16] = {bonus = DmgReturn2},[17] = {bonus = DmgReturn3},[18] = {bonus = DmgReturn4},[19] = {bonus = DmgReturn5},[20] = {bonus = DmgReturn6},[21] = {bonus = DmgReturn7},}if isSummon(cid) then   local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)   local Tier = getItemAttribute(ball.uid, "heldx")         Tier = tonumber(Tier)   local returnbonus = 0   if isSummon(attacker) then      if Tier and Tiers[Tier] then         returnbonus = math.floor(valor * Tiers[Tier].bonus)      end      elseif isMonster(attacker) and not isSummon(attacker) then      if Tier and Tiers[Tier] then         returnbonus = math.floor(valor * (Tiers[Tier].bonus * 5))      end     end   doCreatureAddHealth(attacker, -returnbonus)end-- Return --

     

     

  8. procurando na source inteira por elas kk'

     

    negocio eh usar programas como 'notepad++' ou 'Atom'/'Sublime' e usar a busca em diretório/projeto para procurar por elas e ir mudando kk'

     

    podes procurar por coisas como:

    << "

    sprintf

     

    ou tentar procurar pelas frases que tu quer trocar... soh n esquece de n botar números na tua busca.. por exemplo a frase q tu boto ae, tu tem q procurar como:

    You advanced from

     

  9. troca:

    doPlayerAddItem(cid, 2392, 10)
    doPlayerAddItem(cid, 12346, 10)
    doPlayerAddItem(cid, 2152, 10)
    doPlayerAddItem(cid, 12344, 5)

    para:

    local item1 = doPlayerAddItem(cid, 2392, 10)
    doItemSetAttribute(item1, "unique", getCreatureName(cid))
    local item2 = doPlayerAddItem(cid, 12346, 10)
    doItemSetAttribute(item2, "unique", getCreatureName(cid))
    local item3 = doPlayerAddItem(cid, 2152, 10)
    doItemSetAttribute(item3, "unique", getCreatureName(cid))
    local item4 = doPlayerAddItem(cid, 12344, 5)
    doItemSetAttribute(item4, "unique", getCreatureName(cid))

    ​PS; não garanto que vá funcionar já que não lembro se o meu sistema de unique funcionava com items 'stackable'...

  10. Tava tentando fazer um script POO pra um sistema de torneio e descobrir que a pasta lib/ eh recarregada para cada outra pasta do servidor (acabando complemente com minha ideia)...

    Então oque tu pode fazer é simplesmente dar 'reload' no resto ;p Tipo...

    /reload talkactions

    /reload creatureevents

    /reload actions

    ...

  11. nao sei se é ctz mais..

    2251 é o id do hd

    ou seja, a cada wave ele vai multiplicando o id

    entao seria:

    wave 1: 2251 = 1 hd

    wave2: 2251*2 = 2 hd

    creio que funciona assim x

    isso...

     

    quando fiz o sistema alguem me disse q era assim q funcionava na pxg então..

  12.  

    local items = {
       [2282] = {2283, 1},
       [2281] = {2285, 1},
       [2280] = {2286, 1},
       [2279] = {2287, 1},
    }
    local exhaust = 3
    
    function onUse(cid, item, frompos, item2, topos)
       if cid == item2.uid then
          if getPlayerStorageValue(cid, 3278) <= os.time() then
             doCreatureAddHealth(cid, (getCreatureMaxHealth(cid)*0.3))
             doCreatureSay(cid, "Uff...", 19)
             doRemoveItem(item.uid, 1)
             setPlayerStorageValue(cid, 3278, os.time()+exhaust)
          else
             doCreatureSay(cid, "Espere "..exhaust.." segundos!", 19)
          end
       elseif items[item2.itemid] then
          doPlayerAddItem(cid, items[item2.itemid][1], items[item2.itemid][2])
          doCreatureSay(cid, "Combined herbs!", 19)
          doRemoveItem(item.uid, 1)
          doRemoveItem(item2.uid, 1)
       else
          doCreatureSay(cid, "You can not combine these herbs!", 19)
       end
    return true
    end
  13. o arquivo do sistema original do otc eh esse:

    Game_shaders.rar

    eh soh por na pasta modules e dai dentro do jogo apertar ctrl+X eu achu... dai vai aparecer uma comboBox para escolher qual efeito queres q apareça...

     

    clr q isso ae sao soh os efeitos originais do otc e tb soh serve para mostrar o efeito q tu escolher... n eh por area q nem o da pxg...

     

    n existe tutorial de como criar novos efeitos e nem me pergunte pq eu tb n sei... abre um dos arquivos .flag com um editor de texto q tu vai ver como eles sao feitos...

  14. o problema deve ta aki:

     

    tonumber(getItemAttribute(item, "poke"):match("%[(.-)/"))

    no pda o atributo 'hp' guarda qnts % do hp total do poke foi perdido... no caso, 1 = 100%, 0.5 = 50% da life... tem q ver oq tu ta realmente acessando usando isso ae... tenta printar isso ae e manda ae no topico pra nos ver oq retorna...

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...