SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
--//************************************************************************
--// << ? ??? - ?? ???? >>
--//
--// ?? : ?? ? (????) ? ???? ??? ??? ??? ??.
--// ?? : ???? 1?
--// ??? : 2004.11.22
--// ??? : ???
--//
--//************************************************************************
ALTER PROCEDURE WZ_CS_ReqRegAttackGuild
@iMapSvrGroup SMALLINT, -- ??? ??
@szGuildName VARCHAR(8) -- ????? ? ????
As
Begin
BEGIN TRANSACTION
SET NOCOUNT ON
DECLARE @iMaxRegGuildCount INT -- ??? ?? ??? ? ?? ?? ?
DECLARE @iCurRegGuildCount INT -- ?? ??? ??? ?? ?
SET @iMaxRegGuildCount = 100
SELECT @iCurRegGuildCount = COUNT(*) FROM MuCastle_REG_SIEGE WITH (READUNCOMMITTED) WHERE MAP_SVR_GROUP = @iMapSvrGroup
IF (@iCurRegGuildCount >= @iMaxRegGuildCount)
BEGIN
SELECT 6 As QueryResult -- ??? ??? ?? N?? ???
END
ELSE
BEGIN
IF EXISTS ( SELECT MAP_SVR_GROUP FROM MuCastle_REG_SIEGE WITH (READUNCOMMITTED)
WHERE MAP_SVR_GROUP = @iMapSvrGroup and REG_SIEGE_GUILD = @szGuildName)
BEGIN
SELECT 2 As QueryResult -- ?? ???? ??
END
ELSE
BEGIN
DECLARE @szOwnGuildName VARCHAR(8)
SELECT @szOwnGuildName = OWNER_GUILD FROM MuCastle_DATA WHERE MAP_SVR_GROUP = @iMapSvrGroup
-- ?? ??? ??? ??? ??
IF (@szOwnGuildName = @szGuildName)
BEGIN
SELECT 3 As QueryResult -- ??? ???
END
ELSE
BEGIN
IF NOT EXISTS ( SELECT G_Name FROM Guild WITH (READUNCOMMITTED) WHERE G_Name = @szGuildName)
BEGIN
SELECT 4 As QueryResult -- ????? ???? ??
END
ELSE
BEGIN
DECLARE @szGuildMaster VARCHAR(10)
DECLARE @iGuildMasterLevel INT
DECLARE @iGuildMemberCount INT
SELECT @szGuildMaster = G_Master FROM Guild WHERE G_Name = @szGuildName
SELECT @iGuildMasterLevel = cLevel FROM Character WHERE Name = @szGuildMaster
SELECT @iGuildMemberCount = COUNT(*) FROM GuildMember WHERE G_Name = @szGuildName
IF (@iGuildMasterLevel < 200)
BEGIN
SELECT 5 As QueryResult -- ?????? ??? ??
END
ELSE
BEGIN
IF (@iGuildMemberCount < 1)
BEGIN
SELECT 8 As QueryResult -- ??? ?? ??
END
ELSE
BEGIN
DECLARE @iMAX_SEQNUM INT -- ?? ?? ????
DECLARE @iNXT_SEQNUM INT -- ?? ????
SELECT @iMAX_SEQNUM = MAX(SEQ_NUM) FROM MuCastle_REG_SIEGE WITH (READUNCOMMITTED) WHERE MAP_SVR_GROUP = @iMapSvrGroup
IF (@iMAX_SEQNUM IS NULL)
SET @iNXT_SEQNUM = 1
ELSE
SET @iNXT_SEQNUM = @iMAX_SEQNUM + 1
INSERT INTO MuCastle_REG_SIEGE
VALUES (@iMapSvrGroup, @szGuildName, 0, 0, @iNXT_SEQNUM)
SELECT 1 As QueryResult -- ?? ??
END
END
END
END
END
END
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO