Ir para conteúdo
  • 0

Bug OTCliente pokecamp


admelite

Pergunta

Olá boa tarde a todos, vou ser direto, baixei a base do pokemon camp, e o cliente novo que o lion disponibilizou.

http://www.xtibia.com/forum/topic/242268-pokecamp-client/#comment-1704632

 

 

porém o cliente está com um bug muito chato o único que encontrei até agora, quando o pokémon ataca um selvagem fica soltando Effects de master ball, testei no cliente que vem com o servidor e não estava assim então tenho certeza que o problema seja no cliente alguém ai poderia ajudar por favor?

 

IMAGEM:

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
2 horas atrás, admelite disse:

Olá boa tarde a todos, vou ser direto, baixei a base do pokemon camp, e o cliente novo que o lion disponibilizou.

http://www.xtibia.com/forum/topic/242268-pokecamp-client/#comment-1704632

 

 

porém o cliente está com um bug muito chato o único que encontrei até agora, quando o pokémon ataca um selvagem fica soltando Effects de master ball, testei no cliente que vem com o servidor e não estava assim então tenho certeza que o problema seja no cliente alguém ai poderia ajudar por favor?

 

IMAGEM:

  Ocultar conteúdo

 

hum.. Isso pode ser na source, posta aqui seu exp do creaturescript pra mim ver.

Link para o comentário
Compartilhar em outros sites

  • 0
Citar

hum.. Isso pode ser na source, posta aqui seu exp do creaturescript pra mim ver.

 

Exp.lua

Spoiler

local function doPlayerAddPercentLevel(cid, percent) 

    local player_lv, player_lv_1 = getExperienceForLevel(getPlayerLevel(cid)), getExperienceForLevel(getPlayerLevel(cid)+2) 

    local percent_lv = ((player_lv_1 - player_lv) / 200) * percent 

    doPlayerAddExperience(cid, percent_lv)

end 

local combats = {                         --alterado v2.6 \/

[PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC},

[GRASSDAMAGE] = {cor = COLOR_GRASS},

[POISONEDDAMAGE] = {cor = COLOR_GRASS},

[FIREDAMAGE] = {cor = COLOR_FIRE2},                         

[bURNEDDAMAGE] = {cor = COLOR_BURN},

[WATERDAMAGE] = {cor = COLOR_WATER},

[iCEDAMAGE] = {cor = COLOR_ICE},

[NORMALDAMAGE] = {cor = COLOR_NORMAL},

[FLYDAMAGE] = {cor = COLOR_FLYING},           

[GHOSTDAMAGE] = {cor = COLOR_GHOST},

[GROUNDDAMAGE] = {cor = COLOR_GROUND},

[ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC},

[ROCKDAMAGE] = {cor = COLOR_ROCK},

[bUGDAMAGE] = {cor = COLOR_BUG},

[FIGHTDAMAGE] = {cor = COLOR_FIGHTING},

[DRAGONDAMAGE] = {cor = COLOR_DRAGON},

[POISONDAMAGE] = {cor = COLOR_POISON},

[DARKDAMAGE] = {cor = COLOR_DARK},               

[sTEELDAMAGE] = {cor = COLOR_STEEL},

[MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC},  

[DARK_EYEDAMAGE] = {cor = COLOR_GHOST},

[sEED_BOMBDAMAGE] = {cor = COLOR_GRASS},

[sACREDDAMAGE] = {cor = COLOR_FIRE2}, 

}

--alterado v2.5  tabelas agora estao em lib/configuration.lua

local function sendPlayerDmgMsg(cid, text)

    if not isCreature(cid) then return true end

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text)

end

local spcevo = {

["Poliwhirl"] = {"Poliwrath", "Politoed"},

["Gloom"] = {"Bellossom", "Vileplume"},

["Tyrogue"] = {"Hitmonchan", "Hitmontop", "Hitmonlee"}}

local function doEvolveWild(cid)

    if not isCreature(cid) or getCreatureHealth(cid) <= 0 then return true end

    local name = getCreatureName(cid)

    local evolution = "none"

        if spcevo[name] then

            evolution = spcevo[name][math.random(1, #spcevo[name])]

        elseif poevo[name] then

            evolution = poevo[name].evolution

        elseif megaevo[name] then

            evolution = megaevo[name].evolution

        end

    local a = getPokemonStatus(name)

        if not a or evolution == "none" then return true end

    local pk = {}

    local players = getSpectators(getThingPos(cid), 7, 7)

    if players then

        for pp = 1, #players do

            local this = players[pp]

            if isCreature(this) and isPlayer(this) and (getCreatureTarget(this) == cid or getDamageMapPercent(this, cid) > 0) then

                doSendMagicEffect(getThingPos(this), 173)

                local expstring = cid.."expEx"

                pk[this] = getItemAttribute(getPlayerSlotItem(this, 8).uid, expstring)

                doItemSetAttribute(getPlayerSlotItem(this, 8).uid, expstring, 0)

            end

        end

    end

    local level = getPokemonLevel(cid)

    local pos = getThingPos(cid)

    local gender = getCreatureSkull(cid)

    local lifepercentage = 1 - ((getCreatureHealth(cid) * 1.3) / getCreatureMaxHealth(cid))

    local lookdir = getCreatureLookDir(cid)

    local status = {}

        status.offense = getOffense(cid) + a.off * 8

        status.defense = getDefense(cid) + a.def * 8

        status.agi = getSpeed(cid) + a.agi * 8

        status.spatk = getSpecialAttack(cid) + a.spatk * 8

        status.vit = getVitality(cid) + a.vit * 4

    doRemoveCreature(cid)

    local evo = doCreateMonster(evolution, pos)

    setWildPokemonLevel(evo, level, status)

    doCreatureSetLookDir(evo, lookdir)

    doCreatureSetSkullType(evo, gender)

    doCreatureAddHealth(evo, -getCreatureMaxHealth(evo) * lifepercentage)

    doSendMagicEffect(getThingPos(evo), 18)

        for attacker, experience in pairs (pk) do

            doWildAttackPlayer(evo, attacker)

            local expstring = evo.."expEx"

            local exp = experience or 0

            doItemSetAttribute(getPlayerSlotItem(attacker, 8).uid, expstring, exp)

        end

    sendFinishEvolutionEffect(evo, true)

    addEvent(sendFinishEvolutionEffect, 550, evo, true)

    addEvent(sendFinishEvolutionEffect, 1050, evo)

end

local races = {

[4] = {cor = COLOR_FIRE2},

[6] = {cor = COLOR_WATER},

[7] = {cor = COLOR_NORMAL},

[8] = {cor = COLOR_FIRE2},

[9] = {cor = COLOR_FIGHTING},

[10] = {cor = COLOR_FLYING},

[11] = {cor = COLOR_GRASS},

[12] = {cor = COLOR_POISON},

[13] = {cor = COLOR_ELECTRIC},

[14] = {cor = COLOR_GROUND},

[15] = {cor = COLOR_PSYCHIC},

[16] = {cor = COLOR_ROCK},

[17] = {cor = COLOR_ICE},

[18] = {cor = COLOR_BUG},

[19] = {cor = COLOR_DRAGON},

[20] = {cor = COLOR_GHOST},

[21] = {cor = COLOR_STEEL},

[22] = {cor = COLOR_DARK},

[1] = {cor = 180},

[2] = {cor = 180},

[3] = {cor = 180},

[5] = {cor = 180},

}

   

local damages = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE}

local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE}

local ignored = {POISONEDDAMAGE, BURNEDDAMAGE}                --alterado v2.6

local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE} 

function onStatsChange(cid, attacker, type, combat, value)

if combat == FLYSYSTEMDAMAGE then return false end

if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV

local damageCombat = combat

if not isCreature(attacker) then  --alterado v2.5 cid == attacker

    if not isInArray(fixdamages, combat) and combats[combat] then

        doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)

    end

return true

end

--------------------------------------------------

--alterado v2.6  retirado os combats sleep_powder e poison_powder daki!

--------------------------------------------------

if isMonster(cid) then

