|
You last visited: Today at 08:39
Advertisement
How this query works exactly?
Discussion on How this query works exactly? within the SRO Private Server forum part of the Silkroad Online category.
08/20/2020, 08:03
|
#1
|
elite*gold: 0
Join Date: Mar 2020
Posts: 303
Received Thanks: 20
|
How this query works exactly?
Im looking for enable weekly job system, but i realize its too hard to find. Anyway i found this query for enable something about similar system for job ranking. Would you guys explain how these querys works, what they do exactly? And if they have errors?
Code:
TRAINING_CAMP_UPDATEHONORRANK
USE SRO_VT_SHARD
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_UPDATEHONORRANK]
AS
Declare @CampID int
Declare @CharID int
declare @index int
declare [MENTION=955363]rank[/MENTION] int
declare @ID int
SET @index =0
SET @ID =0
update _TrainingCampHonorRank set Rank =null,CampID =null
/* --------------------Trader------------------*/
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 30 CharID FROM _CharTrijob WITH (NOLOCK)
WHERE JobType =1 and Level >=5
ORDER BY Exp DESC, Level desc
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CharID
WHILE @@FETCH_STATUS = 0
BEGIN
select @CampID = CampID from _TrainingCampMember where CharID =@CharID
IF (@@ROWCOUNT > 0)
BEGIN
set @ID = @ID +1
set @index = @index +1
IF (@index between 1 and 5)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 1
END
ELSE IF(@index between 6 and 10)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 2
END
ELSE IF(@index between 11 and 20)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 3
END
ELSE IF(@index between 21 and 30)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 4
END
update _TrainingCamp set Rank= [MENTION=955363]rank[/MENTION] where ID =@CampID
update _TrainingCampHonorRank set Rank [MENTION=955363]rank[/MENTION],CampID =@CampID where Ranking = @ID
END
FETCH NEXT FROM RankCursor INTO @CharID
END
CLOSE RankCursor
DEALLOCATE RankCursor
SET @index =0
set @CharID =0
set @CampID =0
/* --------------------Thief------------------*/
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 30 CharID FROM _CharTrijob WITH (NOLOCK)
WHERE JobType =2 and Level >=5
ORDER BY Exp DESC, Level desc
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CharID
WHILE @@FETCH_STATUS = 0
BEGIN
select @CampID = CampID from _TrainingCampMember where CharID =@CharID
IF (@@ROWCOUNT > 0)
BEGIN
set @ID = @ID +1
set @index = @index +1
IF (@index between 1 and 5)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 1
END
ELSE IF(@index between 6 and 10)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 2
END
ELSE IF(@index between 11 and 20)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 3
END
ELSE IF(@index between 21 and 30)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 4
END
update _TrainingCamp set Rank= [MENTION=955363]rank[/MENTION] where ID =@CampID
update _TrainingCampHonorRank set Rank [MENTION=955363]rank[/MENTION],CampID =@CampID where Ranking = @ID
END
FETCH NEXT FROM RankCursor INTO @CharID
END
CLOSE RankCursor
DEALLOCATE RankCursor
SET @index =0
set @CharID =0
set @CampID =0
/* --------------------Hunter------------------*/
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 30 CharID FROM _CharTrijob WITH (NOLOCK)
WHERE JobType =3 and Level >=5
ORDER BY Exp DESC, Level desc
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CharID
WHILE @@FETCH_STATUS = 0
BEGIN
select @CampID = CampID from _TrainingCampMember where CharID =@CharID
IF (@@ROWCOUNT > 0)
BEGIN
set @ID = @ID +1
set @index = @index +1
IF (@index between 1 and 5)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 1
END
ELSE IF(@index between 6 and 10)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 2
END
ELSE IF(@index between 11 and 20)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 3
END
ELSE IF(@index between 21 and 30)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 4
END
update _TrainingCamp set Rank= [MENTION=955363]rank[/MENTION] where ID =@CampID
update _TrainingCampHonorRank set Rank [MENTION=955363]rank[/MENTION],CampID =@CampID where Ranking = @ID
END
FETCH NEXT FROM RankCursor INTO @CharID
END
CLOSE RankCursor
DEALLOCATE RankCursor
RETURN 1
Code:
TrainingCamp_FnAddMember
كود:
USE SRO_VT_SHARD
GO
/****** Object: StoredProcedure [dbo].[_TrainingCamp_FnAddMember] Script Date: 21.02.2016 01:07:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TrainingCamp_FnAddMember]
@CampID INT,
[MENTION=283932]member[/MENTION]ID INT,
@HonorPoint INT
AS
SET NOCOUNT ON
IF EXISTS (SELECT CharID FROM _TrainingCampMember WHERE CharID = [MENTION=283932]member[/MENTION]ID)
BEGIN
RETURN -1001
END
DECLARE [MENTION=283932]member[/MENTION]Name VARCHAR(64)
DECLARE [MENTION=283932]member[/MENTION]MaxLvl TINYINT
DECLARE [MENTION=283932]member[/MENTION]CurLvl TINYINT
DECLARE @Jobtype TINYINT
Declare [MENTION=622889]string[/MENTION] NVARCHAR(50)
select @Jobtype = JobType from _CharTrijob where CharID [MENTION=283932]member[/MENTION]ID
if(@Jobtype =1)
begin
set [MENTION=622889]string[/MENTION] ='*(Trader)'
end
else if (@Jobtype =2)
begin
set [MENTION=622889]string[/MENTION] ='*(Thief)'
end
else if(@Jobtype =3)
begin
set [MENTION=622889]string[/MENTION] ='*(Hunter)'
end
SELECT [MENTION=283932]member[/MENTION]Name = CharName16 [MENTION=622889]string[/MENTION], [MENTION=283932]member[/MENTION]MaxLvl = MaxLevel, [MENTION=283932]member[/MENTION]CurLvl = CurLevel FROM _Char WITH (NOLOCK) WHERE CharID = [MENTION=283932]member[/MENTION]ID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -1
END
IF EXISTS (SELECT CharID FROM _TrainingCampMember WITH (NOLOCK) WHERE CampID = @CampID AND CharID = [MENTION=283932]member[/MENTION]ID)
BEGIN
RETURN -2
END
DECLARE [MENTION=975074]Refo[/MENTION]bjID INT
SELECT [MENTION=975074]Refo[/MENTION]bjID = RefObjID FROM _Char WITH (NOLOCK) WHERE CharID = [MENTION=283932]member[/MENTION]ID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -3
END
/* commented by novice. ¾Æ·¡·Î ¿Å±ä´Ù!! 2007. 07. 16.
----------------------------------------------------------------------------------------------------------
-- by novice
DECLARE @ApprenticeCount INT
DECLARE [MENTION=2619528]submen[/MENTION]torCount INT
-- Àý´ë nolockÀ¸·Î ÇÏÁö ¸»ÀÚ!!
SELECT [MENTION=2619528]submen[/MENTION]torCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1
IF ( [MENTION=2619528]submen[/MENTION]torCount >= 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 [MENTION=283932]member[/MENTION]Class TINYINT
SET [MENTION=283932]member[/MENTION]Class = 0
----------------------------------------------------------------------------------------------------------
-- by novice 2007. 07. 16.
-- °¡ÀÔ½ÃŰ´Â »ç¶÷ÀÇ ·¹º§¿¡ µû¶ó¼* Ŭ·¡½º¸¦ °áÁ¤Çϴµ¥..
-- ±×³É ¹«ÀÛÁ¤ °¢ Ŭ·¡½º¿¡ ´ëÇØ ÀοøÀ» °Ë»çÇÏ¸é ´ç±Ù ¹®Á¦°¡ ÀÖ´Ù
-- °¡ÀÔÇÏ´Â »ç¶÷ÀÇ Å¬·¡½º¿¡ ¸Â´Â Àοø °Ë»ç¸¦ ½ÃµµÇØ¾ß ÇÑ´Ù!!
-- ±Ùµ¥.. ³»°¡ Àü¿¡´Â ¿Ö Àú·¸°Ô Çß¾úÀ»±î.......... ¤Ð_¤Ð
----------------------------------------------------------------------------------------------------------
IF [MENTION=283932]member[/MENTION]Class = 0
BEGIN
DECLARE [MENTION=387241]Mentor[/MENTION]Count INT
-- Àý´ë nolockÀ¸·Î ÇÏÁö ¸»ÀÚ!!
SELECT [MENTION=387241]Mentor[/MENTION]Count = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 0
IF ( [MENTION=387241]Mentor[/MENTION]Count >= 1 )
BEGIN
RETURN -14 -- ADD DBÀÛ¾÷ ½ÇÆÐ¶ó´Â ·Î±×·Î ¾´´Ù..
END
END
ELSE IF [MENTION=283932]member[/MENTION]Class = 1
BEGIN
DECLARE [MENTION=2619528]submen[/MENTION]torCount INT
-- Àý´ë nolockÀ¸·Î ÇÏÁö ¸»ÀÚ!!
SELECT [MENTION=2619528]submen[/MENTION]torCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1
IF ( [MENTION=2619528]submen[/MENTION]torCount >= 2 )
BEGIN
RETURN -11
END
END
ELSE IF [MENTION=283932]member[/MENTION]Class = 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, [MENTION=283932]member[/MENTION]ID, [MENTION=975074]Refo[/MENTION]bjID, [MENTION=283932]member[/MENTION]Name, GETDATE(), [MENTION=283932]member[/MENTION]Class, [MENTION=283932]member[/MENTION]MaxLvl, [MENTION=283932]member[/MENTION]CurLvl, [MENTION=283932]member[/MENTION]MaxLvl, @HonorPoint)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -5
END
IF ( 0 < (SELECT COUNT(*) FROM _TrainingCampBuffStatus
WHERE CampID = @CampID and RecipientCharID = [MENTION=283932]member[/MENTION]ID) )
BEGIN
RETURN -2006
END
IF [MENTION=283932]member[/MENTION]Class = 0 OR [MENTION=283932]member[/MENTION]Class = 2
BEGIN
-- °æÇèÄ¡ ´©Àû ¹öÇÁ¿¡ ´ëÇÑ ³»¿ë
INSERT _TrainingCampBuffStatus
VALUES (@CampID, [MENTION=283932]member[/MENTION]ID, 0, 0, default, 0, 0)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
-- °æÇèÄ¡ Àû¸³ ¹öÇÁ¿¡ ´ëÇÑ ³»¿ë
IF [MENTION=283932]member[/MENTION]Class = 0
BEGIN
INSERT _TrainingCampBuffStatus
SELECT @CampID, [MENTION=283932]member[/MENTION]ID, 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 [MENTION=283932]member[/MENTION]Class = 2
BEGIN
INSERT _TrainingCampBuffStatus
SELECT @CampID, [MENTION=283932]member[/MENTION]ID, 1, 0, '2000-01-01', 0, 3
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
SET NOCOUNT OFF
RETURN 1
|
|
|
08/20/2020, 09:12
|
#2
|
elite*gold: 0
Join Date: Apr 2016
Posts: 201
Received Thanks: 47
|
Quote:
Originally Posted by Beba Army
Im looking for enable weekly job system, but i realize its too hard to find. Anyway i found this query for enable something about similar system for job ranking. Would you guys explain how these querys works, what they do exactly? And if they have errors?
Code:
TRAINING_CAMP_UPDATEHONORRANK
USE SRO_VT_SHARD
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TRAINING_CAMP_UPDATEHONORRANK]
AS
Declare @CampID int
Declare @CharID int
declare @index int
declare [MENTION=955363]rank[/MENTION] int
declare @ID int
SET @index =0
SET @ID =0
update _TrainingCampHonorRank set Rank =null,CampID =null
/* --------------------Trader------------------*/
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 30 CharID FROM _CharTrijob WITH (NOLOCK)
WHERE JobType =1 and Level >=5
ORDER BY Exp DESC, Level desc
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CharID
WHILE @@FETCH_STATUS = 0
BEGIN
select @CampID = CampID from _TrainingCampMember where CharID =@CharID
IF (@@ROWCOUNT > 0)
BEGIN
set @ID = @ID +1
set @index = @index +1
IF (@index between 1 and 5)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 1
END
ELSE IF(@index between 6 and 10)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 2
END
ELSE IF(@index between 11 and 20)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 3
END
ELSE IF(@index between 21 and 30)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 4
END
update _TrainingCamp set Rank= [MENTION=955363]rank[/MENTION] where ID =@CampID
update _TrainingCampHonorRank set Rank [MENTION=955363]rank[/MENTION],CampID =@CampID where Ranking = @ID
END
FETCH NEXT FROM RankCursor INTO @CharID
END
CLOSE RankCursor
DEALLOCATE RankCursor
SET @index =0
set @CharID =0
set @CampID =0
/* --------------------Thief------------------*/
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 30 CharID FROM _CharTrijob WITH (NOLOCK)
WHERE JobType =2 and Level >=5
ORDER BY Exp DESC, Level desc
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CharID
WHILE @@FETCH_STATUS = 0
BEGIN
select @CampID = CampID from _TrainingCampMember where CharID =@CharID
IF (@@ROWCOUNT > 0)
BEGIN
set @ID = @ID +1
set @index = @index +1
IF (@index between 1 and 5)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 1
END
ELSE IF(@index between 6 and 10)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 2
END
ELSE IF(@index between 11 and 20)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 3
END
ELSE IF(@index between 21 and 30)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 4
END
update _TrainingCamp set Rank= [MENTION=955363]rank[/MENTION] where ID =@CampID
update _TrainingCampHonorRank set Rank [MENTION=955363]rank[/MENTION],CampID =@CampID where Ranking = @ID
END
FETCH NEXT FROM RankCursor INTO @CharID
END
CLOSE RankCursor
DEALLOCATE RankCursor
SET @index =0
set @CharID =0
set @CampID =0
/* --------------------Hunter------------------*/
DECLARE RankCursor CURSOR FAST_FORWARD FOR
SELECT TOP 30 CharID FROM _CharTrijob WITH (NOLOCK)
WHERE JobType =3 and Level >=5
ORDER BY Exp DESC, Level desc
OPEN RankCursor
FETCH NEXT FROM RankCursor INTO @CharID
WHILE @@FETCH_STATUS = 0
BEGIN
select @CampID = CampID from _TrainingCampMember where CharID =@CharID
IF (@@ROWCOUNT > 0)
BEGIN
set @ID = @ID +1
set @index = @index +1
IF (@index between 1 and 5)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 1
END
ELSE IF(@index between 6 and 10)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 2
END
ELSE IF(@index between 11 and 20)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 3
END
ELSE IF(@index between 21 and 30)
BEGIN
SET [MENTION=955363]rank[/MENTION] = 4
END
update _TrainingCamp set Rank= [MENTION=955363]rank[/MENTION] where ID =@CampID
update _TrainingCampHonorRank set Rank [MENTION=955363]rank[/MENTION],CampID =@CampID where Ranking = @ID
END
FETCH NEXT FROM RankCursor INTO @CharID
END
CLOSE RankCursor
DEALLOCATE RankCursor
RETURN 1
Code:
TrainingCamp_FnAddMember
كود:
USE SRO_VT_SHARD
GO
/****** Object: StoredProcedure [dbo].[_TrainingCamp_FnAddMember] Script Date: 21.02.2016 01:07:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_TrainingCamp_FnAddMember]
@CampID INT,
[MENTION=283932]member[/MENTION]ID INT,
@HonorPoint INT
AS
SET NOCOUNT ON
IF EXISTS (SELECT CharID FROM _TrainingCampMember WHERE CharID = [MENTION=283932]member[/MENTION]ID)
BEGIN
RETURN -1001
END
DECLARE [MENTION=283932]member[/MENTION]Name VARCHAR(64)
DECLARE [MENTION=283932]member[/MENTION]MaxLvl TINYINT
DECLARE [MENTION=283932]member[/MENTION]CurLvl TINYINT
DECLARE @Jobtype TINYINT
Declare [MENTION=622889]string[/MENTION] NVARCHAR(50)
select @Jobtype = JobType from _CharTrijob where CharID [MENTION=283932]member[/MENTION]ID
if(@Jobtype =1)
begin
set [MENTION=622889]string[/MENTION] ='*(Trader)'
end
else if (@Jobtype =2)
begin
set [MENTION=622889]string[/MENTION] ='*(Thief)'
end
else if(@Jobtype =3)
begin
set [MENTION=622889]string[/MENTION] ='*(Hunter)'
end
SELECT [MENTION=283932]member[/MENTION]Name = CharName16 [MENTION=622889]string[/MENTION], [MENTION=283932]member[/MENTION]MaxLvl = MaxLevel, [MENTION=283932]member[/MENTION]CurLvl = CurLevel FROM _Char WITH (NOLOCK) WHERE CharID = [MENTION=283932]member[/MENTION]ID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -1
END
IF EXISTS (SELECT CharID FROM _TrainingCampMember WITH (NOLOCK) WHERE CampID = @CampID AND CharID = [MENTION=283932]member[/MENTION]ID)
BEGIN
RETURN -2
END
DECLARE [MENTION=975074]Refo[/MENTION]bjID INT
SELECT [MENTION=975074]Refo[/MENTION]bjID = RefObjID FROM _Char WITH (NOLOCK) WHERE CharID = [MENTION=283932]member[/MENTION]ID
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -3
END
/* commented by novice. ¾Æ·¡·Î ¿Å±ä´Ù!! 2007. 07. 16.
----------------------------------------------------------------------------------------------------------
-- by novice
DECLARE @ApprenticeCount INT
DECLARE [MENTION=2619528]submen[/MENTION]torCount INT
-- Àý´ë nolockÀ¸·Î ÇÏÁö ¸»ÀÚ!!
SELECT [MENTION=2619528]submen[/MENTION]torCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1
IF ( [MENTION=2619528]submen[/MENTION]torCount >= 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 [MENTION=283932]member[/MENTION]Class TINYINT
SET [MENTION=283932]member[/MENTION]Class = 0
----------------------------------------------------------------------------------------------------------
-- by novice 2007. 07. 16.
-- °¡ÀÔ½ÃŰ´Â »ç¶÷ÀÇ ·¹º§¿¡ µû¶ó¼* Ŭ·¡½º¸¦ °áÁ¤Çϴµ¥..
-- ±×³É ¹«ÀÛÁ¤ °¢ Ŭ·¡½º¿¡ ´ëÇØ ÀοøÀ» °Ë»çÇÏ¸é ´ç±Ù ¹®Á¦°¡ ÀÖ´Ù
-- °¡ÀÔÇÏ´Â »ç¶÷ÀÇ Å¬·¡½º¿¡ ¸Â´Â Àοø °Ë»ç¸¦ ½ÃµµÇØ¾ß ÇÑ´Ù!!
-- ±Ùµ¥.. ³»°¡ Àü¿¡´Â ¿Ö Àú·¸°Ô Çß¾úÀ»±î.......... ¤Ð_¤Ð
----------------------------------------------------------------------------------------------------------
IF [MENTION=283932]member[/MENTION]Class = 0
BEGIN
DECLARE [MENTION=387241]Mentor[/MENTION]Count INT
-- Àý´ë nolockÀ¸·Î ÇÏÁö ¸»ÀÚ!!
SELECT [MENTION=387241]Mentor[/MENTION]Count = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 0
IF ( [MENTION=387241]Mentor[/MENTION]Count >= 1 )
BEGIN
RETURN -14 -- ADD DBÀÛ¾÷ ½ÇÆÐ¶ó´Â ·Î±×·Î ¾´´Ù..
END
END
ELSE IF [MENTION=283932]member[/MENTION]Class = 1
BEGIN
DECLARE [MENTION=2619528]submen[/MENTION]torCount INT
-- Àý´ë nolockÀ¸·Î ÇÏÁö ¸»ÀÚ!!
SELECT [MENTION=2619528]submen[/MENTION]torCount = COUNT(*) FROM _TrainingCampMember WHERE CampID = @CampID AND MemberClass = 1
IF ( [MENTION=2619528]submen[/MENTION]torCount >= 2 )
BEGIN
RETURN -11
END
END
ELSE IF [MENTION=283932]member[/MENTION]Class = 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, [MENTION=283932]member[/MENTION]ID, [MENTION=975074]Refo[/MENTION]bjID, [MENTION=283932]member[/MENTION]Name, GETDATE(), [MENTION=283932]member[/MENTION]Class, [MENTION=283932]member[/MENTION]MaxLvl, [MENTION=283932]member[/MENTION]CurLvl, [MENTION=283932]member[/MENTION]MaxLvl, @HonorPoint)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -5
END
IF ( 0 < (SELECT COUNT(*) FROM _TrainingCampBuffStatus
WHERE CampID = @CampID and RecipientCharID = [MENTION=283932]member[/MENTION]ID) )
BEGIN
RETURN -2006
END
IF [MENTION=283932]member[/MENTION]Class = 0 OR [MENTION=283932]member[/MENTION]Class = 2
BEGIN
-- °æÇèÄ¡ ´©Àû ¹öÇÁ¿¡ ´ëÇÑ ³»¿ë
INSERT _TrainingCampBuffStatus
VALUES (@CampID, [MENTION=283932]member[/MENTION]ID, 0, 0, default, 0, 0)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
-- °æÇèÄ¡ Àû¸³ ¹öÇÁ¿¡ ´ëÇÑ ³»¿ë
IF [MENTION=283932]member[/MENTION]Class = 0
BEGIN
INSERT _TrainingCampBuffStatus
SELECT @CampID, [MENTION=283932]member[/MENTION]ID, 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 [MENTION=283932]member[/MENTION]Class = 2
BEGIN
INSERT _TrainingCampBuffStatus
SELECT @CampID, [MENTION=283932]member[/MENTION]ID, 1, 0, '2000-01-01', 0, 3
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
RETURN -2005
END
END
SET NOCOUNT OFF
RETURN 1
|
Please remove mention thingys. Btw you just need to create a trigger on a procedure which gives items to players. Trigger it every sunday for ex. Google is ur friend if wanna know more about t-sql
|
|
|
08/20/2020, 09:54
|
#3
|
elite*gold: 0
Join Date: Mar 2020
Posts: 303
Received Thanks: 20
|
Quote:
Originally Posted by Piskota
Please remove mention thingys. Btw you just need to create a trigger on a procedure which gives items to players. Trigger it every sunday for ex. Google is ur friend if wanna know more about t-sql 
|
I was thinking all the time that psro sql development its a knowledge with no comparison with all other sql knowledges on internet, am i wrong?. And about ur answer i only need if its complete or need more things. Ty.
|
|
|
 |
Similar Threads
|
[Release][Query] Query _InvCOS Items WITH _Char Connection
12/29/2015 - SRO PServer Guides & Releases - 1 Replies
Ok, so i needed to write this query for a procedure im working on and not many people know how to connect the pet inventory table to the character table.... so this query will explain how its done...
im not going to explain every single detail, like how there is no charcos when pet is despawned / dead... but yea you can probably figure that all out from this query...
The code...
USE
SELECT pet_invo.
,pet_invo. PetSlot
|
[Suche]Query für "Alteklinge, Reichsklinge" &' Stichdolche NUR QUERY!
08/18/2010 - Metin2 Private Server - 1 Replies
Ich weiß ich werd nervig aber ich suche die Query's
für Alteklinge, Reichsklinge &' Strichdolche
Why?
Naya, weil ich in der DB i-wie nur Drachenmaulglocke hab
... not more -.-
Auf jeden Fall Icon's etc. etc. etc. hab ich ich brauche nur die Query's
|
what does the no dc clients do exactly??
01/17/2008 - Silkroad Online - 4 Replies
what does it do??
is it multiclient???or just that you dont dc when u ingame???pls explain this to me ty...
|
All times are GMT +1. The time now is 08:39.
|
|