• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    potion infinitas

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default potion infinitas el Jue Ene 25, 2018 10:49 pm

    Hola tibiaface como puedo hacer que mi ot tenga pociones infinitas uso este script de potions.lua

    Código:
    local config = {
       removeOnUse = "no",
       usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
       splashable = "no",
       range = -1,
       realAnimation = "no", -- make text effect visible only for players in range 1x1
       multiplier = {
          health = 1.0,
          mana = 1.0
       }
    }

    config.removeOnUse = getBooleanFromString(config.removeOnUse)
    config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
    config.splashable = getBooleanFromString(config.splashable)
    config.realAnimation = getBooleanFromString(config.realAnimation)

    local POTIONS = {
       [8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
       [7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
       [7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
       [7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
       [8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

       [7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion
       [7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
       [7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

       [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
    }

    local exhaust = createConditionObject(CONDITION_EXHAUST)
    setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

    function onUse(cid, item, fromPosition, itemEx, toPosition)
       local potion = POTIONS[item.itemid]
       if(not potion) then
          return false
       end

       if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
          if(not config.splashable) then
             return false
          end

          if(toPosition.x == CONTAINER_POSITION) then
             toPosition = getThingPosition(item.uid)
          end

          doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
          doRemoveItem(item.uid, 1)
          if(not potion.empty or config.removeOnUse) then
             return true
          end

          if(fromPosition.x ~= CONTAINER_POSITION) then
             doCreateItem(potion.empty, fromPosition)
          else
             doPlayerAddItem(cid, potion.empty, 1)
          end

          return true
       end

       if(hasCondition(cid, CONDITION_EXHAUST)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
          return true
       end

       if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
       then
          doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
          return true
       end

       if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > config.range) then
          return false
       end

       local health = potion.health
       if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
          return false
       end

       local mana = potion.mana
       if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
          return false
       end

       doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
       if(not config.realAnimation) then
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
       else
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
             if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
             end
          end
       end

       doAddCondition(cid, exhaust)
       doRemoveItem(item.uid, 1)
       if(not potion.empty or config.removeOnUse) then
          return true
       end

       if(fromPosition.x ~= CONTAINER_POSITION) then
          doCreateItem(potion.empty, fromPosition)
       else
          doPlayerAddItem(cid, potion.empty, 1)
       end

       return true
    end

    Seerer 8.60// tfs 0.4

    Ver perfil de usuario

    2default Re: potion infinitas el Jue Ene 25, 2018 10:53 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Código:
    local config = {
      removeOnUse = "no",
      usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
      splashable = "no",
      range = -1,
      realAnimation = "no", -- make text effect visible only for players in range 1x1
      multiplier = {
          health = 1.0,
          mana = 1.0
      }
    }

    config.removeOnUse = getBooleanFromString(config.removeOnUse)
    config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
    config.splashable = getBooleanFromString(config.splashable)
    config.realAnimation = getBooleanFromString(config.realAnimation)

    local POTIONS = {
      [8704] = {empty = 7636, splash = 42, health = {50, 100}}, -- small health potion
      [7618] = {empty = 7636, splash = 42, health = {100, 200}}, -- health potion
      [7588] = {empty = 7634, splash = 42, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
      [7591] = {empty = 7635, splash = 42, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
      [8473] = {empty = 7635, splash = 42, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

      [7620] = {empty = 7636, splash = 47, mana = {70, 130}}, -- mana potion
      [7589] = {empty = 7634, splash = 47, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
      [7590] = {empty = 7635, splash = 47, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

      [8472] = {empty = 7635, splash = 43, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
    }

    local exhaust = createConditionObject(CONDITION_EXHAUST)
    setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

    function onUse(cid, item, fromPosition, itemEx, toPosition)
      local potion = POTIONS[item.itemid]
      if(not potion) then
          return false
      end

      if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
          if(not config.splashable) then
            return false
          end

          if(toPosition.x == CONTAINER_POSITION) then
            toPosition = getThingPosition(item.uid)
          end

          doDecayItem(doCreateItem(POOL, potion.splash, toPosition))
          doRemoveItem(item.uid, 1)
          if(not potion.empty or config.removeOnUse) then
            return true
          end

          if(fromPosition.x ~= CONTAINER_POSITION) then
            doCreateItem(potion.empty, fromPosition)
          else
            doPlayerAddItem(cid, potion.empty, 1)
          end

          return true
      end

      if(hasCondition(cid, CONDITION_EXHAUST)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
          return true
      end

      if(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
      then
          doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
          return true
      end

      if(config.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > config.range) then
          return false
      end

      local health = potion.health
      if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.multiplier.health))) then
          return false
      end

      local mana = potion.mana
      if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.multiplier.mana))) then
          return false
      end

      doSendMagicEffect(getThingPosition(itemEx.uid), CONST_ME_MAGIC_BLUE)
      if(not config.realAnimation) then
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
      else
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), 1, 1)) do
            if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
            end
          end
      end

      doAddCondition(cid, exhaust)

      if(not potion.empty or config.removeOnUse) then
          return true
      end

      if(fromPosition.x ~= CONTAINER_POSITION) then
          doCreateItem(potion.empty, fromPosition)
      else
       
      end

      return true
    end


    ahi lo tienes



    Ver perfil de usuario http://www.tibiaface.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).