Jump to content
Close

Recommended Posts

Salve TibiaKing

 

Então, queria uma script que o player ao clicar na "box" ele ganhasse um item... mas, assim, eu queria que fosse vários items e que tivesse % de chances que iria ganhar.

 

Espero que entendam... de coração, eu preciso urgente!!!



 

Dragon Ball Legend OF Gods : 

https://www.facebook.com/DboLOGS

 

 

Meus Tópicos:

 

Goku Limit Break Completo!

Template Site DBO WORLD

Client DBO WORLD

 

 

 

Share this post


Link to post
Share on other sites
<action itemid="id_da_box" event="script" value="box.lua"/>
local itens = {}
local randDifficultItens = 10

function onUse(cid, item, frompos, item2, topos)
  local randItem = math.random(#itens+randDifficultItens)
  if ( randItem <= #itens ) then
    doPlayerAddItem(cid, itens[randItem], 1)
  end
  return true
end

 

randDifficultItens é a dificuldade que irá ganhar o item.

itens é a tabela contendo os ids dos itens a serem ganhos.


Share this post


Link to post
Share on other sites
55 minutos atrás, Gengo disse:

<action itemid="id_da_box" event="script" value="box.lua"/>

local itens = {}
local randDifficultItens = 10

function onUse(cid, item, frompos, item2, topos)
  local randItem = math.random(#itens+randDifficultItens)
  if ( randItem <= #itens ) then
    doPlayerAddItem(cid, itens[randItem], 1)
  end
  return true
end

 

randDifficultItens é a dificuldade que irá ganhar o item.

itens é a tabela contendo os ids dos itens a serem ganhos.

 

 

poderia fazer a cada item ele ter a chance de ganhar não?

 

Exemplo: 2160, 2% de chance... e assim vai



 

Dragon Ball Legend OF Gods : 

https://www.facebook.com/DboLOGS

 

 

Meus Tópicos:

 

Goku Limit Break Completo!

Template Site DBO WORLD

Client DBO WORLD

 

 

 

Share this post


Link to post
Share on other sites

@ITALOx Achei esse script aqui tinha um bug e corrigi testei e funcionou na minha base 8.54 0.3.6 acredito que vai funcionar em 0.4 também

obs: dei uma incrementada adicionei um texto e um efeito configurável no script

 

Script \/

Spoiler

 


local items = {
  {itemId = 12035, count = 1, chance = 30}, -- ITEM, QUANTIDADE, CHANCE
  {itemId = 12034, count = 1, chance = 20},
  {itemId = 12033, count = 1, chance = 20},
  {itemId = 12032, count = 1, chance = 20},
  {itemId = 12031, count = 1, chance = 20},   
  {itemId = 12030, count = 1, chance = 20},
  {itemId = 12547, count = 1, chance = 10},
  {itemId = 15685, count = 1, chance = 1},     
}
local broadcastitems = {12547, 15685}

function onUse(cid, item, frompos, item2, topos)

  local totalChance, randomTable, randomNumber = 0, {}, 0

  for _, itemInfo in pairs (items) do
    randomTable[itemInfo.itemId] = {min = totalChance + 1, max = itemInfo.chance, count = itemInfo.count or 1}
    totalChance = totalChance + itemInfo.chance
  end

  randomNumber = math.random(1, totalChance)
  for itemId, itemInfo in pairs (randomTable) do
    local min, max = itemInfo.min, itemInfo.min + itemInfo.max
    if randomNumber >= min and randomNumber <= max then
      local newItem = doPlayerAddItem(cid, itemId, itemInfo.count, false)
      if not newItem then return doPlayerSendCancel(cid, "Voce nao tem espaco para receber o item!") end
      doPlayerRemoveItem(cid, 1990, 1)
	  local pos = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y+0, z=getPlayerPosition(cid).z+0}
	  doSendMagicEffect(pos, 684) -- Id do efeito.
      local iInfo = getItemInfo(itemId)
      doPlayerSendTextMessage(cid, 25, "Voce ganhou "..itemInfo.count.." "..iInfo.name.."")
      for i, broaditem in ipairs(broadcastitems) do
        if itemId==broaditem then doBroadcastMessage(getCreatureName(cid).." acabou de ganhar: "..itemInfo.count.." "..iInfo.name.." (Raro) na presente box.", 19) end
      end
      break
    end
  end
  return true
end

 

 

 

 


Share this post


Link to post
Share on other sites

@ITALOx editei o script aquele que tinha antes tava com o random muito pouco e tava vindo muito item repetido esse é melhor o random realmente faz diferença e também tem como adicionar itens raros que ao pegar manda uma mensagem para todos do servidor que o player tal pegou o item raro na box


Share this post


Link to post
Share on other sites
2 minutos atrás, Brunds disse:

@ITALOx editei o script aquele que tinha antes tava com o random muito pouco e tava vindo muito item repetido esse é melhor o random realmente faz diferença e também tem como adicionar itens raros que ao pegar manda uma mensagem para todos do servidor que o player tal pegou o item raro na box

 

Caralhooo!!!! MUITO OBRIGADO MANO!!! você é foda!!!!!!!!!

6 minutos atrás, Brunds disse:

@ITALOx editei o script aquele que tinha antes tava com o random muito pouco e tava vindo muito item repetido esse é melhor o random realmente faz diferença e também tem como adicionar itens raros que ao pegar manda uma mensagem para todos do servidor que o player tal pegou o item raro na box

 

 

22 horas atrás, Brunds disse:

@ITALOx Achei esse script aqui tinha um bug e corrigi testei e funcionou na minha base 8.54 0.3.6 acredito que vai funcionar em 0.4 também

obs: dei uma incrementada adicionei um texto e um efeito configurável no script

 

Script \/

  Mostrar conteúdo oculto

 



local items = {
  {itemId = 12035, count = 1, chance = 30}, -- ITEM, QUANTIDADE, CHANCE
  {itemId = 12034, count = 1, chance = 20},
  {itemId = 12033, count = 1, chance = 20},
  {itemId = 12032, count = 1, chance = 20},
  {itemId = 12031, count = 1, chance = 20},   
  {itemId = 12030, count = 1, chance = 20},
  {itemId = 12547, count = 1, chance = 10},
  {itemId = 15685, count = 1, chance = 1},     
}
local broadcastitems = {12547, 15685}

function onUse(cid, item, frompos, item2, topos)

  local totalChance, randomTable, randomNumber = 0, {}, 0

  for _, itemInfo in pairs (items) do
    randomTable[itemInfo.itemId] = {min = totalChance + 1, max = itemInfo.chance, count = itemInfo.count or 1}
    totalChance = totalChance + itemInfo.chance
  end

  randomNumber = math.random(1, totalChance)
  for itemId, itemInfo in pairs (randomTable) do
    local min, max = itemInfo.min, itemInfo.min + itemInfo.max
    if randomNumber >= min and randomNumber <= max then
      local newItem = doPlayerAddItem(cid, itemId, itemInfo.count, false)
      if not newItem then return doPlayerSendCancel(cid, "Voce nao tem espaco para receber o item!") end
      doPlayerRemoveItem(cid, 1990, 1)
	  local pos = {x=getPlayerPosition(cid).x+0, y=getPlayerPosition(cid).y+0, z=getPlayerPosition(cid).z+0}
	  doSendMagicEffect(pos, 684) -- Id do efeito.
      local iInfo = getItemInfo(itemId)
      doPlayerSendTextMessage(cid, 25, "Voce ganhou "..itemInfo.count.." "..iInfo.name.."")
      for i, broaditem in ipairs(broadcastitems) do
        if itemId==broaditem then doBroadcastMessage(getCreatureName(cid).." acabou de ganhar: "..itemInfo.count.." "..iInfo.name.." (Raro) na presente box.", 19) end
      end
      break
    end
  end
  return true
end

 

 

 

 

 

 

Só uma dúvida, 

local broadcastitems = {12547, 15685} 

essa parte ai, tenho que colocar o inicio do item, até o resto dele?



 

Dragon Ball Legend OF Gods : 

https://www.facebook.com/DboLOGS

 

 

Meus Tópicos:

 

Goku Limit Break Completo!

Template Site DBO WORLD

Client DBO WORLD

 

 

 

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites
4 minutos atrás, Brunds disse:

@ITALOx Essa parte é os itens raros que o player ganhar vai enviar mensagem para o servidor avisando que o jogador tal ganhou um item raro na box no caso ai é o id do item raro

 

Hm, entendi, obrigado



 

Dragon Ball Legend OF Gods : 

https://www.facebook.com/DboLOGS

 

 

Meus Tópicos:

 

Goku Limit Break Completo!

Template Site DBO WORLD

Client DBO WORLD

 

 

 

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites
7 horas atrás, Brunds disse:

@ITALOx troca
doPlayerRemoveItem

por
doRemoveItem(item.uid, 1)

 

troca pra não gerar o seguinte problema se o player jogar a box no chão e usar não gasta e fica eterno usando

 

Okay meu bom



 

Dragon Ball Legend OF Gods : 

https://www.facebook.com/DboLOGS

 

 

Meus Tópicos:

 

Goku Limit Break Completo!

Template Site DBO WORLD

Client DBO WORLD

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Create New...