local valor = value

   if not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE then

      valor = getOffense(attacker) * playerDamageReduction

      doCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor)                       --alterado v2.6 dano nos npcs

      return false

   elseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE then

      doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor)

      return false

   end

end

--------------------------------------------------

if isPlayer(attacker) then

    local valor = value

    if valor > getCreatureHealth(cid) then

        valor = getCreatureHealth(cid)

    end

    if combat == COMBAT_PHYSICALDAMAGE then

    return false

    end

    if combat == PHYSICALDAMAGE then

    doSendMagicEffect(getThingPos(cid), 3)

    doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor)

    end

    if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then

    doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor)

    end

    if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then

        doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".")

    end

return true

end

--------------------------------------------------

if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then

return false                                                                           

end

--------------------------------------------------

if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then

if isSummon(attacker) or isPlayer(attacker) then

   if canAttackOther(cid, attacker) == "Cant" then return false end

end

    local valor = 0

        if combat == COMBAT_PHYSICALDAMAGE then

            valor = getOffense(attacker)

        else

            valor = getSpecialAttack(attacker)

        end

    valor = valor * playerDamageReduction

    valor = valor * math.random(83, 117) / 100

    if valor >= getCreatureHealth(cid) then

        valor = getCreatureHealth(cid)

    end

    valor = math.floor(valor)

    if valor >= getCreatureHealth(cid) then

       if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then

          setPlayerStorageValue(cid, 6598754, -1)

          setPlayerStorageValue(cid, 6598755, -1)

          doRemoveCondition(cid, CONDITION_OUTFIT)

       end

       if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then

          doRemoveCondition(cid, CONDITION_OUTFIT)

          setPlayerStorageValue(cid, 17000, 0)

          setPlayerStorageValue(cid, 17001, 0)

          setPlayerStorageValue(cid, 63215, -1) 

          doChangeSpeed(cid, PlayerSpeed)

local item = getPlayerSlotItem(cid, 8):

local btype = getPokeballType(item.itemid)

      if #getCreatureSummons(cid) <= 0 then

        if isInArray(pokeballs[btype].all, item.itemid) then

            doTransformItem(item.uid, pokeballs[btype].off)

            doItemSetAttribute(item.uid, "hp", 0)

        end

      end

      end

      ------------Edited Golden Arena------------------

      if getPlayerStorageValue(cid, 22545) == 1 then

         if getGlobalStorageValue(22550) == 1 then

            doPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!")

            doPlayerAddItem(cid, 2152, 100)  --premio

            setPlayerStorageValue(cid, 22545, -1)

            doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false)  --alterado v2.4

            setGlobalStorageValue(22550, -1)

            doCreatureAddHealth(cid, getCreatureMaxHealth(cid))

            valor = 0           

         else

             setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)

             setPlayerStorageValue(cid, 22545, -1)

             doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)    --alterado v2.4

             doCreatureAddHealth(cid, getCreatureMaxHealth(cid))

             valor = 0

         end 

     end

     -------------------------------------------     

    end

    doCreatureAddHealth(cid, -valor, 3, 180)

    if not isPlayer(cid) then

    addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")

    end

return false

end

--------------------------------------------------

if type == STATSCHANGE_HEALTHGAIN then

    if cid == attacker then

    return true

    end

    if isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" then

    return false

    end

return true

end

--------------------------------------------------

if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then

    if isPlayer(cid) then

    return false

    end

    if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then

    return false

    end

end

--------------------------------------------------

if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then

    if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then

    return false

    end

end

--------------------------------------------------

if ehMonstro(cid) and ehMonstro(attacker) then 

return false                                          --edited monstro nao atacar monstro

end

---------------------------------------------------

--------------------REFLECT-----------------------

if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then

   if not isInArray({"Team Claw", "Team Slice"}, getPlayerStorageValue(attacker, 21102)) then

      doSendMagicEffect(getThingPosWithDebug(cid), 135)

      doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS)

      addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102))

      if getCreatureName(cid) == "Wobbuffet" then

         doRemoveCondition(cid, CONDITION_OUTFIT)    

      end

      setPlayerStorageValue(cid, 21099, -1)                    --alterado v2.6

      setPlayerStorageValue(cid, 21100, 1)

      setPlayerStorageValue(cid, 21101, attacker)

      setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f)

      setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType)

      return false

   end

