ctgwglzc 发表于 2009-9-19 17:56:07

自动分配角色的创建存储

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 >= 5 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 = 3
RETURN
END


SET @Zone=21
SELECT @PosX = InitX, @PosZ = InitZ FROM ZONE_INFO WHERE ZoneNo = @Zone

select @row = 3
if @CharID like '%___%'
if @CharID like '%_%'
if @CharID like '%__%'
if @CharID like '%:%'
if @CharID like '%::%'
begin
SET @nRet = 3
RETURN


END
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


INSERT INTO USERDATA (strUserId, Nation, Race, Class, HairColor, Face, Strong, Sta, Dex, Intel, Cha, Zone, PX, PZ )
VALUES (@CharID, @Nation, @Race, @Class, @Hair, @Face, @Str, @Sta, @Dex, @Intel, @Cha, @Zone, @PosX, @PosZ )


exec baslangicitem @CharID
update userdata set Class = 106 , strong = '255' , sta = '180' ,strskill = '?????P<???' , = '83' , hp='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 101
update userdata set Class = 108 , strong = '71' , dex = '255' , sta = '169' ,strskill ='P<' , = '83' , hp ='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 102
update userdata set Class = 110 , strong = '71' , sta = '100' , cha = '194' , intel = '162' ,strskill ='P<' , = '83' , hp='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 103
update userdata set Class = 112 , strong = '110' , sta = '120' , intel = '230' ,strskill ='P<' , = '83' where struserid = @CharID and @Class = 104
update userdata set Class = 206 , strong = '255' , sta = '180' ,strskill ='P<' , = '83' , hp='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 201
update userdata set Class = 208 , strong = '71' , dex = '255' , sta = '169' ,strskill ='P<' , = '83' , hp='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 202
update userdata set Class = 210 , strong = '71' , sta = '100' , cha = '194' , intel = '162' ,strskill ='P<' , = '83' , hp='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 203
update userdata set Class = 212 , strong = '110' , sta = '120' , intel = '230' ,strskill ='P<' , = '83' , hp='5000' ,mp='5000' ,exp = '1' where struserid = @CharID and @Class = 204


update userdata set Class = 106 where struserid = @CharID and @Class = 101
update userdata set Class = 108 where struserid = @CharID and @Class = 102
update userdata set Class = 110 where struserid = @CharID and @Class = 103
update userdata set Class = 112 where struserid = @CharID and @Class = 104
update userdata set Class = 206 where struserid = @CharID and @Class = 201
update userdata set Class = 208 where struserid = @CharID and @Class = 202
update userdata set Class = 210 where struserid = @CharID and @Class = 203
update userdata set Class = 212 where struserid = @CharID and @Class = 204

IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
SET @nRet = 4
RETURN
END

COMMIT TRAN
SET @nRet = 0
GO

v123 发表于 2009-9-28 20:41:58

有什么用的,

leonjaykai 发表于 2009-12-3 20:34:21

這個是做什麼用的? 請教一下~~

aiiq 发表于 2009-12-4 16:41:50

介绍一下嘛

leonjaykai 发表于 2010-1-6 09:38:22

看樣子好像是自動分配角色能力點數的存儲似的 說

⑦埰媣汸 发表于 2010-1-8 12:16:38

自动分配能力点数的吗?
我现在的建立人物 还不让一个能力点加完 必须 各加5点。。。。

iko 发表于 2010-1-9 13:18:19

收下了,谢谢

oncewill 发表于 2010-2-4 15:45:15

收下先。。谢谢
页: [1]
查看完整版本: 自动分配角色的创建存储