本帖最后由 duepbbmal336 于 2013-5-1 01:05 编辑
这个是出生3角色自动2转能力点277技能点142
希望对你有帮助
下面这个放到【查询分析器】里面运行下就可以了
USE [KN_online];
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CREATE_NEW_CHAR]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[CREATE_NEW_CHAR]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
/****** Object: Stored Procedure dbo.CREATE_NEW_CHAR Script Date: 6/6/2006 6:03:33 PM ******/
/****** ??: ?? ???? dbo.CREATE_NEW_CHAR ???? ??: 2002-11-14 ?? 11:18:03 ******/
-- scripted by samma
-- 2002.01.17
-- 2003.02.06 sungyong
CREATE PROCEDURE CREATE_NEW_CHAR
@nRet smallint OUTPUT,
@AccountID char(21),
@index tinyint,
@CharID char(21),
@Race tinyint,
@Class smallint,
@Hair tinyint,
@Face tinyint,
@Str tinyint,
@Sta tinyint,
@Dex tinyint,
@Intel tinyint,
@Cha tinyint
AS
DECLARE @Row tinyint, @Nation tinyint, @Zone tinyint, @PosX int, @PosZ int
SET @Row = 0 SET @Nation = 0 SET @Zone = 0 SET @PosX = 0 SET @PosZ = 0
SELECT @Nation = bNation, @Row = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
IF @Row >= 3 SET @nRet = 1
IF @Nation = 1 AND @Race > 10 SET @nRet = 2
ELSE IF @Nation = 2 AND @Race < 10 SET @nRet = 2
ELSE IF @Nation <>1 AND @Nation <> 2 SET @nRet = 2
IF @nRet > 0
RETURN
SELECT @Row = COUNT(*) FROM USERDATA WHERE strUserId = @CharID
IF @Row > 0
BEGIN
SET @nRet = 1
RETURN
END
--SET @Zone = @Nation
SET @Zone=21
SELECT @PosX = InitX, @PosZ = InitZ FROM ZONE_INFO WHERE ZoneNo = @Zone
BEGIN TRAN
IF @index = 0
UPDATE ACCOUNT_CHAR SET strCharID1 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 1
UPDATE ACCOUNT_CHAR SET strCharID2 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 2
UPDATE ACCOUNT_CHAR SET strCharID3 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 3
UPDATE ACCOUNT_CHAR SET strCharID4 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 4
UPDATE ACCOUNT_CHAR SET strCharID5 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE
BEGIN
ROLLBACK TRAN
SET @nRet=4
RETURN
END
INSERT INTO USERDATA (strUserId, Nation, Race, Class, HairColor, Face, Strong, Sta, Dex, Intel, Cha, Zone, PX, PZ ,loyalty,gold,exp)
VALUES (@CharID, @Nation, @Race, @Class, @Hair, @Face, @Str, @Sta, @Dex, @Intel, @Cha, @Zone, @PosX, @PosZ,100,300000,0)
update userdata set Class = 106,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 101
update userdata set Class = 108,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 102
update userdata set Class = 110,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 103
update userdata set Class = 112,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 104
update userdata set Class = 206,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 201
update userdata set Class = 208,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 202
update userdata set Class = 210,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 203
update userdata set Class = 212,points=277,[level] = '80',exp = '1',strSkill=cast(0x8E000000000000000000 as varbinary(12)) where struserid = @CharID and @Class = 204
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
SET @nRet = 4
RETURN
END
COMMIT TRAN
SET @nRet = 0
GO
|