PDA

View Full Version : |Pedido| Query deletar certo item bau/personagem



Royal
11/08/2017, 05:58 PM
preciso de uma query para deletar todos os item setados por exemplo quero deletar 1 angel de todas as contas existe como ? já tentei colocar // no item.txt mais só resolve para quem loga pra os que não loga não funciona.

Reenan
12/08/2017, 02:39 PM
Existe uma do Wolfulus mais foi feita para a versão 97d+99i, se você entender um pouco sobre banco de dados você consegue modificar e coloca para outras versão.

Instalação
Só se executa isso UMA VEZ no banco de dados do servidor. Isso é só a instalação, o modo de utilizar está lá em baixo.



--
-- Tabela de items a serem removidos
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_ITEMS]') AND type in (N'U'))
DROP TABLE [dbo].[WOLF_ITEMS]
GO

CREATE TABLE WOLF_ITEMS
(
ItemSection INT,
ItemIndex INT,
ItemPrice INT DEFAULT (0)
)
GO

--
-- Função de inicialização
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_INITIALIZE]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WOLF_INITIALIZE]
GO

CREATE PROCEDURE WOLF_INITIALIZE AS
BEGIN
SET NOCOUNT ON
DELETE FROM WOLF_ITEMS
END
GO

--
-- Registro de items a serem removidos
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_REMOVE_ITEM]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WOLF_REMOVE_ITEM]
GO

CREATE PROCEDURE WOLF_REMOVE_ITEM
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
AS
BEGIN
SET NOCOUNT ON
[Only registered and activated users can see links]
END
GO

--
-- Remoção de item do bau
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_WAREHOUSE_REMOVE]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[WOLF_WAREHOUSE_REMOVE]
GO

CREATE FUNCTION WOLF_WAREHOUSE_REMOVE
(
[Only registered and activated users can see links]
[Only registered and activated users can see links]
)
RETURNS VARBINARY(1200)
AS
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
END
ELSE
BEGIN
[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
END
ELSE
BEGIN
[Only registered and activated users can see links]
END
END

[Only registered and activated users can see links]
END
GO

--
-- Processamento de warehouses
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_PROCESS_WAREHOUSE]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WOLF_PROCESS_WAREHOUSE]
GO

CREATE PROCEDURE WOLF_PROCESS_WAREHOUSE
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
AS
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]

[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END
END

[Only registered and activated users can see links]
END

[Only registered and activated users can see links]
[Only registered and activated users can see links]
END
GO

--
-- Remoção de item do inventário
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_INVENTORY_REMOVE]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[WOLF_INVENTORY_REMOVE]
GO

CREATE FUNCTION WOLF_INVENTORY_REMOVE
(
[Only registered and activated users can see links]
[Only registered and activated users can see links]
)
RETURNS VARBINARY(760)
AS
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
END
ELSE
BEGIN
[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
END
ELSE
BEGIN
[Only registered and activated users can see links]
END
END

[Only registered and activated users can see links]
END
GO

--
-- Processamento de inventário
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_PROCESS_INVENTORY]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WOLF_PROCESS_INVENTORY]
GO

CREATE PROCEDURE WOLF_PROCESS_INVENTORY
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
AS
BEGIN

[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]

[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END
END

[Only registered and activated users can see links]
END

[Only registered and activated users can see links]
[Only registered and activated users can see links]
END
GO

--
-- Execução do processo
--

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WOLF_EXECUTE]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[WOLF_EXECUTE]
GO

CREATE PROCEDURE WOLF_EXECUTE
AS
BEGIN
SET NOCOUNT ON

[Only registered and activated users can see links]
DECLARE account AS VARCHAR(10)
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]
[Only registered and activated users can see links]

-- Inventários

DECLARE inventories CURSOR FOR SELECT AccountID, Name, Inventory FROM Character

OPEN inventories
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END

[Only registered and activated users can see links]
END

CLOSE inventories
DEALLOCATE inventories

-- Warehouses

DECLARE warehouses CURSOR FOR SELECT AccountID, Items FROM warehouse

OPEN warehouses
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END

[Only registered and activated users can see links]
END

CLOSE warehouses
DEALLOCATE warehouses

-- ExtWarehouses

DECLARE extwarehouses CURSOR FOR
SELECT AccountID, Items, VaultID FROM ExWarehouse

OPEN extwarehouses
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]

[Only registered and activated users can see links]
BEGIN
[Only registered and activated users can see links]
[Only registered and activated users can see links]
END

[Only registered and activated users can see links]
END

CLOSE extwarehouses
DEALLOCATE extwarehouses
END
GO


Exemplos de uso:

1. Remove todos os Chaos Nature Bows do servidor, sem dar nenhum cash pro usuário.

4 = Seção e bows
6 = Índice do Chaos Nature Bow
0 = Cashs retornados para cada item encontrado



EXEC WOLF_INITIALIZE
EXEC WOLF_REMOVE_ITEM 4, 6, 0
EXEC WOLF_EXECUTE


2. Remove o set Dragon do servidor e devolve 10 cashs para cada Helm, Boots, Gloves, e 15 para cada Armor e Pants




EXEC WOLF_INITIALIZE
EXEC WOLF_REMOVE_ITEM 7, 1, 10
EXEC WOLF_REMOVE_ITEM 8, 1, 15
EXEC WOLF_REMOVE_ITEM 9, 1, 15
EXEC WOLF_REMOVE_ITEM 10, 1, 10
EXEC WOLF_REMOVE_ITEM 11, 1, 10
EXEC WOLF_EXECUTE


Resumindo:



EXEC WOLF_INITIALIZE
EXEC WOLF_REMOVE_ITEM <SEÇÃO_DO_ITEM>, <ÍNDICE_DO_ITEM>, <CASHS_DEVOLVIDOS>
EXEC WOLF_EXECUTE


Sempre que tiver + de um item para ser removido, por exemplo sets que são 5 itens, repetir a linha do WOLF_REMOVE_ITEM com as informações do item em específico.

Não darei suporte pro script, nem farei atualizações no mesmo
O script tem muito tempo que foi feito, e nem lembro se é a última versão
NUNCA UTILIZE O SCRIPT COM O SERVIDOR LIGADO E/OU SITE/SHOP LIGADO
Use por sua conta e risco... eu to cagando e andando se você fizer algo errado


Créditos: WoLfulus