PDA

View Full Version : Gold por hora online



vinybronks
15/02/2018, 04:15 PM
Como arrumo essa query pra premiar por golds MuEmu S4 shop v3 ?

1 - Você tem que criar uma coluna na tabela MEMB_STAT


tempo int default 0


2 - agora crie uma JOB para rodar de 1 em 1 minuto com o conteúdo:


UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
WHERE Tempo >= 60


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60


--------------------------------------------------------


UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + 2
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 0 -- FREE


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 1 -- VIP 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 2 -- VIP 2


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 3 -- VIP 3


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60

Arcade
15/04/2018, 05:12 AM
Como arrumo essa query pra premiar por golds MuEmu S4 shop v3 ?

1 - Você tem que criar uma coluna na tabela MEMB_STAT


tempo int default 0


2 - agora crie uma JOB para rodar de 1 em 1 minuto com o conteúdo:


UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
WHERE Tempo >= 60


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60


--------------------------------------------------------


UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + 2
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 0 -- FREE


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 1 -- VIP 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 2 -- VIP 2


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 3 -- VIP 3


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60

Essa Query está configurada pra o CashShopData, ou seja, no mínimo para Season 6 da MuEMu ou X-Team.

Para alterar isso e colocar os Golds do Shop V3, basta alterar as palavras:

CashShopData -> Coloque o nome da tabela dos Golds (Exemplo: MEMB_INFO)
Seeds -> Nome da Coluna do Gold. (Exemplo: Gold)

e o valor é o valor mesmo :D

vinybronks
15/04/2018, 07:23 AM
Arcade como altero essa job ?

UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
WHERE Tempo >= 60


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60

Arcade
15/04/2018, 07:29 AM
@Arcade ([Only registered and activated users can see links]) como altero essa job ?

UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
WHERE Tempo >= 60


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60




UPDATE MEMB_INFO
SET Gold = Gold + VALOR FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
WHERE Tempo >= 60

Agora sim, vale lembrar que deve haver a coluna "Tempo" devidamente configurada. Caso contrário, geralmente a coluna do tempo online que pode ser utilizada é: OnlineHours

vinybronks
15/04/2018, 07:48 AM
Essa se torna inutilizavel se eu não quiser separar por vips né ?

UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + 2
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 0 -- FREE


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 1 -- VIP 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 2 -- VIP 2


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 3 -- VIP 3


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60

Arcade
15/04/2018, 07:56 AM
Essa se torna inutilizavel se eu não quiser separar por vips né ?

UPDATE memb_stat SET tempo = tempo + 1 WHERE connectstat = 1


UPDATE CashShopData
SET Seeds = Seeds + 2
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 0 -- FREE


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 1 -- VIP 1


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 2 -- VIP 2


UPDATE CashShopData
SET Seeds = Seeds + VALOR
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60 AND MEMB_INFO.AccountLevel = 3 -- VIP 3


UPDATE memb_stat set tempo = 0 WHERE tempo >= 60

Se você desejar colocá-la igual para todos, sem a necessidade de separar por VIP, basta apagar a palavra MEMB_INFO.AccountLevel = 0 e utilizar somente 1 update de premiação.

Segue o exemplo:

UPDATE CashShopData
SET Seeds = Seeds + 2
FROM MEMB_STAT INNER JOIN CashShopData ON MEMB_STAT.memb___id = CashShopData.AccountID
INNER JOIN MEMB_INFO ON MEMB_INFO.memb___id = MEMB_STAT.memb___id
WHERE Tempo >= 60
UPDATE memb_stat set tempo = 0 WHERE tempo >= 60

vinybronks
21/04/2018, 08:41 AM
To tendo um problema aqui executei essa job tanto como Tempo quanto OnlineHours mais não tá adicionando os golds e nem marcando as horas em nenhuma das coluna,e sim já criei as coluna Tempo e OnlineHours .. alguém sabe oque é ?

A moeda que uso é Golds então esta assim

__________________________________________________ __________________________________________________ ______
job

UPDATE memb_stat SET Tempo = Tempo + 1 WHERE connectstat = 1
___________________________________
UPDATE MEMB_INFO
SET Golds = Golds + 10
FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
WHERE Tempo >= 60

Ou

UPDATE memb_stat SET OnlineHours = OnlineHours + 1 WHERE connectstat = 1
____________________________________
UPDATE MEMB_INFO
SET Golds = Golds + 10
FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
WHERE OnlineHours >= 60


Nenhum dos jeito ta dando certo

cronusmaker
21/04/2018, 04:35 PM
pode ser que sua tabela esta em formato de date time ou tamestamp por isso não vai

vinybronks
21/04/2018, 05:43 PM
pode ser que sua tabela esta em formato de date time ou tamestamp por isso não vai
E qual seria o formato correto ?

As duas tabela estão INT default ((0))

maniacoo
21/04/2018, 06:04 PM
E qual seria o formato correto ?

As duas tabela estão INT default ((0))

Deixa eu entender, voce quer Golds por Hora Online
ou quer o Ranking de HorasOnline?

Arcade
21/04/2018, 07:24 PM
To tendo um problema aqui executei essa job tanto como Tempo quanto OnlineHours mais não tá adicionando os golds e nem marcando as horas em nenhuma das coluna,e sim já criei as coluna Tempo e OnlineHours .. alguém sabe oque é ?

