Ir para conteúdo

BruniinszLuana

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    BruniinszLuana deu reputação a zipter98 em (Resolvido)Um Script de um evento Diario   
    Optei por fazer uma premiação justa - assim, é possível que haja mais de um ganhador em alguma(s) colocação(ões). Se isto ocorrer, o prêmio em dinheiro será dividido automaticamente entre os ganhadores.
    Ex.:
    Número sorteado: 48
    Jogadores participando do evento: {Fulano, escolheu número 32}, {Ciclano, número 47}, {Error, número 49}, {Troglodita, número 30}, {zipter, número 29}.
    Assim, a colocação ficará:
    [1 lugar] = Ciclano e Error (o dinheiro será dividido entre ambos)
    [2 lugar] = Fulano
    [3 lugar] = Troglodita
    A configuração, como pode ver, é simples:
       winners = {         [colocação] = {cash = prêmio_em_dinheiro, items = {ID do item prêmio, quantidade do item prêmio}},        }, Enfim, vamos ao código:
    Talkaction:
    local storages = {8932, 8931} local price = 100000              --Preço para participar do sorteio. function onSay(cid, words, param)     if getGlobalStorageValue(storages[1]) < 1 then         return doPlayerSendCancel(cid, "Event is not on.")     elseif getPlayerStorageValue(cid, storages[2]) > -1 then         return doPlayerSendCancel(cid, "You already chose your number.")     elseif param == "" or not tonumber(param) or tonumber(param) < 1 or tonumber(param) > 100 then         return doPlayerSendCancel(cid, "/sorteio 1-100")     elseif getPlayerMoney(cid) < price then         return doPlayerSendCancel(cid, "You do not have enough money ("..price..").")     end     setPlayerStorageValue(cid, storages[2], tonumber(param))     doPlayerRemoveMoney(cid, price)     doPlayerSendTextMessage(cid, 27, "Agora você está participando do evento, seu número: "..param..", Aguarde o resultado, Boa sorte!")     return true end Tag: <talkaction words="/sorteio" event="script" value="nome_do_arquivo.lua"/> Globalevent: local config = {     days = {"Monday", "Tuesday", "Saturday"},                 --Dias que o evento ocorrerá.     time = 5,                                                 --Tempo para o sorteio ocorrer.     winners = {         --[place] = {cash = xxx, items = {itemid, count}},        },     storages = {8931, 8932}, } function getRuffleNumbers(a)     local z = {}     local c = {}     for _, cid in pairs(getPlayersOnline()) do         if getPlayerStorageValue(cid, config.storages[1]) > -1 then             table.insert(z, math.abs(getPlayerStorageValue(cid, config.storages[1]) - a))         end     end     for i = 1, #config.winners do         for j = 1, #z do             if not table.find(c, z[j]) then                 if not c[i] then                     c[i] = z[j]                 else                     if z[j] < c[i] then                         c[i] = z[j]                     end                 end             end         end     end     return c end function onTime()     if isInArray(config.days, os.date("%A")) then         broadcastMessage("O evento do sorteio iniciou, diga /sorteio numero(de 1 a 100) para escolher seu numero, em aproximadamente 5 minutos saira o resultado!")         setGlobalStorageValue(config.storages[2], 1)         addEvent(function()             local a = math.random(1, 100)             if #getRuffleNumbers(a) < 1 then                 broadcastMessage("Ninguém participou do sorteio. :/")                 setGlobalStorageValue(config.storages[2], -1)             else                 broadcastMessage("E o número sorteado foi... "..a.."! Os ganhadores foram:")                 local c = getRuffleNumbers(a)                    for i = 1, #c do                     local players, p, gold = {}, "", 0                     gold = config.winners[i].cash                     for _, cid in pairs(getPlayersOnline()) do                         if getPlayerStorageValue(cid, config.storages[1]) > -1 then                             if getPlayerStorageValue(cid, config.storages[1]) == math.abs(c[i] - a) or getPlayerStorageValue(cid, config.storages[1]) == math.abs(c[i] + a) then                                 table.insert(players, cid)                                 doPlayerAddItem(cid, config.winners[i].items[1], config.winners[i].items[2])                             end                             setPlayerStorageValue(cid, config.storages[1], -1)                         end                     end                         for j = 1, #players do                         gold = math.floor(config.winners[i].cash / #players)                         doPlayerAddMoney(players[j], gold)                         if p == "" then                             p = getCreatureName(players[j])                         else                             p = p..(j == #players and " and" or ",").." "..getCreatureName(players[j])                         end                     end                     broadcastMessage(i.." lugar: "..p.." - cash: "..gold.." - item: "..config.winners[i].items[2].."x "..getItemNameById(config.winners[i].items[1])..".")                 end             end             local query = db.getResult("SELECT id, online FROM players")             if query:getID() == -1 then                 return true             end             repeat                 local online = query:getDataInt("online")                 local i = query:getDataInt("id")                 if online < 1 then                     db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = "..config.storages[1].." AND value > -1 AND player_id = "..i)                 end             until not query:next()             query:free()         end, config.time * 60 * 1000)     end     return true end Tag: <!-- Coloque, em time, o horário 5 minutos antes do sorteio ser realizado. --> <!-- Por exemplo, se colocar 19:55, o sorteio vai ser realizado as 20:00. --> <globalevent name="Sorteio" time="19:55" event="script" value="nome_do_arquivo.lua"/> OBS: Testei o código apenas em situações hipotéticas (como aquele exemplo no começo do post) num depurador de lua.
  2. Gostei
    Adicione em \data\creaturescripts\scripts\login.lua 
    doPlayerOpenChannel(cid, channel)
    no Caso ficara Assim 
    doPlayerOpenChannel(9, channel)

Informação Importante

Confirmação de Termo