عرض مشاركة واحدة
قديم 19-04-2016, 09:03 PM   #24

Dev. iLegend
عضو لامع



الصورة الرمزية Dev. iLegend


• الانـتـسـاب » Jul 2013
• رقـم العـضـويـة » 112689
• المشـــاركـات » 1,050
• الـدولـة » Egypt - Tanta
• الـهـوايـة » always try for a best features
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 34
Dev. iLegend صـاعـد

Dev. iLegend غير متواجد حالياً


إرسال رسالة عبر Yahoo إلى Dev. iLegend

افتراضي رد: LOCK & Unlock System By Massage With Secret Word By HLP



المشاركة الأصلية كتبت بواسطة Black Shield عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
طيب انا عندي فكرة بسيطه مش بس مجربتهاش جربها كده يا رامي و شوف

بما اننا ملناش في ال C# يبقى خلينا في الي احنا نعرفه دلوقتي :D

اول حاجة ممكن تعمل تابل جديد زي _Item بظبط بكل الكولمنز بتاعته تمام بس هانلغي الريفرانس منه
اول حاجه تضيف في الـ _Memo_Add
جزأ يضيف الداتا بتاعت الاياتم الي هايتعمله Lock من _Item للتابل الجديد _LockedItems
INSERT INTO SRO_VT_SHARDLOG.._LockedItems
SELECT 
FROM SRO_VT_SHARD.._Items 
WHERE ID64 
= @ItemID 
و حط ده في _AddLogItem
  IF (@strDesc '%Opt:%')
  DECLARE @
OptLevel int = (SELECT OptLevel FROM _LockedItems WHERE CharID = @CharID and ID64 IN (SELECT ItemID FROM _Inventory WHERE CharID = @CharID and Slot 13))
  
Begin
  
IF (@Operation 41 dwData 65540 and @ItemRefID in (SELECT ItemRefID FROM _LockedItems WHERE ItemRefID = @ItemRefID))
  
BEGIN
  UPDATE _Items 
  SET OptLevel 
= @OptLevel
  WHERE ID64 IN 
(SELECT ItemID FROM _Inventory WHERE CharID = @CharID and Slot 13)
  
END
  END 
انا مجربتهوش جربه انت و لو اشتغل قول لي نظبط بقى الستاتس و البلو كمان

اه متسناش في الUnlock خليه يمسح الرو بتاع الايتم من تابل _LockedItems

و ده كويري يعمل لك التابل على طول

USE SRO_VT_SHARDLOG
GO

/****** Object:  Table [dbo].[_Items]    Script Date: 19/04/2016 06:57:56 م ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE 
[dbo].[_LockedItems](
    [
ID64] [bigintNOT NULL,
    [
RefItemID] [intNOT NULL,
    [
OptLevel] [tinyintNULL,
    [
Variance] [bigintNULL,
    [
Data] [intNOT NULL,
    [
CreaterName] [varchar](64NULL,
    [
MagParamNum] [tinyintNOT NULL,
    [
MagParam1] [bigintNULL,
    [
MagParam2] [bigintNULL,
    [
MagParam3] [bigintNULL,
    [
MagParam4] [bigintNULL,
    [
MagParam5] [bigintNULL,
    [
MagParam6] [bigintNULL,
    [
MagParam7] [bigintNULL,
    [
MagParam8] [bigintNULL,
    [
MagParam9] [bigintNULL,
    [
MagParam10] [bigintNULL,
    [
MagParam11] [bigintNULL,
    [
MagParam12] [bigintNULL,
    [
Serial64] [bigintNOT NULL,
)

SET ANSI_PADDING OFF
GO 
أولاً عشان اكون واضح في شرحي اللي جاي دا ،، اللوج دا ما هو إلا تنفيذ كيوري بعد تنفيذ المهمة من الجيم سيرفر ،،
بمعني ان ال EventID بتاع الألكيمي مينفعش انك تعمل قبله او في اي مكان في البروسيدور Select Old OptLevel لأن أصلاً البلص اللي هجيبه هو البلص الحالي للأيتم بعد الألكيمي فا بالتالي الكيوري اللي بتجيب البلص القديم وتحطه للأيتم اكنها معملتش حاجة ،، ممكن تتشقلب شوية وتجيبها من الجدول القديم زي منتا عامل كدا بس في حاجة غلط انت عاملها وهي انك جايب بلص الأيتم القديم بدلالة أي دي الأيتم في السلوت 13 طيب افرض الالكيمي حصل مش في سلوت 13 وسلوت 13 كانت فاضيه ؟ يبقا كدا old optlevel = null وبكدا الكيوري هتجيب ايرور في الاكسكيوت ومش هيحصل حاجة ،، بس في حالة ال Destroy هتعمل ايه ؟

هو انا معاك ان الأيتم بيبقا محفوظ في جدول ببياناته كلها بحيث ان الادمن يقدر يعرف الايتم ويرجعه للناس ،،
بس دا مش حل !


توقيع Dev. iLegend :
Skype : dev.ramy1
Facebook : عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
Yahoo : [email protected]
-----------------------------------------
My Intro



-----------------------------------------


التعديل الأخير تم بواسطة Dev. iLegend ; 19-04-2016 الساعة 09:08 PM

رد مع اقتباس