Yousefx Posted July 20, 2016 Share Posted July 20, 2016 حاولت ادور الويكي مو فاهمها .. أتمنى شرح مع مثال ^ Link to comment
فاّرس Posted July 20, 2016 Share Posted July 20, 2016 هذي الوظيفه تجيب لك الوقت اللي اشتغل فيه نظامك داخل السيرفر وتقدر تقارن قيمتين من نفس الوظيفه عشان تجيب الوقت اللي انقضى تقدر تستفيد منها مثلاً اذا دخل ماركر او شي تقدر تخليه مايقدر يدخل الا بعد ساعه من خلال مقارنة وظيفتين الوظيفه مهمه جداً وتسهل عليك الكثير . Link to comment
MR.GRAND Posted July 21, 2016 Share Posted July 21, 2016 هذي الوظيفه تجيب لك الوقت اللي اشتغل فيه نظامك داخل السيرفروتقدر تقارن قيمتين من نفس الوظيفه عشان تجيب الوقت اللي انقضى تقدر تستفيد منها مثلاً اذا دخل ماركر او شي تقدر تخليه مايقدر يدخل الا بعد ساعه من خلال مقارنة وظيفتين الوظيفه مهمه جداً وتسهل عليك الكثير . الصراحة لو انك كاتب شرح وامثله واشياء مفصله كان افدت كثير ناس ومنهم انا شخصيا ولآتنسى تسوي شرح عن interpolateBetween اتمنى تسوي الشرح دامك فاهم كل حاجة لاننا نبغى نفهمه نفس ما انت فهمته ونتطور بالبرمجة لان صراحة هذول الفنكشنات الأثنين عقدوآ حياتي لازم افهمهم يعني افهمهم فــ الزبدة اشرحهم تكفى ي بطل Link to comment
فاّرس Posted July 22, 2016 Share Posted July 22, 2016 (edited) الوظيفتين سهله مب صعبه ركز معي شوف المثال ذا وقول لي اذا مو فاهمه؟ tic = getTickCount () -- الوقت اللي اشتغل فيه نظامك على السيرفر, طبعاً بيجيب رقم ثابت مايتحدث addCommandHandler ( 'tics', function() newtic = getTickCount() -- هنا نجيب الوقت الجديد مع التحديث local seconds = math.floor ( ( newtic - tic ) / 1000 ) --[[ - math.floor عشان نقرب الرقم لأقرب عدد عشري - newtic - tic ننقص الوقت الاول من الثاني كذا بيطلع لنا الوقت بالمليسيكوند - ( newtic - tic ) / 1000 نقسم الوقت اللي نقصناه على الف عشان نجيب الثواني ]] local minutes = math.floor ( ( newtic - tic ) / 60000 ) -- : طريقة التحويل من مليسيكوند الى ثانيه او دقيقه او ساعه نقسم على -- to sec : / 1000 -- to min : / 60000 -- to hour : / 3600000 local hour = math.floor ( ( newtic - tic ) / 3600000 ) outputChatBox ( seconds .. ' Second(s) > '.. minutes .. ' minuet(s) > '.. hour .. ' Hour(s).' ) end) interpolateBetween وذا مثال ثاني عن الوظيفه ذي تقدر تسوي منها تأثيرات على اي شي تبيه ماركر, كلام, نافذه واشياء كثير... ^ 3D+2D يعني اللي نفهمه اننا نقدر نستخدمها شوف هالمثال, window = guiCreateWindow ( 300, 260, 240, 290, 'Test', false ) guiSetVisible ( window, false ) start = getTickCount () -- نجيب الوقت اللي اشتغل فيه نظامك داخل السيرفر end_ = getTickCount () + 3500 -- نسوي وقت انتهاء من خلال تزويد مليسيكوند على وقت البدأ draw = function ( ) elapsedTime = getTickCount () - start -- ننقص الوقت الحالي من وقت التشغيل عشان نجيب الوقت اللي انقضى بينهم duration = end_ - start -- نجيب المدة مابين البدء والإنتهاء progress = elapsedTime / duration -- نقسمهم على بعض outputChatBox ( progress ) -- راح تلاحظ الرقم يبدأ من صفر ويزيد لين يوصل 1 local width, height = interpolateBetween ( 0, 0, 0, 240, 290, 0, progress, "InQuad" ) -- ^ x,y,z اول ثلاث ارقومنتات هي حق البداية, يعني بداية التأثير -- اذا كنت ما تحتاجه وتحطه صفر z تقدر تستغني عن الاحداثي -- ^ x,y,z الارقومنت الرابع والخامس والسادس هي حق النهاية, يعني نهاية التأثير -- ^ الارقومنت السابع هو حق حركة التأثير ويكون عدد عشري مابين صفر وواحد -- ^ الارقومنت الثامن هو حق طريقة التأثير او الطريقه اللي تشوف فيها التأثير وتلقى انواع التأثيرات بصفحة الويكي -- [url=https://wiki.multitheftauto.com/wiki/Easing]https://wiki.multitheftauto.com/wiki/Easing[/url] --[[ سؤال : ليه حطيت اول ثلاث ارقومنتات صفر؟ عشان انا ابيها تبدأ من صفر وتنتهي عند القيمه اللي انا حطيتها وهي الارقومنت الرابع والخامس والسادس سؤال: ليه الارقومنت الثالث والسادس ما احتاجهم؟ عشان انا مسوي التأثير على لوحة, واللوحه ثنائية الأبعاد سؤال: متى احتاج الارقومنت الثالث والسادس؟ .تحتاجهم اذا تبي تسوي تأثير لشيء ثلاثي الأبعاد مثل اوبجكت ماركر الخ سؤال: ليه استخدمنا العمليات الحسابيه فوق؟ عشان نخلي حركة التأثير تبدأ من اصغر قيمة لأعلى قيمه, اصغر قيمه صفر, أعلى قيمه واحد ]] guiSetVisible ( window, true ) guiSetSize(window, width, height, false) end bindKey ( 'n', 'down', function ( ) if guiGetVisible ( window ) == false then addEventHandler ( 'onClientRender', root, draw ) setTimer ( function() removeEventHandler ( 'onClientRender', root, draw ) end,3000,1 ) -- التايمر تقديري يمكن ما انتهى التأثير زود او نقص التايمر end end) . ذا شرح مختصر, مو متأكد من احداثيات النافذه اللعبه مب عندي حطيتها من راسي,اذا مافهمت شي تفضل اسأل Edited July 22, 2016 by Guest 1 Link to comment
Wleed1998 Posted July 22, 2016 Share Posted July 22, 2016 الوظيفتين سهله مب صعبه ركز معي شوف المثال ذا وقول لي اذا مو فاهمه؟ tic = getTickCount () -- الوقت اللي اشتغل فيه نظامك على السيرفر, طبعاً بيجيب رقم ثابت مايتحدث addCommandHandler ( 'tics', function() newtic = getTickCount() -- هنا نجيب الوقت الجديد مع التحديث local seconds = math.floor ( ( newtic - tic ) / 1000 ) --[[ - math.floor عشان نقرب الرقم لأقرب عدد عشري - newtic - tic ننقص الوقت الاول من الثاني كذا بيطلع لنا الوقت بالمليسيكوند - ( newtic - tic ) / 1000 نقسم الوقت اللي نقصناه على الف عشان نجيب الثواني ]] local minutes = math.floor ( ( newtic - tic ) / 60000 ) -- : طريقة التحويل من مليسيكوند الى ثانيه او دقيقه او ساعه نقسم على -- to sec : / 1000 -- to min : / 60000 -- to hour : / 3600000 local hour = math.floor ( ( newtic - tic ) / 3600000 ) outputChatBox ( seconds .. ' Second(s) > '.. minutes .. ' minuet(s) > '.. hour .. ' Hour(s).' ) end) interpolateBetween وذا مثال ثاني عن الوظيفه ذي تقدر تسوي منها تأثيرات على اي شي تبيه ماركر, كلام, نافذه واشياء كثير... ^ 3D+2D يعني اللي نفهمه اننا نقدر نستخدمها شوف هالمثال, window = guiCreateWindow ( 300, 260, 240, 290, 'Test', false ) guiSetVisible ( window, false ) start = getTickCount () -- نجيب الوقت اللي اشتغل فيه نظامك داخل السيرفر end_ = getTickCount () + 3500 -- نسوي وقت انتهاء من خلال تزويد مليسيكوند على وقت البدأ draw = function ( ) elapsedTime = getTickCount () - start -- ننقص الوقت الحالي من وقت التشغيل عشان نجيب الوقت اللي انقضى بينهم duration = end_ - start -- نجيب المدة مابين البدء والإنتهاء progress = elapsedTime / duration -- نقسمهم على بعض outputChatBox ( progress ) local width, height = interpolateBetween ( 0, 0, 0, 240, 290, 0, progress, "InQuad" ) guiSetVisible ( window, true ) guiSetSize(window, width, height, false) end bindKey ( 'n', 'down', function ( ) if guiGetVisible ( window ) == false then addEventHandler ( 'onClientRender', root, draw ) setTimer ( function() removeEventHandler ( 'onClientRender', root, draw ) end,3000,1 ) -- التايمر تقديري يمكن ما انتهى التأثير زود او نقص التايمر end end) ^ مو متأكد من احداثيات النافذه اللعبه مب عندي حطيتها من راسي, والمعذره ماشرحت الارقومنتات مستعجل لافضيت شرحتها . getTickCount() و interpolateBetween ( اقدر احرك به النوآفذ طيب كيف احرك اذا تحرك الوحات او اي شيء ووش تقصد بي التآثيرات ع المآركه او غيره ض1 الان ي شاطح Link to comment
فاّرس Posted July 22, 2016 Share Posted July 22, 2016 ^ عدلت الكود وضفت شرح للأرقومنتات وبعض الأسئله, مافهمت سؤالك؟ يعني تقصد تحرك نافذه من الاسفل للأعلى او شي زي كذا؟ guiSetPosition استخدم نفس المثال اللي فوق واستخدم وظيفة بخصوص الماركر, يعني تخلي الماركر ينزل من فوق لين تحت وزي كذا.. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now