NI
pedido

Bau que dê item aleatorio

Por Nickbhz, 11 de out. de 2015 em Scripts

resolvido
script
otserv
18
7.4k
NickbhzN
11 de outubro de 2015 às 10:27

Bom Dia xTibianos..

 

O titulo já diz tudo, estou precisando de um script(quest) que dê items aleatorio (configuravel), se alguem puder me ajudar..

 

Grato desde já !

Editado Outubro 11 por brendoonh

RefeR
11 de outubro de 2015 às 10:57

Bom Dia xTibianos..

 

O titulo já diz tudo, estou precisando de um script(quest) que dê items aleatorio (configuravel), se alguem puder me ajudar..

 

Grato desde já !

 

Tenta aí

 

function onUse(cid, item, fromPos, item2, toPos)
    local premios = {xxx, xxx, xxx, xxx}
local sto = 255465
    if getCreatureStorage(cid, stp) == 0 then
doPlayerSendCancel(cid, "Você não pode fazer a quest!")
else
        local randomChance = math.random(1, #premios)
        doPlayerAddItem(cid, premios[randomChance])
        setPlayerStorageValue(cid, sto, 1)
    end
    return true
end

 

Editado Outubro 11 por Danny0

NickbhzN
11 de outubro de 2015 às 11:48

 

Tenta aí

 

function onUse(cid, item, fromPos, item2, toPos)
    local premios = {xxx, xxx, xxx, xxx}
local sto = 255465
    if getCreatureStorage(cid, stp) == 0 then
doPlayerSendCancel(cid, "Você não pode fazer a quest!")
else
        local randomChance = math.random(1, #premios)
        doPlayerAddItem(cid, premios[randomChance])
        setPlayerStorageValue(cid, sto, 1)
    end
    return true
end

 

Esqueci de um detalhe, antes de testar você poderia colocar pra poder fazer essa quest 1x por dia?

RefeR
11 de outubro de 2015 às 11:50

Esqueci de um detalhe, antes de testar você poderia colocar pra poder fazer essa quest 1x por dia?

	function onUse(cid, item, fromPos, item2, toPos)
    local premios = {xxx, xxx, xxx, xxx}
	local sto = 255465
    local tempo = 24*60*60 -- Em segundos
    if os.time()-getPlayerStorageValue(cid, sto) > tempo then
        local randomChance = math.random(1, #premios)
        doPlayerAddItem(cid, premios[randomChance])
        setPlayerStorageValue(cid, sto, os.time())
    else
        return doPlayerSendCancel(cid, "Voce precisa esperar 1 Dia fazer a quest!")
    end
    return true
end

NickbhzN
11 de outubro de 2015 às 17:42

Vou testar aqui..

 

Mais normalmente não tem a porcentagem de chance para nos editarmos?

RefeR
11 de outubro de 2015 às 17:48

Vou testar aqui..

 

Mais normalmente não tem a porcentagem de chance para nos editarmos?

math.random(1, #premios)

Só trocar o "1"

NickbhzN
11 de outubro de 2015 às 17:52
math.random(1, #premios)

Só trocar o "1"

 

Funcionou, obrigado!

 

OBS: no caso como eu faria para por a porcentagem em cada 1 dos 3 items q eu editei no script, no caso seria 3 itens, que dá acesso a uma area, de 1 dia, 7 dias e 30 dias.

Eu queria diminuir a porcentagem de vim o item que dá a acesso de 30 dias, entendeu? Como eu faria?

Editado Outubro 11 por brendoonh

RefeR
11 de outubro de 2015 às 17:53

Funcionou, obrigado!

 

OBS: no caso como eu faria para por a porcentagem em cada 1 dos 3 items q eu editei no script, no caso seria 3 itens, que dá acesso a uma area, de 1 dia, 7 dias e 30 dias. Eu diminuir a porcentagem de chance de vim ele... como eu faria?

 

Putz, aí eu teria que refazer o script, quer que eu refaça ?

NickbhzN
11 de outubro de 2015 às 17:56

 

Putz, aí eu teria que refazer o script, quer que eu refaça ?

Nao teria como so implementar essa função nessa script mesmo?

Pq eu usei 10 chares e 5 veio o de 30 dias, coincidência ou não...

 

Por ser o melhor item dentre os outros, eu queria deixa-lo mais dificil entendeu..

 

Se não for pedir de mais, eu aceito se for necessario!

RefeR
11 de outubro de 2015 às 18:25

Nao teria como so implementar essa função nessa script mesmo?

Pq eu usei 10 chares e 5 veio o de 30 dias, coincidência ou não...

 

Por ser o melhor item dentre os outros, eu queria deixa-lo mais dificil entendeu..

 

Se não for pedir de mais, eu aceito se for necessario!

 

 

Vou refazer

 

Nao teria como so implementar essa função nessa script mesmo?

Pq eu usei 10 chares e 5 veio o de 30 dias, coincidência ou não...

 

Por ser o melhor item dentre os outros, eu queria deixa-lo mais dificil entendeu..

 

Se não for pedir de mais, eu aceito se for necessario!

	function onUse(cid, item, fromPos, item2, toPos)
    local item1 = xxx -- 30 % de chance
    local item2 = xxx -- 60 % de chance 
    local item3 = xxx -- 10% de chance
	local sto = 255465
    local tempo = 24*60*60 -- Em segundos
    if os.time()-getPlayerStorageValue(cid, sto) > tempo then
        if math.random(1,10) == 1 or math.random(1,10) == 2 or math.random(1,10) == 3  then
		doPlayerAddItem(cid, item1)
        setPlayerStorageValue(cid, sto, os.time())
    elseif math.random(1,10) == 4 or math.random(1,10) == 5 or math.random(1,10) == 6 or math.random(1,10) == 7 or math.random(1,10) == 8 or math.random(1,10) == 9 then
	    doPlayerAddItem(cid, item2)
	    setPlayerStorageValue(cid, sto, os.time())
		elseif math.random(1,10) == 10 then
		doPlayerAddItem(cid, item3)
		setPlayerStorageValue(cid, sto, os.time())
		else
        return doPlayerSendCancel(cid, "Voce precisa esperar 1 Dia fazer a quest!")
    end
    return true
end

tá ai

Editado Outubro 11 por Danny0

NickbhzN
11 de outubro de 2015 às 18:46

15ow66g.jpg

RefeR
11 de outubro de 2015 às 18:47

15ow66g.jpg

function onUse(cid, item, fromPos, item2, toPos)
    local item1 = xxx -- 30 % de chance
    local item2 = xxx -- 60 % de chance 
    local item3 = xxx -- 10% de chance
	local sto = 255465
    local tempo = 24*60*60 -- Em segundos
    if os.time()-getPlayerStorageValue(cid, sto) > tempo then
        if math.random(1,10) == 1 or math.random(1,10) == 2 or math.random(1,10) == 3  then
		doPlayerAddItem(cid, item1)
        setPlayerStorageValue(cid, sto, os.time())
    elseif math.random(1,10) == 4 or math.random(1,10) == 5 or math.random(1,10) == 6 or math.random(1,10) == 7 or math.random(1,10) == 8 or math.random(1,10) == 9 then
	    doPlayerAddItem(cid, item2)
	    setPlayerStorageValue(cid, sto, os.time())
		elseif math.random(1,10) == 10 then
		doPlayerAddItem(cid, item3)
		setPlayerStorageValue(cid, sto, os.time())
		else
        return doPlayerSendCancel(cid, "Voce precisa esperar 1 Dia fazer a quest!")
    end
    return true
end
end

adiciona um end no final

NickbhzN
11 de outubro de 2015 às 19:08

Funfo, só que quando o player ja fez a quest, nao aparece a mensagem q devia...

 

"Voce precisa esperar 1 Dia fazer a quest!"

 

 

RefeR
11 de outubro de 2015 às 19:14
Melhor resposta

Funfo, só que quando o player ja fez a quest, nao aparece a mensagem q devia...

 

"Voce precisa esperar 1 Dia fazer a quest!"

 

 

function onUse(cid, item, fromPos, item2, toPos)
    local item1 = xxx -- 30 % de chance
    local item2 = xxx -- 60 % de chance 
    local item3 = xxx -- 10% de chance
	local sto = 255465
    local tempo = 24*60*60 -- Em segundos
        if math.random(1,10) == 1 or math.random(1,10) == 2 or math.random(1,10) == 3 and os.time()-getPlayerStorageValue(cid, sto) > tempo  then
		doPlayerAddItem(cid, item1)
        setPlayerStorageValue(cid, sto, os.time())
    elseif math.random(1,10) == 4 or math.random(1,10) == 5 or math.random(1,10) == 6 or math.random(1,10) == 7 or math.random(1,10) == 8 or math.random(1,10) == 9 and os.time()-getPlayerStorageValue(cid, sto) > tempo then
	    doPlayerAddItem(cid, item2)
	    setPlayerStorageValue(cid, sto, os.time())
		elseif math.random(1,10) == 10 and os.time()-getPlayerStorageValue(cid, sto) > tempo then
		doPlayerAddItem(cid, item3)
		setPlayerStorageValue(cid, sto, os.time())
		else
       doPlayerSendCancel(cid, "Voce precisa esperar 1 Dia fazer a quest!")
	   return true
end
end
NickbhzN
11 de outubro de 2015 às 19:28

Funfo, obrigado!