Hi, 请 | 立即注册

1 2
查看: 9|回复: 0

远征 ol御兽存储

[复制链接]
发表于 昨天 20:31 | 显示全部楼层 |阅读模式
-- 创建宠物装备表
CREATE TABLE [dbo].[Actor_Pet_Equipment]
(
    -- 主键字段
    [ActorID] INT NOT NULL,                -- 角色ID
    [PetID] TINYINT NOT NULL,             -- 宠物ID
    [PetName] CHAR(32) NOT NULL,          -- 宠物名称,固定32字符

    -- 基础状态字段
    [Status] TINYINT NOT NULL DEFAULT(0),          -- 状态
    [AttackStatus] TINYINT NOT NULL DEFAULT(0),    -- 攻击状态
    [EggNum] TINYINT NOT NULL DEFAULT(0),          -- 蛋数量
    [PetType] INT NOT NULL DEFAULT(0),             -- 宠物类型

    -- 等级和属性相关
    [nLevel] INT NOT NULL DEFAULT(1),              -- 等级
    [Qualification] INT NOT NULL DEFAULT(0),       -- 资质
    [Energy] INT NOT NULL DEFAULT(0),              -- 能量
    [EnergyExp] INT NOT NULL DEFAULT(0),          -- 能量经验
    [FeedTimes] INT NOT NULL DEFAULT(0),          -- 喂养次数
    [EggBeginTime] INT NOT NULL DEFAULT(0),       -- 蛋开始时间
    [Tired] INT NOT NULL DEFAULT(0),              -- 疲劳度
    [Experience] INT NOT NULL DEFAULT(0),          -- 经验值

    -- 基础属性
    [Power] INT NOT NULL DEFAULT(0),              -- 力量
    [Intelligence] INT NOT NULL DEFAULT(0),        -- 智力
    [CurHP] INT NOT NULL DEFAULT(0),              -- 当前血量
    [HP] INT NOT NULL DEFAULT(0),                 -- 最大血量
    [PAttackValue] INT NOT NULL DEFAULT(0),       -- 物理攻击
    [MAttackValue] INT NOT NULL DEFAULT(0),       -- 魔法攻击
    [PDefenceValue] INT NOT NULL DEFAULT(0),      -- 物理防御
    [MDefenceValue] INT NOT NULL DEFAULT(0),      -- 魔法防御

    -- 技能相关
    [SkillsSlotNum] INT NOT NULL DEFAULT(0),      -- 技能槽数量

    -- PK相关数据
    [WinNum] INT NOT NULL DEFAULT(0),             -- 胜利次数
    [LoseNum] INT NOT NULL DEFAULT(0),            -- 失败次数
    [PKNum] INT NOT NULL DEFAULT(0),              -- PK次数
    [PKNumLeave] INT NOT NULL DEFAULT(0),         -- 剩余PK次数
    [InvitePK] INT NOT NULL DEFAULT(0),           -- 邀请PK

    -- 武器装备相关
    [CurWeapon] INT NOT NULL DEFAULT(0),          -- 当前武器
    [Weapons] BINARY(40) NULL DEFAULT(0x),        -- 武器数据
    [WeaponsHPEx] BINARY(20) NULL DEFAULT(0x),    -- 武器HP加成
    [WeaponsPAEx] BINARY(20) NULL DEFAULT(0x),    -- 武器物理攻击加成
    [WeaponsMAEx] BINARY(20) NULL DEFAULT(0x),    -- 武器魔法攻击加成
    [WeaponsPDEx] BINARY(20) NULL DEFAULT(0x),    -- 武器物理防御加成
    [WeaponsMDEx] BINARY(20) NULL DEFAULT(0x),    -- 武器魔法防御加成
    [CurSkills] BINARY(60) NULL DEFAULT(0x),      -- 当前技能

    -- 创建时间
    [CreateTime] DATETIME NOT NULL DEFAULT(GETDATE()),
    [LastUpdateTime] DATETIME NOT NULL DEFAULT(GETDATE()),

    -- 主键约束
    CONSTRAINT [PK_Actor_Pet_Equipment] PRIMARY KEY CLUSTERED
    (
        [ActorID] ASC,
        [PetID] ASC
    )
)
GO

