Jump to content

سؤال #


Recommended Posts

سسلام عليكم

كل عام وانتم بخير#

شباب أبي اعرف كيف اخلي رتب تفكك الميوت

ورتب لا

أبي رد بعد اذنكم

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

تعدل على الرتب من الاسل

مثلاأ

"command.mute" access="true">

تخليها ترو عشان يقدر يصك ميوت

"command.unmute" access="false">

وخلي ذي فيلس مايقدر يفك ميوت

اعتقد كذا

Link to comment
أستبدل ملف أدمن سيرفر بالأكواد ذي

وسطر 25 تحط الرتب اللي تبيها تفك الميوت

--[[********************************** 
*
*   Multi Theft Auto - Admin Panel
*
*   admin_server.lua
*
*   Original File by lil_Toady
*
**************************************]]
 
_root = getRootElement()
_types = { "player", "team", "vehicle", "resource", "bans", "server", "admin" }
_settings = nil
 
aPlayers = {}
aLogMessages = {}
aInteriors = {}
aStats = {}
aReports = {}
aWeathers = {}
aNickChangeTime = {}
 
local aUnmuteTimerList = {}
 
Groups = {
"Admin",
}
 
function notifyPlayerLoggedIn(player)
    outputChatBox ( "Press 'p' to open your admin panel", player )
    local unread = 0
    for _, msg in ipairs ( aReports ) do
        unread = unread + ( msg.read and 0 or 1 )
    end
    if unread > 0 then
        outputChatBox( unread .. " unread Admin message" .. ( unread==1 and "" or "s" ), player, 255, 0, 0 )
    end
end
 
addEventHandler ( "onResourceStart", _root, function ( resource )
    if ( resource ~= getThisResource() ) then
        for id, player in ipairs(getElementsByType("player")) do
            if ( hasObjectPermissionTo ( player, "general.tab_resources" ) ) then
                triggerClientEvent ( player, "aClientResourceStart", _root, getResourceName ( resource ) )
            end
        end
        return
    end
    _settings = xmlLoadFile ( "conf\\settings.xml" )
    if ( not _settings ) then
        _settings = xmlCreateFile ( "conf\\settings.xml", "main" )
        xmlSaveFile ( _settings )
    end
    aSetupACL()
    aSetupCommands()
    for id, player in ipairs ( getElementsByType ( "player" ) ) do
        aPlayerInitialize ( player )
        if ( hasObjectPermissionTo ( player, "general.adminpanel" ) ) then
            notifyPlayerLoggedIn(player)
        end
    end
    local node = xmlLoadFile ( "conf\\interiors.xml" )
    if ( node ) then
        local interiors = 0
        while ( xmlFindChild ( node, "interior", interiors ) ) do
            local interior = xmlFindChild ( node, "interior", interiors )
            interiors = interiors + 1
            aInteriors[interiors] = {}
            aInteriors[interiors]["world"] = tonumber ( xmlNodeGetAttribute ( interior, "world" ) )
            aInteriors[interiors]["id"] = xmlNodeGetAttribute ( interior, "id" )
            aInteriors[interiors]["x"] = xmlNodeGetAttribute ( interior, "posX" )
            aInteriors[interiors]["y"] = xmlNodeGetAttribute ( interior, "posY" )
            aInteriors[interiors]["z"] = xmlNodeGetAttribute ( interior, "posZ" )
            aInteriors[interiors]["r"] = xmlNodeGetAttribute ( interior, "rot" )
        end
        xmlUnloadFile ( node )
    end
    local node = xmlLoadFile ( "conf\\stats.xml" )
    if ( node ) then
        local stats = 0
        while ( xmlFindChild ( node, "stat", stats ) ) do
            local stat = xmlFindChild ( node, "stat", stats )
            local id = tonumber ( xmlNodeGetAttribute ( stat, "id" ) )
            local name = xmlNodeGetAttribute ( stat, "name" )
            aStats[id] = name
            stats = stats + 1
        end
        xmlUnloadFile ( node )
    end
    local node = xmlLoadFile ( "conf\\weathers.xml" )
    if ( node ) then
        local weathers = 0
        while ( xmlFindChild ( node, "weather", weathers ) ~= false ) do
        local weather = xmlFindChild ( node, "weather", weathers )
            local id = tonumber ( xmlNodeGetAttribute ( weather, "id" ) )
            local name = xmlNodeGetAttribute ( weather, "name" )
            aWeathers[id] = name
            weathers = weathers + 1
        end
        xmlUnloadFile ( node )
    end
    local node = xmlLoadFile ( "conf\\reports.xml" )
    if ( node ) then
        local messages = 0
        while ( xmlFindChild ( node, "message", messages ) ) do
            subnode = xmlFindChild ( node, "message", messages )
            local author = xmlFindChild ( subnode, "author", 0 )
            local subject = xmlFindChild ( subnode, "subject", 0 )
            local category = xmlFindChild ( subnode, "category", 0 )
            local text = xmlFindChild ( subnode, "text", 0 )
            local time = xmlFindChild ( subnode, "time", 0 )
            local read = ( xmlFindChild ( subnode, "read", 0 ) ~= false )
            local id = #aReports + 1
            aReports[id] = {}
            if ( author ) then aReports[id].author = xmlNodeGetValue ( author )
            else aReports[id].author = "" end
            if ( category ) then aReports[id].category = xmlNodeGetValue ( category )
            else aReports[id].category = "" end
            if ( subject ) then aReports[id].subject = xmlNodeGetValue ( subject )
            else aReports[id].subject = "" end
            if ( text ) then aReports[id].text = xmlNodeGetValue ( text )
            else aReports[id].text = "" end
            if ( time ) then aReports[id].time = xmlNodeGetValue ( time )
            else aReports[id].time = "" end
            aReports[id].read = read
            messages = messages + 1
        end
        -- Remove duplicates
        local a = 1
        while a <= #aReports do
            local b = a + 1
            while b <= #aReports do
                if table.cmp( aReports[a], aReports[b] ) then
                    table.remove( aReports, b )
                    b = b - 1
                end
                b = b + 1
            end
            a = a + 1
        end
        -- Upgrade time from '4/9 5:9' to '2009-09-04 05:09'
        for id, rep in ipairs ( aReports ) do
            if string.find( rep.time, "/" ) then
                local monthday, month, hour, minute = string.match( rep.time, "^(.-)/(.-) (.-).-)$" )
                rep.time = string.format( '%04d-%02d-%02d %02d:%02d', 2009, month + 1, monthday, hour, minute )
            end
        end
        -- Sort messages by time
        table.sort(aReports, function(a,b) return(a.time < b.time) end)
        -- Limit number of messages
        while #aReports > g_Prefs.maxmsgs do
            table.remove( aReports, 1 )
        end
        xmlUnloadFile ( node )
    end
    local node = xmlLoadFile ( "conf\\messages.xml" )
    if ( node ) then
        for id, type in ipairs ( _types ) do
            local subnode = xmlFindChild ( node, type, 0 )
            if ( subnode ) then
                aLogMessages[type] = {}
                local groups = 0
                while ( xmlFindChild ( subnode, "group", groups ) ) do
                    local group = xmlFindChild ( subnode, "group", groups )
                    local action = xmlNodeGetAttribute ( group, "action" )
                    local r = tonumber ( xmlNodeGetAttribute ( group, "r" ) )
                    local g = tonumber ( xmlNodeGetAttribute ( group, "g" ) )
                    local b = tonumber ( xmlNodeGetAttribute ( group, "b" ) )
                    aLogMessages[type][action] = {}
                    aLogMessages[type][action]["r"] = r or 0
                    aLogMessages[type][action]["g"] = g or 255
                    aLogMessages[type][action]["b"] = b or 0
                    if ( xmlFindChild ( group, "all", 0 ) ) then aLogMessages[type][action]["all"] = xmlNodeGetValue ( xmlFindChild ( group, "all", 0 ) ) end
                    if ( xmlFindChild ( group, "admin", 0 ) ) then aLogMessages[type][action]["admin"] = xmlNodeGetValue ( xmlFindChild ( group, "admin", 0 ) ) end
                    if ( xmlFindChild ( group, "player", 0 ) ) then aLogMessages[type][action]["player"] = xmlNodeGetValue ( xmlFindChild ( group, "player", 0 ) ) end
                    if ( xmlFindChild ( group, "log", 0 ) ) then aLogMessages[type][action]["log"] = xmlNodeGetValue ( xmlFindChild ( group, "log", 0 ) ) end
                    groups = groups + 1
                end
            end
        end
        xmlUnloadFile ( node )
    end
end )
 
addEventHandler ( "onResourceStop", _root, function ( resource )
    -- Incase the resource being stopped has been deleted
    local stillExists = false
    for i, res in ipairs(getResources()) do
        if res == resource then
            stillExists = true
            break
        end
    end
    if not stillExists then return end
   
    if ( resource ~= getThisResource() ) then
        for id, player in ipairs(getElementsByType("player")) do
            if ( hasObjectPermissionTo ( player, "general.tab_resources" ) ) then
                triggerClientEvent ( player, "aClientResourceStop", _root, getResourceName ( resource ) )
            end
        end
    else
        local node = xmlLoadFile ( "conf\\reports.xml" )
        if ( node ) then
            while ( xmlFindChild ( node, "message", 0 ) ~= false ) do
                local subnode = xmlFindChild ( node, "message", 0 )
                xmlDestroyNode ( subnode )
            end
        else
            node = xmlCreateFile ( "conf\\reports.xml", "messages" )
        end
        for id, message in ipairs ( aReports ) do
            local subnode = xmlCreateChild ( node, "message" )
            for key, value in pairs ( message ) do
                if ( value ) then
                    xmlNodeSetValue ( xmlCreateChild ( subnode, key ), tostring ( value ) )
                end
            end
        end
        xmlSaveFile ( node )
        xmlUnloadFile ( node )
       
        -- Unmute anybody muted by admin
        for i, player in ipairs(getElementsByType("player")) do
            local serial = getPlayerSerial( player )
            if (aUnmuteTimerList[serial]) then
                aUnmuteTimerList[serial] = nil
                setPlayerMuted(player, false)
            end
        end
    end
    aclSave ()
end )
 
function aGetSetting ( setting )
    local result = xmlFindChild ( _settings, tostring ( setting ), 0 )
    if ( result ) then
        result = xmlNodeGetValue ( result )
        if ( result == "true" ) then return true
        elseif ( result == "false" ) then return false
        else return result end
    end
    return false
end
 
function aSetSetting ( setting, value )
    local node = xmlFindChild ( _settings, tostring ( setting ), 0 )
    if ( not node ) then
        node =
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...