--//************************************************************************
--// << 罗兰攻城-储存过程 >>
--//
--// 功能作用: 查询统计攻城的战盟,并进行攻城报名.
--// 创建时间: 2004.11.22
--// 最后汉化: -犹纹图斯 QQ:85680035
--//
--//************************************************************************
CREATE 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 -- 初始最大战盟数为100个
SELECT @iCurRegGuildCount = COUNT(*) FROM MuCastle_REG_SIEGE WITH (READUNCOMMITTED) WHERE MAP_SVR_GROUP = @iMapSvrGroup
IF (@iCurRegGuildCount >= @iMaxRegGuildCount)
BEGIN
SELECT 6 As QueryResult -- 初始为6,返回客户端查询(已经申请成功的战盟)
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 -- 初始化为2,返回客户端查询
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 -- 初始化为3,返回客户端查询
END
ELSE
BEGIN
IF NOT EXISTS ( SELECT G_Name FROM Guild WITH (READUNCOMMITTED) WHERE G_Name = @szGuildName)
BEGIN
SELECT 4 As QueryResult -- 初始化为4,返回客户端查询
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)
--如果战盟的盟主等级小于200级 BEGIN
SELECT 5 As QueryResult -- 初始化为5,返回客户端查询
END
ELSE
BEGIN
IF (@iGuildMemberCount < 20)
--如果战盟总人数少于20人 BEGIN
SELECT 8 As QueryResult -- 初始化为8,返回客户端查询
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 -- 初始化为1,返回客户端查询
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
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO