Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa tarde T'ks , 

 

eu estava instalando um umas spells igual da pxg que achei em alguns tópico mais fiquei com alguns erros se alguem puder me ajudar por favor 

[30/09/2015 14:07:59] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1298: '<eof>' expected near 'end'
[30/09/2015 14:07:59] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[30/09/2015 14:07:59] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/taunt.lua:1: unexpected symbol near 'ï'
[30/09/2015 14:07:59] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/taunt.lua)
[30/09/2015 14:07:59] data/talkactions/scripts/taunt.lua:1: unexpected symbol near 'ï'
[30/09/2015 14:07:59] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1298: '<eof>' expected near 'end'
[30/09/2015 14:07:59] [Warning - LuaScriptInterface::initState] Cannot load data/lib/



[30/09/2015 14:08:01] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1298: '<eof>' expected near 'end'
[30/09/2015 14:08:01] [Warning - LuaScriptInterface::initState] Cannot load data/lib/
[30/09/2015 14:08:01] [Error - LuaScriptInterface::loadFile] data/lib/newStatusSyst.lua:1298: '<eof>' expected near 'end'
[30/09/2015 14:08:01] [Warning - LuaScriptInterface::initState] Cannot load data/lib/

Os seguintes erros ficou accima :

 

Usei as script desse tópico : http://www.tibiaking.com/forum/topic/51750-spells-pxg/

 

Minha script newStatusSyst :

 

conds = {
["Slow"] = 3890,
["Confusion"] = 3891,  
["Burn"] = 3892,
["Poison"] = 3893,
["Fear"] = 3894,
["Stun"] = 3895,
["Paralyze"] = 3896,                               --alterado v1.6 \/ peguem o script todo!
["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 rodar By yagoo
[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},
["Typhlosion"] = {outFury = 2241},
}


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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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
       
  if getPlayerStorageValue(cid, 8402) == -1 then
        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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 
        
if getPlayerStorageValue(cid, 8402) == -1 then
        doCreatureAddHealth(cid, -dano, 8, COLOR_GRASS)  
    end  
    
    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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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 return true end  --n usar 2x
if not isSummon(cid) and isLegendaryPokemon(getCreatureName(cid)) then return true end
if isPlayer(cid) and getTileInfo(getThingPos(cid)).protection then return true end
if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then return true end
if getPlayerStorageValue(cid, 9658783) == 1 then return true end
if getCreatureOutfit(cid).lookType == 2 then return true end
if isNpcSummon(cid) then 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)
end
    ------
    if getPlayerStorageValue(cid, 8402) == -1 then
        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 
    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({"Sturdy", "Instant Teleportation", "Protect", "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
if buff == "Tailwind" then
doAreaCombatHealth(cid, FLYINGDAMAGE, getThingPos(cid), splash, 0, 0, eff)
else
    doSendMagicEffect(getThingPos(cid), eff)
    end
    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, 1.5, 0, 0, a)
elseif buff == "Instant Teleportation" then
       setPlayerStorageValue(cid, 9658783, 1)
elseif buff == "Protect" then
       setPlayerStorageValue(cid, 9658783, 1)
elseif buff == "Sturdy" then
       setPlayerStorageValue(cid, 9658783, 1)
    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
name = getCreatureName(cid)
if isInArray({"Ditto", "Shiny Ditto"}, name) then
name = getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "transName") or getCreatureName(cid)
end
       doSetCreatureOutfit(cid, {lookType = outFurys[name].outFury}, a*1000)
       setPlayerStorageValue(cid, 374896, 1)  --velo atk
       if getCreatureName(cid) == "Shiny Charizard" then 
          doRaiseStatus(cid, 1.5, 0, 0, a)    --atk melee     --alterado v1.6
       else
          doRaiseStatus(cid, 0, 1.5, 0, a)    --def
       end   
       setPlayerStorageValue(cid, 625877, outFurys[name].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)
  if getCreatureName(cid) == "Shiny Heracross" then
       doSetCreatureOutfit(cid, {lookType = 1596}, a*1000)
  else
       doSetCreatureOutfit(cid, {lookType = 1448}, a*1000)
  end
       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", "Burn", "Leech", "Fear"}, ret.cond) then   --alterado v1.6
      doSendMagicEffect(getThingPosWithDebug(ret.id), 114)
 doSendAnimatedText(getThingPosWithDebug(ret.id), "BOOST", 215)      
      return true
   end
