Ir para conteúdo
  • Cadastre-se

Derivado Box com itens aleatórios não some ao usar


Posts Recomendados

Então, estou com um script de uma box que ao usar uma box vem um item aleatorio e a box some, mas não é oq ta acontecendo, a box não some e da pra continuar usando ela.

Obs: Percebi que esse erro acontece só quando a box envolve porcentagem, no caso dessa ela tem porcentagem na chance de vir itens raros, que são porcentagens baixas. Eu tenho outro script mas essa vem item aleatório, sem porcentagem.

Script:

function onUse(cid, item, fromPosition, itemEx, toPosition)

   local rewarditems = {
      {id = 2492, chance = 5, count = 1}, -- start with the lowest chances
      {id = 2498, chance = 10, count = 1},
      {id = 2488, chance = 15, count = 1},
      {id = 2152, chance = 70, count = math.random(1, 50)}
   }   

   local chance = math.random(1,100)
   for i = 1, #rewarditems, 1 do
      if(chance < rewarditems[i].chance) then
         local info = getItemInfo(rewarditems[i].id)
         if(rewarditems[i].count > 1) then
            text = rewarditems[i].count .. " " .. info.plural
         else
            text = info.article .. " " .. info.name
         end
 
         local item = doCreateItemEx(rewarditems[i].id, rewarditems[i].count)
         if(doPlayerAddItemEx(cid, item, false) ~= RETURNVALUE_NOERROR) then
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
            text = "You have failed to open your mystery box. The item is to heavy or you have not enough space to take it."
         else
            text = "You have received " .. text .. "."
            doRemoveItem(item.uid, 1)
         end
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
         return true
      else
         chance = chance - rewarditems[i].chance
      end
   end
end

quando alguem usa a box da esse erro na distro:

E37Af1H.png

alguem pode me ajudar?

Link para o post
Compartilhar em outros sites

Troque

doRemoveItem(item.uid, 1)

por

doPlayerRemoveItem(cid, item.uid, 1)

 

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
29 minutos atrás, Talesigorvr disse:

Troque


doRemoveItem(item.uid, 1)

por


doPlayerRemoveItem(cid, item.uid, 1)

 

Aparece o mesmo aviso, porem agora o erro é na linha 34, a msm linha em que substitui o que você me passou.

Editado por Gruly (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Passa o script inteiro, fui ver qual era a linha 26 e tentei achar o erro...

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
5 minutos atrás, Talesigorvr disse:

Passa o script inteiro, fui ver qual era a linha 26 e tentei achar o erro...

function onUse(cid, item, fromPosition, itemEx, toPosition)

   local rewarditems = {
      {id = 2472, chance = 17, count = 1}, -- start with the lowest chances
      {id = 2498, chance = 17, count = 1},
      {id = 2645, chance = 17, count = 1},
      {id = 2421, chance = 8, count = 1},
      {id = 2514, chance = 13, count = 1}, -- start with the lowest chances
      {id = 2470, chance = 10, count = 1},
      {id = 2646, chance = 5, count = 1},
      {id = 2523, chance = 3, count = 1}, -- start with the lowest chances
      {id = 2522, chance = 4, count = 1},
      {id = 2471, chance = 2, count = 1},
      {id = 2496, chance = 2, count = 1},
      {id = 8977, chance = 2, count = 1}
   }   

   local chance = math.random(1,100)
   for i = 1, #rewarditems, 1 do
      if(chance < rewarditems[i].chance) then
         local info = getItemInfo(rewarditems[i].id)
         if(rewarditems[i].count > 1) then
            text = rewarditems[i].count .. " " .. info.plural
         else
            text = info.article .. " " .. info.name
         end
 
         local item = doCreateItemEx(rewarditems[i].id, rewarditems[i].count)
         if(doPlayerAddItemEx(cid, item, false) ~= RETURNVALUE_NOERROR) then
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
            text = "You have failed to open your mystery box. The item is to heavy or you have not enough space to take it."
         else
            text = "You have received " .. text .. "."
		doRemoveItem(item.uid, 1)
         end
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
         return true
      else
         chance = chance - rewarditems[i].chance
      end
   end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)

   local rewarditems = {
      {id = 2472, chance = 17, count = 1}, -- start with the lowest chances
      {id = 2498, chance = 17, count = 1},
      {id = 2645, chance = 17, count = 1},
      {id = 2421, chance = 8, count = 1},
      {id = 2514, chance = 13, count = 1}, -- start with the lowest chances
      {id = 2470, chance = 10, count = 1},
      {id = 2646, chance = 5, count = 1},
      {id = 2523, chance = 3, count = 1}, -- start with the lowest chances
      {id = 2522, chance = 4, count = 1},
      {id = 2471, chance = 2, count = 1},
      {id = 2496, chance = 2, count = 1},
      {id = 8977, chance = 2, count = 1}
   }   

   local chance = math.random(1,100)
   for i = 1, #rewarditems, 1 do
      if(chance < rewarditems[i].chance) then
         local info = getItemInfo(rewarditems[i].id)
         if(rewarditems[i].count > 1) then
            text = rewarditems[i].count .. " " .. info.plural
         else
            text = info.article .. " " .. info.name
         end
 
         local item = doCreateItemEx(rewarditems[i].id, rewarditems[i].count)
         if(doPlayerAddItemEx(cid, item, false) ~= RETURNVALUE_NOERROR) then
            doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
            text = "You have failed to open your mystery box. The item is to heavy or you have not enough space to take it."
         else
            text = "You have received " .. text .. "."
		doRemoveItem(item.uid, 1)
         end
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
         return true
      else
         chance = chance - rewarditems[i].chance
      end
   end
