Jump to content

مطلوب شرح getTickCount()


Recommended Posts

هذي الوظيفه تجيب لك الوقت اللي اشتغل فيه نظامك داخل السيرفر

وتقدر تقارن قيمتين من نفس الوظيفه عشان تجيب الوقت اللي انقضى

تقدر تستفيد منها مثلاً اذا دخل ماركر او شي تقدر تخليه مايقدر يدخل الا بعد ساعه من خلال مقارنة وظيفتين الوظيفه مهمه جداً وتسهل عليك الكثير .

Link to comment
هذي الوظيفه تجيب لك الوقت اللي اشتغل فيه نظامك داخل السيرفر

وتقدر تقارن قيمتين من نفس الوظيفه عشان تجيب الوقت اللي انقضى

تقدر تستفيد منها مثلاً اذا دخل ماركر او شي تقدر تخليه مايقدر يدخل الا بعد ساعه من خلال مقارنة وظيفتين الوظيفه مهمه جداً وتسهل عليك الكثير .

الصراحة لو انك كاتب شرح وامثله واشياء مفصله كان افدت كثير ناس ومنهم انا شخصيا

ولآتنسى تسوي شرح عن

interpolateBetween

اتمنى تسوي الشرح دامك فاهم كل حاجة لاننا نبغى نفهمه نفس ما انت فهمته ونتطور بالبرمجة

لان صراحة هذول الفنكشنات الأثنين عقدوآ حياتي

لازم افهمهم يعني افهمهم

فــ الزبدة

اشرحهم تكفى ي بطل :twisted::)

Link to comment

الوظيفتين سهله مب صعبه ركز معي :)

شوف المثال ذا وقول لي اذا مو فاهمه؟

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 by Guest
  • Thanks 1
Link to comment
الوظيفتين سهله مب صعبه ركز معي :)

شوف المثال ذا وقول لي اذا مو فاهمه؟

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

^ عدلت الكود وضفت شرح للأرقومنتات وبعض الأسئله,

مافهمت سؤالك؟ يعني تقصد تحرك نافذه من الاسفل للأعلى او شي زي كذا؟

guiSetPosition استخدم نفس المثال اللي فوق واستخدم وظيفة

بخصوص الماركر, يعني تخلي الماركر ينزل من فوق لين تحت وزي كذا..

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...