07-01-2017, 04:59 AM   #2

Dev.Myth



  Dev.Myth

CrossFire

May 2010
70996
3,554
Silkroad Service
Private Server
Male
15
Dev.Myth

Dev.Myth


   Yahoo  Dev.Myth

: _AddNewChar



thedeathlist ,,, [ ]

Msg 208, Level 16, State 1, Line 2
Invalid object name 'sys.sql_moudels'.
:D
USE SRO_VT_SHARD
SELECT 
FROM sys.all_sql_modules WHERE definition like '%_AddTimedJob%' 




CREATE   procedure [dbo].[_AddTimedJob

CREATE   procedure 
[dbo].[_AddTimedJob]
@
CharID            int,
@
Category        tinyint,
@
JobID            int,
@
TimeToKeep    int,
@
Data1            int,
@
Data2            int,
--
##begin due to develop composite item
@Data3            int,
@
Data4            int,
@
Data5            int,
@
Data6            int,
@
Data7            int,
@
Data8            int,
@
Serial64        bigint,
@
JID            int
--##end due to develop composite item
as
    if (
not exists (select CharID from _Char with (nolockwhere CharID = @CharID))
        return -
1
    
if (@TimeToKeep <= 0)
        return -
2
    
declare @NewJobID int
    set 
@NewJobID 0
    
--##begin due to develop composite item
    
insert into _TimedJob(CharID,Category,JobID,TimeToKeep,Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8,Serial64,JID)
    
values(@CharID, @Category, @JobID, @TimeToKeep, @Data1, @Data2, @Data3, @Data4, @Data5, @Data6, @Data7, @Data8, @Serial64, @JID)
    --
##end due to develop composite item
    
set @NewJobID = @@identity
    
if (@@error <> or @@rowcount 0)
        return -
3
    
return @NewJobID 



--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--    
pet_skill_item (ÃÖÈ)        
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

CREATE PROCEDURE [dbo].[_AddTimedJobForPet]
    @
CharID            int,
    @
Category        tinyint,
    @
JobID            int,
    @
TimeToKeep        int,
    @
Data1            int,
    @
Data2            int,
    @
Data3            int,
    @
Data4            int,
    @
Data5            int,
    @
Data6            int,
    @
Data7            int,
    @
Data8            int,
    @
Serial64        bigint
as
    if (
not exists (select ID from _CharCOS with (nolockwhere ID = @CharID))
        return -
1

    
if (@TimeToKeep <= 0)
        return -
2

    
declare @NewJobID int
    set 
@NewJobID 0

    insert into _TimedJobForPet values
(@CharID, @Category, @JobID, @TimeToKeep, @Data1, @Data2, @Data3, @Data4, @Data5, @Data6, @Data7, @Data8, @Serial640)
    
set @NewJobID = @@identity

    
if (@@error <> or @@rowcount 0)
        return -
3

    
return @NewJobID

--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
USE SRO_VT_SHARD
SELECT 
FROM sys.all_sql_modules WHERE definition like '%_AddNewChar%' 


-- ÄÅÍ ýºÇÏ ÇÁÎÃÀú öÁÇÏ¿ ÄÅÍ ýº Ã_CharTrijob¿¡ ÄÚå Ãß¡ÇÏÏ ÇÑÙ.
CREATE PROCEDURE [dbo].[_AddNewChar_THINH]
    @
UserJID            INT,
    @
Accname             Varchar(64),
    --@
CharSlot            INT,
    @
RefCharID            INT,
    @
CharName            varchar (64),
    @
CharScale            tinyINT,
    @
StartRegionID            INT,
    @
StartPos_X            real,
    @
StartPos_Y            real,
    @
StartPos_Z            real,
    @
DefaultTeleport            INT,
    @
RefMailID            INT,
    @
RefPantsID            INT,
    @
RefBootsID            INT,
    @
RefWeaponID            INT,
    @
DurMail            tinyINT,
    @
DurPants            tinyINT,
    @
DurBoots            tinyINT,
    @
DurWeapon            tinyINT,
    @
DefaultArrow            INT
AS
SET NOCOUNT ON
    
DECLARE @temp            INT    
    
DECLARE @NewCharID        INT
    SET 
@NewCharID 0    
    
    
-----------------------------------------------------------------------------
    -- 
1. ÄÅÍ Ô Ñö¡ validÇÑ ÍÀÎÁö׸ºóÔÀÌ ÂÂÁö ÕÀú ÃÅÇÑÙ.
    -----------------------------------------------------------------------------
    
/* -- commented by novice. for server integration.
    IF (@CharSlot = 0)
        BEGIN SELECT @temp = CharID1 FROM _User  WITH (NOLOCK) WHERE UserJID = @UserJID END
    ELSE IF (@CharSlot = 1)
        BEGIN SELECT @temp = CharID2 FROM _User  WITH (NOLOCK) WHERE UserJID = @UserJID END
    ELSE IF (@CharSlot = 2)
        BEGIN SELECT @temp = CharID3 FROM _User  WITH (NOLOCK) WHERE UserJID = @UserJID END
    ELSE    
        BEGIN    -- ¡ÉÇÑ ÄÅÍ ÔÀº 1,2,3 ÀÌÔ 3 ÓÀÌó*!
            ROLLBACK TRANSACTION
            RETURN -1
        END
    IF (@temp <> 0)
    BEGIN
        -- ºó ÔÀÌ ÆÏÇΠȿ!
        ROLLBACK TRANSACTION
        RETURN -2
    END
    */
    
-- start by novice.
    
SELECT @temp count(CharIDFROM _User WITH (NOLOCKWHERE UserJID = @UserJID
    
IF (@temp >= 3)
    
BEGIN
        
-- Ê ÀÚª
        
RETURN -2
    END
    
-- finish by novice.
    -----------------------------------------------------------------------------
    -- 
2. ÄÅÍ Ãß¡ÇÏ
    
-----------------------------------------------------------------------------
    IF (@
CharScale 68)    -- 0100 0100 --> 68 ÀÌÙ!
    
BEGIN
        
-- ÄÅÍ ýº ÇÆÐºÄÉÀÏ ªÀÌ ÀÌóÇÏÙ
        RETURN -
3
    END
    EXEC 
@temp _IsExistingCharName @CharName
    
IF (@temp <> 0)
    
BEGIN
        
-- ÀÌÌ ¿ÁßÀΠÀÌÀÌóÂ?
        RETURN -
4
    END

    BEGIN TRANSACTION


    INSERT INTO _Char 
(    RefObjIDCharName16ScaleStrengthIntellectLatestRegion,PosXPosYPosZAppointedTeleportInventorySize,
                
LastLogoutCurLevelMaxLevelRemainGoldRemainStatPointRemainSkillPointHPMPJobLvl_TraderJobLvl_HunterJobLvl_Robber)
           
VALUES (@RefCharID, @CharName, @CharScale2020, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport45,
                
GetDate(), 11000200,200111)
    
    
SET @NewCharID = @@IDENTITY


--    INSERT INTO _User VALUES (@UserJID, @NewCharID)


    IF (@@
ERROR <> OR @@ROWCOUNT 0)
    
BEGIN
        
-- ÄÅÍ ýº ÇÆÐ!
        
ROLLBACK TRANSACTION
        
RETURN -5
    END
    INSERT INTO _User VALUES 
(@UserJID, @NewCharID)



    
/* -- commented by novice. for server integration.
    IF (@CharSlot = 0)        
    BEGIN
        UPDATE _User  SET CharID1 = @NewCharID WHERE UserJID= @UserJID
    END
    ELSE IF (@CharSlot = 1)
    BEGIN
        UPDATE _User    SET CharID2 = @NewCharID WHERE UserJID= @UserJID
    END
    ELSE IF (@CharSlot = 2)
    BEGIN
        UPDATE _User    SET CharID3 = @NewCharID WHERE UserJID = @UserJID
    END
    IF (@@ERROR <> 0)
    BEGIN
        -- 'UserÅÀ̺*ÀÇ ÄÅÍ Ô ÆÃ ÇÆÐ!
        ROLLBACK TRANSACTION
        RETURN -6
    END
    */
    
    
-- start by novice.
    -- 
ÀÌÁ Slot ÈÙ.. ׳É Insert ..
--    
INSERT INTO _User VALUES (@UserJID, @NewCharID)
    -- 
finish by novice.
    -----------------------------------------------------------------------------  
     -- 
3. Àåºñ Ô Ã¿ì  
     
-- [ÀκÅä Ô 48] + [ÀåºñÔ 13]  
     -----------------------------------------------------------------------------  
    
INSERT INTO _Inventory(CharIDSlotItemID
        
SELECT @NewCharIDCNT0
        FROM _RefDummySlot  WITH 
(NOLOCK)
        
WHERE CNT 61

    
IF (@@ERROR <> 0)
    
BEGIN
        
-- ÀκÅä ýº ÇÆÐ!
        
ROLLBACK TRANSACTION
        
RETURN -7
    END    
    
    
-- ðÆúÆÎ ÅÃÇÑ ÆÀÌÅÛÀ ÙàÖÁÖÀÚ...
    
/* ¿ä ø*Π ÁÀÇÇ ÀÖÙ.
     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 @ItemID BIGINT
    SET 
@ItemID 0

    
-- ó
    
IF (@RefMailID <> 0)
    
BEGIN
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID1, @RefMailID, @DurMail
        
IF (@ItemID <= 0)
        
BEGIN
            ROLLBACK TRANSACTION
            
RETURN -8
        END
    END
    
-- ÙÁö
    
IF (@RefPantsID <> 0)
    
BEGIN
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID4, @RefPantsID, @DurPants
        
IF (@ItemID <= 0)
        
BEGIN
            ROLLBACK TRANSACTION
            
RETURN -9
        END
    END
    
-- Boots
    
IF (@RefBootsID <> 0)
    
BEGIN
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID5, @RefBootsID, @DurBoots
        
IF (@ItemID <= 0)
        
BEGIN
            ROLLBACK TRANSACTION
            
RETURN -10
        END
    END
    
-- Weapon
    
IF (@RefWeaponID <> 0)
    
BEGIN
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID6, @RefWeaponID, @DurWeapon
        
IF (@ItemID <= 0)
        
BEGIN
            ROLLBACK TRANSACTION
            
RETURN -11
        END
    END
    
-- ÈàdefaultΠÅÃÇÑ ¡ ÈÀÌó È*ì 250ÀÌ ÈÅ뵵 ÇÔ ÁØÙÁÒÄ¡?
    IF (@
DefaultArrow <> 0)
    
BEGIN
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID7, @DefaultArrow250
        
IF (@ItemID <= 0)
        
BEGIN
            ROLLBACK TRANSACTION
            
RETURN -12
        END
    END
    
-----------------------------------------------------------------------------
    -- default 
skillÖÁÖ
    
-----------------------------------------------------------------------------
    DECLARE @
country tinyINT
    EXEC 
@country _GetObjCountry @RefCharID
    
    INSERT INTO _CharSkillMastery 
(CharIDMasteryID, [Level])
    
SELECT    @NewCharIDMasteryID0
    FROM    _RefCharDefault_SkillMastery WITH 
(NOLOCK)
    
WHERE    Race = @country or Race 3
    
IF (@@error <> 0)
    
BEGIN
        ROLLBACK TRANSACTION
        
RETURN -13
    END
    INSERT INTO _CharSkill 
(CharID,SkillID,Enable)
    
SELECT    @NewCharIDSkillID1
    FROM     _RefCharDefault_Skill WITH 
(NOLOCK)
    
WHERE    Race = @country or Race 3
    
IF (@@error <> 0)
    
BEGIN
        ROLLBACK TRANSACTION
        
RETURN -14
    END

    
-----------------------------------------------------------------------------
    -- 
TutorialQuestÖÁÖ
    
-----------------------------------------------------------------------------
    
INSERT INTO _CharQuest (CharIDQuestIDStatusAchievementCountStartTimeEndTimeQuestData1QuestData2)
    
SELECT @NewCharIDQuestID40getdate(), getdate(), 00
    FROM _RefCharDefault_Quest WITH 
(NOLOCK)
    
WHERE Race = @country or Race 3
    
IF (@@error <> 0)
    
BEGIN
        ROLLBACK TRANSACTION
        
RETURN -15
    END
    
-----------------------------------------------------------------------------
    -- Static 
Avatar Initial Record Ö
    
-----------------------------------------------------------------------------
    
INSERT INTO _StaticAvatar(CharIDvalues(@NewCharID)
    IF (@@
ERROR <> 0)
    
BEGIN
        ROLLBACK TRANSACTION
        
RETURN -16
    END    

    
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    --        
PATCH_READY ¿ªú ﰢ븳2 (ÃÖÀÎÈ)
    --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    -----------------------------------------------------------------------------
    -- 
Trijob Ã¿öÖ!!!!!
    -----------------------------------------------------------------------------
    
INSERT INTO _CharTrijob VALUES (@NewCharID01000)
    IF (@@
ERROR <> 0)
    
BEGIN
        
-- ÀκÅä ýº ÇÆÐ!
        
ROLLBACK TRANSACTION
        
RETURN -17
    END    

    
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    --        
PATCH_READY ¿ªú ﰢ븳2 (ÃÖÀÎÈ)
    --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
insert _AccountJID values(@Accname, @UserJID,0)
    -----------------------------------------------------------------------------
    -- 
CharList¿¡ ID ÖÁÖ
    
-----------------------------------------------------------------------------
    
INSERT _CharNameList VALUES(@CharName, @NewCharID)
    
COMMIT TRANSACTION

    exec _ADD_ITEM_EXTERN 
@CharName,'ITEM_ETC_E060118_60EXP_HELP',1,1
    exec _ADD_ITEM_EXTERN 
@CharName,'ITEM_ETC_E060118_100EXP_HELP',1,1

    
-- Quick Slot Áº ÀúÀå¿!!!  
    
exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...  

    RETURN @
NewCharID 
!
CREATE PROCEDURE [dbo].[_AddNewChar




CREATE PROCEDURE 
[dbo].[_AddNewChar]
    @
UserJID            INT,        
    --@
CharSlot            INT,        
    @
RefCharID            INT,        
    @
CharName            varchar (64),        
    @
CharScale            tinyINT,        
    @
StartRegionID            INT,        
    @
StartPos_X            real,        
    @
StartPos_Y            real,        
    @
StartPos_Z            real,        
    @
DefaultTeleport    INT,        
    @
RefMailID            INT,        
    @
RefPantsID            INT,        
    @
RefBootsID            INT,        
    @
RefWeaponID        INT,        
    @
RefShield            INT,        
    @
DurMail            tinyINT,        
    @
DurPants            tinyINT,        
    @
DurBoots            tinyINT,        
    @
DurWeapon            tinyINT,        
    @
DurShield            tinyINT,        
    @
DefaultArrow        INT        
AS    
    
SET NOCOUNT ON      

    
DECLARE @Slot  INT        
    
DECLARE @temp  INT        
            
    
DECLARE @NewCharID  INT        
    SET 
@NewCharID 0        
       
       
    
-----------------------------------------------------------------------------        
    -- 
1. ÄÅÍ Ô Ñö¡ validÇÑ ÍÀÎÁö׸ºóÔÀÌ ÂÂÁö ÕÀú ÃÅÇÑÙ.        
    -----------------------------------------------------------------------------        
         
    -- 
start by novice.        
    
SELECT @temp count(CharIDFROM _User WITH (NOLOCKWHERE UserJID = @UserJID        
          
    
IF (@temp >= 4)        
    
BEGIN        
        
-- Ê ÀÚª        
        
RETURN -2        
    END        
    
-- finish by novice.        
      
    -----------------------------------------------------------------------------        
    -- 
2. ÄÅÍ Ãß¡ÇÏ        
    
-----------------------------------------------------------------------------        
    IF (@
CharScale 68) -- 0100 0100 --> 68 ÀÌÙ!        
    
BEGIN        
        
-- ÄÅÍ ýº ÇÆÐºÄÉÀÏ ªÀÌ ÀÌóÇÏÙ!         
        RETURN -
3        
    END
        
    EXEC 
@temp _IsExistingCharName @CharName        
    
IF (@temp <> 0)        
    
BEGIN        
        
-- ÀÌÌ ¿ÁßÀΠÀÌÀÌóÂ?        
        RETURN -
4        
    END        
    
BEGIN TRANSACTION
    
    
-- ÀÎøÃºÅÛÀÌ À¿ÇÁö¿¡ WorldID¿Í 1ªÀ õ Ö ÁÖúÙ!      
    
INSERT INTO _Char (RefObjIDCharName16ScaleStrengthIntellectLatestRegion,PosXPosYPosZAppointedTeleportInventorySize,      
                
LastLogoutCurLevelMaxLevelRemainGoldRemainStatPointRemainSkillPointHPMPJobLvl_TraderJobLvl_HunterJobLvl_RobberWorldID)      
    
VALUES (@RefCharID, @CharName, @CharScale2020, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport45,      
                
GetDate(), 11000200,2001111)      
    
    
SET @NewCharID = @@IDENTITY        
    
IF (@@ERROR <> OR @@ROWCOUNT 0)        
    
BEGIN        
        
-- ÄÅÍ ýº ÇÆÐ!        
        
ROLLBACK TRANSACTION        
        
RETURN -5        
    END        
        
           
    
-- start by novice.        
    -- 
ÀÌÁ Slot ÈÙ.. ׳É Insert ..        
    
INSERT INTO _User VALUES (@UserJID, @NewCharID)        
    -- 
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(CharIDSlotItemID)        
      
SELECT @NewCharIDcnt0        
       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 @ItemID BIGINT        
    SET 
@ItemID 0        
    
-- ó        
    
IF (@RefMailID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID1, @RefMailID, @DurMail        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -8        
        END        
    END        
    
-- ÙÁö        
    
IF (@RefPantsID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID4, @RefPantsID, @DurPants        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -9        
        END        
    END        
    
-- Boots        
    
IF (@RefBootsID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID5, @RefBootsID, @DurBoots        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -10        
        END        
    END        
    
-- Weapon        
    
IF (@RefWeaponID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID6, @RefWeaponID, @DurWeapon        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -11        
        END        
    END        
    
-- æÆÐ        
    
IF (@RefShield <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID7, @RefShield, @DurShield        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -12        
        END        
    END        
    
-- ÈàdefaultΠÅÃÇÑ ¡ ÈÀÌó È*ì 250ÀÌ ÈÅ뵵 ÇÔ ÁØÙÁÒÄ¡?        
    IF (@
DefaultArrow <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID7, @DefaultArrow250        
        
IF (@ItemID <= 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(CharIDSlotItemID)        
      
SELECT @NewCharIDcnt0
       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 @
country tinyINT        
    EXEC 
@country _GetObjCountry @RefCharID        
           
    INSERT INTO _CharSkillMastery 
(CharIDMasteryIDLevel)        
    
SELECT @NewCharIDMasteryID0        
    FROM _RefCharDefault_SkillMastery  with
(nolock)      
    
WHERE Race = @country or Race 3        
    
IF (@@error <> 0)        
    
BEGIN        
        ROLLBACK TRANSACTION        
        
RETURN -15        
    END        
    INSERT INTO _CharSkill 
(CharID,SkillID,Enable)        
    
SELECT @NewCharIDSkillID1        
    FROM  _RefCharDefault_Skill  with
(nolock)      
    
WHERE Race = @country or Race 3        
    
IF (@@error <> 0)        
    
BEGIN        
        ROLLBACK TRANSACTION        
        
RETURN -16        
    END        
    
-----------------------------------------------------------------------------        
    -- 
º ÄºÆ ÖÁÖ
    
-----------------------------------------------------------------------------        
    
INSERT INTO _CharQuest (CharIDQuestIDStatusAchievementCountStartTimeEndTimeQuestData1QuestData2)        
    
SELECT @NewCharIDID10getdate(), getdate(), 00        
    FROM _RefQuest
    WHERE CodeName in 
(SELECT CodeName FROM _RefCharDefault_Quest  with(nolockWHERE (Race = @country or Race 3) and RequiredLevel and Service 1)
    IF (@@
error <> 0)
    
BEGIN
        ROLLBACK TRANSACTION        
        
RETURN -17        
    END    
    
-----------------------------------------------------------------------------        
    -- Static 
Avatar Initial Record Ö        
    
-----------------------------------------------------------------------------        
    
INSERT INTO _StaticAvatar(CharIDvalues(@NewCharID)        
    IF (@@
ERROR <> 0)        
    
BEGIN        
        ROLLBACK TRANSACTION        
        
RETURN -18        
    END         
          
    
-----------------------------------------------------------------------------        
    -- 
Trijob Ã¿öÖ!!!!!        
    -----------------------------------------------------------------------------        
    
INSERT INTO _CharTrijob VALUES (@NewCharID01000)        
    IF (@@
ERROR <> 0)        
    
BEGIN        
        
-- ÀκÅä ýº ÇÆÐ!        
        
ROLLBACK TRANSACTION        
        
RETURN -19        
    END         
          
    
-----------------------------------------------------------------------------        
    -- 
CharList¿¡ ID ÖÁÖ        
    
-----------------------------------------------------------------------------        
    
INSERT _CharNameList VALUES(@CharName, @NewCharID)        
          
    
exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_E060118_60EXP_HELP',1,1      
    exec _ADD_ITEM_EXTERN 
@CharName,'ITEM_ETC_E060118_100EXP_HELP',1,1      
    exec _ADD_ITEM_EXTERN 
@CharName,'ITEM_ETC_SCROLL_RETURN_NEWBIE_01',20,1      
          
    
-- Quick Slot Áº ÀúÀå¿!!!        
    
exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...        

COMMIT TRANSACTION        
          
RETURN @NewCharID 

-- 2008.12.19  woos0
----------------------------------------------------------------------------------
-- 
ÈÀåÇÏ ÀκÅä¿¡ ÂàÃÖ ÇÑö¿¡ ÇÑ DummySlot (_RefDummySlotÀ
-- ÇöÀÁö ýºÇÑ ÄÅÍ¿¡ ÖÁØÙ. (ÀÌÈÄ ýºÇÏ ÄÅÍ öÁÈ _AddNewChar¿¡Ã)
--
-- 
Á 61 13(Àåºñ) + 32(ºÀκ) + 16(ĺÆÈÀå) ) ¿¡ÈÀåÇÏ¿
-- ÇöÀ 109 13(Àåºñ) + 32(ºÀκ) + 20(ĺÆÈÀå) + 32(ÇÅ ÈÀå ÆÀÌÅÛ) + 10(ÃßÈÄ È) )
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
-- 
ÀÌø ÈÀåÀΠ109 Áö ¡ÇÎÇÁÎÃÀú óÀΠÀκ ªÀΠ61 108  ÀÔÂÇØ ÇÁö,
-- 
ÃßÈÄ ÇÑø õ ÈÀåÇÒ ¡ÉºÀ ¿ÎÇÏ¿ ÃÀÛàºö Î õ ÞÏ ÇÏ¿Ù.
----------------------------------------------------------------------------------

CREATE PROCEDURE _InsertDummySlotForExtention
    
@BeginIndex    tinyint,
    @
EndIndex    tinyint
AS

-- 
ÀÔÂÇÑ Àκ øÈ ÀÈ¿º Ë
---------------------------------
IF(@
BeginIndex > @EndIndex)
BEGIN
    
PRINT('ÃÀÛ Àκ øÈ¡ ¡ Àκ øÈºÙ ÅÙ!!!')
    RETURN
END

-- Ãß¡ÇÒ õÌÔ¿¡ ÀÌÌ Ù ÆÀÌÅÛÀÌ ÀÖÂÁö ÈÀÎ
---------------------------------------------------
IF 
EXISTS (SELECT CharID FROM _Inventory WHERE Slot >= @BeginIndex AND Slot <= @EndIndex AND ItemID <> 0)
BEGIN
    
PRINT('Ãß¡ÇÒ õÌÔ¿¡ ÀÌÌ Ù ÆÀÌÅÛÀÌ ÀÖÙ!!!')
    RETURN
END

-- Á ÀκÅä¿¡ Àκ À¿¡ ÇØÇÏ ÔÀÌ ÀÖÀæ¿ì Á
--------------------------------------------------------------
DELETE _Inventory
WHERE Slot 
>= @BeginIndex AND Slot <= @EndIndex


BEGIN TRANSACTION

-- Á _Inventory¿¡ ÃߡǠDummySlot Ãß¡
--------------------------------------------
INSERT _Inventory (CharIDSlotItemID)
SELECT _Char.CharId_RefDummySlot.cnt0
FROM _Char
_RefDummySlot
WHERE _RefDummySlot
.cnt >= @BeginIndex and _RefDummySlot.cnt <= @EndIndex and _Char.CharId <> 0
ORDER BY _Char
.charid ASC


IF(@@ERROR 0)
BEGIN
    COMMIT TRANSACTION
END
ELSE
BEGIN
    ROLLBACK TRANSACTION
END 
:)
:)


:)


Dev.Myth :

Dev.Myth ; 07-01-2017 05:12 AM