Ir para conteúdo

PDA Sem lvl 1.9 (Editado Por Bolz)


  

227 votos

  1. 1. Querem até qual geração?

    • 3 geração
      44
    • 4 geração
      183
  2. 2. Querem que eu poste o servidor agora?

    • Sim. concerteza
      142
    • Não. nos podemos esperar.
      16


Posts Recomendados

Boa Atualização, Parabéns!

 

Na proxima tenta colocar o Icon System .

Muk ta BUGADO! ele ta invisivel.

Arruma o comando !invite e todos comandos envolvendo House que trava o SERVER!

Qual o ID da Shiny Box?

e outra , você arrumou o problema que o player pode atacar o pokemon de outro player?

 

 

Você poderia também fazer Outlands , acredito que é a unica coisa que falta no seu server.

 

Obrigado.

Editado por justever
Link para o comentário
Compartilhar em outros sites

ótima atualização,ótimo servidor. Porém, com essa atualização bugo geral os ginasios , as storm , as magias mais fortes não causam dano. Se não for pedir mt , tenta equilibrar os pokemons , os shinys + 50 em geral ficam com 80k+ de hp na mão de um lvl 200. Fora isso,servidor impecável,continue atualizando u.u

Link para o comentário
Compartilhar em outros sites

/\ testa ae,

data/lib/NewStatusSyst.lua

apaga tudo e troca por isso.

 

conds = {
["Slow"] = 3890,
["Confusion"] = 3891,  
["Burn"] = 3892,
["Poison"] = 3893,
["Fear"] = 3894,
["Stun"] = 3895,
["Paralyze"] = 3896,                              
["Leech"] = 3897,
["Buff1"] = 3898,
["Buff2"] = 3899,
["Buff3"] = 3900,
["Miss"] = 32659,   
["Silence"] = 32698,     
["Sleep"] = 98271,
}

injuries2 = {
[1] = {n = "slow", m = 3890},
[2] = {n = "confuse", m = 3891},  
[3] = {n = "burn", m = 3892},
[4] = {n = "poison", m = 3893},
[5] = {n = "fear", m = 3894},
[6] = {n = "stun", m = 3895},
[7] = {n = "paralyze", m = 3896},
[8] = {n = "leech", m = 3897},
[9] = {n = "Buff1", m = 3898},
[10] = {n = "Buff2", m = 3899},
[11] = {n = "Buff3", m = 3900},
[12] = {n = "miss", m = 32659},   
[13] = {n = "silence", m = 32698},     
[14] = {n = "sleep", m = 98271},
}

Buffs = {
[1] = {"Buff1", 3898},
[2] = {"Buff2", 3899},
[3] = {"Buff3", 3900},
}

paralizeArea2 = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralizeArea2, CONDITION_PARAM_TICKS, 50000)
setConditionFormula(paralizeArea2, -0.63, -0.63, -0.63, -0.63)

local roardirections = {
[NORTH] = {SOUTH},
[sOUTH] = {NORTH},
[WEST] = {EAST},           --edited sistema de roar
[EAST] = {WEST}}

function doSendSleepEffect(cid)
if not isCreature(cid) or not isSleeping(cid) then return true end
doSendMagicEffect(getThingPos(cid), 32)
addEvent(doSendSleepEffect, 1500, cid)
end

local outFurys = {
["Shiny Charizard"] = {outFury = 1073},  
["Shiny Blastoise"] = {outFury = 1074},    
}

local outImune = {
["Camouflage"] = 1445,
["Acid Armor"] = 1453,
["Iron Defense"] = 1401,
["Minimize"] = 1455,
["Future Sight"] = 1446,
}

local function transBack(cid)
if isCreature(cid) then
  if getPlayerStorageValue(cid, 974848) >= 1 then
     setPlayerStorageValue(cid, 974848, 0)
     doRemoveCondition(cid, CONDITION_OUTFIT)
  end
end
end

function doCondition2(ret)
--
function doMiss2(cid, cd, eff, check, spell)
local stg = conds["Miss"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, 21100) >= 1 and getPlayerStorageValue(cid, stg) <= -1 then return true end --alterado v1.6  reflect
   if not canDoMiss(cid, spell) then return true end
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end  

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "miss", a)
      doItemSetAttribute(item.uid, "missEff", eff)
      doItemSetAttribute(item.uid, "missSpell", spell)
   end

   if a <= -1 then 
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   doSendMagicEffect(getThingPos(cid), eff)
   addEvent(doMiss2, 1000, cid, -1, eff, a, spell)   
end 

function doSilence2(cid, cd, eff, check)
local stg = conds["Silence"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "silence", a)
      doItemSetAttribute(item.uid, "silenceEff", eff)
   end

   if a <= -1 then 
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   doSendMagicEffect(getThingPos(cid), eff)
   addEvent(doSilence2, 1000, cid, -1, eff, a)   
end       

function doSlow2(cid, cd, eff, check, first)
local stg = conds["Slow"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "slow", a)
      doItemSetAttribute(item.uid, "slowEff", eff)
   end

   if a <= -1 then 
   doRemoveCondition(cid, CONDITION_PARALYZE)
   if not isSleeping(cid) and not isParalyze(cid) then
      addEvent(doRegainSpeed, 50, cid)     --alterado
   end
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   if first then
      doAddCondition(cid, paralizeArea2) 
   end  

   doSendMagicEffect(getThingPos(cid), eff)
   addEvent(doSlow2, 1000, cid, -1, eff, a)   
end    

function doConfusion2(cid, cd, check)
local stg = conds["Confusion"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "confuse", a)
   end

   if a <= -1 then 
   if getCreatureCondition(cid, CONDITION_PARALYZE) == true then
      doRemoveCondition(cid, CONDITION_PARALYZE)
 addEvent(doAddCondition, 10, cid, paralizeArea2)            
   end
   if not isSleeping(cid) and not isParalyze(cid) then
      doRegainSpeed(cid)            --alterado 
   end
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   if math.random(1, 6) >= 4 then
doSendMagicEffect(getThingPos(cid), 31)
end

   local isTarget = isSummon(cid) and getCreatureTarget(getCreatureMaster(cid)) or getCreatureTarget(cid)
   if isCreature(isTarget) and not isSleeping(cid) and not isParalyze(cid) and getPlayerStorageValue(cid, 654878) <= 0 then --alterado v1.6
doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, 100)
       doPushCreature(cid, math.random(0, 3), 1, 0)    --alterado v1.6
doChangeSpeed(cid, -100)
end

local pos = getThingPos(cid)
addEvent(doSendMagicEffect, math.random(0, 450), pos, 31)

   addEvent(doConfusion2, 1000, cid, -1, a)   
end           

function doBurn2(cid, cd, check, damage)
local stg = conds["Burn"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "burn", a)
      doItemSetAttribute(item.uid, "burndmg", damage)
   end

   if a <= -1 then 
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   doCreatureAddHealth(cid, -damage, 15, COLOR_BURN)  
   addEvent(doBurn2, 3500, cid, -1, a, damage)   
end 

function doPoison2(cid, cd, check, damage)
local stg = conds["Poison"]
   if not isCreature(cid) then return true end  --is creature?
   ----------
   if isSummon(cid) or ehMonstro(cid) and pokes[getCreatureName(cid)] then --alterado v1.6
      local type = pokes[getCreatureName(cid)].type
      local type2 = pokes[getCreatureName(cid)].type2
      if isInArray({"poison", "steel"}, type) or isInArray({"poison", "steel"}, type2) then
         return true
      end
   end
   ---------
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "poison", a)
      doItemSetAttribute(item.uid, "poisondmg", damage)
   end

   if a <= -1 or getCreatureHealth(cid) == 1 then 
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage 
   doCreatureAddHealth(cid, -dano, 8, COLOR_GRASS)  

   addEvent(doPoison2, 1500, cid, -1, a, damage)   
end       

function doFear2(cid, cd, check, skill)
local stg = conds["Fear"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "fear", a)
      doItemSetAttribute(item.uid, "fearSkill", skill)
   end

   if a <= -1 then 
   if getCreatureCondition(cid, CONDITION_PARALYZE) == true then
      doRemoveCondition(cid, CONDITION_PARALYZE)
 addEvent(doAddCondition, 10, cid, paralizeArea2)            
   end
   if not isSleeping(cid) and not isParalyze(cid) then
      doRegainSpeed(cid)         --alterado 
   end
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   if skill == "Roar" then
      eff = 244
   else                --edited Roar
      eff = 139
   end

   if math.random(1, 6) >= 4 then
doSendMagicEffect(getThingPos(cid), eff)
end

   local isTarget = isSummon(cid) and getCreatureTarget(getCreatureMaster(cid)) or getCreatureTarget(cid)
   if isCreature(isTarget) and not isSleeping(cid) and not isParalyze(cid) and getPlayerStorageValue(cid, 654878) <= 0 then --alterado v1.6
local dir = getCreatureDirectionToTarget(cid, isTarget)
       doChangeSpeed(cid, -getCreatureSpeed(cid))
doChangeSpeed(cid, 100)
       doPushCreature(cid, roardirections[dir][1], 1, 0)  --alterado v1.6
doChangeSpeed(cid, -100)
end

local pos = getThingPos(cid)
addEvent(doSendMagicEffect, math.random(0, 450), pos, eff)

   addEvent(doFear2, 1000, cid, -1, a, skill)   
end      

function doStun2(cid, cd, eff, check, spell)
local stg = conds["Stun"]
   if not isCreature(cid) then return true end  --is creature?
   if not canDoMiss(cid, spell) then return true end
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "stun", a)
      doItemSetAttribute(item.uid, "stunEff", eff)
      doItemSetAttribute(item.uid, "stunSpell", spell)
   end

   if a <= -1 then
   doRemoveCondition(cid, CONDITION_PARALYZE)
   if not isSleeping(cid) and not isParalyze(cid) then
      addEvent(doRegainSpeed, 50, cid)   --alterado 
   end
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   if getCreatureCondition(cid, CONDITION_PARALYZE) == false then
      doAddCondition(cid, paralizeArea2)
   end    
   doSendMagicEffect(getThingPos(cid), eff)
   addEvent(doStun2, 1000, cid, -1, eff, a, spell)   
end 

function doParalyze2(cid, cd, eff, check, first)
local stg = conds["Paralyze"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "paralyze", a)
      doItemSetAttribute(item.uid, "paralyzeEff", eff)
   end

   if a <= -1 then 
   if isPlayer(cid) then
      if not isSleeping(cid) then   --alterado
         mayNotMove(cid, false)
      end
   else
      if getCreatureCondition(cid, CONDITION_PARALYZE) == true then
         doRemoveCondition(cid, CONDITION_PARALYZE)
         addEvent(doAddCondition, 10, cid, paralizeArea2)            
      end
      if not isSleeping(cid) then
         doRegainSpeed(cid)          --alterado
      end
   end   
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   if isPlayer(cid) then
      mayNotMove(cid, true)
   else                        --alterado v1.6
      doChangeSpeed(cid, -2000)
   end 
   doSendMagicEffect(getThingPos(cid), eff)
   addEvent(doParalyze2, 1000, cid, -1, eff, a, false)   
end       

function doSleep2(cid, cd, check, first)        
local stg = conds["Sleep"]
   if not isCreature(cid) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not isSleeping(cid) then
addEvent(doSendSleepEffect, 500, cid)
end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "sleep", a)
   end

   if a <= -1 then 
   if not isPlayer(cid) then
 local dittoStg = getPlayerStorageValue(cid, 1010) 
      if getCreatureName(cid) == "Ditto" and isSummon(cid) and tostring(dittoStg) and dittoStg ~= "Ditto" then
    doSetCreatureOutfit(cid, {lookType = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "transOutfit")}, -1)
      else
    doRemoveCondition(cid, CONDITION_OUTFIT)
 end
 if getPlayerStorageValue(cid, 625877) ~= -1 then 
    doSetCreatureOutfit(cid, {lookType = getPlayerStorageValue(cid, 625877)}, -1)   --alterado v1.6
      end 
   end
   if isPlayer(cid) then
      if not isParalyze(cid) then
         mayNotMove(cid, false)   --alterado
      end
   else
      if getCreatureCondition(cid, CONDITION_PARALYZE) == true then
         doRemoveCondition(cid, CONDITION_PARALYZE)
         addEvent(doAddCondition, 10, cid, paralizeArea2)            
      end
      if not isParalyze(cid) then
         doRegainSpeed(cid)   --alterado
      end
end
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   if first then 
      if getCreatureName(cid) == "Ursaring" and getCreatureCondition(cid, CONDITION_OUTFIT) == true then

      elseif not isPlayer(cid) then
         if isInArray({604, 605, 1015, 1016, 1183, 1184}, getCreatureOutfit(cid).lookType) then
            Info = 0                                                                            --alterado v1.6
         else
            Info = getMonsterInfo(getCreatureName(cid)).lookCorpse                
         end                
         local look = getCreatureOutfit(cid) 
         ---------
         local dittoStg = getPlayerStorageValue(cid, 1010) 
         if getCreatureName(cid) == "Ditto" and isSummon(cid) and tostring(dittoStg) and dittoStg ~= "Ditto" then
       local InfoDitto = getMonsterInfo(tostring(dittoStg)).lookCorpse
            if InfoDitto ~= 0 and look.lookType ~= 0 then             
               doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(tostring(dittoStg)).lookCorpse}, -1)
            end   
         else
            if getCreatureName(cid) == "Shiny Golem" and getCreatureOutfit(cid).lookType == 1403 then
               doRemoveCondition(cid, CONDITION_OUTFIT)                                                                                                  
            elseif Info ~= 0 and look.lookType ~= 0 then
  doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(getCreatureName(cid)).lookCorpse}, -1)
            end
         end
      end
   end
                                     --alterado v1.6
   if isPlayer(cid) then
      mayNotMove(cid, true)
   else
      doChangeSpeed(cid, -getCreatureSpeed(cid))
   end
   addEvent(doSleep2, 1000, cid, -1, a, false)
end   

function doLeech2(cid, attacker, cd, check, damage)
local stg = conds["Leech"]
   if not isCreature(cid) then return true end  --is creature?
   if attacker ~= 0 and not isCreature(attacker) then return true end  --is creature?
   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then 
      setPlayerStorageValue(cid, stg, cd)    --allterado v1.8
      return true 
   end

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, "leech", a)
      doItemSetAttribute(item.uid, "leechdmg", damage)
   end

   if a <= -1 then 
   setPlayerStorageValue(cid, stg, -1)
   return true 
   end

   local life = getCreatureHealth(cid)
   ------
   doCreatureAddHealth(cid, -damage)
   doSendAnimatedText(getThingPos(cid), "-"..damage.."", 144)
   doSendMagicEffect(getThingPos(cid), 45)
   ------
   local newlife = life - getCreatureHealth(cid)
   if newlife >= 1 and attacker ~= 0 then
      doSendMagicEffect(getThingPos(attacker), 14)
      doCreatureAddHealth(attacker, newlife)
      doSendAnimatedText(getThingPos(attacker), "+"..newlife.."", 32)
   end 
   addEvent(doLeech2, 2000, cid, attacker, -1, a, damage)   
end 

function doBuff2(cid, cd, eff, check, buff, first, attr)
   if not isCreature(cid) then return true end  --is creature?
---------------------
local atributo = attr and attr or ""
if first and atributo == "" then
for i = 1, 3 do 
   if getPlayerStorageValue(cid, Buffs[i][2]) <= 0 then
      atributo = Buffs[i][1]
      break
   end
end
end
if atributo == "" then return true end
if ehMonstro(cid) then atributo = "Buff1" end
----------------------
local stg = conds[atributo]

   if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then return true end  --n usar 2x

   if not check and getPlayerStorageValue(cid, stg) >= 1 then
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1)
   else
      setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd)
   end

   local a = getPlayerStorageValue(cid, stg)

   if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then
      local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
      doItemSetAttribute(item.uid, atributo, a)
      doItemSetAttribute(item.uid, atributo.."eff", eff)
      doItemSetAttribute(item.uid, atributo.."skill", buff)
   end

   if a <= -1 then               --alterado v1.6
   if isInArray({"Future Sight", "Camouflage", "Acid Armor", "Iron Defense", "Minimize", "Bug Fighter", "Ancient Fury"}, buff) then
      if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then
         if isSummon(cid) then
            local item = getPlayerSlotItem(getCreatureMaster(cid), 8)
            doSetCreatureOutfit(cid, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)   --alterado v1.6.1
         end 
      elseif not isSleeping(cid) then
         doRemoveCondition(cid, CONDITION_OUTFIT)
      end
      setPlayerStorageValue(cid, 9658783, -1)
      setPlayerStorageValue(cid, 625877, -1) --alterado v1.6 
   end 
   if isInArray({"Strafe", "Agility", "Ancient Fury", "War Dog", "Fighter Spirit", "Furious Legs", "Ultimate Champion", "Bug Fighter"}, buff) then
      setPlayerStorageValue(cid, 374896, -1)   --alterado v1.6
   end                                         
   setPlayerStorageValue(cid, stg, -1)      
   return true 
   end

   doSendMagicEffect(getThingPos(cid), eff)

   if first then
   if buff == "Strafe" or buff == "Agility" then
      setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6
      doRaiseStatus(cid, 0, 0, 100, a)
   elseif buff == "Tailwind" then
      doRaiseStatus(cid, 0, 0, 200, a)
   elseif buff == "Rage" then
      doRaiseStatus(cid, 2, 0, 0, a)
   elseif buff == "Harden" then
      doRaiseStatus(cid, 0, 2, 0, a)
   elseif buff == "Calm Mind" then
      doRaiseStatus(cid, 0, 2, 0, a)
   elseif buff == "Ancient Fury" then
      doSetCreatureOutfit(cid, {lookType = outFurys[getCreatureName(cid)].outFury}, a*1000)
      setPlayerStorageValue(cid, 374896, 1)  --velo atk
      if getCreatureName(cid) == "Shiny Charizard" then 
         doRaiseStatus(cid, 2, 0, 0, a)    --atk melee     --alterado v1.6
      else
         doRaiseStatus(cid, 0, 2, 0, a)    --def
      end   
      setPlayerStorageValue(cid, 625877, outFurys[getCreatureName(cid)].outFury)     --alterado v1.6
   elseif buff == "War Dog" then
      doRaiseStatus(cid, 1.5, 1.5, 0, a)
      setPlayerStorageValue(cid, 374896, 1)  --velo atk
   elseif buff == "Rest" then
      doSleep2(cid, cd, getPlayerStorageValue(cid, conds["Sleep"]), true) 
      doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
   elseif isInArray({"Fighter Spirit", "Furious Legs", "Ultimate Champion"}, buff) then
      doRaiseStatus(cid, 1.5, 0, 0, a)    --atk melee    --alterado v1.6
      setPlayerStorageValue(cid, 374896, 1)  --velo atk 
      addEvent(setPlayerStorageValue, a*1000, cid, 465987, -1)                                              
   elseif isInArray({"Future Sight", "Camouflage", "Acid Armor", "Iron Defense", "Minimize"}, buff) then
      doSetCreatureOutfit(cid, {lookType = outImune[buff]}, -1)
      setPlayerStorageValue(cid, 9658783, 1)  
      setPlayerStorageValue(cid, 625877, outImune[buff]) --alterado v1.6                             
   elseif buff == "Bug Fighter" then
      setPlayerStorageValue(cid, 374896, 1)  --velo atk  --alterado v1.6
      doRaiseStatus(cid, 1.5, 1.5, 100, a)
      doSetCreatureOutfit(cid, {lookType = 1448}, a*1000)
      setPlayerStorageValue(cid, 625877, 1448)  --alterado v1.6
   end                                                                            
   end 
   addEvent(doBuff2, 1000, cid, -1, eff, a, buff, false, atributo)   
end

if ret.buff and ret.buff ~= "" then
  doBuff2(ret.id, ret.cd, ret.eff, ret.check, ret.buff, ret.first, (ret.attr and ret.attr or false))
end

if isSummon(ret.id) and getPokemonBoost(ret.id) ~= 0 and math.random(1, 100) <= getPokemonBoost(ret.id) then   --sistema "pegou no boost"
  if ret.cond and not isInArray({"Poison", "Leech", "Fear"}, ret.cond) then 
     doSendAnimatedText(getThingPosWithDebug(ret.id), "BOOST", 215)   --alterado v1.8     
     return true
  end
end

if ret.cond and ret.cond == "Miss" then
doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond and ret.cond == "Silence" then
doSilence2(ret.id, ret.cd, ret.eff, ret.check)
elseif ret.cond and ret.cond == "Slow" then
doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond and ret.cond == "Confusion" then
doConfusion2(ret.id, ret.cd, ret.check)
elseif ret.cond and ret.cond == "Burn" then
doBurn2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond and ret.cond == "Poison" then
doPoison2(ret.id, ret.cd, ret.check, ret.damage)
elseif ret.cond and ret.cond == "Fear" then
doFear2(ret.id, ret.cd, ret.check, ret.skill)
elseif ret.cond and ret.cond == "Stun" then
doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
elseif ret.cond and ret.cond == "Paralyze" then
doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
elseif ret.cond and ret.cond == "Sleep" then
doSleep2(ret.id, ret.cd, ret.check, ret.first)
elseif ret.cond and ret.cond == "Leech" then
doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage)
end
end

--------------------------------
function cleanBuffs2(item)
if item ~= 0 then
  for i = 1, 3 do
      doItemEraseAttribute(item, Buffs[i][1])
      doItemEraseAttribute(item, Buffs[i][1].."eff")
      doItemEraseAttribute(item, Buffs[i][1].."skill")
  end   
end
end 
--------------------------------
function doCureStatus(cid, type, playerballs)    --alterado v1.9 \/
if not isCreature(cid) then return true end
if playerballs and isPlayer(cid) then
local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
local mb = getPlayerSlotItem(cid, 8)
local balls = getPokeballsInContainer(bp.uid)
if isPokeball(mb.itemid) then
if not type or type == "all" then
for b = 1, #injuries2 do
  doItemSetAttribute(mb.uid, ""..injuries2[b].n.."", -1)
end
else
doItemSetAttribute(mb.uid, ""..type.."", -1)
end
end
if #balls >= 1 then
 for _, uid in ipairs(balls) do
     if not type or type == "all" then
for b = 1, #injuries2 do
doItemSetAttribute(uid, ""..injuries2[b].n.."", -1)
end
else
doItemSetAttribute(uid, ""..type.."", -1)
end
           end
       end    
end
if type == "all" then
for a = 1, #injuries2 do
setPlayerStorageValue(cid, injuries2[a].m, -1)
end
return true
end
for a, b in pairs (injuries2) do
if b.n == type then
setPlayerStorageValue(cid, b.m, -1)
end
end
end 
---------------------------------
function isWithCondition(cid)
for i = 1, #injuries2 do 
  if getPlayerStorageValue(cid, injuries2[i].m) >= 1 then
     return true
  end
end
return false
end
---------------------------------
function doCureBallStatus(item, type)
if not type or type == "all" then
for b = 1, #injuries2 do
  doItemSetAttribute(item, ""..injuries2[b].n.."", -1)
end
else
doItemSetAttribute(item, ""..type.."", -1)
end
end
---------------------------------
function isBurning(cid)
if not isCreature(cid) then return false end
if getPlayerStorageValue(cid, conds["Burn"]) >= 0 then return true end
return false
end

function isPoisoned(cid)
if not isCreature(cid) then return false end
if getPlayerStorageValue(cid, conds["Poison"]) >= 0 then return true end
return false
end

function isSilence(cid)
   if not isCreature(cid) then return false end
   if getPlayerStorageValue(cid, conds["Silence"]) >= 0 then return true end
return false
end

function isParalyze(cid)      
   if not isCreature(cid) then return false end
   if getPlayerStorageValue(cid, conds["Paralyze"]) >= 0 then return true end
return false
end

function isSleeping(cid)
   if not isCreature(cid) then return false end
   if getPlayerStorageValue(cid, conds["Sleep"]) >= 0 then return true end
return false
end

function isWithFear(cid)
   if not isCreature(cid) then return false end
   if getPlayerStorageValue(cid, conds["Fear"]) >= 0 then return true end
return false
end 
-----------------------------------
function doMoveInArea2(cid, eff, area, element, min, max, spell, ret)
if not isCreature(cid) then return true end

  local pos = getPosfromArea(cid, area)  --alterado v1.8
  setPlayerStorageValue(cid, 21101, -1) 

  local skills = {"Skull Bash", "Gust", "Water Pulse", "Stick Throw", "Overheat", "Toxic", "Take Down", "Gyro Ball"} --alterado v1.7
  local n = 0 
  local l = 0

