• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Ayuda mix items

    Compartir:

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

    1default Ayuda mix items Lun Ene 16, 2023 8:13 am

    Psycho

    Psycho
    Moderador
    Moderador
    Descripcion escribió:Este es un sistema para combinar items y te da otro item de premio, si me ´pueden ayudar a que no haga una sola combinación sino que se pueda realizar combinaciones distintas y cada combinación con su respectivo premio.
    Código:
    local config_itens = {
    -- ID DO ITEM NECESSÁRIO, POSIÇÃO QUE DEVE FICAR, QUANTIDADE DE ITEM NECESSÁRIO
     {id = 27668, pos = {11708,12825,3}, count = 50}, -- water gem
     {id = 27693, pos = {11709,12825,3}, count = 10}, -- luck medallion
     {id = 27748, pos = {11711,12825,3}, count = 15}, -- rock trunk
     {id = 2152, pos = {11712,12825,3}, count = 20}, -- kilobyte
    -- Caso queira colocar outro item, basta seguir esse modelo (ctrl + c)
    }

    local config_troca = {
     msg_falha = "Falha na troca do item. Necessario: %dx %s em sua devida posicao!",
     msg_sucesso = "A troca foi efetuada com sucesso!",
     recompensas = {{id = 4312, count = 2}} -- Para deixar apenas uma recompensa, apenas deixe recompensas = {{id = ID_DO_ITEM_A_GANHAR, count = QUANTIDADE_A_GANHAR}}
    }

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
     local ax_t = {}
     for i, v in ipairs(config_itens) do
     local vt = Tile(Position(v.pos[1], v.pos[2], v.pos[3], v.pos[4]))
     local item_t = vt:getItemById(v.id)
     if (not item_t or item_t:getCount() < v.count) then
     player:getPosition():sendMagicEffect(CONST_ME_POFF)
     player:sendTextMessage(36, config_troca.msg_falha:format(v.count, ItemType(v.id):getName()))
     return false
     end
     table.insert(ax_t, {item_t, v.count})
     end
     
     for i, v in ipairs(ax_t) do
     v[1]:remove(v[2])
     end
     
     for i, v in ipairs(config_troca.recompensas) do
     player:addItem(v.id, v.count)
     end
     
     player:sendTextMessage(36, config_troca.msg_sucesso)
     player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
     return true
    end
    Imagen Explicativa escribió:Imagen Explicativa: Ayuda mix items Troca11
    Version del Scripts: TFs 1.x



    AFC By Psycho & Alfa Server
    [Tienes que estar registrado y conectado para ver este vínculo]
    4 participantes
    http://digidarkss.com

    2default Re: Ayuda mix items Vie Ene 20, 2023 10:22 pm

    0xD

    0xD
    Nuevo Miembro
    Nuevo Miembro
    No entendí lo que me dijiste amigo

    4 participantes

    3default Re: Ayuda mix items Sáb Ene 21, 2023 10:41 pm

    jorgeguzma

    jorgeguzma
    Nuevo Miembro
    Nuevo Miembro
    lo que puedes hacer es copiar y pegar los configs (con los items que quieras obviamente) para hacer otros crafteos y copiar y pegar el loop del for despues de este mismo asi vas a verificar todas las combinaciones posibles dependiendo de cuantas tablas config tengas

    4 participantes

    4default Re: Ayuda mix items Sáb Ene 21, 2023 10:50 pm

    0xD

    0xD
    Nuevo Miembro
    Nuevo Miembro
    Uff de verdad me explotó la mente yo porque soy nuevo en estoy si por casualidad tendrás un vídeo donde me puedas explicar mejor en 5 minutos lo hago porque de verdad son tantas carpetas que hay aquí que ya ni se que hacer

    4 participantes

    5default Re: Ayuda mix items Sáb Ene 21, 2023 10:55 pm

    0xD

    0xD
    Nuevo Miembro
    Nuevo Miembro
    Yo porque soy un poco lento para esto pero aprendo rápido si veo un vídeo de hecho viendo video e aprendí uff bastante pero así se me complica un poco 😅😅 no sé si tienes discord o WhatsApp y así me puede hechar una mano en el servidor broth

    4 participantes

    6default Re: Ayuda mix items Sáb Ene 21, 2023 11:32 pm

    jorgeguzma

    jorgeguzma
    Nuevo Miembro
    Nuevo Miembro
    o puedes hacerlo a la inversa, recoger el item del suelo y compararlo con las combinaciones que tengas agregadas a tu tabla, algo como esto (no se si funcione pero es para que te guies)

    en este caso si quieres agregar mas crafteos agregas una linea en la tabla combinacion con la recompensa para los 4 items deseados

    agregé un nuevo crafteo que es con los mismos 4 items pero solo usando 1 de cada uno para obtener 10 del ultimo

    Código:

    local combinacion = {
    -- tabla crafteos posibles, para añadir mas solo copias y pegas, cambias el numero del inicio y editas los id,count y recompensa
     [1] = {recompensa = 4312, cantidadRecompensa = 2, id1 = 27668, count1 = 50, id2 = 27693, count2 = 10, id3 = 27748, count3 = 15, id4 = 2152, count4 = 20}, -- water gem
     [2] = {recompensa = 2152, cantidadRecompensa = 10, id1 = 27668, count1 = 1, id2 = 27693, count2 = 1, id3 = 27748, count3 = 1, id4 = 2152, count4 = 1}, -- luck medallion

    }

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
     
     -- obtengo los 4 items de las 4 posiciones en el juego
     local item_pos1 = getThingfromPos(11708,12825,3) -- pos 1er item
     local item_pos2 = getThingfromPos(11709,12825,3) -- pos 2do item
     local item_pos3 = getThingfromPos(11711,12825,3) -- pos 3er item
     local item_pos4 = getThingfromPos(11712,12825,3) -- pos 4to item
     -- reviso si hay items en las 4 posiciones
     if not item_pos1:getId() then
     player:getPosition():sendMagicEffect(CONST_ME_POFF)
     player:sendTextMessage(36, "rellena los 4 espacios con items")
     return false
     end
     if not item_pos2:getId() then
     player:getPosition():sendMagicEffect(CONST_ME_POFF)
     player:sendTextMessage(36, "rellena los 4 espacios con items")
     return false
     end
     if not item_pos3:getId() then
     player:getPosition():sendMagicEffect(CONST_ME_POFF)
     player:sendTextMessage(36, "rellena los 4 espacios con items")
     return false
     end
     if not item_pos4:getId() then
     player:getPosition():sendMagicEffect(CONST_ME_POFF)
     player:sendTextMessage(36, "rellena los 4 espacios con items")
     return false
     end
     -- empiezo a buscar todas la combinaciones posibles en mi config_itens con los items que estan en el piso, si encuentro alguna combinacion le doy la recompensa al player
     for i = 1, #combinacion do
     -- comparo el id y la cantidad  de los items
     if item_pos1:getId() == combinacion[i].id1 and item_pos2:getId() == combinacion[i].id2 and item_pos3:getId() == combinacion[i].id3 and item_pos4:getId() == combinacion[i].id4 then
     if item_pos1:getCount() == combinacion[i].count1 and item_pos2:getCount() == combinacion[i].count2 and item_pos3:getCount() == combinacion[i].count3 and item_pos4:getCount() == combinacion[i].count4 then
     --elimino los items
     item_pos1:remove(item_pos1:getCount())
     item_pos2:remove(item_pos2:getCount())
     item_pos3:remove(item_pos3:getCount())
     item_pos4:remove(item_pos4:getCount())
     -- le doy crafteo al player
     player:sendTextMessage(36, "has crafteado un item!")
     player:getPosition():sendMagicEffect(CONST_ME_FIREWORK_RED)
     player:addItem(combinacion[i].recompensa, combinacion[i].cantidadRecompensa)
     return true
     end
     end
     
     end
     -- si no se encontraron coincidencias significa que no existe
     player:getPosition():sendMagicEffect(CONST_ME_POFF)
     player:sendTextMessage(36, "no puedes craftear algo con esos items")
     return false
    end

    4 participantes

    7default Re: Ayuda mix items Ayer a las 11:06 pm

    omegasdeme

    omegasdeme
    Nuevo Miembro
    Nuevo Miembro
    disculpa pero en la palanca que aid lleva o que uid?

    4 participantes

    Contenido patrocinado


    4 participantes

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