-- 创建索引
CREATE NONCLUSTERED INDEX [IX_Actor_Pet_Equipment_ActorID]
ON [dbo].[Actor_Pet_Equipment]([ActorID])
GO

CREATE NONCLUSTERED INDEX [IX_Actor_Pet_Equipment_PetType]
ON [dbo].[Actor_Pet_Equipment]([PetType])
GO

-- 添加表说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'角色宠物装备信息表',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'TABLE',
    @level1name = N'Actor_Pet_Equipment'
GO

-- 添加字段说明
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'角色ID', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Actor_Pet_Equipment', @level2type = N'COLUMN', @level2name = N'ActorID'
GO
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'宠物ID', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Actor_Pet_Equipment', @level2type = N'COLUMN', @level2name = N'PetID'
GO
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'宠物名称', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Actor_Pet_Equipment', @level2type = N'COLUMN', @level2name = N'PetName'
GO








-------------------------------------------------------------------------------------------------------------
-- 创建宠物封印表
CREATE TABLE [dbo].[Actor_Pet_Seal]
(
    -- 基础标识字段
    [IDCard] BINARY(21) NOT NULL,         -- 宠物唯一标识
    [ActorID] INT NOT NULL,               -- 角色ID
    [AttackStatus] TINYINT NOT NULL DEFAULT(0),  -- 攻击状态

    -- 等级和基础属性
    [nLevel] INT NOT NULL DEFAULT(1),              -- 等级
    [Qualification] INT NOT NULL DEFAULT(0),       -- 资质
    [Energy] INT NOT NULL DEFAULT(0),              -- 能量
    [EnergyExp] INT NOT NULL DEFAULT(0),          -- 能量经验
    [FeedTimes] INT NOT NULL DEFAULT(0),          -- 喂养次数
    [Tired] INT NOT NULL DEFAULT(0),              -- 疲劳度
    [Experience] INT NOT NULL DEFAULT(0),          -- 经验值

    -- 战斗属性
    [Power] INT NOT NULL DEFAULT(0),              -- 力量
    [Intelligence] INT NOT NULL DEFAULT(0),        -- 智力
    [CurHP] INT NOT NULL DEFAULT(0),              -- 当前血量
    [HP] INT NOT NULL DEFAULT(0),                 -- 最大血量
    [PAttackValue] INT NOT NULL DEFAULT(0),       -- 物理攻击
    [MAttackValue] INT NOT NULL DEFAULT(0),       -- 魔法攻击
    [PDefenceValue] INT NOT NULL DEFAULT(0),      -- 物理防御
    [MDefenceValue] INT NOT NULL DEFAULT(0),      -- 魔法防御

    -- 武器装备相关
    [CurWeapon] INT NOT NULL DEFAULT(0),          -- 当前武器
    [Weapons] BINARY(40) NULL DEFAULT(0x),        -- 武器数据
    [WeaponsHPEx] BINARY(20) NULL DEFAULT(0x),    -- 武器HP加成
    [WeaponsPAEx] BINARY(20) NULL DEFAULT(0x),    -- 武器物理攻击加成
    [WeaponsMAEx] BINARY(20) NULL DEFAULT(0x),    -- 武器魔法攻击加成
    [WeaponsPDEx] BINARY(20) NULL DEFAULT(0x),    -- 武器物理防御加成
    [WeaponsMDEx] BINARY(20) NULL DEFAULT(0x),    -- 武器魔法防御加成

    -- 技能数据
    [CurSkills] BINARY(60) NULL DEFAULT(0x),      -- 当前技能

    -- 系统字段
    [CreateTime] DATETIME NOT NULL DEFAULT(GETDATE()),     -- 创建时间
    [LastUpdateTime] DATETIME NOT NULL DEFAULT(GETDATE()), -- 最后更新时间

    -- 主键约束
    CONSTRAINT [PK_Actor_Pet_Seal] PRIMARY KEY CLUSTERED
    (
        [IDCard] ASC
    )
)
GO

