mouamle Posted April 27, 2016 Share Posted April 27, 2016 فنكشنات بسيطه ( لا لحظة مو بسيطه ;-; ) ألمهم dxFrame, dxButton الفنكشنات واضحه من عنوانها Frame function --[[ createFrame( x - أحداثي x للأطار y - أحداثي y للأطار w - عرض الأطار h - أرتفاع الأطار Title - عنوان الأطار Color - لون الأطار TitleBarColor - لون شريط العنوان ) ]] function createFrame( x, y, w, h, Title, Color, TitleBarColor ) MFrame = { x = 0, y = 0, w = 400, h = 250, Title = "Frame", Color = tocolor( 120, 120, 120, 150 ), Color = tocolor( 120, 120, 120, 255 ), components = { }, render = function () dxDrawRectangle( x, y, w, h, Color, false) dxDrawRectangle( x, y, w, 15, TitleBarColor, false) dxDrawText( Title, x + 5, y ) for k,v in pairs(MFrame.components) do v.render(); end end, add = function ( comp ) comp.setOfset(x, y) table.insert(MFrame.components, comp); end } function create() MFrame.x = x; MFrame.y = y; MFrame.w = w; MFrame.h = h; MFrame.Title = Title; MFrame.Color = Color; MFrame.TitleBarColor = TitleBarColor; return MFrame; end return create(); end Button function --[[ createButton( x - أحداثي x للزر y - أحداثي y للزر w - عرض الزر h - أرتفاع الزر text - النص اللي يضهر داخله Color - لون مربع الزر textColor - لون النص ) ]] function createButton( x, y, w, h, text, Color, textColor ) xOfset = 0; yOfset = 0; isVisableX = true; local MButton = { x = 0, y = 0, w = 80, h = 20, text = "Button", isVisable = isVisableX, textColor = tocolor( 236, 240, 241, 255 ), Color = tocolor( 231, 76, 60, 150 ), render = function () if ( isVisableX == true ) then dxDrawRectangle( x + xOfset, y + yOfset, w, h, Color ) dxDrawText( text, ( (x + xOfset) + (w/2) ) - (string.len(text)*3), ((y + yOfset) - 7) + (h/2) ) end end, setVisable = function ( visable ) isVisableX = visable; end, setTextColor = function ( color ) textColor = color; end, setTextColorRGBA = function ( r, g, b, a ) textColor = tocolor( r, g, b, a ) end, getText = function ( ) return text; end, setText = function ( text2 ) text = text2; end, setColor = function ( Color2 ) Color = Color2; end, setColorRGBA = function ( r, g, b, a ) Color = tocolor( r, g, b, a ) end, setOfset = function ( ofx, ofy ) xOfset = ofx; yOfset = ofy; end, setX = function (x2) x = x2 end, getX = function () return x; end, setY = function (y2) y = y2 end, getY = function () return y; end, setW = function (w2) w = w2 end, getW = function () return w; end, setH = function (h2) h = h2 end, getH = function () return h; end } local create = function () MButton.x = x; MButton.y = y; MButton.w = w; MButton.h = h; MButton.text = text; MButton.Color = Color; MButton.textColor = textColor; return MButton; end return create() end من تسوي زر راح تتوفر عندك الفنكشنات التاليه render() -- ما راح تحتاجها أصلاً setX(newX) -- تغيير أحداثي x للزر setText(newText) -- تغيير النص setOfset(xOfset, yOfset) -- في الأغلب ما راح تحتاجها بس مجرد تغير احداثيات ال x,y اللي راح يبدأ منها الزر ( ما اتوقع وصلتها صح ) setTextColorRGBA(r, g, b, a) -- تغيير لون النص getH() -- ترجع قيمة ارتفاع الزر setH(newHeight) -- تغيير ارتفاع الزر setVisable(visable) -- أضهار الزر وأخفائه setColor(Color) -- تغيير لون الزر setW(newWidth) -- تغيير عرض الزر getY() -- ترجع y للزر setY(newY) -- تغيير قيمة y للزر setColorRGBA(r, g, b, a) -- تغيير لون الزر getX() -- ترجع x للزر getW() -- ترجع عرض الزر setTextColor(Color) -- تغيير لون النص getText() -- ترجع النص داخل الزر وبالنسبه للأطار عندك هذي الفنكشنات render() -- ما راح تحتاجها add(component) -- أضافة العنصر كـ الزر أو بقية العناصر اللي راح اسويها مستقبلاً : ) طريقة الأستعمال local Frame; -- نسوي متغير أساسي للأطار local b1; -- ومتغير للزر function renderer ( ) Frame.render(); -- عرض الأطار end function init() ButtonColor = tocolor( 231, 76, 60, 255 ) -- نسوي متغير يعبر عن اللون textColor = tocolor( 236, 240, 241, 255 ) -- متغير ثاني يعبر عن لون الخط b1 = createButton( 10, 20, 80, 40, "Test Test", color, textColor ) -- أنشاء الزر FrameColor = tocolor( 231, 76, 60, 120 ) -- نسوي لون للأطار Frame = createFrame( 400, 400, 450, 250, "Frame", color, color ); -- أنشاء الأطار Frame.add(b1) -- أضافة الزر الى الأطار addEventHandler ( "onClientRender", root, renderer ) end addEventHandler ( "onClientResourceStart", resourceRoot, init ) الناتج أذا عندك أي استفسار أكدر اجاوبك Link to comment
</Mr.Tn6eL> Posted April 27, 2016 Share Posted April 27, 2016 طريقتك بالبرمجة جميل لا سيما أن لغة الجافا عالمية وممتازة بالتوفيق لك Link to comment
mouamle Posted April 27, 2016 Share Posted April 27, 2016 طريقتك بالبرمجة جميل لا سيما أن لغة الجافا عالمية وممتازة بالتوفيق لك OOP <3 شكراً Link to comment
Ja[B]er[X]Pro Posted April 28, 2016 Share Posted April 28, 2016 فنكشنات بسيطه ( لا لحظة مو بسيطه ;-; ) ألمهم dxFrame, dxButton الفنكشنات واضحه من عنوانها Frame function --[[ createFrame( x - أحداثي x للأطار y - أحداثي y للأطار w - عرض الأطار h - أرتفاع الأطار Title - عنوان الأطار Color - لون الأطار TitleBarColor - لون شريط العنوان ) ]] function createFrame( x, y, w, h, Title, Color, TitleBarColor ) MFrame = { x = 0, y = 0, w = 400, h = 250, Title = "Frame", Color = tocolor( 120, 120, 120, 150 ), Color = tocolor( 120, 120, 120, 255 ), components = { }, render = function () dxDrawRectangle( x, y, w, h, Color, false) dxDrawRectangle( x, y, w, 15, TitleBarColor, false) dxDrawText( Title, x + 5, y ) for k,v in pairs(MFrame.components) do v.render(); end end, add = function ( comp ) comp.setOfset(x, y) table.insert(MFrame.components, comp); end } function create() MFrame.x = x; MFrame.y = y; MFrame.w = w; MFrame.h = h; MFrame.Title = Title; MFrame.Color = Color; MFrame.TitleBarColor = TitleBarColor; return MFrame; end return create(); end Button function --[[ createButton( x - أحداثي x للزر y - أحداثي y للزر w - عرض الزر h - أرتفاع الزر text - النص اللي يضهر داخله Color - لون مربع الزر textColor - لون النص ) ]] function createButton( x, y, w, h, text, Color, textColor ) xOfset = 0; yOfset = 0; isVisableX = true; local MButton = { x = 0, y = 0, w = 80, h = 20, text = "Button", isVisable = isVisableX, textColor = tocolor( 236, 240, 241, 255 ), Color = tocolor( 231, 76, 60, 150 ), render = function () if ( isVisableX == true ) then dxDrawRectangle( x + xOfset, y + yOfset, w, h, Color ) dxDrawText( text, ( (x + xOfset) + (w/2) ) - (string.len(text)*3), ((y + yOfset) - 7) + (h/2) ) end end, setVisable = function ( visable ) isVisableX = visable; end, setTextColor = function ( color ) textColor = color; end, setTextColorRGBA = function ( r, g, b, a ) textColor = tocolor( r, g, b, a ) end, getText = function ( ) return text; end, setText = function ( text2 ) text = text2; end, setColor = function ( Color2 ) Color = Color2; end, setColorRGBA = function ( r, g, b, a ) Color = tocolor( r, g, b, a ) end, setOfset = function ( ofx, ofy ) xOfset = ofx; yOfset = ofy; end, setX = function (x2) x = x2 end, getX = function () return x; end, setY = function (y2) y = y2 end, getY = function () return y; end, setW = function (w2) w = w2 end, getW = function () return w; end, setH = function (h2) h = h2 end, getH = function () return h; end } local create = function () MButton.x = x; MButton.y = y; MButton.w = w; MButton.h = h; MButton.text = text; MButton.Color = Color; MButton.textColor = textColor; return MButton; end return create() end من تسوي زر راح تتوفر عندك الفنكشنات التاليه render() -- ما راح تحتاجها أصلاً setX(newX) -- تغيير أحداثي x للزر setText(newText) -- تغيير النص setOfset(xOfset, yOfset) -- في الأغلب ما راح تحتاجها بس مجرد تغير احداثيات ال x,y اللي راح يبدأ منها الزر ( ما اتوقع وصلتها صح ) setTextColorRGBA(r, g, b, a) -- تغيير لون النص getH() -- ترجع قيمة ارتفاع الزر setH(newHeight) -- تغيير ارتفاع الزر setVisable(visable) -- أضهار الزر وأخفائه setColor(Color) -- تغيير لون الزر setW(newWidth) -- تغيير عرض الزر getY() -- ترجع y للزر setY(newY) -- تغيير قيمة y للزر setColorRGBA(r, g, b, a) -- تغيير لون الزر getX() -- ترجع x للزر getW() -- ترجع عرض الزر setTextColor(Color) -- تغيير لون النص getText() -- ترجع النص داخل الزر وبالنسبه للأطار عندك هذي الفنكشنات render() -- ما راح تحتاجها add(component) -- أضافة العنصر كـ الزر أو بقية العناصر اللي راح اسويها مستقبلاً : ) طريقة الأستعمال local Frame; -- نسوي متغير أساسي للأطار local b1; -- ومتغير للزر function renderer ( ) Frame.render(); -- عرض الأطار end function init() ButtonColor = tocolor( 231, 76, 60, 255 ) -- نسوي متغير يعبر عن اللون textColor = tocolor( 236, 240, 241, 255 ) -- متغير ثاني يعبر عن لون الخط b1 = createButton( 10, 20, 80, 40, "Test Test", color, textColor ) -- أنشاء الزر FrameColor = tocolor( 231, 76, 60, 120 ) -- نسوي لون للأطار Frame = createFrame( 400, 400, 450, 250, "Frame", color, color ); -- أنشاء الأطار Frame.add(b1) -- أضافة الزر الى الأطار addEventHandler ( "onClientRender", root, renderer ) end addEventHandler ( "onClientResourceStart", resourceRoot, init ) الناتج أذا عندك أي استفسار أكدر اجاوبك كفووووو ابداااااااع لو يشتغل على حدث onClientGUIClick يكون افضل Link to comment
mouamle Posted April 28, 2016 Share Posted April 28, 2016 فنكشنات بسيطه ( لا لحظة مو بسيطه ;-; ) ألمهم dxFrame, dxButton الفنكشنات واضحه من عنوانها Frame function --[[ createFrame( x - أحداثي x للأطار y - أحداثي y للأطار w - عرض الأطار h - أرتفاع الأطار Title - عنوان الأطار Color - لون الأطار TitleBarColor - لون شريط العنوان ) ]] function createFrame( x, y, w, h, Title, Color, TitleBarColor ) MFrame = { x = 0, y = 0, w = 400, h = 250, Title = "Frame", Color = tocolor( 120, 120, 120, 150 ), Color = tocolor( 120, 120, 120, 255 ), components = { }, render = function () dxDrawRectangle( x, y, w, h, Color, false) dxDrawRectangle( x, y, w, 15, TitleBarColor, false) dxDrawText( Title, x + 5, y ) for k,v in pairs(MFrame.components) do v.render(); end end, add = function ( comp ) comp.setOfset(x, y) table.insert(MFrame.components, comp); end } function create() MFrame.x = x; MFrame.y = y; MFrame.w = w; MFrame.h = h; MFrame.Title = Title; MFrame.Color = Color; MFrame.TitleBarColor = TitleBarColor; return MFrame; end return create(); end Button function --[[ createButton( x - أحداثي x للزر y - أحداثي y للزر w - عرض الزر h - أرتفاع الزر text - النص اللي يضهر داخله Color - لون مربع الزر textColor - لون النص ) ]] function createButton( x, y, w, h, text, Color, textColor ) xOfset = 0; yOfset = 0; isVisableX = true; local MButton = { x = 0, y = 0, w = 80, h = 20, text = "Button", isVisable = isVisableX, textColor = tocolor( 236, 240, 241, 255 ), Color = tocolor( 231, 76, 60, 150 ), render = function () if ( isVisableX == true ) then dxDrawRectangle( x + xOfset, y + yOfset, w, h, Color ) dxDrawText( text, ( (x + xOfset) + (w/2) ) - (string.len(text)*3), ((y + yOfset) - 7) + (h/2) ) end end, setVisable = function ( visable ) isVisableX = visable; end, setTextColor = function ( color ) textColor = color; end, setTextColorRGBA = function ( r, g, b, a ) textColor = tocolor( r, g, b, a ) end, getText = function ( ) return text; end, setText = function ( text2 ) text = text2; end, setColor = function ( Color2 ) Color = Color2; end, setColorRGBA = function ( r, g, b, a ) Color = tocolor( r, g, b, a ) end, setOfset = function ( ofx, ofy ) xOfset = ofx; yOfset = ofy; end, setX = function (x2) x = x2 end, getX = function () return x; end, setY = function (y2) y = y2 end, getY = function () return y; end, setW = function (w2) w = w2 end, getW = function () return w; end, setH = function (h2) h = h2 end, getH = function () return h; end } local create = function () MButton.x = x; MButton.y = y; MButton.w = w; MButton.h = h; MButton.text = text; MButton.Color = Color; MButton.textColor = textColor; return MButton; end return create() end من تسوي زر راح تتوفر عندك الفنكشنات التاليه render() -- ما راح تحتاجها أصلاً setX(newX) -- تغيير أحداثي x للزر setText(newText) -- تغيير النص setOfset(xOfset, yOfset) -- في الأغلب ما راح تحتاجها بس مجرد تغير احداثيات ال x,y اللي راح يبدأ منها الزر ( ما اتوقع وصلتها صح ) setTextColorRGBA(r, g, b, a) -- تغيير لون النص getH() -- ترجع قيمة ارتفاع الزر setH(newHeight) -- تغيير ارتفاع الزر setVisable(visable) -- أضهار الزر وأخفائه setColor(Color) -- تغيير لون الزر setW(newWidth) -- تغيير عرض الزر getY() -- ترجع y للزر setY(newY) -- تغيير قيمة y للزر setColorRGBA(r, g, b, a) -- تغيير لون الزر getX() -- ترجع x للزر getW() -- ترجع عرض الزر setTextColor(Color) -- تغيير لون النص getText() -- ترجع النص داخل الزر وبالنسبه للأطار عندك هذي الفنكشنات render() -- ما راح تحتاجها add(component) -- أضافة العنصر كـ الزر أو بقية العناصر اللي راح اسويها مستقبلاً : ) طريقة الأستعمال local Frame; -- نسوي متغير أساسي للأطار local b1; -- ومتغير للزر function renderer ( ) Frame.render(); -- عرض الأطار end function init() ButtonColor = tocolor( 231, 76, 60, 255 ) -- نسوي متغير يعبر عن اللون textColor = tocolor( 236, 240, 241, 255 ) -- متغير ثاني يعبر عن لون الخط b1 = createButton( 10, 20, 80, 40, "Test Test", color, textColor ) -- أنشاء الزر FrameColor = tocolor( 231, 76, 60, 120 ) -- نسوي لون للأطار Frame = createFrame( 400, 400, 450, 250, "Frame", color, color ); -- أنشاء الأطار Frame.add(b1) -- أضافة الزر الى الأطار addEventHandler ( "onClientRender", root, renderer ) end addEventHandler ( "onClientResourceStart", resourceRoot, init ) الناتج أذا عندك أي استفسار أكدر اجاوبك كفووووو ابداااااااع لو يشتغل على حدث onClientGUIClick يكون افضل سويت أصدار جديد راح انشره بي نظام Event خاص أسمه onMButtonClick Link to comment
Me[Z]oO Posted April 30, 2016 Share Posted April 30, 2016 getPlayersInGroup وظيفة جلب جميع الاعبين من القروب Syntax : table getPlayersInGroup ( string GroupName ) Required Arguments GroupName : اسم القروب المراد جلب لاعبينه Returns false اذا كان الارقمنت المطلوب صحيح , يرجع لك بجدول فيه كل الاعبين الي بالقروب , واذا كانت العكس يرجع الفنكشن نوعه سيرفر سايد فقط Code : function getPlayersInGroup ( GroupName ) local aTable = {} assert ( tostring ( GroupName ) , "Bad Argument At Argument #1 Group Moust String" ) assert ( aclGetGroup ( tostring ( GroupName ) ) , "Bad Argument At Argument #1 Group not Found " ) for i , player_ in ipairs ( getElementsByType ( "player" ) ) do local TheAcc = getPlayerAccount ( player_ ) if not isGuestAccount ( TheAcc ) then if isObjectInACLGroup ( "user." ..getAccountName ( TheAcc ) , aclGetGroup ( tostring ( GroupName ) ) ) then table.insert ( aTable , player_ ) end end end return aTable end Ex 1 : addCommandHandler ( "killPlayerGroup", function ( _ , _ , GroupName_ ) Players = getPlayersInGroup ( GroupName_ ) for i , PlayersGroup in ipairs ( Players ) do killPed ( PlayersGroup ) end end ) ; -- F8 Say : killPlayerGroup Console Ex 2 : addCommandHandler("GiveGroupMoney", function ( p , _ , Group_ , aMoney ) Players = getPlayersInGroup ( Group_ ) for i , PlayersGroup in ipairs ( Players ) do givePlayerMoney ( PlayersGroup , tonumber ( aMoney ) ) end end ) ; --F8 Say : GiveGroupMoney Console 500 Author : Abdul KariM اتمنى ان الفنكشن اعجبكم وياريت لو واحد يضيفه بصفحة الفنكشنات المفيدة والسلام عليكم ورحمة الله وبركاته , في امان الله رائع استمر بس حاول تسوي فنكشن احلي من هيك وم في فكرة مثلها اتمني تكون فهمتني https://forum.multitheftauto.com/viewtopic.php?f ... ps#p686821 Link to comment
Abdul KariM Posted April 30, 2016 Share Posted April 30, 2016 ^ ! الله يهديك بس الفنكشن حقي يجيب لك كل الاعبين الموجودين بالقروب , مايجيب قروبات الاعب اتمنى انك فهمت , رح جرب الفنكشنات وراح تشوف الفرق اصلا واضحة من تركيب الاكواد Link to comment
Me[Z]oO Posted April 30, 2016 Share Posted April 30, 2016 ^ ! الله يهديك بس الفنكشن حقي يجيب لك كل الاعبين الموجودين بالقروب , مايجيب قروبات الاعب اتمنى انك فهمت , رح جرب الفنكشنات وراح تشوف الفرق اصلا واضحة من تركيب الاكواد م لاحظت م قصدي اهانة يبطل فقط كنت انبهك وبعتذر مرة اخري Link to comment
Abdul KariM Posted April 30, 2016 Share Posted April 30, 2016 ^ ! الله يهديك بس الفنكشن حقي يجيب لك كل الاعبين الموجودين بالقروب , مايجيب قروبات الاعب اتمنى انك فهمت , رح جرب الفنكشنات وراح تشوف الفرق اصلا واضحة من تركيب الاكواد م لاحظت م قصدي اهانة يبطل فقط كنت انبهك وبعتذر مرة اخري اهانة ايش و تنبيه ايش بعد الفنكشن يختلف عن الي حاطهم بالرابط 90 درجة على العموم حصل خير , وماودي اعطي الموضوع اكبر من حجمه بالتوفيق _ Link to comment
nxFairlywell Posted May 11, 2016 Share Posted May 11, 2016 (edited) بسم الله الرحمــن الرحـيم الصلاة و السلام على نبينا الكريم محمد صلى الله عليه وسلم : و على آله و صحبـه أجمعين , أما بعد أخواني الكرام , جئتكم اليوم بوظيفة صنعتها بنفسي Dx مهمتها حساب قياسات الشاشة للـ هذه الوظيفة مهمـة جداً للمبتدئين و لمتوسطين المستوى في البرمجة Dx ستفيدكم إن شاء الله في إنشاء واجهات الـ قبل أن نبدأ في شرح الوظيفة سأقوم بتوضيح 3 نقاط مهمة : أولاً : سبب طرحي لهذه الوظيفة هو بسبب المشاكل التي واجهتني في حسابات الدي اكس ثانياً : هذه الوظيفة تختلف تماماً عن سابقاتها لأن عملها يسهل لك تحريكها و ليس كبقية الوظائف ثالثاً : هذه الوظيفة تعطيك رقماً صحيحا للإحداثيات و تستطيع تعديل احداثياتها بالمتغيرات أولاً سنقوم بإنشاء واجهة دي إكس تجريبية ستكون إحداثياتها كالتالي : x : 200 y : 150 toX : 300 toY : 300 و ستكون قياسات الشاشة الخاصة بمصمم الواجهة هي كالتالي : العرض : 800 الإرتفاع : 600 سنشرح في البداية الساينتاكس او القاعدة أو طريقة كتابة الوظيفة convertDxPositionToAllScreens ( x, y, toX, toY, yourX, yourY ) x : x احداثي y : y احداثي toX : x احداثي لنهاية toY : y احداثي لنهاية yourX : قياس العرض لشاشة المصمم yourY : قياس الإرتفاع لشاشة المصمم ---------------------------------------------------- بعد أن قمنا بالتعرف على الساينتاكس سنقوم بتركيب الاحداثيات على الوظيفة بهذا الشكل : convertDxPositionToAllScreens ( 200, 150, 300, 300, 800, 600 ) 200 : x 150 : y 300 : toX 300 : toY 800 : myScreenW 600 : myScreenH الآن نقوم بتركيبها على الكود addEventHandler("onClientRender", root, function() x, y, tx, ty,size = convertDxPositionToAllScreens(200, 150, 300, 300, 1, 800, 600) dxDrawText("Hello world", x, y, tx, ty, tocolor(255, 255, 255, 255), size, false, false, false, false) end ) أتمنى الشرح واضح , كان شرح سريع الزبده , السورس كود تحت ماتشتغل الوظيفة بدونه ! موفقين إن شاء الله .. function convertDxPositionToAllScreens(x, y, toX, toY, size, yourX, yourY) if type(x) == "number" and type(y) == "number" and type(toX) == "number" and type(toY) == "number" and type(yourX) == "number" and type(yourY) == "number" then local sX, sY = guiGetScreenSize( ) local nX = tonumber(x)/tonumber(yourX) local nY = tonumber(y)/tonumber(yourY) local nTX = tonumber(toX)/tonumber(yourX) local nTY = tonumber(toY)/tonumber(yourY) local rX = nX*sX local rY = nY*sY local rTX = nTX*sX local rTY = nTY*sY local font_size=tonumber( size )*sX/yourX return rX, rY, rTX, rTY, font_size end end اللهم صل وسلم على نبينا محمد * Edited May 20, 2016 by Guest 1 Link to comment
Jupi Posted May 13, 2016 Share Posted May 13, 2016 بسم الله الرحمــن الرحـيم الصلاة و السلام على نبينا الكريم محمد صلى الله عليه وسلم : و على آله و صحبـه أجمعين , أما بعد أخواني الكرام , جئتكم اليوم بوظيفة صنعتها بنفسي Dx مهمتها حساب قياسات الشاشة للـ هذه الوظيفة مهمـة جداً للمبتدئين و لمتوسطين المستوى في البرمجة Dx ستفيدكم إن شاء الله في إنشاء واجهات الـ قبل أن نبدأ في شرح الوظيفة سأقوم بتوضيح 3 نقاط مهمة : أولاً : سبب طرحي لهذه الوظيفة هو بسبب المشاكل التي واجهتني في حسابات الدي اكس ثانياً : هذه الوظيفة تختلف تماماً عن سابقاتها لأن عملها يسهل لك تحريكها و ليس كبقية الوظائف ثالثاً : هذه الوظيفة تعطيك رقماً صحيحا للإحداثيات و تستطيع تعديل احداثياتها بالمتغيرات أولاً سنقوم بإنشاء واجهة دي إكس تجريبية ستكون إحداثياتها كالتالي : x : 200 y : 150 toX : 300 toY : 300 و ستكون قياسات الشاشة الخاصة بمصمم الواجهة هي كالتالي : العرض : 800 الإرتفاع : 600 سنشرح في البداية الساينتاكس او القاعدة أو طريقة كتابة الوظيفة convertDxPositionToAllScreens ( x, y, toX, toY, yourX, yourY ) x : x احداثي y : y احداثي toX : x احداثي لنهاية toY : y احداثي لنهاية yourX : قياس العرض لشاشة المصمم yourY : قياس الإرتفاع لشاشة المصمم ---------------------------------------------------- بعد أن قمنا بالتعرف على الساينتاكس سنقوم بتركيب الاحداثيات على الوظيفة بهذا الشكل : convertDxPositionToAllScreens ( 200, 150, 300, 300, 800, 600 ) 200 : x 150 : y 300 : toX 300 : toY 800 : myScreenW 600 : myScreenH الآن نقوم بتركيبها على الكود addEventHandler("onClientRender", root, function() x, y, tx, ty = convertDxPositionToAllScreens(200, 150, 300, 300, 800, 600) dxDrawRectangle(x, y, tx, ty, tocolor(255, 255, 255, 255), false) end ) أتمنى الشرح واضح , كان شرح سريع الزبده , السورس كود تحت ماتشتغل الوظيفة بدونه ! موفقين إن شاء الله .. function convertDxPositionToAllScreens(x, y, toX, toY, yourX, yourY) if type(x) == "number" and type(y) == "number" and type(toX) == "number" and type(toY) == "number" and type(yourX) == "number" and type(yourY) == "number" then local sX, sY = guiGetScreenSize( ) local nX = tonumber(x)/tonumber(yourX) local nY = tonumber(y)/tonumber(yourY) local nTX = tonumber(toX)/tonumber(yourX) local nTY = tonumber(toY)/tonumber(yourY) local rX = nX*sX local rY = nY*sY local rTX = nTX*sX local rTY = nTY*sY return rX, rY, rTX, rTY end end اللهم صل وسلم على نبينا محمد * وظيفتك ممتازة بس فيه شيء غريب انت متحقق ان الارقمنتات الممررة رقم طبعا لو غير ما يتحقق ثم تحت حولتها رقم ثاني Link to comment
nxFairlywell Posted May 14, 2016 Share Posted May 14, 2016 هلا والله مدري وش اللي خلاني احولها رقم وانا متحقق اساسا انها رقم المهم اصلا مايضر كذا ولا كذا بتشتغل Link to comment
nxFairlywell Posted May 15, 2016 Share Posted May 15, 2016 ... كفوو والله - اسسسسدد كفووووك Link to comment
</Mr.Tn6eL> Posted May 20, 2016 Share Posted May 20, 2016 eraL' date='10'] وظيفة رائعة بالتوفيق Link to comment
nxFairlywell Posted May 20, 2016 Share Posted May 20, 2016 وظيفة رائعة بالتوفيق حياك الله، بس فيه بق بسيط بالوظيفة راح اعدلها ، dxDrawText حجم الخط راح يكون صغير بالنسبة للقياسات الاكبر من قياسات شاشة المصمم و راح يكون الخط كبير اذا كانت قياسات شاشة المصمم اكبر من قياسات اللاعب راح اسوي ارقمنت جديد يقوم بعملية حسابية للخط على كل الشاشات Link to comment
</Mr.Tn6eL> Posted May 20, 2016 Share Posted May 20, 2016 تقدر تسويه كذا local sx, sy = guiGetScreenSize( ) local size = font_size * (sx / 1024) مثلا حجم شاشتي 800 تصيير local size = font_size * (sx / 800) font_size = حجم الخط حقك مثلا 3 تصير local size = 3 * (sx / 800) -- 3 : حجم الخط -- sx متغير لعرض نافذة الاعب -- 1024 عرض شاشة المبرمج/المصمم Link to comment
nxFairlywell Posted May 20, 2016 Share Posted May 20, 2016 سهلت علي الله يسهل عليك ههههههه خلاص بحطها اجل Link to comment
nxFairlywell Posted May 20, 2016 Share Posted May 20, 2016 #تم تعديل الوظيفة و إضافة ارقمنت لحجم الخط Link to comment
Me[Z]oO Posted June 1, 2016 Share Posted June 1, 2016 (edited) guiAntiFlood فائدتها تقوم بقفل الزر بحسب الوقت الذي تريده guiAntiFlood(int element , timer) Required Arguments ---element: the GUI element you wish to enable or disable ---timer: a time to Enable the element (true) Code : function guiAntiFlood(element, timer) if getElementType ( element ) == "gui-button" then local atimer = tonumber(timer) if atimer == nil or atimer == '' or not tonumber(atimer) then error("Bad Argument the Argument 2 must number") else end guiSetEnabled(element,false) setTimer(function() guiSetEnabled(element,true) end,tonumber(atimer),1) else error("Bad Argument 1 the element must button") end end Example : addEventHandler("onClientGUIClick",button, function() setElementHealth(localPlayer,100) guiAntiFlood(button,2000) end) --للتوضيح --2000 هيك خليت البوتون يغلق لمدة ثانيتين --10000 = ثانية --10000 دقيقة -- تقدر تضرب عدد الدقايق او الثواني مثال --guiAntiFlood(button,2*10000) هيك يقفل لمدة دقيقتين طبعا الكود سهل وبسيط ولكن بعض المبرمجين المبتدئين سئلوني كيف اخلي اللاعب م يكرر الضغط مشان بياخد كل شوي دم من الزر والسلام عليكم ورحمة الله وبركاته Edited July 2, 2016 by Guest Link to comment
Jupi Posted June 1, 2016 Share Posted June 1, 2016 اهنيك يا ميزو علي ابداعك بلتوفيق لك و تابع Link to comment
Me[Z]oO Posted June 1, 2016 Share Posted June 1, 2016 اهنيك يا ميزو علي ابداعك بلتوفيق لك و تابع يسلمو دابل تلميذك <3 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