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

 

 [PAYLAŞIM]Genel NP,Aylık NP ve Clan Güncelleme Prosedürleri

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

[PAYLAŞIM]Genel NP,Aylık NP ve Clan Güncelleme Prosedürleri  Empty
MesajKonu: [PAYLAŞIM]Genel NP,Aylık NP ve Clan Güncelleme Prosedürleri    [PAYLAŞIM]Genel NP,Aylık NP ve Clan Güncelleme Prosedürleri  I_icon_minitime21/9/2010, 14:00

Konuda da Son Noktayı Koyayım Dedim Daha Önce Kullandığınız Tüm NP ve Grade Güncelleme Procedürlerini Unutun...

Yeni Prosedür ile Tüm Güncellemeler 1 Saniye Bile Sürmiyecektir ve Tamamiyle Problemsiz Güncellenecektir.

Hem Hızlı, Hem Sorunsuz [PAYLAŞIM]Genel NP,Aylık NP ve Clan Güncelleme Prosedürleri  Smile

Eski Procedürlerinizi Silin Yerine Aşağıdakileri Kullanın...

Genel NP Simgesi Güncelleme Prosedürü ;

Kod:
CREATE PROCEDURE UPDATE_USER_KNIGHTS_RANK
AS
/*
Author : AKUMA
Update : 16.10.2009 - 21:03
*/
DECLARE @strUserId char(21)
DECLARE @Loyalty int
DECLARE @Knights int
DECLARE @KnightName char(50)
DECLARE @IsValidKnight int
DECLARE @Index smallint
DECLARE @IsValidCount tinyint
DECLARE @RankName varchar(30)

SELECT @IsValidCount = Count(*) FROM USER_KNIGHTS_RANK

IF @IsValidCount < 100
BEGIN

   SET @Index = 1

   WHILE @Index < 101
   BEGIN

      IF @Index = 1
      BEGIN
         SET @RankName = 'Gold Knight'
      END
      IF @Index > 1 AND @Index <= 4
      BEGIN
         SET @RankName = 'Silver Knight'
      END
      IF @Index > 4 AND @Index <= 9
      BEGIN
         SET @RankName = 'Mirage Knight'
      END
      IF @Index > 9 AND @Index <= 10
      BEGIN
         SET @RankName = 'Shadow Knight'
      END
      IF @Index > 25 AND @Index <= 50
      BEGIN
         SET @RankName = 'Mist Knight'
      END
      IF @Index > 50 AND @Index <= 100
      BEGIN
         SET @RankName = 'Training Knight'
      END
      
      INSERT INTO USER_KNIGHTS_RANK (shIndex,strName,strElmoUserID,strElmoKnightsName,nElmoLoyalty,strKarusUserID,strKarusKnightsName,nKarusLoyalty,nMoney) VALUES (@Index,@RankName,NULL,NULL,0,NULL,NULL,0,1000000)
   
      SET @Index = @Index + 1
   END
END

SET @Index = 1
SET @strUserId = NULL
SET @Loyalty = 0
SET @Knights = 0

DECLARE RANKING_CRS CURSOR FOR

SELECT TOP 100 strUserId,Loyalty,Knights FROM USERDATA WHERE Nation = 1 AND Authority = 1 ORDER BY Loyalty DESC

OPEN RANKING_CRS
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@Loyalty,@Knights
WHILE @@FETCH_STATUS = 0 
BEGIN

SET @KnightName = NULL
SET @IsValidKnight = 0

IF @Knights <> 0
BEGIN
   SELECT @IsValidKnight = COUNT(IDName) FROM KNIGHTS WHERE IDNum = @Knights
   
    IF @IsValidKnight <> 0
    BEGIN
      SELECT @KnightName = IDName FROM KNIGHTS WHERE IDNum = @Knights
    END
END
   
    UPDATE USER_KNIGHTS_RANK SET strKarusUserID = @strUserId, strKarusKnightsName = @KnightName, nKarusLoyalty = @Loyalty WHERE shIndex = @Index
   
    SET @Index = @Index + 1
           
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@Loyalty,@Knights
END
CLOSE RANKING_CRS
DEALLOCATE RANKING_CRS

SET @Index = 1
SET @strUserId = NULL
SET @Loyalty = 0
SET @Knights = 0

DECLARE RANKING_CRS CURSOR FOR

SELECT TOP 100 strUserId,Loyalty,Knights FROM USERDATA WHERE Nation = 2 AND Authority = 1 ORDER BY Loyalty DESC

OPEN RANKING_CRS
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@Loyalty,@Knights
WHILE @@FETCH_STATUS = 0 
BEGIN

SET @KnightName = NULL
SET @IsValidKnight = 0

IF @Knights <> 0
BEGIN
   SELECT @IsValidKnight = COUNT(IDName) FROM KNIGHTS WHERE IDNum = @Knights
   
    IF @IsValidKnight <> 0
    BEGIN
      SELECT @KnightName = IDName FROM KNIGHTS WHERE IDNum = @Knights
    END
END
   
    UPDATE USER_KNIGHTS_RANK SET strElmoUserID = @strUserId, strElmoKnightsName = @KnightName, nElmoLoyalty = @Loyalty WHERE shIndex = @Index
   
    SET @Index = @Index + 1
           
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@Loyalty,@Knights
END
CLOSE RANKING_CRS
DEALLOCATE RANKING_CRS

Aylık NP Simgesi Güncelleme Prosedürü ;

Kod:
CREATE PROCEDURE UPDATE_USER_PERSONAL_RANK
AS
/*
Author : AKUMA
Update : 16.10.2009 - 21:05
*/
BEGIN TRAN

DECLARE @strUserId char(21)
DECLARE @LoyaltyMonthly int
DECLARE @Index smallint
DECLARE @IsValidCount tinyint
DECLARE @RankName varchar(30)
DECLARE @DifferenceBetweenUser int

SELECT @IsValidCount = Count(*) FROM USER_PERSONAL_RANK

IF @IsValidCount < 100
BEGIN
   
   SET @Index = 1

   WHILE @Index < 101
   BEGIN

      IF @Index = 1
      BEGIN
         SET @RankName = 'Gold Knight'
      END
      IF @Index > 1 AND @Index <= 4
      BEGIN
         SET @RankName = 'Silver Knight'
      END
      IF @Index > 4 AND @Index <= 9
      BEGIN
         SET @RankName = 'Mirage Knight'
      END
      IF @Index > 9 AND @Index <= 10
      BEGIN
         SET @RankName = 'Shadow Knight'
      END
      IF @Index > 25 AND @Index <= 50
      BEGIN
         SET @RankName = 'Mist Knight'
      END
      IF @Index > 50 AND @Index <= 100
      BEGIN
         SET @RankName = 'Training Knight'
      END
      
      INSERT INTO USER_PERSONAL_RANK (nRank,strPosition,nElmoUP,strElmoUserID,nElmoLoyaltyMonthly,nElmoCheck,nKarusUP,strKarusUserID,nKarusLoyaltyMonthly,nKarusCheck,nSalary) VALUES (@Index,@RankName,0,NULL,0,1000000,0,NULL,0,1000000,1000000)
         
      SET @Index = @Index + 1
   END
END

SET @Index = 1
SET @strUserId = NULL
SET @LoyaltyMonthly = 0

DECLARE RANKING_CRS CURSOR FOR

SELECT TOP 100 strUserId,LoyaltyMonthly FROM USERDATA WHERE Nation = 1 AND Authority = 1 ORDER BY LoyaltyMonthly DESC

OPEN RANKING_CRS
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@LoyaltyMonthly
WHILE @@FETCH_STATUS = 0 
BEGIN
   
    UPDATE USER_PERSONAL_RANK SET strKarusUserID = @strUserId, nKarusUP = @Index, nKarusLoyaltyMonthly = @LoyaltyMonthly WHERE nRank = @Index
   
    SET @DifferenceBetweenUser = 0
   
    IF @Index = 1
    BEGIN
   
      UPDATE USER_PERSONAL_RANK SET nKarusCheck = 0 WHERE nRank = @Index
   
    END
    ELSE
    BEGIN
   
      SELECT @DifferenceBetweenUser = nKarusLoyaltyMonthly FROM USER_PERSONAL_RANK WHERE nRank = @Index + 1
   
       SET @DifferenceBetweenUser = @LoyaltyMonthly - @DifferenceBetweenUser
   
       UPDATE USER_PERSONAL_RANK SET nKarusCheck = @DifferenceBetweenUser WHERE nRank = @Index + 1
      
    END
       
    SET @Index = @Index + 1
           
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@LoyaltyMonthly
END
CLOSE RANKING_CRS
DEALLOCATE RANKING_CRS

