USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_TrainingCampRanking] Script Date: 8/7/2015 5:35:55 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO
ALTER PROCEDURE [dbo].[_TrainingCampRanking] AS
SELECT Ranking, Tcm.CharName, [Rank] FROM _TrainingCampHonorRank Tchr JOIN _TrainingCampMember Tcm ON Tchr.CampID = Tcm.CampID WHERE Tcm.MemberClass = 0 order by HonorPoint desc
and make it order them by graduates
*Note the guy with 162 graduates has more honor point,
just asking ..
thx for your help
There you go:
Code:
SELECT Tchr.Ranking, Tcm.CharName, Tchr.[Rank] FROM [_TrainingCampHonorRank] AS Tchr
JOIN [_TrainingCampMember] AS Tcm ON Tchr.CampID = Tcm.CampID
JOIN [_TrainingCamp] AS Tcamp ON Tchr.CampID = Tcamp.ID
WHERE Tcm.MemberClass = 0
ORDER BY Tcamp.GraduateCount DESC
SELECT Tchr.Ranking, Tcm.CharName, Tchr.[Rank] FROM [_TrainingCampHonorRank] AS Tchr
JOIN [_TrainingCampMember] AS Tcm ON Tchr.CampID = Tcm.CampID
JOIN [_TrainingCamp] AS Tcamp ON Tchr.CampID = Tcamp.ID
WHERE Tcm.MemberClass = 0
ORDER BY Tcamp.GraduateCount DESC
This is not what he needs He wants it to be visually shown in the client.
His problem is _TRAINING_CAMP_UPDATE_HONORRANK procedure is f*cked up, he is probably using a released buggy db.
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_ADDMEMBER] Script Date: 8/8/2015 8:47:13 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_ADDMEMBER]
@CampID INT,
@MemberID INT
AS
SET NOCOUNT ON
IF NOT EXISTS (SELECT [ID] FROM _TrainingCamp WITH (NOLOCK) WHERE [ID] = @CampID)
BEGIN
RETURN -1000
END
IF EXISTS (SELECT CharID FROM _TrainingCampMember WHERE CharID = @MemberID)
BEGIN
RETURN -1001
END
DECLARE @Ret INT
BEGIN TRANSACTION
DECLARE @HonorPoint INT
SET @HonorPoint = 0
SELECT @HonorPoint = HonorPoint FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @MemberID
IF @HonorPoint <> 0
BEGIN
DELETE FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -6
END
END
EXEC @Ret = _TrainingCamp_FnAddMember @CampID, @MemberID, @HonorPoint
IF (@@ERROR <> 0 OR @Ret <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN @Ret
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_CREATE] Script Date: 8/8/2015 8:47:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_CREATE]
@CreaterID INT
AS
SET NOCOUNT ON
IF EXISTS (SELECT CharID FROM _TrainingCampMember WHERE CharID = @CreaterID)
BEGIN
RETURN -1001
END
DECLARE @CampID INT
DECLARE @FoundationDate SMALLDATETIME
SET @FoundationDate = GETDATE()
BEGIN TRANSACTION
DECLARE @HonorPoint INT
SET @HonorPoint = 0
SELECT @HonorPoint = HonorPoint FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @CreaterID
IF @HonorPoint <> 0
BEGIN
DELETE FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @CreaterID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -6
END
END
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0 OR @CampID = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -7
END
DECLARE @Ret INT
EXEC @Ret = _TrainingCamp_FnAddMember @CampID, @CreaterID, @HonorPoint
IF (@@ERROR <> 0 OR @Ret <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN @Ret
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_DELCAMP] Script Date: 8/8/2015 8:48:43 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_DELCAMP]
@CampID INT,
@CreaterID INT
AS
SET NOCOUNT ON
IF NOT EXISTS (SELECT [ID] FROM _TrainingCamp WITH (NOLOCK) WHERE [ID] = @CampID)
BEGIN
RETURN -1000
END
DECLARE @MemberClass TINYINT
SELECT @MemberClass = MemberClass FROM _TrainingCampMember WITH (NOLOCK) WHERE CampID = @CampID AND CharID = @CreaterID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0 OR @MemberClass <> 0)
BEGIN
RETURN -2000
END
BEGIN TRANSACTION
-- 보조 후견인의 HonorPoint를 저장해둔다.
INSERT _TrainingCampSubMentorHonorPoint SELECT CharID, HonorPoint FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1 AND HonorPoint > 0
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2
END
DELETE FROM _TrainingCampMember WHERE CampID = @CampID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -1
END
DELETE FROM _TrainingCamp WHERE [ID] = @CampID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2
END
-- 경험치 버프 레코드 삭제
DELETE FROM _TrainingCampBuffStatus WHERE CampID = @CampID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2005
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_DELMEMBER] Script Date: 8/8/2015 8:49:20 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_DELMEMBER]
@CampID INT,
@MemberID INT,
@IsBan TINYINT
AS
SET NOCOUNT ON
IF NOT EXISTS (SELECT [ID] FROM _TrainingCamp WITH (NOLOCK) WHERE [ID] = @CampID)
BEGIN
RETURN -2000
END
DECLARE @MemberClass TINYINT
SELECT @MemberClass = MemberClass FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0 OR @MemberClass = 0)
BEGIN
RETURN -2001
END
BEGIN TRANSACTION
-- 보조 후견인이 탈퇴, 혹은 �*퇴되는 경우엔 보조 후견인의 HonorPoint를 저장해야 한다.
IF @MemberClass = 1
BEGIN
DECLARE @HonorPoint INT
SELECT @HonorPoint = HonorPoint FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2002
END
-- �*퇴된 것이 아니고, 명예포인트가 10점 이상이라면 10점을 까자.
IF (@IsBan <> 1)
BEGIN
IF (@HonorPoint >= 10)
BEGIN
SET @HonorPoint = @HonorPoint - 10
END
ELSE
BEGIN
SET @HonorPoint = 0
END
END
-- 테이블에 명예 포인트를 저장.
IF @HonorPoint > 0
BEGIN
INSERT INTO _TrainingCampSubMentorHonorPoint VALUES (@MemberID, @HonorPoint)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2
END
END
END
ELSE
BEGIN
-- 경험치 버프 레코드 삭제
DELETE FROM _TrainingCampBuffStatus WHERE CampID = @CampID AND RecipientCharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2005
END
END
DELETE FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -1
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_MEMBER_GRADUATE] Script Date: 8/8/2015 8:49:47 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_MEMBER_GRADUATE]
@CampID INT,
@MemberID INT,
@Evaluation INT
AS
SET NOCOUNT ON
IF NOT EXISTS (SELECT [ID] FROM _TrainingCamp WITH (NOLOCK) WHERE [ID] = @CampID)
BEGIN
RETURN -2000
END
DECLARE @MemberClass TINYINT
SELECT @MemberClass = MemberClass FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0 OR @MemberClass = 0)
BEGIN
RETURN -2001
END
BEGIN TRANSACTION
-- 보조 후견인의 졸업
IF @MemberClass = 1
BEGIN
-- 이넘은 평가 점수가 없다. 다만, 이 넘의 HonorPoint를 저장만 해주면 된다.
DECLARE @HonorPoint INT
SELECT @HonorPoint = HonorPoint FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2002
END
-- 테이블에 명예 포인트를 저장.
IF @HonorPoint > 0
BEGIN
INSERT INTO _TrainingCampSubMentorHonorPoint VALUES (@MemberID, @HonorPoint)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2
END
END
END
ELSE
-- 수련생의 졸업
BEGIN
-- 멤버들에게 명예 포인트를 반영해보자.
DECLARE @JoinLvl INT
SELECT @JoinLvl = CharJoinedLevel FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2003
END
-- 가입레벨이 30 이하여야 여러가지 부가 혜택이 존재한다.
IF (@JoinLvl <= 30)
BEGIN
DECLARE @MentorPoint INT
DECLARE @SubMentorPoint INT
SET @MentorPoint = (40 - @JoinLvl)
SET @SubMentorPoint = (@MentorPoint / 10)
UPDATE _TrainingCampMember SET HonorPoint = (HonorPoint + @MentorPoint) WHERE CampID = @CampID AND MemberClass = 0
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -4
END
UPDATE _TrainingCampMember SET HonorPoint = (HonorPoint + @SubMentorPoint) WHERE CampID = @CampID AND MemberClass = 1
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -5
END
-- 평가점수를 반영해보자.
UPDATE _TrainingCamp SET GraduateCount = (GraduateCount + 1),
EvaluationPoint = (EvaluationPoint + @Evaluation),
LatestEvaluationDate = GETDATE()
WHERE [ID] = @CampID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -3
END
END
ELSE
BEGIN
UPDATE _TrainingCamp SET GraduateCount = (GraduateCount + 1) WHERE [ID] = @CampID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -3
END
END
DELETE FROM _TrainingCampBuffStatus WHERE CampID = @CampID AND RecipientCharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -2005
END
END
-- 현재 캠프 멤버에�* 삭제
DELETE FROM _TrainingCampMember WHERE CampID = @CampID AND CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -1
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_REFRESHMEMBERSTATUS] Script Date: 8/8/2015 8:50:20 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
----------------------------------------------------------------------
-- 2. 누적버그 2차 - 레벨다운 문제 해결
----------------------------------------------------------------------
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_REFRESHMEMBERSTATUS]
@CampID INT,
@MemberID INT,
@RefreshTarget TINYINT,
@Data INT
AS
SET NOCOUNT ON
/*
#define TRAINING_CAMP_MEMBER_REFRESH_TARGET_PLAYSTATE (BYTE)0x01
#define TRAINING_CAMP_MEMBER_REFRESH_TARGET_LEVEL (BYTE)0x02
#define TRAINING_CAMP_MEMBER_REFRESH_TARGET_HONORPOINT (BYTE)0x03
#define TRAINING_CAMP_MEMBER_REFRESH_TARGET_POSITION (BYTE)0x04
#define TRAINING_CAMP_MEMBER_REFRESH_TARGET_CHARNAME (BYTE)0x05
#define TRAINING_CAMP_MEMBER_REFRESH_TARGET_CUR_LEVEL (BYTE)0x06
*/
IF @RefreshTarget = 2 -- MaxLevel
BEGIN
UPDATE _TrainingCampMember SET CharMaxLevel = @Data WHERE CampID = @CampID AND CharID = @MemberID
END
IF @RefreshTarget = 6 -- CurLevel
BEGIN
UPDATE _TrainingCampMember SET CharCurLevel = @Data WHERE CampID = @CampID AND CharID = @MemberID
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_STARTUP_HONOR_UPDATE_NEEDED] Script Date: 8/8/2015 8:50:43 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_STARTUP_HONOR_UPDATE_NEEDED]
AS
IF NOT EXISTS (SELECT LastUpdateDate FROM _TrainingCampHonorRankUpdateDate )
BEGIN
RETURN 1
END
DECLARE @UpdateDate DATETIME
SELECT @UpdateDate = LastUpdateDate FROM _TrainingCampHonorRankUpdateDate
IF DATEDIFF(DAY, @UpdateDate, GETDATE()) = 0
BEGIN
RETURN 0
END
ELSE
BEGIN
RETURN 1
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TRAINING_CAMP_UPDATEHONORRANK] Script Date: 8/8/2015 8:51:07 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_UPDATEHONORRANK]
AS
SET NOCOUNT ON
-- 일단 랭킹 테이블을 세팅한다.
DECLARE @Ranking INT
SET @Ranking = 1
DECLARE @CampID INT
DECLARE @Rank TINYINT
BEGIN TRANSACTION
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 50 [ID] FROM _TrainingCamp WITH (NOLOCK)
WHERE EvaluationPoint >= 10
ORDER BY EvaluationPoint DESC, LatestEvaluationDate ASC
-- 일단 전체 랭킹을 없음으로 표시하자.
UPDATE _TrainingCamp SET Rank = 5 WHERE Rank <> 5
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
DEALLOCATE RankCursor
RETURN -1
END
-- 랭킹 테이블도 초기�*하자.
UPDATE _TrainingCampHonorRank SET CampID = null, Rank = null
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
DEALLOCATE RankCursor
RETURN -1
END
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CampID
WHILE @@FETCH_STATUS = 0
BEGIN
IF @Ranking <= 5
BEGIN
SET @Rank = 1
END
ELSE IF @Ranking <= 15
BEGIN
SET @Rank = 2
END
ELSE IF @Ranking <= 30
BEGIN
SET @Rank = 3
END
ELSE
BEGIN
SET @Rank = 4
END
UPDATE _TrainingCamp SET Rank = @Rank WHERE [ID] = @CampID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
CLOSE RankCursor
DEALLOCATE RankCursor
RETURN -2
END
UPDATE _TrainingCampHonorRank SET CampID = @CampID, Rank = @Rank WHERE Ranking = @Ranking
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
CLOSE RankCursor
DEALLOCATE RankCursor
RETURN -3
END
SET @Ranking = @Ranking + 1
FETCH NEXT FROM RankCursor INTO @CampID
END
CLOSE RankCursor
DEALLOCATE RankCursor
-- 마지막으로 갱신한 날짜를 적어보자!!!
IF EXISTS (SELECT LastUpdateDate FROM _TrainingCampHonorRankUpdateDate)
BEGIN
UPDATE _TrainingCampHonorRankUpdateDate SET LastUpdateDate = GETDATE()
END
ELSE
BEGIN
INSERT INTO _TrainingCampHonorRankUpdateDate VALUES (GETDATE())
END
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -4
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TrainingCamp_FnAddMember] Script Date: 8/8/2015 8:51:30 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TrainingCamp_FnAddMember]
@CampID INT,
@MemberID INT,
@HonorPoint INT
AS
SET NOCOUNT ON
IF EXISTS (SELECT CharID FROM _TrainingCampMember WHERE CharID = @MemberID)
BEGIN
RETURN -1001
END
SELECT @MemberName = CharName16, @MemberMaxLvl = MaxLevel, @MemberCurLvl = CurLevel FROM _Char WITH (NOLOCK) WHERE CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -1
END
IF EXISTS (SELECT CharID FROM _TrainingCampMember WITH (NOLOCK) WHERE CampID = @CampID AND CharID = @MemberID)
BEGIN
RETURN -2
END
DECLARE @RefObjID INT
SELECT @RefObjID = RefObjID FROM _Char WITH (NOLOCK) WHERE CharID = @MemberID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -3
END
/* commented by novice. 아래로 옮긴다!! 2007. 07. 16.
----------------------------------------------------------------------------------------------------------
-- by novice
DECLARE @ApprenticeCount INT
DECLARE @SubMentorCount INT
-- 절대 nolock으로 하지 말자!!
SELECT @SubMentorCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1
IF ( @SubMentorCount >= 2 )
BEGIN
RETURN -11
END
-- 절대 nolock으로 하지 말자!!
SELECT @ApprenticeCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 2
IF ( @ApprenticeCount >= 5 )
BEGIN
RETURN -12
END
----------------------------------------------------------------------------------------------------------
*/
DECLARE @MemberClass TINYINT
SET @MemberClass = 0
IF @MemberMaxLvl < 40
BEGIN
SET @MemberClass = 2
END
ELSE IF @MemberMaxLvl < 60
BEGIN
SET @MemberClass = 1
END
----------------------------------------------------------------------------------------------------------
-- by novice 2007. 07. 16.
-- 가입시키는 사람의 레벨에 따라�* 클래스를 결정하는데..
-- 그냥 무작정 각 클래스에 대해 인원을 검사하면 당근 문제가 있다
-- 가입하는 사람의 클래스에 맞는 인원 검사를 시도해야 한다!!
-- 근데.. 내가 전에는 왜 저렇게 했었을까.......... ㅠ_ㅠ
----------------------------------------------------------------------------------------------------------
IF @MemberClass = 0
BEGIN
DECLARE @MentorCount INT
-- 절대 nolock으로 하지 말자!!
SELECT @MentorCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 0
IF ( @MentorCount >= 1 )
BEGIN
RETURN -14 -- ADD DB작업 실패라는 로그로 쓴다..
END
END
ELSE IF @MemberClass = 1
BEGIN
DECLARE @SubMentorCount INT
-- 절대 nolock으로 하지 말자!!
SELECT @SubMentorCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1
IF ( @SubMentorCount >= 2 )
BEGIN
RETURN -11
END
END
ELSE IF @MemberClass = 2
BEGIN
DECLARE @ApprenticeCount INT
-- 절대 nolock으로 하지 말자!!
SELECT @ApprenticeCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 2
IF ( @ApprenticeCount >= 5 )
BEGIN
RETURN -12
END
END
----------------------------------------------------------------------------------------------------------
INSERT _TrainingCampMember VALUES
(@CampID, @MemberID, @RefObjID, @MemberName, GETDATE(), @MemberClass, @MemberMaxLvl, @MemberCurLvl, @MemberMaxLvl, @HonorPoint)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -5
END
IF ( 0 < (SELECT COUNT(*) FROM _TrainingCampBuffStatus
WHERE CampID = @CampID and RecipientCharID = @MemberID) )
BEGIN
RETURN -2006
END
IF @MemberClass = 0 OR @MemberClass = 2
BEGIN
-- 경험치 누적 버프에 대한 내용
INSERT _TrainingCampBuffStatus
VALUES (@CampID, @MemberID, 0, 0, default, 0, 0)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
-- 경험치 적립 버프에 대한 내용
IF @MemberClass = 0
BEGIN
INSERT _TrainingCampBuffStatus
SELECT @CampID, @MemberID, cnt + 1, 0, '2000-01-01', 0, 3
FROM _RefDummySlot with( nolock )
WHERE cnt < 5
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
ELSE IF @MemberClass = 2
BEGIN
INSERT _TrainingCampBuffStatus
SELECT @CampID, @MemberID, 1, 0, '2000-01-01', 0, 3
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_TrainingCampRanking] Script Date: 8/8/2015 8:51:50 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[_TrainingCampRanking]
AS
SELECT Tchr.Ranking, Tcm.CharName, Tchr.[Rank] FROM [_TrainingCampHonorRank] AS Tchr
JOIN [_TrainingCampMember] AS Tcm ON Tchr.CampID = Tcm.CampID
JOIN [_TrainingCamp] AS Tcamp ON Tchr.CampID = Tcamp.ID
WHERE Tcm.MemberClass = 0
ORDER BY Tcamp.GraduateCount DESC
Honor Rank. 09/07/2013 - SRO Private Server - 6 Replies Hey guys, i have 1 simple question: how to reset the honor rank? .
thanks.
Honor Rank 05/08/2013 - SRO Private Server - 4 Replies hello
i need to know how to increase the numper of players who get rank 1 ( king )
need to make it more than 5 players
Thankss
[Help] Problem in Honor Rank 02/28/2013 - SRO Private Server - 1 Replies Hello everybody , i have big problem i can't fix it
So , I Fix honor rank but , When the server is honor updating something strange happens when I go to see Honor Rank eliminates No. 2 and leaves
only 1 , i can't told what i mean .. but i think some members can help
Thanks , hope to help me :facepalm:
[HELP] About Honor Rank 02/23/2013 - SRO Private Server - 4 Replies Hello Brother
i have problem with Honor Rank
just 5 person get Buff Honor
and the normal is 50 Person not 5 how i can solve it
now in DB
dbo._TrainingCampHonorRank
1 324 1
2 328 1
3 327 1
4 326 1
UP You rank Honor to 11 10/01/2009 - Cabal Hacks, Bots, Cheats, Exploits & Macros - 13 Replies First I'am a Brazilian and i Use translator Google for speak English
If you have any questions ask who will be trying to help.
Use any Cheat Engine that is running on the server you play.,
Classroom Video
I made a video lesson of how to increase the points, this in Portuguese, but at least had been easier to understand