ÇáãæÞÚ ÇáÚÑÈí ÇáÇæá ááÚÈÉ Silkroad Online

ÇáãæÞÚ ÇáÚÑÈí ÇáÇæá ááÚÈÉ Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   ÞÓã ÇáÇÓÆáÉ æ ÇáÇÓÊÝÓÇÑÇÊ áÚãá ÇáÓíÑÝÑÇÊ ÇáÎÇÕÉ (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   ãÔßáå Ýí ÇáÔÎÕíå (https://silkroad4arab.com/vb/showthread.php?t=616674)

hassanmohamed 18-06-2017 03:55 AM

ãÔßáå Ýí ÇáÔÎÕíå
 
2 ãÑÝÞ
íÇÑíÊ ÇáÑÏ ÓÑíÚÇ æÔßÑÇ

Legendr 19-06-2017 07:01 PM

ÑÏ: ãÔßáå Ýí ÇáÔÎÕíå
 
ÔæÝ Çíå Çáí ÇäÊ ÛíÑÊå Ýí ADDNew Char ÚáÔÇä ÇäÊ ÚãáÊ ÍÇÌå ÛáØ Çæ ÈÏá ÍÇÌÇÊ Ïíå ÈÏá Çáí ÚäÏß
ßæÏ PHP:

USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewChar]    Script Date: 22/02/2015 07:33:11 ã ******/
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, HwanLevel)      
    
VALUES (@RefCharID, @CharName, @CharScale, 20, 20, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport, 109,      
                
GetDate(), 1, 1, 1000000, 0, 1000000, 200,200, 1, 1, 1, 1, 0)      
    
    
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)        
              
    -- 
Quick Slot Ã�¤Âº¸ Ã€ÃºÃ€Ã¥Â¿ë!!!        
    
exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...        

COMMIT TRANSACTION        
          
RETURN @NewCharID 



ÇáÓÇÚÉ ÇáÂä 04:58 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions, Inc.