end

-------------------------------------------------

local multiplier = 1    

   if isCreature(cid) then

      poketype1 = pokes[getCreatureName(cid)].type        --alterado v2.6

      poketype2 = pokes[getCreatureName(cid)].type2

   end

   if not poketype1 or not poketype2 then return false end  --alterado v2.6

    if getCreatureCondition(cid, CONDITION_INVISIBLE) then

    return false

    end

if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then

    if isInArray(effectiveness[damageCombat].super, poketype1) then

        multiplier = multiplier + 0.5

    end

    if isInArray(effectiveness[damageCombat].super, poketype2) then

        multiplier = multiplier + 0.5

    end

    if isInArray(effectiveness[damageCombat].weak, poketype1) then

        multiplier = multiplier - 0.25          --alterado v2.3  efetividade q nem na pxg...

    end

    if isInArray(effectiveness[damageCombat].weak, poketype2) then

        multiplier = multiplier - 0.25

    end

    if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then

        if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then   --alterado v2.5

           multiplier = 0.5           --alterado v2.6      

        end

    end

elseif combat == COMBAT_PHYSICALDAMAGE then

    if isGhostPokemon(cid) then     --alterado v2.3

                            

       if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then  --alterado v2.5

          doSendMagicEffect(getThingPos(cid), 3)     

          return false

       end

    end

    

        local cd = getPlayerStorageValue(attacker, conds["Miss"])

        local cd2 = getPlayerStorageValue(attacker, conds["Confusion"])      --alterado v2.5

        local cd3 = getPlayerStorageValue(attacker, conds["Stun"])            

        if cd >= 0 or cd2 >= 0 or cd3 >= 0 then

           if math.random(1, 100) > 50 then  --50% chance de da miss no atk fisico

              doSendMagicEffect(getThingPos(cid), 211)

              doSendAnimatedText(getThingPos(attacker), "MISS", 215)

              return false

           end

        end

end

--------------------------------------------------

local valor = value

    if multiplier == 1.5 and poketype2 == "no type" then

        multiplier = 2                                         --alterado v2.6

    elseif multiplier == 1.5 and poketype2 ~= "no type" then    

        multiplier = 1.75       

    elseif multiplier == 1.25 then    --edited effetivines = pxg

        multiplier = 1    

    end

--------------------------------------------------

    if isSummon(cid) and isSummon(attacker) then

        if getCreatureMaster(cid) == getCreatureMaster(attacker) then

           return false

        end

        if canAttackOther(cid, attacker) == "Cant" then

           return false

        end

    end

    local randomRange = math.random(83, 117) / 100

    local block = 1    

    if not isPlayer(cid) then

    

    if combat == COMBAT_PHYSICALDAMAGE then

        block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid)))

        if getPokemonGender(attacker) == SEX_MALE then

            block = block + 0.2

        end

        if getPokemonGender(cid) == SEX_FEMALE then

            block = block - 0.2

        end

        valor = getOffense(attacker) * block

        

        if isInArray(specialabilities["counter"], getCreatureName(cid)) then

          if math.random(1, 100) <= 10 then

             doCreatureAddHealth(attacker, -valor, 3, 180)    --alterado v2.5

             valor = 0

             doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)

          end

        end

    else

        block = 1 - (getDefense(cid) / (getSpecialAttack(attacker) + getDefense(cid)))

        valor = valor * block * generalSpecialAttackReduction

            if isSummon(cid) then

                valor = valor * summonSpecialDamageReduction - getPokemonLevel(cid) / 2

            end  

    end

    end

    valor = valor * multiplier

    valor = valor * randomRange

    if isSummon(attacker) then

        valor = valor * getHappinessRate(attacker)

    else

        valor = valor * summonReduction

    end

    valor = math.floor(valor)

        

    if combat == BURNEDDAMAGE then

        valor = value * getResistance(cid, FIREDAMAGE)

    elseif combat == POISONEDDAMAGE then

        valor = value * getResistance(cid, POISONDAMAGE)

    end

    if math.random(1, 100) == 4 and not isInArray(ignorecritical, combat) then

        doSendAnimatedText(getThingPos(attacker), "CRITICAL", 215)

        valor = valor * 2

    end

    -------------------------Edited CLAN SYSTEM-----------------------------------

    if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then

       valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")

    elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then    --alterado v2.3

       valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))

    end

    -----------------------------------------------------------------------

    

    ---------------------- Edited Proteção --------------------------------

    if valor <= 10 then

       valor = math.random(15, 25)

    end

    -----------------------------------------------------------------------

    ---------------------- FEAR / ROAR ------------------------------------

    if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then         --alterado v2.5!!

    return true

    end

