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:
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'
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.
EXEC
CHECK_DAY_GMS
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'
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.
EXEC
CHECK_DAY_GMS