Ir para conteúdo
  • 0

[Resolvido] Poder ter +de uma box para abrir


Olan trein

Pergunta

Bom, se voce clicar nele vc ganha 10x do item sortido, e pode fazer isso a cada 3 horas. Vc n perde a box ao clicar nela, mas ha um limite de tempo para abrir.

Mas se vc tem 2 box a storage funciona para ambas, tornando uma delas inutil. Eu queria que cada box tivesse um storage diferente, para que a pessoa pudesse ter varias boxs.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 1

@Olan trein

 

Substitua seu código por esse:

 

local id_box = 15266
local storage_time = 100001
local storage = 100000
local addons = {14953,14954,14956,14996,14997,14998,14955}
local quantidade = 10

function onUse(cid, item, frompos, item2, topos, pos)
local randomChance = math.random(1, #addons)
 
 if item.itemid == id_box then 
 
  if (getPlayerStorageValue(cid, storage) <= 10) and (getPlayerStorageValue(cid, storage_time) <= os.time()) then
    doPlayerAddItem(cid, addons[randomChance], quantidade)
    doSendMagicEffect(getCreaturePosition(cid), 28)
    doPlayerSendTextMessage(cid, 19, "Você ganhou " .. quantidade.. " " ..getItemNameById(addons[randomChance]))
    
    if getPlayerStorageValue(cid, storage) < 0 then
      setPlayerStorageValue(cid, storage, 0)
    end  
      
    setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1)
    
    if getPlayerStorageValue(cid, storage) >= 10 then
      setPlayerStorageValue(cid, storage_time, os.time() + (3*60*60))
    end
    
  return true
      
  else
    doPlayerSendTextMessage(cid, 27, "Você já abriu todas as 10 boxes possíveis dentro do tempo. Agora é necessário esperar 3 horas.")  
  return true
  end
    
  
return true
end
  
end

Assim como pediu, ele consegue abrir 10 boxes no máximo dentro do período de 3 horas, depois que abrir as 10, é necessário esperar 3 horas.

 

Eu testei aqui e funcionou, testa ai e me fala se der algum problema.

Link para o comentário
Compartilhar em outros sites

  • 0
11 horas atrás, Olan trein disse:
Versão do Servidor: TFS - 0.3.4
Tipo de Script: actions
Código:
  Ocultar conteúdo


local tabela = {
horas = 3, 
storage = 234235, -- Nunca o mesmo usado em outro script.
}

function onUse(cid, item, frompos, item2, topos, pos)
 
if getPlayerStorageValue(cid, tabela.storage) <= os.time() then
local addons = {14953,14954,14956,14996,14997,14998,14955}
local randomChance = math.random(1, 7)
if item2.itemid == 15266 then
doSendMagicEffect(getCreaturePosition(cid), 28)
doPlayerAddItem(cid, addons[randomChance], 10)
doPlayerSendTextMessage(cid, 27, "Você ganhou umas Balls!")
setPlayerStorageValue(cid, tabela.storage, tabela.horas*60*60+os.time())
return true
 
end
end
end

Bom, se voce clicar nele vc ganha 10x do item sortido, e pode fazer isso a cada 3 horas. Vc n perde a box ao clicar nela, mas ha um limite de tempo para abrir.

Mas se vc tem 2 box a storage funciona para ambas, tornando uma delas inutil. Eu queria que cada box tivesse um storage diferente, para que a pessoa pudesse ter varias boxs.

Torna a outra inútil porque no caso ele está trabalhando com 1 item só por conta da verificação da storage. Mas quantas box iguais no máximo o player pode ter? Isso precisa ser definido.

Link para o comentário
Compartilhar em outros sites

  • 0

Edita do seu jeito
 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local daysvalue = 1 * 24 * 60 * 60
storage = 928938923
local daily = getAccountStorageValue(getPlayerAccountId(cid), 13222423)
if getAccountStorageValue(getPlayerAccountId(cid), storage) <= os.time() then
		
			setAccountStorageValue(getPlayerAccountId(cid), storage, os.time() + daysvalue)
			local item = doPlayerAddItem(cid, 1990)
				doItemSetAttribute(item, "description", " Premio Diario [FREE].")
				doItemSetAttribute(item, 'aid', 10032)
				doSendMagicEffect(getThingPos(cid), 29)
	else
		local left = getAccountStorageValue(getPlayerAccountId(cid), storage) - os.time()
		left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
		doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].')
		doSendMagicEffect(getThingPos(cid), 2)
	end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, brazvct disse:

Edita do seu jeito
 


function onUse(cid, item, fromPosition, itemEx, toPosition)
local daysvalue = 1 * 24 * 60 * 60
storage = 928938923
local daily = getAccountStorageValue(getPlayerAccountId(cid), 13222423)
if getAccountStorageValue(getPlayerAccountId(cid), storage) <= os.time() then
		
			setAccountStorageValue(getPlayerAccountId(cid), storage, os.time() + daysvalue)
			local item = doPlayerAddItem(cid, 1990)
				doItemSetAttribute(item, "description", " Premio Diario [FREE].")
				doItemSetAttribute(item, 'aid', 10032)
				doSendMagicEffect(getThingPos(cid), 29)
	else
		local left = getAccountStorageValue(getPlayerAccountId(cid), storage) - os.time()
		left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)}
		doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].')
		doSendMagicEffect(getThingPos(cid), 2)
	end
return true
end

Esse é um premio diario, o que eu quero é uma box, que da itens aleatorios e da a cada 3 horas. Sem perder a box no caso

Link para o comentário
Compartilhar em outros sites

  • 0
21 minutos atrás, Olan trein disse:

Esse é um premio diario, o que eu quero é uma box, que da itens aleatorios e da a cada 3 horas. Sem perder a box no caso

Configura de 1 dia pra 3 horas e coloca pra receber a box que da os itens aleatórios ou então configura pra dar os itens aleatórios
O script ta pronto só editar ele

Link para o comentário
Compartilhar em outros sites

  • 0
11 horas atrás, Yan18 disse:

@Olan trein

 

Substitua seu código por esse:

 


local id_box = 15266
local storage_time = 100001
local storage = 100000
local addons = {14953,14954,14956,14996,14997,14998,14955}
local quantidade = 10

function onUse(cid, item, frompos, item2, topos, pos)
local randomChance = math.random(1, #addons)
 
 if item.itemid == id_box then 
 
  if (getPlayerStorageValue(cid, storage) <= 10) and (getPlayerStorageValue(cid, storage_time) <= os.time()) then
    doPlayerAddItem(cid, addons[randomChance], quantidade)
    doSendMagicEffect(getCreaturePosition(cid), 28)
    doPlayerSendTextMessage(cid, 19, "Você ganhou " .. quantidade.. " " ..getItemNameById(addons[randomChance]))
    
    if getPlayerStorageValue(cid, storage) < 0 then
      setPlayerStorageValue(cid, storage, 0)
    end  
      
    setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1)
    
    if getPlayerStorageValue(cid, storage) >= 10 then
      setPlayerStorageValue(cid, storage_time, os.time() + (3*60*60))
    end
    
  return true
      
  else
    doPlayerSendTextMessage(cid, 27, "Você já abriu todas as 10 boxes possíveis dentro do tempo. Agora é necessário esperar 3 horas.")  
  return true
  end
    
  
return true
end
  
end

Assim como pediu, ele consegue abrir 10 boxes no máximo dentro do período de 3 horas, depois que abrir as 10, é necessário esperar 3 horas.

 

Eu testei aqui e funcionou, testa ai e me fala se der algum problema.

Funciono Vlw

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...