Süreli Gm Sistemi
Egzotik Forumları

Hayatın içinden...

Giriş yap

Şifremi unuttum



Anket

Egzotik Forum'dan MemNun Musunuz?

Süreli Gm Sistemi I_vote_lcap96%Süreli Gm Sistemi I_vote_rcap 96% [ 915 ]
Süreli Gm Sistemi I_vote_lcap1%Süreli Gm Sistemi I_vote_rcap 1% [ 7 ]
Süreli Gm Sistemi I_vote_lcap1%Süreli Gm Sistemi I_vote_rcap 1% [ 6 ]
Süreli Gm Sistemi I_vote_lcap3%Süreli Gm Sistemi I_vote_rcap 3% [ 24 ]

Toplam Oylar : 952


Bağlı değilsiniz. Bağlanın ya da kayıt olun

Süreli Gm Sistemi

Aşağa gitmek  Mesaj [1 sayfadaki 1 sayfası]

1Süreli Gm Sistemi Empty Süreli Gm Sistemi Perş. 3 Eyl. - 5:05:06

nuri504

nuri504
Egzotik Forumdan Sınır Dışı Edilmiş Kullanıcı
Egzotik Forumdan Sınır Dışı Edilmiş Kullanıcı

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_GMS
AS
 
/*
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 USERDATA
DEALLOCATE USERDATA
 
COMMIT TRAN

Karakteri GM Yapan ve Süre Belirleyen, Prosedürümüz ;

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 ;

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 

Kod:
EXEC CHECK_DAY_GMS

http://blackknight.yetkinforum.com/

Sayfa başına dön  Mesaj [1 sayfadaki 1 sayfası]

Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz