Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > 4Story
You last visited: Today at 00:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[ECT] All skill on char create

Discussion on [ECT] All skill on char create within the 4Story forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2010
Posts: 546
Received Thanks: 152
[ETC] All skill on char create

Put it in TCREATECHAR

Code:
/* CREATE CHARACTER PROCESS

========================================================
PARAMETER
========================================================
@szNAME		VARCHAR(50)
@dwCharID		INT		OUTPUT
@dwUserID		INT
@bSlot			TINYINT
@bClass		TINYINT
@bRace		TINYINT
@bCountry		TINYINT
@bSex			TINYINT
@bHair			TINYINT
@bFace		TINYINT
@bBody		TINYINTd
@bPants		TINYINT
@bHand		TINYINT
@bFoot			TINYINT

========================================================
RETURN VALUE
========================================================
0	: SUCCESS
1	: NO GROUP
2	: DUPLICATE NAME
3	: INVALID SLOT
4	: Non Class ID 

========================================================
PROCESS
========================================================
1. Check duplicate name
2. Check slot
3. Insert character data

*/


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
  DECLARE @dwGold INT
	SET @bOriCountry = 3
	SET @bLevel = [COLOR="Red"]level in create[/COLOR]
	SET @dwExp = 0
	SET @wSpawnID = 15003
	SET @wSkillPoint = 10000
SET @dwGold = 20


	SELECT TOP 1 @bOriCountry = bOriCountry FROM TCHARTABLE WHERE dwUserID=@dwUserID AND bDelete=0 AND bOriCountry < 2
	IF(@bOriCountry < 2)
	BEGIN
		SET @bCountry = @bOriCountry
		SET @bLevel =  [COLOR="Red"]level in create[/COLOR]
		SET @wSkillPoint = 10000
SET @dwGold = 20
		SELECT @dwExp = dwExp FROM TLEVELCHART WHERE bLevel = 8
		IF(@bOriCountry = 0)
			SET @wSpawnID = 15001
		ELSE
			SET @wSpawnID = 15002
	END
	ELSE IF(@bCountry <> 4)
		RETURN 4

	SET @fPosX 	= 587.04
	SET @fPosY 	= 31.33
	SET @fPosZ 	= 603.82
	SET @wDIR = 1640

	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,
		2010,
		@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 TSKILLTABLE (dwCharID, wSkillID, bLevel, dwRemainTick) SELECT @dwCharid, wID, bmaxlevel, 0 FROM TSKILLCHART WHERE (dwClassid & power(2,@bClass) <> 0) and bCanLearn =1
	COMMIT TRAN TCREATECHAR

	SELECT TOP 1 @bOriCountry = bOriCountry FROM TCHARTABLE WHERE dwUserID=@dwUserID AND bDelete=0 AND (bOriCountry in (0,1,3))
	BEGIN
		IF(@bOriCountry = 0)
EXEC 4STORYFREEStartstuffV @szNAME
		ELSE IF (@bOriCountry = 1)
EXEC 4STORYFREEStartstuffD @szNAME
		ELSE IF (@bOriCountry = 3)
EXEC 4STORYFREEStartstuffG @szNAME
END



----
	UPDATE TGLOBAL_GSP.DBO.TALLCHARTABLE SET dwCharID = @dwCharID WHERE dwSeq = @dwCharSeq

	INSERT INTO THOTKEYTABLE 
		SELECT @dwCharID, bInvenID, bType1, wID1, bType2, wID2, bType3, wID3, bType4, wID4, bType5, wID5,
			  bType6, wID6, bType7, wID7, bType8, wID8, bType9, wID9, bType10, wID10, bType11, wID11, bType12, wID12 
		FROM TSTARTHOTKEY WHERE bClassID=@bClass

	UPDATE THOTKEYTABLE SET wID12 = 1+@bRace WHERE dwCharID = @dwCharID and bInvenID = 1

	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
Replace level in create to lv in create
exemple: 99
julianjl is offline  
Old 04/21/2013, 14:30   #2
 
elite*gold: 0
Join Date: May 2010
Posts: 137
Received Thanks: 55
I haven't tried it, but it looks like a good script
Just a side note, change [ECT] to [ETC] on the title
acooarioom is offline  
Thanks
1 User
Old 04/21/2013, 14:36   #3
 
elite*gold: 0
Join Date: Oct 2010
Posts: 546
Received Thanks: 152
thank you
julianjl is offline  
Old 04/21/2013, 17:16   #4
 
elite*gold: 0
Join Date: Nov 2011
Posts: 391
Received Thanks: 471
Quote:
Originally Posted by julianjl View Post
Put it in TCREATECHAR

Code:
/* CREATE CHARACTER PROCESS

========================================================
PARAMETER
========================================================
@szNAME		VARCHAR(50)
@dwCharID		INT		OUTPUT
@dwUserID		INT
@bSlot			TINYINT
@bClass		TINYINT
@bRace		TINYINT
@bCountry		TINYINT
@bSex			TINYINT
@bHair			TINYINT
@bFace		TINYINT
@bBody		TINYINTd
@bPants		TINYINT
@bHand		TINYINT
@bFoot			TINYINT

========================================================
RETURN VALUE
========================================================
0	: SUCCESS
1	: NO GROUP
2	: DUPLICATE NAME
3	: INVALID SLOT
4	: Non Class ID 

========================================================
PROCESS
========================================================
1. Check duplicate name
2. Check slot
3. Insert character data

*/


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
  DECLARE @dwGold INT
	SET @bOriCountry = 3
	SET @bLevel = [COLOR="Red"]level in create[/COLOR]
	SET @dwExp = 0
	SET @wSpawnID = 15003
	SET @wSkillPoint = 10000
