Metin2 Private Serverler, Metin2 Private Serverlar
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
AnasayfaLatest imagesGiriş yapKayıt Ol

 

 Süreli GM Sistemi

Aşağa gitmek 
YazarMesaj
WepMasteR
3.Seviye Üye
3.Seviye Üye
WepMasteR


Cinsiyet : Erkek
Nerden : İzmir
Yaş : 35
Mesaj Sayısı : 56
Başarı : 57000
Rep Gücü : 0

Süreli GM Sistemi  Empty
MesajKonu: Süreli GM Sistemi    Süreli GM Sistemi  I_icon_minitime20/9/2010, 17:28

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;


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


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


Kod:
KULLANIM : EXEC INSERT_GM_DAY 'NICK','KACGUN'
ÖRNEK : EXEC INSERT_GM_DAY 'WepMasteR','32'


Kod:
EXEC CHECK_DAY_GMS

Sayfa başına dön Aşağa gitmek
 
Süreli GM Sistemi
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Metin2 Private Serverler, Metin2 Private Serverlar :: Knight Private Serverler :: Prosedür / Kod Paylasımı-
Buraya geçin: