PDA

View Full Version : |Suporte| Recompensando player ao dar MasterReset



xxdevilxx
28/12/2014, 04:39 PM
Oi Pessoal tou com uma dúvida que nao consigo resolver....
Bom, o problema é o seguinte:

Eu tenho meu server de MuOnline, eu queria recompensar todo o player que dá o master reset com 1000 golds (meu server dá master reset auto, porque tenho uma job).

Então é o seguinte eu tenho minha job assim:



UPDATE Character
Set MasterReset=MasterReset+1, Resets=5
From Character Join Memb_Stat on Character.Accountid=Memb_Stat.memb___id
collate Latin1_general_CI_AS
WHERE Resets=100 AND Memb_Stat.ConnectStat = 0 and CtlCode=0 and MasterReset=0

Bom, toda vez que o player chega no level 400 e reset nº 100, ele reloga e tem 1 Master Reset automatico.

O problema é que eu queria recompensar os players e a minha WebShop usa a table shop.gold dentro dela tenho o seguinte:


memb__id
gold

Eu queria pedir uma ajudinha porque eu nao percebo muito de MSSQL na parte relativa a Jobs e Triggers...

Obrigado

Mentor
28/12/2014, 05:15 PM
Bom peguei uma job que dar golds por reset e modifiquei para dar golds por MasterReset, coloca para rodar em 1 em 1 min e testa.


[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]

xxdevilxx
28/12/2014, 05:18 PM
Mas mentor isso é para colocar golds na table memb_info
A minha tabela dos golds é a shop.gold, eu nao posso alterar porque é a da webshop.

Mentor
28/12/2014, 05:22 PM
@xxdevilxx ([Only registered and activated users can see links]) ,entao altera a memb_info para a sua tabela.

xxdevilxx
28/12/2014, 05:23 PM
Na webshop ?

Mentor
28/12/2014, 05:24 PM
Na JOB que postei.

xxdevilxx
28/12/2014, 05:26 PM
Uhmm okei... É que na minha job, o player chegando ao reset 100 ele ganha 1 MasterReset e os resets ficam a 5 .. como faço isso?

Me desculpa é que nao percebo muito de SQL...

Mentor
28/12/2014, 05:31 PM
@xxdevilxx ([Only registered and activated users can see links]) Eu particulamente também sou leigo se tratando de jobs,inclusive dando uma pesquisada eu achei um tutorial que da uma explicação básica sobre ela e postei nesse tópico ([Only registered and activated users can see links]) Espero que isso lhe ajude a compreender melhor ;)

xxdevilxx
28/12/2014, 05:33 PM
Sim eu agradeço isso ...
Eu vou tentando se alguem souber que poste ai pfv :S
Vlw

Christian Lima
02/01/2015, 12:00 AM
Nada que uma pesquisadinha no google não resolva!

Primeiro essa sua job está errada, da forma que está, só vai dar golds para player com exatos 100 resets e que não tem nenhum master.

Sendo assim, basta vc fazer seu shop ler a memb_info no lugar de shop.gold e usar a QUERY abaixo


UPDATE Character
Set MasterReset = MasterReset + 1, Resets = 5 -- ganha 1 MasterReset a cada 100 resets e volta com 5 resets após dar 1 Master
From Character Join Memb_Stat on Character.Accountid=Memb_Stat.memb___id
collate Latin1_general_CI_AS
WHERE Resets > 100 -- somente players com 100 ou mais resets
AND Memb_Stat.ConnectStat = 0 -- precisa estar fora do server para resetar e receber o bonus
AND CtlCode = 0 -- bonus apenas para char player, char GM e ADM não participam
AND MasterReset > 0 -- qualquer player com MasterReset maior que 0


Então crie a coluna gold na tabela MEMB_INFO e depois rode essa TRIGGER



CREATE TRIGGER [MuDaGold] ON dbo.[Character]
AFTER UPDATE
as
if update (MasterReset)
begin
UPDATE [dbo].[MEMB_INFO] set gold = gold + 1000 from MEMB_INFO join inserted i on i.AccountID=MEMB_INFO.memb___id
end


O que isso faz?
Toda vez que a query somar +1 na coluna MasterReset, a trigger atualizar a coluna gold com 1000 golds.

Obs.: Visto que não criei a query nem a trigger, bem como não testei, recomendo que faça um backup de sua base de dados, pois não será de minha responsabilidade qualquer erro causado. Todavia, teoricamente, teria que funcionar - Coisas que encontramos pela internet para saber temos que correr o risco e testar sem medo.