En Kaliteli Sorunsuz Kareli Karesiz Sembol Rank Sistemi ( K Sembol Eklidir. )

Z Çevrimdışı

zirvarge

Yeni Cüce
22 Eylül 2018
29
0
1
Panellerinde kutulu yada kutusuz sıralamada dragon ve diğer semboller 2 defa yada her resette artarak katlanarak 2 4 defa artan sembol için panelden bunları uygulayın.Bazı arkadaslar 100 human 100 orc olmadan yani karakter kurmadan reset atıyor bu kodlarla beraber sorunsuz hale getirebilirsiniz.Ve server açıkken kodları güncelleyebilirsiniz...Res kodu oto res olarak ayarlayabilirsiniz...Sql'den yapabilirsiniz, onunda açıklamasını resimli olarak paylaşacağım...Ülke puanın ve aylın puana göre 2 ayrı prosedür vardır. Gerekli tablolarıyla birlikte veriyorum hiçbir sorun yaşamazsınız.




- 100 Kareli ve 100 Karesiz Sembol (K Sembolü Ekli Değil) -



UPDATE_MONTHLY_RANK


Bu prosedür Kareli simgeleri belirler. Kareli simgeler ülke puanına göre belirlenir.

Toplam 50 karus, 50 human olmak üzere 100 tane kareli simge verir. (K Simgesi Ekli Değildir)

Sadece normal oyuncuları sıralamaya sokar. Eğer ülke puanı aynıysa aylık puana göre sıralamayı bağlar.



[Gizli içerik]



UPDATE_LOYALTY_MONTHLY_RANK


Bu prosedür Karesiz simgeleri belirler. Karesiz simgeler aylık puana göre belirlenir.

Toplam 50 karus, 50 human olmak üzere 100 tane karesiz simge verir. (K Simgesi Ekli Değildir)

Sadece normal oyuncuları sıralamaya sokar. Eğer oyuncu kareli bir simgeye sahipse onu sıralamaya almaz.

Eğer aylık puanları eşit olan iki oyuncu varsa ülke puanlarını daha sonrada seviyesini alır ve sıralamaya bağlar.



[Gizli içerik]












- 200 Kareli ve 200 Karesiz Sembol (K Sembolü Ekli!) -



UPDATE_MONTHLY_RANK

Bu prosedür Kareli simgeleri belirler. Kareli simgeler ülke puanına göre belirlenir.

Toplam 100 karus, 100 human olmak üzere 200 tane kareli simge verir. (K Simgesi Eklidir + SOACS v32)

Sadece normal oyuncuları sıralamaya sokar. Eğer ülke puanı aynıysa aylık puana göre sıralamayı bağlar.



PHP:
[HIDE][HIDE-REPLY]if exists (select * from dbo.sysobjects where id =   object_id(N'[USER_KNIGHTS_RANK]') and OBJECTPROPERTY(id,   N'IsUserTable') = 1)

drop table [USER_KNIGHTS_RANK]

GO



/*

OrhanBenceGay / [url]www.ko-fox.com[/url]

Gerekli Tablo

*/



CREATE TABLE [USER_KNIGHTS_RANK] (

    [shIndex] [smallint] NOT NULL ,

    [strName] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

    [strElmoUserID] [varchar] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [strElmoKnightsName] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [nElmoLoyalty] [int] NULL ,

    [strKarusUserID] [varchar] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [strKarusKnightsName] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [nKarusLoyalty] [int] NULL ,

    [nMoney] [int] NOT NULL

) ON [PRIMARY]

GO



CREATE PROCEDURE UPDATE_MONTHLY_RANK

AS

/*

OrhanBenceGay / [url]www.ko-fox.com[/url]

Bu prosedür Kareli simgeleri belirler. Kareli simgeler ülke puanına göre belirlenir.

Toplam 100 karus, 100 human olmak üzere 200 tane kareli simge verir. (K Simgesi Eklidir + SOACS v32)

Sadece normal oyuncuları sıralamaya sokar. Eğer ülke puanı aynıysa aylık puana göre sıralamayı bağlar.

*/

DECLARE @strUserId char(21)

DECLARE @Loyalty int

DECLARE @Knights int

DECLARE @KnightName char(50)

DECLARE @IsValidKnight int

DECLARE @Index smallint

DECLARE @IsValidCount tinyint

DECLARE @UserCount tinyint

DECLARE @RankName varchar(30)



SELECT @IsValidCount = Count(*) FROM USER_KNIGHTS_RANK

-- Tablo uyumsuz ise boş dolduralım!

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 <= 25

        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

SELECT @UserCount = Count(*) FROM USERDATA

-- Tablo uyumsuz ise boş dolduralım!

IF @UserCount < 200

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 <= 25

        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, LoyaltyMonthly DESC, [Level]  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, LoyaltyMonthly DESC, [Level]  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



GO[/HIDE-REPLY][/HIDE]



UPDATE_LOYALTY_MONTHLY_RANK

Bu prosedür Karesiz simgeleri belirler. Karesiz simgeler aylık puana göre belirlenir.

Toplam 100 karus, 100 human olmak üzere 200 tane karesiz simge verir. (K Simgesi Eklidir + SOACS v32)

Sadece normal oyuncuları sıralamaya sokar. Eğer oyuncu kareli bir simgeye sahipse onu sıralamaya almaz.

Eğer aylık puanları eşit olan iki oyuncu varsa ülke puanlarını daha sonrada seviyesini alır ve sıralamaya bağlar.



[Gizli içerik]



- Kullanımı -


Kullanımı "EXEC" komutuyla prosedürü çalıştırmaktır. Sadece ufak bir ayrıntı var "UPDATE_MONTHLY_RANK" prosedürünü "UPDATE_LOYALTY_MONTHLY_RANK" prosedüründen önce çalıştırmalısınız şu şekilde çalıştırırsanız sorun yaşamazsınız:



Kod:
EXEC UPDATE_MONTHLY_RANK

EXEC UPDATE_LOYALTY_MONTHLY_RANK
 
E Çevrimdışı

eyrecahs11

Kayıtlı Üye
12 Temmuz 2022
38
0
6
28
Panellerinde kutulu yada kutusuz sıralamada dragon ve diğer semboller 2 defa yada her resette artarak katlanarak 2 4 defa artan sembol için panelden bunları uygulayın.Bazı arkadaslar 100 human 100 orc olmadan yani karakter kurmadan reset atıyor bu kodlarla beraber sorunsuz hale getirebilirsiniz.Ve server açıkken kodları güncelleyebilirsiniz...Res kodu oto res olarak ayarlayabilirsiniz...Sql'den yapabilirsiniz, onunda açıklamasını resimli olarak paylaşacağım...Ülke puanın ve aylın puana göre 2 ayrı prosedür vardır. Gerekli tablolarıyla birlikte veriyorum hiçbir sorun yaşamazsınız.




- 100 Kareli ve 100 Karesiz Sembol (K Sembolü Ekli Değil) -



UPDATE_MONTHLY_RANK


Bu prosedür Kareli simgeleri belirler. Kareli simgeler ülke puanına göre belirlenir.

Toplam 50 karus, 50 human olmak üzere 100 tane kareli simge verir. (K Simgesi Ekli Değildir)

Sadece normal oyuncuları sıralamaya sokar. Eğer ülke puanı aynıysa aylık puana göre sıralamayı bağlar.



[Gizli içerik]



UPDATE_LOYALTY_MONTHLY_RANK


Bu prosedür Karesiz simgeleri belirler. Karesiz simgeler aylık puana göre belirlenir.

Toplam 50 karus, 50 human olmak üzere 100 tane karesiz simge verir. (K Simgesi Ekli Değildir)

Sadece normal oyuncuları sıralamaya sokar. Eğer oyuncu kareli bir simgeye sahipse onu sıralamaya almaz.

Eğer aylık puanları eşit olan iki oyuncu varsa ülke puanlarını daha sonrada seviyesini alır ve sıralamaya bağlar.



[Gizli içerik]












- 200 Kareli ve 200 Karesiz Sembol (K Sembolü Ekli!) -



UPDATE_MONTHLY_RANK

Bu prosedür Kareli simgeleri belirler. Kareli simgeler ülke puanına göre belirlenir.

Toplam 100 karus, 100 human olmak üzere 200 tane kareli simge verir. (K Simgesi Eklidir + SOACS v32)

Sadece normal oyuncuları sıralamaya sokar. Eğer ülke puanı aynıysa aylık puana göre sıralamayı bağlar.



PHP:
[HIDE][HIDE-REPLY]if exists (select * from dbo.sysobjects where id =   object_id(N'[USER_KNIGHTS_RANK]') and OBJECTPROPERTY(id,   N'IsUserTable') = 1)

drop table [USER_KNIGHTS_RANK]

GO



/*

OrhanBenceGay / [url]www.ko-fox.com[/url]

Gerekli Tablo

*/



CREATE TABLE [USER_KNIGHTS_RANK] (

    [shIndex] [smallint] NOT NULL ,

    [strName] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

    [strElmoUserID] [varchar] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [strElmoKnightsName] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [nElmoLoyalty] [int] NULL ,

    [strKarusUserID] [varchar] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [strKarusKnightsName] [char] (21) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,

    [nKarusLoyalty] [int] NULL ,

    [nMoney] [int] NOT NULL

) ON [PRIMARY]

GO



CREATE PROCEDURE UPDATE_MONTHLY_RANK

AS

/*

OrhanBenceGay / [url]www.ko-fox.com[/url]

Bu prosedür Kareli simgeleri belirler. Kareli simgeler ülke puanına göre belirlenir.

Toplam 100 karus, 100 human olmak üzere 200 tane kareli simge verir. (K Simgesi Eklidir + SOACS v32)

Sadece normal oyuncuları sıralamaya sokar. Eğer ülke puanı aynıysa aylık puana göre sıralamayı bağlar.

*/

DECLARE @strUserId char(21)

DECLARE @Loyalty int

DECLARE @Knights int

DECLARE @KnightName char(50)

DECLARE @IsValidKnight int

DECLARE @Index smallint

DECLARE @IsValidCount tinyint

DECLARE @UserCount tinyint

DECLARE @RankName varchar(30)



SELECT @IsValidCount = Count(*) FROM USER_KNIGHTS_RANK

-- Tablo uyumsuz ise boş dolduralım!

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 <= 25

        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

SELECT @UserCount = Count(*) FROM USERDATA

-- Tablo uyumsuz ise boş dolduralım!

IF @UserCount < 200

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 <= 25

        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, LoyaltyMonthly DESC, [Level]  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, LoyaltyMonthly DESC, [Level]  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



GO[/HIDE-REPLY][/HIDE]



UPDATE_LOYALTY_MONTHLY_RANK

Bu prosedür Karesiz simgeleri belirler. Karesiz simgeler aylık puana göre belirlenir.

Toplam 100 karus, 100 human olmak üzere 200 tane karesiz simge verir. (K Simgesi Eklidir + SOACS v32)

Sadece normal oyuncuları sıralamaya sokar. Eğer oyuncu kareli bir simgeye sahipse onu sıralamaya almaz.

Eğer aylık puanları eşit olan iki oyuncu varsa ülke puanlarını daha sonrada seviyesini alır ve sıralamaya bağlar.



[Gizli içerik]



- Kullanımı -


Kullanımı "EXEC" komutuyla prosedürü çalıştırmaktır. Sadece ufak bir ayrıntı var "UPDATE_MONTHLY_RANK" prosedürünü "UPDATE_LOYALTY_MONTHLY_RANK" prosedüründen önce çalıştırmalısınız şu şekilde çalıştırırsanız sorun yaşamazsınız:



Kod:
EXEC UPDATE_MONTHLY_RANK

EXEC UPDATE_LOYALTY_MONTHLY_RANK
ty
 
Üst