الموقع العربي الاول للعبة 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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_ToEventPosstrDescSerial64Gold)    -- #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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_ToEventPosSerial64Gold)            -- #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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_TostrDescSerial64Gold)            -- #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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_ToSerial64Gold)                        -- #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 IDRefCharID FROM [SRO_VT_SHARD].[dbo].[_CharCOSWHERE OwnerCharID = @CharID ORDER BY ID ASC
            
OPEN CurCOS
            
FETCH NEXT FROM CurCOS INTO @COSID, @ReFCharID
            WHILE @@
FETCH_STATUS 
            BEGIN 
                SELECT 
@TypeID4 TypeID4 FROM [SRO_VT_SHARD].[dbo].[_RefObjCommonWHERE 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].[_InvCOSSET 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 
(RefItemIDCharIDCntEventTimeSerial64)  
    
values(@ItemRefID, @CharID, @dwDataGetDate(), @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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_ToEventPosstrDescSerial64Gold)    -- #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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_ToEventPosSerial64Gold)            -- #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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_TostrDescSerial64Gold)            -- #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 and @len_desc 0)  
   
begin  
            insert _LogEventItem 
(EventTimeCharIDItemRefIDdwDataTargetStorageOperationSlot_FromSlot_ToSerial64Gold)                        -- #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 IDRefCharID FROM [SRO_VT_SHARD].[dbo].[_CharCOSWHERE OwnerCharID = @CharID ORDER BY ID ASC
            
OPEN CurCOS
            
FETCH NEXT FROM CurCOS INTO @COSID, @ReFCharID
            WHILE @@
FETCH_STATUS 
            BEGIN 
                SELECT 
@TypeID4 TypeID4 FROM [SRO_VT_SHARD].[dbo].[_RefObjCommonWHERE 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].[_InvCOSSET 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 
(RefItemIDCharIDCntEventTimeSerial64)  
    
values(@ItemRefID, @CharID, @dwDataGetDate(), @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:18 AM

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

Scrox 16-11-2017 02:12 AM

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

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

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


اقتباس:

المشاركة الأصلية كتبت بواسطة MazZziKa (المشاركة 5334014)
http://i.epvpimg.com/Hfwpbab.png بص حضرتك الكويري مش عايز يتحط بيقولي ان البروسيدور مش موجوده

اولا حاضرتك شوف table بتاع حاضرتك اسمو اية لو كان model switcher غير اسم NOVA دى تانى حاجة دى مكانة فى _AddLogItem واعمل Execute تالت حاجة تغير id دى 43054 بال id الجديد عندك فى Refobjcommon


الساعة الآن 12:09 PM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.