Jump to content

تحت التطوير :كود - Useful Arab functions


Booo

Recommended Posts

Just now, Default said:

تفضل ^ .. 
 


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 )
    if ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) then
        return true
    else
        return false
    end
end

addEventHandler("onClientRender",root, function ( )
dxDrawRectangle(206, 241, 367, 26,(isMouseInPosition (206,241,367,26) and tocolor ( 0,153 , 255 , 255 ) or tocolor(0, 0, 0, 140)) , false)
end );

addEventHandler ( "onClientClick" , root , function ( Button , State )
if ( Button == "left" and state == "up" ) then 
if ( isMouseInPosition (206,241,367,26) ) then 
outputChatBox ( "Your Name is : "..getPlayerName(localPlayer) )
end
end
end );

 

 

مشكور ديفلت والله انك كفو ماقصرت

Link to comment
On 4/20/2016 at 8:36 AM, </Mr.Tn6eL> said:

 

isMouseInCircle

واضحة من الاسم

x, y = احداثيات الدائرة

r = نصف قطر الدائرة

 

 


local sx, sy = guiGetScreenSize( ) function isMouseInPosition(x, y, w, h)     if isCursorShowing( ) then         local cx, cy = getCursorPosition( )         local cx, cy = cx*sx, cy*sy         return cx >= x and cx <= x+w and cy >= y and cy <= y+h 
    end 
    return false 
end 
function isMouseInCircle(x, y, r) 
    local i = 0 
    for k=(-r), r do 
        local q = math.sqrt((r/2)*(r/2)-k*k) 
        if isMouseInPosition(x-q+(r/2), y+k+(r/2), 2*q, 1) then 
            i = i+1 
        end 
    end 
    return i ~= (-r)+r 
end 
 

 

تحديث جديد

* تقليص حجم الكود

* تقليل الاق

* سرعة عالية

* استهلاك اقل

local sx, sy = guiGetScreenSize( )
function isMouseInCircle(x, y, r)
    if isCursorShowing( ) then
        local cx, cy = getCursorPosition( )
        local cx, cy = cx*sx, cy*sy
        return (x-cx)^2+(y-cy)^2 <= r^2
    end
    return false
end

 

  • Like 2
Link to comment
4 hours ago, said:

تحديث جديد

* تقليص حجم الكود

* تقليل الاق

* سرعة عالية

* استهلاك اقل


local sx, sy = guiGetScreenSize( )function isMouseInCircle(x, y, r)    if isCursorShowing( ) then
        local cx, cy = getCursorPosition( )
        local cx, cy = cx*sx, cy*sy
        return (x-cx)^2+(y-cy)^2 <= r^2
    end
    return false
end

 

نايس :x
 

 

Edited by medo7
Link to comment
  • 2 weeks later...

@N3xT