while n < #pos do
if not isCreature(cid) then return true end 
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end   
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end

  n = n+1
  thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253}
  local pid = getThingFromPosWithProtect(thing)
  ----
  if pid ~= cid then
  if spell and isInArray(skills, spell) then
     if spell == "Stick Throw" then
        addEvent(sendEffWithProtect, l*300, cid, pos[n], eff)
        addEvent(sendMoveBack, 1200, cid, pos, eff, min, max)
        addEvent(doMoveDano2, l*300, cid, pid, element, min, max, ret, spell) --alterado v1.6  
     elseif spell and spell == "Gyro Ball" then   --alterado v1.7
        pos[n].x = pos[n].x+1
        addEvent(sendEffWithProtect, l*200, cid, pos[n], eff)
        addEvent(doMoveDano2, l*200, cid, pid, element, min, max, ret, spell) 
     else
        addEvent(sendEffWithProtect, l*200, cid, pos[n], eff)
        addEvent(doMoveDano2, l*200, cid, pid, element, min, max, ret, spell)  --alterado v1.6  
     end
  elseif spell and spell == "Epicenter" then
     local random = math.random(50, 500)   
     addEvent(sendEffWithProtect, random, cid, pos[n], eff)
     addEvent(doDanoWithProtect, random, cid, GROUNDDAMAGE, pos[n], crusher, -min, -max, 255)
  elseif spell and spell == "Shadowave" then
     posi = {x=pos[n].x, y=pos[n].y+1, z=pos[n].z}
     sendEffWithProtect(cid, posi, eff)
     doMoveDano2(cid, pid, element, min, max, ret, spell) --alterado v1.6 
  elseif spell and spell == "Surf" then
     addEvent(sendEffWithProtect, math.random(50, 500), cid, pos[n], eff)
     addEvent(doMoveDano2, 400, cid, pid, element, min, max, ret, spell)  --alterado v1.6 
  elseif spell and spell == "Sand Attack" then
     addEvent(sendEffWithProtect, n*200, cid, pos[n], eff)
     addEvent(doMoveDano2, n*200, cid, pid, element, min, max, ret, spell) --alterado v1.6 
  elseif spell and (spell == "Muddy Water" or spell == "Venom Motion") then
     local arr = {
     [1] = 0, [2] = 0, [3] = 0, [4] = 200, [5] = 200, [6] = 200, [7] = 400, [8] = 400, [9] = 400, [10] = 600, [11] = 600,
     [12] = 600, [13] = 800, [14] = 800, [15] = 800
     }

     local time = {0, 200, 400, 600, 800}

     addEvent(sendEffWithProtect, arr[n], cid, pos[n], eff)
     addEvent(doMoveDano2, arr[n], cid, pid, element, min, max, ret, spell)
  elseif spell and (spell == "Inferno" or spell == "Fissure" or spell == "Volcano Burst") then  --alterado v1.8
     addEvent(sendEffWithProtect, math.random(0, 500), cid, pos[n], eff)
     addEvent(doMoveDano2, math.random(0, 500), cid, pid, element, min, max, ret, spell)     
  else
     sendEffWithProtect(cid, pos[n], eff)
     doMoveDano2(cid, pid, element, min, max, ret, spell) 
  end
  end
  l = l+1
end
end
-------------------------------------------
function doMoveDano2(cid, pid, element, min, max, ret, spell)
if isCreature(pid) and isCreature(cid) and cid ~= pid then
  if (isNpcSummon(pid) and getCreatureTarget(pid) ~= cid) or (isNpcSummon(cid) and getCreatureTarget(cid) ~= pid) then
     return true                             --alterado v1.9.2 /\
  end
  if ehNPC(pid) then return true end
  ---
  local canAtk = true     --alterado v1.6
  if getPlayerStorageValue(pid, 21099) >= 1 then
     doSendMagicEffect(getThingPosWithDebug(pid), 135)
     doSendAnimatedText(getThingPosWithDebug(pid), "REFLECT", COLOR_GRASS)
     addEvent(docastspell, 100, pid, spell)
     if getCreatureName(pid) == "Wobbuffet" then
        doRemoveCondition(pid, CONDITION_OUTFIT)    
     end
     canAtk = false
     setPlayerStorageValue(pid, 21099, -1)
     setPlayerStorageValue(pid, 21100, 1)
     setPlayerStorageValue(pid, 21101, cid)
     setPlayerStorageValue(pid, 21103, getTableMove(cid, getPlayerStorageValue(cid, 21102)).f)
  end
  ---   
  if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end

               --alterado v1.9.2 \/
     if isSummon(cid) and (isNpcSummon(pid) or ehMonstro(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can" and #getCreatureSummons(pid) <= 0)) and pid ~= cid then
        if canAtk then     
           if ret and ret.cond then
              ret.id = pid
              ret.check = getPlayerStorageValue(pid, conds[ret.cond])
              doCondition2(ret)
           end
           if spell == "Selfdestruct" then
              if getPlayerStorageValue(pid, 9658783) <= 0 then
                 doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)
                 doCreatureAddHealth(pid, -max)    --alterado v1.6
              end
           else
              doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255)
           end
        end
     elseif ehMonstro(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then
        if canAtk then    --alterado v1.6
           if ret and ret.cond then
              ret.id = pid
              ret.check = getPlayerStorageValue(pid, conds[ret.cond])
              doCondition2(ret)
           end
           if spell == "Selfdestruct" then
              if getPlayerStorageValue(pid, 9658783) <= 0 then
                 doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)
                 doCreatureAddHealth(pid, -max)    --alterado v1.6
              end
           else
              doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255)
           end
        end
     elseif isPlayer(cid) and ehMonstro(pid) and pid ~= cid then
        if canAtk then    --alterado v1.6
           if ret and ret.cond then
              ret.id = pid
              ret.check = getPlayerStorageValue(pid, conds[ret.cond])
              doCondition2(ret)
           end
           if spell == "Selfdestruct" then
              if getPlayerStorageValue(pid, 9658783) <= 0 then
                 doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)
                 doCreatureAddHealth(pid, -max)    --alterado v1.6
              end
           else
              doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255)
           end
        end
     elseif isNpcSummon(cid) then  --alterado v1.9.2 \/
        if canAtk then    
           if ret and ret.cond then
              ret.id = pid
              ret.check = getPlayerStorageValue(pid, conds[ret.cond])
              doCondition2(ret)
           end
           if spell == "Selfdestruct" then
              if getPlayerStorageValue(pid, 9658783) <= 0 then
                 doSendAnimatedText(getThingPosWithDebug(pid), "-"..max.."", COLOR_NORMAL)
                 doCreatureAddHealth(pid, -max)   
              end
           else
              doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255)
           end
        end 
     end           