-- 创建索引
CREATE NONCLUSTERED INDEX [IX_Actor_Pet_Seal_ActorID]
ON [dbo].[Actor_Pet_Seal]([ActorID])
GO

-- 添加表说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'宠物封印信息表',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'TABLE',
    @level1name = N'Actor_Pet_Seal'
GO

-- 添加重要字段说明
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'宠物唯一标识', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Actor_Pet_Seal', @level2type = N'COLUMN', @level2name = N'IDCard'
GO
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'角色ID', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Actor_Pet_Seal', @level2type = N'COLUMN', @level2name = N'ActorID'
GO
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'攻击状态', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'Actor_Pet_Seal', @level2type = N'COLUMN', @level2name = N'AttackStatus'
GO

-- 创建更新触发器
CREATE TRIGGER [dbo].[TR_Actor_Pet_Seal_Update]
ON [dbo].[Actor_Pet_Seal]
AFTER UPDATE
AS
BEGIN
    SET NOCOUNT ON;

    UPDATE [dbo].[Actor_Pet_Seal]
    SET [LastUpdateTime] = GETDATE()
    FROM [dbo].[Actor_Pet_Seal] t
    INNER JOIN inserted i ON t.[IDCard] = i.[IDCard]
END
GO

-- 添加触发器说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'自动更新LastUpdateTime触发器',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'TABLE',
    @level1name = N'Actor_Pet_Seal',
    @level2type = N'TRIGGER',
    @level2name = N'TR_Actor_Pet_Seal_Update'
GO



---------------------------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[PrGs_Actor_PetSeal_Add_20110824]
    @IDCard BINARY(21),              -- 宠物唯一标识
    @AttackStatus TINYINT,           -- 攻击状态
    @ActorID INT,                    -- 角色ID
    @nLevel INT,                     -- 等级
    @Qualification INT,              -- 资质
    @energy INT,                     -- 能量
    @EnergyExp INT,                  -- 能量经验
    @FeedTimes INT,                  -- 喂养次数
    @Tired INT,                      -- 疲劳度
    @experience INT,                 -- 经验值
    @power INT,                      -- 力量
    @Intelligence INT,               -- 智力
    @CurHP INT,                      -- 当前血量
    @HP INT,                         -- 最大血量
    @PAttackValue INT,              -- 物理攻击
    @MAttackValue INT,              -- 魔法攻击
    @PDefenceValue INT,             -- 物理防御
    @MDefenceValue INT,             -- 魔法防御
    @CurWeapon INT,                 -- 当前武器
    @Weapons BINARY(40),            -- 武器数据
    @WeaponsHPEx BINARY(20),        -- 武器HP加成
    @WeaponsPAEx BINARY(20),        -- 武器物理攻击加成
    @WeaponsMAEx BINARY(20),        -- 武器魔法攻击加成
    @WeaponsPDEx BINARY(20),        -- 武器物理防御加成
    @WeaponsMDEx BINARY(20),        -- 武器魔法防御加成
    @CurSkills BINARY(60),          -- 当前技能
    @ResultCode TINYINT OUTPUT      -- 输出结果码