---------------------------------------------------------------------------

if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then

   if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then

      if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) and getPlayerStorageValue(attacker, 999457) <= 0 then

         valor = valor * 0                      --alterado v2.5

      end

   end

end

if damageCombat == GROUNDDAMAGE then

   if isInArray(specialabilities["levitate"], getCreatureName(cid)) then

      valor = 0                      --alterado v2.5

   end

end

-----------------------------------------------------------------------------

local p = getThingPos(cid)                     --poke na pos backup

if p.x == 1 and p.y == 1 and p.z == 10 then

return false                                     --alterado v2.2

end

if getPlayerStorageValue(cid, 9658783) == 1 then

return false      --alterado v2.4 -- skill camuflage/future sight/acid armor e afins

end

-----------------------------------------------------------------------------

    

    if valor >= getCreatureHealth(cid) then

        if isInArray(cannotKill, combat) and isPlayer(cid) then

            valor = getCreatureHealth(cid) - 1

        else

            valor = getCreatureHealth(cid)

        end

    end

    valor = math.floor(valor)  --alterado v2.5

    

------------------ SKILLs Q CURAM O ATTACKER ---------------------------------

local function doHeal(cid, amount)

if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then

   amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))

end

if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then           --alterado v2.6

   doCreatureAddHealth(cid, amount)

   doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) 

end

end

          

if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then

   if getPlayerStorageValue(attacker, 95487) >= 1 then

      doHeal(attacker, valor)

      setPlayerStorageValue(attacker, 95487, -1)                  --alterado v2.6

   end

elseif damageCombat == SEED_BOMBDAMAGE then

   doHeal(attacker, valor)

end

--------------------------------------------

----------SACRED FIRE-----------------------

if combat == SACREDDAMAGE and not ehNPC(cid) then    --alterado v2.6

   local ret = {}

   ret.id = cid

   ret.cd = 9

   ret.check = getPlayerStorageValue(cid, conds["Silence"])

   ret.eff = 39

   ret.cond = "Silence"

   doCondition2(ret)

end

--------------Passiva Lifesteal Clobat------------

if combat == COMBAT_PHYSICALDAMAGE then

   if getCreatureName(attacker) == "Crobat" then                    --alterado v1.4

      doCreatureAddHealth(attacker, math.floor(valor))

      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

   end

end

--------------------------------------------

--------------Passiva Lifesteal Clobat------------

if combat == COMBAT_PHYSICALDAMAGE then

   if getCreatureName(attacker) == "Golbat" then                    --alterado v1.4

      doCreatureAddHealth(attacker, math.floor(valor))

      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

   end

end

--------------------------------------------

--------------Passiva Lifesteal Clobat------------

if combat == COMBAT_PHYSICALDAMAGE then

   if getCreatureName(attacker) == "Zubat" then                    --alterado v1.4

      doCreatureAddHealth(attacker, math.floor(valor))

      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

   end

end

--------------------------------------------

--------------Passiva Lifesteal Clobat------------

if combat == COMBAT_PHYSICALDAMAGE then

   if getCreatureName(attacker) == "Shiny Crobat" then                    --alterado v1.4

      doCreatureAddHealth(attacker, math.floor(valor))

      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

   end

end

--------------------------------------------

--------------Passiva Lifesteal Clobat------------