convertHistoryToHijri = function (  ) 
    local Time = getRealTime (  ); 
    local Day = Time.monthday 
    local Month = Time.month + 1 
    local Year = Time.year + 1900 
    -- 
    if Month == 1 then Last = Day end 
    if Month == 2 then Last = Day + 30 end 
    if Month == 3 then Last = Day + 60 end 
    if Month == 4 then Last = Day + 90 end 
    if Month == 5 then Last = Day + 120 end 
    if Month == 6 then Last = Day + 150 end 
    if Month == 7 then Last = Day + 180 end 
    if Month == 8 then Last = Day + 210 end 
    if Month == 9 then Last = Day + 240 end 
    if Month == 10 then Last = Day + 270 end 
    if Month == 11 then Last = Day + 300 end 
    if Month == 12 then Last = Day + 330 end 
    -- 
    x = math.ceil ( ( Year - 1 ) * 365.25 ); 
    x = x + Last  
    x = math.abs ( x - 227015 ); 
    x = math.floor ( x * 30 ); 
    xx = x 
    x = math.floor ( x / 10631 ); 
    m = math.floor ( x * 10631 ); 
    m = math.abs ( m - xx ); 
    x2 = math.floor ( m / 30 ); 
    x2 = math.abs ( x2 - 13 ); 
    -- 
    if x2 >= 1 and x2 <= 30 then x4 = x2 x3 = 1 end 
    if x2 >= 31 and x2 <= 60 then x4 = x2 - 30 x3 = 2 end 
    if x2 >= 61 and x2 <= 90 then x4 = x2 - 60 x3 = 3 end 
    if x2 >= 91 and x2 <= 120 then x4 = x2 - 90 x3 = 4 end 
    if x2 >= 121 and x2 <= 150 then x4 = x2 - 120 x3 = 5 end 
    if x2 >= 151 and x2 <= 180 then x4 = x2 - 150 x3 = 6 end 
    if x2 >= 181 and x2 <= 210 then x4 = x2 - 180 x3 = 7 end 
    if x2 >= 211 and x2 <= 240 then x4 = x2 - 210 x3 = 8 end 
    if x2 >= 241 and x2 <= 270 then x4 = x2 - 240 x3 = 9 end 
    if x2 >= 271 and x2 <= 300 then x4 = x2 - 270 x3 = 10 end 
    if x2 >= 301 and x2 <= 330 then x4 = x2 - 300 x3 = 11 end 
    if x2 >= 331 and x2 <= 360 then x4 = x2 - 330 x3 = 12 end 
    -- 
    return tostring ( x4 ), tostring ( x3 ), tostring ( x + 1 ); 
end 

 

By @jafar

  • Like 1
Link to comment
On ٨‏/١١‏/٢٠١٦ at 1:16 AM, Default said:

@N3xT


convertHistoryToHijri = function (  ) 
    local Time = getRealTime (  ); 
    local Day = Time.monthday 
    local Month = Time.month + 1 
    local Year = Time.year + 1900 
    -- 
    if Month == 1 then Last = Day end 
    if Month == 2 then Last = Day + 30 end 
    if Month == 3 then Last = Day + 60 end 
    if Month == 4 then Last = Day + 90 end 
    if Month == 5 then Last = Day + 120 end 
    if Month == 6 then Last = Day + 150 end 
    if Month == 7 then Last = Day + 180 end 
    if Month == 8 then Last = Day + 210 end 
    if Month == 9 then Last = Day + 240 end 
    if Month == 10 then Last = Day + 270 end 
    if Month == 11 then Last = Day + 300 end 
    if Month == 12 then Last = Day + 330 end 
    -- 
    x = math.ceil ( ( Year - 1 ) * 365.25 ); 
    x = x + Last  
    x = math.abs ( x - 227015 ); 
    x = math.floor ( x * 30 ); 
    xx = x 
    x = math.floor ( x / 10631 ); 
    m = math.floor ( x * 10631 ); 
    m = math.abs ( m - xx ); 
    x2 = math.floor ( m / 30 ); 
    x2 = math.abs ( x2 - 13 ); 
    -- 
    if x2 >= 1 and x2 <= 30 then x4 = x2 x3 = 1 end 
    if x2 >= 31 and x2 <= 60 then x4 = x2 - 30 x3 = 2 end 
    if x2 >= 61 and x2 <= 90 then x4 = x2 - 60 x3 = 3 end 
    if x2 >= 91 and x2 <= 120 then x4 = x2 - 90 x3 = 4 end 
    if x2 >= 121 and x2 <= 150 then x4 = x2 - 120 x3 = 5 end 
    if x2 >= 151 and x2 <= 180 then x4 = x2 - 150 x3 = 6 end 
    if x2 >= 181 and x2 <= 210 then x4 = x2 - 180 x3 = 7 end 
    if x2 >= 211 and x2 <= 240 then x4 = x2 - 210 x3 = 8 end 
    if x2 >= 241 and x2 <= 270 then x4 = x2 - 240 x3 = 9 end 
    if x2 >= 271 and x2 <= 300 then x4 = x2 - 270 x3 = 10 end 
    if x2 >= 301 and x2 <= 330 then x4 = x2 - 300 x3 = 11 end 
    if x2 >= 331 and x2 <= 360 then x4 = x2 - 330 x3 = 12 end 
    -- 
    return tostring ( x4 ), tostring ( x3 ), tostring ( x + 1 ); 
