在这个是在储存过程里面找到.WZ_CreateCharacter把里面原有的删掉.把下面的复制进去点应用就OK啦.下来就根据自己要送的点数设置一下就可以啦. 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 @BORNMONEY int
SET @Result = 0x00 SET @FASHI= 800 -- 法师出生点数 SET @ZHANSHI= 300 -- 战士出生点数 SET @JINGLING= 800 -- 精灵出生点数 SET @MOJIAN= 800 -- 魔剑出生点数 SET @SHENGDAO= 500 -- 圣导出生点数 SET @BORNMONEY= 2000000 -- 出生送的钱
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 begin SET @UPPOINT = @SHENGDAO 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
转载时请注明本文出自:http://www.qsqj.com
|