Ir para conteúdo

Marshmello

Conde
  • Total de itens

    831
  • Registro em

  • Última visita

  • Dias Ganhos

    69

Posts postados por Marshmello

  1. Test Essa

     

    Spoiler

    local combats = {                        
    [PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC},
    [GRASSDAMAGE] = {cor = COLOR_GRASS},
    [POISONEDDAMAGE] = {cor = COLOR_GRASS},
    [FIREDAMAGE] = {cor = COLOR_FIRE2},                         
    [bURNEDDAMAGE] = {cor = COLOR_BURN},
    [WATERDAMAGE] = {cor = COLOR_WATER},
    [iCEDAMAGE] = {cor = COLOR_ICE},
    [NORMALDAMAGE] = {cor = COLOR_NORMAL},
    [FLYDAMAGE] = {cor = COLOR_FLYING},           
    [GHOSTDAMAGE] = {cor = COLOR_GHOST},
    [GROUNDDAMAGE] = {cor = COLOR_GROUND},
    [ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC},
    [ROCKDAMAGE] = {cor = COLOR_ROCK},
    [bUGDAMAGE] = {cor = COLOR_BUG},
    [FIGHTDAMAGE] = {cor = COLOR_FIGHTING},
    [DRAGONDAMAGE] = {cor = COLOR_DRAGON},
    [POISONDAMAGE] = {cor = COLOR_POISON},
    [DARKDAMAGE] = {cor = COLOR_DARK},               
    [sTEELDAMAGE] = {cor = COLOR_STEEL},
    [MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC},  
    [DARK_EYEDAMAGE] = {cor = COLOR_GHOST},
    [sEED_BOMBDAMAGE] = {cor = COLOR_GRASS},
    [sACREDDAMAGE] = {cor = COLOR_FIRE2}, 
    [MUDBOMBDAMAGE] = {cor = COLOR_GROUND}, --alterado v1.9
    }

    local function sendPlayerDmgMsg(cid, text)
        if not isCreature(cid) then return true end
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text)
    end

    local races = {
    [4] = {cor = COLOR_FIRE2},
    [6] = {cor = COLOR_WATER},
    [7] = {cor = COLOR_NORMAL},
    [8] = {cor = COLOR_FIRE2},
    [9] = {cor = COLOR_FIGHTING},
    [10] = {cor = COLOR_FLYING},
    [11] = {cor = COLOR_GRASS},
    [12] = {cor = COLOR_POISON},
    [13] = {cor = COLOR_ELECTRIC},
    [14] = {cor = COLOR_GROUND},
    [15] = {cor = COLOR_PSYCHIC},
    [16] = {cor = COLOR_ROCK},
    [17] = {cor = COLOR_ICE},
    [18] = {cor = COLOR_BUG},
    [19] = {cor = COLOR_DRAGON},
    [20] = {cor = COLOR_GHOST},
    [21] = {cor = COLOR_STEEL},
    [22] = {cor = COLOR_DARK},
    [1] = {cor = 180},
    [2] = {cor = 180},
    [3] = {cor = 180},
    [5] = {cor = 180},
    }

    local damages = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE}
    local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE}
    local ignored = {POISONEDDAMAGE, BURNEDDAMAGE}                
    local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}

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

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

    if not isCreature(attacker) then  
        if not isInArray(fixdamages, combat) and combats[combat] then
            doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)
        end
    return true
    end

    local damageCombat = combat
    --------------------------------------------------
    if type == STATSCHANGE_HEALTHGAIN then
        if cid == attacker then
        return true
        end
        if isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" then
        return false
        end
    return true
    end
    --------------------------------------------------
    if isMonster(cid) then
    local valor = value
       if not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE then
          valor = getOffense(attacker) * playerDamageReduction
          doCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor)                       
          return false
       elseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE then
          doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor)
          return false
       end
    end
    --------------------------------------------------
    if isPlayer(attacker) then

        local valor = value
        if valor > getCreatureHealth(cid) then
            valor = getCreatureHealth(cid)
        end

        if combat == COMBAT_PHYSICALDAMAGE then
        return false
        end

        if combat == PHYSICALDAMAGE then
        doSendMagicEffect(getThingPos(cid), 3)
        doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor)
        end

        if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then
        doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor)
        end

        if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then
            doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".")
        end

    return true
    end
    --------------------------------------------------
    if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then
    return false                                                                           
    end
    --------------------------------------------------
    if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then

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

        local valor = 0
            if combat == COMBAT_PHYSICALDAMAGE then
                valor = getOffense(attacker)
            else
                valor = getSpecialAttack(attacker)
            end

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

        if valor >= getCreatureHealth(cid) then
            valor = getCreatureHealth(cid)
        end

        valor = math.floor(valor)

        if valor >= getCreatureHealth(cid) then
           if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then
              setPlayerStorageValue(cid, 6598754, -1)
              setPlayerStorageValue(cid, 6598755, -1)
              doRemoveCondition(cid, CONDITION_OUTFIT)             
              doTeleportThing(cid, posBackPVP, false)
              doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
              return false --alterado v1.8
           end
           
           if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
              doRemoveCondition(cid, CONDITION_OUTFIT)
              setPlayerStorageValue(cid, 17000, 0)
              setPlayerStorageValue(cid, 17001, 0)
              setPlayerStorageValue(cid, 63215, -1) 
              doChangeSpeed(cid, PlayerSpeed)
              local item = getPlayerSlotItem(cid, 8):
              local btype = getPokeballType(item.itemid)
              if #getCreatureSummons(cid) <= 0 then
                   if isInArray(pokeballs[btype].all, item.itemid) then
                       doTransformItem(item.uid, pokeballs[btype].off)
                       doItemSetAttribute(item.uid, "hp", 0)
                 end
              end
           end

           if getPlayerStorageValue(cid, 22545) == 1 then
              if getGlobalStorageValue(22550) == 1 then
                 doPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!")
                 doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*2)  
                 setPlayerStorageValue(cid, 22545, -1)
                 doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false)  
                 doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                 setPlayerRecordWaves(cid)     
                 endGoldenArena()
                 return false --alterado v1.8           
              else
                 setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)
                 setPlayerStorageValue(cid, 22545, -1)
                 doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false)    
                 doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
                 setPlayerRecordWaves(cid)     
                 return true
              end 
           end

           if getPlayerStorageValue(cid, 98796) >= 1 then
              setPlayerStorageValue(cid, 98796, -1) 
              setPlayerStorageValue(cid, 98797, -1)                      --alterado v1.8
              doTeleportThing(cid, SafariOut, false)
              doSendMagicEffect(getThingPos(cid), 21)
              doPlayerSendTextMessage(cid, 27, "You die in the saffari... Best luck in the next time!")
              return false --alterado v1.8
           end

           local corpse = doCreateItem(3058, 1, getThingPos(cid))
           doDecayItem(corpse)
           doItemSetAttribute(corpse, "pName", getCreatureName(cid))          --alterado v1.7 coloca corpse quando o player morre!
           doItemSetAttribute(corpse, "attacker", getCreatureName(attacker))
           doItemSetAttribute(corpse, "article", getPlayerSex(cid) == 0 and "She" or "He")
           
           if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) <= 10 then
              setPlayerStorageValue(cid, Agatha.stoIni, -1)
              setPlayerStorageValue(cid, Agatha.stoRec, -1)
              setPlayerStorageValue(cid, Agatha.stoPer, -1)
              setPlayerStorageValue(cid, Agatha.stoEni, -1)        --alterado v1.9  agatha quest
              setPlayerStorageValue(cid, Agatha.stoRes, -1)
           end 
        end
        doCreatureAddHealth(cid, -valor, 3, 180)
        if not isPlayer(cid) then
           addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")
        end
    return false
    end
    --------------------------------------------------
    if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then
        if isPlayer(cid) then
        return false
        end
        if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then
        return false
        end
    end
    --------------------------------------------------
    if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then
        if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then
        return false
        end
    end
    --------------------------------------------------
    if ehMonstro(cid) and ehMonstro(attacker) and not isSummon(cid) and not isSummon(attacker) then 
    return false                                          --alterado v1.9 /\
    end
    --------------------------------------------------
    --------------------REFLECT-----------------------
    if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then
       if not isInArray({"Team Claw", "Team Slice"}, getPlayerStorageValue(attacker, 21102)) then
          doSendMagicEffect(getThingPosWithDebug(cid), 135)
          doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS)
          addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102))
          if getCreatureName(cid) == "Wobbuffet" then
             doRemoveCondition(cid, CONDITION_OUTFIT)    
          end
          setPlayerStorageValue(cid, 21099, -1)                    
          setPlayerStorageValue(cid, 21100, 1)
          setPlayerStorageValue(cid, 21101, attacker)
          setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f)
          setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType)
          return false
       end
    end
    -------------------------------------------------

    local multiplier = 1

       if isCreature(cid) then
          poketype1 = pokes[getCreatureName(cid)].type        
          poketype2 = pokes[getCreatureName(cid)].type2
       end
       if not poketype1 or not poketype2 then return false end  
       
        if getCreatureCondition(cid, CONDITION_INVISIBLE) then
        return false
        end
    if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then
        if isInArray(effectiveness[damageCombat].super, poketype1) then
            multiplier = multiplier + 0.5
        end
        if isInArray(effectiveness[damageCombat].super, poketype2) then
            multiplier = multiplier + 0.5
        end
        if isInArray(effectiveness[damageCombat].weak, poketype1) then    
            multiplier = multiplier - 0.25
        end
        if isInArray(effectiveness[damageCombat].weak, poketype2) then
            multiplier = multiplier - 0.25
        end
        if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then
          if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then   
             multiplier = 0.5                 
          end                         --alterado v1.6
        end

        if isSummon(attacker) and isPlayer(getCreatureMaster(attacker)) then
        local TierArray = {8, 9, 10, 11, 12, 13, 14}
        local Tiers = {
    [8] = {bonus = AtkBonus1},
    [9] = {bonus = AtkBonus2},
    [10] = {bonus = AtkBonus3},
    [11] = {bonus = AtkBonus4},
    [12] = {bonus = AtkBonus5},
    [13] = {bonus = AtkBonus6},
    [14] = {bonus = AtkBonus7},
    }
     local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8):
    local Tier = getItemAttribute(ball.uid, "heldx")
        local bonusatk = {}
        if isInArray(TierArray, getItemAttribute(ball.uid, "heldx")) then
        bonusatk = Tiers[Tier].bonus
        else
        bonusatk = 1
        end
            multiplier = multiplier * bonusatk
        end

    elseif combat == COMBAT_PHYSICALDAMAGE then
        if isGhostPokemon(cid) then               
           if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then  --passiva Foresight!!
              doSendMagicEffect(getThingPos(cid), 3)     
              return false
           end
        end
            local cd = getPlayerStorageValue(attacker, conds["Miss"])
            local cd2 = getPlayerStorageValue(attacker, conds["Confusion"]) 
            local cd3 = getPlayerStorageValue(attacker, conds["Stun"]) 
            if cd >= 0 or cd2 >= 0 or cd3 >= 0 then
               if math.random(1, 100) > 50 then  
                  doSendMagicEffect(getThingPos(cid), 211)
                  doSendAnimatedText(getThingPos(attacker), "MISS", 215)         
                  return false
               end
            end
    end
    --------------------------------------------------
    local valor = value

        if multiplier == 1.5 and poketype2 == "no type" then
            multiplier = 2                                         
        elseif multiplier == 1.5 and poketype2 ~= "no type" then    
            multiplier = 1.75       
        elseif multiplier == 1.25 then    
            multiplier = 1    
        end

    --------------------------------------------------
        if isSummon(cid) and isSummon(attacker) then
            if getCreatureMaster(cid) == getCreatureMaster(attacker) then
               return false
            end
            if canAttackOther(cid, attacker) == "Cant" then
               return false
            end
        end

        valor = valor * multiplier

        if isSummon(attacker) then
            valor = valor * getHappinessRate(attacker)
        else
            valor = valor * summonReduction
        end
                                                                  
        valor = math.floor(valor)                                 
        
        if combat == COMBAT_PHYSICALDAMAGE then
           
           local value = getOffense(attacker) > 1000 and 3 or 2
           block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) --alterado v1.9 testem essa nova formula plzzz '--'
           valor = (getOffense(attacker)/value) * block
           
           if valor <= 0 then
              valor = math.random(5, 10) --alterado v1.9
           end
           
           if isInArray(specialabilities["counter"], getCreatureName(cid)) then
              if math.random(1, 100) <= 10 then
                 doCreatureAddHealth(attacker, -valor, 3, 180)    
                 valor = 0
                 doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)
              end
           end      
        else
           valor = valor / getDefense(cid)
        end
        
        -------------------------Edited CLAN SYSTEM-----------------------------------
        if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then
           valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")                           
        elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then
           valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))
        end
        -----------------------------------------------------------------------
        ---------------------- FEAR / ROAR ------------------------------------
        if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then         
        return true
        end
    --------------------------------------------------------------------------
    if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then
       if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then
          if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then     
             valor = valor * 0                      
          end
       end
    end

    if damageCombat == GROUNDDAMAGE then
       if isInArray(specialabilities["levitate"], getCreatureName(cid)) then
          valor = 0                      
       end
    end
    -----------------------------------------------------------------------------
    local p = getThingPos(cid)                     
    if p.x == 1 and p.y == 1 and p.z == 10 then
    return false                                    
    end

    if getPlayerStorageValue(cid, 9658783) == 1 then
    return false     --imune
    end
    -----------------------------------------------------------------------------

    --------------- FIGHT MODE -----------------------
    if useOTClient then
    if isSummon(cid) then                                  
       local master = getCreatureMaster(cid)
       if getPlayerStorageValue(master, 248759) == 1 then
          valor = valor * 1.1
       elseif getPlayerStorageValue(master, 248759) == 3 then
          valor = valor * 0.9
       end
    end
    if isSummon(attacker) then
       local master = getCreatureMaster(attacker)
       if getPlayerStorageValue(master, 248759) == 1 then
          valor = valor * 1.1
       elseif getPlayerStorageValue(master, 248759) == 3 then
          valor = valor * 0.9
       end
    end 
    end   
    -----------------------------------------------------------------------------
        if valor >= getCreatureHealth(cid) then
            if isInArray(cannotKill, combat) and isPlayer(cid) then
                valor = getCreatureHealth(cid) - 1
            else
                valor = getCreatureHealth(cid)
            end
        end
        valor = math.floor(valor)            
        
    ------------------ SKILLs Q CURAM O ATTACKER ---------------------------------
    local function doHeal(cid, amount)
    if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then
       amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))
    end
    if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then           
       doCreatureAddHealth(cid, amount)
       doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65) 
    end
    end
              
    if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then
       if getPlayerStorageValue(attacker, 95487) >= 1 then
          doHeal(attacker, valor)
          setPlayerStorageValue(attacker, 95487, -1)                  
       end
    elseif damageCombat == SEED_BOMBDAMAGE then
       doHeal(attacker, valor)
    end
    --------------------------------------------
    ----------SACRED FIRE-----------------------
    if combat == SACREDDAMAGE and not ehNPC(cid) then    
       local ret = {}
       ret.id = cid
       ret.cd = 9
       ret.check = getPlayerStorageValue(cid, conds["Silence"])
       ret.eff = 39
       ret.cond = "Silence"

       doCondition2(ret)
    elseif combat == MUDBOMBDAMAGE and not ehNPC(cid) then
       local ret = {}                                        
       ret.id = cid
       ret.cd = 9
       ret.eff = 34
       ret.check = getPlayerStorageValue(cid, conds["Miss"])
       ret.spell = "Mud Bomb"       --alterado v1.9
       ret.cond = "Miss"
       
       doCondition2(ret)
    end
    ---------------------------------------------
    --------------Passiva Lifesteal Clobat------------
    if combat == COMBAT_PHYSICALDAMAGE then
       if getCreatureName(attacker) == "Crobat" then                    
          doCreatureAddHealth(attacker, math.floor(valor))
          doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)
       end
    end
    --------------------------------------------
             valor = math.abs(valor) --alterado v1.9
      if isSummon(cid) and valor >= getCreatureHealth(cid) then
             onPokeHealthChange(getCreatureMaster(cid), true)
      elseif isSummon(cid) then
             onPokeHealthChange(getCreatureMaster(cid))
      end
      if isSummon(attacker) then
            if combat == COMBAT_PHYSICALDAMAGE then
                doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)
                addEvent(doDoubleHit, 1000, attacker, cid, valor, races)      
            else
                doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)
            end
        else
            if combat ~= COMBAT_PHYSICALDAMAGE then
                doCreatureAddHealth(cid, -valor, 3, combats[damageCombat].cor)  
            else
                doCreatureAddHealth(cid, -valor)
                addEvent(doDoubleHit, 1000, attacker, cid, valor, races)   
            end

            if isSummon(cid) and valor ~= 0 then
                addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")
            end

        end
        
        if damageCombat == FIREDAMAGE and not isBurning(cid) then
           local ret = {}
           ret.id = cid
           ret.cd = math.random(5, 12)
           ret.check = getPlayerStorageValue(cid, conds["Burn"])
           ret.damage = isSummon(attacker) and getMasterLevel(attacker)+getPokemonBoost(attacker) or getPokemonLevel(attacker)
           ret.cond = "Burn"
           
           doCondition2(ret)
        elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then
           local ret = {}
           ret.id = cid
           ret.cd = math.random(6, 15)
           ret.check = getPlayerStorageValue(cid, conds["Poison"])
           local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker)
           ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2)
           ret.cond = "Poison"
           
           doCondition2(ret)
        end
    --[[---------------CD BAR-----------------------
    if isSummon(cid) then
       doCreatureExecuteTalkAction(getCreatureMaster(cid), "/pokeread")
    end  ]]
    ------------------------------------POTIONS-------------------------------------------
    if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then
       if getPlayerStorageValue(cid, 173) >= 1 then
          if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then
             setPlayerStorageValue(cid, 173, -1)  
             doSendAnimatedText(getThingPos(cid), "Lost Heal", 144)
          end
       end
    end
    ----------------------------------------PASSIVAS-------------------------------------  
    -------------------------------------------Counter Helix------------------------------------
    if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then
       docastspell(cid, "Counter Helix")
    end
    -------------------------------------------Lava Counter/Electricity----------------------------
    if passivesChances["Fire_Thunder"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Fire_Thunder"][getCreatureName(cid)] then
       docastspell(cid, "Lava-Electricity")
    end
    ---------------------------------------Stunning Confusion-----------------------------------------
    if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then  
       docastspell(cid, "Stunning Confusion")
    end
    -----------------------------------------Groundshock-----------------------------------
    if passivesChances["Groundshock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Groundshock"][getCreatureName(cid)] then
       docastspell(cid, "Groundshock")
    end
    --------------------------------------Electric Charge---------------------------------------------
    if passivesChances["Electric Charge"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Electric Charge"][getCreatureName(cid)] then
       docastspell(cid, "Electric Charge", 0, 0)
    end
    -------------------------------------Melody------------------------------------
    if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then 
       docastspell(cid, "Melody")
    end
    ------------------------------------- Dragon Fury / Fury ---------------------------------------
    if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then
       docastspell(cid, "Dragon Fury", 0, 0)
    end
    ------------------------------------- Mega Drain ---------------------------------------
    if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then
       docastspell(cid, "Mega Drain")
    end
    ------------------------------------- Spores Reaction ---------------------------------------
    if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then
       docastspell(cid, "Spores Reaction")
    end
    ------------------------------------ Amnesia ----------------------------------------   
    if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then 
       docastspell(cid, "Amnesia", 0, 0)
    end
    ----------------------------------- Zen Mind -----------------------------------------
    if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then
       docastspell(cid, "Zen Mind", 0, 0)
    end
    ---------------------------------- Mirror Coat ---------------------------------------
    if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then   
       docastspell(cid, "Mirror Coat", 0, 0)
    end
    --------------------------------- Illusion -----------------------------------------
    return false
    end

     

  2. Fala Galera BLZ Vim Trazer Uma Script Feita Port Min De Msg QUando Vc Logar Na Sua Contaarrow-10x10.png
     
    Vai Em Creaturescipt e crie Uma Arquivo Chama Admlg Ficnado Admlg.lua
    e ADD

    Spoiler

    -- ScRIPT By BRENDO CREDITOS A MIN N VENDA MINHA ScRIPT OU IREI Q AGIR NA JUSTISA --
    function onLogin(cid)
    if getPlayerGroupId(cid) >= 1 then
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, " [ Aviso Importante ] Nunca Logue Sua Conta Em Sites nao Official ( www.Seu Site.com ), nao Seja HACKIADO!!!")
    end
    return true
    end

    Dps Vai em creaturescript.xml e add

    Spoiler

    <event type="login" name="StaffLogin" event="script" value="admlg.lua"/>

     

    SE Gosta Deixe seu REP+
    Creditos A Minha pela Script

  3. Em 27/07/2016 at 17:42, elias vieira alves disse:

    kk será ?

    Obrigado

    vei ja ta mano geral abrindo ot cm ela

    18 horas atrás, FelipeCzY disse:

    mano, os comandos de adm não funcionam, o char é adm, eu digito /cb ou /s /m etc não funciona nenhum, a fala aparece coomo se o personagem tivesse falando mesmo etc, unico que funcionoou que testei até agora foi /goto e /town....

    pode me ajudar??

    pra sumonar mostro vc bota /mostro , para crear mostro vc coloca /kc

  4. Bom pessoal eu resolvi compartilhar o meu sistema de torneio para poketibia que fiz para meu projeto, ele tem a função de ocorrer 4 vezes ao dia....Falando apenas com o 1 NPC Nick da cidade aonde você por....

     

    Como funciona ? Mata todos e o ultimo que sobrar na arena de batalha é o ganhador!

     

    1° Pasta LIB copie um arquivo e deverá renomear para torneio ficando torneio.lua apaga tudo que tem dentro e add

    Spoiler
    torneio = {awardTournament = 2148, ---moeda usada para entra no torneio--awardAmount = 1000, -- quantidade de moeda que o player vai ganhar ao vencer o torneio--playerTemple = {x = 893, y = 499, z = 15}, --pra onde vai o player quando clicar na porta?--tournamentFight = {x = 894, y = 538, z = 15}, --centro da arena torneio combate--area = {fromx = 866, fromy = 508, fromz = 15, tox = 922, toy = 572, toz= 15},--canto acima direito da arena combate-canto esquerdo abaixo da arena combate--waitPlace = {x = 969, y = 544, z = 15},  --centro da sala de espera--waitArea = {fromx = 957, fromy = 536, fromz = 15, tox = 983, toy = 552, toz= 15}, --canto esquerdo acima da sala de espera--canto abaixo esquerdo da sala de espera--startHour1 = "07:50:00", --horario do aviso?--endHour1 = "08:00:00",--horario que começa?--startHour2 = "11:50:00",--horario do aviso?--endHour2 = "12:00:00",--horario do aviso?--startHour3 = "17:50:00",--horario do aviso?--endHour3 = "18:00:00",--horario do aviso?--startHour4 = "22:50:00",--horario do aviso?--endHour4 = "23:00:00",--horario do aviso?--price = 500,--valor para entrar no torneio ? 500 dollar no caso--revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer--}function getPlayersInArea(area)local players = {}for x = area.fromx,area.tox dofor y = area.fromy,area.toy dofor z = area.fromz,area.toz dolocal m = getTopCreature({x=x, y=y, z=z}).uidif m ~= 1 and isPlayer(m) thentable.insert(players, m)endendendendreturn playersendstartHour3 = "17:50:00",--horario do aviso?--endHour3 = "18:00:00",--horario do aviso?--startHour4 = "22:50:00",--horario do aviso?--endHour4 = "23:00:00",--horario do aviso?--price = 500,--valor para entrar no torneio ? 500 dollar no caso--revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer--}function getPlayersInArea(area)local players = {}for x = area.fromx,area.tox dofor y = area.fromy,area.toy dofor z = area.fromz,area.toz dolocal m = getTopCreature({x=x, y=y, z=z}).uidif m ~= 1 and isPlayer(m) thentable.insert(players, m)endendendendreturn playersend

     

    2° GLOBALEVENTS vá na pasta globalevents/scripts copia um arquivo que voc?ê deverá renomear para torneio ficando torneio.lua e add

    Spoiler
    function onTimer()if #getPlayersInArea(torneio.area) > 1 thendoBroadcastMessage("O Torneio dessa vez não teve vencedor, tente na proxima vez") return true endfor _, pid in ipairs(getPlayersInArea(torneio.waitArea)) dodoTeleportThing(pid, torneio.tournamentFight)doPlayerSendTextMessage(pid, 21, "O torneio começou!")endreturn trueend

    agora em globalevents.xml add as tag

    Spoiler
    <globalevent name="TournamentStart1" time="08:00" event="script" value="torneio.lua"/><globalevent name="TournamentStart2" time="12:00" event="script" value="torneio.lua"/><globalevent name="TournamentStart3" time="18:00" event="script" value="torneio.lua"/><globalevent name="TournamentStart4" time="23:00" event="script" value="torneio.lua"/>

    ainda em globalevents vá em globalevents/scripts copie outro arquivo e renomeia para, msgtorneio ficando msgtorneio.lua e add

    Spoiler
    local i = {["07:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's  para participar!"},["07:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["07:59"] = {nome = "As inscrições do Torneio fecharam!"},["11:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"},["11:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["11:59"] = {nome = "As inscrições do Torneio fecharam!"},["17:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"},["17:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["17:59"] = {nome = "As inscrições do Torneio fecharam!"},["22:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"},["22:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["22:59"] = {nome = "As inscrições do Torneio fecharam!"},}function onThink(interval, lastExecution)        hours = tostring(os.date("%X")):sub(1, 5)        tb = i[hours]        if tb then                doBroadcastMessage(hours .. " - " .. tb.nome .. "")                        end        return trueend

    agora as tag globalevents.xml add

    Spoiler

    <globalevent name="msg torneio" interval="65" event="script" value="msgtorneio.lua"/>
     

    pronto agora vamos mexer com actions...

     

    3° ACTIONS para o player receber a recompensa... vá em actions/scripts copie um arquivo lá e renomeia para torneio ficando torneio.lua e add

    Spoiler
    function onUse(cid, item)local torneios = 1if #getCreatureSummons(cid) >= 1 thendoPlayerSendCancel(cid, "Volte seu pokémonDBR!")elseif #getPlayersInArea(torneio.area) > 1 thendoPlayerSendTextMessage(cid, 20 ,"Só o ultimo que ficar na arena, poderá abrir está porta! ") return true enddoTeleportThing(cid, torneio.playerTemple)doBroadcastMessage("[Torneio] Parabéns ao treinador "..getCreatureName(cid).." foi o ganhador do torneio de hoje, verifique o rank em nosso site www.seusite.com!")doPlayerAddItem(cid,2148,300)addTopt(cid, torneios)doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,"[Torneio] Você já venceu "..(getTopt(cid,torneio)).."x, Parabéns.")doPlayerAddItem(cid, torneio.awardTournament, torneio.awardAmount)return trueendend

    ou se n tiver site

    Spoiler
    function onUse(cid, item)local torneios = 1if #getCreatureSummons(cid) >= 1 thendoPlayerSendCancel(cid, "Volte seu pokémonDBR!")elseif #getPlayersInArea(torneio.area) > 1 thendoPlayerSendTextMessage(cid, 20 ,"Só o ultimo que ficar na arena, poderá abrir está porta! ") return true enddoTeleportThing(cid, torneio.playerTemple)doBroadcastMessage("[Torneio] Parabéns ao treinador "..getCreatureName(cid).." foi o ganhador do torneio de hoje, verifique o rank em nosso site www.seusite.com!")doPlayerAddItem(cid,2148,300)doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,"[Torneio] Você já venceu "..(getTopt(cid,torneio)).."x, Parabéns.")doPlayerAddItem(cid, torneio.awardTournament, torneio.awardAmount)return trueendend
    <action uniqueid="18279" event="script" value="torneio.lua"/>

    18279 é unique ID que vc terá que por numa porta alavanca o que for pra depois o ultimo player clicar...

     NPC vá na pasta npc/scripts copia um arquivo e você deverá renomear para torneio ficando torneio.lua e add

    Spoiler
    local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidif msgcontains(msg, 'torneio') or msgcontains(msg, 'enter') thenif getPlayerItemCount(cid, torneio.revivePoke) >= 1 thenselfSay('Voce nao Pode entrar no torneio com {revives}, por favor guarde eles e volte a falar comigo novamente.', cid)return trueendselfSay('Voce quer Participar no torneio por '..torneio.price..' de Dollars?', cid)talkState[talkUser] = 2elseif talkState[talkUser] == 2 thenif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') thenif os.date("%X") < torneio.startHour1 or os.date("%X") > torneio.endHour1 thenif os.date("%X") < torneio.startHour2 or os.date("%X") > torneio.endHour2 thenif os.date("%X") < torneio.startHour3 or os.date("%X") > torneio.endHour3 thenif os.date("%X") < torneio.startHour4 or os.date("%X") > torneio.endHour4 thenselfSay('As inscrições para o torneiro ainda não abriram, volte ás 07:50 AM, 11:50 AM, 17:50 AM ou ás 22:50 PM todo os dias', cid)return true         end      end   endendif doPlayerRemoveMoney(cid, torneio.price) thendoTeleportThing(cid, torneio.waitPlace)doPlayerSendTextMessage(cid, 21, "Bem vindo, esta e a sala de espera, voce espera aqui enquanto o torneio nao começa.")elseselfSay('Voce não tem ('..torneio.price..') Dollars.', cid)endelseselfSay('Certeza que voce não quer Participar? Ok, ate a Proxima', cid)talkState[talkUser] = 0endendendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

    bom agora volte um pasta e copia um arquivo.xml e renomeia para torneio ficando torneio.xml e add

     

    Spoiler
    <?xml version="1.0" encoding="UTF-8"?><npc name="Nick" script="torneio.lua" walkinterval="999000" floorchange="0"><health now="150" max="150"/><look type="1245" head="20" body="100" legs="50" feet="99" corpse="2212"/>]<parameters><parameter key="message_greet" value="Ola |PLAYERNAME|. Sou o NIKE, Encarregado pelo Torneio diario caso queira entrar diga: {torneio}."/>        </parameters></npc>

    agora vamos para parte do site pra quer for usar site com rank e tudo mais

     

     importa para seu mysql o código

    Spoiler
    ALTER TABLE `players` ADD `torneio` int(11) NOT NULL default '0';

    agora a vá na pasta lib copia um arquivo.lua e renomeia para torneio2 e add ficando torneio2.lua

    Spoiler
    function getTopt(cid)local check4 = db.getResult("SELECT `torneio` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")return check4:getDataInt("torneio") <= 0 and 0 or check4:getDataInt("torneio") endfunction addTopt(cid,amount)db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) endfunction removeTopt(cid,amount)db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) endfunction setTopt(cid,value)db.executeQuery("UPDATE `players` SET `torneio` = "..value.." WHERE `id` = "..getPlayerGUID(cid)) end

     pronto torneio 4 vezes ao dia + npc + rank para site como usar o rank no site ? vai em htdocs/template/seulayout/index.tpl e add em algum lugar lá

    Spoiler
    <div class="top-box">                                      {include_php file='torneio.php'}                                                          </div>

    agora vá em htdocs criar um novo text com nome torneio.php e add

    Spoiler
    <?PHP //** Connection to the database **// $ots = POTgetInstance(); $ots->connect(POTDB_MYSQL, connection()); $SQL = POTgetInstance()->getDBHandle(); //** Top Players + online status By Kavvson **//                                 $money_list = $SQL->query('SELECT name,torneio FROM players ORDER BY torneio DESC LIMIT 5')->fetchAll();                                         $i = 1;                                         foreach($money_list as $money_chr){                                         echo '<center>';                                             echo $i.'. <a href="/pt/index.php/character/view/'.urlencode($money_chr['name']).'">';         $player = $ots->createObject('Player');         $player->find($money_chr['name']);                          echo '<font color="';                         echo ($player->isOnline()) ? 'green' : 'green';                         echo '">';                             echo ''.$money_chr['name'].'</b></a></font>';  echo' Torneio Ganhos: '.$money_chr['torneio'].'</B>';                                             $i++;                                         }                                         for( $i; $i <= 1; $i++ ){                                             echo $i.'. <br><i>Empty</i><br /><br />';                                         }                                         echo '</center>'; 

    se ajudo deixe seu rep+

     

    CREDITOS ; OTPOKEMONDBR e pra min

     

     

     

     

     

     

    MEU PROJETO

    Spoiler

    WWW.FACEBOOK.COM/PXMOSTYER

     

     

     

     

     

     

     

     

     

     

     

     

     

  • Quem Está Navegando   0 membros estão online

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