Auto Reset
Autor: Gabriel Lima | Publicado: 2010-07-27T14:47:00-07:00

Auto Reset:1º Va em SLQ Server Enterprise Manager.2º Va em Databases, Muonline e Tables.3º Na tabela Character Click com botão direito, Design Table.4º Va até o ultimo campo (collun name) escrito e crie um chamado Reset.5º Colunname = Reset , DataType = int , Default value = 1 , salve e feche.6º Agora em Management.7º Va em SQL Server Agent.8º Va em Jobs, e click com botão direito e NewJob.9º Va em General coloque um nome como AutoReset.10º Depois vai em Steps.11º New em Steps em "name" coloque AutoReset tambem.12º Va em Type deixe Transact-SQL Script (TSQL).13º Em Database selecione MUOnline.14º 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 VIPset @MaxLevel = 349 -- Level ao qual poderá resetarset @PontosReset = 300 -- Pontos que ganhará por reset (Pontos vezes Resets)set @ZenReq = 50000000 -- Zen requerido para resetarset @Forca = 30 -- Ponto padrão de força que ira retornar após resetarset @Agilidade = 30 -- Ponto padrão de agilidade que ira retornar após resetarset @Vitalidade = 30 -- Ponto padrão de vitalidade que ira retornar após resetarset @Energia = 30 -- Ponto padrão de energia que ira retornar após resetar-- Contas VIPset @MaxLevelVIP = 299 -- Level ao qual poderá resetarset @PontosResetVIP = 400 -- Pontos que ganhará por reset (Pontos vezes Resets)set @ZenReqVIP = 20000000 -- Zen requerido para resetarset @ForcaVIP = 100 -- Ponto padrão de força que ira retornar após resetarset @AgilidadeVIP = 100 -- Ponto padrão de agilidade que ira retornar após resetarset @VitalidadeVIP = 100 -- Ponto padrão de vitalidade que ira retornar após resetarset @EnergiaVIP = 100 -- Ponto padrão de energia que ira retornar após resetar-- Execução do comando SQL (Não mexer)---- Contas não VIPUPDATE CharacterSET cLevel = 1,Experience = 0,LevelUpPoint = @PontosReset * (Resets + 1),Strength = @Forca,Dexterity = @Agilidade,Vitality = @Vitalidade,Energy = @Energia,Money = Money - @ZenReq,Resets = Resets + 1FROM CharacterJOIN MEMB_STAT ON Character.AccountID=MEMB_STAT.memb___id COLLATE Latin1_General_CS_ASJOIN MEMB_INFO ON Character.AccountID=MEMB_INFO.memb___id COLLATE Latin1_General_CS_ASWHERE cLevel > (@MaxLevel - 1)AND Money > (@ZenReq - 1)AND MEMB_STAT.ConnectStat = 0AND MEMB_INFO.vip = 0AND Resets <= 150-- Contas VIPUPDATE CharacterSET cLevel = 1,Experience = 0,LevelUpPoint = @PontosResetVIP * (Resets + 1),Strength = @ForcaVIP,Dexterity = @AgilidadeVIP,Vitality = @VitalidadeVIP,Energy = @EnergiaVIP,Money = Money - @ZenReqVIP,Resets = Resets + 1FROM CharacterJOIN MEMB_STAT ON Character.AccountID=MEMB_STAT.memb___id COLLATE Latin1_General_CS_ASJOIN MEMB_INFO ON Character.AccountID=MEMB_INFO.memb___id COLLATE Latin1_General_CS_ASWHERE cLevel > (@MaxLevelVIP - 1)AND Money > (@ZenReqVIP - 1)AND MEMB_STAT.ConnectStat = 0AND MEMB_INFO.vip = 1AND Resets <= 1000-------------------------------------------------------------------------------------------------------------E aqui estão alguns comandos de QUERY:CODE-- Tornar uma conta VIPUPDATE MEMB_INFO SET vip=1 WHERE memb___id='nome_da_conta'-- Tornar uma conta Não VIPUPDATE MEMB_INFO SET vip=0 WHERE memb___id='nome_da_conta'-- Listar todas a contas VIPSELECT memb___id FROM MEMB_INFO WHERE vip=1-- Listar todas a contas Não VIPSELECT memb___id FROM MEMB_INFO WHERE vip=0Mudando o Código:LevelUpPoint= 300*ResetSignifica 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>349Lvl de Reset ( deixe -1 do lvl desejado ), nesse ele resetaria no 350.-------------------------------------------------------------------------------------------------------------      [[   [ Auto Reset Para Vip na table Character ]   Auto Reset para GM'sUPDATE CharacterSET 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___idcollate Latin1_general_CI_ASWHERE clevel>349 AND Vip = 8 AND Memb_Stat.ConnectStat = 0   Auto Reset para Usuários Normais ( and Vip = 0 ) :Ganhando 350 pontos, Resetando lvl 350UPDATE CharacterSET 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___idcollate Latin1_general_CI_ASWHERE clevel>349 AND Memb_Stat.ConnectStat = 0 and Vip = 0 and Money>('0')   Auto Reset para Users Normais ( and Vip = 0 ) :Ganhando 350 pontos, Resetando lvl 350, Resetando ItensUPDATE CharacterSET 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=nullFROM Character join Memb_Stat on Character.Accountid=Memb_Stat.memb___idcollate Latin1_general_CI_ASWHERE clevel>349 AND Memb_Stat.ConnectStat = 0 and Vip = 0 and Money>('0')   Auto Reset para Usuários Vips ( and Vip = 1 ) : Ganhando 400 pontos, Resetando lvl 350UPDATE CharacterSET 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___idcollate Latin1_general_CI_ASWHERE clevel>349 AND Vip = 1 AND Memb_Stat.ConnectStat = 0   Auto Reset para Qualquer Usuário Acumulativo : Resetando lvl 350 AcumulativoUPDATE CharacterSET clevel= ('1') , experience= ('0')WHERE clevel>34915º Depois clique em Parse e de OK.16º Va para Schedules.17º Em New Sechedule coloque tambem la AutoReset.18º Depois clique em Change.19º Na primeira parte selecione Daily e deixe em Every 1 day(s).20º Depois selecione em baixo Occurs every e troque Hour(s) por Minute(s).21º Duration selecione a data atual do dia e de ok.22º Agora e so finalizar dando Aplicar e OK.23º Pronto está feito AUTORESET.24º Sempre de Start no SQL Server Agent, e deixe como auto start para facilitar.