OrhanBenceGay2
Kayıtlı Üye
- Katılım
- 6 Mayıs 2013
- Mesajlar
- 58
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.
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.
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.
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.
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.
- 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:
- 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.
View hidden content is available for registered users!
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.
View hidden content is available for registered users!
- 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.
View hidden content is available for registered users!
- 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