Jump to content

شرح، برمجة الدى اكس (عند الضغط) + فتح اللوحة بـ زر


Recommended Posts

--// by iManGaaX (Youssef Maged).

isWindowShowing = false --متغير بالقيمة false عشان نعرف البوتن ظاهر او لا
local screenW, screenH = guiGetScreenSize()

function renderDx()
    dxDrawRectangle(screenW * 0.2844, screenH * 0.4644, screenW * 0.0919, screenH * 0.0378, tocolor(0, 0, 0, 100), false) --رستنقل علي شكل زر
    dxDrawText("Test button", screenW * 0.2844, screenH * 0.4644, screenW * 0.3762, screenH * 0.5022, tocolor(255, 255, 255, 255), 1.00, "default", "center", "center", false, false, false, false, false) --داخل الرستنقل تيكست
end --نقفل الفنكشن

--// لما يضغط على اف9 يظهر البوتن
function onKey(theButton, theState)
    if theButton == "F9" and theState == true and isWindowShowing == false then --لو ضغط على اف 9 والمتغير قيمته false بمعنى الزر حالياً مخفي
        showCursor(true) --اظهار الماوس
        isWindowShowing = true --نعطي المتغير قيمه true بمعنى الزر ظاهر حالياً
        addEventHandler("onClientRender", getRootElement(), renderDx) --نظهر الزر الآن
    elseif theButton == "F9" and theState == true and isWindowShowing == true then --لو ضغط اف 9 ولاكن المتغير قيمته true بمعنى الزر ظاهر حالياً
        showCursor(false) --نخفى الشات
        isWindowShowing = false --نعطى المتغير قيمه false بمعنى الزر انحذف الآن
        removeEventHandler("onClientRender", getRootElement(), renderDx) --نحذف الزر الآن
    end --نقفل التحقق
end --نقفل الفنكشن
addEventHandler("onClientKey", getRootElement(), onKey)

--// لما يضغط على الرستنقل (البوتن)
function onClick(theButton, theState)
    --ملاحظه: بتحط تحت فالكود isMouseInPosition بين القوسين أحدثيات الرستنقل وليس التيكست..
    if theButton == "left" and theState == "down" and isWindowShowing == true and isMouseInPosition(screenW * 0.2844, screenH * 0.4644, screenW * 0.0919, screenH * 0.0378) then --لو ضغط كلك يسار فى الماوس واللوحة ظاهره حالياً (بنعرف عن طريق المتغير) والماوس على الرستنقل اللي هو البوتن
        outputChatBox("test") --اظهار فالشات تيست
    end --نقفل التحقق
end --نقفل الفنكشن
addEventHandler("onClientClick", getRootElement(), onClick)

--// هنا يوسفيل فنكشن للتحق إذا كان الماوس على البوتن (لا تعدل فيه شئ)
function isMouseInPosition(x, y, width, height)
    if(not isCursorShowing()) then
        return false
    end
    local sx, sy = guiGetScreenSize()
    local cx, cy = getCursorPosition()
    local cx, cy =(cxsx),(cysy)
    if (cx >= x and cx <= x + width) and (cy >= y and cy <= y + height) then
        return true
    else
        return false
    end
end

--// أتمنى الشرح واضح وبسيط, شكراً.

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