AS
BEGIN
    SET NOCOUNT ON;

    BEGIN TRY
        -- 初始化输出参数
        SET @ResultCode = 0;

        -- 检查必要参数
        IF @IDCard IS NULL OR @ActorID = 0
        BEGIN
            SET @ResultCode = 2;  -- 参数错误
            RETURN 1;
        END

        -- 检查是否已存在相同IDCard的记录
        IF EXISTS (SELECT 1 FROM [dbo].[Actor_Pet_Seal] WHERE [IDCard] = @IDCard)
        BEGIN
            SET @ResultCode = 3;  -- 宠物封印已存在
            RETURN 1;
        END

        -- 插入新的宠物封印数据
        INSERT INTO [dbo].[Actor_Pet_Seal]
        (
            [IDCard], [AttackStatus], [ActorID],
            [nLevel], [Qualification], [Energy],
            [EnergyExp], [FeedTimes], [Tired],
            [Experience], [Power], [Intelligence],
            [CurHP], [HP], [PAttackValue],
            [MAttackValue], [PDefenceValue], [MDefenceValue],
            [CurWeapon], [Weapons], [WeaponsHPEx],
            [WeaponsPAEx], [WeaponsMAEx], [WeaponsPDEx],
            [WeaponsMDEx], [CurSkills]
        )
        VALUES
        (
            @IDCard, @AttackStatus, @ActorID,
            @nLevel, @Qualification, @Energy,
            @EnergyExp, @FeedTimes, @Tired,
            @Experience, @Power, @Intelligence,
            @CurHP, @HP, @PAttackValue,
            @MAttackValue, @PDefenceValue, @MDefenceValue,
            @CurWeapon, @Weapons, @WeaponsHPEx,
            @WeaponsPAEx, @WeaponsMAEx, @WeaponsPDEx,
            @WeaponsMDEx, @CurSkills
        );

        -- 检查插入是否成功
        IF @@ROWCOUNT > 0
        BEGIN
            SET @ResultCode = 1;  -- 成功
            RETURN 0;
        END
        ELSE
        BEGIN
            SET @ResultCode = 4;  -- 插入失败
            RETURN 1;
        END

    END TRY
    BEGIN CATCH
        -- 错误处理
        SET @ResultCode = 255;  -- 系统错误

        -- 记录错误信息
        DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
        DECLARE @ErrorSeverity INT = ERROR_SEVERITY();
        DECLARE @ErrorState INT = ERROR_STATE();

        -- 可以在这里添加错误日志记录

        RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);

        RETURN -1;
    END CATCH
END
GO

-- 添加存储过程说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'添加宠物封印信息',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetSeal_Add_20110824';
GO

-- 添加结果码说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'结果码说明:
1 - 成功
2 - 参数错误
3 - 宠物封印已存在
4 - 插入失败
255 - 系统错误',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetSeal_Add_20110824',
    @level2type = N'PARAMETER',
    @level2name = N'@ResultCode';
GO

-------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[PrGs_Actor_PetPart_Get_20111217]
    @ActorID INT,                    -- 输入参数
    @PetCount BINARY(1) OUTPUT      -- 输出参数,使用BINARY(1)替代TINYINT
