Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

Version TFS 1.3 | Client Version: 12.61

Qual o motivo deste tópico? 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

A minha intenção é criar um item que ao usar ele dá varios itens diferentes, como arma, armaduras, poções, sem ser aleatório, ganhar todos de só uma vez.

Agradeço muito se alguém puder ajudar ?

 

Você tem o código disponível? Se tiver publique-o aqui: 

local config = {


    [6570] = { -- bluePresent
        {2687, 10}, {6394, 3}, 6280, 6574, 6578, 6575, 6577, 6569, 6576, 6572, 2114, 15439, 16014
    },
    [6571] = { -- redPresent
        6574, 2195, 6394, 6576, 6578, 2114, 15439, 2153, 5944, 2492, 2520, 2156, 5080, 2112, 2498, 2173, 5791
    },
    [9108] = { -- surpriseBag
        {2148, 10}, 7487, 2114, 8072, 7735, 8110, 6574, 6394, 7377, 2667, 9693
    },
    [16094] = { -- surpriseBag
        {10559, 15},{2670, 15}, 5917, 2385, 11219, 2238, 5928, 5926, 5927, 6095, 5918, 6097, 6098, 5462, 5091
    },
    [16102] = { -- surpriseBag
        {6569, 10}, {6541, 10}, {6542, 10}, {6543, 10}, {6544, 10}, {6545, 10}, 6574, 4850, 6570, 6571, 11400
    }
}

local surpriseBag = Action()

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

    local count = 1
    local gift = present[math.random(1, #present)]
    if type(gift) == "table" then
        count = gift[2]
        gift = gift[1]
    end

    Player(cid):addItem(gift, count)
    Item(item.uid):remove(1)
    fromPosition:sendMagicEffect(CONST_ME_GIFT_WRAPS)
    return true
end

surpriseBag:id(6570, 6571, 9108, 16094, 16102)
surpriseBag:register()

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Editado por zGiovani (veja o histórico de edições)

Postado

@zGiovani Boa tarde, tente assim: 

 

local config = {

  [6570] = { -- bluePresent
      {2687, 10}, {6394, 3}, 6280, 6574, 6578, 6575, 6577, 6569, 6576, 6572, 2114, 15439, 16014
  },
  [6571] = { -- redPresent
      6574, 2195, 6394, 6576, 6578, 2114, 15439, 2153, 5944, 2492, 2520, 2156, 5080, 2112, 2498, 2173, 5791
  },
  [9108] = { -- surpriseBag
      {2148, 10}, 7487, 2114, 8072, 7735, 8110, 6574, 6394, 7377, 2667, 9693
  },
  [16094] = { -- surpriseBag
      {10559, 15},{2670, 15}, 5917, 2385, 11219, 2238, 5928, 5926, 5927, 6095, 5918, 6097, 6098, 5462, 5091
  },
  [16102] = { -- surpriseBag
      {6569, 10}, {6541, 10}, {6542, 10}, {6543, 10}, {6544, 10}, {6545, 10}, 6574, 4850, 6570, 6571, 11400
  }
}

local surpriseBag = Action()

function surpriseBag.onUse(cid, item, fromPosition, itemEx, toPosition)
  local player = Player(cid)
  local present = config[item.itemid]
  if not present then
      return false
  end

  for index = 1, #present do
    local gift = present[index]
    local amount = 1
    if type(gift) == "table" then
        addGiftToPlayer(player, gift[1], gift[2], item)
    else
        addGiftToPlayer(player, gift, amount, item)
    end
  end
  return true
end

function addGiftToPlayer(player, gift, amount, usedItem)
  local count = 1
  player:addItem(gift, amount)
  Item(usedItem.uid):remove(count)
  fromPosition:sendMagicEffect(CONST_ME_GIFT_WRAPS)
end

surpriseBag:id(6570, 6571, 9108, 16094, 16102)
surpriseBag:register()

 

Postado
  • Autor

Boa tarde amigo, obrigado pela ajuda!

 

O único problema é que está dando apenas 2 itens,  com o  " Item(usedItem.uid):remove(count) " no final, o item usado é consumido mas recebo apenas 2 itens da lista

 

 

ai então fiquei um tempão fuçando tentando resolver e substitui o " Item(usedItem.uid):remove(count) " pelo  "  Item:remove(1)  " 

 

então recebi todos os itens da lista, mas o item usado não é removido, tornando assim um item infinito ?  

 

ainda estou fuçando, mas n consegui fazer receber todos os itens e o item usado ser consumido.

 

 

 

3 minutos atrás, zGiovani disse:

 

Editado por zGiovani (veja o histórico de edições)

Postado
  • Autor

Resolvido!!!

 

Muito Obrigado pela ajuda @MatteusDeli o ponto chave está citado a baixo ?

Spoiler

local surpriseBag = Action()

function surpriseBag.onUse(cid, item, fromPosition, itemEx, toPosition)
  local player = Player(cid)
  local present = config[item.itemid]
  if not present then
      return false
  end

  for index = 1, #present do
    local gift = present[index]
    local amount = 1
    if type(gift) == "table" then
        addGiftToPlayer(player, gift[1], gift[2], item )

    end
  end
  return true
end

function addGiftToPlayer(player, gift, amount, usedItem)
  local count = 1
  player:addItem(gift, amount)
  Item:remove(1)
  usedItem:remove(count)

  fromPosition:sendMagicEffect(CONST_ME_GIFT_WRAPS)
end

surpriseBag:id(40811)
surpriseBag:register()

 

Editado por zGiovani (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo