Jump to content

[GIE]GUI Interpolate Effects | By : PaiN^


Recommended Posts

3ssol أخوي

لإضافة تأثير, زيها زي أي وظيفة في الويكي guiAddInterpolateEffect المود ببساطة عبارة عن وظيفة

لو ما فهمت, حمل المود اللي طرحته برد سابق في الموضوع, وشف طريقة الإستعمال

اخوي بين

انا حملته وشفت الـ مود الجاهز الي عطيته الاخ مادري شسمه تحت

وكتبت الكلمه ورهيبه طريقة فتح النافذه ولكن ماعرف كيف انت جبت احداثيات الوحه

يعني كيف جبت احداثياتها انها سوفا تمشي من فوق ع اليسار الي الوسط

وهكذا

كيف جبت الاحداثيات !؟

هذول ماني فاهمهم

local cx, cy = guiGetPosition( window, false ) 
            local cw, ch = guiGetSize( window, false ) 
            guiAddInterpolateEffect( window, cx, cy, cw, ch, 0, 0, 0, 0, 2, "Linear", "Linear", false ) 
        else 
            guiAddInterpolateEffect( window, 0, 0, 0, 0, x, y, w, h, 2, "Linear", "Linear", true ) 

كيف جبت الاحداثيات !؟

وكيف فهمت الوحه انها سوفا تبدا من اليسار وتذهب الي وسط الشاشه

اتمني تشرحلي شرح كامل الله لايهينك عن طريقة استخدامه

وترا بعض الاخوان ماهم فاهمين طريقة استعماله مثل الاخ ابو شنب وبعض الاشخاص :) ومن ضمنهم انا\

اتمني تشرحه يعني كيف اشغل السكربت وكيف اجيب الاحداثيات وكيف افهم الوحها انها تبدا من هنا وتجي هنا وللاخر

جزاك الله خير

Link to comment
اول شي اعذرني ي بين على تدخل بموضوعك بس حبيت اساعد

المود فيه فنكشن

تحرك و يغير حجمها بطريقه حلوة GUI هذا فنكشن للـ

كيف يعني مافهمت

وضح لاهنت

Link to comment
اول شي اعذرني ي بين على تدخل بموضوعك بس حبيت اساعد

المود فيه فنكشن

تحرك و يغير حجمها بطريقه حلوة GUI هذا فنكشن للـ

كيف يعني مافهمت

وضح لاهنت

تحط احداثيات البدايه للنافذه و حجمها و النهايه و حجمها

و هو يخليها تتحرك و يتغير حجمها

Link to comment
سويته على زر بس ماضبط
  
guiAddInterpolateEffect( wnd2, 4, 4, 96, 56, 224, 94, 383, 411, 10 , Linear, Linear, true ) 
end 
 end 
) 

# , على نـأفذة وليس زر

# ومششـكور ي بأين , مود جميل جـدا

# و interpolateBetween سسهلة

# يعني هي صعبة لي م يفهمها بس وقت تفهمها سهلة

-_- الوظيفة ذي تمشي مع كل عناصر الواجهة الرسومية بجميع انواعها مب شرط نافذة

# ; ادري -__-

# بس هو مو مسوي شي غير انه حاط المتغير حق الزر مدري نافذة

-------------------------------

اللي ما فهمو

اشرح لكم ....

guiAddInterpolateEffect( element gui_element, int startX, int startY, int startW, 
                         int startH, int endX, int endY, int endW, int endH, int progress 
                         string positionEasingType, string sizeEasingType, 
                         bool showing ) 

element gui_element = الألمنت اللي تبي تحركه ... تحط المتغير حقه هنا

int startX, int startY, = وتسوي نـأفذة وتشوف الأحداثيات حقها guieditor وكيف تجيبها للي م يعرف تروح الـ x,y طبــعأ الكل عـأرف احداثيأت

int startW, int startH = العرض والطول حق النافذة وقت تفتح

endX, int endY, int endW, int endH, = نفس الشي بس هنا احداثيات وقت تتقفل النافذة

int progress = وقت التـأثير

positionEasingType :اللي بسوي تاثير في احداثيات الالمنت Easing تحط نوع الـ

sizeEasingType : اللي ياثر بالحجم حق الالمنت Easing تحط نوع الـ

bool showing = وقت يخلص التاثير تبي تقفل النافذة ولأ لأ

https://wiki.multitheftauto.com/wiki/Easing # هنــأ كل الأنواع ....

الأنوع تشوفها :

Linear

InQuad

OutQuad

الخ ....

---------------------------------

# واللي م فهم شي يـتفضل يسأل

Edited by Guest
Link to comment

الحين ي اخ زاحف

local screen = { guiGetScreenSize( ) } 
local w, h = 400, 315 
local x, y = ( screen[1] - w ) / 2, ( screen[2] - h ) / 2 
local window = guiCreateWindow( x, y, w, h, "GIE Test Window", false ) 
guiSetVisible( window, false ) 
  
function guiAddInterpolateEffect( ... ) 
    return call( getResourceFromName( "GIE" ), "guiAddInterpolateEffect", unpack( { ... } ) ) 
end 
  
addCommandHandler( "gie", 
    function( ) 
        local isVisible = guiGetVisible( window ) 
        if isVisible then 
            local cx, cy = guiGetPosition( window, false ) 
            local cw, ch = guiGetSize( window, false ) 
            guiAddInterpolateEffect( window, cx, cy, cw, ch, 0, 0, 0, 0, 2, "Linear", "Linear", false ) 
        else 
            guiAddInterpolateEffect( window, 0, 0, 0, 0, x, y, w, h, 2, "Linear", "Linear", true ) 
        end 
        showCursor( not isVisible ) 
    end 
) 

ابي تخلي الوحه ذي تجي من فوق لـ وسط الشاشه بدال ماهي

تجي من اليسار لـ وسط الشاشه

وقولي اين وضعت الاحداثيات التي سوفا تذهب لها الوحه

بعد كتابة الامر

واين وضعت الاحداثيات التي سوفا تذهب لها لـ تختفي

Link to comment

شوفو ذا مثال سويته

  
addEventHandler("onClientGUIClick", getRootElement (), 
function () 
if source == btn then 
guiSetAlpha(wnd2, 1.00) 
guiAddInterpolateEffect( wnd2, 4, 4, 96, 56, 224, 94, 383, 411, 3 , "Linear", "Linear", true ) 
end 
 end 
) 
function guiAddInterpolateEffect( ... ) 
    return call( getResourceFromName( "GIE" ), "guiAddInterpolateEffect", unpack( { ... } ) ) 
end 
  

لما تضغط زر يجيك نافذةة ثانيةة متحركة 8)

Link to comment
  • 6 years later...

اول شي اشكرك صراحة على الفنكشن الاكثر من بطل بصراحة كنت اعاني بكثرة بسالفه الانتربوليت وانت حليتها بسطر واحد فقط

مع ذلك فيه كثير من الاعضاء يواجهون مشاكل في استخدامه لذلك سويت مثال بسيط

 ليسهل التعديل عليها "table"  داخل لستة "parameters" وقمت بوضع جميع الفراغات المطلوبة

Client side only:

-- Test Window Function

function client_window()
    -- Get player screen size
    local screenW, screenH = guiGetScreenSize()
    -- Create new window
    window = guiCreateWindow(10, (screenH - 466) / 2, 450, 466, "Press \"F2\" to close/show.", false)
    -- Setting window invisable when its created.
    guiSetVisible(window, false)
end
addEventHandler("onClientResourceStart", resourceRoot, client_window)

-- Bindkey "F2" Function

function client_bindF2()
    local screenW, screenH = guiGetScreenSize()
    effect_table = {
        {-100, (screenH -100) /2}, -- Animation X Position (start), Animation Y Position (start)
        {100, 100}, -- Animation Window Width (start), Animation Window Height (start)
        {10, (screenH - 466) / 2}, -- Window X Position (end), Window Y Position (end)
        {450, 466}, -- Window Width (end), Window Height (end)
        {1, "InOutElastic", "InOutElastic", true}, -- [Open] Time (seconds), Position (easing), Size (easing), Visable (bool)
        {1, "InOutElastic", "InOutElastic", false}, -- [Close] Time (seconds), Position (easing), Size (easing), Visable (bool)
    }
    --exports.gie:guiAddInterpolateEffect(Window, 
    --startX, startY, 
    --startW, startH, 
    --endX, endY, 
    --endW, endH, 
    --time, positionEasing, sizeEasing, bool showing) 
    if (guiGetVisible(window) == false) then
        exports.gie:guiAddInterpolateEffect(window, 
        effect_table[1][1], effect_table[1][2], 
        effect_table[2][1], effect_table[2][2], 
        effect_table[3][1], effect_table[3][2], 
        effect_table[4][1], effect_table[4][2], 
        effect_table[5][1], effect_table[5][2], effect_table[5][3], effect_table[5][4])
        showCursor(true)
    else
        exports.gie:guiAddInterpolateEffect(window, 
        effect_table[3][1], effect_table[3][2], 
        effect_table[4][1], effect_table[4][2], 
        effect_table[1][1], effect_table[1][2], 
        effect_table[2][1], effect_table[2][2], 
        effect_table[6][1], effect_table[6][2], effect_table[6][3], effect_table[6][4])
        showCursor(false)
    end
