#CroSs Posted August 18, 2018 Share Posted August 18, 2018 11 hours ago, #َxLysandeR said: ولكم كروس منور تسلم حبيبي 5 hours ago, Abdul KariM said: والخروج منه Marker جربت هالكلام مع أحداث دخول الـ وحدث الخروج يشتغل بعد ما اطلع منه بمسافة ،Marker والنتيجة إن حدث الدخول يشتغل قبل ما المس الـ أكبر Marker نفسها، وهالمشكلة توضح كل ما كان الـ MTA اتضح إنها مشكلة في مربوط بلوحة Marker عادي تطلع لك لوحة فوق لو كان الـ ،Marker ودخلت الـ Jetpack يعني لو كنت فوق تطير بـ ،Marker وهي إنها تهمل الارتفاع لما تدخل الـ MTA وفي مشكلة ثانية في .أخيرًا، اعذرني على سذاجتي Link to comment
Master_MTA Posted August 18, 2018 Share Posted August 18, 2018 55 minutes ago, #CroSs said: مربوط بلوحة Marker عادي تطلع لك لوحة فوق لو كان الـ ،Marker ودخلت الـ Jetpack يعني لو كنت فوق تطير بـ ،Marker وهي إنها تهمل الارتفاع لما تدخل الـ MTA وفي مشكلة ثانية في احم احم في فنكشن سويته لاصلاح هذا البق راجع الموضوع ذا مدري شسمه disableMarker مدري الزبده دور عليه Link to comment
Abdul KariM Posted August 18, 2018 Share Posted August 18, 2018 (edited) @#CroSs معذور , وانا ماطرح شي الا واثق منه ولاهنت على المرور #edit والي يبي يحل المشاكل الي قالها الاخ كروس استخدم التايمر او الرندر مع الوظائف الي انا حاطها وان شاء الله ماتواجهه مشاكل Edited August 18, 2018 by Abdul KariM Link to comment
Abdul KariM Posted August 19, 2018 Share Posted August 19, 2018 (edited) createObjectAttachedTo وظيفه بسيطة و واضحه من اسمها تنشأ اوبجكت وتلصقه بالالمنت Syntax : object createObjectAttachedTo ( element elementToAttachTo , int objID [ , float offx , float offy , float offz ] ) Required Arguments elementToAttachTo : الالمنت الي تبي تلصق الاوبجكت فيه objID : ايدي الاوبجكت source Code : local elements = { [ "player" ] = true , [ "ped" ] = true , [ "vehicle" ] = true , [ "object" ] = true , [ "weapon" ] = true , [ "blip" ] = true , [ "effect" ] = true , [ "light" ] = true , [ "camera" ] = true , [ "pickup" ] = true , [ "searchlight" ] = true } function createObjectAttachedTo ( elementToAttachTo , objID , offx , offy , offz ) local Check = not ( elementToAttachTo and isElement ( elementToAttachTo ) and elements [ getElementType ( elementToAttachTo ) ] ) and error ( "createObjectAttachedTo Bad Argument 1 got ".. ( not elementToAttachTo and "nil" or getElementType ( elementToAttachTo ) or "nil" ) ) or type ( objID ) ~= "number" and error ( "createObjectAttachedTo Bad Argument 2 got " .. type ( objID ) ) local obj = createObject ( objID , getElementPosition ( elementToAttachTo ) ) attachElements ( obj , elementToAttachTo , offx , offy , offz ) return obj end بعض الامثلة client : createObjectAttachedTo ( localPlayer , 1482 , offx , offy , offz ) -- server : createObjectAttachedTo ( getRandomPlayer ( ) , 1482 , offx , offy , offz ) Author : Abdul KariM Edited August 19, 2018 by Abdul KariM 3 Link to comment
KillerX Posted August 19, 2018 Share Posted August 19, 2018 @Abdul KariM كل شوية تبهرنا بابداعك استمر يا بطل موفق : ) 1 Link to comment
Rockyz Posted August 19, 2018 Share Posted August 19, 2018 getSmoothRGBColor وظيفة تجيبلك لون RGB بشكل ناعم Syntax: int int int getSmoothRGBColor() Source code: local colorChangeSpeed = 2; addEventHandler('onClientResourceStart', resourceRoot, function() colorChangeSpeed = math.max(math.min(colorChangeSpeed, 2), .5) randomR, randomG, randomB = 0, 0, 0; levelNumber = math.random(3) startTick = getTickCount(); addEventHandler('onClientRender', root, updateRGB) end) function updateRGB() local currentTick = getTickCount(); local fadeIn, fadeOut = interpolateBetween(0, 255, 0, 255, 0, 0, (currentTick-startTick)/(colorChangeSpeed*1000), 'Linear') if levelNumber == 1 then randomR, randomG, randomB = fadeOut, fadeIn, 0 elseif levelNumber == 2 then randomR, randomG, randomB = 0, fadeOut, fadeIn elseif levelNumber == 3 then randomR, randomG, randomB = fadeIn, 0, fadeOut end if currentTick > (startTick+(colorChangeSpeed*1000)) then levelNumber = math.max((levelNumber+1)%4, 1) startTick = getTickCount(); end end function getSmoothRGBColor() return randomR, randomG, randomB; end Example: local sx, sy = guiGetScreenSize() addEventHandler('onClientRender', root, function() dxDrawText(getPlayerName(localPlayer), 0, 0, sx, sy, tocolor(getSmoothRGBColor()), 2, 'default-bold', 'center', 'top') end) تقدر تغير سرعة التغيير مابين الألوان من السطر الأول 1 1 Link to comment
KillerX Posted August 19, 2018 Share Posted August 19, 2018 @#,xiRocKyz وظيفة روعه من شخص اروع : ) استمر يا بطل 1 Link to comment
Popular Post N3xT Posted August 19, 2018 Popular Post Share Posted August 19, 2018 السلام عليكم ورحمة الله وبركاته فالفترة الأخيرة لاحظت طلبات كثير على قواعد البيانات عالسيريال وما شابه, فقلت ليه ما اسهل الموضوع وأخليها بكود أسهل بكثير عموماً نخش عالموضوع سريع سريع ونشوف - setSerialData Syntax: setSerialData ( string serial, string key, string value ) Source code: function setSerialData ( serial, key, value ) if ( serial and key and value ) then local database = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS `" .. serial .. "` ( key TEXT, value TEXT )" ) local data = executeSQLQuery ( "SELECT value FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) local result = false if ( #data == 1 ) then if ( data[1].value ~= value ) then executeSQLQuery ( "UPDATE `" .. serial .. "` SET value=? WHERE key=?", tostring ( value ), tostring ( key ) ) result = true end else executeSQLQuery ( "INSERT INTO `" .. serial .. "` ( key, value ) VALUES ( ?, ? )", tostring ( key ), tostring ( value ) ) result = true end return result end end getSerialData Syntax: getSerialData ( string serial, string key ) Source code: function getSerialData ( serial, key ) if ( serial and key ) then local database = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS `" .. serial .. "` ( key TEXT, value TEXT )" ) local data = executeSQLQuery ( "SELECT value FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) local result = false if ( #data == 1 ) then result = data[1].value end return result end end removeSerialData Syntax: removeSerialData ( string serial, string key ) Source code: function removeSerialData ( serial, key ) if ( serial and key ) then local database = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS `" .. serial .. "` ( key TEXT, value TEXT )" ) local data = executeSQLQuery ( "SELECT value FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) local result = false if ( #data == 1 ) then executeSQLQuery("DELETE FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) result = true end return result end end ان شاء الله تكون مفيدة الوظيفة لكم, في آمان الله 3 1 Link to comment
Abdul KariM Posted August 19, 2018 Share Posted August 19, 2018 @N3xT يعطيك العافية مجهود تشكر عليه لكن ليش مسوي لكل سريال قاعدة بيانات خاصة registry.db تقدر تسوي قاعدة بيانات بأسم واحد وتضيف وتحذف منها عشان تختصر الاكواد وايضا تقليل من حجم Link to comment
N3xT Posted August 19, 2018 Share Posted August 19, 2018 Just now, Abdul KariM said: @N3xT يعطيك العافية مجهود تشكر عليه لكن ليش مسوي لكل سريال قاعدة بيانات خاصة registry.db تقدر تسوي قاعدة بيانات بأسم واحد وتضيف وتحذف منها عشان تختصر الاكواد وايضا تقليل من حجم حبيت انه يكون لكل سيريال قاعدة خاصة فيه بالداتا اللي عليه, والله يعافيك نورت الموضوع يعني كمثال لو تبي تجيب جميع الداتا اللي على سيريال معين راح تكون مجبور انك تدور بالقاعدة كلها عن السيريال بينما كذا راح تختصر الموضوع وعلى طول تجيبها من السيريال Link to comment
Abdul KariM Posted August 19, 2018 Share Posted August 19, 2018 @N3xT مافهمت قصدك تسوي لوب على قاعدة البيانات ؟ Link to comment
N3xT Posted August 19, 2018 Share Posted August 19, 2018 2 minutes ago, Abdul KariM said: @N3xT مافهمت قصدك تسوي لوب على قاعدة البيانات ؟ لا, ما راح يكون فيه لوب لأنك راح تطلع السيريال من نفس الفنكشن لكن نفس عملية البحث داخل القاعدة لو كانت مليانة من الممكن تتأخر النتيجة شوي وبالمقابل لو كان فيه قاعدة لكل سيريال راح يكون أسرع بإختصار كل طريقة لها ايجابياتها وسلبياتها Link to comment
Abdul KariM Posted August 19, 2018 Share Posted August 19, 2018 Just now, N3xT said: لا, ما راح يكون فيه لوب لأنك راح تطلع السيريال من نفس الفنكشن لكن نفس عملية البحث داخل القاعدة لو كانت مليانة من الممكن تتأخر النتيجة شوي وبالمقابل لو كان فيه قاعدة لكل سيريال راح يكون أسرع بإختصار كل طريقة لها ايجابياتها وسلبياتها كلامك صحيح بس تقدر تعوض عن هذا عن طريق dbConnect راح تكون لك قاعدة بيانات خاصة تتحكم فيها ويكون الاستعلام سريع مثل ماقلت وماراح يكون لكل سريال قاعدة registry.db وبكذا تخلي الوظائف مستقلة بقاعدة لحالها مايحتاج استخدام الـ وبالنهاية اعتذر على التدخل بس حبيت اعطيك الطريقة المختصرة والافضل Link to comment
N3xT Posted August 19, 2018 Share Posted August 19, 2018 1 minute ago, Abdul KariM said: كلامك صحيح بس تقدر تعوض عن هذا عن طريق dbConnect راح تكون لك قاعدة بيانات خاصة تتحكم فيها ويكون الاستعلام سريع مثل ماقلت وماراح يكون لكل سريال قاعدة registry.db وبكذا تخلي الوظائف مستقلة بقاعدة لحالها مايحتاج استخدام الـ وبالنهاية اعتذر على التدخل بس حبيت اعطيك الطريقة المختصرة والافضل هذي كانت الفكرة بالبداية, لكن عيبها انها بتسوي لك قاعدة بكل ملف تستخدم فيه الكود وبعدين اذا احتجت نسخة منها بتقعد تنسخ اكثر من قاعدة عندك أو انها تتحول من يوزفل فنكشن الى سكربت وتنحفظ فيه قاعدة البيانات وانا ما ابيه سكربت, وحياك الله واحترم رأيك 1 Link to comment
Abdul KariM Posted August 19, 2018 Share Posted August 19, 2018 Just now, N3xT said: هذي كانت الفكرة بالبداية, لكن عيبها انها بتسوي لك قاعدة بكل ملف تستخدم فيه الكود وبعدين اذا احتجت نسخة منها بتقعد تنسخ اكثر من قاعدة عندك أو انها تتحول من يوزفل فنكشن الى سكربت وتنحفظ فيه قاعدة البيانات وانا ما ابيه سكربت, وحياك الله واحترم رأيك الله يبقيك , تقدر تسوي القاعدة في ملف الادمنية وبكذا حليت المشكلة 1 Link to comment
Popular Post Abdul KariM Posted August 24, 2018 Popular Post Share Posted August 24, 2018 moveElement وظيفة تحريك الالمنت عن طريق انشاء اوبجكت ولصقه بالالمنت وتحريك الاوبجكت Syntax : bool moveElement ( element theElement , int time, float targetx, float targety, float targetz, [ float moverx, float movery, float moverz, string strEasingType, float fEasingPeriod, float fEasingAmplitude, float fEasingOvershoot ] ) بشرح اهم الارقمنتات theElement : الالمنت الذي تريد تحريك time : الوقت ليصل الالمنت في الاحداثيات المحددة targetx targety tagetz : الاحداثيات المراد توصيل الالمنت اليها moveObject وظيفة واضحة وبسيطة تركيبها تركيب source Code : local elements = { [ "player" ] = true , [ "ped" ] = true , [ "vehicle" ] = true , [ "object" ] = true , [ "weapon" ] = true , [ "blip" ] = true , [ "effect" ] = true , [ "light" ] = true , [ "camera" ] = true , [ "pickup" ] = true , [ "searchlight" ] = true } function moveElement ( theElement , theTime , tx , ty , tz , moverx, movery, moverz, strEasingType, fEasingPeriod, fEasingAmplitude, fEasingOvershoot ) local Check = not ( theElement and isElement ( theElement ) and elements [ getElementType ( theElement ) ] ) and error ( "moveElement Bad Argument 1 got ".. ( not theElement and "nil" or getElementType ( theElement ) or "nil" ) ) local objMove = createObject ( 1906 , getElementPosition ( theElement ) ) setElementAlpha ( objMove , 0 ) attachElements ( theElement , objMove ) moveObject ( objMove , theTime , tx , ty , tz , moverx, movery, moverz, strEasingType, fEasingPeriod, fEasingAmplitude, fEasingOvershoot ) setTimer ( function ( ) if theElement and isElement ( theElement ) then detachElements ( theElement , objMove ) end destroyElement ( objMove ) end , theTime , 1 ) return true end مثال -- server addCommandHandler ( "BringVehicleAtMe" , function ( player ) local randVeh = #getElementsByType ( "vehicle" ) > 0 and getElementsByType ( "vehicle" ) [ math.random ( 1 , #getElementsByType ( "vehicle" ) ) ] or false if not randVeh then return end moveElement ( randVeh , 500 , getElementPosition ( player ) ) end ) سيقوم بأحضار سيارة عشوائية قريبة منك BringVehicleAtMe عند كتابة امر اتمنى الوظيفة نالت اعجابكم وهذا والله اعلم والسلام عليكم ورحمة الله وبركاته 6 Link to comment
Rockyz Posted September 9, 2018 Share Posted September 9, 2018 (edited) removeSpecialCharacters الوظيفة تقوم بحذف الرموز الخاصة مثل ^ Syntax: string removeSpecialCharacters(string text) Source code: function removeSpecialCharacters(str) return type(str) == 'string' and ({str:gsub('[%(%)%.%%%+%-%*%?%[%^%$]', '%%%1')})[1] or false end Example: print(removeSpecialCharacters('Is it 20$ ?')) -- Is it 20%$ %? Edited September 9, 2018 by #,xiRocKyz Sorting 1 Link to comment
#STARK Posted September 9, 2018 Share Posted September 9, 2018 Function Name : sortGridlist Function Type : Client-Side Function Args. : gridlist ( element ) , { filter, from , column } ( table ) filter = الفلتر الي هيرتب بيه ممكن يكون الأنواع التاليه فقط : 1 - both ( للنوعين نص او رقم ) 2 - string ( لو تبي ترتيب ابجدي ) [ English - Only ] 3 - number ( لترتيب الأرقام ) from = من وين هياخد النصوص الي هيرتبها , لها اختيارين بس 1 - text = guiGridListGetItemText ( يعني هياخدها من النص الكتابي ) 2 - data = guiGridListGetItemData ( يعني هياخدها من الداتا ) column = ( العمود الي هياخد منه ( لو ما كتبتوش هيتحط 1 تلقائي Source Code : local Alphabet = {["a"] = 1, ["b"] = 2, ["c"] = 3, ["d"] = 4, ["e"] = 5, ["f"] = 6, ["g"] = 7, ["h"] = 8, ["i"] = 9, ["j"] = 10, ["k"] = 11, ["l"] = 12, ["m"] = 13, ["n"] = 14, ["o"] = 15, ["p"] = 16, ["q"] = 17, ["r"] = 18, ["s"] = 19, ["t"] = 20, ["u"] = 21, ["v"] = 22, ["w"] = 23, ["x"] = 24, ["y"] = 25, ["z"] = 26} function sortGridlist(grid, stype) if grid and isElement(grid) and getElementType(grid) == "gui-gridlist" and type(stype) == "table" then local data = {} if #stype > 0 then local filter, from, column = stype[1] or "both", stype[2] or "text", stype[3] or 1 local func = from == "data" and guiGridListGetItemData or guiGridListGetItemText local startIndex, row, cCount = 0, nil, guiGridListGetColumnCount(grid) for i = 0, guiGridListGetRowCount(grid)-1 do for j = 1, cCount do table.insert(data, {func(grid, i, column), guiGridListGetItemText(grid, i, j), guiGridListGetItemData(grid, i, j), {guiGridListGetItemColor(grid, i, j)}}) end end guiGridListClear(grid) if filter == "number" then table.sort(data, function(a, b) return tonumber(a[1]) > tonumber(b[1]) end ) elseif filter == "string" then table.sort(data, function(a, b) local a, b = a[1]:sub(1, 1):lower(), b[1]:sub(1, 1):lower() return Alphabet[b] > Alphabet[a] end ) elseif filter == "both" then table.sort(data, function(a, b) if tonumber(a[1]) and tonumber(b[1]) then return tonumber(a[1]) > tonumber(b[1]) elseif tonumber(a[1]) and not tonumber(b[1]) then return tonumber(a[1]) > tonumber(Alphabet[b[1]:sub(1, 1):lower()]) elseif not tonumber(a[1]) and tonumber(b[1]) then return tonumber(Alphabet[a[1]:sub(1, 1):lower()]) > tonumber(b[1]) else return Alphabet[b[1]:sub(1, 1):lower()] > Alphabet[a[1]:sub(1, 1):lower()] end end ) end for _,value in ipairs(data) do startIndex = startIndex + 1 if startIndex == 1 then row = guiGridListAddRow(grid) elseif startIndex >= cCount then startIndex = 1 row = guiGridListAddRow(grid) end for i = 1, cCount do guiGridListSetItemText(grid, row, i, value[2], false, false) guiGridListSetItemData(grid, row, i, value[3]) guiGridListSetItemColor(grid, row, i, value[4][1], value[4][2], value[4][3], value[4][4] or 255) end end end end end انا مجربتش الكود عشان مش عندي اللعبه , ماسحها من زمان بس كنت ابرمج بفلوس لبعض السيرفرات اي بق يا ريت تكتبوه هنا و شكراً 1 Link to comment
Master_MTA Posted September 10, 2018 Share Posted September 10, 2018 (edited) السلام عليكم ورحمة الله وبركاته كيف الحال شباب اليوم جايب فنكشن شوي حلو ومره حلو ههه الزبده انه عاجبني الفنكشن وظيفته انه يجيبلك النص المناسب للعرض الحالي لديك يعني مثلا افرض انا عندي ريكتانجل وابي ارسم تكست عليه وابي التكست ما يطلع برا الريكتانجل يمديني اسوي خاصيه من خصائص drawtext طبعا معروفه wordbreak or clip لكن لو انت متقدم شوي بالدي اكس وشديت حيلك بتعرف انه يمديك تسوي مؤشر يتحرك كل شوي طيب الحين المؤشر ذا بيحتاج تكست مناسب للريكتانجل هنا يجي وظيفة الفنكشن حقي الزبده انك تستخدمه في المكتبات وكذا ولو تبي تفك راسك ايضا من ارقمنتات dxDrawText كثيره يمديك تستخدمه ما اطول عليككم اصلا طولت السورس كود function getMaxStringForWidth(text,width,isinvers,scale,font) local scale=scale or 1.15 local font=font or 'default-bold' local isinvers= isinvers or false local mystring='' local inverstable={} local num=0 if text~=nil then local txtwidth=dxGetTextWidth( text,scale,font) if width>=txtwidth then return text,text end for v in text:gmatch('.') do if not isinvers then mystring=mystring..v local finalWidth=dxGetTextWidth( mystring,scale,font) if finalWidth>=width then mystring=mystring:gsub("[%z\1-\127\194-\244][\128-\191]*$", "") return mystring,text end else table.insert(inverstable,v) end end if isinvers then num=#inverstable while(num>=1) do mystring=inverstable[num]..mystring local finalWidth=dxGetTextWidth( mystring,scale,font) if finalWidth>=width then return mystring,text end num=num-1 end return mystring,text end end return false,text end طويل شوي لاني مابي اتلغبط اللي يبي يقصره يقصره الحين الساينتكس getMaxStringForWidth(string text,int width,bool isinvers,int scale,string or font element font) text:النص اللي تبي width:العرض او اقصى عرض اللي تبيه ما يتعداه isinvers:هذي لو تبي القطع يبدا من ورا ولا قدام scale:حجم الخط font:الخط سواء كانت خطوط اللعبه او خط سويته انت ب dxCreateFont Returns :الكود يرجعلك ب 2 سترنج اول سترنج المقصوصه او المناسبه للحجم والثانيه اللي انت حطيتها بالبدايه المهم مثال على الموضوع print(getMaxStringForWidth('Hello Worled am fine',100,true)) اتمنى وصلتكم المعلومه بالتوفيق الفنكشن عاجبني صراحه والله معجب بنفسي اني سويته هههههه @coNolel وش رايك انت ههه @#CroSs وانت فك الحظر حق الدسكورد ههه كل ذا عشان قلتلك بكرا دوام Edited September 10, 2018 by Master_MTA 1 Link to comment
coNolel Posted September 10, 2018 Share Posted September 10, 2018 4 minutes ago, Master_MTA said: السلام عليكم ورحمة الله وبركاته كيف الحال شباب اليوم جايب فنكشن شوي حلو ومره حلو ههه الزبده انه عاجبني الفنكشن وظيفته انه يجيبلك النص المناسب للعرض الحالي لديك يعني مثلا افرض انا عندي ريكتانجل وابي ارسم تكست عليه وابي التكست ما يطلع برا الريكتانجل يمديني اسوي خاصيه من خصائص drawtext طبعا معروفه wordbreak or clip لكن لو انت متقدم شوي بالدي اكس وشديت حيلك بتعرف انه يمديك تسوي مؤشر يتحرك كل شوي طيب الحين المؤشر ذا بيحتاج تكست مناسب للريكتانجل هنا يجي وظيفة الفنكشن حقي الزبده انك تستخدمه في المكتبات وكذا ولو تبي تفك راسك ايضا من ارقمنتات dxDrawText كثيره يمديك تستخدمه ما اطول عليككم اصلا طولت السورس كود function getMaxStringForWidth(text,width,isinvers,scale,font) local scale=scale or 1.15 local font=font or 'default-bold' local isinvers= isinvers or false local mystring='' local inverstable={} local num=0 if text~=nil then local txtwidth=dxGetTextWidth( text,scale,font) if width>=txtwidth then return text,text end for v in text:gmatch('.') do if not isinvers then mystring=mystring..v local finalWidth=dxGetTextWidth( mystring,scale,font) if finalWidth>=width then mystring=mystring:gsub("[%z\1-\127\194-\244][\128-\191]*$", "") return mystring,text end else table.insert(inverstable,v) end end if isinvers then num=#inverstable while(num>=1) do mystring=inverstable[num]..mystring local finalWidth=dxGetTextWidth( mystring,scale,font) if finalWidth>=width then return mystring,text end num=num-1 end return mystring,text end end return false,text end طويل شوي لاني مابي اتلغبط اللي يبي يقصره يقصره الحين الساينتكس getMaxStringForWidth(string text,int width,bool isinvers,int scale,string or font element font) text:النص اللي تبي width:العرض او اقصى عرض اللي تبيه ما يتعداه isinvers:هذي لو تبي القطع يبدا من ورا ولا قدام scale:حجم الخط font:الخط سواء كانت خطوط اللعبه او خط سويته انت ب dxCreateFont Returns :الكود يرجعلك ب 2 سترنج اول سترنج المقصوصه او المناسبه للحجم والثانيه اللي انت حطيتها بالبدايه المهم مثال على الموضوع print(getMaxStringForWidth('Hello Worled am fine',100,true)) اتمنى وصلتكم المعلومه بالتوفيق الفنكشن عاجبني صراحه والله معجب بنفسي اني سويته هههههه @coNolel وش رايك انت ههه إبداعك مال اممممه حدووووووووود يا ولد 1 Link to comment
Master_MTA Posted September 10, 2018 Share Posted September 10, 2018 2 minutes ago, coNolel said: إبداعك مال اممممه حدووووووووود يا ولد حبيب قلبي الله يسعدك 1 Link to comment
KillerX Posted September 10, 2018 Share Posted September 10, 2018 33 minutes ago, Master_MTA said: السلام عليكم ورحمة الله وبركاته كيف الحال شباب اليوم جايب فنكشن شوي حلو ومره حلو ههه الزبده انه عاجبني الفنكشن وظيفته انه يجيبلك النص المناسب للعرض الحالي لديك يعني مثلا افرض انا عندي ريكتانجل وابي ارسم تكست عليه وابي التكست ما يطلع برا الريكتانجل يمديني اسوي خاصيه من خصائص drawtext طبعا معروفه wordbreak or clip لكن لو انت متقدم شوي بالدي اكس وشديت حيلك بتعرف انه يمديك تسوي مؤشر يتحرك كل شوي طيب الحين المؤشر ذا بيحتاج تكست مناسب للريكتانجل هنا يجي وظيفة الفنكشن حقي الزبده انك تستخدمه في المكتبات وكذا ولو تبي تفك راسك ايضا من ارقمنتات dxDrawText كثيره يمديك تستخدمه ما اطول عليككم اصلا طولت السورس كود function getMaxStringForWidth(text,width,isinvers,scale,font) local scale=scale or 1.15 local font=font or 'default-bold' local isinvers= isinvers or false local mystring='' local inverstable={} local num=0 if text~=nil then local txtwidth=dxGetTextWidth( text,scale,font) if width>=txtwidth then return text,text end for v in text:gmatch('.') do if not isinvers then mystring=mystring..v local finalWidth=dxGetTextWidth( mystring,scale,font) if finalWidth>=width then mystring=mystring:gsub("[%z\1-\127\194-\244][\128-\191]*$", "") return mystring,text end else table.insert(inverstable,v) end end if isinvers then num=#inverstable while(num>=1) do mystring=inverstable[num]..mystring local finalWidth=dxGetTextWidth( mystring,scale,font) if finalWidth>=width then return mystring,text end num=num-1 end return mystring,text end end return false,textend طويل شوي لاني مابي اتلغبط اللي يبي يقصره يقصره الحين الساينتكس getMaxStringForWidth(string text,int width,bool isinvers,int scale,string or font element font) text:النص اللي تبي width:العرض او اقصى عرض اللي تبيه ما يتعداه isinvers:هذي لو تبي القطع يبدا من ورا ولا قدام scale:حجم الخط font:الخط سواء كانت خطوط اللعبه او خط سويته انت ب dxCreateFont Returns :الكود يرجعلك ب 2 سترنج اول سترنج المقصوصه او المناسبه للحجم والثانيه اللي انت حطيتها بالبدايه المهم مثال على الموضوع print(getMaxStringForWidth('Hello Worled am fine',100,true)) اتمنى وصلتكم المعلومه بالتوفيق الفنكشن عاجبني صراحه والله معجب بنفسي اني سويته هههههه @coNolel وش رايك انت ههه @#CroSs وانت فك الحظر حق الدسكورد ههه كل ذا عشان قلتلك بكرا دوام والله شغل جميل وعال العال كفوووو 1 Link to comment
Master_MTA Posted September 10, 2018 Share Posted September 10, 2018 1 minute ago, KillerX said: والله شغل جميل وعال العال حبيبي الله يسعدك كفوك 1 Link to comment
</Mr.Tn6eL> Posted September 16, 2018 Share Posted September 16, 2018 On 20/08/2018 at 01:57, N3xT said: السلام عليكم ورحمة الله وبركاته فالفترة الأخيرة لاحظت طلبات كثير على قواعد البيانات عالسيريال وما شابه, فقلت ليه ما اسهل الموضوع وأخليها بكود أسهل بكثير عموماً نخش عالموضوع سريع سريع ونشوف - setSerialData Syntax: setSerialData ( string serial, string key, string value ) Source code: function setSerialData ( serial, key, value ) if ( serial and key and value ) then local database = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS `" .. serial .. "` ( key TEXT, value TEXT )" ) local data = executeSQLQuery ( "SELECT value FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) local result = false if ( #data == 1 ) then if ( data[1].value ~= value ) then executeSQLQuery ( "UPDATE `" .. serial .. "` SET value=? WHERE key=?", tostring ( value ), tostring ( key ) ) result = true end else executeSQLQuery ( "INSERT INTO `" .. serial .. "` ( key, value ) VALUES ( ?, ? )", tostring ( key ), tostring ( value ) ) result = true end return result end end getSerialData Syntax: getSerialData ( string serial, string key ) Source code: function getSerialData ( serial, key ) if ( serial and key ) then local database = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS `" .. serial .. "` ( key TEXT, value TEXT )" ) local data = executeSQLQuery ( "SELECT value FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) local result = false if ( #data == 1 ) then result = data[1].value end return result end end removeSerialData Syntax: removeSerialData ( string serial, string key ) Source code: function removeSerialData ( serial, key ) if ( serial and key ) then local database = executeSQLQuery ( "CREATE TABLE IF NOT EXISTS `" .. serial .. "` ( key TEXT, value TEXT )" ) local data = executeSQLQuery ( "SELECT value FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) local result = false if ( #data == 1 ) then executeSQLQuery("DELETE FROM `" .. serial .. "` WHERE key=?", tostring ( key ) ) result = true end return result end end ان شاء الله تكون مفيدة الوظيفة لكم, في آمان الله كودك يسبب ثغرة SQL Injection Link to comment
N3xT Posted September 16, 2018 Share Posted September 16, 2018 1 hour ago, </Mr.Tn6eL> said: كودك يسبب ثغرة SQL Injection بالويكي مكتوب (SQL injection is rendered impossible). وحسب ما فهمت انه مستحيل تستغل الثغرة ذي 1 1 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