AS
BEGIN
    SET NOCOUNT ON;

    -- 初始化输出参数
    SET @PetCount = 0x00;

    -- 返回ActorID
    SELECT @ActorID AS ActorID;

    -- 返回宠物详细信息结果集
    SELECT
        CAST(PetName AS CHAR(32)) AS PetName,      -- 宠物名称,固定32字符
        CAST(PetID AS BINARY(1)) AS PetID,         -- 宠物ID,1字节二进制
        CAST(Status AS BINARY(1)) AS Status,       -- 状态,1字节二进制
        CAST(AttackStatus AS BINARY(1)) AS AttackStatus,   -- 攻击状态,1字节二进制
        CAST(EggNum AS BINARY(1)) AS EggNum,       -- 蛋数量,1字节二进制
        CAST(PetType AS INT) AS PetType,           -- 宠物类型
        CAST(nLevel AS INT) AS nLevel,             -- 等级
        CAST(Qualification AS INT) AS Qualification, -- 资质
        CAST(Energy AS INT) AS Energy,              -- 能量
        CAST(EnergyExp AS INT) AS EnergyExp,       -- 能量经验
        CAST(FeedTimes AS INT) AS FeedTimes,       -- 喂养次数
        CAST(EggBeginTime AS INT) AS EggBeginTime, -- 蛋开始时间
        CAST(Tired AS INT) AS Tired,               -- 疲劳度
        CAST(Experience AS INT) AS Experience,      -- 经验
        CAST(Power AS INT) AS Power,               -- 力量
        CAST(Intelligence AS INT) AS Intelligence,  -- 智力
        CAST(CurHP AS INT) AS CurHP,               -- 当前血量
        CAST(HP AS INT) AS HP,                     -- 最大血量
        CAST(PAttackValue AS INT) AS PAttackValue, -- 物理攻击
        CAST(MAttackValue AS INT) AS MAttackValue, -- 魔法攻击
        CAST(PDefenceValue AS INT) AS PDefenceValue, -- 物理防御
        CAST(MDefenceValue AS INT) AS MDefenceValue, -- 魔法防御
        CAST(SkillsSlotNum AS INT) AS SkillsSlotNum, -- 技能槽数量
        CAST(WinNum AS INT) AS WinNum,              -- 胜利次数
        CAST(LoseNum AS INT) AS LoseNum,            -- 失败次数
        CAST(PKNum AS INT) AS PKNum,                -- PK次数
        CAST(PKNumLeave AS INT) AS PKNumLeave,      -- 剩余PK次数
        CAST(InvitePK AS INT) AS InvitePK,          -- 邀请PK
        CAST(CurWeapon AS INT) AS CurWeapon,        -- 当前武器

        -- 二进制数据字段,使用0x作为默认值
        CAST(Weapons AS BINARY(40)) AS Weapons,           -- 武器数据
        CAST(WeaponsHPEx AS BINARY(20)) AS WeaponsHPEx,  -- 武器HP加成
        CAST(WeaponsPAEx AS BINARY(20)) AS WeaponsPAEx,  -- 武器物理攻击加成
        CAST(WeaponsMAEx AS BINARY(20)) AS WeaponsMAEx,  -- 武器魔法攻击加成
        CAST(WeaponsPDEx AS BINARY(20)) AS WeaponsPDEx,  -- 武器物理防御加成
        CAST(WeaponsMDEx AS BINARY(20)) AS WeaponsMDEx,  -- 武器魔法防御加成
        CAST(CurSkills AS BINARY(60)) AS CurSkills       -- 当前技能
    FROM [dbo].[Actor_Pet]
    WHERE ActorID = @ActorID;

    -- 设置返回的宠物数量
    SET @PetCount = (
        SELECT CAST(COUNT(*) AS BINARY(1))
        FROM [dbo].[Actor_Pet]
        WHERE ActorID = @ActorID
    );

    RETURN 0;
END
GO

-- 添加存储过程说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'获取角色宠物信息',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetPart_Get_20111217';
GO
--------------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[PrGs_Actor_PetSeal_Get]
    @ActorID INT    -- 角色ID
