Alguem poderia me arranjar um script de limpar pk cobrando uma quantidade de zen ?
Para eu fazer uma job
Agradeço
Obrigado
Versão Imprimível
Alguem poderia me arranjar um script de limpar pk cobrando uma quantidade de zen ?
Para eu fazer uma job
Agradeço
Obrigado
Bom fiz essa query aqui rapidinha mas acho que ja resolve pra voce....
Nela coloquei para multiplicar, a qtde de mortes registradas pela qtde de zen definida, em @money.Código PHP:
DECLARE @memb___id varchar(10)
DECLARE @char varchar(10)
DECLARE @pkcount int
DECLARE @money int
DECLARE @moneyTotal int
DECLARE @moneyAtual int
SELECT @memb___id=AccountID,@char=Name,@pkcount=pkcount,@moneyAtual=money FROM CHARACTER where pkcount > 0
@money = 1000 //qtde em zen para ser abatida para cada morte registrada ate o momento
@moneyTotal = @money * @pkcount
IF (@moneyAtual > @moneyTotal)
BEGIN
UPDATE Muonline.dbo.Character
SET pkcount = 0,money = money - @moneyTotal
WHERE Name = @char
END
Qualquer coisa se avisa ai.
Eu preciso deixar ela rodando como Job ou ela cria uma procedure e só precisa rodar uma vez ?
É só criar a JOB.... Tu sabe criar uma job no SQL?
Para criar um Job no Enterprise Manager devemos abrir a pasta Management do servidor que queremos criar o Job. Depois abrir o ícone SQL Server Agent e em seguida o ícone Job. Qualquer Job que já esteja criado no servidor será mostrado no painel a esquerda junto com algumas informações sobre sua última execução.
Vamos clicar com o botão da direita do mouse no painel da esquerda e escolher New Job para ver uma janela similar a esta aparecer:
[Only registered and activated users can see links. Click Here To Register...]
Onde podemos escolher o nome do Job, sua categoria (que é meramente informativa não afetando o Job de qualquer maneira), o dono e mais algumas informações.
Agora que já nomeamos o Job devemos configurar os passos deste Job. Um passo é uma ação deste Job que pode ser um comando Transact-SQL, um comando do sistema operacional, um ActiveX ou uma tarefa de replicação para um determinado banco de dados. Fazemos isto clicando no botão New e digitando os comandos do nosso passo. Na figura abaixo podemos ver que o Job possui dois passos:
[Only registered and activated users can see links. Click Here To Register...]
Agora que terminamos de montar os passos do Job temos que agendar sua execução. Fazemos isto através da aba Schedules. Um detalhe interessante é que podemos fazer mais de uma agendagem para um mesmo Job. No exemplo eu configurei este Job para ser executado uma vez por semana na quinta-feira às 03:00 da manhã começando a partir do dia 08/06/2002 e o deixei habilitado:
[Only registered and activated users can see links. Click Here To Register...]
Feito isso, o que temos que fazer é esperar o tempo correto da execução do Job ou simplesmente iniciar o Job manualmente através da painel esquerdo do Enterprise Manager. Clicando com o botão direito sobre o nome do Job e escolhendo a opção View Job History podemos ver também quais os históricos das execuções deste Job:
[Only registered and activated users can see links. Click Here To Register...]
Isto é o básico para trabalharmos com Jobs.
Creditos: imaster
Como eu faço para verificar se o char está online para não ficar consumindo zen ?
Obrigado
Ai muda de figura, voce quer intaum que rode somente para as contas offlines? Se for sim, precisarei refazer o codigo....Dando um select relacionado com a memb_stat.
======================-------=========================================
Acho que isso ja resolve
Código PHP:
DECLARE @memb___id varchar(10)
DECLARE @char varchar(10)
DECLARE @pkcount int
DECLARE @money int
DECLARE @moneyTotal int
DECLARE @moneyAtual int
DECLARE @Status int
SELECT @memb___id=AccountID,@char=Name,@pkcount=pkcount,@moneyAtual=money FROM CHARACTER where pkcount > 0
SET @Status = (SELECT ConnectStats FROM MuOnline.dbo.MEMB_STAT where memb___id = @memb___id)
@money = 1000 //qtde em zen para ser abatida para cada morte registrada ate o momento
@moneyTotal = @money * @pkcount
IF (@moneyAtual > @moneyTotal)
BEGIN
IF (@Status = 0 )
BEGIN
UPDATE Muonline.dbo.Character
SET pkcount = 0,money = money - @moneyTotal
WHERE Name = @char
END
END
Testa ai e depois me fala.
Estou aguardando ^^
Obrigado
Mensagem de moderação: Tópico inativo, fechado para evitar flood.
Caso a dúvida do autor não tenha sido solucionada, entre em contato via MP para que o tópico seja re-aberto