Jump to content

معلومات برمجية


Recommended Posts

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

موضوع مفيد , شكرا لك , 

وظيفة : executeCommandHandler

لأيسمح لك بأستخدام اوامر اللعبة

مثلأ 

executeCommandHandler ( "time" ) -- خطأ
executeCommandHandler ( "report" ) -- صح 

إن شاء الله وصلت المعلومة .

Edited by iMr.Omar
  • Like 1
Link to comment
15 minutes ago, iMr.Omar said:

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

موضوع مفيد , شكرا لك , 

وظيفة : executeCommandHandler

لأيسمح لك بأستخدام اوامر اللعبة

مثلأ 


executeCommandHandler ( "time" ) -- خطأ
executeCommandHandler ( "report" ) -- صح 

إن شاء الله وصلت المعلومة .

لو تحط اوامر اللعبة الممنوعة .. كنت بتفيد اكثر , علعموم شكراً على المشاركة

24 minutes ago, #,+( _xiRoc[K]; > said:

وعليكم السلام

الفكرة حلوة :D

لكن اتوقع ان القسم غلط o.O

لاتنسى في نصور الذيب ينقل الموضوع بلمحة ,,

 

 

loadBrowserURL

اذا حطيت رابط غير محمي او ماعنده شهادة امان , او بدقة 
ماهو https:

الفنكشن ماراح يشتغل معك الا بحالة ان كانت الملفات داخل المود راح يشتغل الفنكشن معك

توضيح اكثر : 

 

loadBrowserURL ( browser, "http://www.lolnexus.com" ) -- خطأ
loadBrowserURL ( browser, "https://www.youtube.com" ) -- صح
loadBrowserURL ( browser, "http://mta/"..getResourceName( getThisResource () ) .. "/index.html" ) -- صح
--- ^^ للي مايعرف ثالث واحدة تستخدم عشان تفتح ملفات داخل السيرفر عن طريق اسم المود


 

Edited by iMr.WiFi..!
  • Like 2
Link to comment

مايصير تسوي تريقر للكلنت مباشرة اذا استخدمت فنشكن

'onResourceStart'

 

مثال :

-- #Server Side :

addEventHandler ( "onResourceStart", root, function ( )
for i, v in ipairs ( getElementsByType ( "player" ) ) do
triggerClientEvent ( "outtt", v )
	end
end )

-- #Client Side :

addEvent  ( "outtt", true )

addEventHandler ( "outtt", root, function (	)
outputChatBox ( "Test" )
end )

 

بيطلع في الدي بق :

 

ERROR : Server triggered clientside event outtt, but event is not added clientside

  • Like 2
Link to comment

عندي ملعومات وايد لك باختار لكم الاسهل

اذا كان اول ارقمنت هو جدول او ستنرق يمكنك استدعائها بدون اقواس مثال

print "Hello World"
print(unpack{1, 2, 3))
print{1, 2}
-- =
print("Hello World")
print(unpack({1, 2, 3}))
print({1, 2})

مع وظائف السترنق oopيمكنك استخدام ال

مثال

local s = "123"
print(s:len())
print(s:sub(2))

function string.prepend(s, s2)
	return s2..s
end

print(s:prepend("0")) -- 0123
-- or
print(string.prepend(s, "0")) -- 0123

 

  • Like 3
Link to comment
13 minutes ago, </Mr.Tn6eL> said:

عندي ملعومات وايد لك باختار لكم الاسهل

اذا كان اول ارقمنت هو جدول او ستنرق يمكنك استدعائها بدون اقواس مثال


print "Hello World"
print(unpack{1, 2, 3))
print{1, 2}
-- =
print("Hello World")
print(unpack({1, 2, 3}))
print({1, 2})

مع وظائف السترنق oopيمكنك استخدام ال

مثال


local s = "123"
print(s:len())
print(s:sub(2))

function string.prepend(s, s2)
	return s2..s
end

print(s:prepend("0")) -- 0123
-- or
print(string.prepend(s, "0")) -- 0123

 

في غلطه بسيطه

  1. print(unpack{1, 2, 3))

مسكر التيبل بطريقه خطا +_+

لكن معلومات مفيده

 

  • Like 1
Link to comment

في معلومة نادر ما أحد يعرفها عن Meta Tables 

والي هي self

مثال :

Spoiler

function aWifi:OutPut ( )
  print (self);
end

("DD"):OutPut ( )

--[[
بيطلع بالديبق :
DD
]]

 

مثال اخر

Spoiler

i = 0;
function aWifi:OutPut ( )
  i = i + 1;
  print ( self.."_"..i );
  
end

("DD"):OutPut ( )
("BB"):OutPut ( )

--[[
بيطلع بالديبق :
DD_1
BB_2
]]

 

أتمنى من كل واحد يطرح معلوماته ويشاركه حيث يستفيد الكل 

Edited by !#NssoR_)
Modifed as requested.
Link to comment
2 hours ago, </Mr.Tn6eL> said:

امثلتك كلها غلط

print self; -- مايمديك تسوي كذا يجيك سينتاكس ايرور

ونفس الشي مع

"DD":OutPut ( )

لازم تحط السترنق بين اقواس

("DD"):OutPut()

غريبة لانه قد زبط معي .. علعموم 
@!#NssoR_)
أتمنى تعدل المثال الاول الى :
 

function aWifi:OutPut ( )
  print (self);
end

("DD"):OutPut ( )

--[[
بيطلع بالديبق :
DD
]]

والمثال الثاني الى :
 

i = 0;
function aWifi:OutPut ( )
  i = i + 1;
  print ( self.."_"..i );
  
end

("DD"):OutPut ( )
("BB"):OutPut ( )

--[[
بيطلع بالديبق :
DD_1
BB_2
]]

 

==

مشكور تنطيل على التنبيه : )

  • Like 2
Link to comment

false اخر كود المفروض يكون كذا، عشان ما يفشل التحقق مع قيم ال

function _pairs(table)
    return function(table, index)
        index = index + 1
        local value = table[index]
        if value ~= nil then
            return index
        end
    end, table, 0
end

 

  • Like 3
Link to comment

هل تعلم ان الحوت ؟....

امزح امزح :P

فيه حركة لو تبي تكتب مثلا سترنق طويل وفيه مسافات من اف8 ولا عبر " / " 

لو تسويه بدون الحركة ذي بياخد اول كلمة بس

مثال :

function sTeamName(thePlayer, cmdName, TeamNumber, newTeam )
local playerAccount = getPlayerAccount(thePlayer)
local playerAccName = getAccountName(playerAccount)

	if isObjectInACLGroup ("user."..playerAccName, aclGetGroup("Admin") ) then
		if TeamNumber == "1" then
		homeName = newTeam
			setTeamName ( team[1], homeName )
		triggerClientEvent(thePlayer, "updateNameS1", getRootElement(), homeName )

			outputChatBox ("You have successfully changed the team name to ".. homeName, thePlayer)
		elseif  TeamNumber == "2" then
		enemyName = newTeam
			setTeamName ( team[2], enemyName )
		triggerClientEvent(thePlayer, "updateNameS2", getRootElement(), enemyName )

			outputChatBox ("You have successfully changed the team name to ".. enemyName, thePlayer)
		end
	else
	outputChatBox("You don't have rights !", thePlayer)

	end
end

addCommandHandler("stn", sTeamName)

لو تكتب مثلا في اف 8 

: stn 1 hey there guys

بياخد hey ويسحب على الباقي

ف لذلك عوض ما تحط 8465 أرقمنت للكلمات

نستعمل 

...

xD

function sTeamName(thePlayer, cmdName, TeamNumber, ... )
local playerAccount = getPlayerAccount(thePlayer)
local playerAccName = getAccountName(playerAccount)

	if isObjectInACLGroup ("user."..playerAccName, aclGetGroup("Admin") ) then
		if TeamNumber == "1" then
		homeName = table.concat( {...}, " " )
			setTeamName ( team[1], homeName )
		triggerClientEvent(thePlayer, "updateNameS1", getRootElement(), homeName )

			outputChatBox ("You have successfully changed the team name to ".. homeName, thePlayer)
		elseif  TeamNumber == "2" then
		enemyName = table.concat( {...}, " " )
			setTeamName ( team[2], enemyName )
		triggerClientEvent(thePlayer, "updateNameS2", getRootElement(), enemyName )

			outputChatBox ("You have successfully changed the team name to ".. enemyName, thePlayer)
		end
	else
	outputChatBox("You don't have rights !", thePlayer)

	end
