ÇáãæÖæÚ: Íá
ÚÑÖ ãÔÇÑßÉ æÇÍÏÉ
ÞÏíã 21-11-2014, 09:04 AM   #6

Mahmoud Rashwan
ÚÖæ ÝÖì



ÇáÕæÑÉ ÇáÑãÒíÉ Mahmoud Rashwan


• ÇáÇäÜÊÜÓÜÇÈ » Oct 2008
• ÑÞÜã ÇáÚÜÖÜæíÜÉ » 37620
• ÇáãÔÜÜÜÇÑßÜÇÊ » 3,135
• ÇáÜÏæáÜÉ » ÝæÞ ÇáÓØæÍ
• ÇáÜåÜæÇíÜÉ » ÇáÊÎÑíÈ
• ÇÓÜã ÇáÜÓÜíÜÑÝÜÑ » No Server
• ÇáÜÌÜäÜÓ » Male
• äÞÜÇØ ÇáÊÞííã » 55
Mahmoud Rashwan ÌÜíÜÏ

Mahmoud Rashwan ÛíÑ ãÊæÇÌÏ ÍÇáíÇð


ÅÑÓÇá ÑÓÇáÉ ÚÈÑ AIM Åáì Mahmoud Rashwan

ÇÝÊÑÇÖí



New Query
ßæÏ PHP:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewChar]    Script Date: 11/21/2014 7:52:07 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




ALTER 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(CharID) FROM _User WITH (NOLOCK) WHERE 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 (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)      
    
VALUES (@RefCharID, @CharName, @CharScale, 20, 20, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport, 45,      
                
GetDate(), 1, 1, 0, 0, 0, 200,200, 1, 1, 1, 1)      
    
    
SET @NewCharID = @@IDENTITY        
    
IF (@@ERROR <> 0 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(CharID, Slot, ItemID)        
      
SELECT @NewCharID, 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 @ItemID BIGINT        
    SET 
@ItemID = 0        
    
-- ìƒ�ê°‘        
    
IF (@RefMailID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 1, @RefMailID, @DurMail        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -8        
        END        
    END        
    
-- ë°”ì§€        
    
IF (@RefPantsID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 4, @RefPantsID, @DurPants        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -9        
        END        
    END        
    
-- Boots        
    
IF (@RefBootsID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 5, @RefBootsID, @DurBoots        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -10        
        END        
    END        
    
-- Weapon        
    
IF (@RefWeaponID <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 6, @RefWeaponID, @DurWeapon        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -11        
        END        
    END        
    
-- ë°©íŒ¨        
    
IF (@RefShield <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @RefShield, @DurShield        
        
IF (@ItemID <= 0)        
        
BEGIN        
            ROLLBACK TRANSACTION        
            
RETURN -12        
        END        
    END        
    
-- í˜¹ì‹œ default로 ì„*íƒ�한 ë¬´ê¸°ê°€ í™œì�´ë�¼ë©´ í™”ì‚´ 250개들ì�´ í™œí†µë�„ í•¨ê»˜ ì¤€ë‹¤. ì£*치?        
    IF (@
DefaultArrow <> 0)        
    
BEGIN        
        EXEC 
@ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @DefaultArrow, 250        
        
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(CharID, Slot, ItemID)        
      
SELECT @NewCharID, 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 @
country tinyINT        
    EXEC 
@country = _GetObjCountry @RefCharID        
           
    INSERT INTO _CharSkillMastery 
(CharID, MasteryID, Level)        
    
SELECT @NewCharID, MasteryID, 0        
    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 @NewCharID, SkillID, 1        
    FROM  _RefCharDefault_Skill  with
(nolock)      
    
WHERE Race = @country or Race = 3        
    
IF (@@error <> 0)        
    
BEGIN        
        ROLLBACK TRANSACTION        
        
RETURN -16        
    END        
    
-----------------------------------------------------------------------------        
    -- 
기본 í€˜ìŠ¤íŠ¸ ë„£ì–´ì£¼ê¸°
    
-----------------------------------------------------------------------------        
    
INSERT INTO _CharQuest (CharID, QuestID, Status, AchievementCount, StartTime, EndTime, QuestData1, QuestData2)        
    
SELECT @NewCharID, ID, 1, 0, getdate(), getdate(), 0, 0        
    FROM _RefQuest
    WHERE CodeName in 
(SELECT CodeName FROM _RefCharDefault_Quest  with(nolock) WHERE (Race = @country 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(@NewCharID)        
    IF (@@
ERROR <> 0)        
    
BEGIN        
        ROLLBACK TRANSACTION        
        
RETURN -18        
    END         
          
    
-----------------------------------------------------------------------------        
    -- 
Trijob ì±„워넣기!!!!!        
    -----------------------------------------------------------------------------        
    
INSERT INTO _CharTrijob VALUES (@NewCharID, 0, 1, 0, 0, 0)        
    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