Selamlar,
Umarım İhtiyacı Olan
Arkadaşların İşini Görür,
Prosedürün Özelliklerini
Maddelendirirsek ;
1. İstediğiniz Kadar Günlük GM Verebilirsin
1,20,30,50,100 vb.
2. LOAD_USER_DATA da Olmadığı İçin Sürekli SQL
Servera Procedur
Göndermez ve Transcation Log(LDF) Dosyanızda
Dolayısıyla Şişmez yine
Buna Bağlı Olarak SQL Serverınız Yorulmaz ve
Kaynak Kullanımları Artmaz.
3. CHECK_DAYS_GMS i Sadece Günde 1 Kere
Çalıştırmanız Yeterli isteğe Göre 2 de Yapabilirsiniz Size Kalmış
Birşey...
USERDATA Tablomuzu Değiştiriyoruz...
Kod:
ALTER
TABLE USERDATA ADD GM_CreatedDate
smalldatetime NOT NULL DEFAULT 0;
ALTER TABLE USERDATA ADD GM_Day
tinyint NOT NULL DEFAULT 0;
GM'lerin Süresini Kontrol Eden Prosedürümüz ;
Kod:
CREATE
PROCEDURE CHECK_DAY_GMSAS /*Author :
AKUMA*/ BEGIN TRAN DECLARE
@strUserID char(21),@GM_CreatedDate
smalldatetime,@GM_Day tinyint
DECLARE USERDATA CURSOR FOR SELECT
strUserID,GM_CreatedDate,GM_Day
FROM USERDATA WHERE Authority = 0 OPEN
USERDATA FETCH NEXT FROM
USERDATA INTO
@strUserID,@GM_CreatedDate,@GM_Day WHILE
(@@FETCH_STATUS = 0) BEGIN
DECLARE @Calc_Date smalldatetime SET
@Calc_Date =
DATEDIFF(dd,@GM_CreatedDate,GetDate()) IF @Calc_Date
>= @GM_Day
BEGIN UPDATE USERDATA SET Authority = 1 WHERE strUserID
= @strUserID
END FETCH NEXT FROM USERDATA INTO
@strUserID,@GM_CreatedDate,@GM_Day
END CLOSE USERDATADEALLOCATE
USERDATA COMMIT TRAN
Karakteri
GM Yapan ve Süre Belirleyen, Prosedürümüz ;
Kod:
Süreli GM Vermek
İçin Kullanacığınız Kod ;
KULLANIM
:
Süresi Biten GM leri
Kontrol Etmek İçin, Günde
Sadece 1 veya İsteğe Göre Daha Fazla
Çalıştıracağınız Kod, Merak
Etmeyin Kişi Oyundada Ertesi Gün Yine
Değiştirir.
Umarım İhtiyacı Olan
Arkadaşların İşini Görür,
Prosedürün Özelliklerini
Maddelendirirsek ;
1. İstediğiniz Kadar Günlük GM Verebilirsin
1,20,30,50,100 vb.
2. LOAD_USER_DATA da Olmadığı İçin Sürekli SQL
Servera Procedur
Göndermez ve Transcation Log(LDF) Dosyanızda
Dolayısıyla Şişmez yine
Buna Bağlı Olarak SQL Serverınız Yorulmaz ve
Kaynak Kullanımları Artmaz.
3. CHECK_DAYS_GMS i Sadece Günde 1 Kere
Çalıştırmanız Yeterli isteğe Göre 2 de Yapabilirsiniz Size Kalmış
Birşey...
USERDATA Tablomuzu Değiştiriyoruz...
Kod:
ALTER
TABLE USERDATA ADD GM_CreatedDate
smalldatetime NOT NULL DEFAULT 0;
ALTER TABLE USERDATA ADD GM_Day
tinyint NOT NULL DEFAULT 0;
GM'lerin Süresini Kontrol Eden Prosedürümüz ;
Kod:
CREATE
PROCEDURE CHECK_DAY_GMSAS /*Author :
AKUMA*/ BEGIN TRAN DECLARE
@strUserID char(21),@GM_CreatedDate
smalldatetime,@GM_Day tinyint
DECLARE USERDATA CURSOR FOR SELECT
strUserID,GM_CreatedDate,GM_Day
FROM USERDATA WHERE Authority = 0 OPEN
USERDATA FETCH NEXT FROM
USERDATA INTO
@strUserID,@GM_CreatedDate,@GM_Day WHILE
(@@FETCH_STATUS = 0) BEGIN
DECLARE @Calc_Date smalldatetime SET
@Calc_Date =
DATEDIFF(dd,@GM_CreatedDate,GetDate()) IF @Calc_Date
>= @GM_Day
BEGIN UPDATE USERDATA SET Authority = 1 WHERE strUserID
= @strUserID
END FETCH NEXT FROM USERDATA INTO
@strUserID,@GM_CreatedDate,@GM_Day
END CLOSE USERDATADEALLOCATE
USERDATA COMMIT TRAN
Karakteri
GM Yapan ve Süre Belirleyen, Prosedürümüz ;
Kod:
Kod: |
CREATE PROCEDURE INSERT_GM_DAY(@strUserID char(21),@Day tinyint)AS /*Author : AKUMA*/ BEGIN TRAN DECLARE @CheckUserID tinyint SELECT @CheckUserID = COUNT(strUserID) FROM USERDATA WHERE strUserID = @strUserID IF @CheckUserID <> 0 BEGIN UPDATE USERDATA SET GM_CreatedDate = GetDate(),GM_Day = @Day,Authority = 0 WHERE strUserID = @strUserID PRINT RTRIM(LTRIM(@strUserID)) + ' Karakterine ' + RTRIM(LTRIM(STR(@Day))) + ' Günlük GM''lik Verildi.' END ELSE BEGIN PRINT RTRIM(LTRIM(@strUserID)) + ' Karakteri Veritabaninda Bulunamadi.' END COMMIT TRAN |
Süreli GM Vermek
İçin Kullanacığınız Kod ;
KULLANIM
:
EXEC INSERT_GM_DAY 'NICK','KACGUN'ÖRNEK : EXEC INSERT_GM_DAY 'AKUMA','32' |
Kontrol Etmek İçin, Günde
Sadece 1 veya İsteğe Göre Daha Fazla
Çalıştıracağınız Kod, Merak
Etmeyin Kişi Oyundada Ertesi Gün Yine
Değiştirir.
EXEC CHECK_DAY_GMS |