end 

 

By @jafar

 

أقصد بالشهور الهجرية مثل, محرم وشوال وصفر إلخخ

 

Link to comment
47 minutes ago, N3xT said:

أقصد بالشهور الهجرية مثل, محرم وشوال وصفر إلخخ

 

        monthAH ={
        [ 1 ]    = 'محرم',
        [ 2 ]    = 'صفر',
        [ 3 ]    = 'ربيع الأول',
        [ 4 ]    = 'ربيع الآخر',
        [ 5 ]    = 'جمادي الأول',
        [ 6 ]    = 'جمادي الآخر',
        [ 7 ]    = 'رجب',
		[ 8 ]    = 'شعبان',
		[ 9 ]    = 'رمضان',
		[ 10 ]    = 'شوال',
		[ 11 ]    = 'ذوالقعدة',
		[ 12 ]    = 'ذوالحجة'
        }
        Month =  (monthAH [getRealTime().month -8 ]);
		
addEventHandler('onClientRender', root,
 function()
	 dxDrawText(tostring( Month ),10,100,200,200)
 end
)
 

 

Edited by medo7
Link to comment
30 minutes ago, medo7 said:

        monthAH ={
        [ 1 ]    = 'محرم',
        [ 2 ]    = 'صفر',
        [ 3 ]    = 'ربيع الأول',
        [ 4 ]    = 'ربيع الآخر',
        [ 5 ]    = 'جمادي الأول',
        [ 6 ]    = 'جمادي الآخر',
        [ 7 ]    = 'رجب',
		[ 8 ]    = 'شعبان',
		[ 9 ]    = 'رمضان',
		[ 10 ]    = 'شوال',
		[ 11 ]    = 'ذوالقعدة',
		[ 12 ]    = 'ذوالحجة'
        }
        Month =  (monthAH [getRealTime().month ] );
		
		addEventHandler('onClientRender', root,
		function()
		 dxDrawText(tostring( Month ),10,100,200,200)
		 end)
 

 

 

حساب الشهور الهجرية بكودك خطأ, لو تجربه راح يجيب لك الشهر شوال لأنك تحسب الهجري مثل شهور الميلادي وذا خطأ

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

عموماً سويت يوزفل فنكشن وراح أطرحه شوي

Link to comment

c4b3ac5ddbc6af3968da7cca9169e2be.png

 

الوظائف التالية كلنت سايد فقط

getRealMonthH

 

فكرة الوظيفة: تجيب لك أسماء الأشهر الهجرية

ملاحظة بسيطة: تغير الأشهر ممكن يتأخر أحياناً بـ 3 أيام كحد أقصى وبعدها راح تتعدل

 

صيغة الوظيفة

getRealMonthH ( )

 

كود الوظيفة

monthTable = { 
	["10"] = "محرم",
	["11"] = "صفر",
	["12"] = "ربيع الأول",
	["1"] = "ربيع الآخر",
	["2"] = "جمادى الأول",
	["3"] = "جمادى الآخر",
	["4"] = "رجب",
	["5"] = "شعبان",
	["6"] = "رمضان",
	["7"] = "شوال",
	["8"] = "ذو الحجة",
	["9"] = "ذو القعدة"
}

function getRealMonthH()
	local time = getRealTime()
	local month = time.month + 1
	for i, v in pairs ( monthTable ) do
		if string.find ( i , month ) then
			if v ~= "" then
				m = v
			end
		end
	end
	return m
end

 

مثال ع الوظيفة

addCommandHandler("month",
function ()
	local month = getRealMonthH()
	outputChatBox(month)
end	
)

 

https://wiki.multitheftauto.com/wiki/GetRealMonthH :صفحة الويكي

 

