Jump to content

طلب


Recommended Posts

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

اليوم ابي منكم كيف اخلي لوحة تفتح بزر بشرط انو يكون معه رتبة انا احددها انا بس ابي الفنكشنات ورح احاول اسويها اذاما عرفت ارجع واخبركم لانيما ابي اقلكم ابي كود جاهز ابي انا اسويه عشان احس بالتعب وبالاخر يطلع شي حلو بالنسبة لي لاني انا سويته بدون مساعدة احد وشكرا :fadein::fadein::fadein:8)8)

Link to comment
  • Other Languages Moderators

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

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

بالنسبة إلى سؤالك

فيه طريقتين

الأولى:

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

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
  • Other Languages Moderators

بأمكانك استخدام اي اسم للألمنت داتا

كـ مثال 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

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