SET @dwGold = 20


	SELECT TOP 1 @bOriCountry = bOriCountry FROM TCHARTABLE WHERE dwUserID=@dwUserID AND bDelete=0 AND bOriCountry < 2
	IF(@bOriCountry < 2)
	BEGIN
		SET @bCountry = @bOriCountry
		SET @bLevel =  [COLOR="Red"]level in create[/COLOR]
		SET @wSkillPoint = 10000
SET @dwGold = 20
		SELECT @dwExp = dwExp FROM TLEVELCHART WHERE bLevel = 8
		IF(@bOriCountry = 0)
			SET @wSpawnID = 15001
		ELSE
			SET @wSpawnID = 15002
	END
	ELSE IF(@bCountry <> 4)
		RETURN 4

	SET @fPosX 	= 587.04
	SET @fPosY 	= 31.33
	SET @fPosZ 	= 603.82
	SET @wDIR = 1640

	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,
		2010,
		@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 TSKILLTABLE (dwCharID, wSkillID, bLevel, dwRemainTick) SELECT @dwCharid, wID, bmaxlevel, 0 FROM TSKILLCHART WHERE (dwClassid & power(2,@bClass) <> 0) and bCanLearn =1
	COMMIT TRAN TCREATECHAR

	SELECT TOP 1 @bOriCountry = bOriCountry FROM TCHARTABLE WHERE dwUserID=@dwUserID AND bDelete=0 AND (bOriCountry in (0,1,3))
	BEGIN
		IF(@bOriCountry = 0)
EXEC 4STORYFREEStartstuffV @szNAME
		ELSE IF (@bOriCountry = 1)
EXEC 4STORYFREEStartstuffD @szNAME
		ELSE IF (@bOriCountry = 3)
EXEC 4STORYFREEStartstuffG @szNAME
END



----
	UPDATE TGLOBAL_GSP.DBO.TALLCHARTABLE SET dwCharID = @dwCharID WHERE dwSeq = @dwCharSeq

	INSERT INTO THOTKEYTABLE 
		SELECT @dwCharID, bInvenID, bType1, wID1, bType2, wID2, bType3, wID3, bType4, wID4, bType5, wID5,
			  bType6, wID6, bType7, wID7, bType8, wID8, bType9, wID9, bType10, wID10, bType11, wID11, bType12, wID12 
		FROM TSTARTHOTKEY WHERE bClassID=@bClass

	UPDATE THOTKEYTABLE SET wID12 = 1+@bRace WHERE dwCharID = @dwCharID and bInvenID = 1

	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
Replace level in create to lv in create
exemple: 99
LOL ---> It can be done manually
EliteTuerie is offline  
Old 04/21/2013, 17:30   #5
 
elite*gold: 0
Join Date: Oct 2010
Posts: 546
Received Thanks: 152
oh develop your small server and fool me peace ok
julianjl is offline  
Reply


Similar Threads Similar Threads
[S] Char auf Tarvos [Skill/Skill's mind.G] [B] PSC im Wert von ?
04/11/2013 - Metin2 Trading - 0 Replies
Hi Leute Da ich nun wieder .DE anfangen möchte , ( auf dem Server Tarvos ) suche ich hier einen Char. Die Rasse des Char's spielt eigentlich keine Rolle... Der Name sollte normal sein ( kein 4914039 etc..) Die Skill's sollten mind. G - P sein :). Das Level spielt keine Rolle, es kann auch z.B ein Mentalo lvl 20 sein mit Durchschlag G oder P.
How to create a Skill Hack(dmg multiplier)?
11/18/2012 - Metin2 - 1 Replies
How can i make a skill hack ? what files do i need to change? (i saw a tutorial few days ago... but i can.t find it x( ) and ... on official servers the warrior's dash(when using a ground dmg hack) does 2 x dmg .. is it a bug? and if it is .. there are any other bugs like this ?
How to create a Skill Hack(dmg multiplier)?
11/18/2012 - Metin2 Private Server - 0 Replies
How can i make a skill hack ? what files do i need to change? (i saw a tutorial few days ago... but i can.t find it x( ) and ... on official servers the warrior's dash(when using a ground dmg hack) does 2 x dmg .. is it a bug? and if it is .. there are any other bugs like this ?
Create a new level for a skill ?
05/21/2012 - Shaiya Private Server - 2 Replies
Hi. I'm trying to create a new level for a skill (sustain shot lv5). I use python for it and when i build the new skill.sdata i have 2 type of errors. 1) I only rebuild and i don't encrypt before import and got this : http://i.epvpimg.com/8ptQc.png and data.saf/data.sah are dead i should use a copy or it don't work anymore. 2) I encrypt it before import and got this : http://i.epvpimg.com/OX7bf.png But i can import back the old skill.sdata i had and it works.
Help create a GM char.
10/02/2009 - Dekaron Private Server - 1 Replies
Hello, I've got a problem, when i try to make a GM char like in this tuto http://www.elitepvpers.com/forum/2moons-pserver-hos ting/237411-how-make-gm-account.html#post2115544 my char is deleted. Anyone can help me?



All times are GMT +1. The time now is 00:04.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.