Ir para conteúdo
  • 0

Loteria por item


luciano0223

Pergunta

Bem, é mais ou menos assim. Existir uma loteria semanal e só quem participa dela é quem dá use num item (q ele some depois), ai tipo se uma pessoa tiver 5 itens desse e usar 5 x ele tem 5 chances de ganhar na loteria dessa semana. 

Será que dá pra fazer esse script ?

 

Obrigado por ler!

 

5 Rep +

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Adicione a tag, em globalevents.xml:

 

<globalevent name="lottery" time="22:00:00" event="script" value="lottery.lua"/>

 

Crie, em globalevents/scripts/, um arquivo chamado lottery.lua e adicione:

 

function onThink(cid, interval, lastExecution)

if getPlayerStorageValue(cid, 13812) >= math.random(1, 100) then
doPlayerAddItem(cid, 2160, 100)
doPlayerSendTextMessage(cid, 22, "Voce foi um dos vencedores da loteria de hoje!")
setPlayerStorageValue(cid, 13812, 0)

setPlayerStorageValue(cid, 13813, 0)
else
setPlayerStorageValue(cid, 13812, 0)

setPlayerStorageValue(cid, 13813, 0)
doPlayerSendTextMessage(cid, 22, "Voce nao ganhou na loteria desta vez, ou por nao ter apostado, ou por falta de sorte. Aposte para o proximo sorteio!")
end

return true
end

 

Adicione a tag, em actions.xml:


<action itemid="IDDOITEM" script="lottery.lua"/>

 

Crie, em actions/scripts/, um arquivo chamado lottery.lua e adicione:

 

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

 

if getPlayerStorageValue(cid, 13813) < 100 then

if getPlayerStorageValue(cid, 13812) >= 1 then
setPlayerStorageValue(cid, 13812, getPlayerStorageValue(cid, 13812) + 1)

setPlayerStorageValue(cid, 13813, getPlayerStorageValue(cid, 13813) + 1)
doPlayerSendTextMessage(cid, 22, "Voce acabou de aumentar suas chances para o sorteio da loteria!")
doSendMagicEffect(getPlayerPosition(cid), 12)
doRemoveItem(item.uid, 1)
else
setPlayerStorageValue(cid, 13812, 1)

setPlayerStorageValue(cid, 13812, 1)
doPlayerSendTextMessage(cid, 22, "Voce acabou de apostar para o sorteio da loteria!")
doSendMagicEffect(getPlayerPosition(cid), 12)
doRemoveItem(item.uid, 1)
end

else

doPlayerSendTextMessage(cid, 22, "Voce ja apostou o maximo possivel para o proximo sorteio!")
doSendMagicEffect(getPlayerPosition(cid), 12)

end

 

return true
end

 

Como o script funciona:

- A loteria é diária, pois pelo que eu me lembre, não existe mais o day no globalevents (até tem como fazer por storage, mas to com preguiça, sinceramente kkkk);

- O player ganha 1% a mais de chances de ganhar a cada x que usa o itemx (máximo de x que pode usar = 100, ou seja, ele com certeza ira ganhar se usar o item 100x. Mas se quiser alterar esse valor para, sei la, 10% altere o < 100 ali em cima para < 10, por exemplo);

- Um furo do script: como eu fiz levando em conta o player em si, devido a maior chance de 1 em relação ao outro, tem chance de varios players ganharem na loteria. Ou seja, o sorteio eh "por player".

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, eu fiz um pequeno remake no código do @miguel223

 

Actions

-- Tony Araújo - OrochiElf --function onUse(cid, item)	if getPlayerStorageValue(cid, 13812) < 100 then				setPlayerStorageValue(cid, 13812, getPlayerStorageValue(cid, 13812) + 1)		doPlayerSendTextMessage(cid, 22, "Você tem ".. getPlayerStorageValue(cid, 13812) .."x chances de acertar na loteria.")		doSendMagicEffect(getThingPosition(cid), 12)		doRemoveItem(item.uid, 1)	else				doPlayerSendTextMessage(cid, 22, "Voce ja apostou o maximo possivel para o sorteio!")	end	return trueend

 

GlobalEvents

-- Tony Araújo - OrochiElf --function onThink(cid, interval, lastExecution) 	if math.random(100) <= getPlayerStorageValue(cid, 13812) then				doPlayerAddItem(cid, 2160, 100)		doPlayerSendTextMessage(cid, 22, "Você acaba de ganhar na loteria, parabéns.")	else				doPlayerSendTextMessage(cid, 22, "Você não foi sorteado para o prémio, mais sorte da proxima vez.")	end		setPlayerStorageValue(cid, 13812, 0)	return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0

Para ganhar item aleatório, pode-se recorrigir da seguinte forma:

 

local configs = {

{itemid = 2160, itemcount = 2},

{itemid = 2160, itemcount = 2},

{itemid = 2160, itemcount = 2},

{itemid = 2160, itemcount = 2}

}

 

function onThink(cid, interval, lastExecution)

if getPlayerStorageValue(cid, 13812) >= math.random(1, 100) then

k = math.random(1, #configs)
doPlayerAddItem(cid, configs[k].itemid, configs[k].itemcount)
doPlayerSendTextMessage(cid, 22, "Voce foi um dos vencedores da loteria de hoje!")
setPlayerStorageValue(cid, 13812, 0)

setPlayerStorageValue(cid, 13813, 0)
else
setPlayerStorageValue(cid, 13812, 0)

setPlayerStorageValue(cid, 13813, 0)
doPlayerSendTextMessage(cid, 22, "Voce nao ganhou na loteria desta vez, ou por nao ter apostado, ou por falta de sorte. Aposte para o proximo sorteio!")
end

return true
end

Editado por miguel223
Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

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