if combat == COMBAT_PHYSICALDAMAGE then

   if getCreatureName(attacker) == "Shiny Golbat" then                    --alterado v1.4

      doCreatureAddHealth(attacker, math.floor(valor))

      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

   end

end

--------------------------------------------

--------------Passiva Lifesteal Clobat------------

if combat == COMBAT_PHYSICALDAMAGE then

   if getCreatureName(attacker) == "Shiny Zubat" then                    --alterado v1.4

      doCreatureAddHealth(attacker, math.floor(valor))

      doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

   end

end

--------------------------------------------

    if isSummon(attacker) and not isSummon(cid) and not isPlayer(cid) then

        local expstring = cid.."expEx"

        if getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, expstring) == null then

            doItemSetAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, expstring, 0)

        end

        local exp = valor / getCreatureMaxHealth(cid)

        local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8).uid

        local xpp = tonumber(getItemAttribute(ball, expstring))

        local nxpp = xpp + exp

        doItemSetAttribute(ball, expstring, nxpp)

            if getItemAttribute(ball, expstring) > 1 then

                doItemSetAttribute(ball, expstring, 1)

            end

    end

    if isSummon(attacker) then

        if combat == COMBAT_PHYSICALDAMAGE then

            doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)

            addEvent(doDoubleHit, 1000, attacker, cid, valor, races)      --alterado v2.6    agility

        else

            doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)

        end

            if not isSummon(cid) and not isPlayer(cid) and math.random(1, wildEvolveChance) == math.random(1, wildEvolveChance) then

                addEvent(doEvolveWild, math.random(1, 2500), cid)

            end

    else

        if combat ~= COMBAT_PHYSICALDAMAGE then

            doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor)

        else

            doCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor)

            addEvent(doDoubleHit, 1000, attacker, cid, valor, races)   --alterado v2.6   agility

        end

        if isSummon(cid) then

            addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")

        end

    end

    if damageCombat == FIREDAMAGE and not isBurning(cid) then

       local ret = {}

       ret.id = cid

       ret.cd = math.random(5, 12)                             --alterado v2.5

       ret.check = getPlayerStorageValue(cid, conds["Burn"])

       ret.damage = isSummon(attacker) and getMasterLevel(attacker)+getPokemonBoost(attacker) or getPokemonLevel(attacker)

       ret.cond = "Burn"

       

       doCondition2(ret)

    elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then

       local ret = {}

       ret.id = cid

       ret.cd = math.random(6, 15)                              --alterado v2.5

       ret.check = getPlayerStorageValue(cid, conds["Poison"])

       local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker)

       ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2)

       ret.cond = "Poison"

       

       doCondition2(ret)

    end

------------------------------------POTIONS-------------------------------------------

if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then

   if getPlayerStorageValue(cid, 173) >= 1 then

      if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then

         setPlayerStorageValue(cid, 173, -1)  --alterado v2.6

         doSendAnimatedText(getThingPos(cid), "Lost Heal", 144)

      end

   end

end

----------------------------------------PASSIVAS------------------------------------- --alterado v2.6 \/ todas as passivas agora estao em lib/pokemon moves.lua

-------------------------------------------Counter Helix------------------------------------

if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then

   docastspell(cid, "Counter Helix")

end

-------------------------------------------Lava Counter/Electricity----------------------------

local Fire_Thunder = {"Magmar", "Electabuzz", "Shiny Electabuzz", "Magby", "Elekid"}

if isInArray(Fire_Thunder, getCreatureName(cid)) and math.random(1, 100) <= 15 then

   docastspell(cid, "Lava-Electricity")

end

-------------------------------------------Demon Kicker-------------------------------------

--alterado v1.6 esta por ATK agora

-------------------------------------------Demon Puncher-------------------------------------

--alterado v1.6 esta por ATK agora

-----------------------------------------Groundshock-----------------------------------

if getCreatureName(cid) == "Kangaskhan" and math.random(1, 100) <= 20 then

   docastspell(cid, "Groundshock")

end

---------------------------------------Stunning Confusion-----------------------------------------

if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then  

   docastspell(cid, "Stunning Confusion")

end

--------------------------------------Electric Charge---------------------------------------------

