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 :
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.
Kod:
İyi Eğlenceler Dileğiyle...
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:
[b][color=black]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[/color][/b]
Süreli GM Vermek İçin Kullanacığınız Kod ;
KULLANIM :
- Kod:
[b][color=black] EXEC INSERT_GM_DAY 'NICK','KACGUN'ÖRNEK : EXEC INSERT_GM_DAY 'AKUMA','32'[/color][/b]
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.
Kod:
- Kod:
[b][color=black]EXEC CHECK_DAY_GMS[/color][/b]
İyi Eğlenceler Dileğiyle...