المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : 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 سطور