getRealMonthM

 

فكرة الوظيفة: تجيب لك أسماء الأشهر الميلادية

 

صيغة الوظيفة

getRealMonthM()

 

كود الوظيفة

monthTable = { 
	["1"] = "January",
	["2"] = "February",
	["3"] = "March",
	["4"] = "April",
	["5"] = "May",
	["6"] = "June",
	["7"] = "July",
	["8"] = "August",
	["9"] = "September",
	["10"] = "October",
	["11"] = "November",
	["12"] = "December"
}

function getRealMonthM()
	local time = getRealTime()
	local month = time.month + 1
	for i, v in pairs ( monthTable ) do
		if string.find ( i , month ) then
			if v ~= "" then
				m = v
			end
		end
	end
	return m
end

 

مثال ع الوظيفة

addCommandHandler("month",
function ()
	local month = getRealMonthM()
	outputChatBox(month)
end	
)

 

https://wiki.multitheftauto.com/wiki/GetRealMonthM : صفحة الويكي

 

أتمنى أن الوظيفة عجبتكم وتكون مفيدة لكم, في آمان الله

  • Like 3
Link to comment
1 hour ago, said:

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

استخدم كود جعفر وجدول ميدو وجيب رقم الشهر من كود جعفر وحط رقم على رقم المفتاح حق اسم الشهر ويضبط معك B|

 
 

ما فهمت لكود جعفر, لكن طريقتي تقريباً صح لأنه ذكرت فوق راح أحياناً يتاخر التغير ليوم أو يومين أو ثلاث على حسب نهاية الشهر الميلادي

لكن راح يكون الهجري صح

Edited by N3xT
Link to comment
22 hours ago, N3xT said:

ما فهمت لكود جعفر, لكن طريقتي تقريباً صح لأنه ذكرت فوق راح أحياناً يتاخر التغير ليوم أو يومين أو ثلاث على حسب نهاية الشهر الميلادي

لكن راح يكون الهجري صح

لا الشهور الهجرية تختلف عن الميلادية وانت قاعد تجيب الشهر الميلادي وتعطيه على اسم هجري

Link to comment
1 hour ago, </Mr.Tn6eL> said:

لا الشهور الهجرية تختلف عن الميلادية وانت قاعد تجيب الشهر الميلادي وتعطيه على اسم هجري

يب أدري أنها تختلف, لاحظ الأرقام اللي جنب الشهور ماهي بالترتيب

معطي كل شهر رقمه الصح بالميلادي عشان تطلع صح

عموماً جرب الكود وبتفهم

Link to comment
18 minutes ago, N3xT said:

يب أدري أنها تختلف, لاحظ الأرقام اللي جنب الشهور ماهي بالترتيب

معطي كل شهر رقمه الصح بالميلادي عشان تطلع صح

عموماً جرب الكود وبتفهم

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

نبغى وظيفة دقيقة 100%

  • Like 1
Link to comment
  • 3 weeks later...

 

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

guiWindowTitlebarRight

Syntax :
guiWindowTitlebarRight(window, text, onClick)  

تستطيع أن ترى الصورة بحجمها الطبيعي بعد الضغط عليها

Code :
function guiWindowTitlebarRight(window, text, onClick)
	local width = dxGetTextWidth(text, 1, "default")
	local label = guiCreateLabel(guiGetSize(window, false) - width, 0, width, width, text, false, window)
	guiLabelSetColor(label, 255,0,0)
	guiSetProperty(label, "ClippedByParent", "False")
	guiSetProperty(label, "AlwaysOnTop", "True")

	local fun = {} 
	
	for i,v in ipairs(fun) do
		if v == "__self" then
			fun[i] = label
		end
	end
	
	addEventHandler("onClientGUIClick", label, function() if onClick then onClick(fun) end end, false)
	addEventHandler("onClientMouseEnter", label, function() guiLabelSetColor(label, 0,255,0) end, false)
	addEventHandler("onClientMouseLeave", label, function() guiLabelSetColor(label, 100,100,0) end, false)
