Auto Reset
Autor: GNR World Brasil | Publicado: 2010-04-17T13:27:00-07:00

1º Va em SQL Server  Enterprise Manager.

2º Va  em Databases, Muonline e Tables, na tabela Character Click com botão  direito, Design Table.

3º Va  até o ultimo campo (collun name) escrito e crie um chamado Reset,

Colunname = Reset
DataType = int
Default value = 1

4º Agora em Management, va em SQL  Server Agent., va em Jobs, e click com botão direito e NewJob.

5º Va em General coloque um nome  como AutoReset. depois vai em Steps, New em Steps em "name" coloque AutoReset tambem, va em  Type deixe Transact-SQL Script (TSQL).

6º Em Database selecione MUOnline, no Command  coloque o seguinte codigo :

      [[   [ Auto  Reset Para Vip na table MEMB_INFO ]


--  =============================================
-- Reset não  acumulativo (Pontos x Resets) + VIP
--=============================================
--
--  Definindo as variaveis (Não mexer)
declare
@MaxLevel int,
@PontosReset  int,
@ZenReq int,
@Forca int,
@Agilidade int,
@Vitalidade  int,
@Energia int,
@MaxLevelVIP int,
@PontosResetVIP int,
@ZenReqVIP  int,
@ForcaVIP int,
@AgilidadeVIP int,
@VitalidadeVIP int,
@EnergiaVIP  int

-- Definindo valor das variaveis (Configure conforme  necessário)
--
-- Contas não VIP
set @MaxLevel = 349 -- Level  ao qual poderá resetar
set @PontosReset = 300 -- Pontos que ganhará  por reset (Pontos vezes Resets)
set @ZenReq = 50000000 -- Zen  requerido para resetar
set @Forca = 30 -- Ponto padrão de força que  ira retornar após resetar
set @Agilidade = 30 -- Ponto padrão de  agilidade que ira retornar após resetar
set @Vitalidade = 30 -- Ponto  padrão de vitalidade que ira retornar após resetar
set @Energia = 30  -- Ponto padrão de energia que ira retornar após resetar

--  Contas VIP
set @MaxLevelVIP = 299 -- Level ao qual poderá resetar
set  @PontosResetVIP = 400 -- Pontos que ganhará por reset (Pontos vezes  Resets)
set @ZenReqVIP = 20000000 -- Zen requerido para resetar
set  @ForcaVIP = 100 -- Ponto padrão de força que ira retornar após resetar
set  @AgilidadeVIP = 100 -- Ponto padrão de agilidade que ira retornar após  resetar
set @VitalidadeVIP = 100 -- Ponto padrão de vitalidade que  ira retornar após resetar
set @EnergiaVIP = 100 -- Ponto padrão de  energia que ira retornar após resetar

-- Execução do comando SQL  (Não mexer)
--
-- Contas não VIP
UPDATE Character

SET  cLevel = 1,
Experience = 0,
LevelUpPoint = @PontosReset * (Resets +  1),
Strength = @Forca,
Dexterity = @Agilidade,
Vitality =  @Vitalidade,
Energy = @Energia,
Money = Money - @ZenReq,
Resets  = Resets + 1

FROM Character
JOIN MEMB_STAT ON  Character.AccountID=MEMB_STAT.memb___id COLLATE Latin1_General_CS_AS
JOIN  MEMB_INFO ON Character.AccountID=MEMB_INFO.memb___id COLLATE  Latin1_General_CS_AS

WHERE cLevel &gt; (@MaxLevel - 1)
AND  Money &gt; (@ZenReq - 1)
AND MEMB_STAT.ConnectStat = 0
AND  MEMB_INFO.vip = 0
AND Resets &lt;= 150

-- Contas VIP
UPDATE  Character

SET cLevel = 1,
Experience = 0,
LevelUpPoint =  @PontosResetVIP * (Resets + 1),
Strength = @ForcaVIP,
Dexterity =  @AgilidadeVIP,
Vitality = @VitalidadeVIP,
Energy = @EnergiaVIP,
Money  = Money - @ZenReqVIP,
Resets = Resets + 1

FROM Character
JOIN  MEMB_STAT ON Character.AccountID=MEMB_STAT.memb___id COLLATE  Latin1_General_CS_AS
JOIN MEMB_INFO ON  Character.AccountID=MEMB_INFO.memb___id COLLATE Latin1_General_CS_AS

WHERE  cLevel &gt; (@MaxLevelVIP - 1)
AND Money &gt; (@ZenReqVIP - 1)
AND  MEMB_STAT.ConnectStat = 0
AND MEMB_INFO.vip = 1
AND Resets &lt;=  1000

Mudando o  Código:

LevelUpPoint= 300*Reset
Significa  que os pontos por reset vão ser definidos assim:
300 multiplicado  pelo numero de resets atuais.

Strength= ('20') , Dexterity=  ('20') , Vitality= ('20') , Energy= ('20')
Isso são os atributos que o  char recomeça, ou seja, esse char recomeçaria com 20 pontos em todos os  atributos (skills).

WHERE clevel&gt;349
Lvl de Reset ( deixe  -1 do lvl desejado ), nesse ele resetaria no 350.

[[   [ Auto  Reset Para Vip na table Character ]

Auto Reset para GM's

UPDATE  Character
SET clevel=('50'), Experience=('0'),Money=Money-('0'),  Reset=Reset+1, Strength=('32500'), Dexterity=('26000'),  Vitality=('32500'), Energy=('32500')
FROM Character join Memb_Stat on  Character.Accountid=Memb_Stat.memb___id
collate Latin1_general_CI_AS
WHERE  clevel&gt;349 AND Vip = 8 AND Memb_Stat.ConnectStat = 0

Auto  Reset para Usuários Normais ( and Vip = 0 ) :Ganhando 350 pontos,  Resetando lvl 350

UPDATE Character
SET clevel=('1'),  Experience=('0'),Money=Money-('0'),LevelUpPoint=350+350*Reset,  Reset=Reset+1,Strength=('30'), Dexterity=('30'),  Vitality=('30'),Energy=('30')
FROM Character join Memb_Stat on  Character.Accountid=Memb_Stat.memb___id
collate Latin1_general_CI_AS
WHERE  clevel&gt;349 AND Memb_Stat.ConnectStat = 0 and Vip = 0 and  Money&gt;('0')


Auto Reset para Users Normais ( and Vip = 0  ) :Ganhando 350 pontos, Resetando lvl 350, Resetando Itens

UPDATE  Character
SET clevel=('1'),  Experience=('0'),Money=Money-('0'),LevelUpPoint=350+350*Reset,  Reset=Reset+1,
Strength=('30'), Dexterity=('30'),  Vitality=('30'),Energy=('30'), Inventory=null, MagicList=null
FROM  Character join Memb_Stat on Character.Accountid=Memb_Stat.memb___id
collate  Latin1_general_CI_AS
WHERE clevel&gt;349 AND Memb_Stat.ConnectStat =  0 and Vip = 0 and Money&gt;('0')

Auto Reset para Usuários  Vips ( and Vip = 1 ) : Ganhando 400 pontos, Resetando lvl 350

UPDATE  Character
SET clevel=('1'),  Experience=('0'),Money=Money-('0'),LevelUpPoint = 400+400*Reset,  Reset=Reset+1, Strength=('50'), Dexterity=('50'), Vitality=('50'),  Energy=('50')
FROM Character join Memb_Stat on  Character.Accountid=Memb_Stat.memb___id
collate Latin1_general_CI_AS
WHERE  clevel&gt;349 AND Vip = 1 AND Memb_Stat.ConnectStat = 0

Auto  Reset para Qualquer Usuário Acumulativo : Resetando lvl 350 Acumulativo

UPDATE  Character
SET clevel= ('1') , experience= ('0')
WHERE  clevel&gt;349
7º Depois  clique em Parse e de OK, va para Schedules.

8º Em New Sechedule coloque tambem la AutoReset,  depois clique em Change, na primeira parte selecione Daily e deixe em  Every 1 day(s).

9º Depois  selecione em baixo Occurs every e troque Hour(s) por Minute(s),  Duration selecione a data atual do dia e de ok.

10º Agora e so finalizar dando  Aplicar e OK.

11º  Sempre de Start no SQL Server Agent, e deixe como auto start para  facilitar.