since there are plenty of "haw chenge start stat lwl start spawn pont" I decided to release a Template of my used _AddNewChar Proc.
This one is my outsourced one which is stored in a 3rd Database with custum columns. You can easy use it, just remove those custom columns.
Maybe some prefixes are missing (SRO_VT_SHARD.._TABLENAME). I started to add them, but I am to lazy to complete it.
ignore the calls of the procedure at the bottom.
And coz I am not as mainstream as the most:
#smdlb
PHP Code:
USE [SRO_VT_CUSTOM]
GO
/****** Object: StoredProcedure [dbo].[_AddNewCharModern] Script Date: 5/11/2016 2:49:16 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_AddNewCharModern] [MENTION=292919]user[/MENTION]JID INT,
- [MENTION=2018236]chars[/MENTION]lot INT, [MENTION=1326241]REF[/MENTION]CharID INT,
[MENTION=3898309]charname[/MENTION] varchar (64), [MENTION=2018236]chars[/MENTION]cale tinyINT, [MENTION=351783]start[/MENTION]RegionID INT, [MENTION=351783]start[/MENTION]Pos_X real, [MENTION=351783]start[/MENTION]Pos_Y real, [MENTION=351783]start[/MENTION]Pos_Z real, [MENTION=312108]DeFauLt[/MENTION]Teleport INT, [MENTION=1326241]REF[/MENTION]MailID INT, [MENTION=1326241]REF[/MENTION]PantsID INT, [MENTION=1326241]REF[/MENTION]BootsID INT, [MENTION=1326241]REF[/MENTION]WeaponID INT, [MENTION=1830489]refs[/MENTION]hield INT, [MENTION=1895009]durma[/MENTION]il tinyINT, [MENTION=822124]Durp[/MENTION]ants tinyINT, [MENTION=2828831]DurB[/MENTION]oots tinyINT, [MENTION=1319586]dur[/MENTION]Weapon tinyINT, [MENTION=4821630]durs[/MENTION]hield tinyINT, [MENTION=312108]DeFauLt[/MENTION]Arrow INT
AS
SET NOCOUNT ON
DECLARE [MENTION=303108]slot[/MENTION] INT
DECLARE [MENTION=337901]temp[/MENTION] INT
DECLARE [MENTION=993253]newchar[/MENTION]ID INT
SET [MENTION=993253]newchar[/MENTION]ID = 0
-----------------------------------------------------------------------------
-- 1. ij¸¯ÅÍ ½½·Ô ³Ñ¹ö°¡ validÇÑ °ÍÀÎÁö, ±×¸®°í ºó½½·ÔÀÌ ¸Â´ÂÁö ¸ÕÀú üũÇÑ´Ù.
-----------------------------------------------------------------------------
-- start by novice.
SELECT [MENTION=337901]temp[/MENTION] = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = [MENTION=292919]user[/MENTION]JID
IF [MENTION=337901]temp[/MENTION] >= 4)
BEGIN
-- ³Ê¹« ¸¹ÀÚ³ª
RETURN -2
END
-- finish by novice.
-----------------------------------------------------------------------------
-- 2. ij¸¯ÅÍ Ãß°¡Çϱâ
-----------------------------------------------------------------------------
IF [MENTION=2018236]chars[/MENTION]cale > 68) -- 0100 0100 --> 68 ÀÌ´Ù!
BEGIN
-- ij¸¯ÅÍ »ý¼º ½ÇÆÐ! ½ºÄÉÀÏ °ªÀÌ ÀÌ»óÇÏ´Ù!
RETURN -3
END
EXEC [MENTION=337901]temp[/MENTION] = _IsExistingCharName [MENTION=3898309]charname[/MENTION]
IF [MENTION=337901]temp[/MENTION] <> 0)
BEGIN
-- ÀÌ¹Ì »ç¿ëÁßÀÎ À̸§À̶ó´Âµ¥?
RETURN -4
END
BEGIN TRANSACTION
/**** Default Settings for new Chars ****/
------------------------------------------
declare
@ncharRace varchar(2) = 'CH'
[MENTION=5796621]Nstar[/MENTION]tStat smallint = 20 -- Start Stat Point, default: 20
[MENTION=5796621]Nstar[/MENTION]tLvl tinyint = 1 -- Start Level, default: 1
[MENTION=5796621]Nstar[/MENTION]tInven int = 45 -- Start Inven, default: 45
[MENTION=5796621]Nstar[/MENTION]tGold bigint = 0 -- Start Gold
[MENTION=5796621]Nstar[/MENTION]tSP int = 0 -- Start SkillPoints
[MENTION=5796621]Nstar[/MENTION]tHWAN tinyint = 0 -- Start HwanLevel default: 0
[MENTION=4773749]nla[/MENTION]testRegion int = 23687
,@nPosX real = 1255
,@nPosY real = 244.286621
,@nPosZ real = 83
[MENTION=2813763]nde[/MENTION]fTeleport int = 2096 -- default assigned Teleporter
[MENTION=5655415]nrem[/MENTION]ainStat smallint = 0
set [MENTION=5655415]nrem[/MENTION]ainStat = [MENTION=5796621]Nstar[/MENTION]tLvl-1) * 3 --dynmaic Remain Stats based on [MENTION=5796621]Nstar[/MENTION]tLvl
------------------------------------------
/**** Default Settings for new Chars ****/
-- Àδø½Ã½ºÅÛÀÌ Àû¿ëµÇ¸é¼* ¸¶Áö¸·¿¡ WorldID¿Í 1°ªÀ» ´õ ³Ö¾î ÁÖ¾ú´Ù!
INSERT INTO _Char (RefObjID, CharName16, Scale, Strength, Intellect, LatestRegion,PosX, PosY, PosZ, AppointedTeleport, InventorySize,
LastLogout, CurLevel, MaxLevel, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID, HwanLevel, CharCreateDate)
VALUES [MENTION=1326241]REF[/MENTION]CharID, [MENTION=3898309]charname[/MENTION], [MENTION=2018236]chars[/MENTION]cale, [MENTION=5796621]Nstar[/MENTION]tStat, [MENTION=5796621]Nstar[/MENTION]tStat, [MENTION=4773749]nla[/MENTION]testRegion, @nPosX, @nPosY, @nPosZ, [MENTION=2813763]nde[/MENTION]fTeleport, [MENTION=5796621]Nstar[/MENTION]tInven,
GetDate(), [MENTION=5796621]Nstar[/MENTION]tLvl, [MENTION=5796621]Nstar[/MENTION]tLvl, [MENTION=5796621]Nstar[/MENTION]tGold, [MENTION=5655415]nrem[/MENTION]ainStat, [MENTION=5796621]Nstar[/MENTION]tSP, 200,200, 1, 1, 1, 1, [MENTION=5796621]Nstar[/MENTION]tHWAN, getdate())
SET [MENTION=993253]newchar[/MENTION]ID = @@IDENTITY
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
-- ij¸¯ÅÍ »ý¼º ½ÇÆÐ!
ROLLBACK TRANSACTION
RETURN -5
END
-- start by novice.
-- ÀÌÁ¦ Slot ¾È¾´´Ù.. ±×³É Insert ¸¸..
INSERT INTO _User VALUES [MENTION=292919]user[/MENTION]JID, [MENTION=993253]newchar[/MENTION]ID)
-- finish by novice.
-----------------------------------------------------------------------------
-- 3-1. Àåºñ ½½·Ô ä¿ì±â
-- [Àκ¥Å丮 ½½·Ô 96°³] + [Àåºñ½½·Ô 13°³] <- Àκ¥Å丮 È®Àå ¼*ºñ½º ÈÄ 48°³¿¡¼* 96°³·Î Áõ°¡!!!(woos0)
-----------------------------------------------------------------------------
--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
INSERT INTO _Inventory(CharID, Slot, ItemID)
SELECT [MENTION=993253]newchar[/MENTION]ID, cnt, 0
FROM _RefDummySlot with( nolock )
WHERE cnt < 109
IF (@@ERROR <> 0)
BEGIN
-- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
ROLLBACK TRANSACTION
RETURN -7
END
--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
-- µðÆúÆ®·Î ¼±ÅÃÇÑ ¾ÆÀÌÅÛÀ» ´Ù½Ã ³Ö¾îÁÖÀÚ...
/* ¿ä·± ¼ø¼*·Î Á¤ÀǵǾî ÀÖ´Ù.
0: EQUIP_SLOT_HELM
1: EQUIP_SLOT_MAIL,
2: EQUIP_SLOT_SHOULDERGUARD,
3: EQUIP_SLOT_GAUNTLET,
4: EQUIP_SLOT_PANTS,
5: EQUIP_SLOT_BOOTS,
6: EQUIP_SLOT_WEAPON,
7: EQUIP_SLOT_SHIELD or ARROW,
8: EQUIP_SLOT_EARRING,
9: EQUIP_SLOT_NECKLACE,
10: EQUIP_SLOT_L_RING,
11: EQUIP_SLOT_R_RING,
*/
DECLARE [MENTION=1134588]item[/MENTION]ID BIGINT
SET [MENTION=1134588]item[/MENTION]ID = 0
-- »ó°©
IF [MENTION=1326241]REF[/MENTION]MailID <> 0)
BEGIN
EXEC [MENTION=1134588]item[/MENTION]ID = _FN_ADD_INITIAL_EQUIP [MENTION=993253]newchar[/MENTION]ID, 1, [MENTION=1326241]REF[/MENTION]MailID, [MENTION=1895009]durma[/MENTION]il
IF [MENTION=1134588]item[/MENTION]ID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -8
END
END
-- ¹ÙÁö
IF [MENTION=1326241]REF[/MENTION]PantsID <> 0)
BEGIN
EXEC [MENTION=1134588]item[/MENTION]ID = _FN_ADD_INITIAL_EQUIP [MENTION=993253]newchar[/MENTION]ID, 4, [MENTION=1326241]REF[/MENTION]PantsID, [MENTION=822124]Durp[/MENTION]ants
IF [MENTION=1134588]item[/MENTION]ID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -9
END
END
-- Boots
IF [MENTION=1326241]REF[/MENTION]BootsID <> 0)
BEGIN
EXEC [MENTION=1134588]item[/MENTION]ID = _FN_ADD_INITIAL_EQUIP [MENTION=993253]newchar[/MENTION]ID, 5, [MENTION=1326241]REF[/MENTION]BootsID, [MENTION=2828831]DurB[/MENTION]oots
IF [MENTION=1134588]item[/MENTION]ID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -10
END
END
-- Weapon
IF [MENTION=1326241]REF[/MENTION]WeaponID <> 0)
BEGIN
EXEC [MENTION=1134588]item[/MENTION]ID = _FN_ADD_INITIAL_EQUIP [MENTION=993253]newchar[/MENTION]ID, 6, [MENTION=1326241]REF[/MENTION]WeaponID, [MENTION=1319586]dur[/MENTION]Weapon
IF [MENTION=1134588]item[/MENTION]ID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -11
END
END
-- ¹æÆÐ
IF [MENTION=1830489]refs[/MENTION]hield <> 0)
BEGIN
EXEC [MENTION=1134588]item[/MENTION]ID = _FN_ADD_INITIAL_EQUIP [MENTION=993253]newchar[/MENTION]ID, 7, [MENTION=1830489]refs[/MENTION]hield, [MENTION=4821630]durs[/MENTION]hield
IF [MENTION=1134588]item[/MENTION]ID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -12
END
END
-- Ȥ½Ã default·Î ¼±ÅÃÇÑ ¹«±â°¡ È°À̶ó¸é È*»ì 250°³µéÀÌ È°Åëµµ ÇÔ²² ÁØ´Ù. ÁÒÄ¡?
IF [MENTION=312108]DeFauLt[/MENTION]Arrow <> 0)
BEGIN
EXEC [MENTION=1134588]item[/MENTION]ID = _FN_ADD_INITIAL_EQUIP [MENTION=993253]newchar[/MENTION]ID, 7, [MENTION=312108]DeFauLt[/MENTION]Arrow, 250
IF [MENTION=1134588]item[/MENTION]ID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -13
END
END
-----------------------------------------------------------------------------
-- 3-2. ¾Æ¹ÙŸ Inventory ½½·Ô ä¿ì±â
-- [¾Æ¹ÙŸ Àκ¥Å丮 ½½·Ô 5°³]
-- APPLY_AVATAR_SYSTEMÀÌ Àû¿ëµÇ¸é¼* Ãß°¡µÇ´Â ºÎºÐ
-----------------------------------------------------------------------------
--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
INSERT INTO _InventoryForAvatar(CharID, Slot, ItemID)
SELECT [MENTION=993253]newchar[/MENTION]ID, cnt, 0
FROM _RefDummySlot with( nolock )
WHERE cnt < 5
IF (@@ERROR <> 0)
BEGIN
-- ¾Æ¹ÙŸ Àκ¥Å丮 »ý¼º ½ÇÆÐ!
ROLLBACK TRANSACTION
RETURN -14
END
--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
-----------------------------------------------------------------------------
-- default skill³Ö¾îÁÖ±â
-----------------------------------------------------------------------------
DECLARE [MENTION=1575172]Country[/MENTION] tinyINT
EXEC [MENTION=1575172]Country[/MENTION] = _GetObjCountry [MENTION=1326241]REF[/MENTION]CharID
INSERT INTO _CharSkillMastery (CharID, MasteryID, Level)
SELECT [MENTION=993253]newchar[/MENTION]ID, MasteryID, 0
FROM _RefCharDefault_SkillMastery with(nolock)
WHERE Race = [MENTION=1575172]Country[/MENTION] or Race = 3
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -15
END
INSERT INTO _CharSkill (CharID,SkillID,Enable)
SELECT [MENTION=993253]newchar[/MENTION]ID, SkillID, 1
FROM _RefCharDefault_Skill with(nolock)
WHERE Race = [MENTION=1575172]Country[/MENTION] or Race = 3
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -16
END
-----------------------------------------------------------------------------
-- ±âº» Äù½ºÆ® ³Ö¾îÁÖ±â
-----------------------------------------------------------------------------
INSERT INTO _CharQuest (CharID, QuestID, Status, AchievementCount, StartTime, EndTime, QuestData1, QuestData2)
SELECT [MENTION=993253]newchar[/MENTION]ID, ID, 1, 0, getdate(), getdate(), 0, 0
FROM _RefQuest
WHERE CodeName in (SELECT CodeName FROM _RefCharDefault_Quest with(nolock) WHERE (Race = [MENTION=1575172]Country[/MENTION] or Race = 3) and RequiredLevel = 1 and Service = 1)
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -17
END
-----------------------------------------------------------------------------
-- Static Avatar Initial Record ³Ö±â
-----------------------------------------------------------------------------
INSERT INTO _StaticAvatar (CharID) values [MENTION=993253]newchar[/MENTION]ID)
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -18
END
-----------------------------------------------------------------------------
-- Trijob ä¿ö³Ö±â!!!!!
-----------------------------------------------------------------------------
INSERT INTO _CharTrijob (CharID, JobType, [Level], Exp, Contribution, Reward) VALUES [MENTION=993253]newchar[/MENTION]ID, 0, 1, 0, 0, 0)
IF (@@ERROR <> 0)
BEGIN
-- Àκ¥Å丮 »ý¼º ½ÇÆÐ!
ROLLBACK TRANSACTION
RETURN -19
END
-----------------------------------------------------------------------------
-- CharList¿¡ ID ³Ö¾îÁÖ±â
-----------------------------------------------------------------------------
INSERT _CharNameList (CharName16, CharID ) VALUES [MENTION=3898309]charname[/MENTION], [MENTION=993253]newchar[/MENTION]ID)
-- Quick Slot Á¤º¸ ÀúÀå¿ë!!!
exec _AddNewClientConfig [MENTION=993253]newchar[/MENTION]ID -- by novice...... for saving client configurations...
-- ADD Chronyc.net START ITEMS
exec SRO_VT_CUSTOM..sys_addStartItems [MENTION=3898309]charname[/MENTION]
-- ADD Chronyc.net START Quests
exec SRO_VT_CUSTOM..sys_addStartQuests [MENTION=3898309]charname[/MENTION], @ncharRace
COMMIT TRANSACTION
RETURN [MENTION=993253]newchar[/MENTION]ID
Due to a converting Feature of EPVPERS here the Code posted at pastebin.
aaaaand attached as a .sql File