end


   if type(ret.cond) == "table" then
        for i = 1, #ret.cond do
            if ret.cond[i] and ret.cond[i] == "Miss" then
                doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
            elseif ret.cond[i] and ret.cond[i] == "Silence" then
                doSilence2(ret.id, ret.cd, ret.eff, ret.check)
            elseif ret.cond[i] and ret.cond[i] == "Slow" then
                doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
            elseif ret.cond[i] and ret.cond[i] == "Confusion" then
                doConfusion2(ret.id, ret.cd, ret.check)
            elseif ret.cond[i] and ret.cond[i] == "Burn" then
                doBurn2(ret.id, ret.cd, ret.check, ret.damage)
            elseif ret.cond[i] and ret.cond[i] == "Poison" then
                doPoison2(ret.id, ret.cd, ret.check, ret.damage)
            elseif ret.cond[i] and ret.cond[i] == "Fear" then
                doFear2(ret.id, ret.cd, ret.check, ret.skill)
            elseif ret.cond[i] and ret.cond[i] == "Stun" then
                doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell)
            elseif ret.cond[i] and ret.cond[i] == "Paralyze" then
                doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first)
            elseif ret.cond[i] and ret.cond[i] == "Sleep" then
                doSleep2(ret.id, ret.cd, ret.check, ret.first)
            elseif ret.cond[i] and ret.cond[i] == "Leech" then
                doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage)
            end
        end
    else
        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
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)
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)
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
for bname, balls in pairs (pokeballs) do
for times = 1,3 do
local items = getItemsInContainerById(bp.uid, balls.all[times]) 
for _, uid in pairs(items) 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
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
if type(area) == "string" then return true end
   --if spell and spell == "Mud Bomb" then
     -- pos = getPosfromArea(getMasterTarget(cid), area)
   --else
      pos = getPosfromArea(cid, area) 
   --end
   if pos == false or pos == nil then return true end
   setPlayerStorageValue(cid, 21101, -1) --alterado v1.6
   
   local skills = {"Constrict Wave", "Skull Bash", "Gust", "Stick Throw", "Take Down", "Ground Chop", "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, z=pos[n].z}
      sendEffWithProtect(cid, posi, eff)
      doMoveDano2(cid, pid, element, min, max, ret, spell)
   elseif spell and spell == "Ground Impact" then
      posi = {x=pos[n].x + 1, y=pos[n].y, z=pos[n].z}
      sendEffWithProtect(cid, posi, eff)
      doMoveDano2(cid, pid, element, min, max, ret, spell)
   elseif spell and spell == "Gengar Impact" then
      posi = {x=pos[n].x + 1, y=pos[n].y, z=pos[n].z}
      posk = {x=pos[n].x, y=pos[n].y, z=pos[n].z}
      sendEffWithProtect(cid, posi, eff)
      sendEffWithProtect(cid, posk, 208)
      doMoveDano2(cid, pid, element, min, max, ret, spell)
   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" or spell == "Force Palm" or spell == "Gyro Ball") 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") then
      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 then
      return true                             --alterado v1.6
   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" or getCreatureName(pid) == "Shiny 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
      if isSummon(cid) and (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     --alterado v1.6
            if ret and ret.cond then
    if type(ret.cond) == "table" then
        for i = 1, #ret.cond do
            ret.id = pid
            ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]])
            doCondition2(ret)
        end
    else
        ret.id = pid
        ret.check = getPlayerStorageValue(pid, conds[ret.cond])
        doCondition2(ret)
    end
end
            if spell == "Selfdestruct" then
               if getPlayerStorageValue(pid, 9658783) <= 0 then
  if isMonster(pid) and isLegendaryPokemon(getCreatureName(pid)) then return true end
                  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
    if type(ret.cond) == "table" then
        for i = 1, #ret.cond do
            ret.id = pid
            ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]])
            doCondition2(ret)
        end
    else
        ret.id = pid
        ret.check = getPlayerStorageValue(pid, conds[ret.cond])
        doCondition2(ret)
    end
end
            if spell == "Selfdestruct" then
               if getPlayerStorageValue(pid, 9658783) <= 0 then
  if isMonster(pid) and isLegendaryPokemon(getCreatureName(pid)) then return true end
                  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
    if type(ret.cond) == "table" then
        for i = 1, #ret.cond do
            ret.id = pid
            ret.check = getPlayerStorageValue(pid, conds[ret.cond[i]])
            doCondition2(ret)
        end
    else
        ret.id = pid
        ret.check = getPlayerStorageValue(pid, conds[ret.cond])
        doCondition2(ret)
    end
end
            if spell == "Selfdestruct" then
               if getPlayerStorageValue(pid, 9658783) <= 0 then
  if isMonster(pid) and isLegendaryPokemon(getCreatureName(pid)) then return true end
                  doSendAnimatedText(getThingPosWithDebug(pid), ""..max.."", COLOR_FIRE2)
                  doCreatureAddHealth(pid, -max)    --alterado v1.6
               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)
if not movesinfo[nameAtk] then
doWriteArchive("Move: "..nameAtk.." not found in moves.lua (lib).", "data/bugs.txt")
end
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 movesinfo[nameAtk].t == "ground" then
if (pokes[getCreatureName(cid)].type == "flying") or (pokes[getCreatureName(cid)].type2 == "flying") or isInArray(specialabilities["levitate"], getCreatureName(cid))  then
return false      
end
elseif movesinfo[nameAtk].t == "electric" then
if (pokes[getCreatureName(cid)].type == "ground") or (pokes[getCreatureName(cid)].type2 == "ground") then
return false      
end
elseif movesinfo[nameAtk].t == "ghost" then
if (pokes[getCreatureName(cid)].type == "normal") or (pokes[getCreatureName(cid)].type2 == "normal") then
return false      
end
elseif movesinfo[nameAtk].t == "normal" then
if (pokes[getCreatureName(cid)].type == "ghost") or (pokes[getCreatureName(cid)].type2 == "ghost") then
return false      
end
elseif movesinfo[nameAtk].t == "psychic" then
if (pokes[getCreatureName(cid)].type == "dark") or (pokes[getCreatureName(cid)].type2 == "dark") 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 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 
endend

 

Editado por vudi (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

- Vai na ultima linha do Script newstatussyt.lua e altere isso:

endend

 

- Para Isso:

end

 

- Agora em data/talkactions/scripts/taunt.lua abre o documento como Bloco de Notas , "Nao use Notepad ++ para Abrir" e no canto Superior esquerdo clica no botao "Arquivo/salvar Como/Codificação/ANSI"

obs: Caso continue o erro de ï' , deleta o Documento "Taunt.lua" e cria outro "Taunt.lua"

Editado por Nextbr (veja o histórico de edições)

 

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo