yo digo que para que el server este mejor hay que sacar a todos los duper ya que hay muchos....=S aca encontre la forma de borrar las cuentas de estas personas que van contra el reglamento
NOTA.- Debes tener SQL 2000 Instalado
1.- Inicio
2.- Todos Los Programas
3.- Microsoft SQL Server
4.- Analizador de Consultas
5.- Servidor SQL Server "(local)" Conectar Usando "Autenticacion de Window" Aceptar
6.- En la pestaña de arriba, aparecera por defecto la base de datos "Master" pinchamos sobre la pestaña y apareceran varias Bases de Datos, seleccionamos "MuOnline"
7.- En el folio en blanco que tenemos para escribir copiamos este codigo.-
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=inventor y 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 WHERE ACCOUNTID=@ACCOUNT_ID
END
--AVANSAMOS UNO EN EL CONTADOR
SET @k=@k+1
END
END
SET @j=@j+1
END
SET NOCOUNT OFF
END
8.- Pulsamos "F5" y el codigo quedará guardado.
9.- Cerramos todo, y si te dice de guardar las consultas ya es cosa tuya.
espero que te sirva darkkito
atte: ZephiroTbk