Dev.Myth
01-01-2017, 07:25 PM
بص يامحمد علشان تعرف تضيف حاجه اولاً لازم اللى عارضها او فاككها من داتا بيز تانيه ومجهزها على النقل يكون كاتب هيا بتتحط فين وانا مع كلام Levi لأنه صح طبعاً ومحدش يقدر يقول غير كده خصوصاً إنه عاوزلك الخير :)
ثانياً والأهم طبعاً وانت بتضيف اى حاجه لآزم تتأكد من شوية حاجات أهمها الأيديهات ID ده عباره عن تعريف الشئ اللى انت بتضيفه برقم وده بيوفر انه تقعد يكتب الكود فى كل مره يحتاج فيها ليه بالنسبه لـ RefObjCommon الجدول ده مرتبط بيه لما تيجي تضيف اى ايتم RefObjItem ولو بتضيف اى حاجه ليها شخصيه او كراكتر بتربطها بـ RefObjChar وطبعاً لو حاجه زى ال Pets بتحتاج تضيفها فى الاثنين لأن ليها أيتمس وكاركتر Items+Char وده كله بيرتبط ب RefObjCommon
بعد مابتضيف ال Line بتاعك فى RefObjCommon و RefObjItem أو RefObjChar هتروح على أخر السطر بتاع ال Line اللى فى RefObjCommon هتلاقى حاجه أسمها Link اخر حاجه خالص ده اللى هتحط فيه ال ID بتاع RefObjItem أو RefObjChar
طبعاً ده توضيح مش اكتر يعنى ممكن تكون الحاجه اللى انت هتضيفها لازم تنضاف فى جداول تانيه وأكيد اللى مطلع الاكواد كاتب هتنضاف فين ولو احتاجت تعرف اكتر عرفنى بس :)
تمام ؟
انت كده ضيفت فى الداتا بيز لو حبيت بقى تجيب الكود اللى هتضيفه فى الميديا من غير ماتتعب او لو حبيت تضيف حاجه مثلاً وصاحبها نسى يحط الميديا او كده هتعمل البروسيدور ده مع مراعاة تغيير أسم الداتا بيز لأسم بتاعتك
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_GetMediaLines] Script Date: 02/05/2012 12:42:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[_GetMediaLines]
@Type SMALLINT,
@CodeName VARCHAR(30)
AS
IF(@Type=1)
BEGIN
SELECT
_RefObjCommon.Service,_RefObjCommon.ID,_RefObjComm on.CodeName128,_RefObjCommon.ObjName128,_RefObjCom mon.OrgObjCodeName128,_RefObjCommon.NameStrID128,_ RefObjCommon.DescStrID128,_RefObjCommon.CashItem,_ RefObjCommon.Bionic,_RefObjCommon.TypeID1,_RefObjC ommon.TypeID2,_RefObjCommon.TypeID3,_RefObjCommon. TypeID4,_RefObjCommon.DecayTime,_RefObjCommon.Coun try,_RefObjCommon.Rarity,_RefObjCommon.CanTrade,_R efObjCommon.CanSell,_RefObjCommon.CanBuy,_RefObjCo mmon.CanBorrow,_RefObjCommon.CanDrop,_RefObjCommon .CanPick,_RefObjCommon.CanRepair,_RefObjCommon.Can Revive,_RefObjCommon.CanUse,_RefObjCommon.CanThrow ,_RefObjCommon.Price,_RefObjCommon.CostRepair,_Ref ObjCommon.CostRevive,_RefObjCommon.CostBorrow,_Ref ObjCommon.KeepingFee,_RefObjCommon.SellPrice,_RefO bjCommon.ReqLevelType1,_RefObjCommon.ReqLevel1,_Re fObjCommon.ReqLevelType2,_RefObjCommon.ReqLevel2,_ RefObjCommon.ReqLevelType3,_RefObjCommon.ReqLevel3 ,_RefObjCommon.ReqLevelType4,_RefObjCommon.ReqLeve l4,_RefObjCommon.MaxContain,_RefObjCommon.RegionID ,_RefObjCommon.Dir,_RefObjCommon.OffsetX,_RefObjCo mmon.OffsetY,_RefObjCommon.OffsetZ,_RefObjCommon.S peed1,_RefObjCommon.Speed2,_RefObjCommon.Scale,_Re fObjCommon.BCHeight,_RefObjCommon.BCRadius,_RefObj Common.EventID,_RefObjCommon.AssocFileObj128,_RefO bjCommon.AssocFileDrop128,_RefObjCommon.AssocFileI con128,_RefObjCommon.AssocFile1_128,_RefObjCommon. AssocFile2_128,
_RefObjItem.MaxStack,_RefObjItem.ReqGender,_RefObj Item.ReqStr,_RefObjItem.ReqInt,_RefObjItem.ItemCla ss,_RefObjItem.SetID,_RefObjItem.Dur_L,_RefObjItem .Dur_U,_RefObjItem.PD_L,_RefObjItem.PD_U,_RefObjIt em.PDInc,_RefObjItem.ER_L,_RefObjItem.ER_U,_RefObj Item.ERInc,_RefObjItem.PAR_L,_RefObjItem.PAR_U,_Re fObjItem.PARInc,_RefObjItem.BR_L,_RefObjItem.BR_U, _RefObjItem.MD_L,_RefObjItem.MD_U,_RefObjItem.MDIn c,_RefObjItem.MAR_L,_RefObjItem.MAR_U,_RefObjItem. MARInc,_RefObjItem.PDStr_L,_RefObjItem.PDStr_U,_Re fObjItem.MDInt_L,_RefObjItem.MDInt_U,_RefObjItem.Q uivered,_RefObjItem.Ammo1_TID4,_RefObjItem.Ammo2_T ID4,_RefObjItem.Ammo3_TID4,_RefObjItem.Ammo4_TID4, _RefObjItem.Ammo5_TID4,_RefObjItem.SpeedClass,_Ref ObjItem.TwoHanded,_RefObjItem.Range,_RefObjItem.PA ttackMin_L,_RefObjItem.PAttackMin_U,_RefObjItem.PA ttackMax_L,_RefObjItem.PAttackMax_U,_RefObjItem.PA ttackInc,_RefObjItem.MAttackMin_L,_RefObjItem.MAtt ackMin_U,_RefObjItem.MAttackMax_L,_RefObjItem.MAtt ackMax_U,_RefObjItem.MAttackInc,_RefObjItem.PAStrM in_L,_RefObjItem.PAStrMin_U,_RefObjItem.PAStrMax_L ,_RefObjItem.PAStrMax_U,_RefObjItem.MAInt_Min_L,_R efObjItem.MAInt_Min_U,_RefObjItem.MAInt_Max_L,_Ref ObjItem.MAInt_Max_U,_RefObjItem.HR_L,_RefObjItem.H R_U,_RefObjItem.HRInc,_RefObjItem.CHR_L,_RefObjIte m.CHR_U,_RefObjItem.Param1,_RefObjItem.Desc1_128,_ RefObjItem.Param2,_RefObjItem.Desc2_128,_RefObjIte m.Param3,_RefObjItem.Desc3_128,_RefObjItem.Param4, _RefObjItem.Desc4_128,_RefObjItem.Param5,_RefObjIt em.Desc5_128,_RefObjItem.Param6,_RefObjItem.Desc6_ 128,_RefObjItem.Param7,_RefObjItem.Desc7_128,_RefO bjItem.Param8,_RefObjItem.Desc8_128,_RefObjItem.Pa ram9,_RefObjItem.Desc9_128,_RefObjItem.Param10,_Re fObjItem.Desc10_128,_RefObjItem.Param11,_RefObjIte m.Desc11_128,_RefObjItem.Param12,_RefObjItem.Desc1 2_128,_RefObjItem.Param13,_RefObjItem.Desc13_128,_ RefObjItem.Param14,_RefObjItem.Desc14_128,_RefObjI tem.Param15,_RefObjItem.Desc15_128,_RefObjItem.Par am16,_RefObjItem.Desc16_128,_RefObjItem.Param17,_R efObjItem.Desc17_128,_RefObjItem.Param18,_RefObjIt em.Desc18_128,_RefObjItem.Param19,_RefObjItem.Desc 19_128,_RefObjItem.Param20,_RefObjItem.Desc20_128, _RefObjItem.MaxMagicOptCount,_RefObjItem.ChildItem Count
FROM _RefObjCommon INNER JOIN _RefObjItem ON _RefObjCommon.Link=_RefObjItem.ID
WHERE _RefObjCommon.CodeName128 LIKE @CodeName AND _RefObjCommon.Service=1 ORDER BY _RefObjCommon.ID ASC
END
IF(@Type=2)
BEGIN
SELECT
_RefObjCommon.Service,_RefObjCommon.ID,_RefObjComm on.CodeName128,_RefObjCommon.ObjName128,_RefObjCom mon.OrgObjCodeName128,_RefObjCommon.NameStrID128,_ RefObjCommon.DescStrID128,_RefObjCommon.CashItem,_ RefObjCommon.Bionic,_RefObjCommon.TypeID1,_RefObjC ommon.TypeID2,_RefObjCommon.TypeID3,_RefObjCommon. TypeID4,_RefObjCommon.DecayTime,_RefObjCommon.Coun try,_RefObjCommon.Rarity,_RefObjCommon.CanTrade,_R efObjCommon.CanSell,_RefObjCommon.CanBuy,_RefObjCo mmon.CanBorrow,_RefObjCommon.CanDrop,_RefObjCommon .CanPick,_RefObjCommon.CanRepair,_RefObjCommon.Can Revive,_RefObjCommon.CanUse,_RefObjCommon.CanThrow ,_RefObjCommon.Price,_RefObjCommon.CostRepair,_Ref ObjCommon.CostRevive,_RefObjCommon.CostBorrow,_Ref ObjCommon.KeepingFee,_RefObjCommon.SellPrice,_RefO bjCommon.ReqLevelType1,_RefObjCommon.ReqLevel1,_Re fObjCommon.ReqLevelType2,_RefObjCommon.ReqLevel2,_ RefObjCommon.ReqLevelType3,_RefObjCommon.ReqLevel3 ,_RefObjCommon.ReqLevelType4,_RefObjCommon.ReqLeve l4,_RefObjCommon.MaxContain,_RefObjCommon.RegionID ,_RefObjCommon.Dir,_RefObjCommon.OffsetX,_RefObjCo mmon.OffsetY,_RefObjCommon.OffsetZ,_RefObjCommon.S peed1,_RefObjCommon.Speed2,_RefObjCommon.Scale,_Re fObjCommon.BCHeight,_RefObjCommon.BCRadius,_RefObj Common.EventID,_RefObjCommon.AssocFileObj128,_RefO bjCommon.AssocFileDrop128,_RefObjCommon.AssocFileI con128,_RefObjCommon.AssocFile1_128,_RefObjCommon. AssocFile2_128,
_RefObjChar.Lvl,_RefObjChar.CharGender,_RefObjChar .MaxHP,_RefObjChar.MaxMP,_RefObjChar.InventorySize ,_RefObjChar.CanStore_TID1,_RefObjChar.CanStore_TI D2,_RefObjChar.CanStore_TID3,_RefObjChar.CanStore_ TID4,_RefObjChar.CanBeVehicle,_RefObjChar.CanContr ol,_RefObjChar.DamagePortion,_RefObjChar.MaxPassen ger,_RefObjChar.AssocTactics,_RefObjChar.PD,_RefOb jChar.MD,_RefObjChar.PAR,_RefObjChar.MAR,_RefObjCh ar.ER,_RefObjChar.BR,_RefObjChar.HR,_RefObjChar.CH R,_RefObjChar.ExpToGive,_RefObjChar.CreepType,_Ref ObjChar.Knockdown,_RefObjChar.KO_RecoverTime,_RefO bjChar.DefaultSkill_1,_RefObjChar.DefaultSkill_2,_ RefObjChar.DefaultSkill_3,_RefObjChar.DefaultSkill _4,_RefObjChar.DefaultSkill_5,_RefObjChar.DefaultS kill_6,_RefObjChar.DefaultSkill_7,_RefObjChar.Defa ultSkill_8,_RefObjChar.DefaultSkill_9,_RefObjChar. DefaultSkill_10,_RefObjChar.TextureType,_RefObjCha r.Except_1,_RefObjChar.Except_2,_RefObjChar.Except _3,_RefObjChar.Except_4,_RefObjChar.Except_5,_RefO bjChar.Except_6,_RefObjChar.Except_7,_RefObjChar.E xcept_8,_RefObjChar.Except_9,_RefObjChar.Except_10
FROM _RefObjCommon INNER JOIN _RefObjChar ON _RefObjCommon.Link=_RefObjChar.ID WHERE CodeName128 LIKE @CodeName AND _RefObjCommon.Service=1 ORDER BY _RefObjCommon.ID ASC
END
IF(@Type!=1 OR @Type!=2)
BEGIN
PRINT 'The Type must be 1 OR 2!'
PRINT 'Use @Type=1 for Items'
PRINT 'Use @Type=2 for Characters'
END
/* Stored Procedure by sladlejrhfpq */
بعد ماتضيفه وعاوز تطلع حاجه علشان تضيفها فى Itemdata45000 اللى هيا خاصه بالايتمات بس
هتعمل الكويرى ده وتغير الكود اللى فيه ده ITEM_CH_BOW_11_A_RARE للكود اللى انت عاوز تضيفه
USE [SRO_VT_SHARD]
exec _GetMediaLines
@Type=1,
@CodeName='ITEM_CH_BOW_11_A_RARE'
ولو عاوز تطلع حاجه هتنضاف فى Characterdata45000 اللى هيا خاصه بأى حاجه ليها كراكتر هتستخدم ده
USE [SRO_VT_SHARD]
exec _GetMediaLines
@Type=2,
@CodeName='MOB_CH_MANGNYANG'
وهتغير الكود ده للكود اللى عاوز تطلعه MOB_CH_MANGNYANG
يبقى الكود ده علشان تطلع بيه اللى هتضيفه فى الميديا itemdata_xxxx
USE [SRO_VT_SHARD]
exec _GetMediaLines
@Type=1,
@CodeName='ITEM_CH_BOW_11_A_RARE'
وده اللى هضيف بيه فى الميديا لـ Characterdata_xxxx
USE [SRO_VT_SHARD]
exec _GetMediaLines
@Type=2,
@CodeName='MOB_CH_MANGNYANG'
RefSkill هيا هيا = Skilldataenc_45000 وديه لازم تفك تشفيرها قبل ماتضيف فيها حاجه وبعد مابتضيف بتشفرها تانى
ولو عندك استفسار تانى ياريت تقوله وانا هساعدك فيه على قد ماقدر ومتسمحش لحد يستغلك ^_^
وتقريباً ديه الحاجه الوحيده اللى بتحتاج الفه ديه علشان تحطها فى الميديا على ما أتذكر أى جدول تانى هتلاقيه في الميديا بيتحط زى ماهو فى الداتا بيز :)