local charge = {"Pikachu", "Raichu", "Shiny Raichu"}

if isInArray(charge, getCreatureName(cid)) and math.random(1, 100) <= 15 then

   docastspell(cid, "Electric Charge", 0, 0)

end

-------------------------------------Melody------------------------------------

if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then 

   docastspell(cid, "Melody")

end

------------------------------------- Dragon Fury / Fury ---------------------------------------

if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then

   docastspell(cid, "Dragon Fury", 0, 0)

end

------------------------------------- Mega Drain ---------------------------------------

if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then

   docastspell(cid, "Mega Drain")

end

------------------------------------- Spores Reaction ---------------------------------------

if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then

   docastspell(cid, "Spores Reaction")

end

------------------------------------ Amnesia ----------------------------------------   

if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then 

   docastspell(cid, "Amnesia", 0, 0)

end

----------------------------------- Zen Mind -----------------------------------------

if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then

   docastspell(cid, "Zen Mind", 0, 0)

end

---------------------------------- Mirror Coat ---------------------------------------

if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 80) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then   

   docastspell(cid, "Mirror Coat", 0, 0)

end

---------------------------------------MEGA EVOLUTION-----------------------------------------

local megas = {"Charizard"}   

if isInArray(megas, getCreatureName(cid)) and math.random(1, 100) <= 3 then  

   docastspell(cid, "Mega Evolution")

end

------------------------------------ Superpower ----------------------------------------   

if passivesChances["Superpower"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Superpower"][getCreatureName(cid)] then

   docastspell(cid, "Superpower")

end

------------------------------------ Bone-Spin ----------------------------------------   

if passivesChances["Bone"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Bone"][getCreatureName(cid)] then

   docastspell(cid, "Bone-Spin")

end

------------------------------------- Spikes --------------------------------------

if passivesChances["Spikes"][passiveName] and math.random(1, 100) <= passivesChances["Spikes"][passiveName] then

   docastspell(cid, "Spikes")

end

------------------------------------- Sheer Cold --------------------------------------

if passivesChances["Sheer Cold"][passiveName] and math.random(1, 100) <= passivesChances["Sheer Cold"][passiveName] then

   docastspell(cid, "Sheer Cold")

end

------------------------------------ Blaze -------------------------------------------

if passivesChances["Blaze"][passiveName] and math.random(1, 100) <= passivesChances["Blaze"][passiveName] then   

   docastspell(cid, "Blaze", 0, 0)

end

--------------------------------- Illusion -----------------------------------------

return false

end

 

1 hora atrás, Deadpool disse:
1 hora atrás, Deadpool disse:

hum.. Isso pode ser na source, posta aqui seu exp do creaturescript pra mim ver.

 

esqueci de citar ai esta o exp.lua

Lembrando que esse problema so acontece com o cliente novo que o lion forneceu.

Editado por admelite
esqueci de citar
Link para o comentário
Compartilhar em outros sites

  • 0

No Exp.lua tem essa linha...

 

  doSendMagicEffect(getThingPos(cid), 211)

 

211 é o efeito que vai sair ao atacar, é só mudar ele pelo efeito que você quer que apareça, só abrir seu OBD ir em efeitos ver um adequado, mudar e reiniciar o server.

Link para o comentário
Compartilhar em outros sites

  • 0
13 horas atrás, KarlKalvin disse:

No Exp.lua tem essa linha...

 

  doSendMagicEffect(getThingPos(cid), 211)

 

211 é o efeito que vai sair ao atacar, é só mudar ele pelo efeito que você quer que apareça, só abrir seu OBD ir em efeitos ver um adequado, mudar e reiniciar o server.

Fiz aqui mais não resolveu mano =/, o engraçado e que só ocorre com o cliente novo que o lion forneceu com o que vem com o servidor não ocorre.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 30/09/2016 at 10:15, Drakopoulos disse:

Já tive esse problema uma vez, se n me engano era pq a sprite effect  nº 256 estava sendo usada pela master ball.. só deixar ela vazia.

Fiz isso mano ^^, mesmo assim obrigado.

 

Topico resolvido.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...