مشاهدة النسخة كاملة : Automatic Unique Reward ===> Exclusive
CritYouDown
12-03-2015, 04:39 PM
Automatic Unique Reward
العضو Jaffa كان عايز الموضوع دا فقولت اعملوا :)
اولا : انا منزل الـ Lines جاهزه
كل الـ هعتعملوا انك
1-تغير اسامى الـ Database بأسم الـDatabase بتاعتك
SH_OWOJuStiCe => SRO_VT_SHARD
LOG_OWOJuStiCe => SRO_VT_SHARDLOG
ACC_OWOJuStiCe => SRO_VT_ACCOUNT
2- تعمل Execute للـ [] و الـ [Unique`s Killer Table By JuStiCe]
3- Add Lines الـ [AddLogChar Lines by JuStiCe] فى _AddLogChar
الـ System بقا شغال ازاى ؟؟
اول ما Char يموت Unique لازم يعمل Teleport [U]مرتين بعد كدا الـ Proc هيمسح الـ Line بتاع الـ Char من الـ Log علشان
مايخدش Reward مرتين
ملحوظه مهمه ======> لازم تبقا شغال بـ srZor عشان الـ Log بتاع الـ Unique
نيجى بقا للتحميل
Download (http://files.fm/u/aizlube)
Rar PasswordJuStiCe
الموضوع من مش منقول
Hamza FiGo
13-03-2015, 02:05 PM
Approved
UnStoppable!
13-03-2015, 06:06 PM
ملحوظه مهمه ======> لازم تبقا شغال بـ srZor عشان الـ Log بتاع الـ Unique
لازم اخلى disbalelog = 1 ?
UnStoppable!
13-03-2015, 06:11 PM
و addlogchar بايظ
CritYouDown
13-03-2015, 08:32 PM
لازم اخلى disbalelog = 1 ?
انت هتعمل Add للـLines دى مش Execute على طول
و DisableLog=0
عشان يسجل الـ EventID و الـ Char بيعمل Teleport
و اتأكد انك مغير اسامى الـ Database
UnStoppable!
13-03-2015, 09:47 PM
و addlogchar بايظ يا فندم
CritYouDown
13-03-2015, 09:51 PM
و addlogchar بايظ يا فندم
بايظ ازاى ؟
هات Screen Shot من الـانت بتعملوا
او الـ Error الـبيجيلك
UnStoppable!
13-03-2015, 10:34 PM
تم الحل انت عامل البروسيدور غلط انا صلحته انت متاكد انه شغال
CritYouDown
13-03-2015, 10:41 PM
تم الحل انت عامل البروسيدور غلط انا صلحته انت متاكد انه شغال
انا شغلته عندى قبل ما انزله
كانت ايه المشكله عندك ؟
UnStoppable!
14-03-2015, 12:58 AM
انا شغلته عندى قبل ما انزله
كانت ايه المشكله عندك ؟
مفيش مشكلة
gameman
14-03-2015, 01:03 AM
Declare @CharName16 Varchar(64)
الي عندوا مشكلة يزود دة علي ما اعتقد
gameman
14-03-2015, 01:05 AM
USE [SRO_VT_SHARDLOG]
GO
/****** Object: StoredProcedure [dbo].[_UniqueKillerJuStiCe] Script Date: 02/20/2015 08:35:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[_UniqueKillerJuStiCe]
@CharName16 Varchar(64)
AS
--// Credits by 'https://www.facebook.com/peter.louis.73'
--// skype : 'peter.louis14'
-- Start Giving Reward to The Killer --
Declare @CharID int = (Select CharID From SRO_VT_SHARD.._Char Where CharName16 = @CharName16)
Declare @TakeReward Int = (Select TakeReward From SRO_VT_SHARDLOG.._UniqueKillsJuStiCe Where Charname = @CharName16)
Declare @KillsTimes int = (Select Killstimes From SRO_VT_SHARDLOG.._UniqueKillsJuStiCe Where CharName = @CharName16)
Declare @Now DateTime = GETDATE()
If @TakeReward = 0
Begin
exec SRO_VT_SHARD.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
Update SRO_VT_SHARDLOG.._UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = @KillsTimes+1 Where CharName = @CharName16
END
If Not Exists (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
Begin
Insert Into _UniqueKillsJuStiCe (CharName, CharID, TakeReward, KillsTimes) VALUES (@CharName16, @CharID, 0, 1)
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
exec SRO_VT_SHARD.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
END
If @TakeReward = 1
Begin
Delete From SRO_VT_ACCOUNT..srZor_uniques Where Charname = @CharName16
Update SRO_VT_SHARDLOG.._UniqueKillsJuStiCe Set TakeReward = 0 Where CharName = @CharName16
End
UnStoppable!
14-03-2015, 01:33 AM
السيستم مش شغال يا حبى
UnStoppable!
14-03-2015, 01:35 AM
الي عندوا مشكلة يزود دة علي ما اعتقد
انا عملت كدة قبل متقول ده اللى انا عملته
gameman
14-03-2015, 01:39 AM
انا عملت كدة قبل متقول ده اللى انا عملته
ماشي يا معلم انا بقول للي ميعرفش ^^
UnStoppable!
14-03-2015, 01:55 AM
لو سمحتوا يريت اللى يعمل موضيع يجيب صور او فيديو و يكون مجرب ده كدة نظام copy/past
UnStoppable!
14-03-2015, 01:56 AM
ماشي يا معلم انا بقول للي ميعرفش ^^
للاسف فى مثلا واحد مبتدا ميعرفش فى البروسيدور هيحتاس شكرا ليك
CritYouDown
14-03-2015, 02:15 AM
السيستم مش شغال يا حبى
أكيد انت عامل حاجه غلط
عشان انا شغال بيه عندى
و اتأكد ان لما الـ Char بيموت Unique بيتعملوا Add فى srZor_uniques
CritYouDown
14-03-2015, 02:16 AM
لو سمحتوا يريت اللى يعمل موضيع يجيب صور او فيديو و يكون مجرب ده كدة نظام copy/past
Copy Paste منين يا ريس ؟ :ahah:
دا انا الـعملوا بنفسى
btw هعمل Video من الـسيرفر عندى now
gameman
14-03-2015, 05:14 AM
اعمل الفيديو شرح ياريت للناس الي متعرفش
Dev. iLegend
15-03-2015, 03:56 PM
السلام عليكم ورحمة الله وبركاته
أولاً شكرا على تعبك فى عمل السيستم بس في بعض الملاحظات والتعديلات البسيطة اللى ممكن انت مخدتش بالك منها ..
وأرجوا ان تتقبل ان كانت نصيحة او انتقاد او تعديل ..
نبدأ على بركة الله
نبدأ بالانتقاد ..
بص يا باشا السيستم دا معلش لو حد عامل موضوع زي يونك رانك او latest unique kills على موقع اللعبة يبقا انت كدا بوظتله الدنيا عشان انت بالطريقة بتاعتك دي بيمسح اليونك لوج اللى بيتحسب عليه الرانك او اخر 50 يونك ع السايت اول بأول يعني لو حد عنده رانك او عامل اخر يونكات ماتت ع السايت يبقا الدنيا معاه خربت ..
غير كدا لو انت عايز اللى يموت اليونك ياخد ريوارد ممكن تضيف دروب لليونك بالريوارد اللى انت عايزها وخلاص
نخش ع النصيحة
اما تيجي تعمل بروسيدور حط فى الشروط Else عشان دي بتدور ع الشرط اللي متطابق فى الشروط كلها وتحققه وتتجاهل الباقي ودي افضل حاجة عشان تحط اكتر من شرطين وحاول تخلي شغلك ديماً على الـ CharID عشان دا مش بيتغير لكن charname16 دا بيتغير بالـ Charname Change scroll ..
نيجي للتعديلات ..
انت ليه عامل عشان يشتغل لازم يعمل تيليبورت قبل متعدي 5 دقايق على قتل اليونك فى الخطوة دي
And time <= @Now+DATEADD(MINUTE,5,0)
طب افرض هو كان بوت ولا حاجة ولا أخد DC بعد مقتل اليونك قبل ميعمل تليبورت ! وكذلك انت مش محدد اسم الكراكتر اللى هتشتغل عليه وتشغل الـ Procedure بيه اللى هو
@Charname16
وكذلك ليه تخليه يعمل تليبورت مرتين ! منتا ممكن تخلى الـ Procedure يشتغل مرتين ورا بعض انك تستخدم 2x EventID زي منا موضح كدا بالتعديل
Declare @Charname16 Varchar(max) = (Select CharName16 From SH_OWOJuStiCe.._Char Where CharID = @CharID)
IF (@EventID = 9 or @EventID = 11) And Exists (Select * From ACC_OWOJuStiCe..srZor_uniques Where Charname = @CharName16)
Begin
Exec [_UniqueKillerJuStiCe] @Charname16
END
طيب بالنسبة للـ Procedure دا
[dbo].[_UniqueKillerJuStiCe]
بغض النظر انك المفروض تستخدم
Else IF
فا الـ Procedure مليان اخطاء مش أخطاء اكواد لأ اخطاء سيستم ..
مثلاً اول خطوة دي
If @TakeReward = 0
Begin
exec SH_OWOJuStiCe.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
Update LOG_OWOJuStiCe.._UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = @KillsTimes+1 Where CharName = @CharName16
END
انت روحت جيبت الـ TakeReward من الجدول اللى انت عملتله كريت
لو لقاها 0 طيب منا ممكن تستبدلها بـ
IF EXISTS (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
المهم يعمل Execute procedure _ADD_ITEM_EXTERN عشان يضيف الريوارد تمام .. وتاني خطوة يعدل ع الجدول بأسم الكراكتر ويخلي ال TakeReward = 1 ويزود الـ KillsTimes +1 تمام ..
يبقا اللى نفهمه من الخطوة دي لو راح لقى الكراكتر موجود ليها row فى الجدول اللى انت مكريته والـ TakeReward = 0 يعدل عليه ويضيف الريوارد ..
تاني خطوة دي
If Not Exists (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
Begin
Insert Into _UniqueKillsJuStiCe (CharName, CharID, TakeReward, KillsTimes) VALUES (@CharName16, @CharID, 0, 1)
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
exec SH_OWOJuStiCe.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
END
لو راح وملقاش الكركتر ليها row فى الجدول يدخل new row للكراكتر بالقيم اللى انت محددها وبعدين يعدل عليه طيب متدخل القيم على طول اللى انت معدلها بدل متدخل insert new row وبعدين تعدل عليه!
طيب المشكلة هنا فى حاجة انت دخلت القيم دي فى الاول
VALUES (@CharName16, @CharID, 0, 1)
وعدلت عليها بالكيوري دي
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
طيب ما كدا مش هيعدل التعديل اللى انت محدده فى الكيوري عارف ليه ؟
عشان دي
And KillsTimes = NULL
انت ضايفها اصلاً بالـ insert الـ Value = 1 ازاي حاططله الشرط ان الـ KillsTimes لازم تكون NULL عشان يعدل !!
وبعدين يدي الريوارد تمام ..
نيجي لأخر خطوة ..
If @TakeReward = 1
Begin
Delete From ACC_OWOJuStiCe..srZor_uniques Where Charname = @CharName16
Update LOG_OWOJuStiCe.._UniqueKillsJuStiCe Set TakeReward = 0 Where CharName = @CharName16
End
الخطوة دي تمام مفهاش أخطاء وهي انه بعد معدل وخلى TakeReward = 1 يروح يمسح اللوج ويرجعها = 0 عشان الـ kill اللى بعده ..
بس الصراحة انت هارس فى الـ Procedure حاجات كتير ملهاش لازمة وممكن تختصرها فى 2x case مش اكتر ..
ارجوا ان اكون وضحت شرح يوصلك لأنك تبقا محترف
معلش بقا مش منسق
تقبل مروري
Dev. iLegend
15-03-2015, 04:21 PM
حاجة اخيرة نسيت اكتبها
انت مش محدد نوع اليونيك وبكدا الريوارد دي هتروح على اي يونيك بينزل بنوتيك اياً كان بقا TG Demon Yuno Jupiter
بص هوضحلك فكرة حلوة .. متخليهوش يمسح حاجة من الـ srZor_uniques ضيف عامود جديد بأسم reward ومع التليبورت الاولانية عدل بأسماء اليونيكات عدد الريوارد اللى انت تحدده لكل يونيك
واما تدي الريوارد رجعه 0 عشان ميحسبوش بعد كدا واشتغل ع الـ new kills بال NULL مش بالـ 0 بكدا هتسهل عليك كتيير وتقدر تتحكم فى كل يونيك يدي كام كوين او كام سيلك .. كدا يعني ..
UnStoppable!
15-03-2015, 05:36 PM
Lazcano (http://www.silkroad4arab.com/vb/member.php?u=112689)
اعمل موضوع جديد احسن
_Miss_AngeL_
15-03-2015, 08:06 PM
السلام عليكم ورحمة الله وبركاته
أولاً شكرا على تعبك فى عمل السيستم بس في بعض الملاحظات والتعديلات البسيطة اللى ممكن انت مخدتش بالك منها ..
وأرجوا ان تتقبل ان كانت نصيحة او انتقاد او تعديل ..
نبدأ على بركة الله
نبدأ بالانتقاد ..
بص يا باشا السيستم دا معلش لو حد عامل موضوع زي يونك رانك او latest unique kills على موقع اللعبة يبقا انت كدا بوظتله الدنيا عشان انت بالطريقة بتاعتك دي بيمسح اليونك لوج اللى بيتحسب عليه الرانك او اخر 50 يونك ع السايت اول بأول يعني لو حد عنده رانك او عامل اخر يونكات ماتت ع السايت يبقا الدنيا معاه خربت ..
غير كدا لو انت عايز اللى يموت اليونك ياخد ريوارد ممكن تضيف دروب لليونك بالريوارد اللى انت عايزها وخلاص
نخش ع النصيحة
اما تيجي تعمل بروسيدور حط فى الشروط Else عشان دي بتدور ع الشرط اللي متطابق فى الشروط كلها وتحققه وتتجاهل الباقي ودي افضل حاجة عشان تحط اكتر من شرطين وحاول تخلي شغلك ديماً على الـ CharID عشان دا مش بيتغير لكن charname16 دا بيتغير بالـ Charname Change scroll ..
نيجي للتعديلات ..
انت ليه عامل عشان يشتغل لازم يعمل تيليبورت قبل متعدي 5 دقايق على قتل اليونك فى الخطوة دي
And time <= @Now+DATEADD(MINUTE,5,0)
طب افرض هو كان بوت ولا حاجة ولا أخد DC بعد مقتل اليونك قبل ميعمل تليبورت ! وكذلك انت مش محدد اسم الكراكتر اللى هتشتغل عليه وتشغل الـ Procedure بيه اللى هو
@Charname16
وكذلك ليه تخليه يعمل تليبورت مرتين ! منتا ممكن تخلى الـ Procedure يشتغل مرتين ورا بعض انك تستخدم 2x EventID زي منا موضح كدا بالتعديل
Declare @Charname16 Varchar(max) = (Select CharName16 From SH_OWOJuStiCe.._Char Where CharID = @CharID)
IF (@EventID = 9 or @EventID = 11) And Exists (Select * From ACC_OWOJuStiCe..srZor_uniques Where Charname = @CharName16)
Begin
Exec [_UniqueKillerJuStiCe] @Charname16
END
طيب بالنسبة للـ Procedure دا
[dbo].[_UniqueKillerJuStiCe]
بغض النظر انك المفروض تستخدم
Else IF
فا الـ Procedure مليان اخطاء مش أخطاء اكواد لأ اخطاء سيستم ..
مثلاً اول خطوة دي
If @TakeReward = 0
Begin
exec SH_OWOJuStiCe.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
Update LOG_OWOJuStiCe.._UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = @KillsTimes+1 Where CharName = @CharName16
END
انت روحت جيبت الـ TakeReward من الجدول اللى انت عملتله كريت
لو لقاها 0 طيب منا ممكن تستبدلها بـ
IF EXISTS (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
المهم يعمل Execute procedure _ADD_ITEM_EXTERN عشان يضيف الريوارد تمام .. وتاني خطوة يعدل ع الجدول بأسم الكراكتر ويخلي ال TakeReward = 1 ويزود الـ KillsTimes +1 تمام ..
يبقا اللى نفهمه من الخطوة دي لو راح لقى الكراكتر موجود ليها row فى الجدول اللى انت مكريته والـ TakeReward = 0 يعدل عليه ويضيف الريوارد ..
تاني خطوة دي
If Not Exists (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
Begin
Insert Into _UniqueKillsJuStiCe (CharName, CharID, TakeReward, KillsTimes) VALUES (@CharName16, @CharID, 0, 1)
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
exec SH_OWOJuStiCe.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
END
لو راح وملقاش الكركتر ليها row فى الجدول يدخل new row للكراكتر بالقيم اللى انت محددها وبعدين يعدل عليه طيب متدخل القيم على طول اللى انت معدلها بدل متدخل insert new row وبعدين تعدل عليه!
طيب المشكلة هنا فى حاجة انت دخلت القيم دي فى الاول
VALUES (@CharName16, @CharID, 0, 1)
وعدلت عليها بالكيوري دي
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
طيب ما كدا مش هيعدل التعديل اللى انت محدده فى الكيوري عارف ليه ؟
عشان دي
And KillsTimes = NULL
انت ضايفها اصلاً بالـ insert الـ Value = 1 ازاي حاططله الشرط ان الـ KillsTimes لازم تكون NULL عشان يعدل !!
وبعدين يدي الريوارد تمام ..
نيجي لأخر خطوة ..
If @TakeReward = 1
Begin
Delete From ACC_OWOJuStiCe..srZor_uniques Where Charname = @CharName16
Update LOG_OWOJuStiCe.._UniqueKillsJuStiCe Set TakeReward = 0 Where CharName = @CharName16
End
الخطوة دي تمام مفهاش أخطاء وهي انه بعد معدل وخلى TakeReward = 1 يروح يمسح اللوج ويرجعها = 0 عشان الـ kill اللى بعده ..
بس الصراحة انت هارس فى الـ Procedure حاجات كتير ملهاش لازمة وممكن تختصرها فى 2x case مش اكتر ..
ارجوا ان اكون وضحت شرح يوصلك لأنك تبقا محترف
معلش بقا مش منسق
تقبل مروري
حاجة اخيرة نسيت اكتبها
انت مش محدد نوع اليونيك وبكدا الريوارد دي هتروح على اي يونيك بينزل بنوتيك اياً كان بقا TG Demon Yuno Jupiter
بص هوضحلك فكرة حلوة .. متخليهوش يمسح حاجة من الـ srZor_uniques ضيف عامود جديد بأسم reward ومع التليبورت الاولانية عدل بأسماء اليونيكات عدد الريوارد اللى انت تحدده لكل يونيك
واما تدي الريوارد رجعه 0 عشان ميحسبوش بعد كدا واشتغل ع الـ new kills بال NULL مش بالـ 0 بكدا هتسهل عليك كتيير وتقدر تتحكم فى كل يونيك يدي كام كوين او كام سيلك .. كدا يعني ..
انت عدلت علي اخطاءه ، بس في نفس الوقت فيه حاجا لازم تفهمها . السيستم ده لو اتعمل في اكتر من 3 سطور يبقي الي عمله مبيفهمش حاجا ! متختلفش كتير عنه ^^ .. تقبل النقد بقي زيك زي الراجل الي انت انتقدته ده :busted_red:
Dev. iLegend
16-03-2015, 02:30 AM
بص يا برنس انا لو هعمل سيستم مش هاخد حاجة اعدل عليها انا مجرد اني قولتله اخطاؤه وعلى فكرة شوف انا قايله ايه فى الجملة دي ..
بس الصراحة انت هارس فى الـ Procedure حاجات كتير ملهاش لازمة وممكن تختصرها فى 2x case مش اكتر ..
وانا لو عملته مش هعمل العك دا كله ومش هخليه يمسح لوج واحد من srZor_uniques عشان لو حد مشغل حاجة عليه مبقاش بهدلتله الدنيا !
وكلامي اللى فات كان مجرد رأي وتعديلات للأحسن بمجرد اني بصيت دقيقتين ع الـ Procedure
انتقادك مقبول
و ياريت تورينا شغلك سيادتك !
:party:
Dev. iLegend
16-03-2015, 02:31 AM
انت عدلت علي اخطاءه ، بس في نفس الوقت فيه حاجا لازم تفهمها . السيستم ده لو اتعمل في اكتر من 3 سطور يبقي الي عمله مبيفهمش حاجا ! متختلفش كتير عنه ^^ .. تقبل النقد بقي زيك زي الراجل الي انت انتقدته ده :busted_red:
بص يا برنس انا لو هعمل سيستم مش هاخد حاجة اعدل عليها انا مجرد اني قولتله اخطاؤه وعلى فكرة شوف انا قايله ايه فى الجملة دي ..
بس الصراحة انت هارس فى الـ Procedure حاجات كتير ملهاش لازمة وممكن تختصرها فى 2x case مش اكتر ..
وانا لو عملته مش هعمل العك دا كله ومش هخليه يمسح لوج واحد من srZor_uniques عشان لو حد مشغل حاجة عليه مبقاش بهدلتله الدنيا !
وكلامي اللى فات كان مجرد رأي وتعديلات للأحسن بمجرد اني بصيت دقيقتين ع الـ Procedure
انتقادك مقبول
و ياريت تورينا شغلك سيادتك !
:party:
Mr Z!dane
16-03-2015, 03:46 AM
بص يا برنس انا لو هعمل سيستم مش هاخد حاجة اعدل عليها انا مجرد اني قولتله اخطاؤه وعلى فكرة شوف انا قايله ايه فى الجملة دي ..
وانا لو عملته مش هعمل العك دا كله ومش هخليه يمسح لوج واحد من srZor_uniques عشان لو حد مشغل حاجة عليه مبقاش بهدلتله الدنيا !
وكلامي اللى فات كان مجرد رأي وتعديلات للأحسن بمجرد اني بصيت دقيقتين ع الـ Procedure
انتقادك مقبول
و ياريت تورينا شغلك سيادتك !
:party:
الله ينور يا رامي و مستنين جديدك
_Miss_AngeL_
16-03-2015, 09:40 PM
بص يا برنس انا لو هعمل سيستم مش هاخد حاجة اعدل عليها انا مجرد اني قولتله اخطاؤه وعلى فكرة شوف انا قايله ايه فى الجملة دي ..
وانا لو عملته مش هعمل العك دا كله ومش هخليه يمسح لوج واحد من srZor_uniques عشان لو حد مشغل حاجة عليه مبقاش بهدلتله الدنيا !
وكلامي اللى فات كان مجرد رأي وتعديلات للأحسن بمجرد اني بصيت دقيقتين ع الـ Procedure
انتقادك مقبول
و ياريت تورينا شغلك سيادتك !
:party:
قريب باذن الله ^^
CritYouDown
19-03-2015, 02:24 PM
السلام عليكم ورحمة الله وبركاته
أولاً شكرا على تعبك فى عمل السيستم بس في بعض الملاحظات والتعديلات البسيطة اللى ممكن انت مخدتش بالك منها ..
وأرجوا ان تتقبل ان كانت نصيحة او انتقاد او تعديل ..
نبدأ على بركة الله
نبدأ بالانتقاد ..
بص يا باشا السيستم دا معلش لو حد عامل موضوع زي يونك رانك او latest unique kills على موقع اللعبة يبقا انت كدا بوظتله الدنيا عشان انت بالطريقة بتاعتك دي بيمسح اليونك لوج اللى بيتحسب عليه الرانك او اخر 50 يونك ع السايت اول بأول يعني لو حد عنده رانك او عامل اخر يونكات ماتت ع السايت يبقا الدنيا معاه خربت ..
غير كدا لو انت عايز اللى يموت اليونك ياخد ريوارد ممكن تضيف دروب لليونك بالريوارد اللى انت عايزها وخلاص
نخش ع النصيحة
اما تيجي تعمل بروسيدور حط فى الشروط Else عشان دي بتدور ع الشرط اللي متطابق فى الشروط كلها وتحققه وتتجاهل الباقي ودي افضل حاجة عشان تحط اكتر من شرطين وحاول تخلي شغلك ديماً على الـ CharID عشان دا مش بيتغير لكن charname16 دا بيتغير بالـ Charname Change scroll ..
نيجي للتعديلات ..
انت ليه عامل عشان يشتغل لازم يعمل تيليبورت قبل متعدي 5 دقايق على قتل اليونك فى الخطوة دي
And time <= @Now+DATEADD(MINUTE,5,0)
طب افرض هو كان بوت ولا حاجة ولا أخد DC بعد مقتل اليونك قبل ميعمل تليبورت ! وكذلك انت مش محدد اسم الكراكتر اللى هتشتغل عليه وتشغل الـ Procedure بيه اللى هو
@Charname16
وكذلك ليه تخليه يعمل تليبورت مرتين ! منتا ممكن تخلى الـ Procedure يشتغل مرتين ورا بعض انك تستخدم 2x EventID زي منا موضح كدا بالتعديل
Declare @Charname16 Varchar(max) = (Select CharName16 From SH_OWOJuStiCe.._Char Where CharID = @CharID)
IF (@EventID = 9 or @EventID = 11) And Exists (Select * From ACC_OWOJuStiCe..srZor_uniques Where Charname = @CharName16)
Begin
Exec [_UniqueKillerJuStiCe] @Charname16
END
طيب بالنسبة للـ Procedure دا
[dbo].[_UniqueKillerJuStiCe]
بغض النظر انك المفروض تستخدم
Else IF
فا الـ Procedure مليان اخطاء مش أخطاء اكواد لأ اخطاء سيستم ..
مثلاً اول خطوة دي
If @TakeReward = 0
Begin
exec SH_OWOJuStiCe.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
Update LOG_OWOJuStiCe.._UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = @KillsTimes+1 Where CharName = @CharName16
END
انت روحت جيبت الـ TakeReward من الجدول اللى انت عملتله كريت
لو لقاها 0 طيب منا ممكن تستبدلها بـ
IF EXISTS (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
المهم يعمل Execute procedure _ADD_ITEM_EXTERN عشان يضيف الريوارد تمام .. وتاني خطوة يعدل ع الجدول بأسم الكراكتر ويخلي ال TakeReward = 1 ويزود الـ KillsTimes +1 تمام ..
يبقا اللى نفهمه من الخطوة دي لو راح لقى الكراكتر موجود ليها row فى الجدول اللى انت مكريته والـ TakeReward = 0 يعدل عليه ويضيف الريوارد ..
تاني خطوة دي
If Not Exists (Select * From _UniqueKillsJuStiCe Where CharID = @CharID)
Begin
Insert Into _UniqueKillsJuStiCe (CharName, CharID, TakeReward, KillsTimes) VALUES (@CharName16, @CharID, 0, 1)
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
exec SH_OWOJuStiCe.._ADD_ITEM_EXTERN @CharName16,'ITEM_ETC_SD_TOKEN_01',500,1
END
لو راح وملقاش الكركتر ليها row فى الجدول يدخل new row للكراكتر بالقيم اللى انت محددها وبعدين يعدل عليه طيب متدخل القيم على طول اللى انت معدلها بدل متدخل insert new row وبعدين تعدل عليه!
طيب المشكلة هنا فى حاجة انت دخلت القيم دي فى الاول
VALUES (@CharName16, @CharID, 0, 1)
وعدلت عليها بالكيوري دي
Update _UniqueKillsJuStiCe Set TakeReward = 1 , KillsTimes = 1 Where CharName = @CharName16 And KillsTimes = NULL
طيب ما كدا مش هيعدل التعديل اللى انت محدده فى الكيوري عارف ليه ؟
عشان دي
And KillsTimes = NULL
انت ضايفها اصلاً بالـ insert الـ Value = 1 ازاي حاططله الشرط ان الـ KillsTimes لازم تكون NULL عشان يعدل !!
وبعدين يدي الريوارد تمام ..
نيجي لأخر خطوة ..
If @TakeReward = 1
Begin
Delete From ACC_OWOJuStiCe..srZor_uniques Where Charname = @CharName16
Update LOG_OWOJuStiCe.._UniqueKillsJuStiCe Set TakeReward = 0 Where CharName = @CharName16
End
الخطوة دي تمام مفهاش أخطاء وهي انه بعد معدل وخلى TakeReward = 1 يروح يمسح اللوج ويرجعها = 0 عشان الـ kill اللى بعده ..
بس الصراحة انت هارس فى الـ Procedure حاجات كتير ملهاش لازمة وممكن تختصرها فى 2x case مش اكتر ..
ارجوا ان اكون وضحت شرح يوصلك لأنك تبقا محترف
معلش بقا مش منسق
تقبل مروري
اولاً : شكرا على الملحظات
ثانياً : انا قايل لن ده بيمسح Log الـيونيك
ثالثاً : كان فى واحد محتاج الموضوع فعملته بسرعه و زى ما طلع بقا :smile:
و _Miss_AngeL بدل الكلمتين القولتوهم دول كان مككن تعمل بيهم الـSystem الـ فى 3 سطور
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions, Inc