Primeiro você vai ter que criar um npc para o player poder escolher um número.
nomeio e crie como quiser. o script do npc sera esse:
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
local numberMax = 10 -- numero maximo que o player pode escolher
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if msgcontains(msg, 'sim') then
selfSay('Você pode escolher um número de {1 à '..numberMax..'.}', cid)
talkState[talkUser] = 2
elseif talkState[talkUser] == 2 then
if tonumber(msg) <= numberMax and tonumber(msg) > 0 then
if getPlayerStorageValue(cid, 439412) == -1 then
setPlayerStorageValue(cid, 439412, tonumber(msg)+1)
selfSay('Parabéns, você escolheu o número '..tonumber(msg)..', aguarde o sortei.', cid)
selfSay('Caso deslogue, seu numero não será valido.', cid)
else
selfSay('Você ja escolheu um número, espere até o sortei ocorrer.', cid)
end
else
selfSay('Esso não é um numero valido.', cid)
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
o teu globalevent vai mudar pra esse:
local config = {
lottery_hora = "2 horas",
reward_count = 1,
website = 0,
numberMax = 10 -- numero maximo que o player pode escolher
}
function onThink(interval, lastExecution)
local players = getPlayersOnline()
local list = {}
for i, tid in ipairs(players) do
list[i] = tid
end
local sorteio = math.random(1,config.numberMax)
local cont = 0
for o=1, #list do
if getPlayerStorageValue(list[o], 439412) == sorteio then
local winner = list[o]
cont = cont + 1
if(config.website == 1) then
db.executeQuery("INSERT INTO `lottery` (`name`) VALUES ('".. getCreatureName(winner) .."');")
end
doBroadcastMessage('[Loteria Erondino Serve] Ganhador['.. cont ..']: '.. getCreatureName(winner) ..', Recompensa: '.. config.reward_count ..'moedas! - Parabens ! (Proxima em: '.. config.lottery_hora ..')')
doPlayerAddItem(winner, 2160,config.reward_count)
end
end
return TRUE
end
e no teu arquivo login.lua, que fica na pasta data/creaturescripts/scripts. abra-o e antes do último return true cole:
setPlayerStorageValue(cid, 439412, -1)
prontinho! ![]()








info
Grupo: Artesão
Registrado: 17/01/12
Posts: 137
Reputação: -1
Char no Tibia: Nao Tenho
isso ta na pasta data/globalevents/scripts
so que eu quero que nao sorteie 1 player e sim varios, tipo como se fosse mega sena, o player chega fala hi e escolhe um numero de 1 a 10 ai quem acerta o numero ganha o premio...ajudem aee por favor...REP+ claro, pra quem ajudar
local config = {
lottery_hora = "2 horas",
reward_count = 1,
website = 0
}
function onThink(interval, lastExecution)
local players = getPlayersOnline()
local list = {}
for i, tid in ipairs(players) do
list = tid
end
local winner = list[math.random(1, #list)]
if(config.website == 1) then
db.executeQuery("INSERT INTO `lottery` (`name`) VALUES ('".. getCreatureName(winner) .."');")
end
doBroadcastMessage('[Loteria Erondino Serve] Ganhador: '.. getCreatureName(winner) ..', Recompensa: '.. config.reward_count ..'moedas! - Parabens ! (Proxima em: '.. config.lottery_hora ..')')
doPlayerAddItem(winner, 2160,config.reward_count)
return TRUE
end