网站首页 一条龙套餐 游戏版本 网站模版 广告代理 主机租用 短信平台 技术教程
 
不同职业送点的SQL语句
作者:admin 来源:本站原创 点击数: 更新时间:2012-8-15 11:28:24

CREATE Procedure WZ_CreateCharacter
    @AccountID        varchar(10),
    @Name            varchar(10),
    @Class            tinyint
AS
Begin

    SET NOCOUNT ON
    SET    XACT_ABORT ON
    DECLARE        @Result        tinyint
    DECLARE    @FASHI        int
    DECLARE    @ZHANSHI    int
    DECLARE    @JINGLING    int
    DECLARE    @MOJIAN        int
    DECLARE    @SHENGDAO    int
    DECLARE    @ZHAOHUAN    int
    DECLARE    @BORNMONEY    int
      

 SET @Result = 0x00   
    SET @FASHI=    5000          -- 法师出生点数
    SET @ZHANSHI=    3000         -- 战士出生点数
    SET @JINGLING=   5000            -- 精灵出生点数
    SET @MOJIAN=     5000           -- 魔剑出生点数
    SET @SHENGDAO=    4000         -- 圣导出生点数
    SET @ZHAOHUAN=    5000            -- 召唤出生点数
    SET @BORNMONEY=    5000000          -- 出生送的钱


    If EXISTS ( SELECT  Name  FROM  Character WHERE Name = @Name )
    begin
        SET @Result    = 0x01                       
        GOTO ProcEnd                       
    end

    BEGIN TRAN

    If NOT EXISTS ( SELECT  Id  FROM  AccountCharacter WHERE Id = @AccountID )
        begin
            INSERT INTO dbo.AccountCharacter(Id, GameID1, GameID2, GameID3, GameID4, GameID5, GameIDC)
            VALUES(@AccountID, @Name, NULL, NULL, NULL, NULL, NULL)

            SET @Result  = @@Error
        end
    else
        begin
            Declare @g1 varchar(10), @g2 varchar(10), @g3 varchar(10), @g4 varchar(10), @g5 varchar(10)                       
            SELECT @g1=GameID1, @g2=GameID2, @g3=GameID3, @g4=GameID4, @g5=GameID5 FROM dbo.AccountCharacter Where Id = @AccountID           
            if( ( @g1 Is NULL) OR (Len(@g1) = 0))

                begin
                    UPDATE AccountCharacter SET  GameID1 = @Name
                    WHERE Id = @AccountID
                                       
                    SET @Result  = @@Error
                end
            else    if( @g2  Is NULL OR Len(@g2) = 0)
                begin
                    UPDATE AccountCharacter SET  GameID2 = @Name
                    WHERE Id = @AccountID

                    SET @Result  = @@Error
                end
            else    if( @g3  Is NULL OR Len(@g3) = 0)
                begin           
                    UPDATE AccountCharacter SET  GameID3 = @Name
                    WHERE Id = @AccountID

                    SET @Result  = @@Error
                end
            else    if( @g4 Is NULL OR Len(@g4) = 0)
                begin
                    UPDATE AccountCharacter SET  GameID4 = @Name
                    WHERE Id = @AccountID

                    SET @Result  = @@Error
                end
            else    if( @g5 Is NULL OR Len(@g5) = 0)
                begin
                    UPDATE AccountCharacter SET  GameID5 = @Name
                    WHERE Id = @AccountID

                    SET @Result  = @@Error
                end       
            else
                begin                   
                    SET @Result    = 0x03                           
                    GOTO TranProcEnd                               
                end             
        end

    if( @Result <> 0 )
        begin
            GOTO TranProcEnd       
        end
    else
        begin
        DECLARE    @UPPOINT int
        if(@Class=0)
            begin
            SET @UPPOINT  = @FASHI
            end
        else if(@Class=16)
            begin
            SET @UPPOINT  = @ZHANSHI
            end
        else if(@Class=32)
            begin
            SET @UPPOINT  = @JINGLING
            end
        else if(@Class=48)
            begin
            SET @UPPOINT  = @MOJIAN
            end
    else if(@Class=64)
            begin
            SET @UPPOINT  = @SHENGDAO
            end
        else
            begin
            SET @UPPOINT  = @ZHAOHUAN
            end

        INSERT INTO dbo.Character(AccountID, Name, cLevel, LevelUpPoint, Class, Strength, Dexterity, Vitality, Energy, Inventory,MagicList,
                Life, MaxLife, Mana, MaxMana, MapNumber, MapPosX, MapPosY,  MDate, LDate, Quest, DbVersion, Leadership,money )
        SELECT @AccountID As AccountID, @Name As Name, Level,@UPPOINT AS LevelUpPoint,@Class As Class,
            Strength, Dexterity, Vitality, Energy, Inventory,MagicList,  Life, MaxLife, Mana, MaxMana, MapNumber, MapPosX, MapPosY,
            getdate() As MDate, getdate() As LDate, Quest, DbVersion, Leadership,@BORNMONEY As money
        FROM  DefaultClassType WHERE Class = @Class                   

        SET @Result  = @@Error
        end

TranProcEnd:
    IF ( @Result  <> 0 )
        ROLLBACK TRAN
    ELSE
        COMMIT    TRAN

ProcEnd:
    SET NOCOUNT OFF
    SET    XACT_ABORT OFF


    SELECT
      CASE @Result
          WHEN 0x00 THEN 0x01
          WHEN 0x01 THEN 0x00
          WHEN 0x03 THEN 0x03
          ELSE 0x02   
      END AS Result
End
GO

  • 上一篇文章:

  • 下一篇文章:
  •  
     
    Copyright 2004-2008 HttP://www.8828mu.comAll Rights Reserved 版权所有:奇迹数据专业打造,奇迹一条龙,奇迹sf一条龙,奇迹开区一条龙,奇迹版本,www.8828mu.comHttP://www.8828mu.com
    ☆ 建议使用:1024×768 分辨率 Windows2000 Internet Explorer V5.0 or higher ☆