الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   ModelSwitch (https://silkroad4arab.com/vb/showthread.php?t=620841)

MazZziKa 12-11-2017 02:46 PM

ModelSwitch
 
لو سمحت عندي الموديل سويتش من أول دجري 11 لحد 15 بس ادوس علي أي واحده فيهم يرجع ال تاون ومفيش أي حاجه تتغير يبقى المشكله منين ..! ؟

Neoon 12-11-2017 04:57 PM

رد: ModelSwitch!!!!!!!!!!!
 
كود PHP:

USE [SRO_VT_SHARDLOG]
GO
/****** Object:  StoredProcedure [dbo].[_AddLogItem]    Script Date: 10/30/2017 2:55:41 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-------------------------------------------------------------------------------------------------------------------
-- 
Step 2
-- ±âأپ¸ ¾أ†أ€أŒأ…أ› ·أژ±× أ€أ”·أ‚ Stored procedure ¼أ¶أپ¤
-- DataBase            : Shard Log  
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),
  @
Gold        bigint            -- #ifdef EXTEND_GOLD_TYPE »أ°أ€أ”   
  
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, Gold)    -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @strDesc, @ItemSerial, @Gold)        -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
   
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, Gold)            -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @ItemSerial, @Gold)                -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼ 
   
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, Gold)            -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @strDesc, @ItemSerial, @Gold)                    -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼ 
   
end  
   
else if (@len_pos = 0 and @len_desc = 0)  
   
begin  
            insert _LogEventItem 
(EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, Serial64, Gold)                        -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @ItemSerial, @Gold)                            -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
   
end  
   
-- أ€¯·أ، ¾أ†أ€أŒأ…أ› ±¸أ€أ”أ€أŒ¸é!  
   -- 
#define LOG_ITEMEVENT_BUY_CASHITEM  (BYTE)35  
   
   
IF (@Operation = 41) 
BEGIN 
    
IF (@ItemRefID = 2128) -- Bandit den return scroll (ITEM_ETC_SCROLL_RETURN_THIEFDEN_01), will work only when MaxStack is 1 
    BEGIN 
        
/* 
         * Get latest region of character 
         */ 
        
DECLARE @IsBattleField BIT 
        SELECT 
@IsBattleField = IsBattleField 
            FROM 
[SRO_VT_SHARD].[dbo].[_Char] 
            
INNER JOIN [SRO_VT_SHARD].[dbo].[_RefRegion] 
            
ON [SRO_VT_SHARD].[dbo].[_Char].LatestRegion = [SRO_VT_SHARD].[dbo].[_RefRegion].wRegionID 
            WHERE 
[SRO_VT_SHARD].[dbo].[_Char].CharID = @CharID 
        
/* 
         * Scroll is used inside town 
         */ 
        
IF (@IsBattleField = 0) 
        
BEGIN 
            
DECLARE @COSID BIGINT 
            
DECLARE @ReFCharID INT 
            
DECLARE @TypeID4 INT 
            
/* 
             * Get any summoned COS by current character 
             * 
             * It's actually fine not to use CURSOR, so far I noticed that any summoned COS 
             * won't set "OwnerCharID", except for transport COS. 
             * But just to be sure, I put CURSOR in use. 
             */ 
            
SET NOCOUNT ON; 
            DECLARE 
CurCOS CURSOR FOR SELECT ID, RefCharID FROM [SRO_VT_SHARD].[dbo].[_CharCOS] WHERE OwnerCharID = @CharID ORDER BY ID ASC; 
            
OPEN CurCOS; 
            
FETCH NEXT FROM CurCOS INTO @COSID, @ReFCharID; 
            WHILE @@
FETCH_STATUS = 0 
            BEGIN 
                SELECT 
@TypeID4 = TypeID4 FROM [SRO_VT_SHARD].[dbo].[_RefObjCommon] WHERE ID = @ReFCharID 
                
/* 
                 * If current COS is a transport COS, erase all items 
                 * TypeID4 = 2 = Transport COS 
                 */ 
                
IF (@TypeID4 = 2) 
                
BEGIN 
                    UPDATE 
[SRO_VT_SHARD].[dbo].[_InvCOS] SET ItemID = 0 WHERE COSID = @COSID 
                END 
                FETCH NEXT FROM CurCOS INTO 
@COSID, @ReFCharID; 
            
END; 
            
CLOSE CurCOS; 
            
DEALLOCATE CurCOS; 
        
END 
    END 
END  

   
if (@Operation = 35)  
   
begin  
    insert _LogCashItem 
(RefItemID, CharID, Cnt, EventTime, Serial64)  
    
values(@ItemRefID, @CharID, @dwData, GetDate(), @ItemSerial)  
   
end
   
declare @CharName varchar(64)
   
set @CharName = (select CharName16 from [SRO_VT_SHARD].dbo._Char where CharID = @CharID )
   declare @
CharType int
  set 
@CharType = (select RefObjID from [SRO_VT_SHARD].dbo._Char where CharID = @CharID )

  
/*Mod Switcher*/ 
  
IF @ItemRefID BETWEEN '63630' and '63641' AND @Operation = '41' 
  
BEGIN EXEC [SRO_VT_SHARDLOG].dbo._ModelSwitcher @CharId, @ItemRefID  
  END 


Scrox 13-11-2017 12:31 AM

رد: ModelSwitch!!!!!!!!!!!
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Neoon (المشاركة 5333781)
كود PHP:

USE [SRO_VT_SHARDLOG]
GO
/****** Object:  StoredProcedure [dbo].[_AddLogItem]    Script Date: 10/30/2017 2:55:41 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-------------------------------------------------------------------------------------------------------------------
-- 
Step 2
-- ±âأپ¸ ¾أ†أ€أŒأ…أ› ·أژ±× أ€أ”·أ‚ Stored procedure ¼أ¶أپ¤
-- DataBase            : Shard Log  
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),
  @
Gold        bigint            -- #ifdef EXTEND_GOLD_TYPE »أ°أ€أ”   
  
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, Gold)    -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @strDesc, @ItemSerial, @Gold)        -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
   
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, Gold)            -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @ItemSerial, @Gold)                -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼ 
   
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, Gold)            -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @strDesc, @ItemSerial, @Gold)                    -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼ 
   
end  
   
else if (@len_pos = 0 and @len_desc = 0)  
   
begin  
            insert _LogEventItem 
(EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, Serial64, Gold)                        -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
            
values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @ItemSerial, @Gold)                            -- #ifdef EXTEND_GOLD_TYPE ±³أƒ¼
   
end  
   
-- أ€¯·أ، ¾أ†أ€أŒأ…أ› ±¸أ€أ”أ€أŒ¸é!  
   -- 
#define LOG_ITEMEVENT_BUY_CASHITEM  (BYTE)35  
   
   
IF (@Operation = 41) 
BEGIN 
    
IF (@ItemRefID = 2128) -- Bandit den return scroll (ITEM_ETC_SCROLL_RETURN_THIEFDEN_01), will work only when MaxStack is 1 
    BEGIN 
        
/* 
         * Get latest region of character 
         */ 
        
DECLARE @IsBattleField BIT 
        SELECT 
@IsBattleField = IsBattleField 
            FROM 
[SRO_VT_SHARD].[dbo].[_Char] 
            
INNER JOIN [SRO_VT_SHARD].[dbo].[_RefRegion] 
            
ON [SRO_VT_SHARD].[dbo].[_Char].LatestRegion = [SRO_VT_SHARD].[dbo].[_RefRegion].wRegionID 
            WHERE 
[SRO_VT_SHARD].[dbo].[_Char].CharID = @CharID 
        
/* 
         * Scroll is used inside town 
         */ 
        
IF (@IsBattleField = 0) 
        
BEGIN 
            
DECLARE @COSID BIGINT 
            
DECLARE @ReFCharID INT 
            
DECLARE @TypeID4 INT 
            
/* 
             * Get any summoned COS by current character 
             * 
             * It's actually fine not to use CURSOR, so far I noticed that any summoned COS 
             * won't set "OwnerCharID", except for transport COS. 
             * But just to be sure, I put CURSOR in use. 
             */ 
            
SET NOCOUNT ON; 
            DECLARE 
CurCOS CURSOR FOR SELECT ID, RefCharID FROM [SRO_VT_SHARD].[dbo].[_CharCOS] WHERE OwnerCharID = @CharID ORDER BY ID ASC; 
            
OPEN CurCOS; 
            
FETCH NEXT FROM CurCOS INTO @COSID, @ReFCharID; 
            WHILE @@
FETCH_STATUS = 0 
            BEGIN 
                SELECT 
@TypeID4 = TypeID4 FROM [SRO_VT_SHARD].[dbo].[_RefObjCommon] WHERE ID = @ReFCharID 
                
/* 
                 * If current COS is a transport COS, erase all items 
                 * TypeID4 = 2 = Transport COS 
                 */ 
                
IF (@TypeID4 = 2) 
                
BEGIN 
                    UPDATE 
[SRO_VT_SHARD].[dbo].[_InvCOS] SET ItemID = 0 WHERE COSID = @COSID 
                END 
                FETCH NEXT FROM CurCOS INTO 
@COSID, @ReFCharID; 
            
END; 
            
CLOSE CurCOS; 
            
DEALLOCATE CurCOS; 
        
END 
    END 
END  

   
if (@Operation = 35)  
   
begin  
    insert _LogCashItem 
(RefItemID, CharID, Cnt, EventTime, Serial64)  
    
values(@ItemRefID, @CharID, @dwData, GetDate(), @ItemSerial)  
   
end
   
declare @CharName varchar(64)
   
set @CharName = (select CharName16 from [SRO_VT_SHARD].dbo._Char where CharID = @CharID )
   declare @
CharType int
  set 
@CharType = (select RefObjID from [SRO_VT_SHARD].dbo._Char where CharID = @CharID )

  
/*Mod Switcher*/ 
  
IF @ItemRefID BETWEEN '63630' and '63641' AND @Operation = '41' 
  
BEGIN EXEC [SRO_VT_SHARDLOG].dbo._ModelSwitcher @CharId, @ItemRefID  
  END 


بعد اذن حاضرتك معا احترامى ليك انت مديلوا برسيودر دى بصافة اية !!
ما هو ممكن يغير AddLogitem خالص وبعد ممكن يشغل حاجة و يوقف 10
حاضرتك فهموا قولى اية ينفع واية وينفعش بدلا ما يخربها خالص
بلاش ياجدعان الكوبى بيست دى

Hero 13-11-2017 04:10 AM

رد: ModelSwitch!!!!!!!!!!!
 
http://www.silkroad4arab.com/vb/showthread.php?t=600491
لو شوفت الموضوع و تاكدت و لسه المشكله عندك تابع الموضوع و هدخل احلهالك

MazZziKa 14-11-2017 01:15 PM

رد: ModelSwitch!!!!!!!!!!!
 
شكرا لحضراتكم بس للاسف لم يتم حل المشكله :(

Neoon 14-11-2017 01:21 PM

رد: ModelSwitch!!!!!!!!!!!
 
اقتباس:

بعد اذن حاضرتك معا احترامى ليك انت مديلوا برسيودر دى بصافة اية !!
ما هو ممكن يغير AddLogitem خالص وبعد ممكن يشغل حاجة و يوقف 10
حاضرتك فهموا قولى اية ينفع واية وينفعش بدلا ما يخربها خالص
بلاش ياجدعان الكوبى بيست دى
انا عارف انا بعمل ايه ^^

MazZziKa 14-11-2017 01:31 PM

رد: ModelSwitch!!!!!!!!!!!
 
يعني اعمل الكويري دا علي ضمانة حضرتك وهيشتغلوا ؟ Neon

Neoon 14-11-2017 01:35 PM

رد: ModelSwitch!!!!!!!!!!!
 
شوف اخر رد هنا



MazZziKa 14-11-2017 01:44 PM

رد: ModelSwitch!!!!!!!!!!!
 
مهوا الكويري دا نفس الى حضرتك حاطه بس في واحد بيقول انه ممكن يبوظ حاجه انا بس عايز اتاكد لوعملته هيشغلهم ولا ايه لان الى حاطت الكويري قايل لو مشتغلش كلمني FB يعني ممكن ميشتغلوا فا انا خايف ميشتغلوا وحاجه تبوظ بس دا قصدي ..!

Neoon 14-11-2017 01:47 PM

رد: ModelSwitch!!!!!!!!!!!
 
خلاص يا باشا استنى حل تاني ان شاء الله هتلاقي.

MazZziKa 14-11-2017 01:55 PM

رد: ModelSwitch!!!!!!!!!!!
 
تمام شكرا لحضرتك منتظر حل...

Scrox 14-11-2017 06:19 PM

رد: ModelSwitch!!!!!!!!!!!
 
اتفضيل حاضرتك جرب دى كدة
AddLogItem
كود PHP:

if (@ItemRefID = 43054)
  
BEGIN
  EXEC SRO_VT_SHARDLOG
.dbo._NOVA_SWITCHER  @CharID
  END 


MazZziKa 14-11-2017 09:58 PM

رد: ModelSwitch!!!!!!!!!!!
 
http://i.epvpimg.com/Hfwpbab.png بص حضرتك الكويري مش عايز يتحط بيقولي ان البروسيدور مش موجوده

Hero 15-11-2017 06:17 AM

رد: ModelSwitch!!!!!!!!!!!
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Erixon (المشاركة 5333994)
اتفضيل حاضرتك جرب دى كدة
AddLogItem
كود PHP:

if (@ItemRefID = 43054)
  
BEGIN
  EXEC SRO_VT_SHARDLOG
.dbo._NOVA_SWITCHER  @CharID
  END 


طيب ما تقوله بقا المفروض يتحط ف انهى procedure ؟؟؟

المفروض حضرتك تتحط ف _AddLogItem
مكان القديم مثلا وتغير ال id

Hero 15-11-2017 06:18 AM

رد: ModelSwitch!!!!!!!!!!!
 
حضرتك ف ال _AddLogItem
مكان القديم و تغير ال id


الساعة الآن 01:30 AM.

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