Jump to content

= [ طلب فانكشن = [ طلب


Recommended Posts

 

table -- سوي جدول و حط فيه السريلات

-- سوي مثلا وظيفة تجيب لو سريال اللاعب في الجدول مثال

function isPlayerSerialInTable(player, Table)

for _,Serials in ipairs(Table) do

if getPlayerSerial(player) == Serials then

return true

end

end

end

setTimer -- نسوي تايمر 

getPlayersInGroup
-- تجيب اللاعبين الي في جروب كونسال هيك
local Players = getPlayersInGroup("Console")
-- تسوي لوب لهم
for _,players in ipairs(Players) do
-- تتحقق لو اللاعب سريالو مو موجود في الجدول
if not isPlayerSerialInTable(players, table) then
-- لو هيك تسوي
aclGroupRemoveObject
 -- و تنهي التايمر و

 

getPlayersInGroup

اتمني تكون استفدت شي

Edited by x1AhMeD,-09
Link to comment
40 minutes ago, x1AhMeD,-09 said:

 


table -- سوي جدول و حط فيه السريلات

-- سوي مثلا وظيفة تجيب لو سريال اللاعب في الجدول مثال

function isPlayerSerialInTable(player, Table)

for _,Serials in ipairs(Table) do

if getPlayerSerial(player) == Serials then

return true

end

end

end

setTimer -- نسوي تايمر 

getPlayersInGroup
-- تجيب اللاعبين الي في جروب كونسال هيك
local Players = getPlayersInGroup("Console")
-- تسوي لوب لهم
for _,players in ipairs(Players) do
-- تتحقق لو اللاعب سريالو مو موجود في الجدول
if not isPlayerSerialInTable(players, table) then
-- لو هيك تسوي
aclGroupRemoveObject
 -- و تنهي التايمر و


 

getPlayersInGroup

اتمني تكون استفدت شي

التايمر بالسيرفر سايد راح يكون للكل , ف كيف تنهيه كذا راح الوظيفة ماتشتغل بعد اول واحد يدخل قروب كونسل ولا يكون في التيبلات 

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

فـ عشان كذا عدل على لوحة الادمنية , واذا كان عندك سكربت يرقي برضوا عدل عليه 

افضل من التايمر , بالتوفيق ان شاء الله

Link to comment

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

وتحتاج هذه الوظائف

setTimer  -- تايمر للتحقق تكراراً ومراراً
aclGetGroup -- يجيب القروب من الاسم
aclGroupListObjects -- يجيب جميع الاوبجكتات بالجدول
aclGroupRemoveObject -- نقوم بحذف الاوبجكت(الحساب) التي لم نجدها بالجدول المذكور
-- يكون الجدول للحسابات المسموح لها هكذا
t = {
	["اسم الحساب"] = true,
	["اسم الحساب الثاني"] = true,
  	-- ["اسم الحساب الثالث"] = true,
  	-- يتم التكرار على هذا المنوال كل الحسابات المسموح لها
}

-- ويكون التحقق من وجود الحساب بالجدول هكذا
if t["اسم الحساب"] then
	-- موجود
else
  	-- غير موجود
end

الطريقة عمليا كالآتي

  1. وضع تايمر لانهائي للتحقق على حسب الوقت المدخل
  2. نجي جميع الاوبجكتات بالجدول
  3. نتحقق انها ليست موجودة في جدول الحسابات المسموح لها
  4. نحذفها اذاكانت ليست موجودة في جدول الحسابات المسموح لها
Link to comment
Just now, </Mr.Tn6eL> said:

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

وتحتاج هذه الوظائف


setTimer  -- تايمر للتحقق تكراراً ومراراً
aclGetGroup -- يجيب القروب من الاسم
aclGroupListObjects -- يجيب جميع الاوبجكتات بالجدول
aclGroupRemoveObject -- نقوم بحذف الاوبجكت(الحساب) التي لم نجدها بالجدول المذكور
-- يكون الجدول للحسابات المسموح لها هكذا
t = {
	["اسم الحساب"] = true,
	["اسم الحساب الثاني"] = true,
  	-- ["اسم الحساب الثالث"] = true,
  	-- يتم التكرار على هذا المنوال كل الحسابات المسموح لها
}

-- ويكون التحقق من وجود الحساب بالجدول هكذا
if t["اسم الحساب"] then
	-- موجود
else
  	-- غير موجود
end

الطريقة عمليا كالآتي

  1. وضع تايمر لانهائي للتحقق على حسب الوقت المدخل
  2. نجي جميع الاوبجكتات بالجدول
  3. نتحقق انها ليست موجودة في جدول الحسابات المسموح لها
  4. نحذفها اذاكانت ليست موجودة في جدول الحسابات المسموح لها

مشكور اخي

 

بس التآمير ليه استخدمه

Link to comment
Just now, said:

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

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

التايمر طبعا لا نهائي

جربت ذا و مازبط 

 


local accountName = { ---
["M-M"] = true
["S-S"] = true
}



local GropName = { ---
["Admin"] = true
["Counsol"] = true
}





setTimer(
function()
 
for _,v in ipairs(GropName) do -- لوب لـ اسماء القروبات
for objects,name in pairs(accountName)do -- لوب للحسابات
 local accName =  getPlayerAccount ( source ) -- نجيب حساب الاعب
 if isObjectInACLGroup ("user."..accName, aclGetGroup ( v ) ) then -- اذا  رتبته من الجدول
if accountName["accountName"] then --- يتحقق اذا الحساب موجود او لا

else -- اذا مو موجود
aclGroupRemoveObject (aclGetGroup(v), "user."..accName)
end
end
end
end, 1000, 0)

مو زابط جربته 

 

وش المشكله

Edited by back!_
Link to comment
33 minutes ago, back!_ said:

جربت ذا و مازبط 

 


local accountName = { ---["M-M"] = true["S-S"] = true}local GropName = { ---["Admin"] = true["Counsol"] = true}

setTimer(
function()
 
for _,v in ipairs(GropName) do -- لوب لـ اسماء القروبات
for objects,name in pairs(accountName)do -- لوب للحسابات
 local accName =  getPlayerAccount ( source ) -- نجيب حساب الاعب
 if isObjectInACLGroup ("user."..accName, aclGetGroup ( v ) ) then -- اذا  رتبته من الجدول
if accountName["accountName"] then --- يتحقق اذا الحساب موجود او لا

else -- اذا مو موجود
aclGroupRemoveObject (aclGetGroup(v), "user."..accName)
end
end
end
end, 1000, 0)

مو زابط جربته 

 

وش المشكله

عندك اغلاط كثير

local accountName = { ---["M-M"] = true["S-S"] = true}

هنا احذف --- وضع فاصلة بين  القيم

local GropName = { ---
["Admin"] = true
["Counsol"] = true
}

ضع فواصل بين القيم

for _,v in ipairs(GropName) do -- لوب لـ اسماء القروبات

هنا عدلها الى pairs

وتصير  كذا

for v in pairs(GropName) do -- لوب لـ اسماء القروبات

 

 local accName =  getPlayerAccount ( source ) -- نجيب حساب الاعب

مايجيب اسم حساب الاعب يجيب الحساب

و السورس غير معرف

استخدم getAccountName

 if isObjectInACLGroup ("user."..accName, aclGetGroup ( v ) ) then -- اذا  رتبته من الجدول

اذا صلحت الاخطاء فوق يتصح ذا السطر

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

 

Link to comment
local accountName = {
	["M-M"] = true,
	["S-S"] = true,
	["Console"] = true
}

local GropName = {
	["Admin"] = true,
	["Console"] = true
}

setTimer(function()
	for gName in pairs(GropName) do
		local group = aclGetGroup(gName)
		if group then
			local oList = aclGroupListObjects(group)
			for i, oValue in ipairs(oList) do
				local sValue = split(oValue, ".")
				if sValue[1] == "user" and not accountName[sValue[2]] then
					aclGroupRemoveObject(group, oValue)
				end
			end
		end
	end
end, 2500, 0)

 

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...