الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   استفسارات (https://silkroad4arab.com/vb/showthread.php?t=634176)

gaffag 15-03-2020 04:03 AM

رد: استفسارات
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ahmed9009 (المشاركة 5377843)
تمام تسلم
بخصوص اني شايل sp علشان البج اه
في حاجة ان لما بعمل reset skills
بيديني sp لو عاوز اشيل ال sp وانه ميديش لما اعمل reset skills
او في بروسيد كويس ل اسكرولاية reset skills

بص انت علي فكرة عندك ارادة انك تتعلم حاجة.. علشان تتعلم لازم تقرأ ال Queries اللي الناس بتعملها علي النت , وتبدأ تفهم ازاي تعمل Query ولية هم استخدموا الحاجات دي .

عموما لازم تشوف ال Scroll دي فين , لو تبع الجيم اصلا ماحدش عاملها يبقى تفكك منها تعمل واحدة غيرها لانها اصلا في الغالب بتبقي مربوطة ب GameServer مش برمجة SQL .


gaffag 15-03-2020 04:20 AM

رد: استفسارات
 
بص علشان تعمل اي سكرول , لازم تخليها تعتمد علي Effect او حدث معين بيحصل في الجيم علشان يقدر ياخد اكشن ... ف مثلا من الحاجات المهم اوي واللي انا بشتغل بيها ,, هتروح علي SHARD_LOG وهتفتح ال Procedures الموجودة فيه ... وهتلاقي 2 بروسيدير مهمين اوي اوي
واحد اسمة _AddLogItem والتاني اسمة _AddLogChar ... لو هتعمل سكرولة تعمل حدث معين يبقى شغلك كلة _AddLogItem ف انت خلي كل شغلك عليه .

هتفتحة , اول حاجة هتلاقي حاجة معمولها Declare اسمها @ItemRefID
ف انت اول حاجة هتعملها انت عايز تسأل الداتابيز لو حد ضرب السكرول دي , نفذ دة
ف هتستخدم if Statement

هتقول :

If (@ItemRefID = رقم الID بتاع السكرول هتجيبة من _RefObjCommon ... بس تكون سكرول انت ضايفها بنفسك جديدة )
begin
وهتكتب هنا المفروض ينفذ اية
وبعدين تكتب
end

طيب الكوايري نفسة بقى عبارة عن اية ؟
انت قلت عايز تعمل ريسيت Skill يبقى هتعمل حاجتين
رقم واحد هتخلي الماستري لفل 0 كلها
رقم اتنين هتمسح ال Skills كلها
يبقى هتقولة


Update _CharSkillMastery
Set Level = 0 where CharID = @CharID

كدة احنا خلينا الماستري 0 لاي سلاح هو فاتحة

طيب هنكمل بقى .. عايزين نمسح ال Skills كلها ما عدا ال Basic Skills الخاصة بال Normal Hit بالسلاح , يعني اللي هي بيضرب Basic attach

طيب هنقولة اية ؟

Delete From _CharSkill where CharID = @CharID and SkillId not in (Select SkillID from _RefCharDefault_Skill)

كدة تبقى خلصت الكويري كلة , اهم حاجة انك تتعلم خبايا اللعبة فين , وكل بروسيدير وكل table خاص ب اية .
الكود دة كلة هتضيفة علي _ِAddLogItem في SHARD_LOG

كود PHP:

If (@ItemRefID 'xxxxx')
begin
Update _CharSkillMastery 
SET Level 
0 Where CharID=@CharID 
Delete from _CharSkill where CharID
=@CharID and SkillID not in (Select SkillID from _RefCharDefault_skill)
end 

وهتعمل Execute وخلاص علي كدة اضرب الايتم وهتعمل ريسيت لل Skills :Emoji7:

ahmed9009 15-03-2020 07:23 AM

رد: استفسارات
 
تمام وصلت تسلم
طب حاجة اخيرة لو عاوز اخلي الي يقتل يونيك او اي حاجة ميديش SP في طريقة ؟

gaffag 15-03-2020 05:50 PM

رد: استفسارات
 
بيتهيقلي ال EXP و ال SkillEXP مع بعض ,, ف لو لغيت دة هتلغي دة .... وعموما هتعدل الكلام دة من _RefObjChar من Column اسمة ExpToGive هتخليه 0 وتعدلها Characterdata_xxx في الكلاينت.. بس طبعا هتحتاج تعمل دة لكل الوحوش اللي عندك لو عايز تشيل ال EXP خالص .


الساعة الآن 04:18 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.