iMr ~ MnHmAr Posted September 7, 2016 Share Posted September 7, 2016 آريد فانكشنات ابي لما احد يرقي نفسه ككونسل تنسحب ممنه ابي يعني بي سريالات يعني لو سرياله مو موجود في جدول يكنسل الحدث ويسحبها ^^ Link to comment
Ja[B]er[X]Pro Posted September 7, 2016 Share Posted September 7, 2016 aclGroupRemoveObject isObjectInAclGroup getPlayerSerial KickPlayer "onPlayerLogin" سوي لما الاعب يسجل دخول ان كان معه كونسل وسيرياله ما من السيريالات المضافة تنمسح رتبته ويأخد كيك Link to comment
SycroX Posted September 7, 2016 Share Posted September 7, 2016 (edited) 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 September 7, 2016 by x1AhMeD,-09 Link to comment
Abdul KariM Posted September 7, 2016 Share Posted September 7, 2016 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
</Mr.Tn6eL> Posted September 7, 2016 Share Posted September 7, 2016 بما ان الهدف من الموضوع حماية القروب من وضع حسابات اضافية اقترح عليك بدال ماتحط سيريالات في جدول تحط اسماء الحسابات اللي تبغاها بالكونسل فقط وتحتاج هذه الوظائف setTimer -- تايمر للتحقق تكراراً ومراراً aclGetGroup -- يجيب القروب من الاسم aclGroupListObjects -- يجيب جميع الاوبجكتات بالجدول aclGroupRemoveObject -- نقوم بحذف الاوبجكت(الحساب) التي لم نجدها بالجدول المذكور -- يكون الجدول للحسابات المسموح لها هكذا t = { ["اسم الحساب"] = true, ["اسم الحساب الثاني"] = true, -- ["اسم الحساب الثالث"] = true, -- يتم التكرار على هذا المنوال كل الحسابات المسموح لها } -- ويكون التحقق من وجود الحساب بالجدول هكذا if t["اسم الحساب"] then -- موجود else -- غير موجود end الطريقة عمليا كالآتي وضع تايمر لانهائي للتحقق على حسب الوقت المدخل نجي جميع الاوبجكتات بالجدول نتحقق انها ليست موجودة في جدول الحسابات المسموح لها نحذفها اذاكانت ليست موجودة في جدول الحسابات المسموح لها Link to comment
iMr ~ MnHmAr Posted September 7, 2016 Author Share Posted September 7, 2016 Just now, </Mr.Tn6eL> said: بما ان الهدف من الموضوع حماية القروب من وضع حسابات اضافية اقترح عليك بدال ماتحط سيريالات في جدول تحط اسماء الحسابات اللي تبغاها بالكونسل فقط وتحتاج هذه الوظائف setTimer -- تايمر للتحقق تكراراً ومراراً aclGetGroup -- يجيب القروب من الاسم aclGroupListObjects -- يجيب جميع الاوبجكتات بالجدول aclGroupRemoveObject -- نقوم بحذف الاوبجكت(الحساب) التي لم نجدها بالجدول المذكور -- يكون الجدول للحسابات المسموح لها هكذا t = { ["اسم الحساب"] = true, ["اسم الحساب الثاني"] = true, -- ["اسم الحساب الثالث"] = true, -- يتم التكرار على هذا المنوال كل الحسابات المسموح لها } -- ويكون التحقق من وجود الحساب بالجدول هكذا if t["اسم الحساب"] then -- موجود else -- غير موجود end الطريقة عمليا كالآتي وضع تايمر لانهائي للتحقق على حسب الوقت المدخل نجي جميع الاوبجكتات بالجدول نتحقق انها ليست موجودة في جدول الحسابات المسموح لها نحذفها اذاكانت ليست موجودة في جدول الحسابات المسموح لها مشكور اخي بس التآمير ليه استخدمه Link to comment
</Mr.Tn6eL> Posted September 7, 2016 Share Posted September 7, 2016 التايمر يتحقق اكثر من مرة على الوقت الي تحطه لو ماحطيت تايمر راح يتحقق مرة وحدة بس بعدها يسحب عليك التايمر طبعا لا نهائي Link to comment
iMr ~ MnHmAr Posted September 8, 2016 Author Share Posted September 8, 2016 (edited) 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 September 8, 2016 by back!_ Link to comment
</Mr.Tn6eL> Posted September 8, 2016 Share Posted September 8, 2016 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
TAPL Posted September 8, 2016 Share Posted September 8, 2016 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
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