![]() |
|
قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة [ قسم متخصص فى شروحات و البرامج في عمل السيرفرات الخاصة ] [ يرجى عدم وضع الأسئلة والاستفسارات في هذا القسم ] |
![]() |
|
أدوات الموضوع | انواع عرض الموضوع |
![]() |
#1 | ||||||||||||
![]() ![]()
|
بسم الله والصلاة والسلام علي رسول الله بقالي كتير اوي منزلتش حاجة هنا فكنت حابب أشارككم السيستم الصغير ده أكيد فيه ناس محتاجه حاجة زي كده فيديو توضيحي للسيستم الفيديو : عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ] الأول هشرحلكم هو عبارة عن أيه 1- ده سيستم وظيفته أنه بيسجل الأيتم اللي انت بتحددها في ال npc لما حد يشتريها ويضيفها في تابل بوقت الشراء بتاعتها طيب ايه الفايدة ؟ فايدته انك لما بتيجي بعد كده تحدد في السيستم نفسه الوقت بقي علي التابل ده بيبدأ يجمع كل الأيتم اللي عدي عليها هنقول مثلا 5 ايام زي ما انا عامل وهيمسح كل الايتم دي من البلاير مش هسيبيها معاه وبكده الأيتم بقي مؤقت بوقت مش دايم معاه ممكن انت تضيف ايتم جديده مثلا بدامج قليل عن الطبيعية وتحطها للبلاير الجديدة تلعب بيها وتخليها يوم مثلا وتختفي وممكن تحدد من الفلتر بعد كده مثلا انه يضيف الشخص اللي اشتري ايتم في تابل ولو بعد كده جه يشتري يعمل check علي التابل ده لو لقيه موجود مش هيبيع معاه وبكده انت هتخليه hwid/limited 2- ممكن تشغل السيستم ده في إنك بعد كده تنزل أيتم جديد او دجري جديد للبلاير يجربوه وبعدين تحدده في التابل الموجود ومجرد ما تسجل ال id بتاع الايتم طبيعي هيتمسح اول ما يعدي عليه الوقت بتاعه 3- ممكن مثلا تعملها ايفنت علي جوائز ويكون الريورد ايتم مؤقت من ده مثلا ( ملحوظة السيستم عامله يشتغل علي البيع والشراء بس يعني لما تشتري من الnpc هيسجل غير كده لو نزلته من الكونسول مش هيتلغي تاني ) فأنت ممكن تعدل بقي يسجل امتي زي ما تحب او تضيف الايتم ف التابل يدوي وتديه للناس في ايفنتات 4- السيستم بيمسح الأيتم من كل مكان بيعمل تتبع للأيتم مش للأكونت يعني حتي لو اتنقل من أكونت للتاني فبرده هيتمسح عادي مفيش مشكلة ( pet/storage/storge guild / inventory) هيتمسح من كل دول مش هيبقي موجود فمتقلقش نيجي بقي للشغل ركزوا معايا أول حاجة هتعملها هتروح تعمل Create للتابل ده كود:
USE YourDatabaseName GO /****** Object: Table [dbo].[Temp_itemID] #Mohamed_Montaser #T0P Script Date: 10/14/2023 11:32:34 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Temp_itemID]( [ID] [int] IDENTITY(1,1) NOT NULL, [ItemID] [int] NOT NULL, [CodeName] [varchar](max) NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO بعد ما عملنا التابل هنروح علي الداتا بيز نجيب الايتم اللي احنا عايزين نشغل السيستم ده عليها ممكن تستخدم الكويري ده هينجز معاه كود:
SELECT ID,CodeName128 FROM SRO_VT_SHARD.._RefObjCommon WHERE CodeName128 LIKE '%CODENAME%' بعد كده خد الايتم اللي طلعتها وحطها ف التابل الأولاني اللي فوق ده لحد هنا الدنيا تمام زي الفل نيجي علي الجزء التاني بقي التسجيل هتروح علي ال sql وهتعمل Create للتابل ده كود:
USE YourDatabaseName GO /****** Object: Table [dbo].[_Temporary_items] #Mohamed_Montaser #T0P Script Date: 10/14/2023 11:31:18 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[_Temporary_items]( [ID] [int] IDENTITY(1,1) NOT NULL, [CharName] [varchar](30) NOT NULL, [CharID] [int] NOT NULL, [UserJid] [int] NOT NULL, [ID64] [int] NOT NULL, [ItemID] [int] NOT NULL, [ItemSerial] [bigint] NOT NULL, [ItemCodeName] [varchar](max) NOT NULL, [ShopCodeName] [varchar](max) NULL, [Timer] [datetime] NOT NULL, [Stats] [varchar](50) NOT NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO تمام لحد هنا عملنا الجدول اللي هنسجل فيه بيانات الايتم طبعا انا عامل الجدول ده هيسجل بيانات الايتم بكل تفاصيله حتي ال npc اللي هتشتري منه والtab رقم كام وبيانات الاكونت والuserjid وكل التفاصيل اللي هتحتاجها ![]() بعد ما عملت Create للتابل ده ناقص اخر حاجة وهي السيستم نفسه بقي هتروح علي SRO_VT_SHARDLOG/AddLogItem وهتضيف السيستم في اخر البرسيدور زي ما هو كده كود:
---- RECORD TEMPORARY ITEMS #mohamed_montaser IF (@Operation in (32,35)) DECLARE @TimerWeapon INT = -5 -- Time Down to remove items per days #T0P BEGIN IF (@ItemRefID IN (SELECT ItemID from TOOL_SYSTEM..Temp_itemID)) BEGIN ---////// DECLARE @CharNameTemp varchar (35), @ID64Temp INT , @itemCodeNameTemp varchar (Max) ,@NPCTEMP VARCHAR (MAX), @UserTemp INT,@CharNameTempMsg Varchar (35) SET @CharNameTemp = (SELECT CharName16 FROM SRO_VT_SHARD.._Char WHERE CharID = @CharID ) SET @ID64Temp = (SELECT ID64 FROM SRO_VT_SHARD.._Items WHERE Serial64 = @ItemSerial ) SET @itemCodeNameTemp = ( SELECT CodeName128 From SRO_VT_SHARD.._RefObjCommon where ID = @ItemRefID) SET @NPCTEMP = (SELECT RefTabCodeName FROM SRO_VT_SHARD.._RefShopGoods WHERE RefPackageItemCodeName = 'PACKAGE_' +@itemCodeNameTemp) SET @UserTemp = ( SELECT UserJID FROM SRO_VT_SHARD.._User WHERE CharID = @CharID ) SET @CharNameTempMsg = (SELECT CharName16 FROM SRO_VT_SHARD.._Char WHERE CharID = @CharID ) --DECLARE @MgsDetalis VARCHAR (MAX) = 'Hello Dear ['+@CharNameTemp+'] YOUR CharID Is ['+CONVERT (VARCHAR,@CharID)+'] ITEM ID64 IS ['+CONVERT (VARCHAR,@ID64Temp)+'] And Item Serial is ['+CONVERT (VARCHAR,@ItemSerial)+'] AND ItemID is ['+CONVERT (VARCHAR,@ItemRefID)+'] And Item CodeName Is ['+@itemCodeNameTemp+'] The Time is '+ CONVERT(VARCHAR, GETDATE(), 120) --INSERT INTO ZOLA_VT_FILTER.._AutoNotice VALUES (@MgsDetalis,@CharNameTemp,0,GETDATE()) INSERT INTO TOOL_SYSTEM.._Temporary_items VALUES (@CharNameTemp,@CharID,@UserTemp,@ID64Temp,@ItemRefID,@ItemSerial,@itemCodeNameTemp,@NPCTEMP,GETDATE(),'ADDED') END -- Check if items need to be removed based on the timer IF (SELECT COUNT(*) FROM TOOL_SYSTEM.._Temporary_items WHERE Timer < DATEADD(DAY, @TimerWeapon, GETDATE())) > 0 BEGIN UPDATE inv -- remove from inventory SET inv.ItemID = 0 FROM SRO_VT_SHARD.._Inventory AS inv INNER JOIN SRO_VT_SHARD.._Items AS itm ON inv.ItemID = itm.ID64 INNER JOIN TOOL_SYSTEM.._Temporary_items AS temp ON itm.Serial64 = temp.ItemSerial WHERE temp.Timer < DATEADD(DAY, @TimerWeapon, GETDATE()); UPDATE Chest ---- remove from Storage SET Chest.ItemID = 0 FROM SRO_VT_SHARD.._Chest AS Chest INNER JOIN SRO_VT_SHARD.._Items AS I ON Chest.ItemID = I.ID64 INNER JOIN TOOL_SYSTEM.._Temporary_items AS temp ON i.Serial64 = temp.ItemSerial WHERE temp.Timer < DATEADD(DAY, @TimerWeapon, GETDATE()); UPDATE PET -- remove from pet SET PET.ItemID = 0 FROM SRO_VT_SHARD.._InvCOS AS PET INNER JOIN SRO_VT_SHARD.._Items AS I ON PET.ItemID = I.ID64 INNER JOIN TOOL_SYSTEM.._Temporary_items AS temp ON i.Serial64 = temp.ItemSerial WHERE temp.Timer < DATEADD(DAY, @TimerWeapon, GETDATE()); UPDATE G SET G.ItemID = 0 -- remove from storage guild FROM SRO_VT_SHARD.._GuildChest AS G INNER JOIN SRO_VT_SHARD.._Items AS I ON G.ItemID = I.ID64 INNER JOIN TOOL_SYSTEM.._Temporary_items AS temp ON i.Serial64 = temp.ItemSerial WHERE temp.Timer < DATEADD(DAY, @TimerWeapon, GETDATE()); UPDATE temp SET temp.Stats = 'DELETED' FROM TOOL_SYSTEM.._Temporary_items AS temp INNER JOIN SRO_VT_SHARD.._Items AS itm ON temp.ItemSerial = itm.Serial64 WHERE temp.Timer < DATEADD(DAY, @TimerWeapon, GETDATE()); END END وبكده نكون خلصنا شرح السيتسم وكل الحاجات اللي محتاجها فيه ملحوظة تاني : الرقم اللي بالاحمر ده عدد الأيام دايما بالسالب انت غيرها بقي زي ما تحب الايتم يقعد كام يوم انا عامله يقعد 5 ايام شوف انت اللي يعجبك بقي كلمة شكر تكفي ![]() ![]() |
||||||||||||
التعديل الأخير تم بواسطة محمد منتصر ; 14-04-2024 الساعة 01:18 AM
![]() |
![]() |
#2 | ||||||||||||
![]() ![]()
|
تسلم ايدك فكره جميله بس في ناس هتخد وبي وبست بس وطبعا المفروض يضيفو الايتم في التاب وانت كاتب بس في ناس مش هتعرف النطه دي ممكن تضيفلهم اي نوع ايتم ويكررو شبهه وتقبل رايي ![]() |
||||||||||||
![]() |
![]() |
#3 | |||||||||||||
![]() ![]()
|
اقتباس:
|
|||||||||||||
![]() |
![]() |
#4 | ||||||||||||
![]() ![]()
|
شغلك جامد ياصديقي الله ينور
|
||||||||||||
![]() |
![]() |
يتصفح الموضوع حالياً : 2 (0 عضو و 2 زائر) | |
|
|