end

addCommandHandler("stn", sTeamName)

table.concat والفنكشن ذا عظيم

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

أتمنى الفكرة وصلت ,_, ما اعرف اشرح

  • Like 1
Link to comment
21 hours ago, coNolel said:

 

الأفضل تفهمها لهم بطريقة واضحة

... تعطيك الارقمنتات

print مثلا عندك وظيفة 

تقدر تسوي عدد لانهائي من الطباعات

print(1, 2, 3, 4, ...)

كيف ؟ باستخدام الثلاث النقاط هذي

ويكون عملها بالطريقة هذي

function myprint(...)
    local output = ""
    for k, v in ipairs({...}) do
        output = output..v.."\t"
    end
    return print(output)
end

myprint(1, 2, 3, 4)

بعض الامثلة للتوضيح

function abc(x, ...)
    if x == 1 then
        return print(...)
    end
end

abc(1, 2, 3) -- 2, 3
function add_to_x(x, ...)
	local sum = x
	for k, v in ipairs({...}) do
		sum = sum+v
	end
	return sum
end

print(add_to_x(10, 5, 5, 4, 6)) -- 10+5+5+4+6 = 30

select مثلا تقدر تستخدمها مع 

function get_number_2_of_args(...)
    return select(2, ...)
end

print(get_number_2_of_args("foo", "bar")) -- bar

مثلا تقدر تعرف متغير عليها

function declare_xyz_as(...)
    x, y, z = ...
end

declare_xyz_as(1, 2, 3, 4)
print(x, y, z) -- لاننا حددنا ثلاث متغيرات للتعريف لذا 4 لن تتعرف

وتقدر تتحقق من عدد الارقمنات بالفنكشن معها

i

function print_yes_if_arg_count_eq_3(...)
	if #{...} == 3 then
		print("yes")
	end
end

print_yes_if_arg_count_eq_3(1, 2, 3)

 

  • Like 2
Link to comment
  • 1 month later...
On ٢١‏/٧‏/٢٠١٧ at 14:17, Ahmed_Negm said:

تصدق لسا فاهم معني

loadString

و 

unpack

وشكرآ لك انت مفيد وخوادمك ايضآ

اعتذر مالاحظت ردك 
loadString تكتب الاكواد على شكل سترنق 
 

loadString  ( "print ( 'd' ) " )

فيها فوائد اخرى بس عطيتك مثال بسيط

اما بنسبة ل unpack

من اسمها واضح

تفك القيم من الجدول كأنها تشيل القوسين المعوجين

 {}

local x,y,z = unpack ( { 1, 2, 3 } )
-- Result :
local x,y,z = 1, 2, 3

-- Another Example
local NumberTable = { 4, 5, 6 }
local x,y,z = unpack ( NumberTable )

-- Result :
local x,y,z = 4, 5, 6

-- Last Example :
local NumberTable = { 42, 51, 46 }
local x,y,z = unpack ( NumberTable )
print ( x..","..y..",".. z )
-- Result :
"42, 51, 46"

 

  • Like 1
Link to comment
On 11/09/2017 at 17:59, iMr.WiFi..! said:

اعتذر مالاحظت ردك 
loadString تكتب الاكواد على شكل سترنق 
 


loadString  ( "print ( 'd' ) " )

فيها فوائد اخرى بس عطيتك مثال بسيط

اما بنسبة ل unpack

من اسمها واضح

تفك القيم من الجدول كأنها تشيل القوسين المعوجين

 {}


local x,y,z = unpack ( { 1, 2, 3 } )
-- Result :
local x,y,z = 1, 2, 3

-- Another Example
local NumberTable = { 4, 5, 6 }
local x,y,z = unpack ( NumberTable )

-- Result :
local x,y,z = 4, 5, 6

-- Last Example :
local NumberTable = { 42, 51, 46 }
local x,y,z = unpack ( NumberTable )
print ( x..","..y..",".. z )
-- Result :
"42, 51, 46"

 

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

Link to comment
1 minute ago, WTF_ said:

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