SET @Index = 1
SET @strUserId = NULL
SET @LoyaltyMonthly = 0

DECLARE RANKING_CRS CURSOR FOR

SELECT TOP 100 strUserId,LoyaltyMonthly FROM USERDATA WHERE Nation = 2 AND Authority = 1 ORDER BY LoyaltyMonthly DESC

OPEN RANKING_CRS
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@LoyaltyMonthly
WHILE @@FETCH_STATUS = 0 
BEGIN
   
    UPDATE USER_PERSONAL_RANK SET strElmoUserID = @strUserId, nElmoUP = @Index, nElmoLoyaltyMonthly = @LoyaltyMonthly WHERE nRank = @Index   
   
    SET @DifferenceBetweenUser = 0
   
    IF @Index = 1
    BEGIN
   
      UPDATE USER_PERSONAL_RANK SET nElmoCheck = 0 WHERE nRank = @Index
   
    END
    ELSE
    BEGIN
   
      SELECT @DifferenceBetweenUser = nElmoLoyaltyMonthly FROM USER_PERSONAL_RANK WHERE nRank = @Index + 1
   
       SET @DifferenceBetweenUser = @LoyaltyMonthly - @DifferenceBetweenUser
   
       UPDATE USER_PERSONAL_RANK SET nElmoCheck = @DifferenceBetweenUser WHERE nRank = @Index + 1
      
    END
   
    SET @Index = @Index + 1
           
FETCH NEXT FROM RANKING_CRS INTO @strUserId,@LoyaltyMonthly
END
CLOSE RANKING_CRS
DEALLOCATE RANKING_CRS

UPDATE USER_PERSONAL_RANK SET nSalary = REPLACE(nElmoLoyaltyMonthly - nKarusLoyaltyMonthly,'-','')

COMMIT TRAN

Clan Güncelleme Procedürü ;

Kod:
CREATE PROCEDURE UPDATE_KNIGHTS_RATING
AS
/*
Author : WepMasteR
Update : 16.10.2009 - 20:51
*/
DECLARE @RankingMAX tinyint
DECLARE @SuspendedPlayersIncluded tinyint
SET @RankingMAX = 5 -- MAX 255
SET @SuspendedPlayersIncluded = 0 -- 0 = Cezasız Oyuncular / 1 = Cezasız ve Cezalı Oyuncular (Game Master'lar Her İki Koşulda da Dahil Edilmez.)

-- KNIGHTS_RATING Tablosunu Boşaltıyoruz...
TRUNCATE TABLE KNIGHTS_RATING
-- KNIGHTS Tablosunu Güncelliyoruz...
IF @SuspendedPlayersIncluded = 0
   UPDATE KNIGHTS SET Points = (SELECT SUM(Loyalty) FROM USERDATA WHERE Authority = 1 AND Knights = IDNum)
ELSE
   UPDATE KNIGHTS SET Points = (SELECT SUM(Loyalty) FROM USERDATA WHERE Authority <> 0 AND Knights = IDNum)
-- KNIGHTS_RATING'i Dolduruyoruz...
INSERT INTO KNIGHTS_RATING SELECT IDNum, IDName, Points FROM KNIGHTS ORDER BY Points DESC
-- KNIGHTS Rankingi Ayarlıyoruz
UPDATE KNIGHTS SET Ranking = 0
UPDATE KNIGHTS SET Ranking = (SELECT nRank FROM KNIGHTS_RATING WHERE shIndex = IDNum AND nRank <= @RankingMAX) WHERE (SELECT nRank FROM KNIGHTS_RATING WHERE shIndex = IDNum AND nRank <= @RankingMAX) <= @RankingMAX
Sayfa başına dön Aşağa gitmek
 
[PAYLAŞIM]Genel NP,Aylık NP ve Clan Güncelleme Prosedürleri
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Stop ! Clan PubL!C Server [7/24' sXe][5-KSIILK CLAN GETIRENE ADMINLIK][TOP15 1.YE ADMINLIK]

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: