家族信息

    族长:冰结王子

    成员:179

    待批准成员:5

    成立:2006-12-19

    主打游戏:奇迹

家族文章

    9962正真的攻城修改储存过程,可以随意修改申请限制~!

    发布人:冰结王子 发布时间:2006-12-21 16:59:36 点击数:545
    9962正真的攻城修改储存过程,可以随意修改申请限制~!

    --//************************************************************************
    --// << 罗兰攻城-储存过程 >>
    --//
    --// 功能作用: 查询统计攻城的战盟,并进行攻城报名.
    --// 创建时间: 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