Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Tutorial] Banimento automático nos Duppers

Ir para baixo

[Tutorial] Banimento automático nos Duppers Empty [Tutorial] Banimento automático nos Duppers

Mensagem  Convidad Qua Jan 27, 2010 12:41 am

Bom vou tentar ir direto ao ponto.
Oque irei postar para vocês eu uso em meu Servidor 97d+99i
É uma query que da banimento automático , sem zica , sem dor di cabeça ...
Eu garanto a vocês que é 100% funcional , e eu assino em baixo ... uso isso a + de 1 ano...

Vamos ao que interessa:

Oque essa query faz?
Ela da banimento automático e imediato no usuário que dupar.

Mas tem risco de estragar meu servidor?
Eu uso a mais de 1 ano em meu servidor '97d+99i' e "NUNCA" tive problemas,
eu "NUNCA" testei em outras versões , somente na 97+99,
Pois então aconselho fazerem backup antes de usar em outras versões!!!

Como funciona?
O player dupa qualquer coisa ( item,joia,box,etc ),
imediatamente todos char dele será Banido,
o Bau será trancado com uma senha que nem nós sabemos!!
si ele tentar mecher no item dupado , levará disconnect em 5 segundos...

------------------------Vamos lá------------------------

Abra o Enterprise Manager,Selecione DB MuOnline,Clique em Tables...

Abre a table "Warehouse"
e crie as seguintes do colunas:

Column Name - LASTPW
Data Type - tinyint
Lenght - 1
Allow Nulls - Marcado

Agora abre a table "Memb_Info"
e crie as seguintes do colunas:

Column Name - Bloc_by
Data Type - varchar
Lenght - 50
Allow Nulls - Marcado

Column Name - Bloc_reason
Data Type - varchar
Lenght - 50
Allow Nulls - Marcado

------------------------Após ter criado vamos a query------------------------

Abre seu query analizer , selecione a DB MuOnline , insira o código e execute!
OBS: "EXECUTE SOMENTE UMA VEZ ESSE CÓDIGO" ...

Código:

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DupesDetected]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[DupesDetected]
GO
CREATE TABLE [dbo].[DupesDetected] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[AccountID] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Name] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ITEM_TYPE] [binary] (1) NOT NULL ,
[ITEM_SERIAL] [binary] (4) NOT NULL ,
[INV_POSITION] [smallint] NOT NULL ,
[WH_POSITION] [smallint] NOT NULL ,
[TIMESTAMP] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[DupesDetected] WITH NOCHECK ADD
CONSTRAINT [PK_DupesDetected] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[DupesDetected] ADD
CONSTRAINT [DF_Table1_TIMESTAMP] DEFAULT (getdate()) FOR [TIMESTAMP]
GO
CREATE TRIGGER [dbo].[DUPEFINDER] ON [dbo].[character]
FOR UPDATE
AS
IF UPDATE(inventory)
BEGIN
SET NOCOUNT ON
DECLARE
@CHARNAME varchar(10),
@ACCOUNT_ID varchar(10),
@INV binary(760),
@ITEM_TYPE binary(1),
@ITEM_SERIAL binary(4),
@WAREHOUSE binary(1200),
@j smallint,
@k smallint,
@PWOLD smallint,
@PWNEW smallint
--tomamos el inventario y los datos del usuario
SELECT @ACCOUNT_ID=accountid,@CHARNAME=Name,@INV=inventory FROM inserted
SET @j=0
--item por item
WHILE (@j<76) AND (@INV IS NOT NULL)
BEGIN
--tomamos el tipo y el serial
SET @ITEM_TYPE=SUBSTRING(@INV,@j*10+1,1)
SET @ITEM_SERIAL=SUBSTRING(@INV,@j*10+4,4)
--si el tipo es valido y el serial no es "0"
IF @ITEM_TYPE<>0xFF AND @ITEM_SERIAL<>0x00000000
BEGIN
--SI NO TENEMOS EL WAREHOUSE DATA LO OBTENEMOS (ESTO SUCEDERA UNA SOLA VEZ)
IF (@WAREHOUSE IS NULL)
BEGIN
SELECT @WAREHOUSE=items, @PWOLD=pw FROM warehouse WHERE accountid=@ACCOUNT_ID
END
--POR CADA SLOT EN EL WAREHOUSE
SET @k=0
WHILE (@k<120) AND (@WAREHOUSE IS NOT NULL)
BEGIN
--SI EL TIPO Y SERIAL COINCIDEN
IF (SUBSTRING(@WAREHOUSE,@k*10+1,1)=@ITEM_TYPE) AND (SUBSTRING(@WAREHOUSE,@k*10+4,4)=@ITEM_SERIAL)
BEGIN
--GUARDAMOS EL ITEM EN EL LOG
INSERT INTO DupesDetected (AccountID,Name,ITEM_TYPE,ITEM_SERIAL,INV_POSITION,WH_POSITION)
VALUES (@ACCOUNT_ID,@CHARNAME,@ITEM_TYPE,@ITEM_SERIAL,@j,@k)
--BLOQUEAMOS EL VAULT
--OBTENEMOS EL NUEVO LOCK CODE
SET @PWNEW = DATEPART(YYYY,GETDATE()) + DATEPART(MM,GETDATE()) + DATEPART(D,GETDATE())
--BLOQUEAMOS EL VAULT
UPDATE WAREHOUSE SET PW=@PWNEW, LASTPW=@PWOLD WHERE (ACCOUNTID=@ACCOUNT_ID)
--BANEAMOS TODOS LOS CHARS DE LA CUENTA
UPDATE [CHARACTER] SET CTLCODE=1, Bloc_by='Ghost-Fire', bloc_reason='DUPPER' WHERE ACCOUNTID=@ACCOUNT_ID
END
--AVANSAMOS UNO EN EL CONTADOR
SET @k=@k+1
END
END
SET @j=@j+1
END
SET NOCOUNT ON
END

-----Créditos-----
MyNameIsNiNe
-------------------

Muito util para server season 4, como um 1.05d ou 1.05t
Anonymous
Convidad
Convidado


Ir para o topo Ir para baixo

[Tutorial] Banimento automático nos Duppers Empty Re: [Tutorial] Banimento automático nos Duppers

Mensagem  Convidad Sáb Jan 30, 2010 2:45 am

-

Ótimo , Continue colaborando .
Anonymous
Convidad
Convidado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos