04-07-2014 10:17 PM |
™DesertStorm™ |
##
|
04-07-2014 10:06 PM |
abed2006 |
حاضر
يغلق
|
04-07-2014 07:03 PM |
™DesertStorm™ |
ليك استفسارين فى الموضوع 
|
04-07-2014 05:52 PM |
Hero |
اعمل موضوع تانى و اقفل موضوعك
|
04-07-2014 04:41 PM |
abed2006 |
مش عارف حاسس ان الحاجة صعبة ومعقدة معاية
|
04-07-2014 04:40 PM |
abed2006 |
شكرا HERO تعبك معاية والله
بس انا اول مرة بجرب اعمل سرفر فا لسة مش عارف حاجة ولا عارف اتعامل ولا عارف اعمل اية
دا شرح ال+
انا عاوز شرح ال NPC
شرح تغير اسم السرفر من السلاح بس يارب تكون سهلة مش معقدة وصعبة
|
04-07-2014 04:25 PM |
Hero |
انا كنت بحاول افهمك هيا ازاى بس دى المختصر
Query
كود PHP:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_SMC_EDIT_ITEM] Script Date: 06/15/2012 19:51:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO
ALTER procedure [dbo].[_SMC_EDIT_ITEM] ----------------------------------------------------- params to find target item @TargetStorage int, /* 0 = inventory, 1 = chest, 2 = guild chest, 3 = Avatar Inventory */ @OwnerName varchar(128), /* account id or char id */ @Slot int, @ItemIDToEdit bigint, /* just for check validity */ ----------------------------------------------------- params to modify the item @RefItemID int, @OptLvl tinyint, @Variance bigint, @Data int, @szCreater varchar(32), @MagParamNum int, @MagParam1 bigint, @MagParam2 bigint, @MagParam3 bigint, @MagParam4 bigint, @MagParam5 bigint, @MagParam6 bigint, @MagParam7 bigint, @MagParam8 bigint, @MagParam9 bigint, @MagParam10 bigint, @MagParam11 bigint, @MagParam12 bigint as ---------------------------------------------------- -- step 1. check validity of parameters ---------------------------------------------------- if (@TargetStorage <> 0 and @TargetStorage <> 1 and @TargetStorage <> 2 and @TargetStorage <> 3) begin select -1 -- invalid target storage return end declare @ownerid int declare @ItemID bigint set @ownerid = 0 set @ItemID = 0 if (@TargetStorage = 0) begin select @ownerid = charid from _char where charname16 = @OwnerName if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2 -- can't find owner return end select @ItemID = ItemID from _inventory where charid = @ownerid and slot = @slot end else if (@TargetStorage = 1) begin select @ownerid = JID from _AccountJID where AccountID = @ownername if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2 -- can't find owner return end select @ItemID = ItemID from _chest where userjid = @ownerid and slot = @slot end else if (@TargetStorage = 2) begin select @ownerid = [id] from _guild where [name] = @ownername if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2 -- can't find owner return end select @ItemID = ItemID from _guildchest where guildid = @ownerid and slot = @slot end else begin select @ownerid = charid from _char where charname16 = @OwnerName if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2 -- can't find owner return end select @ItemID = ItemID from _InventoryForAvatar where charid = @ownerid and slot = @slot end
if (@ItemID = 0 or @ItemID is null) begin select -3 -- can't find the item return end if (@ItemID <> @ItemIDToEdit) begin select -4 -- it's not the one that you wanna edit return end declare @tid1 int declare @tid2 int select @tid1 = TypeID1, @tid2 = TypeID2 from _RefObjCommon where ID = @RefItemID if (@tid1 <> 3) begin select -5 -- about to assign non-item object return end if (@tid2 <> 1) -- is equipment begin -- can't assign magic param or optlevel to non-equip item if (@MagParamNum > 0 or @OptLvl > 0) begin select -6 return end end ---------------------------------------------------- -- step 2. correct some non-critical parameters ---------------------------------------------------- if (@OptLvl > 255) begin set @OptLvl = 255 -- clamp optlevel to 255 end if (LEN(@szCreater) = 0) set @szCreater = NULL ---------------------------------------------------- -- step 3. modify target item to desired values ---------------------------------------------------- if (@MagParamNum = 0) begin update _Items set RefItemID = @RefItemID, OptLevel = @OptLvl, Variance = @Variance, Data = @Data, CreaterName = @szCreater, MagParamNum = 0 where id64 = @ItemID end else begin update _Items set RefItemID = @RefItemID, OptLevel = @OptLvl, Variance = @Variance, Data = @Data, CreaterName = @szCreater, MagParamNum = @MagParamNum, MagParam1 = @MagParam1, MagParam2 = @MagParam2, MagParam3 = @MagParam3, MagParam4 = @MagParam4, MagParam5 = @MagParam5, MagParam6 = @MagParam6, MagParam7 = @MagParam7, MagParam8 = @MagParam8, MagParam9 = @MagParam9, MagParam10 = @MagParam10, MagParam11 = @MagParam11, MagParam12 = @MagParam12 where id64 = @ItemID end if (@@error <> 0 or @@rowcount = 0) begin select -7 return end select 1 return
اعمل ال Query دى و كل حاجة هتبقا تمام
|
04-07-2014 04:16 PM |
abed2006 |
معلش يا جماعة هتعبكو معاية انا معرفتش اتعامل عاوز شرح بصورة ممكن
شرح بالصورة لى تغير اسم السلاح يعنى ازاى اشيل اسم كاست واى واكتب اسم السرفر
دى حاجة الحاجة التانية عاوز شرح بالصورة طريقة ان انا اشيل npc
واحط انا npc بايتم صن دجرى 14
|
04-07-2014 03:23 PM |
Hero |
تحت امرك
|
04-07-2014 03:18 PM |
abed2006 |
شكرا الف الف شكرا تعبتكم معاية
وجارى التجربة ويارب اعرف اتعامل عشان دى اول مرة
لية اعمل فيها سرفر وعدل على الحاجات دى
شكرا مرة تانية تسلمو ايديكم
|
04-07-2014 02:27 PM |
Hero |
يا باشا الكونسل اخرو +8
عدل اللى انت عيزة من ال SMC
و ال Query دى اعملة


كود PHP:
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go
---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- -- 20_SMC__ShardDB.sql _SMC_ADD_ITEM ¼أ¶أپ¤ ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
----------------------------------------------------------------------- ALTER procedure [dbo].[_SMC_ADD_ITEM] ----------------------------------------------------- params to find target item @TargetStorage int, /* 0 = inventory, 1 = chest , 2 = guild chest, 3 = Avatar Inventory */ @OwnerName varchar(128), ----------------------------------------------------- params to modify the item @RefItemID int, @OptLvl tinyint, @Variance bigint, @Data int, @szCreater varchar(32), @MagParamNum int, @MagParam1 bigint, @MagParam2 bigint, @MagParam3 bigint, @MagParam4 bigint, @MagParam5 bigint, @MagParam6 bigint, @MagParam7 bigint, @MagParam8 bigint, @MagParam9 bigint, @MagParam10 bigint, @MagParam11 bigint, @MagParam12 bigint as ---------------------------------------------------- -- step 1. check validity of parameters ---------------------------------------------------- if (@TargetStorage <> 0 and @TargetStorage <> 1 and @TargetStorage <> 2 and @TargetStorage <> 3) begin select -1, cast(0 as bigint), cast(0 as bigint) -- invalid target storage return end declare @ownerid int declare @ItemID bigint set @ownerid = 0 set @ItemID = 0 declare @empty_slot int set @empty_slot = -1 if (@TargetStorage = 0) begin select @ownerid = charid from _char where charname16 = @OwnerName if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2, cast(0 as bigint), cast(0 as bigint)-- can't find owner return end select top 1 @empty_slot = slot from _inventory where charid = @ownerid and slot >= 13 and itemid = 0 and slot < (select top 1 InventorySize from _Char where CharID = @ownerid) order by slot asc if (@@rowcount = 0) begin select -3, cast(0 as bigint), cast(0 as bigint) -- inventory full return end end else if (@TargetStorage = 1) begin select @ownerid = JID from _AccountJID where AccountID = @ownername if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2, cast(0 as bigint), cast(0 as bigint) -- can't find owner return end select top 1 @empty_slot = slot from _chest where userjid = @ownerid and (itemid = 0 or ItemID is null) order by slot asc if (@@rowcount = 0) begin select -3, cast(0 as bigint), cast(0 as bigint) -- chest full return end end else if (@TargetStorage = 2) begin select @ownerid = [ID] from _guild where [name] = @ownername if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2, cast(0 as bigint), cast(0 as bigint) -- can't find owner return end select top 1 @empty_slot = slot from _guildchest where guildid = @ownerid and (itemid = 0 or ItemID is null) order by slot asc if (@@rowcount = 0) begin select -3, cast(0 as bigint), cast(0 as bigint) -- chest full return end -- ±أ¦µأ¥ ·¹آ؛§آ؟آ، µû¸¥ ±أ¦µأ¥ ½½·أ”¼أ¶ أپ¦أ‡أ‘أ€» أˆ®أ€أژأ‡أڈأ€أڑ. declare @lvl tinyint declare @max_slot tinyint select @lvl = Lvl from _guild where [id] = @ownerid set @max_slot = 30 * (@lvl - 1) - 1 if @empty_slot > @max_slot begin select -3, cast(0 as bigint), cast(0 as bigint) -- chest full return end end else begin select @ownerid = charid from _char where charname16 = @OwnerName if (@@rowcount = 0 or @ownerid = 0 or @ownerid is null) begin select -2, cast(0 as bigint), cast(0 as bigint)-- can't find owner return end select top 1 @empty_slot = slot from _InventoryForAvatar where charid = @ownerid and itemid = 0 and slot < 4 -- أ‡أپ·أژ½أƒأپ® أ‡أڈµأ¥أ„أڑµù(¾أ†¹أ™أ…¸ ½½·أ”أ€آ؛ 0, 1, 2, 3أ€أŒ´أ™.) order by slot asc if (@@rowcount = 0) begin select -3, cast(0 as bigint), cast(0 as bigint) -- inventory full return end end if (@empty_slot < 0 or @empty_slot is null) begin select -4, cast(0 as bigint), cast(0 as bigint) -- unknown error ??? return end declare @tid1 int declare @tid2 int declare @tid3 int declare @tid4 int select @tid1 = TypeID1, @tid2 = TypeID2, @tid3 = TypeID3, @tid4 = TypeID4 from _RefObjCommon where ID = @RefItemID if (@tid1 <> 3) begin select -5, cast(0 as bigint), cast(0 as bigint) -- about to assign non-item object return end if (@tid2 <> 1) -- is not equipment begin -- can't assign magic param or optlevel to non-equip item if (@MagParamNum > 0 or @OptLvl > 0) begin select -6, cast(0 as bigint), cast(0 as bigint) return end end ---------------------------------------------------- -- step 2. correct some non-critical parameters ---------------------------------------------------- if (@tid2 = 3 and @Data = 0) -- can't assign overlap count 0 to expendable item begin set @Data = 1 end if (LEN(@szCreater) = 0) set @szCreater = NULL ---------------------------------------------------- -- step add. equip and pet @data setting ---------------------------------------------------- declare @IS_EQUIP int declare @IS_PET int set @IS_EQUIP = 0 set @IS_PET = 0 if (@tid1 = 3 and @tid2 = 1) set @IS_EQUIP = 1 else if (@tid1 = 3 and @tid2 = 2 and @tid3 = 1 and (@tid4 = 1 or @tid4 = 2)) set @IS_PET = 1 if (@IS_EQUIP = 1) begin -- أ€أں ¸أ¸µأˆ ID·أژ select أ‡أڈ°أ* أ€أ–أ€½. ¼أ¶أپ¤ (by binu 2008-10-17) -- select @Data = Dur_L from _RefObjItem where ID = @RefItemID select @Data = Dur_L from _RefObjItem where ID = (select Link from _RefObjCommon where ID = @RefItemID ) if (@OptLvl < 0) set @OptLvl = 0 else if (@OptLvl > 12) set @OptLvl = 12 end else begin if( @IS_PET = 1 ) set @Data = 0 else begin declare @MaxCount int select @MaxCount = MaxStack from _RefObjItem where ID = @RefItemID if (@Data <= 0 or @Data > @MaxCount) set @Data = @MaxCount end set @OptLvl = 0 end ---------------------------------------------------------- -- Step3. create item and set to associated storage ---------------------------------------------------------- set xact_abort on begin transaction declare @NewItemID bigint declare @Serial64 bigint set @NewItemID = 0 set @Serial64 = 0 exec @NewItemID = _STRG_ALLOC_ITEM_NoTX @Serial64 OUTPUT if (@NewItemID = 0) begin rollback transaction select -7, cast(0 as bigint), cast(0 as bigint) return end if (@MagParamNum = 0) begin update _Items set RefItemID = @RefItemID, OptLevel = @OptLvl, Variance = @Variance, Data = @Data, MagParamNum = 0, Serial64 = @Serial64 where ID64 = @NewItemID end else begin update _Items set RefItemID = @RefItemID, OptLevel = @OptLvl, Variance = @Variance, Data = @Data, MagParamNum = @MagParamNum, MagParam1 = @MagParam1, MagParam2 = @MagParam2, MagParam3 = @MagParam3, MagParam4 = @MagParam4, MagParam5 = @MagParam5, MagParam6 = @MagParam6, MagParam7 = @MagParam7, MagParam8 = @MagParam8, MagParam9 = @MagParam9, MagParam10= @MagParam10, MagParam11 = @MagParam11, MagParam12 = @MagParam12, Serial64 = @Serial64 where ID64 = @NewItemID end if (@@error <> 0) begin rollback transaction select -8, cast(0 as bigint), cast(0 as bigint) return end if (@TargetStorage = 0) update _Inventory set ItemID = @NewItemID where CharID = @OwnerID and Slot = @empty_slot else if (@TargetStorage = 1) update _chest set ItemID = @NewItemID where UserJID = @OwnerID and slot = @empty_slot else if (@TargetStorage = 2) update _guildchest set ItemID = @NewItemID where guildid = @OwnerID and slot = @empty_slot else update _InventoryForAvatar set ItemID = @NewItemID where CharID = @OwnerID and Slot = @empty_slot if (@@rowcount = 0 or @@error <> 0) begin rollback transaction select -9, cast(0 as bigint), cast(0 as bigint) return end commit transaction select @empty_slot, @NewItemID, @Serial64 return
شايف السطر دى
كود PHP:
if (@OptLvl < 0) set @OptLvl = 0 else if (@OptLvl > 12) set @OptLvl = 12
غيرة بة دى
كود PHP:
if (@OptLvl < 0) set @OptLvl = 0 else if (@OptLvl > 255) set @OptLvl = 255
تانى حاجة اسم السلاح من
textdata_equip&skill
ال NPC زى ما قالك الاستاذ POP و لو عايز تمسح السطر عادى برضو
و بلنسبة لية ال 4 NPC بتوع Castaway هتلقيهم فوق فى اول الصفحة
بتاعت التاب Ref.Nest
|
04-07-2014 12:56 PM |
pop2009 |
اولا بخصوص اول سوال الكونسول اخرو +8 بس و لو عايز تعمل + اكتر من كده يبقى من smc و لو عايز تضيف لحد ايتيمز بى اى + انت عايزه من غير الحوارات ده كلها استخدم الكويرى ده اكتب اسم الاكونت و كود الايتيمز الى انت عايز تتحط فى الاكونت ده و عيش
كود PHP:
USE SRO_VT_SHARD --Usage: --exec _ADD_ITEM_EXTERN 'CHarName','ItemsCodeName',Count,OptLvl declare @CHarName varCHar(64)
set @CHarName = 'Your Char Name here'
exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_M_LIGHT_11_HA_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_M_LIGHT_11_SA_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_M_LIGHT_11_BA_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_M_LIGHT_11_LA_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_M_LIGHT_11_FA_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_M_LIGHT_11_AA_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_RING_11_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_RING_11_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_EARRING_11_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_NECKLACE_11_SET_B_RARE',1,12 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_TBLADE_11_SET_A_RARE',1,13 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_BOW_11_SET_B_RARE',1,13 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_SHIELD_11_SET_B_RARE',1,13 exec _ADD_ITEM_EXTERN @CHarName,'ITEM_CH_BLADE_11_SET_B_RARE',1,13
بخصوص الاسم الى على السلاح روح فى المديا فى Textdata_Object و اعمل Search على اسامى الاسلحه الى انت عايز تعدل على اسمها و عيش 
بخصوص السوال الثالث ده هيكون عن طريق الداتا بيز Table اسمو RefNest هات كود npc و اعمل السيرفير بتاعو 0 مكان 1 كده هيتشال من الجيم
يا رب اكون عرفت اساعدك
|
04-07-2014 12:27 PM |
abed2006 |
مسااااااااااااااااااااعدة لو سمحتم
اولا: انا عندى بعمل سيرفر بى كاست واى تمام
عملت اكونت جى ام بكتب فى الكونسلى كود سلاح وايتم
المهم وانا بكتب اخرو +8 دا بى اكونت الجى ام وانا عاوز اكتب اكتر من كد
المفروض انو يكتب فى الكونسل ++ اكتر من كدة يعنى من الاخر عاوز ازود نسبة ال++
بحيث اكتب فى الكونسل يجيب ال+ اللى انا عاوزو ولا لازم اخوش فى sql واعدل من جوة
وانا كول ايتم اعملو لاى حد اعمل كدة من ال sql انا عاوز اكتبو من الكونسل ع طول
.................................................. .................................................. ..............
ثانيا: عندى فى السلاح مكتوب اسم السرفر كاست واى
اا عاوز اشيل اسم السرفر واحط اسم السرفر بتاعى
.................................................. ..........................................
ثالثا : عندى فى السرفر كاست واى NPC كتير عاوز اشيلهم
واحط انا اللى انا عاوز وازاى احط فيهم الايتم واعدل على الايتم وسعرو
|