AS
BEGIN
    SET NOCOUNT ON;

    BEGIN TRY
        -- 查询宠物封印信息
        SELECT
            CAST([IDCard] AS BINARY(21)) AS [IDCard],           -- 宠物唯一标识
            CAST([AttackStatus] AS TINYINT) AS [AttackStatus],  -- 攻击状态
            CAST([ActorID] AS INT) AS [ActorID],               -- 角色ID
            CAST([nLevel] AS INT) AS [nLevel],                 -- 等级
            CAST([Qualification] AS INT) AS [Qualification],    -- 资质
            CAST([Energy] AS INT) AS [Energy],                 -- 能量
            CAST([EnergyExp] AS INT) AS [EnergyExp],          -- 能量经验
            CAST([FeedTimes] AS INT) AS [FeedTimes],          -- 喂养次数
            CAST([Tired] AS INT) AS [Tired],                   -- 疲劳度
            CAST([Experience] AS INT) AS [Experience],         -- 经验值
            CAST([Power] AS INT) AS [Power],                   -- 力量
            CAST([Intelligence] AS INT) AS [Intelligence],     -- 智力
            CAST([CurHP] AS INT) AS [CurHP],                  -- 当前血量
            CAST([HP] AS INT) AS [HP],                        -- 最大血量
            CAST([PAttackValue] AS INT) AS [PAttackValue],    -- 物理攻击
            CAST([MAttackValue] AS INT) AS [MAttackValue],    -- 魔法攻击
            CAST([PDefenceValue] AS INT) AS [PDefenceValue],  -- 物理防御
            CAST([MDefenceValue] AS INT) AS [MDefenceValue],  -- 魔法防御
            CAST([CurWeapon] AS INT) AS [CurWeapon],         -- 当前武器
            CAST([Weapons] AS BINARY(40)) AS [Weapons],       -- 武器数据
            CAST([WeaponsHPEx] AS BINARY(20)) AS [WeaponsHPEx], -- 武器HP加成
            CAST([WeaponsPAEx] AS BINARY(20)) AS [WeaponsPAEx], -- 武器物理攻击加成
            CAST([WeaponsMAEx] AS BINARY(20)) AS [WeaponsMAEx], -- 武器魔法攻击加成
            CAST([WeaponsPDEx] AS BINARY(20)) AS [WeaponsPDEx], -- 武器物理防御加成
            CAST([WeaponsMDEx] AS BINARY(20)) AS [WeaponsMDEx], -- 武器魔法防御加成
            CAST([CurSkills] AS BINARY(60)) AS [CurSkills]    -- 当前技能
        FROM [dbo].[Actor_Pet_Seal]
        WHERE [ActorID] = @ActorID;

        -- 如果没有找到记录,返回0
        IF @@ROWCOUNT = 0
            RETURN 0;

        RETURN 1;  -- 成功找到记录

    END TRY
    BEGIN CATCH
        -- 错误处理
        DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
        DECLARE @ErrorSeverity INT = ERROR_SEVERITY();
        DECLARE @ErrorState INT = ERROR_STATE();

        -- 可以在这里添加错误日志记录

        RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);

        RETURN -1;  -- 发生错误
    END CATCH
END
GO

-- 添加存储过程说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'获取角色宠物封印信息',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetSeal_Get';
GO

-- 添加返回值说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'返回值说明:
1 - 成功找到记录
0 - 未找到记录
-1 - 系统错误',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetSeal_Get';
GO

-----------------------------------------------------------------------------------

CREATE PROCEDURE [dbo].[PrGs_Actor_PetSeal_Del]
    @IDCard BINARY(21),         -- 宠物唯一标识
    @ResultCode TINYINT OUTPUT  -- 输出结果码
AS
BEGIN
    SET NOCOUNT ON;

    BEGIN TRY
        -- 初始化输出参数
        SET @ResultCode = 0;

        -- 检查参数
        IF @IDCard IS NULL
        BEGIN
            SET @ResultCode = 2;  -- 参数错误
            RETURN 1;
        END

        -- 检查记录是否存在
        IF NOT EXISTS (SELECT 1 FROM [dbo].[Actor_Pet_Seal] WHERE [IDCard] = @IDCard)
        BEGIN
            SET @ResultCode = 3;  -- 记录不存在
            RETURN 1;
        END

        -- 删除宠物封印记录
        DELETE FROM [dbo].[Actor_Pet_Seal]
        WHERE [IDCard] = @IDCard;

        -- 检查删除是否成功
        IF @@ROWCOUNT > 0
        BEGIN
            SET @ResultCode = 1;  -- 删除成功
            RETURN 0;
        END
        ELSE
        BEGIN
            SET @ResultCode = 4;  -- 删除失败
            RETURN 1;
        END

    END TRY
    BEGIN CATCH
        -- 错误处理
        SET @ResultCode = 255;  -- 系统错误

        -- 记录错误信息
        DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
        DECLARE @ErrorSeverity INT = ERROR_SEVERITY();
        DECLARE @ErrorState INT = ERROR_STATE();

        -- 可以在这里添加错误日志记录

        RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);

        RETURN -1;
    END CATCH
