World Servers
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[Aporte] Script AntiDUP para 97d y 99b

2 participantes

Ir abajo

[Aporte] Script AntiDUP para 97d y 99b  Empty [Aporte] Script AntiDUP para 97d y 99b

Mensaje por Wiz Khalifa 2012-01-08, 15:07

Script AntiDUP 97D/99B


Nota: Este scripts funciona al 100% ya que yo lo testie en las dos versiones que dice que es aplicable.

¿Funciona en 97d o 99b? SI!, siempre y cuando no sean files truchos que dicen ser 97d o 99b y son 1.Algo.

¿Sirve en Seasons? NO!, sirve para versiones inferiores a la versión de GameServer 99.88.


¿Borra items con serial 00000000?
NO!, los items que compres en el NPC no serán tomados en cuenta a la hora de borrar los items dupeados.


¿Banea a los Dupers? NO!, el script
funciona borrando el ITEM DUPEADO del Baúl y así evita que este se
propague y se generen bans innecesarios (como en otros antidups vía
sql), pero de todas formas se incluye una sentencia que banea a todos
los usuarios de la cuenta, basta remover los guiones que contiene al
principio para remover el modo comentario de SQL.


¿Como lo Instalo?
Fácil, basta abrir el Analizador de Consultas(Query Analizer) y pegar el código dejado a continuación.


Script AntiDUP

[quote]
use MuOnline
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DupeCheck_CDC]') and OBJECTPROPERTY(id, N'IsTrigger') = 1)
drop trigger [dbo].[DupeCheck_CDC]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DupeLog_CDC]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[DupeLog_CDC]
GO

CREATE TABLE [dbo].[DupeLog_CDC] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Cuenta] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Personaje] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ItemType] [binary] (1) ,
[ItemSerial] [binary] (4) ,
[Item] [binary] (10) ,
[FechaDelDUP] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[DupeLog_CDC] WITH NOCHECK ADD
CONSTRAINT [PK_DupeLog_CDC] PRIMARY KEY CLUSTERED
(
[ID]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[DupeLog_CDC] ADD
CONSTRAINT [DF_Table1_FechaDelDUP] DEFAULT (getdate()) FOR [FechaDelDUP]
GO


SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE TRIGGER [dbo].[DupeCheck_CDC] ON [dbo].[character]
FOR UPDATE
AS
BEGIN
IF UPDATE(inventory)
BEGIN
SET NOCOUNT ON
DECLARE
@Cuenta varchar(10),
@Personaje varchar(10),
@Inventario binary(760),
@Baul binary(1200),
@BaulItem binary(10),
@BaulTipo binary(1),
@BaulSerial binary(4),
@InventarioItem binary(10),
@InventarioTipo binary(1),
@InventarioSerial binary(4),
@InventarioPJ int,
@BaulCuenta int,
@TamañoBaul int,
@Encontrar bit
--Seleccionamos la informacion del Personaje y el Baul.
SELECT @Cuenta=i.accountid,@Personaje=i.name,@Inventario=i.inventory FROM inserted i
SELECT @Baul=items FROM Warehouse WHERE AccountID=@Cuenta

--Tamaño del Baul
SET @TamañoBaul = 1200

SET @InventarioPJ=0
SET @Encontrar=0

WHILE @InventarioPJ<76 AND @Inventario IS NOT NULL
BEGIN
SET @InventarioTipo=SUBSTRING(@Inventario,@InventarioPJ*10+1,1)
SET @InventarioSerial=SUBSTRING(@Inventario,@InventarioPJ*10+4,4)
SET @InventarioItem=SUBSTRING(@Inventario,@InventarioPJ*10+1,10)
IF @InventarioTipo<>0xFF AND @InventarioSerial<>0x00000000
BEGIN
SET @BaulCuenta=0
WHILE @BaulCuenta<120 AND @Baul IS NOT NULL
BEGIN
SET @BaulTipo=SUBSTRING(@Baul,@BaulCuenta*10+1,1)
SET @BaulSerial=SUBSTRING(@Baul,@BaulCuenta*10+4,4)
SET @BaulItem=SUBSTRING(@Baul,@BaulCuenta*10+1,10)
IF @BaulTipo=@InventarioTipo AND @BaulSerial=@InventarioSerial
BEGIN
SET @Encontrar=1
INSERT INTO DupeLog_CDC (Cuenta,Personaje,Item,ItemType,ItemSerial) VALUES (@Cuenta,@Personaje,@InventarioItem,@InventarioTipo,@InventarioSerial)
SET @Baul=SUBSTRING(@Baul,1,@BaulCuenta*10)+0xFFFFFFFFFFFFFFFFFFFF+SUBSTRING(@Baul,((@BaulCuenta+1)*10+1),@TamañoBaul-(((@BaulCuenta+1)*10)))
END
SET @BaulCuenta=@BaulCuenta+1
END
END
SET @InventarioPJ=@InventarioPJ+1
END
IF @Encontrar=1
BEGIN
--A diferencia de todos los scripts, este solamente borra el item Dupeado.
UPDATE Warehouse SET Items=@Baul WHERE (AccountID=@Cuenta)
--En esta seccion si quieres puedes agregar algun castigo (como ban de todos los personajes)
--UPDATE [Character] SET CtlCode=1 WHERE AccountID=@Cuenta

END
SET NOCOUNT OFF
END
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
select * from DupeLog_CDC

¿Como se quién dupeo?
Use MuOnline

select * from DupeLog_CDC



PD: Eso es todo gente, espero que les sirva.

Creditos:

CDCTeam - kind (Desarrollar Script)

DaRKav (Funcion para borrar items)

Desconocido (Script Base)


Saludos atte.

Wiz Khalifa
Wiz Khalifa
Moderador Global
Moderador Global

Moderador Masculino Argentina Trofeo de Bronce Estrella de Bronce : Nivel 10º No tienes ninguna Advertencia
Juan Francisco Maurizzi
Mensajes : 2511
Cash Point : 22005
Prestigio : 406
Registro : 13/11/2010
Localización : Buenos Aires
Edad : 29

http://www.world-servers.org/

Volver arriba Ir abajo

[Aporte] Script AntiDUP para 97d y 99b  Empty Re: [Aporte] Script AntiDUP para 97d y 99b

Mensaje por Lantern Green 2012-01-09, 01:08

muchas gracias lo andaba buscando
Lantern Green
Lantern Green
Miembro
Miembro

Usuario Registrado Masculino Argentina No tienes ningun Trofeo No tienes ningun Premio No tienes ninguna Advertencia
Lantern Green
Mensajes : 11
Cash Point : 23554
Prestigio : 10
Registro : 09/01/2012
Localización : Bahia Blanca
Edad : 30

Volver arriba Ir abajo

Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.