end
end
--------------------------------------------------------------------------------
function sendEffWithProtect(cid, pos, eff)  --Manda algum magic effect com proteçoes 
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
local checkpos = pos
checkpos.stackpos = 0
if not hasTile(checkpos) then
return true
end
if not canWalkOnPos2(pos, false, true, false, true, false) then --alterado v1.6
return true
end

  doSendMagicEffect(pos, eff)
end
---------------------------------------------------------------------------------
function getThingPosWithDebug(what)
if not isCreature(what) or getCreatureHealth(what) <= 0 then
return {x = 1, y = 1, z = 10}
end
return getThingPos(what)
end
---------------------------------------------------------------------------------
function doDanoWithProtect(cid, element, pos, area, min, max, eff)  --Da dano com proteçoes
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  doAreaCombatHealth(cid, element, pos, area, -(math.abs(min)), -(math.abs(max)), eff)
end
---------------------------------------------------------------------------------
function doDanoWithProtectWithDelay(cid, target, element, min, max, eff, area)
const_distance_delay = 56
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  if target ~= 0 and isCreature(target) and not area then
     delay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay
     addEvent(doDanoWithProtect, delay, cid, element, getThingPosWithDebug(target), 0, min, max, eff)
     return true
  end
addEvent(doDanoWithProtect, 200, cid, element, getThingPosWithDebug(target), area, min, max, eff)
end   
--------------------------------------------------------------------------------
function sendDistanceShootWithProtect(cid, frompos, topos, eff)    --Manda um efeito de distancia com proteçoes
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  doSendDistanceShoot(frompos, topos, eff)
end
---------------------------------------------------------------------------------
function sendMoveBack(cid, pos, eff, min, max)     --Manda o Atk do farfetchd de volta...
local m = #pos+1
for i = 1, #pos do
   if not isCreature(cid) then return true end
   ---
   m = m-1
   thing = {x=pos[m].x,y=pos[m].y,z=pos[m].z,stackpos=253}
   local pid = getThingFromPosWithProtect(thing)
   addEvent(doMoveDano2, i*200, cid, pid, FLYINGDAMAGE, min/4, max/4)  
   addEvent(sendEffWithProtect, i*200, cid, pos[m], eff)   --alterado v1.3
   -- 
end
end  
---------------------------------------------------------------------------------
function upEffect(cid, effDis)
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
pos = getThingPos(cid)
frompos = {x = pos.x+1, y = pos.y, z = pos.z}
frompos.x = pos.x - math.random(4, 7)
frompos.y = pos.y - math.random(5, 8)
doSendDistanceShoot(getThingPos(cid), frompos, effDis)
end
---------------------------------------------------------------------------------
function fall(cid, master, element, effDis, effArea)   --Function pra jogar efeitos pra cima e cair depois... tpw falling rocks e blizzard
if isCreature(cid) then
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  pos = getThingPos(cid)
  pos.x = pos.x + math.random(-4,4)
  pos.y = pos.y + math.random(-4,4)
  if isMonster(cid) or isPlayer(cid) then
     frompos = {x = pos.x+1, y = pos.y, z = pos.z}
  elseif isSummon(cid) then
     frompos = getThingPos(master)
  end
  frompos.x = pos.x - 7
  frompos.y = pos.y - 6
  if effDis ~= -1 then                --alterado!
     doSendDistanceShoot(frompos, pos, effDis)
  end
  doAreaCombatHealth(cid, element, pos, 0, 0, 0, effArea)
end
end
---------------------------------------------------------------------------------
function canDoMiss(cid, nameAtk)                                            --alterado v1.5
local atkTerra = {"Sand Attack", "Mud Shot", "Mud Bomb", "Stomp", "Crusher Stomp", "Mud Slap", "Sand Tomb"} --alterado v1.7
local atkElectric = {"Electric Storm", "Thunder Wave", "Thunder", "Electricity", "Wild Charge"}  --alterado v1.7
if not isCreature(cid) then return false end
if isPlayer(cid) then return true end
if not pokes[getCreatureName(cid)] then return true end

if isInArray(atkTerra, nameAtk) then
  if (pokes[getCreatureName(cid)].type == "flying") or (pokes[getCreatureName(cid)].type2 == "flying") or isInArray(specialabilities["levitate"], getCreatureName(cid))  then
     return false      
  end
elseif isInArray(atkElectric, nameAtk) then
  if (pokes[getCreatureName(cid)].type == "ground") or (pokes[getCreatureName(cid)].type2 == "ground") then
     return false      
  end
end

return true
end
---------------------------------------------------------------------------------
function doMoveInAreaMulti(cid, effDis, effMagic, areaEff, areaDano, element, min, max, ret)   --alterado v1.7
if not isCreature(cid) then return true end                     
local pos = getPosfromArea(cid, areaEff)
local pos2 = getPosfromArea(cid, areaDano)
local n = 0

while n < #pos2 do
if not isCreature(cid) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end

n = n+1
thing = {x=pos2[n].x,y=pos2[n].y,z=pos2[n].z,stackpos=253}
     if n < #pos then
        addEvent(sendDistanceShootWithProtect, 50, cid, getThingPos(cid), pos[n], effDis) --39
        addEvent(sendEffWithProtect, 100, cid, pos[n], effMagic)  -- 112
        ---                                                                                        --alterado v1.6.1
        if math.random(1, 2) == 2 then
           addEvent(sendDistanceShootWithProtect, 450, cid, getThingPos(cid), pos[n], effDis) --550
           addEvent(sendEffWithProtect, 550, cid, pos[n], effMagic)  -- 650
        end
     end   
     local pid = getThingFromPosWithProtect(thing)
     if isCreature(pid) then
        if ret and ret.id == 0 then     --alterado v1.8
           ret.id = pid
           ret.check = getPlayerStorageValue(pid, conds[ret.cond])
        end
        if not ret then ret = {} end --alterado v1.7
        doMoveDano2(cid, pid, element, min, max, ret, getPlayerStorageValue(cid, 21102))
     end