A moeda que uso é Golds então esta assim

__________________________________________________ __________________________________________________ ______
job

UPDATE memb_stat SET Tempo = Tempo + 1 WHERE connectstat = 1
___________________________________
UPDATE MEMB_INFO
SET Golds = Golds + 10
FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
WHERE Tempo >= 60

Ou

UPDATE memb_stat SET OnlineHours = OnlineHours + 1 WHERE connectstat = 1
____________________________________
UPDATE MEMB_INFO
SET Golds = Golds + 10
FROM MEMB_STAT INNER JOIN MEMB_INFO ON MEMB_STAT.memb___id = MEMB_INFO.memb___id
WHERE OnlineHours >= 60


Nenhum dos jeito ta dando certo


Aparece algum erro na hora que você tenta executar? Qual seria o erro?

Eu tenho uma query que trabalha diretamente na WZ_DISCONNECTMEMB, ela pagará os golds somente após o player desconctar. Essa Query realiza o cálculo através de um tempo base definido pelo administrador para pagar o bonus online.

OBS: ELA PODE SER RODADA DIRETAMENTE, NÃO É NECESSÁRIO CRIAR JOB COM ELA.



USE [MuOnline]
GO
/****** Object: StoredProcedure [dbo].[WZ_DISCONNECT_MEMB] Script Date: 05/05/2013 10:42:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
@memb___id varchar(10)
AS
Begin
set nocount on
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

--Ganhar 1 mu$ a cada 10 minutos
[Only registered and activated users can see links]
--------------------------------


[Only registered and activated users can see links]
[Only registered and activated users can see links]
from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id
[Only registered and activated users can see links]


[Only registered and activated users can see links]
begin

--ATUALIZA status da conta
UPDATE MEMB_STAT
[Only registered and activated users can see links]
DisconnectTM = getdate(),
[Only registered and activated users can see links]
[Only registered and activated users can see links]


--ATUALIZA minutos online do char
UPDATE Character
[Only registered and activated users can see links]
FROM Character as c INNER JOIN AccountCharacter as ac ON
[Only registered and activated users can see links]


--Mu$ por tempo online--------------------------------
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
begin
[Only registered and activated users can see links]
end
else
begin
INSERT INTO MEMB_INFO (memb___id,Golds)
[Only registered and activated users can see links]
end
[Only registered and activated users can see links]
END
end
end

vinybronks
22/04/2018, 04:18 AM
Deixa eu entender, voce quer Golds por Hora Online
ou quer o Ranking de HorasOnline?

Premiar por horas online

39 minutes:------- Atualizado -------


Aparece algum erro na hora que você tenta executar? Qual seria o erro?

Eu tenho uma query que trabalha diretamente na WZ_DISCONNECTMEMB, ela pagará os golds somente após o player desconctar. Essa Query realiza o cálculo através de um tempo base definido pelo administrador para pagar o bonus online.

OBS: ELA PODE SER RODADA DIRETAMENTE, NÃO É NECESSÁRIO CRIAR JOB COM ELA.



USE [MuOnline]
GO
/****** Object: StoredProcedure [dbo].[WZ_DISCONNECT_MEMB] Script Date: 05/05/2013 10:42:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER PROCEDURE [dbo].[WZ_DISCONNECT_MEMB]
@memb___id varchar(10)
AS
Begin
set nocount on
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

--Ganhar 1 mu$ a cada 10 minutos
[Only registered and activated users can see links]
--------------------------------


[Only registered and activated users can see links]
[Only registered and activated users can see links]
from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id
[Only registered and activated users can see links]


[Only registered and activated users can see links]
begin

--ATUALIZA status da conta
UPDATE MEMB_STAT
[Only registered and activated users can see links]
DisconnectTM = getdate(),
[Only registered and activated users can see links]
[Only registered and activated users can see links]


--ATUALIZA minutos online do char
UPDATE Character
[Only registered and activated users can see links]
FROM Character as c INNER JOIN AccountCharacter as ac ON
[Only registered and activated users can see links]


--Mu$ por tempo online--------------------------------
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]


[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
begin
[Only registered and activated users can see links]
end
else
begin
INSERT INTO MEMB_INFO (memb___id,Golds)
[Only registered and activated users can see links]
end
[Only registered and activated users can see links]
END
end
end


Aparece que algumas linhas foi afetada .. quanto a essa nova que vc disponibilizou esta dando esse erro :

Mensagem 207, Nível 16, Estado 1, Procedimento WZ_DISCONNECT_MEMB, Linha 42
Nome de coluna 'OnlineTime' inválido.

maniacoo
22/04/2018, 11:43 AM
Premiar por horas online

39 minutes:------- Atualizado -------



Aparece que algumas linhas foi afetada .. quanto a essa nova que vc disponibilizou esta dando esse erro :

Mensagem 207, Nível 16, Estado 1, Procedimento WZ_DISCONNECT_MEMB, Linha 42
Nome de coluna 'OnlineTime' inválido.

é só criar a Coluna OnlineTime na MEMB_STAT

vinybronks
22/04/2018, 07:42 PM
Já tenho criada msm assim o erro continua u.u

Arcade
23/04/2018, 12:43 AM
Já tenho criada msm assim o erro continua u.u

Troque a OnlineTime pela coluna de tempo online que funciona na tua MEMB_STAT.