• HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding

Süreli Item Prosedürü [ PUS tan istediğiniz itemi süreli yapın ... ]

Kamyon Necati

Kayıtlı Üye
Katılım
20 Ocak 2015
Mesajlar
64
Zaten çoğu db de yayınlanmış durumda , fakat kimse nasıl kullanılacağını bilmiyor çünkü oyun içi pus ile olan bağlantısını kimse çözemedi ...

Bende zaten herkesin elinde var , millet uraşmasın diye bütün dosyaları açıklayıp paylaşıyorum.Prosedür , pustan çekilen ve sizin belirlediğiniz kategoriye ait itemleri 1 ay süreli hale getirir.1 Ay sonunda ise o itemi karaterin üzerinden , inn hostessden ve yan charlarından siler.

Proje 3 tablo , 5 prosedür ve 1 adet güncellenecek php dosyasından ibaret.Ben aşağıya kod olarak sadece ana kontrol ve silme prosedürünü veriyorum.Altındaki ekte ise bu prosedür dahil diğer tablo oluşturma ve gerekli item kontrol prosedürlerini bulabilirsiniz.Hepsini Query Analyzer a yapıştırın ve çalıştırın , içindeki php dosyasınıda kendi buy_result.php dosyanızla değiştirin ...

Kod:
USE [kn_online]

GO

/****** Object:  StoredProcedure [dbo].[ITEMMALL]    Script Date: 07/27/2010 14:56:33 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER PROCEDURE [dbo].[ITEMMALL]

@strAccountID nvarchar(21)

AS

-- Scripted By TrayhopeR 25.09.2009

SET NOCOUNT ON

DECLARE @strCharId char(21)

DECLARE @Bugun nvarchar(100)

DECLARE @strGun nvarchar(12)

DECLARE @strAy nvarchar(50)

DECLARE @strYil int

DECLARE @Kontrol varchar(12)

DECLARE @Var int,@Var1 int,@Var2 int,@Var3 int

DECLARE @CharID1 nvarchar(21),@CharID2 nvarchar(21),@CharID3 nvarchar(21)

DECLARE @i1 int,@i2 int,@i3 int

SET @i1 = 0

SET @i2 = 0

SET @i3 = 0

/* strGun Update */

UPDATE PUS_RESTORE SET strGun = '00' WHERE strGun = '0'

UPDATE PUS_RESTORE SET strGun = '01' WHERE strGun = '1'

UPDATE PUS_RESTORE SET strGun = '02' WHERE strGun = '2'

UPDATE PUS_RESTORE SET strGun = '03' WHERE strGun = '3'

UPDATE PUS_RESTORE SET strGun = '04' WHERE strGun = '4'

UPDATE PUS_RESTORE SET strGun = '05' WHERE strGun = '5'

UPDATE PUS_RESTORE SET strGun = '06' WHERE strGun = '6'

UPDATE PUS_RESTORE SET strGun = '07' WHERE strGun = '7'

UPDATE PUS_RESTORE SET strGun = '08' WHERE strGun = '8'

UPDATE PUS_RESTORE SET strGun = '09' WHERE strGun = '9'

/* strAy Update January */

UPDATE PUS_RESTORE SET strAy = '01' WHERE strAy = '13'

/* strAy Update */

UPDATE PUS_RESTORE SET strAy = '00' WHERE strAy = '0'

UPDATE PUS_RESTORE SET strAy = '01' WHERE strAy = '1'

UPDATE PUS_RESTORE SET strAy = '02' WHERE strAy = '2'

UPDATE PUS_RESTORE SET strAy = '03' WHERE strAy = '3'

UPDATE PUS_RESTORE SET strAy = '04' WHERE strAy = '4'

UPDATE PUS_RESTORE SET strAy = '05' WHERE strAy = '5'

UPDATE PUS_RESTORE SET strAy = '06' WHERE strAy = '6'

UPDATE PUS_RESTORE SET strAy = '07' WHERE strAy = '7'

UPDATE PUS_RESTORE SET strAy = '08' WHERE strAy = '8'

UPDATE PUS_RESTORE SET strAy = '09' WHERE strAy = '9'

SELECT @i1 = count(strCharID1) FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID AND strCharID1 is not NULL

SELECT @i2 = count(strCharID2) FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID AND strCharID2 is not NULL

SELECT @i3 = count(strCharID3) FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID AND strCharID3 is not NULL

If @i1 > 0

    BEGIN

        SELECT @CharID1 = strCharID1 FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID

END

If @i2 > 0

    BEGIN

        SELECT @CharID2 = strCharID2 FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID

   

END

If @i3 > 0

    BEGIN

        SELECT @CharID3 = strCharID3 FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID

   

END

/* 1. Karakter */

SELECT @var = count(*) FROM  PUS_RESTORE WHERE strAccountID = @strAccountID

IF NOT @Var > 0

    BEGIN

    RETURN

END

SELECT @Var1 = count(*) FROM PUS_RESTORE WHERE strAccountID = @strAccountID

If @Var1 > 0

    BEGIN

        SELECT @strGun = strgun FROM PUS_RESTORE WHERE strAccountID = @strAccountID

        SELECT @strAy = strAy  FROM PUS_RESTORE WHERE strAccountID = @strAccountID

        SELECT @strYil = cast(strYil as int)  FROM PUS_RESTORE WHERE strAccountID = @strAccountID

        SELECT @strCharId = strCharId FROM PUS_RESTORE WHERE strAccountID = @strAccountID

DECLARE @ItemNum int

DECLARE @ItemVar1 int

DECLARE Backup_Cursor CURSOR FOR

    SELECT ItemNum FROM PUS_RESTORE WHERE strAccountID = @strAccountID

    OPEN Backup_Cursor

    FETCH NEXT FROM Backup_Cursor INTO @ItemNum

WHILE @@FETCH_STATUS = 0

    BEGIN

    print @ItemNum

        SET @Kontrol = cast(@strGun as varchar)  + '/' + cast(@strAy as varchar) + '/' + cast(@strYil as varchar)

        SET @BUGUN = CONVERT(varchar(12), GETDATE(), 103)

        SELECT @ItemVar1 = count(itemkodu) FROM PUS_ITEMLERI WHERE itemkodu = @ItemNum and type = 'kalkan' and type = 'ana' and type = 'armor' and type = 'silah' and type = 'takı'

        DECLARE @ItemYok1 int

        SELECT @ItemYok1 = count(ItemNum) FROM PUS_RESTORE WHERE ItemNum = @ItemNum

        IF @Bugun = @Kontrol AND @ItemVar1 > 0 AND @ItemYok1 > 0

            BEGIN

                TRUNCATE TABLE TrayhopeR

                TRUNCATE TABLE WAREHOUSE_TrayhopeR

                EXEC ITEMMALL_FIND @CharID1

                EXEC ITEMMALL_FIND_WARE @strAccountID

                UPDATE TrayhopeR SET dwid = 0 WHERE dwid = @ItemNum

                UPDATE WAREHOUSE_TrayhopeR SET dwid = 0 WHERE dwid = @ItemNum

                DELETE FROM PUS_RESTORE WHERE strCharID = @CharID1 AND ItemNum = @ItemNum AND strGun = Left(@Bugun,2)

                EXEC ITEMMALL_ENCODE @CharID1       

                EXEC ITEMMALL_ENCODE_WARE @strAccountID

/*2. Karakter */

                TRUNCATE TABLE TrayhopeR

                TRUNCATE TABLE WAREHOUSE_TrayhopeR

                EXEC ITEMMALL_FIND @CharID2

                EXEC ITEMMALL_FIND_WARE @strAccountID

                UPDATE TrayhopeR SET dwid = 0 WHERE dwid = @ItemNum

                UPDATE WAREHOUSE_TrayhopeR SET dwid = 0 WHERE dwid = @ItemNum

                DELETE FROM PUS_RESTORE WHERE strCharID = @CharID2 AND ItemNum = @ItemNum AND strGun = Left(@Bugun,2)

                EXEC ITEMMALL_ENCODE @CharID2       

                EXEC ITEMMALL_ENCODE_WARE @strAccountID

/*3. Karakter */

                TRUNCATE TABLE TrayhopeR

                TRUNCATE TABLE WAREHOUSE_TrayhopeR

                EXEC ITEMMALL_FIND @CharID3

                EXEC ITEMMALL_FIND_WARE @strAccountID

                UPDATE TrayhopeR SET dwid = 0 WHERE dwid = @ItemNum

                UPDATE WAREHOUSE_TrayhopeR SET dwid = 0 WHERE dwid = @ItemNum

                DELETE FROM PUS_RESTORE WHERE strCharID = @CharID3 AND ItemNum = @ItemNum AND strGun = Left(@Bugun,2)

                EXEC ITEMMALL_ENCODE @CharID3       

                EXEC ITEMMALL_ENCODE_WARE @strAccountID

        END

    FETCH NEXT FROM Backup_Cursor INTO @ItemNum

END

CLOSE backup_cursor   

DEALLOCATE backup_cursor

DECLARE @ItemKodu5 int

DECLARE ISIM_CURSOR CURSOR FOR

    SELECT ItemNum FROM PUS_RESTORE

    OPEN ISIM_CURSOR

    FETCH NEXT FROM ISIM_CURSOR INTO @ItemKodu5

WHILE @@FETCH_STATUS = 0

    BEGIN

        UPDATE PUS_RESTORE SET strName = (SELECT strName FROM ITEM WHERE Num = @ItemKodu5) WHERE ItemNum = @ItemKodu5

FETCH NEXT FROM ISIM_CURSOR INTO @ItemKodu5

END

CLOSE ISIM_CURSOR

DEALLOCATE ISIM_CURSOR

END

Prosedür sadece avcı v2 oyun içi pus içinde çalışır.Ayrıca SQL 2005 veya 2008 gerektirir.2000 de prosedürü çalıştırmak istiyorsanız inventory editleme prosedürlerini (ITEMMALL_xxx ile başlayan prosedürler) MSSQL 2000 e göre düzenlemeniz gerekmekte.Programlar bölümünde Necro nasıl yapılacağını anlatmıştı.O işlemin tam tersi gibi birşey yapacaksınız.O prosedürlerin normal inventory editleme prosedürlerinden farkı isimlerinin değişik olması ve editlemeden sonra sonuçları göstermemesidir.Anlayanlar umarı başarılı olurlar 🙂

Kurulum yazısı zaten içinde var.PUS_RESTORE tablosundan kimin ne item aldığını görebilirsiniz.O tabloda bulunan tarihler itemin silinme tarihidir.Yani istediğiniz itemin silinme tarihini tablodan düzelterek kısaltıp uzatabilirsiniz :-:

Dosya :

Kolay gelsin :^^:
 
Geri
Üst