Boa tarde, desenvolvi uma Query que premia jogadores online com Cash (ou gold, ou a moeda que você quiser) apenas se tiver uma quantidade de jogadores online.

Isso é muito bom pra eventos de quebra de recorde com horário marcado.

Não sei se já existia, dei uma procurada rápida, não encontrei e resolvi fazer eu mesmo.

Para isso virar uma JOB, você terá que criar a JOB manualmente, essa é apenas a QUERY que você irá incluir na JOB.

ATENÇÃO! ALTERE OS VALORES, COLOQUEI PRA DAR 20 MIL CASH SE TIVER MAIS DE 5 PESSOAS ONLINE APENAS PARA MEUS TESTES. Depois da query vou ensinar o que mudar.

DECLARE @results TABLE(id int not null primary key identity(1,1), account VARCHAR(10));DECLARE @count int;
DECLARE @current int;


INSERT INTO @results
SELECT
b.memb___id as account
FROM
MEMB_INFO a,
MEMB_STAT b
WHERE
b.memb___id = a.memb___id AND
b.memb___id IN (
SELECT
memb___id
FROM
MEMB_STAT
WHERE
ConnectStat > 0
) AND
(Select COUNT(1) From MEMB_STAT Where ConnectStat > 0) > 5


SET @count = @@ROWCOUNT;
SET @current = 0;


WHILE @current < @count
BEGIN
SET @current = @current + 1;

UPDATE
MEMB_INFO
SET
cash = cash + 20000
WHERE
memb___id = (
SELECT
account
FROM
@results
WHERE
id = @current
);
END

Para os iniciantes, é simples alterar.

Para alterar quantos online precisa para premiar altere a seguinte linha:
(Select COUNT(1) From MEMB_STAT Where ConnectStat > 0) > 5
O >5 é a quantidade de jogadores online, no caso se tiverem 6 online ela já premia.

Para alterar qual moeda premiar, e quanto premiar, altere a seguinte linha:
cash = cash + 20000
Onde cash é a moeda, e 20000 é quantidade. Se for alterar a moeda, altere as 2 palavras 'cash'.

Se seu servidor utilizar as moedas em uma tabela específica do site, será necessário adaptar essa query.


Agradecimentos especiais ao Getúlio, que me ajudou a fazer uma query que utilizei como base de estudo para desenvolver essa.

Lembrando que tenho um Site especializado em soluções para MU Online, então se você necessitar de algo basta me enviar uma MP.