Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ALTER PROCEDURE [dbo].[TCreateChar]
- @bCreateCnt TINYINT OUTPUT,
- @szNAME VARCHAR(50),
- @dwCharID INT OUTPUT,
- @dwUserID INT,
- @bGroup TINYINT,
- @bSlot TINYINT,
- @bClass TINYINT,
- @bRace TINYINT,
- @bCountry TINYINT,
- @bSex TINYINT,
- @bHair TINYINT,
- @bFace TINYINT,
- @bBody TINYINT,
- @bPants TINYINT,
- @bHand TINYINT,
- @bFoot TINYINT
- AS
- DECLARE @dwCharSeq INT
- DECLARE @dwMP INT
- DECLARE @dwHP INT
- DECLARE @fPosX FLOAT
- DECLARE @fPosY FLOAT
- DECLARE @fPosZ FLOAT
- DECLARE @wDIR SMALLINT
- DECLARE @wSpawnID SMALLINT
- DECLARE @nCheckGlobal INT
- DECLARE @bRealSex TINYINT
- SET @bCreateCnt = 0
- SET @dwCharID = 0
- SET @dwMP = 2
- SET @dwHP = 2
- SELECT TOP 1 @dwHP = @dwHP + wCON, @dwMP = @dwMP + wMEN FROM TCLASSCHART WHERE bClassID = @bClass
- SELECT TOP 1 @dwHP = @dwHP + wCON, @dwMP = @dwMP + wMEN FROM TRACECHART WHERE bRaceID = @bRace
- SET @dwHP = 7 * @dwHP + 1
- SET @dwMP = 9 * @dwMP + 1
- IF EXISTS( SELECT TOP 1 dwCharID FROM TCHARTABLE WHERE szNAME = @szNAME)
- RETURN 2
- /*
- * Duplicate npc name
- */
- IF EXISTS(SELECT TOP 1 * FROM TNPCCHART WHERE szNAME = @szNAME)
- RETURN 2
- /*
- * Duplicate monster name
- */
- IF EXISTS(SELECT TOP 1 * FROM TMONSTERCHART WHERE szNAME = @szNAME)
- RETURN 2
- /*
- * Invalid slot
- */
- IF EXISTS(SELECT TOP 1 dwCharID FROM TCHARTABLE WHERE dwUserID = @dwUserID AND bSlot = @bSlot AND bDelete = 0)
- RETURN 3
- /*
- * Check the country
- */
- DECLARE @bOriCountry TINYINT
- DECLARE @bLevel TINYINT
- DECLARE @dwExp INT
- DECLARE @wSkillPoint SMALLINT
- SET @bOriCountry = @bCountry
- SET @bLevel = 1
- SET @dwExp = 0
- SET @wSkillPoint = 0
- if(@bCountry = 0)
- BEGIN
- SET @fPosX = 2869.05
- SET @fPosY = 31.33
- SET @fPosZ = 5031.06
- SET @wDIR = 1792
- SET @wSpawnID = 3002
- END
- ELSE
- BEGIN
- SET @fPosX = 5366.733
- SET @fPosY = 95.01044
- SET @fPosZ = 4657.246
- SET @wDIR = 841
- SET @wSpawnID = 3102
- END
- EXEC @nCheckGlobal = TGLOBAL_GSP.DBO.TCreateChar
- @dwCharSeq OUTPUT,
- @bCreateCnt OUTPUT,
- @bRealSex OUTPUT,
- @dwUserID,
- @bGroup,
- @dwCharID,
- @bSlot,
- @szNAME,
- @bClass,
- @bRace,
- @bCountry,
- @bSex,
- @bHair, -- bHair
- @bFace, -- bFace
- @bBody, -- bBody
- @bPants, -- bPants
- @bHand, -- bHand
- @bFoot, -- bFoot
- @bLevel,
- @dwExp -- dwExp
- IF(@nCheckGlobal <> 0)
- RETURN @nCheckGlobal
- BEGIN TRAN TCREATECHAR
- INSERT INTO TCHARTABLE
- (
- dwUserID,
- bSlot,
- szNAME,
- bRace,
- bCountry,
- bOriCountry,
- bSex,
- bRealSex,
- bClass,
- bLevel,
- bHair,
- bFace,
- bBody,
- bPants,
- bHand,
- bFoot,
- dwEXP,
- dwHP,
- dwMP,
- wSkillPoint,
- dwGold,
- dwSilver,
- dwCooper,
- wMapID,
- wSpawnID,
- wTemptedMon,
- bAftermath,
- fPosX,
- fPosY,
- fPosZ,
- wDIR
- )
- VALUES
- (
- @dwUserID, -- dwUserID
- @bSlot, -- bSlot
- @szNAME, -- szNAME
- @bRace, -- bRace
- @bCountry, -- bCountry
- @bOriCountry,
- @bSex, -- bSex
- @bRealSex, -- bRealSex
- @bClass, -- bClass
- @bLevel, -- bLevel
- @bHair, -- bHair
- @bFace,
- @bBody,
- @bPants,
- @bHand,
- @bFoot,
- @dwExp,
- @dwHP,
- @dwMP,
- @wSkillPoint,
- 0,
- 0,
- 0,
- 0,
- @wSpawnID,
- 0,
- 0,
- @fPosX,
- @fPosY,
- @fPosZ,
- @wDIR
- )
- SET @dwCharID = @@IDENTITY
- INSERT INTO TINVENTABLE
- (
- dwCharID,
- bInvenID,
- wItemID,
- dEndTime
- )
- VALUES
- (
- @dwCharID,
- 255,
- 3,
- 0
- )
- INSERT INTO TINVENTABLE
- (
- dwCharID,
- bInvenID,
- wItemID,
- dEndTime
- )
- VALUES
- (
- @dwCharID,
- 254,
- 2,
- 0
- )
- INSERT INTO TCABINETTABLE VALUES(@dwCharID, 0, 1)
- INSERT INTO TSKILLTABLE SELECT @dwCharID, wSkillID, 1, 0 FROM TSTARTSKILL WHERE bClassID=@bClass
- COMMIT TRAN TCREATECHAR
- DECLARE @bStartInven TINYINT
- DECLARE @bStartSlot TINYINT
- DECLARE @bStartChartType TINYINT
- DECLARE @wStartItemID SMALLINT
- DECLARE @bStartCount TINYINT
- DECLARE CUR_STARTITEM CURSOR FOR
- SELECT bInven, bSlot, bChartType, wItemID, bCount FROM TSTARTITEMCHART WHERE bCountry=@bCountry AND bClass = @bClass
- OPEN CUR_STARTITEM
- FETCH NEXT FROM CUR_STARTITEM INTO @bStartInven, @bStartSlot, @bStartChartType, @wStartItemID, @bStartCount
- WHILE @@FETCH_STATUS = 0
- BEGIN
- EXEC TPutItemInInven @dwCharID, @bStartInven, @bStartSlot, @bStartChartType, @wStartItemID, @bStartCount
- FETCH NEXT FROM CUR_STARTITEM INTO @bStartInven, @bStartSlot, @bStartChartType, @wStartItemID, @bStartCount
- END
- CLOSE CUR_STARTITEM
- DEALLOCATE CUR_STARTITEM
- -- 편지보내기 ------------------------------------------------------------------------------------
- DECLARE @dwPostID INT
- DECLARE @dwRecvID INT
- DECLARE @szTitle VARCHAR(256)
- DECLARE @szMessage VARCHAR(2048)
- DECLARE @bLenTitle BINARY(4)
- DECLARE @bLenMessage BINARY(4)
- DECLARE @szT VARCHAR(8)
- DECLARE @szM VARCHAR(8)
- DECLARE @dateCreated SMALLDATETIME
- SET @dateCreated = GetDate()
- SET @szTitle = ':)'
- SET @szMessage = ':)
- ' SET @bLenTitle = DATALENGTH(@szTitle)
- SET @bLenMessage = DATALENGTH(@szMessage)
- SET @szT = RIGHT(master.dbo.fn_sqlvarbasetostr(@bLenTitle), 8)
- SET @szTitle = @szT + @szTitle
- SET @szM = RIGHT(master.dbo.fn_sqlvarbasetostr(@bLenMessage), 8)
- SET @szMessage = @szM + @szMessage
- EXEC TSavePost @dwPostID OUTPUT, @dwRecvID OUTPUT, 0, @dwCharID, @szName, ':)',@szTitle,@szMessage,0,0,0,0,0,@dateCreated
- -----------------------------------------------------------------------------------------------------------------------------
- UPDATE TGLOBAL_GSP.DBO.TALLCHARTABLE SET dwCharID = @dwCharID WHERE dwSeq = @dwCharSeq
- IF EXISTS( SELECT bClassID FROM TSTARTRECALL WHERE bClassID = @bClass AND bCountryID = @bCountry)
- BEGIN
- DECLARE @dwMonID INT
- DECLARE @wMonTemp SMALLINT
- DECLARE @dwATTR INT
- DECLARE @dwMaxHP INT
- DECLARE @dwMaxMP INT
- SET @wMonTemp = 0
- SELECT @wMonTemp = wMonID FROM TSTARTRECALL WHERE bClassID = @bClass AND bCountryID = @bCountry
- IF(@wMonTemp > 0)
- BEGIN
- SELECT @dwATTR = wSummonAttr FROM TMONSTERCHART WHERE wID= @wMonTemp
- SELECT @dwMaxHP=dwMaxHP, @dwMaxMP = dwMaxMP FROM TMONATTRCHART WHERE wID=@dwATTR AND bLevel=1
- UPDATE TCHARTABLE SET wTemptedMon = @wMonTemp WHERE dwCharID = @dwCharID
- SET @dwATTR = @dwATTR + POWER(2,16)
- EXEC TCreateRecallMon
- @dwMonID OUTPUT,
- @dwCharID,
- @wMonTemp,
- 0,
- @dwATTR,
- 1,
- @dwMaxHP,
- @dwMaxMP,
- 1,
- @fPosX,
- @fPosY,
- @fPosZ,
- 0
- END
- END
- IF NOT EXISTS(SELECT dwUserID FROM TPETTABLE WHERE dwUserID = @dwUserID)
- RETURN @@ERROR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement