• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    WrapTo y/o Rewardchest TFS 1.3

    Compartir:

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

    1default WrapTo y/o Rewardchest TFS 1.3 el Vie Ago 24, 2018 8:50 pm

    rpalmak

    avatar
    Miembro
    Miembro
    Hola chicos, queria pedirle a algun alma caritativa si tiene el wrap system de OTX?
    y algun reward chest si es posible?
    Y ojala con los pasos a seguir para aplicar bien el codigo por favor??
    Gracias!

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

    2default Re: WrapTo y/o Rewardchest TFS 1.3 el Mar Ago 28, 2018 6:03 pm

    Para el WrapTo debes crear un archivo.lua en esta direccion: data/modules/scripts/house/decorationkit.lua
    si no existe el directorio /house, creas la carpeta y adentro de esa carpeta crearas el archivo.lua
    el codigo a continuacion es el script que ira dentro del nuevo archivo.lua que acabas de crear
    Código:
    local function getDistanceBetween(pos1, pos2)
       return math.abs(pos1 - pos2)
    end

    local wrapItems = {
       "Magnificent Cabinet",
       "Magnificent Chair",
       "Magnificent Trunk",
       "Magnificent Table",
       "Ferocious Cabinet",
       "Ferocious Chair",
       "Ferocious Trunk",
       "Ferocious Table",
       "Rustic Cabinet",
       "Rustic Chair",
       "Rustic Trunk",
       "Rustic Table",
       "Yalaharian Carpet",
       "White Fur Carpet",
       "Bamboo Mat",
       "Crimson Carpet",
       "Azure Carpet",
       "Emerald Carpet",
       "Light Parquet",
       "Dark Parquet",
       "Marble Parquet",
       "Fish Tank",
       [26364] = "Dog House",
       [26098] = "Baby Dragon",
       [26107] = "Cat in a Basket",
       [26100] = "Hamster in a Wheel",
       "Protectress Lamp",
       "Predator Lamp",
       "Ornate Mailbox",
       "Royal Mailbox",
       "Lordly Tapestry",
       "Menacing Tapestry",
       "AllSeeing Tapestry",
       "Golden Dragon Tapestry",
       "Sword Tapestry",
       "Brocade Tapestry"
    }

    local function getItemId(name)
       for i, v in pairs(wrapItems) do
          if (i > 20000) then
             if (v == name) then
                return i
             end
          end

          if (v == name) then
             return ItemType(v):getId()
          end
       end
    end

    function onRecvbyte(player, msg, byte)
       if (Player.getExhaustion(player, 4820392) > 0) then
          return false
       end

       local positionItem = msg:getPosition()
       if (positionItem) then
          if (Tile(positionItem)) then
             local item = Tile(positionItem):getTopDownItem() or Tile(positionItem):getTopTopItem()
             if (item) then
                local itemId = item:getId()
                if (itemId == 26054) then
                   onUnWrap(player, positionItem)
                   Player.setExhaustion(player, 4820392, 0.2)
                elseif (isInArray(wrapItems, ItemType(itemId):getName())) then
                   onWrap(player, positionItem, itemId)
                   Player.setExhaustion(player, 4820392, 0.2)
                else
                   player:sendCancelMessage("This item can't be wrap/unwrap.")
                   return false
                end
             end
          end
       end
    end

    function onWrap(player, positionItem, itemId)
       local playerPos = player:getPosition()
       if (getDistanceBetween(positionItem.x, playerPos.x) > 1 or
          getDistanceBetween(positionItem.y, playerPos.y) > 1) then
          player:sendCancelMessage("You need to reach decoration to wrap.")
          return false
       end

       local decoTile = Tile(positionItem)
       if (not decoTile) then
          player:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
          return false
       end

       local decoItem = Tile(positionItem):getItemById(itemId)
       if (not decoItem) then
          player:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
          return false
       end

       if (decoItem:isContainer() and
          Container(decoItem:getUniqueId()):getItemHoldingCount() > 0) then
          player:sendCancelMessage("You can't wrap with items inside of this container.")
          return false
       end

       if (decoTile:getHouse() == nil) then
          player:sendCancelMessage("You can't wrap this decoration out of a house.")
          return false
       end

       if (decoTile:getHouse():getOwnerGuid() ~= player:getGuid()) then
          player:sendCancelMessage("You can't wrap this decoration in a house of other player.")
          return false
       end

       decoItem:remove()
       positionItem:sendMagicEffect(CONST_ME_POFF)
       local kitDeco = Game.createItem(26054, 1, positionItem)
       kitDeco:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "You bought this item in the Store.\nUnwrap it in your own house to create a <" ..decoItem:getName()..">.")
    end

    function onUnWrap(player, positionItem)
       local playerPos = player:getPosition()
       if (positionItem.x == 65535) then
          player:sendCancelMessage("You can't unwrap this kit in a container.")
          return false
       end

       if (getDistanceBetween(positionItem.x, playerPos.x) > 1 or
          getDistanceBetween(positionItem.y, playerPos.y) > 1) then
          player:sendCancelMessage("You need to reach kit to unwrap.")
          return false
       end

       local kitTile = Tile(positionItem)
       if (not kitTile) then
          player:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
          return false
       end

       if (kitTile:hasFlag(TILESTATE_BLOCKSOLID)) then
          player:sendCancelMessage("You can't unwrap item here, please put in ground and try again.")
          return false
       end

       for i, v in pairs(kitTile:getItems()) do
          if (v:getName() == "table") then
             player:sendCancelMessage("You can't unwrap item in table, please put in ground and try again.")
             return false
          end
       end

       local kitItem = Tile(positionItem):getItemById(26054)

       if (not kitItem) then
          player:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)
          return false
       end

       if (kitTile:getHouse() == nil) then
          player:sendCancelMessage("You can't use this kit out of a house.")
          return false
       end

       if (kitTile:getHouse():getOwnerGuid() ~= player:getGuid()) then
          player:sendCancelMessage("You can't use this kit in a house of other player.")
          return false
       end

       local decorationName = kitItem:getDescription():match("Unwrap it in your own house to create a <(.+)>.")
       if (not decorationName) then
          player:sendCancelMessage("Invalid item, please contact Administrator.")
          return false
       end

       kitItem:remove()
       positionItem:sendMagicEffect(CONST_ME_BLOCKHIT)
       Game.createItem(getItemId(decorationName), 1, positionItem)
    end

    Luego de eso, te vas a esta direccion: data/modules/ y abre el archivo: modules.xml
    y vas a añadir esta tag:
    Código:
    <module type="recvbyte" byte="139" script="house/decorationkit.lua" />

    Eso seria todo, haces /reload modules con tu player administrador y listo.



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    3default Re: WrapTo y/o Rewardchest TFS 1.3 el Miér Ago 29, 2018 12:12 am

    rpalmak

    avatar
    Miembro
    Miembro
    :O enserio eso es todo? no hay que editar sources??
    probare! Very Happy muchas gracias

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

    4default Re: WrapTo y/o Rewardchest TFS 1.3 el Miér Ago 29, 2018 12:56 am

    No amigo, con ese script ya puedes activar el sistema de Wrap para la decoracion de las houses.
    si su TFS es tiene la carpeta modules/ en la data del servidor de seguro que te funcionara amigo.
    Saludos!



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    5default Re: WrapTo y/o Rewardchest TFS 1.3 el Miér Ago 29, 2018 8:03 pm

    rpalmak

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:No amigo, con ese script ya puedes activar el sistema de Wrap para la decoracion de las houses.
    si su TFS es tiene la carpeta modules/ en la data del servidor de seguro que te funcionara amigo.
    Saludos!

    Hola, hice lo que me dijiste, de hecho movi toda la carpeta modules del otx mas reciente y aun sigo teniendo errores en consola con el WrapTo...y para ser honesto no se realmente como deberia funcionar, por ejemplo estoy intentando con el dog house
    Código:
    <item id="26364" article="a" name="Dog House">
     <attribute key="wrapableTo" value="26054" />
     </item>
     <item id="26365" article="a" name="Dog House">
     <attribute key="decayTo" value="26353" />
     <attribute key="duration" value="2" />
     <attribute key="wrapableTo" value="26054" />
     </item>

    Código:

    [Warning - Items::parseItemNode] Unknown key value: wrapableTo
    [Warning - Items::parseItemNode] Unknown key value: wrapableTo
    [Warning - Items::parseItemNode] Unknown key value: wrapableTo
    [Warning - Items::parseItemNode] Unknown key value: wrapableTo

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

    6default Re: WrapTo y/o Rewardchest TFS 1.3 el Jue Ago 30, 2018 6:56 am

    Amigo, hasta el momento no existe ningun motor que tenga ese attributo implementado en las fuentes, los articulos que son Wrapables vienen por defecto! aqui esta la lista de articulos Wrapables:
    Código:
    local wrapItems = {
      "Magnificent Cabinet",
      "Magnificent Chair",
      "Magnificent Trunk",
      "Magnificent Table",
      "Ferocious Cabinet",
      "Ferocious Chair",
      "Ferocious Trunk",
      "Ferocious Table",
      "Rustic Cabinet",
      "Rustic Chair",
      "Rustic Trunk",
      "Rustic Table",
      "Yalaharian Carpet",
      "White Fur Carpet",
      "Bamboo Mat",
      "Crimson Carpet",
      "Azure Carpet",
      "Emerald Carpet",
      "Light Parquet",
      "Dark Parquet",
      "Marble Parquet",
      "Fish Tank",
      [26364] = "Dog House",
      [26098] = "Baby Dragon",
      [26107] = "Cat in a Basket",
      [26100] = "Hamster in a Wheel",
      "Protectress Lamp",
      "Predator Lamp",
      "Ornate Mailbox",
      "Royal Mailbox",
      "Lordly Tapestry",
      "Menacing Tapestry",
      "AllSeeing Tapestry",
      "Golden Dragon Tapestry",
      "Sword Tapestry",
      "Brocade Tapestry"
    }

    son los unicos articulos que puedes usar esa funcion, lo que da tu consola no es un error, es solo una advertencia que te dice que el attributo wrapableTo no existe!

    hasta el momento, no se si ya existe algun servidor OTX con ese attributo disponible para el items.xml asi que no te puedo asegurar nada!

    intenta usar los articulos de la lista y me dices si funciona correctamente!



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    7default Re: WrapTo y/o Rewardchest TFS 1.3 el Jue Ago 30, 2018 12:14 pm

    rpalmak

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Amigo, hasta el momento no existe ningun motor que tenga ese attributo implementado en las fuentes, los articulos que son Wrapables vienen por defecto! aqui esta la lista de articulos Wrapables:
    Código:
    local wrapItems = {
      "Magnificent Cabinet",
      "Magnificent Chair",
      "Magnificent Trunk",
      "Magnificent Table",
      "Ferocious Cabinet",
      "Ferocious Chair",
      "Ferocious Trunk",
      "Ferocious Table",
      "Rustic Cabinet",
      "Rustic Chair",
      "Rustic Trunk",
      "Rustic Table",
      "Yalaharian Carpet",
      "White Fur Carpet",
      "Bamboo Mat",
      "Crimson Carpet",
      "Azure Carpet",
      "Emerald Carpet",
      "Light Parquet",
      "Dark Parquet",
      "Marble Parquet",
      "Fish Tank",
      [26364] = "Dog House",
      [26098] = "Baby Dragon",
      [26107] = "Cat in a Basket",
      [26100] = "Hamster in a Wheel",
      "Protectress Lamp",
      "Predator Lamp",
      "Ornate Mailbox",
      "Royal Mailbox",
      "Lordly Tapestry",
      "Menacing Tapestry",
      "AllSeeing Tapestry",
      "Golden Dragon Tapestry",
      "Sword Tapestry",
      "Brocade Tapestry"
    }

    son los unicos articulos que puedes usar esa funcion, lo que da tu consola no es un error, es solo una advertencia que te dice que el attributo wrapableTo no existe!

    hasta el momento, no se si ya existe algun servidor OTX con ese attributo disponible para el items.xml asi que no te puedo asegurar nada!

    intenta usar los articulos de la lista y me dices si funciona correctamente!

    Hola, me puedes explicar como usarlo? como veo si funciona? Y ese atributo que puse ahi es del items.xml de OTX, asi que me imagino que otx debe tenerlo implementado

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

    8default Re: WrapTo y/o Rewardchest TFS 1.3 el Vie Ago 31, 2018 6:45 pm

    Amigo no es necesario una explicacion extensa, mira esos articulos ya por defecto vienen con esa funcion implementada desde el object editor o object builder, si en la consola te da error o warning es por que el attributo no existe!!!

    crea un articulo de los que estan en la lista mencionada anteriormente, lo colocas en tu casa y luego pinchas control + click derecho sobre ese articulo, y en el pequeño menu de opciones vas a ver algo similar o relacionado con el (Wrap To), le das a esa opcion, y el articulo debe convertirse en una caja de mudansas, la cual puedes usa para volver a crear ese articulo en otro lugar. es asi de simple!

    Si el script lo implementastes bien deberia funcionar, ojo solo funciona en casas y debes ser el dueño de la casa o en su defecto un GM.



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    9default Re: WrapTo y/o Rewardchest TFS 1.3 el Sáb Sep 01, 2018 2:29 am

    rpalmak

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Amigo no es necesario una explicacion extensa, mira esos articulos ya por defecto vienen con esa funcion implementada desde el object editor o object builder, si en la consola te da error o warning es por que el attributo no existe!!!

    crea un articulo de los que estan en la lista mencionada anteriormente, lo colocas en tu casa y luego pinchas control + click derecho sobre ese articulo, y en el pequeño menu de opciones vas a ver algo similar o relacionado con el (Wrap To), le das a esa opcion, y el articulo debe convertirse en una caja de mudansas, la cual puedes usa para volver a crear ese articulo en otro lugar. es asi de simple!

    Si el script lo implementastes bien deberia funcionar, ojo solo funciona en casas y debes ser el dueño de la casa o en su defecto un GM.

    Pucha amigo no me funciona, mira


    probe con dog house y lordly tapestry, sin embargo, si te fijas, todos estos items tienen el attribute wrapableTo
    Código:
    <item id="26104" article="an" name="Lordly Tapestry">
          <attribute key="wrapableTo" value="26054" />
       </item>

    Entonces lo que yo creo es que me falta codigo a nivel de sources, y ese es el que necesito D:

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

    10default Re: WrapTo y/o Rewardchest TFS 1.3 el Sáb Sep 01, 2018 4:22 am

    Primero: nunca dijistes que usabas OTC
    Segundo: no conozco como funcionan el OTC, pero lo mas seguro es que no tenga esa opcion implementada en los sources del cliente!

    Advertencia: El codigo que comente como respuesta es solo compatible con Cliente Oficial de Tibia Cipsoft!



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    11default Re: WrapTo y/o Rewardchest TFS 1.3 el Sáb Sep 01, 2018 1:19 pm

    rpalmak

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Primero: nunca dijistes que usabas OTC
    Segundo: no conozco como funcionan el OTC, pero lo mas seguro es que no tenga esa opcion implementada en los sources del cliente!

    Advertencia: El codigo que comente como respuesta es solo compatible con Cliente Oficial de Tibia Cipsoft!

    Segun yo da lo mismo que cliente se use, el otc no deberia por que tener wrap en las sources, si la maquina del server, en mi caso es tfs 1.3, y si tuviera el atributo wrapableTo esto deberia funcionar, por eso es que lo pido :/,
    todos los items de la lista de items que me diste tienen ese atributo

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

    12default Re: WrapTo y/o Rewardchest TFS 1.3 el Sáb Sep 01, 2018 3:34 pm

    Claro que si importa amigo, si en tu cliente ni existe el boton que diga Wrap o Unwrap como va a aparecer ? sin importar que le envies la informacion al cliente no la va a detectar!

    es como enviarle los bytes de un modal a un cliente 8.60 ? no va a aparecer el modal por que no existe en el cliente!

    puedes comprobarlo, usando un cliente oficial, y te quitas las duda de la mente, si es que aun no me quieres creer!



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

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