END
GO

-- 添加存储过程说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'删除宠物封印信息',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetSeal_Del';
GO

-- 添加结果码说明
EXEC sp_addextendedproperty
    @name = N'MS_Description',
    @value = N'结果码说明:
1 - 删除成功
2 - 参数错误
3 - 记录不存在
4 - 删除失败
255 - 系统错误',
    @level0type = N'SCHEMA',
    @level0name = N'dbo',
    @level1type = N'PROCEDURE',
    @level1name = N'PrGs_Actor_PetSeal_Del',
    @level2type = N'PARAMETER',
    @level2name = N'@ResultCode';
GO
创建表Actor_Pet

创建表PetPart这个我还没有认真去改 他自动记录玩家信息
启动成功[0509 15:47:07] ERROR: 读取御兽信息成功
存储PrGs_Actor_PetPart_Get_20111217跟服务端一致,例如
<config spname = 'PrGs_Actor_PetPart_Get_20111217' level = '10' databaseid = '1'></config>

        <inputdata variablename = 'ActorID'          size = '4'></inputdata>

        <param paramname = '@ActorID' datatype = 'int' size = '4' dirtype = 'input' inputdataname = 'ActorID'></param>
        <param paramname = '@PetCount' datatype = 'byte' size = '1' dirtype = 'output' inputdataname = '-'></param>

        <outputdata variablename = 'ActorID' size = '4' source = 'dd' datatype = 'int'></outputdata>
        <outputdata variablename = '@PetCount' size = '1' source = 'sp' datatype = 'byte'></outputdata>

        <resultset variablename = 'PetName' size = '32' source = 'sp' datatype = 'char'></resultset>
        <resultset variablename = 'PetID' size = '1' source = 'sp' datatype = 'byte'></resultset>
        <resultset variablename = 'Status' size = '1' source = 'sp' datatype = 'byte'></resultset>
        <resultset variablename = 'AttackStatus' size = '1' source = 'sp' datatype = 'byte'></resultset>        
        <resultset variablename = 'EggNum' size = '1' source = 'sp' datatype = 'byte'></resultset>        
        <resultset variablename = 'PetType' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'nLevel' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Qualification' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Energy' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'EnergyExp' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'FeedTimes' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'EggBeginTime' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Tired' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Experience' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Power' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Intelligence' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'CurHP' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'HP' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'PAttackValue' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'MAttackValue' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'PDefenceValue' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'MDefenceValue' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'SkillsSlotNum' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'WinNum' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'LoseNum' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'PKNum' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'PKNumLeave' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'InvitePK' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'CurWeapon' size = '4' source = 'sp' datatype = 'int'></resultset>
        <resultset variablename = 'Weapons' size = '40' source = 'sp' datatype = 'bin'></resultset>
        <resultset variablename = 'WeaponsHPEx' size = '20' source = 'sp' datatype = 'bin'></resultset>
        <resultset variablename = 'WeaponsPAEx' size = '20' source = 'sp' datatype = 'bin'></resultset>
        <resultset variablename = 'WeaponsMAEx' size = '20' source = 'sp' datatype = 'bin'></resultset>
        <resultset variablename = 'WeaponsPDEx' size = '20' source = 'sp' datatype = 'bin'></resultset>
        <resultset variablename = 'WeaponsMDEx' size = '20' source = 'sp' datatype = 'bin'></resultset>
        <resultset variablename = 'CurSkills' size = '60' source = 'sp' datatype = 'bin'><
1.jpg


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|老网吧论坛

GMT+8, 2025-5-10 07:25 , Processed in 0.049556 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.