Tables = { { 1,5 }, { 2,6 } } -- نسوي جدول ثم نسوي جدول داخله قيمتين فيها رقمين 
local NumberTable, NumberTable2 = unpack ( Tables ) -- نفك الجدول الي داخل جدول Tables
-- Result :
local NumberTable, NumberTable2 = { 1,5 }, { 2,6 } -- النتيجة
local number1,number5,number2,number6 = unpack ( NumberTable ), unpack ( NumberTable2 ) -- نفك الجداول ونحط الارقام الي فيها
-- Result :
local number1,number5,number2,number6 = 1,5,2,6 -- النتيجة
print ( number1,number5,number2,number6 )
-- Result :
"1 5 2 6"

عفوا في الخدمة : )

Link to comment
6 minutes ago, iMr.WiFi..! said:

Tables = { { 1,5 }, { 2,6 } } -- نسوي جدول ثم نسوي جدول داخله قيمتين فيها رقمين 
local NumberTable, NumberTable2 = unpack ( Tables ) -- نفك الجدول الي داخل جدول Tables
-- Result :
local NumberTable, NumberTable2 = { 1,5 }, { 2,6 } -- النتيجة
local number1,number5,number2,number6 = unpack ( NumberTable ), unpack ( NumberTable2 ) -- نفك الجداول ونحط الارقام الي فيها
-- Result :
local number1,number5,number2,number6 = 1,5,2,6 -- النتيجة
print ( number1,number5,number2,number6 )
-- Result :
"1 5 2 6"

عفوا في الخدمة : )

أخوي تسلم والله فهمتك وكفو عليك أخوي بس سأل بسيط 

local goku = unpack(weeb[math.random(#weeb)])

شفت ال #

ليش اسويها وهل أقدر أحذفها ؟ وشكرااا لك والله كفو عليك أخوي 

وكمان وش وضيفة 

ipairs

وتسلم يا الحب 

Edited by WTF_
Link to comment
On ١٣‏/٧‏/٢٠١٧ at 02:45, Abdul KariM said:

موب بس التيبلات حتى السترنق 

يجيب لك طول السلسلة مثال


myName = "Abdul_KariM"

print ( #myName )

مثال ثاني


myName = getPlayerName ( localPlayer )

outputChatBox ( #myName )

هذا راح يجيب طول اسمك

 

On ١٣‏/٧‏/٢٠١٧ at 01:12, !#NssoR_) said:

وعليكم السلام و الرحمة
وظيفتها تقوم بتحويل التيبل الي عدد

مثال


TestTable = { 1,2,3,4,5,6 }

outputChatBox(#TestTable,root) -- سيظهر لنا رقم 6 لأن هنالك 6 قيم داخل التيبل

 

مثال اخر


TestTable = { 111,222,333 }

outputChatBox(#TestTable,root) -- سيظهر لنا رقم 3 لأن هنالك 3 قيم داخل التيبل

 

مثال اخير


local newcolshape = createColSphere ( 1, 2, 3, 4 ) -- نقوم بإنشاء كول شيب
local players = getElementsWithinColShape ( newcolshape, "player" ) -- هذا الفنكشن سيحضر جميع اللاعبين المتواجدين في الكول شيب ويضعهم في تيبل
outputChatBox(#players,root) -- والان نحول التيبل الي عدد لإظهار هذا العدد في الشات


هذا والله اعلم

 

Link to comment
  • 1 year later...

من احد أهم الوظائف, ولكن للأسف الكثير منا يجهلها الا وهي:
 

addDebugHook

 

 

  • تسنح هذه الوظيفة لك بالإمكانية معرفة عند استخدام الوظيفة الفلانية في اي مود كان.
  • وتسمح لك بمعرفة الاحداث التي استخدمت بأي مود كان 
  • يمكنك تخطي الأحداث والوظائف باسترجاع قيمة skip







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

 

addDebugHook( "preFunction", onPreFunction, {"createVehicle"} )
function onPreFunction( _, _, _, _, _, ... )
  	local args = { ... }
	if( args[1] == 411 )then
    		return "skip"
	end
end

النتيجة: 

سيتم الغاء اي محاولة لصنع سيارة بالأيدي 411, والتي هي الأنفرس

 

  • Like 2
  • Thanks 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...