Ir para conteúdo
  • Cadastre-se

Normal Ajuda a arrumar esses scripts.


Posts Recomendados

Estou com esses dois scripts que não estou conseguindo ajeitar. Segue eles:

O problema desse é que não remove de jeito nenhum o item quando ele é usado:
 

Spoiler

 


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, 10)}
   }   

   local chance = math.random(1,100)
   for i = 1, #rewarditems, 1 do
      if(chance < rewarditems.chance) then
         local info = getItemInfo(rewarditems.id)
         if(rewarditems.count > 1) then
            text = rewarditems.count .. " " .. info.plural
         else
            text = info.article .. " " .. info.name
         end
 
         local item = doCreateItemEx(rewarditems.id, rewarditems.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.chance
      end
   end
end



Esse eu não estou conseguindo por uma chance individual para cada item e nem estou conseguindo por um math.randon pra vir uma quantidade aleatória dos itens.


 

Spoiler

 

 




local stonesMinerar = {
	[5709] = {minerioid = 5944, count = math.random(1, 10)}, -- [id da pedra] = {minerioid = id do item que ganha, count = countidade que ganha}
	[5624] = {minerioid = 6277, count = math.random(1, 5)},
	[8748] = {minerioid = 5880, count = math.random(1, 5)},
	[5619] = {minerioid = 12700, count = math.random(1, 3)}
}
local config = {
	exhaustionMinutes = 60, -- exausted em minutos
	effectChar = 30, -- efeito no char.
	storageUse = 34542 -- storage usado/ não mude caso não entenda.
}
local chance = 50

function onUse(cid, item, fromPosition, itemEx, toPosition)
local a = math.random
if(exhaustion.check(cid, config.storageUse) == TRUE) then
   if (exhaustion.get(cid, config.storageUse) >= 60) then
   doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, config.storageUse) / 60 + 1) .."] minutos.")
   end
	if (exhaustion.get(cid, config.storageUse) <= 60) then
	doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, config.storageUse).."] segundos.")
	end
return true
end
if stonesMinerar[itemEx.itemid] then
	local a = math.random(1, 100)
    if a < chance then
		doPlayerAddItem(cid, stonesMinerar[itemEx.itemid].minerioid, stonesMinerar[itemEx.itemid].count)
		doPlayerSendTextMessage(cid, 19, "Você recebeu "..(stonesMinerar[itemEx.itemid].count).." "..getItemNameById(stonesMinerar[itemEx.itemid].minerioid).."!")
		doSendMagicEffect(getPlayerPosition(cid), config.effectChar)
		exhaustion.set(cid, config.storageUse, config.exhaustionMinutes*60)
	else
		doPlayerSendCancel(cid, "Você falhou.")
	end
else
	doPlayerSendCancel(cid, "Você não pode minerar isso.")
end
return true
end

 

 

 

Se alguém puder ajudar, agradeço desde já.

 

 

EDIT: Não estou conseguindo tirar o segundo script do primeiro spoiler.

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

O erro está aqui: 

doRemoveItem(item.uid, 1)

Tente substituir por este:

doRemoveItem(item.itemid, 1)

Se tu for um gordo preguiçoso copia e cola tudo dentro:

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, 10)}
   }   

   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 too heavy or you have not enough space to take it."
         else
            text = "You have received " .. text .. "."
            doRemoveItem(item.itemid, 1)
         end
         doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, text)
         return true
      else
         chance = chance - rewarditems[i].chance
      end
   end
end

Hasuhasuhasuha 

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites
4 horas atrás, Yan Liima disse:

O erro está aqui: 

 

kkkkkkk Não sou.

Você tem solução pro segundo script? Ele ta dentro do spoiler, não consegui separar os dois.

Link para o post
Compartilhar em outros sites

Não querendo contrariá a menina que postou acima mas, se

você quer remover o item que foi clicado nele, você tem que mudar essa parte do código:

Citar

local item = doCreateItemEx(rewarditems.id, rewarditems.count)
         if(doPlayerAddItemEx(cid, item, false) ~= RETURNVALUE_NOERROR) then

 

Por essa:

Citar

local itemc = doCreateItemEx(rewarditems.id, rewarditems.count) if(doPlayerAddItemEx(cid, itemc, false) ~= RETURNVALUE_NOERROR) then

 

Assim a função:

Citar

doRemoveItem(item.uid, 1)

 

Vai usar a variável do item que foi clicado nele.

 

No segundo caso, vai ser preciso fazer algumas alterações, muda essas sentenças:

Citar

count = math.random(1, 5)

 

Por isso:

Citar

count = 5 --aqui fica o valor maximo de items

 

Adiciona em todas as tabelas essa nova variável:

Citar

chance = 50 --chance maxima do item

 

Modifique essa variável e ponha ela abaixo da função onUse ():

Citar

local chance = 50

 

Por essa:

Citar

local chance = stonesMinerar[itemEx.itemid].chance

 

Modifique essa função:

Citar

doPlayerAddItem(cid, stonesMinerar[itemEx.itemid].minerioid, stonesMinerar[itemEx.itemid].count)

 

Por essa:

Citar

doPlayerAddItem(cid, stonesMinerar[itemEx.itemid].minerioid, math.random (1,stonesMinerar[itemEx.itemid].count))

 

Existe um pequeno erro que deixei/criei de propósito que não compromete o sistema mas, não fica bom tê-lo, espero que você consiga resolver esse pequeno errinho.

 

Acho que não esqueci de nada qualquer coisa me comunica. 

Boa sorte.

Link para o post
Compartilhar em outros sites
Em 24/03/2016 at 09:16, dominus disse:

N

 

A segunda eu consegui arrumar, mas a primeira agora ta dando o seguinte erro: <luaDoPlayerAddItemEx> item not found

Link para o post
Compartilhar em outros sites
17 horas atrás, gabriel28 disse:

 

A segunda eu consegui arrumar, mas a primeira agora ta dando o seguinte erro: <luaDoPlayerAddItemEx> item not found

 

Desculpe, é que o site do tk nao deixar eu escrever colchetes "[ << junto disso  >> ]"

Lá na variável "itemc = ", substitui aquela função por essa:

Citar

doCreateItemEx(rewarditems[i].id, rewarditems[i].count)

 

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo