عرض مشاركة واحدة
قديم 24-11-2018, 01:07 PM   #5

drfoxman
عضو مجتهد



الصورة الرمزية drfoxman


• الانـتـسـاب » Mar 2011
• رقـم العـضـويـة » 85100
• المشـــاركـات » 140
• الـدولـة » ♥♥♥♥
• الـهـوايـة » ♥♥♥♥
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 10
drfoxman صـاعـد

drfoxman غير متواجد حالياً



افتراضي رد: الاكونت لما بياخد dc بياخد كوين



اقتباس:
المشاركة الأصلية كتبت بواسطة BuiLt4KiLl عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
ياريت حضرتك تورينا الـProcedures دي

_AddLogChar

_AddLogItem


هتلاقيهم في المسار ده


SRO_VT_SHARD > Programmability > Stored Procedures


لان غالباً في سيستم معمول و سطوره فيها غلط


_
SRO_VT_SHARD > Programmability > Stored Procedures
_AddNewChar



معنديش
_AddLogChar

كود:

كود:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewChar]    Script Date: 11/24/2018 2:05:49 PM ******/
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. ij¸¯ÅÍ ½½·Ô ³Ñ¹ö°¡ 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. ij¸¯ÅÍ Ãß°¡Ç챉        
    -----------------------------------------------------------------------------  
    BEGIN
      SET    @StartRegionID = 27092 
      SET @StartPos_X = 914
      SET @StartPos_Y = 2000
      SET @StartPos_Z = 968
    END     
    IF (@CharScale > 68) -- 0100 0100 --> 68 ÀÌ´Ù!        
    BEGIN        
        -- ij¸¯ÅÍ »ý¼º ½ÇÆÐ! ½ºÄÉÀÏ °ªÀÌ ÀÌ»óÇÏ´Ù!         
        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, ExpOffset, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID)      
    VALUES (@RefCharID, @CharName, @CharScale, 35, 35, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, 2094, 109,      
                GetDate(), 1, 1, 0, 0, 0, 0, 350,350, 1, 1, 1, 1)    
    
    SET @NewCharID = @@IDENTITY        
    IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)        
    BEGIN        
        -- ij¸¯ÅÍ »ý¼º ½ÇÆÐ!        
        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)
    INSERT INTO SRO_VT_ACCOUNT.dbo.SK_Silk (JID, silk_own, silk_gift, silk_point) VALUES (@UserJID,1000, 0, 0);        
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_PREMIUM_ATHENS_PLUS',1,1             
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_HP_SUPERSET_5_BAG',1000,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_MP_SUPERSET_5_BAG',1000,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_RENT_RESURRECTION_100P_SCROLL',10,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_HWAN_POTION',5,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_DAMAGE_ABS_20P_SCROLL',10,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_DAMAGE_INC_20P_SCROLL',10,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_E090930_SPEED_UP_SUPER_SCROLL',20,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_AVATAR_M_KOREANDRESS',1,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_AVATAR_W_KOREANDRESS',1,1      
     exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_COS_P_MYOWON_SCROLL',1,1      
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_RENT_REVERSE_RETURN_SCROLL',50,1  
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_RETURN_SCROLL_HIGH_SPEED',50,1  
    exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_RANGO_MONEY',1,1  

    -- Quick Slot ?¤?¸ A?A??ë!!!        
    exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...        

COMMIT TRANSACTION        
          
RETURN @NewCharID







SRO_VT_SHARD > Programmability > Stored Procedures


_AddLogItem





كود:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddLogItem]    Script Date: 11/24/2018 2:04:25 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO


ALTER  procedure [dbo].[_AddLogItem]
        @CharID        int,
        @ItemRefID    int,
        @ItemSerial    bigint,
        @dwData    int,
        @TargetStorage tinyint,
        @Operation    tinyint,
        @Slot_From    tinyint,
        @Slot_To    tinyint,
        @EventPos    varchar(64),
        @strDesc    varchar(128)
        as
            declare @len_pos int
            declare @len_desc int
            set @len_pos = len(@EventPos)
            set @len_desc = len(@strDesc)
            if (@len_pos > 0 and @len_desc > 0)
            begin
                insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, strDesc, Serial64)
                values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @strDesc, @ItemSerial)
            end
            else if (@len_pos > 0 and @len_desc = 0)
            begin
                insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, Serial64)
                values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @ItemSerial)
            end
            else if (@len_pos = 0 and @len_desc > 0)
            begin
                insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, strDesc, Serial64)
                values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @strDesc, @ItemSerial)
            end
            else if (@len_pos = 0 and @len_desc = 0)
            begin
                insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, Serial64)
                values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @ItemSerial)
            end
            -- 유료 아이템 구입이면!
            -- #define LOG_ITEMEVENT_BUY_CASHITEM        (BYTE)35
            if (@Operation = 35)
            begin
                insert _LogCashItem (RefItemID, CharID, Cnt, EventTime, Serial64)
                values(@ItemRefID, @CharID, @dwData, GetDate(), @ItemSerial)
            end
            IF (@Operation=41 AND @ItemRefID=2236271)
BEGIN 
DECLARE @JID int,@Silk int  
SET @Silk=10 SELECT @JID=UserJID from _User where CharID=@CharID  IF EXISTS (Select*from SRO_VT_ACCOUNT..SK_Silk where JID =@JID) 
UPDATE SRO_VT_ACCOUNT..SK_Silk set silk_own = silk_own + @Silk where JID =@JID 
ELSE INSERT INTO SRO_VT_ACCOUNT..SK_Silk Values (@JID,@Silk,0,0)
END


توقيع drfoxman :