end       
end 
---------------------------------------------------------------------------------------
function doDoubleHit(cid, pid, valor, races)           --alterado v1.6
if isCreature(cid) and isCreature(pid) then
  if getPlayerStorageValue(cid, 374896) >= 1 then
     if getMasterTarget(cid) == pid then
        if isInArray({"Kadabra", "Alakazam", "Mew", "Shiny Abra", "Shiny Alakazam"}, getCreatureName(cid)) then
           doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(pid), 39)
        end
        if isSummon(cid) then
           doTargetCombatHealth(getCreatureMaster(cid), pid, PHYSICALDAMAGE, -math.abs(valor), -math.abs(valor), 255)
        else
           doCreatureAddHealth(pid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(pid)).race].cor)
        end
     end
  end
end
end
----------------------------------------------------------------------------------------
function doDanoInTarget(cid, target, combat, min, max, eff)   --alterado v1.7
if not isCreature(cid) or not isCreature(target) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  doTargetCombatHealth(cid, target, combat, -math.abs(min), -math.abs(max), eff)
end 
-----------------------------------------------------------------------------------------
function doDanoInTargetWithDelay(cid, target, combat, min, max, eff)     --alterado v1.7
const_distance_delay = 56
if not isCreature(cid) or not isCreature(target) then return true end
if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end
  local delay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay
  addEvent(doDanoInTarget, delay, cid, target, combat, min, max, eff)
end 

 

Link para o comentário
Compartilhar em outros sites

boltz queria saber como que faço pra adcionar as box 1,2,3,4 e a shiny box no servidor v2 por que nele ja editei muita coisa e naum queria trocar tudo denovo por ja colokei outland e os pokes da outland adicionei um novo mapa e colokei mais taunts em outras ouffit e queria saber como voce feiz pra naum poder capturar o shiny abra ( vc pego o id no dat editor e so coloco o look e naum crio corpo ?) ...e o servidor o melhor na minha opiniao ateh agora continue com o otimo trabalho que voce esta fazendo

Link para o comentário
Compartilhar em outros sites

bom para você adicionar as boxes, crie um arquivo.lua, e cole isso dentro:

 

local a = {
[11638] = {balltype = "normal", ballid = 11826,
    pokemons = {"Slowpoke", "Magnemite", "Doduo", "Seel", "Grimer", "Gastly", "Drowzee", "Voltorb", "Cubone", "Koffing",
    "Goldeen", "Vulpix", "Tentacool", "Bulbasaur", "Charmander", "Squirtle", "Butterfree", "Beedrill", "Metapod", "Kakuna",
    "Raticate", "Spearow", "Ekans", "Abra", "Mankey", "Psyduck", "Pikachu", "Sandshrew", "Nidoran Female",
    "Nidoran Male", "Zubat", "Diglett", "Venonat", "Meowth", "Poliwag", "Growlithe", "Machop", "Ponyta", "Geodude"}},
[11639] = {balltype = "great", ballid = 11832,	 
    pokemons = {"Pidgeotto", "Weepinbell", "Clefairy", "Omanyte", "Kabuto", "Arbok", "Raichu", "Nidorino", "Nidorina",
    "Dodrio", "Muk", "Golbat", "Gloom", "Parasect", "Venomoth", "Dugtrio", "Persian", "Poliwhirl", "Victreebel", "Machoke",
    "Graveler", "Slowbro", "Magneton", "Farfetch'd", "Haunter", "Kingler", "Electrode", "Weezing", "Rhyhorn", "Seadra",
    "Jigglypuff", "Seaking", "Tauros", "Starmie", "Eevee", "Dratini", "Charmeleon", "Wartortle", "Ivysaur"}},
[11640] = {balltype = "super", ballid = 11835,
    pokemons = {"Pidgeot", "Fearow", "Sandslash", "Ninetales", "Vileplume", "Primeape", "Golduck", "Kadabra", "Rapidash",
    "Clefable", "Wigglytuff", "Dewgong", "Onix", "Cloyster", "Hypno", "Exeggutor", "Marowak", "Hitmonchan", "Hitmonlee",
    "Lickitung", "Chansey", "Tangela", "Mr. Mime", "Pinsir", "Vaporeon", "Jolteon", "Flareon", "Porygon", "Dragonair"}},
[11641] = {balltype = "ultra", ballid = 11829,
    pokemons = {"Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Abra", "Dragonite", "Snorlax", "Kabutops", "Omastar",
    "Ditto", "Lapras", "Gyarados", "Magmar", "Electabuzz", "Jynx", "Scyther", "Kangaskhan", "Golem", "Venusaur",
    "Machamp", "Poliwrath", "Arcanine", "Nidoking", "Nidoqueen", "Charizard", "Blastoise", "Tentacruel", "Alakazam",
    "Gengar", "Rhydon"}}
}	
local happy = 220

