المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ModelSwitch


MazZziKa
12-11-2017, 02:46 PM
لو سمحت عندي الموديل سويتش من أول دجري 11 لحد 15 بس ادوس علي أي واحده فيهم يرجع ال تاون ومفيش أي حاجه تتغير يبقى المشكله منين ..! ؟

Neoon
12-11-2017, 04:57 PM
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
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
http://www.silkroad4arab.com/vb/showthread.php?t=600491
لو شوفت الموضوع و تاكدت و لسه المشكله عندك تابع الموضوع و هدخل احلهالك

MazZziKa
14-11-2017, 01:15 PM
شكرا لحضراتكم بس للاسف لم يتم حل المشكله :(

Neoon
14-11-2017, 01:21 PM
بعد اذن حاضرتك معا احترامى ليك انت مديلوا برسيودر دى بصافة اية !!
ما هو ممكن يغير AddLogitem خالص وبعد ممكن يشغل حاجة و يوقف 10
حاضرتك فهموا قولى اية ينفع واية وينفعش بدلا ما يخربها خالص
بلاش ياجدعان الكوبى بيست دى

انا عارف انا بعمل ايه ^^

MazZziKa
14-11-2017, 01:31 PM
يعني اعمل الكويري دا علي ضمانة حضرتك وهيشتغلوا ؟ Neon

Neoon
14-11-2017, 01:35 PM
شوف اخر رد هنا (http://www.silkroad4arab.com/vb/showthread.php?t=600491&page=3)

MazZziKa
14-11-2017, 01:44 PM
مهوا الكويري دا نفس الى حضرتك حاطه بس في واحد بيقول انه ممكن يبوظ حاجه انا بس عايز اتاكد لوعملته هيشغلهم ولا ايه لان الى حاطت الكويري قايل لو مشتغلش كلمني FB يعني ممكن ميشتغلوا فا انا خايف ميشتغلوا وحاجه تبوظ بس دا قصدي ..!

Neoon
14-11-2017, 01:47 PM
خلاص يا باشا استنى حل تاني ان شاء الله هتلاقي.

MazZziKa
14-11-2017, 01:55 PM
تمام شكرا لحضرتك منتظر حل...

Scrox
14-11-2017, 06:19 PM
اتفضيل حاضرتك جرب دى كدة
AddLogItem
if (@ItemRefID = 43054)
BEGIN
EXEC SRO_VT_SHARDLOG.dbo._NOVA_SWITCHER @CharID
END

MazZziKa
14-11-2017, 09:58 PM
http://i.epvpimg.com/Hfwpbab.png بص حضرتك الكويري مش عايز يتحط بيقولي ان البروسيدور مش موجوده

Hero
15-11-2017, 06:17 AM
اتفضيل حاضرتك جرب دى كدة
AddLogItem
if (@ItemRefID = 43054)
BEGIN
EXEC SRO_VT_SHARDLOG.dbo._NOVA_SWITCHER @CharID
END

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

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

Hero
15-11-2017, 06:18 AM
حضرتك ف ال _AddLogItem
مكان القديم و تغير ال id

Scrox
16-11-2017, 02:12 AM
اتفضيل حاضرتك جرب دى كدة
AddLogItem
if (@ItemRefID = 43054)
BEGIN
EXEC SRO_VT_SHARDLOG.dbo._NOVA_SWITCHER @CharID
END

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

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

Hero
16-11-2017, 03:50 AM
يرجى متابعه الموضوع