The moVer Posted March 27, 2015 Share Posted March 27, 2015 السلام عليكم ورحمة الله وبركاتة اليوم ابي منكم كيف اخلي لوحة تفتح بزر بشرط انو يكون معه رتبة انا احددها انا بس ابي الفنكشنات ورح احاول اسويها اذاما عرفت ارجع واخبركم لانيما ابي اقلكم ابي كود جاهز ابي انا اسويه عشان احس بالتعب وبالاخر يطلع شي حلو بالنسبة لي لاني انا سويته بدون مساعدة احد وشكرا Link to comment
TAPL Posted March 27, 2015 Share Posted March 27, 2015 و عليكم السلام ورحمة الله وبركاتة أت حاط الموضوع في قسم دروس البرمجة، هنا للدروس فقط بالنسبة إلى سؤالك فيه طريقتين الأولى: لما يضغط على الزر يسوي تريقر للسيرفر و يتحقق ان اللاعب عنده الرتبة بعدها يسوي تريقر ثاني للكلينت و يفتح اللوحة bindKey("F2", "down", function() triggerServerEvent("xxx", localPlayer) end) addEvent("openWnd", true) addEventHandler("openWnd", root, function() guiSetVisible(wnd, true) showCursor(true) end) addEvent("xxx", true) addEventHandler("xxx", root, function() local accName = getAccountName(getPlayerAccount(client)) if isObjectInACLGroup("user."..accName, aclGetGroup("Admin")) then triggerClientEvent(client, "openWnd", client) end end) الثانية: عن طريق استخدام الألمنت داتا تحط الألمنت داتا اول ما تشغل المود لكل الي عندهم الرتبة + تحط الألمنت داتا لما لاعب يسجل دخول و عنده الرتبة bindKey("F2", "down", function() if getElementData(localPlayer, "isAdmin") then guiSetVisible(wnd, true) showCursor(true) end end) addEventHandler("onPlayerLogin", root, function(_, account) local accName = getAccountName(account) if isObjectInACLGroup("user."..accName, aclGetGroup("Admin")) then setElementData(source, "isAdmin", true) else setElementData(source, "isAdmin", false) end end) addEventHandler("onResourceStart", resourceRoot, function() for i, player in ipairs(getElementsByType("player")) do local accName = getAccountName(getPlayerAccount(player)) if isObjectInACLGroup("user."..accName, aclGetGroup("Admin")) then setElementData(player, "isAdmin", true) else setElementData(player, "isAdmin", false) end end end) الخلاصة: بالطريقة الأولى: راح تحتاج تسوي تريقر كل مره تضغط على الزر مما يعني ان اللوحة راح تتأخر عشان تفتح على حسب البنق بالطريقة الثانية: راح تحط الألمنت داتا اول ما تشغل المود لكل الي عندهم الرتبة + راح تحط الألمنت داتا لما لاعب عنده الرتبة يسجل دخول بالكلينت اول ما تضغط الزر راح يتحقق ان كان اللاعب عنده الألمنت داتا و راح يفتح اللوحة على طول بدون تأخير ينقل إلى قسم البرمجة Link to comment
The moVer Posted March 28, 2015 Author Share Posted March 28, 2015 شكرا تابل ما قصرت بس اتوقع انو الطريقة الثانية اذا دخل ادمن وسحبت الادمن تضل الخاصية فتح اللوحة موجود صح ؟؟ Link to comment
TAPL Posted March 28, 2015 Share Posted March 28, 2015 صحيح، بتحتاج تسحب الداتا لما تسحب الرتبة Link to comment
The moVer Posted March 28, 2015 Author Share Posted March 28, 2015 شكرااا ما قصرت جزاك الله خير Link to comment
The moVer Posted March 28, 2015 Author Share Posted March 28, 2015 بس في كمان سؤال اذا انا كونسل مو ادمن ما اقدر افتحها اقدر ازيد if isObjectInACLGroup("user."..accName, aclGetGroup("Admin")) then setElementData(player, "isAdmin", true) كمان مرة؟؟ Link to comment
TAPL Posted March 28, 2015 Share Posted March 28, 2015 بأمكانك استخدام اي اسم للألمنت داتا كـ مثال isAdmin انا استخدمت نفس اسم الداتا تقدر تستخدمه + or إذا تبي اكثر من رتبة تفتح اللوحة تقدر تستخدم جدول مع لوب او تستخدم بأستخدام الجدول: groupsTable = {"Admin", "Console"} for i, group in ipairs(groupsTable) do if isObjectInACLGroup("user."..accName, aclGetGroup(group)) then setElementData(player, "isAdmin", true) return end end or بأستخدام: if isObjectInACLGroup("user."..accName, aclGetGroup("Admin")) or isObjectInACLGroup("user."..accName, aclGetGroup("Console")) then setElementData(player, "isAdmin", true) end Link to comment
The moVer Posted March 28, 2015 Author Share Posted March 28, 2015 شكرا والله انك احسن مبرمج بالعالم 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