liwahadri

x[ مساعدة ]x الزر + النص+ يتغير مايختفي

Recommended Posts

Posted (edited)

:D سويت توبيك ثاني علي هاذا موضوع

بس يتحدث علي النص و الزر يبغى النص لما تدوس زر ثاني :)

:P هنا كيف اسوي اذا مثلن ضغطت علي الزر يضهر النص يبقى ولو ضغطت علي زر  جنبه يتغير النص يعني مايختفي ولو رجعت ضغطت علي الزر الاول مايخختفي يعني يبقى ضاهر النص 

 

:-|مساعده

	local sx, sy = guiGetScreenSize() 
    sx, sy = ( sx / 1280 ), ( sy / 720 )
local showText = false
function render()
  		dxDrawRectangle( 0,0,1280*sx,720*sy, tocolors(255,255,255,255) false)
          dxDrawText("_________U_________D________S__________", 183*sx, 228*sy, 761*sx, 282*sy, tocolor(255, 255, 255, showText and 255 or 0), 2.00, "default", "left", "top", false, false, true, false, false)
  end
addEventHandler("onClientRender", root, render)

addEventHandler ( "onClientClick", root,
    function ( button, state )
	if ( button == "left" and state == "down" ) then
	if ( isMouseInPosition ( 184, 49, 75, 28 ) ) then
		outputDebugString("test")
                showText = not showText
            end
        end
    end
)

 

Edited by liwahadri

Share this post


Link to post
local textwtf = "kill___Me"
...
..
dxDrawText(textwtf,.........
...
..
addEventHandler ( "onClientClick", root,
    function ( button, state )
	if ( button == "left" and state == "down" ) then
	if ( isMouseInPosition ( 184, 49, 75, 28 ) ) then
		outputDebugString("test")
               textwtf = "nobody loves me" 
            end
        end
    end
)  

 

Share this post


Link to post
Posted (edited)
1 hour ago, #BrosS said:

local textwtf = "kill___Me"
...
..
dxDrawText(textwtf,.........
...
..
addEventHandler ( "onClientClick", root,
    function ( button, state )
	if ( button == "left" and state == "down" ) then
	if ( isMouseInPosition ( 184, 49, 75, 28 ) ) then
		outputDebugString("test")
               textwtf = "nobody loves me" 
            end
        end
    end
)  

 

لول, ظظ بجد مساعده

Edited by liwahadri

Share this post


Link to post
buttons = {}
addEvent("onDxButtonClick", true)

function createButton(x, y, w, h, t, color, vis)
	local button = createElement("dxButton")
	buttons[button] = {x, y, w, h, t, color, vis}
	return button
end

function showButton(index, bool)
	if index then
		if buttons[index] then
			buttons[index][7] = bool
		end
	end
end

addEventHandler("onClientRender", root,
	function()
		for button,value in pairs(buttons) do
			if value[7] then
				dxDrawRectangle(value[1], value[2], value[3], value[4], value[6], false)
				dxDrawText(value[5], value[1], value[2], value[3]+value[1], value[4]+value[2], tocolor(255, 255, 255, 255), 1)
			end
		end
	end
)

addEventHandler("onClientClick", root,
	function(b,s)
		if b == "left" and s == "down" then 
			for button,val in pairs(buttons) do
				if isMouseInPosition(val[1], val[2], val[3], val[4]) then
					triggerEvent("onDxButtonClick", localPlayer, button)
				end
			end
		end
	end
)

--------# EXAMPLE
testButton = createButton(500, 500, 50, 50, "TEST", tocolor(255, 255, 255, 150), true)

addEventHandler("onDxButtonClick", root,
	function(b)
		if b == testButton then
			outputChatBox("TEST")
		end
	end
)

جرب - لسا مسوي الكود الحين لو في غلط قلي  + ذا بيسهل عليك الأزرار الدي اكس

Share this post


Link to post
17 minutes ago, #x1AhMeD-09 said:

buttons = {}
addEvent("onDxButtonClick", true)

function createButton(x, y, w, h, t, color, vis)
	local button = createElement("dxButton")
	buttons[button] = {x, y, w, h, t, color, vis}
	return button
end

function showButton(index, bool)
	if index then
		if buttons[index] then
			buttons[index][7] = bool
		end
	end
end

addEventHandler("onClientRender", root,
	function()
		for button,value in pairs(buttons) do
			if value[7] then
				dxDrawRectangle(value[1], value[2], value[3], value[4], value[6], false)
				dxDrawText(value[5], value[1], value[2], value[3]+value[1], value[4]+value[2], tocolor(255, 255, 255, 255), 1)
			end
		end
	end
)

addEventHandler("onClientClick", root,
	function(b,s)
		if b == "left" and s == "down" then 
			for button,val in pairs(buttons) do
				if isMouseInPosition(val[1], val[2], val[3], val[4]) then
					triggerEvent("onDxButtonClick", localPlayer, button)
				end
			end
		end
	end
)

--------# EXAMPLE
testButton = createButton(500, 500, 50, 50, "TEST", tocolor(255, 255, 255, 150), true)

addEventHandler("onDxButtonClick", root,
	function(b)
		if b == testButton then
			outputChatBox("TEST")
		end
	end
)

جرب - لسا مسوي الكود الحين لو في غلط قلي  + ذا بيسهل عليك الأزرار الدي اكس

p_1235nqxc11.png

يقولي خطأ هنا كودك

توضيح : آلي أبغاه انه النص في الزر اول يضهر لما تجيك لوحة اذا ضغطت علي الزر ثاني يختفي النص في الاول ويجيك ثاني اتمني انك فهمتني :)

 

Share this post


Link to post

انت تبي نفس الزر لما تضغطه اول مره يطلع نص ولما تضغطه ثاني مره يتغير النص وزي كذا؟

Share this post


Link to post
1 hour ago, Simple. said:

انت تبي نفس الزر لما تضغطه اول مره يطلع نص ولما تضغطه ثاني مره يتغير النص وزي كذا؟

لا

شوف الصوره الي قصدي

 

p_12358twkj1.png

اتوقع لازم له تيبل ؟

Share this post


Link to post
1 hour ago, liwahadri said:

ابب قايز

تقدر تسوي لوحتين dx 

لما يضغط عالزر الاول يسويله ريموف ايفنت وهاه لازم تضبط المقاسات

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

هذا ابسط شيء

Share this post


Link to post

وش فايدة المتغيرات طيب ؟

rect1Alpha=255;
rect2Alpha=50;
rect3Alpha=50;

"onClientClick"
if rect1 then
  rect1Alpha=255;
  rect2Alpha=50;
  rect3Alpha=50;
elseif rect2 then
  rect1Alpha=50;
  rect2Alpha=255;
  rect3Alpha=50;
elseif rect3 then
  rect1Alpha=50;
  rect2Alpha=50;
  rect3Alpha=255;
  
  -->> وهكذا

أو فيه طريقة أخرى عن طريق الجداول راح تكون صعبة شوي عليك

*بحيث انك تحط معلومات المستطيل بداخل جدول ( موقعه و لونه و الشفافية و حالة العرض ترو او فولس )ا

وتعدل عليهم اذا ضغط اللاعب ع المستطيل

اسحب عليها حالياً و استخدم الطريقة اللي فوق

Share this post


Link to post
30 minutes ago, NX_CI said:

وش فايدة المتغيرات طيب ؟


rect1Alpha=255;
rect2Alpha=50;
rect3Alpha=50;

"onClientClick"
if rect1 then
  rect1Alpha=255;
  rect2Alpha=50;
  rect3Alpha=50;
elseif rect2 then
  rect1Alpha=50;
  rect2Alpha=255;
  rect3Alpha=50;
elseif rect3 then
  rect1Alpha=50;
  rect2Alpha=50;
  rect3Alpha=255;
  
  -->> وهكذا

أو فيه طريقة أخرى عن طريق الجداول راح تكون صعبة شوي عليك

 *بحيث انك تحط معلومات المستطيل بداخل جدول ( موقعه و لونه و الشفافية و حالة العرض ترو او فولس )ا

 وتعدل عليهم اذا ضغط اللاعب ع المستطيل

 اسحب عليها حالياً و استخدم الطريقة اللي فوق

شنو هو تعريف rect1?

Share this post


Link to post

انت تعرفه الله لا يهينك

Share this post


Link to post
On 19/05/2019 at 16:30, #BrosS said:

local textwtf = "kill___Me"
...
..
dxDrawText(textwtf,.........
...
..
addEventHandler ( "onClientClick", root,
    function ( button, state )
	if ( button == "left" and state == "down" ) then
	if ( isMouseInPosition ( 184, 49, 75, 28 ) ) then
		outputDebugString("test")
               textwtf = "nobody loves me" 
            end
        end
    end
)  

 

..................

3201t3h

gfd$lmfdù^pkdfs^sdokp$ùdsfkl,msdgqjdfs

شفيكم الله يهديكم هو يبي يغير النص فقط . حط نصوص في متغيرات وغيرها عند الضغط رح تجيني جلطة

Share this post


Link to post
1 hour ago, NX_CI said:

وش فايدة المتغيرات طيب ؟


rect1Alpha=255;
rect2Alpha=50;
rect3Alpha=50;

"onClientClick"
if rect1 then
  rect1Alpha=255;
  rect2Alpha=50;
  rect3Alpha=50;
elseif rect2 then
  rect1Alpha=50;
  rect2Alpha=255;
  rect3Alpha=50;
elseif rect3 then
  rect1Alpha=50;
  rect2Alpha=50;
  rect3Alpha=255;
  
  -->> وهكذا

أو فيه طريقة أخرى عن طريق الجداول راح تكون صعبة شوي عليك

*بحيث انك تحط معلومات المستطيل بداخل جدول ( موقعه و لونه و الشفافية و حالة العرض ترو او فولس )ا

وتعدل عليهم اذا ضغط اللاعب ع المستطيل

اسحب عليها حالياً و استخدم الطريقة اللي فوق

يعني كيف استخدم

if rect1 then?

وهاذي الوان؟

rect1Alpha=255;

rect2Alpha=50;

rect3Alpha=50;

؟

ابغى مثال ماقصرت لاهنت

48 minutes ago, #BrosS said:

..................

3201t3h

gfd$lmfdù^pkdfs^sdokp$ùdsfkl,msdgqjdfs

شفيكم الله يهديكم هو يبي يغير النص فقط . حط نصوص في متغيرات وغيرها عند الضغط رح تجيني جلطة

صراحه كودك مفهمته وضح شوي اذا يمديك:D

 

Share this post


Link to post
15 minutes ago, liwahadri said:

يعني كيف استخدم


if rect1 then?

وهاذي الوان؟


rect1Alpha=255;

rect2Alpha=50;

rect3Alpha=50;

؟

ابغى مثال ماقصرت لاهنت

صراحه كودك مفهمته وضح شوي اذا يمديك:D

 

rect1 = dxDrawRectangle(......tocolor(color, color, color, rectalpha)
rectalpha = 255
addEventHandler('onClientClick'
 	if rect1 then
	rectalpha = 0

يقصد إنك تسوي الي تريد تضغط عليه ويظهر ولما تضغط عليه تصير الالفا حقته صفر ويظهر زر ثاني تصير الالفا حقه 255 او 100  الي يعجبك

Share this post


Link to post
13 minutes ago, JustP said:

rect1 = dxDrawRectangle(......tocolor(color, color, color, rectalpha)
rectalpha = 255
addEventHandler('onClientClick'
 	if rect1 then
	rectalpha = 0

يقصد إنك تسوي الي تريد تضغط عليه ويظهر ولما تضغط عليه تصير الالفا حقته صفر ويظهر زر ثاني تصير الالفا حقه 255 او 100  الي يعجبك

اوك فهمته بس سؤال ثاني انا ابغاه يضهر لما  الاول عادي يعني انت ماتضغط الزر يعني مثل مانقول صفحه الرئيسي يضهر عادي النص بدون ماتضغط الزر كيف هاي؟

Share this post


Link to post
40 minutes ago, liwahadri said:

اوك فهمته بس سؤال ثاني انا ابغاه يضهر لما  الاول عادي يعني انت ماتضغط الزر يعني مثل مانقول صفحه الرئيسي يضهر عادي النص بدون ماتضغط الزر كيف هاي؟

255 already يكون المتغير حق الزر الاول

Share this post


Link to post

سويت لك مثال بسيط

local sx, sy = guiGetScreenSize()
local list = {
    buttons = {
        {coordinates = {(sx/2)-155, (sy/2), 100, 30}, text = "Button 1", label = "Label 1"},
        {coordinates = {(sx/2)-50, (sy/2), 100, 30}, text = "Button 2", label = "Label 2"},
        {coordinates = {(sx/2)+55, (sy/2), 100, 30}, text = "Button 3", label = "Label 3"},
    },
    selected = 1
}

showCursor(true)

addEventHandler("onClientRender", root, function()
    for key, value in ipairs(list.buttons) do
        local data = value.coordinates
        local alpha = 255-(isMouseInPosition(unpack(value.coordinates)) and 100 or 0)
        dxDrawRectangle(data[1], data[2], data[3], data[4], tocolor(255, 0, 0, alpha))
        dxDrawText(list.buttons[key].text, data[1], data[2], data[1]+data[3], data[2]+data[4], tocolor(255, 255, 255, alpha), 1, "default-bold", "center", "center", true)
    end
    if list.buttons[list.selected] then
        dxDrawText(list.buttons[list.selected].label, (sx/2)-10, (sy/2)+35)
    end
end)

addEventHandler("onClientClick", root, function(button, state)
    if button == "left" and state == "down" then
        for key, value in ipairs(list.buttons) do
            if isMouseInPosition(unpack(value.coordinates)) then
                list.selected = key
                break
            end
        end
    end
end)

function isMouseInPosition(x, y, width, height)
	if not isCursorShowing() then
		return false
	end
    local sx, sy = guiGetScreenSize()
    local cx, cy = getCursorPosition()
    local cx, cy = cx*sx, cy*sy
    return (cx >= x and cx <= x+width) and (cy >= y and cy <= y+height)
end

تقدر تضيف ازرار زيادة من الجدول

  • Like 1

Share this post


Link to post
Posted (edited)
12 hours ago, #,xiRocKyz said:

سويت لك مثال بسيط


local sx, sy = guiGetScreenSize()
local list = {
    buttons = {
        {coordinates = {(sx/2)-155, (sy/2), 100, 30}, text = "Button 1", label = "Label 1"},
        {coordinates = {(sx/2)-50, (sy/2), 100, 30}, text = "Button 2", label = "Label 2"},
        {coordinates = {(sx/2)+55, (sy/2), 100, 30}, text = "Button 3", label = "Label 3"},
    },
    selected = 1
}

showCursor(true)

addEventHandler("onClientRender", root, function()
    for key, value in ipairs(list.buttons) do
        local data = value.coordinates
        local alpha = 255-(isMouseInPosition(unpack(value.coordinates)) and 100 or 0)
        dxDrawRectangle(data[1], data[2], data[3], data[4], tocolor(255, 0, 0, alpha))
        dxDrawText(list.buttons[key].text, data[1], data[2], data[1]+data[3], data[2]+data[4], tocolor(255, 255, 255, alpha), 1, "default-bold", "center", "center", true)
    end
    if list.buttons[list.selected] then
        dxDrawText(list.buttons[list.selected].label, (sx/2)-10, (sy/2)+35)
    end
end)

addEventHandler("onClientClick", root, function(button, state)
    if button == "left" and state == "down" then
        for key, value in ipairs(list.buttons) do
            if isMouseInPosition(unpack(value.coordinates)) then
                list.selected = key
                break
            end
        end
    end
end)

function isMouseInPosition(x, y, width, height)
	if not isCursorShowing() then
		return false
	end
    local sx, sy = guiGetScreenSize()
    local cx, cy = getCursorPosition()
    local cx, cy = cx*sx, cy*sy
    return (cx >= x and cx <= x+width) and (cy >= y and cy <= y+height)
end

تقدر تضيف ازرار زيادة من الجدول

كفوووووووووو حب هاذي الي ابغاه مشكوور اسف ماقصرت ❤️

 

سؤال هل يمدني اغير احداثيات ازرار مثل اخليه

*sx,*sy*sx,*sy?

Edited by liwahadri

Share this post


Link to post
4 hours ago, liwahadri said:

قصدي اضيف سطر ثاني كيف في ليبل؟

 upppp                           

uppp

uppp

Share this post


Link to post
Posted (edited)

في اكثر من طريقة اذا تبي تضيف سطر جديد

مثلا تقدر تستخدم \n

وبيضيف سطر جديد

عدلت على المثال شوي عشان تقدر تعدل عليه اسهل

local sx, sy = guiGetScreenSize()
local list = {
    buttons = {--{coordinates = {احداثيات الزر}, colors = {button = {لون الزر}, text = {لون ليبل الزر}}, text = "تيكست ليبل الزر", label = "تيكست الليبل"},
        {coordinates = {(sx/2)-155, (sy/2), 100, 30}, colors = {button = {255, 0, 0, 255}, text = {255, 255, 255}}, text = "Button 1", label = "Label 1\n Hello World !"},
        {coordinates = {(sx/2)-50, (sy/2), 100, 30}, colors = {button = {0, 255, 0, 255}, text = {255, 255, 255}}, text = "Button 2", label = "#00FF00Label 2\n\n Hello World !"},
        {coordinates = {(sx/2)+55, (sy/2), 100, 30}, colors = {button = {0, 0, 255, 255}, text = {255, 255, 255}}, text = "Button 3", label = "#0000FFLabel 3\n\n\n Hello World !"},
    },
    label = {
        coordinates = {sx/2, (sy/2)+35, sx/2, (sy/2)+35}, -- احداثيات الليبل
        colors = {255, 0, 0, 255}, -- لون الليبل
        font = "default-bold", -- خط الليبل
        align = {x = "center", y = "top"} -- align الليبل
    },
    selected = 1
}

showCursor(true)

addEventHandler("onClientRender", root, function()
    for key, value in ipairs(list.buttons) do
        local data = value.coordinates
        local alpha = 255-(isMouseInPosition(unpack(value.coordinates)) and (value.colors["button"][4]/2) or 0)
        local r, g, b = unpack(value.colors["button"])
        dxDrawRectangle(data[1], data[2], data[3], data[4], tocolor(r, g, b, alpha))
        r, g, b = unpack(value.colors["text"])
        dxDrawText(list.buttons[key].text, data[1], data[2], data[1]+data[3], data[2]+data[4], tocolor(r, g, b, alpha), 1, "default-bold", "center", "center", true)
    end
    if list.buttons[list.selected] then
        local label = list.label
        dxDrawText(list.buttons[list.selected].label, label.coordinates[1], label.coordinates[2], label.coordinates[3], label.coordinates[4], tocolor(unpack(label.colors)), 1, label.font, label.align["x"], label.align["y"], false, false, false, true, false)
    end
end)

addEventHandler("onClientClick", root, function(button, state)
    if button == "left" and state == "down" then
        for key, value in ipairs(list.buttons) do
            if isMouseInPosition(unpack(value.coordinates)) then
                list.selected = key
                break
            end
        end
    end
end)

function isMouseInPosition(x, y, width, height)
	if not isCursorShowing() then
		return false
	end
    local sx, sy = guiGetScreenSize()
    local cx, cy = getCursorPosition()
    local cx, cy = cx*sx, cy*sy
    return (cx >= x and cx <= x+width) and (cy >= y and cy <= y+height)
end

تقدر تضيف وتحذف ازرار على كيفك من الجدول

Edited by #,xiRocKyz
  • Like 1

Share this post


Link to post

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.