Ir para conteúdo

atakashi

Visconde
  • Total de itens

    332
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Posts postados por atakashi

  1. a entendi, acho que você deve está correto.


    No eu tenho que por mais espaço nesse tile?

    esse tile existe, mas é um 2x2.


    no caso eu devo aumentar ele?


    só há um problema, hoje eu fiz um teste que existe um bug, se a pessoa por acaso ela parar na agua, com aquela roupa de nadar do tibia normal, e tentar andar dá esse mesmo erro no console.

  2. só aparece isso, não da pra saber daonde ta vindo, não da para levantar a barra porque isso fica dando direto sem parar.

    não da para ver de qual script é.


    E se não me engano esse erro não mostra de qual script é, preciso saber em que lugar ele deve está mais ou menos.

     


    A foto está ai, é aquela imagem ali de cima, aquele é o erro, faz travar o servidor e fica se repetindo direto.

     

    Esse é o erro:

    seila.jpg?1435262542

  3. Pessoal, meu servidor começou a aparecer este erro aqui, quando da ele fica repetindo direto e dai trava meu servidor.

    já to a 1 semana mechendo em tudo para tentar tirar, e não consigo encontrar onde está acontecendo isso, por favor me deêm uma luz para eu tentar achar.

    seila.jpg?1435262542

  4. no caso ela é usada quando meu pokemon ataca com Melee.

    com move ele não da erro, e se eu não atacar também não da erro, eu já procurei essas funções e não achei nos script que mexi.


    Achei o Problema, nesta função.

    if isSummon(cid) and isPlayer(getCreatureMaster(cid)) and getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldy") and getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldy") == 22 then
    return true
    else   
       doSendMagicEffect(getThingPos(cid), 3)  
    end		
    
  5. Pessoal, Estou tentando por o Held Sistema no meu ot, e não para de dar esse erro quando vou atacar com um pokemon.

    Já reinstalei o sistema umas 10x, e sem o sistema não dá esse erro.

    O erro é este.

    [22/06/2015 19:24:16] [Error - CreatureScript Interface] 
    [22/06/2015 19:24:16] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
    [22/06/2015 19:24:16] Description: 
    [22/06/2015 19:24:16] (luaGetPlayerSlotItem) Player not found
    
    [22/06/2015 19:24:16] [Error - CreatureScript Interface] 
    [22/06/2015 19:24:16] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
    [22/06/2015 19:24:16] Description: 
    [22/06/2015 19:24:16] (luaGetItemAttribute) Item not found
    
    Aqui vai meu Exp 2.0.lua

    local combats = {                        
    [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}, --alterado v1.9
    }
    
    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},
    [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}
    local ignored = {POISONEDDAMAGE, BURNEDDAMAGE}                
    local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}
    
    function onStatsChange(cid, attacker, type, combat, value)
    
    if combat == FLYSYSTEMDAMAGE then return false end
    if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV
    
    local damageCombat = combat
    
    if not isCreature(attacker) then  --alterado v2.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 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)                       
          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)             
              doTeleportThing(cid, posBackPVP, false)
              doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
              return false --alterado v1.8
           end
           
           for i = 1, #getPlayersOnline() do
                local players = getPlayersOnline()[i]
                local where = {x = 1056, y = 1067, z = 7}  --Para onde os jogadores serão teleportados.
                local sto = 2308       --Storage da quest.
                if getPlayerStorageValue(players, sto) >= 1 then
                    doTeleportThing(players, where)
                    setPlayerStorageValue(players, sto, -1)
                    doPlayerSendTextMessage(players, 27, "O jogador "..getCreatureName(cid).." morreu durante a quest. Você foi teleportado.")
                end
            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
    
           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)  
                 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)    
                 doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                 setPlayerRecordWaves(cid)     
                 return true
              end
           end
    
           if getPlayerStorageValue(cid, 98796) >= 1 then
              setPlayerStorageValue(cid, 98796, -1)
              setPlayerStorageValue(cid, 98797, -1)                      --alterado v1.8
              doTeleportThing(cid, SafariOut, false)
              doSendMagicEffect(getThingPos(cid), 21)
              doPlayerSendTextMessage(cid, 27, "You die in the saffari... Best luck in the next time!")
              return false --alterado v1.8
           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")
           
           if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) <= 10 then
              setPlayerStorageValue(cid, Agatha.stoIni, -1)
              setPlayerStorageValue(cid, Agatha.stoRec, -1)
              setPlayerStorageValue(cid, Agatha.stoPer, -1)
              setPlayerStorageValue(cid, Agatha.stoEni, -1)        --alterado v1.9  agatha quest
              setPlayerStorageValue(cid, Agatha.stoRes, -1)
           end
        end
        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) and not isSummon(cid) and not isSummon(attacker) then
    return false                                          --alterado v1.9 /\
    end
    --------------------------------------------------
    --------------------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)                    
          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        
          poketype2 = pokes[getCreatureName(cid)].type2
       end
       if not poketype1 or not poketype2 then return false end  
       
        if getCreatureCondition(cid, CONDITION_INVISIBLE) then
        return false
        end
    if 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    
            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   
             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               
           if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then  --passiva Foresight!!
    
    	   if isSummon(cid) and isPlayer(getCreatureMaster(cid))then
    	   local TierEle = {
    [78] = {chance = Elemen1},
    [79] = {chance = Elemen2},
    [80] = {chance = Elemen3},
    [81] = {chance = Elemen4},
    [82] = {chance = Elemen5},
    [83] = {chance = Elemen6},
    [84] = {chance = Elemen7},
    }
    local Tier = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldx")
    if Tier and Tier > 77 and Tier < 85 and getPlayerStorageValue(cid, 22666) ~= 5 then
    if math.random(1,100) <= TierEle[Tier].chance then
    docastspell(cid, "Elemental", -1000, -5000)
    setPlayerStorageValue(cid, 22666, 5)
    addEvent(function() setPlayerStorageValue(cid, 22666, 0) end, 1 * 1800)
    end
    end	 
    end
              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  
                  doSendMagicEffect(getThingPos(cid), 211)
                  doSendAnimatedText(getThingPos(attacker), "MISS", 215)         
                  return false
               end
            end
    end
    --------------------------------------------------
    local valor = value
    
        if multiplier == 1.5 and poketype2 == "no type" then
            multiplier = 2                                         
        elseif multiplier == 1.5 and poketype2 ~= "no type" then    
            multiplier = 1.75       
        elseif multiplier == 1.25 then    
            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
           
           local value = getOffense(attacker) > 1000 and 3 or 2
           block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) --alterado v1.9 testem essa nova formula plzzz '--'
            valor = (getOffense(attacker)/value) * block
           
            if valor <= 0 then
              valor = math.random(5, 10) --alterado v1.9
           end
           
        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 --        
    if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
    local returnbonus = {}
    local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)
    local Tiers = {
    [15] = {bonus = DmgReturn1},
    [16] = {bonus = DmgReturn2},
    [17] = {bonus = DmgReturn3},
    [18] = {bonus = DmgReturn4},
    [19] = {bonus = DmgReturn5},
    [20] = {bonus = DmgReturn6},
    [21] = {bonus = DmgReturn7},
    }
    local Tier = getItemAttribute(ball.uid, "heldx")
    if Tier and Tier > 14 and Tier < 22 then
    returnbonus = math.floor((valor * Tiers[Tier].bonus))
    elseif not isInArray(Tiers, Tier) then
    returnbonus = 0
    end
    doCreatureAddHealth(attacker, -returnbonus)
    end
    -- Return --
    else
    -- Return --        
    if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then
    local returnbonus = {}
    local ball = getPlayerSlotItem(getCreatureMaster(cid), 8)
    local Tiers = {
    [15] = {bonus = DmgReturn1},
    [16] = {bonus = DmgReturn2},
    [17] = {bonus = DmgReturn3},
    [18] = {bonus = DmgReturn4},
    [19] = {bonus = DmgReturn5},
    [20] = {bonus = DmgReturn6},
    [21] = {bonus = DmgReturn7},
    }
    local Tier = getItemAttribute(ball.uid, "heldx")
    if Tier and Tier > 14 and Tier < 22 then
    returnbonus = math.floor((valor * Tiers[Tier].bonus))
    elseif not isInArray(Tiers, Tier) then
    returnbonus = 0
    end
    doCreatureAddHealth(attacker, -returnbonus)
    end
    -- Return --
    -- Critical -- 
    if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then
    local Tiers = {
    [85] = {chance = Critical1},
    [86] = {chance = Critical2},
    [87] = {chance = Critical3},
    [88] = {chance = Critical4},
    [89] = {chance = Critical5},
    [90] = {chance = Critical6},
    [91] = {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
        
        -----------------------------------------------------------------------
        ---------------------- FEAR / ROAR ------------------------------------
        if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then         
        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     
             valor = valor * 0                      
          end
       end
    end
    
    if damageCombat == GROUNDDAMAGE then
    
      if isInArray(specialabilities["levitate"], getCreatureName(cid)) then
            valor = 0
          end
        end
    
    
    
    if damageCombat == POISONDAMAGE then
      if isInArray(pokes[getCreatureName(cid)].type, "steel") or isInArray(pokes[getCreatureName(cid)].type2, "steel") then
            valor = 0
          end
        end
    
    
    if damageCombat == POISONEDDAMAGE then
      if isInArray(pokes[getCreatureName(cid)].type, "steel") or isInArray(pokes[getCreatureName(cid)].type2, "steel") then
    
            valor = 0
          end
        end
    
    
    if damageCombat == GROUNDDAMAGE then
      if isInArray(pokes[getCreatureName(cid)].type, "flying") or isInArray(pokes[getCreatureName(cid)].type2, "flying") then  
    
            valor = 0
          end
        end
    
    
    if damageCombat == GHOSTDAMAGE then
      if isInArray(pokes[getCreatureName(cid)].type, "normal") or isInArray(pokes[getCreatureName(cid)].type2, "normal") then
    
            valor = 0
          end
        end
    
    
    if damageCombat == ELECTRICDAMAGE then  
      if isInArray(pokes[getCreatureName(cid)].type, "ground") or isInArray(pokes[getCreatureName(cid)].type2, "ground") then
    
            valor = 0
          end
        end
    
    
    if damageCombat == PSYCHICDAMAGE then
      if isInArray(pokes[getCreatureName(cid)].type, "dark") or isInArray(pokes[getCreatureName(cid)].type2, "dark") then
    
            valor = 0
          end
        end
    
    
    if damageCombat == MUDBOMBDAMAGE then
      if isInArray(pokes[getCreatureName(cid)].type, "flying") or isInArray(pokes[getCreatureName(cid)].type2, "flying") then
    
            valor = 0
          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                                  
       local master = getCreatureMaster(cid)
       if getPlayerStorageValue(master, 248759) == 1 then
          valor = valor * 1.1
       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   
    -----------------------------------------------------------------------------
        if valor >= getCreatureHealth(cid) then
            if isInArray(cannotKill, combat) and isPlayer(cid) then
                valor = getCreatureHealth(cid) - 1
            else
                valor = getCreatureHealth(cid)
            end
        end
        valor = math.floor(valor)            
        
    ------------------ 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           
       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)                  
       end
    elseif damageCombat == SEED_BOMBDAMAGE then
       doHeal(attacker, valor)
    end
    --------------------------------------------
    ----------SACRED FIRE-----------------------
    if combat == SACREDDAMAGE and not ehNPC(cid) then    
       local ret = {}
       ret.id = cid
       ret.cd = 9
       ret.check = getPlayerStorageValue(cid, conds["Silence"])
       ret.eff = 39
       ret.cond = "Silence"
    
       doCondition2(ret)
    elseif combat == MUDBOMBDAMAGE and not ehNPC(cid) then
       local ret = {}                                        
       ret.id = cid
       ret.cd = 9
       ret.eff = 34
       ret.check = getPlayerStorageValue(cid, conds["Miss"])
       ret.spell = "Mud Bomb"       --alterado v1.9
       ret.cond = "Miss"
       
       doCondition2(ret)
    end
    ---------------------------------------------
    --------------Passiva Lifesteal Clobat------------
    if combat == COMBAT_PHYSICALDAMAGE then
       if getCreatureName(attacker) == "Crobat" then                    
          doCreatureAddHealth(attacker, math.floor(valor))
          doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)
       end
    end
    --- X-Agility/X-Strafe/X-Rage/X-Harden ---
    if combat == COMBAT_PHYSICALDAMAGE then
    local TierAgi = {
    [43] = {chance = Agility1},
    [44] = {chance = Agility2},
    [45] = {chance = Agility3},
    [46] = {chance = Agility4},
    [47] = {chance = Agility5},
    [48] = {chance = Agility6},
    [49] = {chance = Agility7},
    }
    local TierStra = {
    [50] = {chance = Strafe1},
    [51] = {chance = Strafe2},
    [52] = {chance = Strafe3},
    [53] = {chance = Strafe4},
    [54] = {chance = Strafe5},
    [55] = {chance = Strafe6},
    [56] = {chance = Strafe7},
    }
    local TierRage = {
    [57] = {chance = Rage1},
    [58] = {chance = Rage2},
    [59] = {chance = Rage3},
    [60] = {chance = Rage4},
    [61] = {chance = Rage5},
    [62] = {chance = Rage6},
    [63] = {chance = Rage7},
    }
    if isPlayer(getCreatureMaster(attacker)) and isSummon(attacker) then
    local Tier = getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, "heldx")
    if Tier and Tier > 42 and Tier < 50 and getPlayerStorageValue(attacker, 22666) ~= 1 then
    if math.random(1,100) <= TierAgi[Tier].chance then
    docastspell(attacker, "Agility")
    setPlayerStorageValue(attacker, 22666, 1)
    addEvent(function() setPlayerStorageValue(attacker, 22666, 0) end, 15 * 1000)
    end
    elseif Tier and Tier > 49 and Tier < 57 and getPlayerStorageValue(attacker, 22666) ~= 2 then
    if math.random(1,100) <= TierStra[Tier].chance then
    docastspell(attacker, "Strafe")
    setPlayerStorageValue(attacker, 22666, 2)
    addEvent(function() setPlayerStorageValue(attacker, 22666, 0) end, 15 * 1000)
    end
    elseif Tier and Tier > 56 and Tier < 64 and getPlayerStorageValue(attacker, 22666) ~= 3 then
    if math.random(1,100) <= TierRage[Tier].chance then
    docastspell(attacker, "Rage")
    setPlayerStorageValue(attacker, 22666, 3)
    addEvent(function() setPlayerStorageValue(attacker, 22666, 0) end, 15 * 1000)
    end
    end
    end
    if isPlayer(getCreatureMaster(cid)) and isSummon(cid) then
    local TierHarden = {
    [64] = {chance = Harden1},
    [65] = {chance = Harden2},
    [66] = {chance = Harden3},
    [67] = {chance = Harden4},
    [68] = {chance = Harden5},
    [69] = {chance = Harden6},
    [70] = {chance = Harden7},
    }
    local TierEle = {
    [78] = {chance = Elemen1},
    [79] = {chance = Elemen2},
    [80] = {chance = Elemen3},
    [81] = {chance = Elemen4},
    [82] = {chance = Elemen5},
    [83] = {chance = Elemen6},
    [84] = {chance = Elemen7},
    }
    local Tier = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "heldx")
    if Tier and Tier > 63 and Tier < 71 and getPlayerStorageValue(cid, 22666) ~= 4 then
    if math.random(1,100) <= TierHarden[Tier].chance then
    docastspell(cid, "Harden")
    setPlayerStorageValue(cid, 22666, 4)
    addEvent(function() setPlayerStorageValue(cid, 22666, 0) end, 8 * 1000)
    end
    end
    if Tier and Tier > 77 and Tier < 85 and getPlayerStorageValue(cid, 22666) ~= 5 then
    if math.random(1,100) <= TierEle[Tier].chance then
    docastspell(cid, "Elemental", -1000, -5000)
    setPlayerStorageValue(cid, 22666, 5)
    addEvent(function() setPlayerStorageValue(cid, 22666, 0) end, 1 * 1800)
    end
    end
    end
    end
    --- X-Agility/Strafe/Rage/Harden ---
    --------------------------------------------
        valor = math.abs(valor)    --alterado v1.9
        if isSummon(attacker) then
            if combat == COMBAT_PHYSICALDAMAGE then
                doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)
                addEvent(doDoubleHit, 1000, attacker, cid, valor, races)      
            else
                doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)
            end
        else
            if combat ~= COMBAT_PHYSICALDAMAGE then
                doCreatureAddHealth(cid, -valor, 3, combats[damageCombat].cor)  
            else
                doCreatureAddHealth(cid, -valor, 3, races[getMonsterInfo(getCreatureName(cid)).race].cor)
                addEvent(doDoubleHit, 1000, attacker, cid, valor, races)   
            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)..".")
            end
    
        end
        
    if damageCombat == FIREDAMAGE and not isBurning(cid) then
        -- Helfire --
        local hellfire = {}
        if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then
    local 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 then
    hellfire = Tiers[Tier].bonus
    else
    hellfire = 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)) then
    local 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 then
    xpoison = Tiers[Tier].bonus
    elseif not isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) then
    xpoison = 1
    end
        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)  
             doSendAnimatedText(getThingPos(cid), "Lost Heal", 144)
          end
       end
    end
    ----------------------------------------PASSIVAS-------------------------------------
    -------------------------------------------Counter Helix------------------------------------
    if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then
    docastspell(cid, "Counter Helix")
    end
    -------------------------------------------Lava Counter/Electricity----------------------------
    if passivesChances["Fire_Thunder"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Fire_Thunder"][getCreatureName(cid)] then
    docastspell(cid, "Lava-Electricity")
    end
    ---------------------------------------Stunning Confusion-----------------------------------------
    if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then
    docastspell(cid, "Stunning Confusion")
    end
    ---------------------------------------SOlar Force-----------------------------------------
    if passivesChances["Solar"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Solar"][getCreatureName(cid)] then
    docastspell(cid, "Solar Force")
    end
    ---------------------------------------Water Space-----------------------------------------
    if passivesChances["Water"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Water"][getCreatureName(cid)] then
    docastspell(cid, "Water Space")
    end
    ---------------------------------------Explosion Star-----------------------------------------
    if passivesChances["Exstar"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Exstar"][getCreatureName(cid)] then
    docastspell(cid, "Explosion Star")
    end
    ---------------------------------------Gravity Earth-----------------------------------------
    if passivesChances["Gravity"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Gravity"][getCreatureName(cid)] then
    docastspell(cid, "Gravity Earth")
    end
    -----------------------------------------Groundshock-----------------------------------
    if passivesChances["Groundshock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Groundshock"][getCreatureName(cid)] then
    docastspell(cid, "Groundshock")
    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, 100) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then
    docastspell(cid, "Mirror Coat", 0, 0)
    end
    --------------------------------- Illusion -----------------------------------------
    return false
    end
    

     

    Se alguém puder me ajuda obrigado.

  6. lordkraytos, o jogo não fica lag aqui em casa, e o servidor não fica na minha casa.

    quanto a os pokemons, sim poderiam ter geraçao 3 e 4 etc, porém o cliente, a base que pegamos foi orrível e não deu para voltar atrás, não botamos novos pokemons por não queremos, e sim por não ter como.


    a e sim, estamos pondo os geração 5 pouco a pouco, deixamos de lado a 3 e 4, por motivo do espaço no cliente, é muito dificil por pokemons novos com um cliente cheio, demorado e complicado que pode trazer alguns problemas. Porém estamos pondo a geração 5 pouquin em pouquin, so este mês foram 5 pokemons da geração 5.

  7. Atualização 2.5.0

     

    [ + ] Nova Quest, Super Box Quest.

    [ + ] Aumentado ataque dos pokemons,

    Shiny Lugia, Shiny Mewtwo, Yveltal, Shiny Reshiram, Shiny Regirock, Ho-oh.

    [ + ] Novos Pokemons adicionados,

    Solosis, Duosion, Reuniclus, Hydreigon, Genesect, Shiny Darkrai, Shiny Lucario, Shiny Riolu

    [ + ] Novas Moves,

    Genesect = Energice

    Genesect = Glaciate

    Genesect = Dark Explosion

    Hydreigon = Dragon Circle

    [ + ] Novos Npcs,

    [Evento] Red Chips (VIP) = Red chip shop, 20% Desconto

    [Evento] Red Chips (SuperBox) = Red chip shop, 60% Desconto

    Wizard Master = Wizard addon

    Mestre da Cabanna = Teletransporte

    Task Seller = Items de clan shop

    [ + ] Novos items,

    Pergaminho P de experiência = Amplificador de Experiência em 300%

    Pergaminho Q de experiência = Amplificador de Experiência em 400%

    Pergaminho R de experiência = Amplificador de Experiência em 500%

    Big Potion = Regenera Vida do pokemon em 60%

    Big Golden Potion = Regenera Vida do pokemon em 100% (Liberado em Quests)

    Ray Stone = Pedra utilizada para evoluções

    Nature Stone = Pedra utilizada para evoluções

    [ + ] Novos pokemons quest,

    Charizard Ultra, Blastoise Ultra, Raikou Nv3, Suicune Nv3, Reshiram Nv3, Zekrom Nv3, Giratina Nv3, Shiny groudon Nv3, Maquina de combate rocket.

    [ + ] Bugs,

    Removido Bugs de quests box15 e box color 1.

    Sistema anti-clonner reforçado.

  8. tibia110.png

    #1 Servidor novo, Dedicado, com staff competente, servidor sem bugs 24 horas e sem donates.

    #2 Hospedado em dedicado, 4 vCPU Xeon E3-1270, 4GB RAM, Uplink: 1000 Mbps.

    #3 Do mesmo dono do Pokemon PRO.

    #- Informações sobe o servidor:

    ( - ) PVP protection: 50 level

    ( - ) Exp Stages

    1 - 50 level, 240x
    51 - 100 level, 100x
    101 - 150 level, 40x
    151 - 200 level, 20x
    201 - 250 level, 14x
    251 - 300 level, 10x
    301 - 351 level, 6x
    351+ level, 4x

    ( - ) Skill rate: 120x

    ( - ) Magic rate: 50x

    ( - ) Loot rate: 5x

     

    #1- Sistemas do servidor:

    [1] Offline Trainer

    [2] Market System

    [3] War System

    [4] Taming System

    [5] Reward System LvL: [40], [80], [120], [150].

    [6] Raid Automaticas

     

    #2- Principais Quests do Tibia:

    [#] Inquisition

    [#] PoI
    [#] Wote
    [#] Warzone
    [#] War Against The Hive Quest
    [#] Demon oak
    [#] Demon helmet
    [#] Anihilator

     

    #3 Downloads:

    Ip-changer: Aqui.

    Client Tibia 10.37: Aqui.

     

    #4 Conexão:

    IP: globalruffz.no-ip.org

    Version: 10.37

     

    -- Mapa completo, com todas cidades, inclusives as novas da versão 10.37, servidor ainda possui alguns bugs sim, por isso contamos com a ajuda de todos players, para que reportem, para que nossa equipe possa está removendo-os.

    -- Servidor inaugurado dia 03/04/2014, Esperamos todos la.

  9. estava pensando em um item, tipo umas exp potion, porem seria de catch.

    tipo esse exp potion:

     


    function onUse(cid, item, frompos, item2, topos)

    local pausa = 8640000000 -- (1000 = 1 segundos) Tempo que o script durará
    local texto = 'You receive double the experience to kill a monster for 24 horas.' -- Texto que irá receber ao usar a potion.
    textofinal = 'Its just minutes.' -- Texto que irá receber quando o efeito da potion acabar.
    local exp = 1.40 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server.
    expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal.

    if item.itemid == 13386 then
    doRemoveItem(item.uid,1)
    doPlayerSetExperienceRate(cid,exp)
    doSendMagicEffect(frompos,13)
    doPlayerSendTextMessage(cid,22,texto)
    addEvent(potion,pausa,cid)
    end
    end

  10. Valeu funciono.

    eu não percebi o de quem usei mais vo posta aqui.

    Fiz umas mudanças para poder acumular o exp.

     

     

    configs = {
    time = 60, ---- TIME IN MINUTES
    }

    local outfit = 1441 -- outfit que vai ganha o bonus
    local xp = 1.15 -- sera mutiplicado o experience rate tipo 2 x 50 = 100

    function onLogin(cid, old, current)
    if getCreatureOutfit(cid).lookType == outfit then
    doPlayerSendCancel(cid, "Seu Bonus de EXP de Outfit VIP foi ativo")
    doPlayerSetExperienceRate(cid, (1+0.10)+(getPlayerExtraExpRate(cid)/100))
    end
    return true
    end

  11. ta dando a exp porem, tipo, eu boto a roupa ai não da exp, ai eu ja com a roupa, troco ela, ou boto ela denovo, ativa o bonus exp, porem se eu tiro a roupa o bonus de exp não para, só para se eu desloga.

  12. Att 2.4.3 - Violet City

    Att de Game, Nova Hunt Power.

    [ + ] Adicionado novos pokemons, Yveltal, Heatran, Shiny Jirachi, Green Dialga, Uxie, Azelf, Mesprit, .

    [ + ] Alteração nos pokemons,

    Shiny Regice,

    Shiny Zekrom,

    Regigigas.

    [ + ] Adicionado novas quests, Rock Stone 2, Hellow Zekrom

    [ + ] Retirado Bugs Traps na quest box6.

    [ + ] Adicionado novo npc, Obi, npc de venda de mobilias para casas.

    [ + ] Adicionado nova city, Violet.

  13. Pessoal, estou com dúvidas num systema de team pvp.

    o sistema pvp ta normal, porem o pessoal do mesmo time ta dando para se matar, e queria tirar isso.

    aquele sistema pvp do pda, que ja vem nele, ele não da para atacar a pessoa do mesmo time, nem o pokemon do mesmo time.

    Em que script aqui eu edito para ficar parecido com esse script do pda.

    as storages de cada time é:

    140125 < time 1

    140124 < time 2

     

    Se alguem souber pelo menos em qual script q eu tenho q mexe para editar isso agradeço.

     

    Ou intaum, aqui tem o script do teleport para entrar no evento.

     

     

     

     

    local conditionBlack = createConditionObject(CONDITION_OUTFIT)
    setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1) 
    addOutfitCondition(conditionBlack, {lookType = 1157, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114})
    local conditionRed = createConditionObject(CONDITION_OUTFIT)
    setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)
    addOutfitCondition(conditionRed, {lookType = 1152, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})
    function onStepIn(cid, item, position, fromPosition)
    if getPlayerAccess(cid) > 3 then
    doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos) return false
    elseif getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
    setGlobalStorageValue(_Lib_Battle_Info.storage_count, getGlobalStorageValue(_Lib_Battle_Info.storage_count)-1)
    end
    if getGlobalStorageValue(_Lib_Battle_Info.storage_count) >= 0 then
    if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) < getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) then
    setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, 1)
    doAddCondition(cid, conditionBlack)
    setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)+1)
    doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. _Lib_Battle_Info.TeamOne.name .. "!")
    else
    setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, 1)
    doAddCondition(cid, conditionRed)
    setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)+1)
    doTeleportThing(cid, _Lib_Battle_Info.TeamTwo.pos)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. _Lib_Battle_Info.TeamTwo.name .. "!")
    end
    end
    if getGlobalStorageValue(_Lib_Battle_Info.storage_count) == 0 then
    removeBattleTp()
    doBroadcastMessage("Battlefield will start in 2 minutes, please create your strategy!")
    addEvent(doBroadcastMessage, 2*60*1000-500, "BattleField will begin now!")
    addEvent(OpenWallBattle, 2*60*1000)
    end
    return true
    end
    

     

     

     

    Eu tentei por as storage do pda no movement dele, porém não consegui, alguem me ajuda ai, em baixo ta as storages ai do pda que qero por para eles entra ja com elas.

    Como faço para cada time entra com essa storage.

     

    Time 1: setPlayerStorageValue(cid, 6598755, 1)

    Time 2: setPlayerStorageValue(cid, 6598754, 1)

  14. Vo testar, e posto aqui.


    Agora ta assim.

    [25/01/2014 08:59:46] [Error - CreatureScript Interface] 
    [25/01/2014 08:59:46] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
    [25/01/2014 08:59:46] Description: 
    [25/01/2014 08:59:46] (luaGetMonsterInfo) Monster not found
    
    [25/01/2014 08:59:46] [Error - CreatureScript Interface] 
    [25/01/2014 08:59:46] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
    [25/01/2014 08:59:46] Description: 
    [25/01/2014 08:59:46] data/creaturescripts/scripts/exp2.0.lua:596: attempt to index a boolean value
    [25/01/2014 08:59:46] stack traceback:
    [25/01/2014 08:59:46] 	data/creaturescripts/scripts/exp2.0.lua:596: in function <data/creaturescripts/scripts/exp2.0.lua:63>
    
  15. Pessoal meu exp2.0, fica dando este erro, porém não tomba ot nem nada. mais qeria tirar esse erro.

    [21/01/2014 22:30:39] [Error - CreatureScript Interface]
    [21/01/2014 22:30:39] data/creaturescripts/scripts/exp2.0.lua:onStatsChange
    [21/01/2014 22:30:39] Description:
    [21/01/2014 22:30:39] data/creaturescripts/scripts/exp2.0.lua:492: attempt to index a boolean value
    [21/01/2014 22:30:39] stack traceback:
    [21/01/2014 22:30:39]     data/creaturescripts/scripts/exp2.0.lua:492: in function <data/creaturescripts/scripts/exp2.0.lua:63>
    

    Aqui meu script exp2.0:

     

     

    local combats = {
    [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}, --alterado v1.9
    }
    
    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},
    [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}
    local ignored = {POISONEDDAMAGE, BURNEDDAMAGE}
    local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}
    
    function onStatsChange(cid, attacker, type, combat, value)
    
    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
    if not isInArray(fixdamages, combat) and combats[combat] then
    doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)
    end
    return true
    end
    
    local damageCombat = combat
    --------------------------------------------------
    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)
    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 getTileInfo(getThingPos(cid)).pvp and isSummon(attacker) then
    doRemoveCondition(cid, CONDITION_OUTFIT)
    doTeleportThing(cid, posBackPVP, false)
    doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
    doPlayerAddSkill(getCreatureMaster(attacker), 1, 1)
    doPlayerAddSkill(cid, 0, 1)
    return false --alterado v1.8
    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
    
    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)
    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)
    doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
    setPlayerRecordWaves(cid)
    return true
    end
    end
    
    if getPlayerStorageValue(cid, 98796) >= 1 then
    setPlayerStorageValue(cid, 98796, -1)
    setPlayerStorageValue(cid, 98797, -1) --alterado v1.8
    doTeleportThing(cid, SafariOut, false)
    doSendMagicEffect(getThingPos(cid), 21)
    doPlayerSendTextMessage(cid, 27, "You die in the saffari... Best luck in the next time!")
    return false --alterado v1.8
    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")
    
    if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) <= 10 then
    setPlayerStorageValue(cid, Agatha.stoIni, -1)
    setPlayerStorageValue(cid, Agatha.stoRec, -1)
    setPlayerStorageValue(cid, Agatha.stoPer, -1)
    setPlayerStorageValue(cid, Agatha.stoEni, -1) --alterado v1.9 agatha quest
    setPlayerStorageValue(cid, Agatha.stoRes, -1)
    end
    end
    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) and not isSummon(cid) and not isSummon(attacker) then
    return false --alterado v1.9 /\
    end
    --------------------------------------------------
    --------------------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)
    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
    poketype2 = pokes[getCreatureName(cid)].type2
    end
    if not poketype1 or not poketype2 then return false end
    
    if getCreatureCondition(cid, CONDITION_INVISIBLE) then
    return false
    end
    if 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
    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
    multiplier = 0.5
    end --alterado v1.6
    end
    elseif combat == COMBAT_PHYSICALDAMAGE then
    if isGhostPokemon(cid) then
    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
    doSendMagicEffect(getThingPos(cid), 211)
    doSendAnimatedText(getThingPos(attacker), "MISS", 215)
    return false
    end
    end
    end
    --------------------------------------------------
    local valor = value
    
    if multiplier == 1.5 and poketype2 == "no type" then
    multiplier = 2
    elseif multiplier == 1.5 and poketype2 ~= "no type" then
    multiplier = 1.75
    elseif multiplier == 1.25 then
    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
    
    local value = getOffense(attacker) > 1000 and 3 or 2
    block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) --alterado v1.9 testem essa nova formula plzzz '--'
    valor = (getOffense(attacker)/value) * block
    
    if valor <= 0 then
    valor = math.random(5, 10) --alterado v1.9
    end
    
    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
    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")
    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
    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
    valor = valor * 0
    end
    end
    end
    
    if damageCombat == GROUNDDAMAGE then
    if isInArray(specialabilities["levitate"], getCreatureName(cid)) then
    valor = 0
    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
    local master = getCreatureMaster(cid)
    if getPlayerStorageValue(master, 248759) == 1 then
    valor = valor * 1.1
    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
    -----------------------------------------------------------------------------
    if valor >= getCreatureHealth(cid) then
    if isInArray(cannotKill, combat) and isPlayer(cid) then
    valor = getCreatureHealth(cid) - 1
    else
    valor = getCreatureHealth(cid)
    end
    end
    valor = math.floor(valor)
    
    ------------------ 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
    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)
    end
    elseif damageCombat == SEED_BOMBDAMAGE then
    doHeal(attacker, valor)
    end
    --------------------------------------------
    ----------SACRED FIRE-----------------------
    if combat == SACREDDAMAGE and not ehNPC(cid) then
    local ret = {}
    ret.id = cid
    ret.cd = 9
    ret.check = getPlayerStorageValue(cid, conds["Silence"])
    ret.eff = 39
    ret.cond = "Silence"
    
    doCondition2(ret)
    elseif combat == MUDBOMBDAMAGE and not ehNPC(cid) then
    local ret = {}
    ret.id = cid
    ret.cd = 9
    ret.eff = 34
    ret.check = getPlayerStorageValue(cid, conds["Miss"])
    ret.spell = "Mud Bomb" --alterado v1.9
    ret.cond = "Miss"
    
    doCondition2(ret)
    end
    ---------------------------------------------
    --------------Passiva Lifesteal Clobat------------
    if combat == COMBAT_PHYSICALDAMAGE then
    if getCreatureName(attacker) == "Crobat" then
    doCreatureAddHealth(attacker, math.floor(valor))
    doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)
    end
    end
    --------------------------------------------
    valor = math.abs(valor) --alterado v1.9
    if isSummon(attacker) then
    if combat == COMBAT_PHYSICALDAMAGE then
    doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)
    addEvent(doDoubleHit, 1000, attacker, cid, valor, races)
    else
    doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)
    end
    else
    if combat ~= COMBAT_PHYSICALDAMAGE then
    doCreatureAddHealth(cid, -valor, 3, combats[damageCombat].cor)
    else
    doCreatureAddHealth(cid, -valor, 3, races[getMonsterInfo(getCreatureName(cid)).race].cor)
    addEvent(doDoubleHit, 1000, attacker, cid, valor, races)
    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)..".")
    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"])
    ret.damage = isSummon(attacker) and getMasterLevel(attacker)+getPokemonBoost(attacker) or getPokemonLevel(attacker)
    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)
    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)
    doSendAnimatedText(getThingPos(cid), "Lost Heal", 144)
    end
    end
    end
    ----------------------------------------PASSIVAS-------------------------------------
    -------------------------------------------Counter Helix------------------------------------
    if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then
    docastspell(cid, "Counter Helix")
    end
    -------------------------------------------Lava Counter/Electricity----------------------------
    if passivesChances["Fire_Thunder"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Fire_Thunder"][getCreatureName(cid)] then
    docastspell(cid, "Lava-Electricity")
    end
    ---------------------------------------Stunning Confusion-----------------------------------------
    if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then
    docastspell(cid, "Stunning Confusion")
    end
    -----------------------------------------Groundshock-----------------------------------
    if passivesChances["Groundshock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Groundshock"][getCreatureName(cid)] then
    docastspell(cid, "Groundshock")
    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, 100) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then
    docastspell(cid, "Mirror Coat", 0, 0)
    end
    --------------------------------- Illusion -----------------------------------------
    return false
    end
    

     

     

  • Quem Está Navegando   0 membros estão online

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