end

bindKey("F2", "down", client_bindF2)

وهذا مثال يوضح شكل النافذة بعد وضع الكود اعلاه داخل السكربت

Preview:

https://www.youtube.com/embed/DJ9XBLm7DUU

<iframe width="560" height="315" src="https://www.youtube.com/embed/DJ9XBLm7DUU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Link to comment
42 minutes ago, FIY9AL said:

اول شي اشكرك صراحة على الفنكشن الاكثر من بطل بصراحة كنت اعاني بكثرة بسالفه الانتربوليت وانت حليتها بسطر واحد فقط

مع ذلك فيه كثير من الاعضاء يواجهون مشاكل في استخدامه لذلك سويت مثال بسيط

 ليسهل التعديل عليها "table"  داخل لستة "parameters" وقمت بوضع جميع الفراغات المطلوبة

Client side only:


-- Test Window Function

function client_window()
    -- Get player screen size
    local screenW, screenH = guiGetScreenSize()
    -- Create new window
    window = guiCreateWindow(10, (screenH - 466) / 2, 450, 466, "Press \"F2\" to close/show.", false)
    -- Setting window invisable when its created.
    guiSetVisible(window, false)
end
addEventHandler("onClientResourceStart", resourceRoot, client_window)

-- Bindkey "F2" Function

function client_bindF2()
    local screenW, screenH = guiGetScreenSize()
    effect_table = {
        {-100, (screenH -100) /2}, -- Animation X Position (start), Animation Y Position (start)
        {100, 100}, -- Animation Window Width (start), Animation Window Height (start)
        {10, (screenH - 466) / 2}, -- Window X Position (end), Window Y Position (end)
        {450, 466}, -- Window Width (end), Window Height (end)
        {1, "InOutElastic", "InOutElastic", true}, -- [Open] Time (seconds), Position (easing), Size (easing), Visable (bool)
        {1, "InOutElastic", "InOutElastic", false}, -- [Close] Time (seconds), Position (easing), Size (easing), Visable (bool)
    }
    --exports.gie:guiAddInterpolateEffect(Window, 
    --startX, startY, 
    --startW, startH, 
    --endX, endY, 
    --endW, endH, 
    --time, positionEasing, sizeEasing, bool showing) 
    if (guiGetVisible(window) == false) then
        exports.gie:guiAddInterpolateEffect(window, 
        effect_table[1][1], effect_table[1][2], 
        effect_table[2][1], effect_table[2][2], 
        effect_table[3][1], effect_table[3][2], 
        effect_table[4][1], effect_table[4][2], 
        effect_table[5][1], effect_table[5][2], effect_table[5][3], effect_table[5][4])
        showCursor(true)
    else
        exports.gie:guiAddInterpolateEffect(window, 
        effect_table[3][1], effect_table[3][2], 
        effect_table[4][1], effect_table[4][2], 
        effect_table[1][1], effect_table[1][2], 
        effect_table[2][1], effect_table[2][2], 
        effect_table[6][1], effect_table[6][2], effect_table[6][3], effect_table[6][4])
        showCursor(false)
    end
end

bindKey("F2", "down", client_bindF2)

وهذا مثال يوضح شكل النافذة بعد وضع الكود اعلاه داخل السكربت

Preview:

https://www.youtube.com/embed/DJ9XBLm7DUU

<iframe width="560" height="315" src="https://www.youtube.com/embed/DJ9XBLm7DUU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

هيه الموضوع له من 2013
رحت رفعته :/
الله يعين بس

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...