• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] great mana potion error

    Compartir:

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

    1default [Actions] great mana potion error el Lun Mar 02, 2020 8:28 pm

    ricardo.12

    ricardo.12
    Miembro
    Miembro
    Descripcion escribió:Los knight pueden potear a los magos con great mana potion
    [Actions] great mana potion error JREHLV7 quiero bloquear eso que solo puedan potearse los magos entre si
    El error radica en: Actions[/quote]

    2default Re: [Actions] great mana potion error el Lun Mar 02, 2020 8:32 pm

    Josens

    Josens
    Miembro
    Miembro
    Okey, postea tu potions.lua y te lo arreglo



    Very Happy
    [Actions] great mana potion error 11ln580

    3default [Actions] potions.lua el Lun Mar 02, 2020 8:35 pm

    ricardo.12

    ricardo.12
    Miembro
    Miembro
    Código:
    local config = {
       removeOnUse = "yes",
       usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
       splashable = "no",
       range = -1,
       area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
    }

    local multiplier = {
       health = 1.0,
       mana = 1.0
    }

    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 = {700, 900}, 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 = {300, 350}, 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
    }

    for index, potion in pairs(POTIONS) do
       if(type(index) == 'number')then
          for k, v in pairs(config) do
             if(not potion[k]) then
                potion[k] = v
             end
          end

          if(potion.removeOnUse) then
             potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
          end

          if(potion.usableOnTarget) then
             potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
          end

          if(potion.splashable) then
             potion.splashable = getBooleanFromString(potion.splashable)
          end

          if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
             potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
             potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
          else
             potion.health = nil
          end


          if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
             potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
             potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
          else
             potion.mana = nil
          end

          POTIONS[index] = potion
       end
    end

    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 potion.usableOnTarget and cid ~= itemEx.uid)) then
          if(not potion.splashable or not potion.splash) 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 potion.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(((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_MONSTER, false, cid)
          return true
       end

       if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
          return true
       end

       if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
       end

       if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
       end

       if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
             if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
             end
          end
       else
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
          if(itemEx.uid ~= cid) then
             doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
          end
       end

       doRemoveItem(item.uid, 1)
       if(not potion.empty or potion.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

    4default Re: [Actions] great mana potion error el Lun Mar 02, 2020 8:49 pm

    Josens

    Josens
    Miembro
    Miembro
    Prueba con este bro
    Código:
    local config = {
      removeOnUse = "yes",
      usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
      splashable = "no",
      range = -1,
      area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
    }

    local multiplier = {
      health = 1.0,
      mana = 1.0
    }

    for index, potion in pairs(POTIONS) do
      if(type(index) == 'number')then
          for k, v in pairs(config) do
            if(not potion[k]) then
                potion[k] = v
            end
          end

          if(potion.removeOnUse) then
            potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
          end

          if(potion.usableOnTarget) then
            potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
          end

          if(potion.splashable) then
            potion.splashable = getBooleanFromString(potion.splashable)
          end

          if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
            potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
            potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
          else
            potion.health = nil
          end


          if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
            potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
            potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
          else
            potion.mana = nil
          end

          POTIONS[index] = potion
      end
    end


    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 = {700, 900}, 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 = {300, 350}, 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
    }

    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 potion.usableOnTarget and cid ~= itemEx.uid)) then
          if(not potion.splashable or not potion.splash) 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 potion.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(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and (not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)) and not isInArray(potion.vocations, getPlayerVocation(cid))))) 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_MONSTER, false, cid)
          return true
      end

      if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
          return true
      end

      if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
      end

      if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
      end

      if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
            if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
            end
          end
      else
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
          if(itemEx.uid ~= cid) then
            doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
          end
      end

      doRemoveItem(item.uid, 1)
      if(not potion.empty or potion.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



    Very Happy
    [Actions] great mana potion error 11ln580

    5default [Actions] tiro error bro el Lun Mar 02, 2020 8:51 pm

    ricardo.12

    ricardo.12
    Miembro
    Miembro
    [Actions] great mana potion error 28ybHSF

    tira ese error bro, no me funciono

    6default Re: [Actions] great mana potion error el Lun Mar 02, 2020 8:54 pm

    Josens

    Josens
    Miembro
    Miembro
    Prueba con este, asegurate de copiarlo entero
    Código:
    local config = {
      removeOnUse = "yes",
      usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
      splashable = "no",
      range = -1,
      area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
    }

    local multiplier = {
      health = 1.0,
      mana = 1.0
    }

    for index, potion in pairs(POTIONS) do
      if(type(index) == 'number')then
          for k, v in pairs(config) do
            if(not potion[k]) then
                potion[k] = v
            end
          end

          if(potion.removeOnUse) then
            potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
          end

          if(potion.usableOnTarget) then
            potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
          end

          if(potion.splashable) then
            potion.splashable = getBooleanFromString(potion.splashable)
          end

          if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
            potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
            potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
          else
            potion.health = nil
          end


          if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
            potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
            potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
          else
            potion.mana = nil
          end

          POTIONS[index] = potion
      end
    end

    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 = {700, 900}, 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 = {300, 350}, 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
    }

    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 potion.usableOnTarget and cid ~= itemEx.uid)) then
          if(not potion.splashable or not potion.splash) 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 potion.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(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and (not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)) and not isInArray(potion.vocations, getPlayerVocation(cid))))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
      then
          doCreatureSay(itemEx.uid or cid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_MONSTER, false, cid)
          return true
      end

      if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
          return true
      end

      if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
      end

      if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
      end

      if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
            if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
            end
          end
      else
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
          if(itemEx.uid ~= cid) then
            doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
          end
      end

      doRemoveItem(item.uid, 1)
      if(not potion.empty or potion.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



    Very Happy
    [Actions] great mana potion error 11ln580

    7default [Actions] error potion.lua el Lun Mar 02, 2020 9:01 pm

    ricardo.12

    ricardo.12
    Miembro
    Miembro
    [Actions] great mana potion error L0sk2iy

    ahora solo tira este error bro

    8default Re: [Actions] great mana potion error el Lun Mar 02, 2020 9:03 pm

    Josens

    Josens
    Miembro
    Miembro
    Prueba con este y terminamos xD, asegurate de comentar si funciono para que el tema quede cerrado.

    Código:
    local config = {
      removeOnUse = "yes",
      usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
      splashable = "no",
      range = -1,
      area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
    }

    local multiplier = {
      health = 1.0,
      mana = 1.0
    }

    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 = {700, 900}, 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 = {300, 350}, 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
    }


    for index, potion in pairs(POTIONS) do
      if(type(index) == 'number')then
          for k, v in pairs(config) do
            if(not potion[k]) then
                potion[k] = v
            end
          end

          if(potion.removeOnUse) then
            potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
          end

          if(potion.usableOnTarget) then
            potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
          end

          if(potion.splashable) then
            potion.splashable = getBooleanFromString(potion.splashable)
          end

          if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
            potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
            potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
          else
            potion.health = nil
          end


          if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
            potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
            potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
          else
            potion.mana = nil
          end

          POTIONS[index] = potion
      end
    end
    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 potion.usableOnTarget and cid ~= itemEx.uid)) then
          if(not potion.splashable or not potion.splash) 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 potion.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(((potion.level and getPlayerLevel(itemEx.uid) < potion.level) or (potion.vocations and (not isInArray(potion.vocations, getPlayerVocation(itemEx.uid)) and not isInArray(potion.vocations, getPlayerVocation(cid))))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
      then
          doCreatureSay(itemEx.uid or cid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_MONSTER, false, cid)
          return true
      end

      if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
          return true
      end

      if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
      end

      if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
      end

      if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
            if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
            end
          end
      else
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
          if(itemEx.uid ~= cid) then
            doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
          end
      end

      doRemoveItem(item.uid, 1)
      if(not potion.empty or potion.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



    Very Happy
    [Actions] great mana potion error 11ln580

    9default [Actions] No funciono bro el Lun Mar 02, 2020 9:11 pm

    ricardo.12

    ricardo.12
    Miembro
    Miembro
    No funciono bro, jajaj no tira error pero sigue tirando las potions

    10default Re: [Actions] great mana potion error el Lun Mar 02, 2020 9:23 pm

    Josens

    Josens
    Miembro
    Miembro
    Prueba con este

    Código:
    local config = {
       removeOnUse = "yes",
       usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
       splashable = "no",
       range = -1,
       area = {1, 1} -- if not set correctly, the message will be sent only to user of the item
    }

    local multiplier = {
       health = 1.0,
       mana = 1.0
    }

    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 = {700, 900}, 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 = {300, 350}, 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
    }


    for index, potion in pairs(POTIONS) do
       if(type(index) == 'number')then
          for k, v in pairs(config) do
             if(not potion[k]) then
                potion[k] = v
             end
          end

          if(potion.removeOnUse) then
             potion.removeOnUse = getBooleanFromString(potion.removeOnUse)
          end

          if(potion.usableOnTarget) then
             potion.usableOnTarget = getBooleanFromString(potion.usableOnTarget)
          end

          if(potion.splashable) then
             potion.splashable = getBooleanFromString(potion.splashable)
          end

          if(type(potion.health) == 'table' and table.maxn(potion.health) > 1) then
             potion.health[1] = math.ceil(potion.health[1] * multiplier.health)
             potion.health[2] = math.ceil(potion.health[2] * multiplier.health)
          else
             potion.health = nil
          end


          if(type(potion.mana) == 'table' and table.maxn(potion.mana) > 1) then
             potion.mana[1] = math.ceil(potion.mana[1] * multiplier.mana)
             potion.mana[2] = math.ceil(potion.mana[2] * multiplier.mana)
          else
             potion.mana = nil
          end

          POTIONS[index] = potion
       end
    end
    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 potion.usableOnTarget and cid ~= itemEx.uid)) then
          if(not potion.splashable or not potion.splash) 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 potion.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((((potion.level and getPlayerLevel(itemEx.uid) < potion.level)) or (potion.vocations and not (isInArray(potion.vocations, getPlayerVocation(itemEx.uid)) or isInArray(potion.vocations, getPlayerVocation(cid))))) and
          not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
       then
          doCreatureSay(itemEx.uid or cid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_MONSTER, false, cid)
          return true
       end

       if(potion.range > 0 and cid ~= itemEx.uid and getDistanceBetween(getThingPosition(cid), getThingPosition(itemEx.uid)) > potion.range and not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_CANUSEFAR)) then
          doPlayerSendDefaultCancel(cid, RETURNVALUE_TOOFARAWAY)
          return true
       end

       if(potion.health and not doTargetCombatHealth(cid, itemEx.uid, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
       end

       if(potion.mana and not doTargetCombatMana(cid, itemEx.uid, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE, false)) then
          return false
       end

       if(type(potion.area) == 'table' and table.maxn(potion.area) > 1) then
          for i, tid in ipairs(getSpectators(getThingPosition(itemEx.uid), potion.area[1], potion.area[2])) do
             if(isPlayer(tid)) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, tid)
             end
          end
       else
          doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, itemEx.uid)
          if(itemEx.uid ~= cid) then
             doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER, false, cid)
          end
       end

       doRemoveItem(item.uid, 1)
       if(not potion.empty or potion.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



    Very Happy
    [Actions] great mana potion error 11ln580

    11default [Actions] funcional el Lun Mar 02, 2020 10:08 pm

    ricardo.12

    ricardo.12
    Miembro
    Miembro
    listo bro, funciona muchas gracias, operativo y funcional al 101% Very Happy

    12default Re: [Actions] great mana potion error el Jue Mar 05, 2020 2:15 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Tema Resuelto



    [Actions] great mana potion error YNU5B25
    https://www.tibiaface.com

    Contenido patrocinado


    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).