function onUse(cid, item, frompos, item2, topos)
	 local b = a[item.itemid]								   
		   if not b then return true end
	 local pokemon = b.pokemons[math.random(#b.pokemons)]
		   if not pokes[pokemon]
	 local btype = b.balltype
		   if not pokeballs[btype] then return true end   

	 doPlayerSendTextMessage(cid, 27, "You opened a pokemon prize box +"..item.itemid - (11637).."!")
   doPlayerSendTextMessage(cid, 27, "The prize pokemon was a "..pokemon..", congratulations!")
   doSendMagicEffect(getThingPos(cid), 29)

	 addPokeToPlayer(cid, pokemon, 0, nil, btype)	 --alterado v1.9												
	 doRemoveItem(item.uid, 1)

return true
end

 

dps vá em actions.xml e cole isso la:

 

<action itemid="11638;11639;11640;11641" event="script" value="arquivo.lua"/>

 

/\ éas boxes 1234, agora a shiny box.

 

crie outro arquivo.lua e cole isso:

local a = {
[12331] = {balltype = "ultra", ballid = 11829,
    pokemons = {"Shiny Venusaur", "Shiny Charizard", "Shiny Blastoise", "Shiny Pidgeot", "Shiny Ninetales",
    "Shiny Arcanine",  "Shiny Alakazam", "Shiny Tentacruel", "Shiny Gengar", "Shiny Rhydon", "Shiny Scyther",
    "Shiny Jynx", "Shiny Electabuzz", "Shiny Dragonair",
    "Shiny Butterfree", "Shiny Beedrill", "Shiny Rattata", "Shiny Raticate", "Shiny Raichu", "Shiny Zubat", "Shiny Golbat", "Shiny Oddish", "Shiny Paras", "Shiny Parasect", "Shiny Venonat", "Shiny Venomoth", "Shiny Growlithe",
"Shiny Tentacool", "Shiny Farfetch'd", "Shiny Grimer", "Shiny Muk", "Shiny Krabby", "Shiny Kingler", "Shiny Voltorb", "Shiny Electrode", "Shiny Cubone", "Shiny Marowak", "Shiny Tangela", "Shiny Horsea", "Shiny Seadra", "Shiny Magikarp"}}
}
local extrastrength = 1.1	   
function onUse(cid, item, frompos, item2, topos)
	 local b = a[item.itemid]								   
		   if not b then return true end
	 local pokemon = b.pokemons[math.random(#b.pokemons)] --alterado v1.3
	 local btype = b.balltype
		   if not pokeballs[btype] then return true end
	 local gender = getRandomGenderByName(pokemon)
	 local happy = 220
	 local leveltable = getPokemonExperienceTable(pokemon)

	 local ball = 0
	 local sendToDepot = false											  --alterado v1.6		 
  if getCreatureMana(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then
		   sendToDepot = true
		   ball = doCreateItemEx(b.ballid)    --alterado v1.3
	 else
		   ball = item.uid
	 end 

	   doItemSetAttribute(ball, "poke", pokemon)
	   doItemSetAttribute(ball, "hp", 1)
 doItemSetAttribute(ball, "happy", happy)
 doItemSetAttribute(ball, "gender", gender)
 if pokemon == "Hitmonchan" or pokemon == "Shiny Hitmonchan" then
    doItemSetAttribute(ball, "hands", 0)
	   end
 doItemSetAttribute(ball, "description", "Contains a "..pokemon..".")
 doItemSetAttribute(ball, "fakedesc", "Contains a "..pokemon..".")   

	 doPlayerSendTextMessage(cid, 27, "You opened a pokemon prize box +"..item.itemid - (11637).."!")
  doPlayerSendTextMessage(cid, 27, "The prize pokemon was a "..pokemon..", congratulations!")

  if sendToDepot then
	    doPlayerSendMailByName(getCreatureName(cid), ball, 1)  --alterado v1.3
	 doPlayerSendTextMessage(cid, 27, "You are already holding six pokemons, so your new pokemon was sent to your depot.")
		   doRemoveItem(item.uid)
	 else
		   doTransformItem(ball, pokeballs[btype].on)
  end

  doSendMagicEffect(getThingPos(cid), 29)
return true
end

 

dps em actions.xml:

<action itemid="12331" event="script" value="arquivo.lua"/>

 

espero ter ajudado. abraços.

Link para o comentário
Compartilhar em outros sites

Bolz

 

vlws mesmo manow .. e sobre a capturar de pokemon ja consegui fazer so tive q pensa um poukinho kkkkk ...

 

a esperano ansioso pela v3 xD

 

 

Edit

sobre a box 1 2 3 4 fica dano esse erro

[31/05/2013 06:21:36] [Error - LuaScriptInterface::loadFile] data/actions/scripts/arquivo.lua:29: 'then' expected near 'local'

[31/05/2013 06:21:36] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/arquivo.lua)

[31/05/2013 06:21:36] data/actions/scripts/arquivo.lua:29: 'then' expected near 'local'

 

Bolz

 

vlws mesmo manow .. e sobre a capturar de pokemon ja consegui fazer so tive q pensa um poukinho kkkkk ...

 

a esperano ansioso pela v3 xD

 

 

Edit

sobre a box 1 2 3 4 fica dano esse erro

[31/05/2013 06:21:36] [Error - LuaScriptInterface::loadFile] data/actions/scripts/arquivo.lua:29: 'then' expected near 'local'

[31/05/2013 06:21:36] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/arquivo.lua)

[31/05/2013 06:21:36] data/actions/scripts/arquivo.lua:29: 'then' expected near 'local'

 

ja resolvi o problema peguei o script da shiny box e criei 4 deles so trokei o id e os pokes xD vlws

Editado por GoRyKz
Link para o comentário
Compartilhar em outros sites

Bom Bolz, eu abri o servidor, e notei que o Shiny Scyther está invisivel,e o Hypno também está.

Se puder postar uma solução xd :)

 

assim claro, eu esqueçi de arrumar isso. irei colocar no topico.

Link para o comentário
Compartilhar em outros sites

Resolvi o caso do Shiny Scyther invisivel.

 

Vá em data/monster/pokes/Shinys/Shiny Scyther/

 

Abra o xml do Shiny Scyther com o bloco de notas.

 

Ai vai ter look type:"1520"

 

(se eu não me engano é esse numero.)

 

Ai você substitui esse 1520 por 1317.

 

 

Pronto seu Shiny Scyther não está mais invisivel.

Editado por bartmath
Link para o comentário
Compartilhar em outros sites

Resolvi o caso do Shiny Scyther invisivel.

 

Vá em data/monster/pokes/Shinys/Shiny Scyther/

 

Abra o xml do Shiny Scyther com o bloco de notas.

 

Ai vai ter look type:"1520"

 

(se eu não me engano é isso)

 

Ai você substitui esse 1520 por 1317.

 

 

Pronto seu Shiny Scyther não está mais invisivel.

 

vlw por ajudar ele, oque eu coloquei no topico éo do scyther eo hypno. resp+ pra tu ;].

Link para o comentário
Compartilhar em outros sites

Resolvi o caso do Shiny Scyther invisivel.

 

Vá em data/monster/pokes/Shinys/Shiny Scyther/

 

Abra o xml do Shiny Scyther com o bloco de notas.

 

Ai vai ter look type:"1520"

 

(se eu não me engano é isso)

 

Ai você substitui esse 1520 por 1317.

 

 

Pronto seu Shiny Scyther não está mais invisivel.

 

vlw por ajudar ele, oque eu coloquei no topico éo do scyther eo hypno. resp+ pra tu ;].

 

Valeu :)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...