end

Example :
win = guiCreateWindow(100, 100, 300, 300, "window", false)
function closet()
guiSetVisible(win,false)
end
guiWindowTitlebarRight(win, "X",closet)

Author : ميدوح
Edited by medo7
  • Like 1
Link to comment

سلام عليكم 

صراحة مدري والله هل احد سبقني او لا

لكن هم وظيفتين سهلين مره

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

ملاحظه كلنت سايد فقط

  function clwndo( guiElement ) 
     guiSetVisible( guiElement, false ) 
     showCursor( guiGetVisible(guiElement)) 
	 

end 
function openwnd( guiElement ) 
     guiSetVisible( guiElement, true ) 
     showCursor( guiGetVisible(guiElement)) 
	 

end 

الحين طريقة الاستخدام

مثال لفتح النافذه مع الماوس

    openwnd(GUIEditor.window[5])

مثال لغلق النافذه

	  clwndo(GUIEditor.window[5])

مثال الاستخدام

	GUIEditor.window[5] = guiCreateWindow(0, 355, 259, 445, "Player Panel", false)
bindKey( "z", "down", function ( ) 

  if guiGetVisible(GUIEditor.window[5])==false then
    openwnd(GUIEditor.window[5])
	 else
	  clwndo(GUIEditor.window[5])
	 
end 
) 

اتمنى تستفيدو معليش على قدي

  • Like 1
Link to comment
13 minutes ago, Master_MTA said:

سلام عليكم 

صراحة مدري والله هل احد سبقني او لا

لكن هم وظيفتين سهلين مره

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

ملاحظه كلنت سايد فقط


  function clwndo( guiElement ) 
     guiSetVisible( guiElement, false ) 
     showCursor( guiGetVisible(guiElement)) 
	 

end 
function openwnd( guiElement ) 
     guiSetVisible( guiElement, true ) 
     showCursor( guiGetVisible(guiElement)) 
	 

end 

الحين طريقة الاستخدام

مثال لفتح النافذه مع الماوس


    openwnd(GUIEditor.window[5])

مثال لغلق النافذه


	  clwndo(GUIEditor.window[5])

مثال الاستخدام


	GUIEditor.window[5] = guiCreateWindow(0, 355, 259, 445, "Player Panel", false)
bindKey( "z", "down", function ( ) 

  if guiGetVisible(GUIEditor.window[5])==false then
    openwnd(GUIEditor.window[5])
	 else
	  clwndo(GUIEditor.window[5])
	 
end 
) 

اتمنى تستفيدو معليش على قدي

وظيفة وكود مفيدين جدأ 

Link to comment

السلام عليكم

quadForm

Useful Function

هذه الوظيفة تقوم بحساب قيمة المقادير الثلاثية بالصيغة

ax + bx – c = 0

مثال:

x2 + 3x – 4 = 0

حيث انها ترجع لك جدول بقيمتين بأستخدام القانون التالي

qform01.gif

 

Syntax

table quadForm( float a, float b, float c )

 

Required Arguments

  • a, b, c

 

Code:

function quadForm(a, b, c)
	if tonumber(a) and tonumber(b) and tonumber(c) then
		local l = math.sqrt((b^2)-(4*a*c));
		return { (-b + l)/2*a, (-b - l)/2*a };
	end
	return false;
end

 

Example

--[[
Solve :
	x2 + 3x – 4 = 0
	x2 + 2x – 1 = 0
]]

local result1, result2 = quadForm(1, 3, -4), quadForm(1, 2, -1);
print("result 1: x1 = "..result1[1]..", x2 = "..result1[2]); -- >> result 1: x1 = 1.0 x2 = -4.0
print("result 2: x1 = "..result2[1]..", x2 = "..result2[2]); -- >> result 2: x1 = 0.4142135623731 x2 = -2.4142135623731

 

Author: @MoDeR2014

  • Like 1
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...