end

 

@up:

Eu tive uma ideia, sera que vcs não consegue colocar um tempo pra usar o item? tipo a cada 24h?

Link para o post
Compartilhar em outros sites

Não esqueça de mudar o id da box no código.

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

	local rewarditems = {
	{id = 2472, chance = 17, count = 1}, -- start with the lowest chances
	{id = 2498, chance = 17, count = 1},
	{id = 2645, chance = 17, count = 1},
	{id = 2421, chance = 8, count = 1},
	{id = 2514, chance = 13, count = 1}, -- start with the lowest chances
	{id = 2470, chance = 10, count = 1},
	{id = 2646, chance = 5, count = 1},
	{id = 2523, chance = 3, count = 1}, -- start with the lowest chances
	{id = 2522, chance = 4, count = 1},
	{id = 2471, chance = 2, count = 1},
	{id = 2496, chance = 2, count = 1},
	{id = 8977, chance = 2, count = 1}
	}
	
	local box = xx --ID da box.
	local chance = math.random(1,100)

	for i = 1, #rewarditems, 1 do
		if(chance < rewarditems[i].chance) then
			local info = getItemInfo(rewarditems[i].id)
			
			if(rewarditems[i].count > 1) then
				text = rewarditems[i].count .. " " .. info.plural
			else
				text = info.article .. " " .. info.name
			end
			 
			if item.itemid == box then
				doPlayerAddItem(cid, rewarditems[i].id, rewarditems[i].count)
				doPlayerRemoveItem(cid, box, 1)
				doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
				text = "You have received " .. text .. "."
			else
				text = "You have failed to open your mystery box. The item is to heavy or you have not enough space to take it."
			end
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
			return true
		else
			chance = chance - rewarditems[i].chance
		end
	end
end

 

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

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
3 minutos atrás, Talesigorvr disse:

Não esqueça de mudar o id da box no código.

 


function onUse(cid, item, fromPosition, itemEx, toPosition)

	local rewarditems = {
	{id = 2472, chance = 17, count = 1}, -- start with the lowest chances
	{id = 2498, chance = 17, count = 1},
	{id = 2645, chance = 17, count = 1},
	{id = 2421, chance = 8, count = 1},
	{id = 2514, chance = 13, count = 1}, -- start with the lowest chances
	{id = 2470, chance = 10, count = 1},
	{id = 2646, chance = 5, count = 1},
	{id = 2523, chance = 3, count = 1}, -- start with the lowest chances
	{id = 2522, chance = 4, count = 1},
	{id = 2471, chance = 2, count = 1},
	{id = 2496, chance = 2, count = 1},
	{id = 8977, chance = 2, count = 1}
	}
	
	local box = xx --ID da box.
	local chance = math.random(1,100)
	for i = 1, #rewarditems, 1 do
		if(chance < rewarditems[i].chance) then
			local info = getItemInfo(rewarditems[i].id)
			
			if(rewarditems[i].count > 1) then
				text = rewarditems[i].count .. " " .. info.plural
			else
				text = info.article .. " " .. info.name
			end
			 
			if item.itemid == box then
				doPlayerAddItem(cid, rewarditems[i].id, rewarditems[i].count)
				doPlayerRemoveItem(cid, box, 1)
				doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
				text = "You have received " .. text .. "."
			else
				text = "You have failed to open your mystery box. The item is to heavy or you have not enough space to take it."
			end
				doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
			return true
		else
			chance = chance - rewarditems[i].chance
		end
	end
end

 

Nossa cara eu te amo <3<3, deu certo aqui, agora sapoha de box some kkkkk. Vlw msm cara. Rep+

Link para o post
Compartilhar em outros sites
15 minutos atrás, Gruly disse:

Nossa cara eu te amo <3<3, deu certo aqui, agora sapoha de box some kkkkk. Vlw msm cara. Rep+

Np. =) 

Foi mal pela demora, tinha esquecido de te responder.

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo