Jump to content

saluta

Members
  • Posts

    120
  • Joined

  • Last visited

Posts posted by saluta

  1. 10 hours ago, The_GTA said:

    I personally appreciate your passion for the GTA franchise related to multiplayer gaming. People like you are big examples of engineering your ideas into reality. Without testing your promoted game installation, just by judging the download size I see that you are packing a lot of content! We as a community surely love people who put their time and passion into creating new content.

    I am not sure how your content lays out and how much of it is of sensitive nature. But I sure hope that you have taken the necessary protections and in turn act as a good example for the russian GTA modding communities. Sometimes you guys surely have a funny way of treating other people's contents! ?

    Greetings yes, i have my own game mode. National. Come play together.

  2. Greetings to all, dear sirs.  We present to you our National project with its national game mode.  Here you can be the president of your nation, speak the language of your nation.  Every corner of the map is a village, city, and the whole country.  You can capture other cities or villages of countries, but not capital cities.  In the gang system, if you are the head of a gang, then you are the president, the rest who join you are assistants or deputies of the president.

    The server currently has basic functions and systems.  Car system, businesses, license plates, tinting, tuning, banking, buying clothes and weapons, gang system and so on.  We are waiting for you on our project.  We will be glad to every person who joins us on the server and goes to our project.  Thank you for the attention.

    The project also needs lua, c ++, c # programmers.  We will be glad to all people who want to help.

     

    Spoiler

    spacer.png

    Our group on the VK social network: https://vk.com/nationalproject

    Our site, so far without a domain: http://46.175.146.74/

     

  3. Spoiler

    spacer.png

    Spoiler
    Hi, please help. server.lua
    I want to add a clock for thin to show the clock. And the time was taken from the host, I was told to add to the server side, I added, but errors come out.
    
    function UpdateTime() 
    	local GilroyMediumItalic = dxCreateFont("Gilroy-MediumItalic.ttf", 30)
    	local screenW,screenH = guiGetScreenSize()
    	local px,py = 1366,768
    	local x,y = (screenW/px), (screenH/py)
        setMinuteDuration( 60000 ); 
        local time = getRealTime()
    	local hours = time.hour
    	local minutes = time.minute
    	local seconds = time.second
    	if (minutes >= 0 and minutes < 10) then
            	minutes = "0"..time.minute end
    	dxDrawBorderedText(hours..":"..minutes, x*1300, y*160, x*1360, y*40, tocolor(255,255,255,255), 0.5, GilroyMediumItalic, "center", "center", false, false, false, false, false)
    end 
      
    setTimer( UpdateTime, 60000, 0 ); 

     

     

     

  4. 16 hours ago, Burak5312 said:
    function consoleVehicleLights (thePlayer) 
        local playerVehicle = getPedOccupiedVehicle ( thePlayer ) 
        if playerVehicle then 
            if ( getVehicleOverrideLights ( playerVehicle ) ~= 2 ) then 
                setVehicleOverrideLights ( playerVehicle, 2 ) 
            else 
                setVehicleOverrideLights ( playerVehicle, 1 ) 
            end 
        end 
    end 
    addCommandHandler ( "vehiclelights", consoleVehicleLights )  
    
    addEventHandler("onResourceStart", resourceRoot,
        function()
           for _,player in ipairs(getElementsByType("player")) do
           	  bindKey(player, "l", "down", "vehiclelights") 
           end
        end
    )

    do it this way

    Great work bro, do you want to return to the project? i'll do  advertising right now

  5. Spoiler
    how to turn off the headlights on the server side, because if on the client side, then the person who turned it on only sees and the rest do not see.
    
    function consoleVehicleLights ( thePlayer ) 
        local playerVehicle = getPedOccupiedVehicle ( thePlayer ) 
        if playerVehicle then 
            if ( getVehicleOverrideLights ( playerVehicle ) ~= 2 ) then 
                setVehicleOverrideLights ( playerVehicle, 2 ) 
            else 
                setVehicleOverrideLights ( playerVehicle, 1 ) 
            end 
        end 
    end 
    addCommandHandler ( "vehiclelights", consoleVehicleLights ) 
    addEventHandler ( "onResourceStart", root, consoleVehicleLights)
    bindKey("l", "down", "vehiclelights", thePlayer ) 

     

    hi, help please.

    Spoiler

    spacer.png

     

  6. Spoiler

    spacer.png

    Spoiler
    x,y = guiGetScreenSize()-- 
    guiSetInputMode("no_binds_when_editing")
    client = getLocalPlayer()
    
    
    GUIEditor = {
        label = {}
    }
            Groups_Window = guiCreateWindow(x/2-343/2, y/2-581/2, 343, 581, "Clan system", false)
            guiWindowSetSizable(Groups_Window, false)
            guiSetAlpha(Groups_Window, 1.00)
    
            Create_Group_Edit = guiCreateEdit(10, 56, 208, 33, "", false, Groups_Window)
            Create_Group_Button = guiCreateButton(226, 56, 102, 37, "Create a clan", false, Groups_Window)
            guiSetProperty(Create_Group_Button, "NormalTextColour", "FFFFFFFF")--FF02F5E1
            GUIEditor.label[1] = guiCreateLabel(75, 30, 110, 16, "Create a clan:", false, Groups_Window)
            guiSetFont(GUIEditor.label[1], "default-bold-small")
            GUIEditor.label[2] = guiCreateLabel(10, 99, 318, 15, "___________________________________________________________", false, Groups_Window)
            Members_Group_Button = guiCreateButton(9, 145, 217, 36, "Members of the clan", false, Groups_Window)
            guiSetFont(Members_Group_Button, "default-bold-small")
            guiSetProperty(Members_Group_Button, "NormalTextColour", "FFFFFFFF")
            myInvites_Group_Button = guiCreateButton(9, 221, 217, 36, "Invitations", false, Groups_Window)
            guiSetFont(myInvites_Group_Button, "default-bold-small")
            guiSetProperty(myInvites_Group_Button, "NormalTextColour", "FFFFFFFF")
            InfoEdit_Group_Button = guiCreateButton(9, 294, 217, 36, "Clan information", false, Groups_Window)
            guiSetFont(InfoEdit_Group_Button, "default-bold-small")
            guiSetProperty(InfoEdit_Group_Button, "NormalTextColour", "FFFFFFFF")
            Leave_Group_Button = guiCreateButton(246, 145, 86, 41, "Leave the clan", false, Groups_Window)
            guiSetFont(Leave_Group_Button, "default-bold-small")
            guiSetProperty(Leave_Group_Button, "NormalTextColour", "FFFFFFFF")
            GUIEditor.label[3] = guiCreateLabel(9, 341, 319, 15, "________________________________________________________", false, Groups_Window)
            GroupList_Group_Button = guiCreateButton(246, 221, 86, 41, "Clan list", false, Groups_Window)
            guiSetFont(GroupList_Group_Button, "default-bold-small")
            guiSetProperty(GroupList_Group_Button, "NormalTextColour", "FFFFFFFF")
            Close_Group_Button = guiCreateButton(246, 294, 86, 41, "Close a window", false, Groups_Window)
            guiSetFont(Close_Group_Button, "default-bold-small")
            guiSetProperty(Close_Group_Button, "NormalTextColour", "FFFFFFFF")
            GUIEditor.label[4] = guiCreateLabel(98, 366, 154, 15, "Clan administrators:", false, Groups_Window)
            guiSetFont(GUIEditor.label[4], "default-bold-small","FFFFFF00")
            InvitesPlayer_Group_Button = guiCreateButton(9, 391, 149, 30, "Invite a player to a clan", false, Groups_Window)
            guiSetFont(InvitesPlayer_Group_Button, "default-bold-small")
            guiSetProperty(InvitesPlayer_Group_Button, "NormalTextColour", "FFFFFFFF")
            Group_History_Button = guiCreateButton(179, 391, 149, 30, "Clan history", false, Groups_Window)
            guiSetFont(Group_History_Button, "default-bold-small")
            guiSetProperty(Group_History_Button, "NormalTextColour", "FFFFFFFF")
            Group_Rank_Button = guiCreateButton(9, 431, 149, 30, "Setting up clan ranks", false, Groups_Window)
            guiSetFont(Group_Rank_Button, "default-bold-small")
            guiSetProperty(Group_Rank_Button, "NormalTextColour", "FFFFFFFF")
            Group_Bank_Button = guiCreateButton(179, 431, 149, 30, "Clan Bank", false, Groups_Window)
            guiSetFont(Group_Bank_Button, "default-bold-small")
            guiSetProperty(Group_Bank_Button, "NormalTextColour", "FFFFFFFF")
            Group_TopTurf_Button = guiCreateButton(9, 471, 149, 30, "Top clans", false, Groups_Window)
            guiSetFont(Group_TopTurf_Button, "default-bold-small")
            guiSetProperty(Group_TopTurf_Button, "NormalTextColour", "FFFFFFFF")
            Group_TopBank_Button = guiCreateButton(179, 471, 149, 30, "Top clan banks", false, Groups_Window)
            guiSetFont(Group_TopBank_Button, "default-bold-small")
            guiSetProperty(Group_TopBank_Button, "NormalTextColour", "FFFFFFFF")
            Group_BlackList_Button = guiCreateButton(76, 505, 187, 28, "Clan blacklist", false, Groups_Window)
            guiSetFont(Group_BlackList_Button, "default-bold-small")
            guiSetProperty(Group_BlackList_Button, "NormalTextColour", "FFFFFFFF")
            Admin_Group_Button = guiCreateButton(11, 543, 322, 28, "Delete clan", false, Groups_Window)
            guiSetFont(Admin_Group_Button, "default-bold-small")
            guiSetProperty(Admin_Group_Button, "NormalTextColour", "FFFFFFFF")
            Name_Group_Label = guiCreateLabel(17, 122, 163, 18, "Clan name: -", false, Groups_Window)
            myInvites_Group_Label = guiCreateLabel(17, 198, 143, 13, "Invitations: 0", false, Groups_Window)
            GUIEditor.label[5] = guiCreateLabel(17, 271, 143, 13, "Clan information :", false, Groups_Window)
    		
    function closewin()
    guiSetVisible (Groups_Window,false)		
    end
    addEventHandler ("onClientResourceStart",root,closewin)		
    CheckLeaveWindow = guiCreateWindow(x/2-134, y/2-50, 268, 100, "Leave the clan", false)
    guiWindowSetSizable(CheckLeaveWindow , false)
    guiSetVisible(CheckLeaveWindow, false)
    guiSetAlpha(CheckLeaveWindow, 1)
    
    guiCreateLabel(10, 26, 254, 17, "Are you sure you want to leave the clan?", false, CheckLeaveWindow)
    
    YesLeaveGroup = guiCreateButton(15, 63, 104, 27, "Yes", false, CheckLeaveWindow)
    guiSetFont(YesLeaveGroup, "default-bold-small")
    NoLeaveGroup = guiCreateButton(150, 63, 104, 27, "No", false, CheckLeaveWindow)
    guiSetFont(NoLeaveGroup, "default-bold-small")
    
    Group_Rank_Window = guiCreateWindow(x/2-264.5, y/2-152.5, 529, 305, "Rank management", false)
    guiWindowSetSizable(Group_Rank_Window, false)
    guiSetAlpha(Group_Rank_Window, 1)
    guiSetVisible(Group_Rank_Window, false)
    
    Group_Rank_Gridlist = guiCreateGridList(11, 29, 192, 227, false, Group_Rank_Window)
    guiGridListAddColumn(Group_Rank_Gridlist, "Rank name", 0.9)
    Group_Rank_Label = guiCreateLabel(309, 24, 120, 15, "List of permissions", false, Group_Rank_Window)
    guiSetFont(Group_Rank_Label, "default-bold-small")
    
    Group_Rank_Scrollpane = guiCreateScrollPane(221, 46, 298, 200, false, Group_Rank_Window)
    
    Group_Rank_Permission_1 = guiCreateCheckBox(3, 2, 276, 19, "Possibility to downgrade players.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_2 = guiCreateCheckBox(3, 22, 276, 19, "The ability to reward players.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_3 = guiCreateCheckBox(3, 42, 276, 19, "Ability to kick players.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_4 = guiCreateCheckBox(3, 62, 276, 19, "The ability to promote players to your rank.", true, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_5 = guiCreateCheckBox(3, 82, 276, 19, "Ability to edit clan information.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_6 = guiCreateCheckBox(3, 102, 276, 19, "The ability to invite players to the clan.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_7 = guiCreateCheckBox(3, 122, 276, 19, "Ability to delete a clan.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_8 = guiCreateCheckBox(3, 142, 276, 19, "Ability to view clan history.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_9 = guiCreateCheckBox(3, 162, 276, 19, "Possibility to demote a player with the same rank.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_10 = guiCreateCheckBox(3, 182, 276, 19, "Possibility to deposit money in the clan bank.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_11 = guiCreateCheckBox(3, 202, 276, 19, "Ability to withdraw money from the clan bank.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_12 = guiCreateCheckBox(3, 222, 276, 19, "Ability to change the color of territories.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_13 = guiCreateCheckBox(3, 242, 276, 19, "Ability to change the color of the clan chat.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_14 = guiCreateCheckBox(3, 262, 276, 19, "The ability to issue warnings.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_15 = guiCreateCheckBox(3, 282, 276, 19, "The ability to give money to clan members.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_16 = guiCreateCheckBox(3, 302, 276, 19, "Ability to give moot to clan members.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_17 = guiCreateCheckBox(3, 322, 276, 19, "The ability to give players money from the clan bank.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_18 = guiCreateCheckBox(3, 342, 276, 19, "Ability to delete events from clan history.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_19 = guiCreateCheckBox(3, 362, 276, 19, "Ability to view clan blacklist.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_20 = guiCreateCheckBox(3, 382, 276, 19, "Account can be blocked.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_21 = guiCreateCheckBox(3, 402, 276, 19, "Ability to block the serial number of the account.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_22 = guiCreateCheckBox(3, 422, 276, 19, "Ability to unblock account.", false, false, Group_Rank_Scrollpane)
    Group_Rank_Permission_23 = guiCreateCheckBox(3, 442, 276, 19, "Ability to unblock the serial number of the account.", false, false, Group_Rank_Scrollpane)
    
    guiSetEnabled(Group_Rank_Permission_1, false)
    guiSetEnabled(Group_Rank_Permission_2, false)
    guiSetEnabled(Group_Rank_Permission_3, false)
    guiSetEnabled(Group_Rank_Permission_4, false)
    guiSetEnabled(Group_Rank_Permission_5, false)
    guiSetEnabled(Group_Rank_Permission_6, false)
    guiSetEnabled(Group_Rank_Permission_7, false)
    guiSetEnabled(Group_Rank_Permission_8, false)
    guiSetEnabled(Group_Rank_Permission_9, false)
    guiSetEnabled(Group_Rank_Permission_10, false)
    guiSetEnabled(Group_Rank_Permission_11, false)
    guiSetEnabled(Group_Rank_Permission_12, false)
    guiSetEnabled(Group_Rank_Permission_13, false)
    guiSetEnabled(Group_Rank_Permission_14, false)
    guiSetEnabled(Group_Rank_Permission_15, false)
    guiSetEnabled(Group_Rank_Permission_16, false)
    guiSetEnabled(Group_Rank_Permission_17, false)
    guiSetEnabled(Group_Rank_Permission_18, false)
    guiSetEnabled(Group_Rank_Permission_19, false)
    guiSetEnabled(Group_Rank_Permission_20, false)
    guiSetEnabled(Group_Rank_Permission_21, false)
    guiSetEnabled(Group_Rank_Permission_22, false)
    guiSetEnabled(Group_Rank_Permission_23, false)
    
    
    --[[
    
    PermissionTable["1"] -- demote player
    PermissionTable["2"] -- promote player
    PermissionTable["3"] -- kick player
    PermissionTable["4"] -- promote player until thier own rank
    PermissionTable["5"] -- edit info
    PermissionTable["6"] -- invite
    PermissionTable["7"] -- delete the group
    PermissionTable["8"] -- view history
    PermissionTable["9"] -- demote player with same rank
    PermissionTable["10"] -- deposit money
    PermissionTable["11"] -- withdraw money
    PermissionTable["12"] -- turf color
    PermissionTable["13"] -- chat color
    PermissionTable["14"] -- warn members
    PermissionTable["15"] -- Give Money
    PermissionTable["16"] -- mute members
    PermissionTable["17"] -- Give Money For One Member
    PermissionTable["18"] -- delete events
    PermissionTable["19"] -- View Group BlackList
    PermissionTable["20"] -- block account
    PermissionTable["21"] -- block serial
    PermissionTable["22"] -- unblock account
    PermissionTable["23"] -- unblock serial
    
    ]]
    
    Group_EditRank = guiCreateButton (11, 266, 119, 29, "Edit Rank", false, Group_Rank_Window)
    Group_RemoveRank = guiCreateButton (140, 266, 119, 29, "Remove Rank", false, Group_Rank_Window)
    Group_AddNewRank = guiCreateButton (264, 266, 119, 29, "Add New Rank", false, Group_Rank_Window)
    Group_CloseRankWindow = guiCreateButton (393, 266, 119, 29, "Close Window", false, Group_Rank_Window)
    
    Add_Rank_Window = guiCreateWindow(x/2-157.5, y/2-165, 315, 330, "Add Rank", false)
    guiWindowSetSizable(Add_Rank_Window, false)
    guiSetAlpha(Add_Rank_Window, 1)
    guiSetVisible(Add_Rank_Window, false)
    
    Add_RankName_Label = guiCreateLabel(10, 27, 88, 15, "Title", false, Add_Rank_Window)
    guiSetFont(Add_RankName_Label, "default-bold-small")
    Add_RankName_Edit = guiCreateEdit(80, 25, 220, 20, "", false, Add_Rank_Window)
    guiEditSetMaxLength(Add_RankName_Edit, 50)
    Add_RankAfter_Label = guiCreateLabel(10, 55, 150, 15, "Add this rank after", false, Add_Rank_Window)
    guiSetFont(Add_RankAfter_Label, "default-bold-small")
    AddRankComboBox = guiCreateComboBox(120, 53, 180, 120, "Select Rank", false, Add_Rank_Window)
    Add_Rank_Scrollpane = guiCreateScrollPane(10, 78, 298, 200, false, Add_Rank_Window)
    Add_Rank_Permission_1 = guiCreateCheckBox(3, 2, 276, 19, "Possibility to demote players.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_2 = guiCreateCheckBox(3, 22, 276, 19, "Possibility to reward players.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_3 = guiCreateCheckBox(3, 42, 276, 19, "The ability to kick players.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_4 = guiCreateCheckBox(3, 62, 276, 19, "The ability to promote players to their rank.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_5 = guiCreateCheckBox(3, 82, 276, 19, "Ability to edit clan information.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_6 = guiCreateCheckBox(3, 102, 276, 19, "The ability to invite players to the clan.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_7 = guiCreateCheckBox(3, 122, 276, 19, "Ability to delete clan.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_8 = guiCreateCheckBox(3, 142, 276, 19, "Ability to view clan history.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_9 = guiCreateCheckBox(3, 162, 276, 19, "Possibility to demote a player with the same rank.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_10 = guiCreateCheckBox(3, 182, 276, 19, "Possibility to deposit money in the clan bank.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_11 = guiCreateCheckBox(3, 202, 276, 19, "Ability to withdraw money from the clan bank.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_12 = guiCreateCheckBox(3, 222, 276, 19, "Ability to change the color of territories.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_13 = guiCreateCheckBox(3, 242, 276, 19, "Ability to change the color of the clan chat.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_14 = guiCreateCheckBox(3, 262, 276, 19, "The ability to issue warnings.", true, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_15 = guiCreateCheckBox(3, 282, 276, 19, "The ability to give money to clan members.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_16 = guiCreateCheckBox(3, 302, 276, 19, "Ability to give moot to clan members.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_17 = guiCreateCheckBox(3, 322, 276, 19, "The ability to give players money from the clan bank.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_18 = guiCreateCheckBox(3, 342, 276, 19, "Ability to delete events from clan history.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_19 = guiCreateCheckBox(3, 362, 276, 19, "Ability to view clan blacklist.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_20 = guiCreateCheckBox(3, 382, 276, 19, "The ability to block an account.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_21 = guiCreateCheckBox(3, 402, 276, 19, "Ability to block the serial number of the account.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_22 = guiCreateCheckBox(3, 422, 276, 19, "Ability to unblock account.", false, false, Add_Rank_Scrollpane)
    Add_Rank_Permission_23 = guiCreateCheckBox(3, 442, 276, 19, "Ability to unblock the serial number of the account.", false, false, Add_Rank_Scrollpane)
    
    Add_NewRank = guiCreateButton(11, 288, 139, 29, "Add Rank", false, Add_Rank_Window)
    Add_Cancel = guiCreateButton(170, 288, 139, 29, "Close", false, Add_Rank_Window)
    
    Edit_Rank_Window = guiCreateWindow(x / 2-153.5, y / 2-165, 315, 307, "Edit Rank", false)
    guiWindowSetSizable(Edit_Rank_Window, false)
    guiSetAlpha(Edit_Rank_Window, 1)
    guiSetVisible(Edit_Rank_Window, false)
    
    Edit_RankName_Label = guiCreateLabel(10, 27, 88, 15, "Rank Name", false, Edit_Rank_Window)
    guiSetFont(Edit_RankName_Label, "default-bold-small")
    Edit_RankName_Edit = guiCreateEdit(80, 25, 220, 20, "", false, Edit_Rank_Window)
    guiEditSetMaxLength(Edit_RankName_Edit, 50)
    
    Edit_Rank_Scrollpane = guiCreateScrollPane(10, 55, 298, 200, false, Edit_Rank_Window)
    Edit_Rank_Permission_1 = guiCreateCheckBox(3, 2, 276, 19, "Possibility to demote players.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_2 = guiCreateCheckBox(3, 22, 276, 19, "Possibility to reward players.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_3 = guiCreateCheckBox(3, 42, 276, 19, "The ability to kick players.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_4 = guiCreateCheckBox(3, 62, 276, 19, "The ability to promote players to their rank.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_5 = guiCreateCheckBox(3, 82, 276, 19, "Ability to edit clan information.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_6 = guiCreateCheckBox(3, 102, 276, 19, "The ability to invite players to the clan.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_7 = guiCreateCheckBox(3, 122, 276, 19, "Ability to delete clan.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_8 = guiCreateCheckBox(3, 142, 276, 19, "Ability to view clan history.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_9 = guiCreateCheckBox(3, 162, 276, 19, "Possibility to demote a player with the same rank.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_10 = guiCreateCheckBox(3, 182, 276, 19, "Possibility to deposit money in the clan bank.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_11 = guiCreateCheckBox(3, 202, 276, 19, "Ability to withdraw money from the clan bank.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_12 = guiCreateCheckBox(3, 222, 276, 19, "Ability to change the color of territories.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_13 = guiCreateCheckBox(3, 242, 276, 19, "Ability to change the color of the clan chat.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_14 = guiCreateCheckBox(3, 262, 276, 19, "The ability to issue warnings.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_15 = guiCreateCheckBox(3, 282, 276, 19, "The ability to give money to clan members.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_16 = guiCreateCheckBox(3, 302, 276, 19, "Ability to give moot to clan members.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_17 = guiCreateCheckBox(3, 322, 276, 19, "The ability to give players money from the clan bank.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_18 = guiCreateCheckBox(3, 342, 276, 19, "Ability to delete events from clan history.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_19 = guiCreateCheckBox(3, 362, 276, 19, "Ability to view clan blacklist.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_20 = guiCreateCheckBox(3, 382, 276, 19, "The ability to block an account.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_21 = guiCreateCheckBox(3, 402, 276, 19, "Ability to block the serial number of the account.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_22 = guiCreateCheckBox(3, 422, 276, 19, "Ability to unblock account.", true, false, Edit_Rank_Scrollpane)
    Edit_Rank_Permission_23 = guiCreateCheckBox(3, 442, 276, 19, "Ability to unblock the serial number of the account.", true, false, Edit_Rank_Scrollpane)
    
    Edit_Rank = guiCreateButton(11, 265, 139, 29, "Keep Rank", false, Edit_Rank_Window)
    Edit_Cancel = guiCreateButton(170, 265, 139, 29, "Close", false, Edit_Rank_Window)
    
    CheckRemoveRankWindow = guiCreateWindow(x / 2-134, y / 2-63.5, 268, 127, "Remove Rank", false)
    guiWindowSetSizable(CheckRemoveRankWindow, false)
    guiSetVisible(CheckRemoveRankWindow, false)
    guiSetAlpha(CheckRemoveRankWindow, 1)
    
    guiCreateLabel(10, 26, 254, 17, "Are you sure you want to remove the rank?", false, CheckRemoveRankWindow)
    guiCreateLabel(14, 43, 244, 17, "People with this rank will be demoted", false, CheckRemoveRankWindow)
    guiCreateLabel(83, 60, 108, 15, "to the previous rank", false, CheckRemoveRankWindow)
    
    YesRemoveRank = guiCreateButton(15, 90, 104, 27, "Yes", false, CheckRemoveRankWindow)
    guiSetFont(YesRemoveRank, "default-bold-small")
    NoRemoveRank = guiCreateButton(150, 90, 104, 27, "No", false, CheckRemoveRankWindow)
    guiSetFont(NoRemoveRank, "default-bold-small")
    
    
    function onRankClick()
    	selectedRank = guiGridListGetSelectedItem(Group_Rank_Gridlist)
    	if source == Group_Rank_Gridlist then
    		if selectedRank ~= -1 then
    			guiCheckBoxSetSelected(Group_Rank_Permission_1, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_2, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_3, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_4, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_5, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_6, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_7, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_8, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_9, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_10, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_11, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_12, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_13, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_14, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_15, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_16, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_17, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_18, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_19, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_20, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_21, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_22, false)
    			guiCheckBoxSetSelected(Group_Rank_Permission_23, false)
    			local RankTable = guiGridListGetItemData(Group_Rank_Gridlist, selectedRank, 1)
    			for i, num in ipairs(split(RankTable[1], ', ')) do
    				local num = tonumber(num)
    				if num == 1 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_1, true)
    				elseif num == 2 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_2, true)
    				elseif num == 3 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_3, true)
    				elseif num == 4 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_4, true)
    				elseif num == 5 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_5, true)
    				elseif num == 6 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_6, true)
    				elseif num == 7 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_7, true)
    				elseif num == 8 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_8, true)
    				elseif num == 9 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_9, true)
    				elseif num == 10 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_10, true)
    				elseif num == 11 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_11, true)
    				elseif num == 12 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_12, true)
    				elseif num == 13 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_13, true)
    				elseif num == 14 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_14, true)
    				elseif num == 15 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_15, true)
    				elseif num == 16 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_16, true)
    				elseif num == 17 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_17, true)
    				elseif num == 18 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_18, true)
    				elseif num == 19 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_19, true)
    				elseif num == 20 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_20, true)
    				elseif num == 21 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_21, true)
    				elseif num == 22 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_22, true)
    				elseif num == 23 then
    					guiCheckBoxSetSelected(Group_Rank_Permission_23, true)
    				end
    			end
    		end
    	elseif source == Group_EditRank then
    		if selectedRank ~= -1 then
    			local RankName = guiGridListGetItemText(Group_Rank_Gridlist, selectedRank, 1)
    			if RankName ~= "" then
    				guiCheckBoxSetSelected(Edit_Rank_Permission_1, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_2, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_3, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_4, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_5, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_6, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_7, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_8, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_9, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_10, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_11, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_12, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_13, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_14, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_15, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_16, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_17, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_18, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_19, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_20, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_21, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_22, false)
    				guiCheckBoxSetSelected(Edit_Rank_Permission_23, false)
    				guiSetEnabled(Edit_Rank_Permission_1, true)
    				guiSetEnabled(Edit_Rank_Permission_2, true)
    				guiSetEnabled(Edit_Rank_Permission_3, true)
    				guiSetEnabled(Edit_Rank_Permission_4, true)
    				guiSetEnabled(Edit_Rank_Permission_5, true)
    				guiSetEnabled(Edit_Rank_Permission_6, true)
    				guiSetEnabled(Edit_Rank_Permission_7, true)
    				guiSetEnabled(Edit_Rank_Permission_8, true)
    				guiSetEnabled(Edit_Rank_Permission_9, true)
    				guiSetEnabled(Edit_Rank_Permission_10, true)
    				guiSetEnabled(Edit_Rank_Permission_11, true)
    				guiSetEnabled(Edit_Rank_Permission_12, true)
    				guiSetEnabled(Edit_Rank_Permission_13, true)
    				guiSetEnabled(Edit_Rank_Permission_14, true)
    				guiSetEnabled(Edit_Rank_Permission_15, true)
    				guiSetEnabled(Edit_Rank_Permission_16, true)
    				guiSetEnabled(Edit_Rank_Permission_17, true)
    				guiSetEnabled(Edit_Rank_Permission_18, true)
    				guiSetEnabled(Edit_Rank_Permission_19, true)
    				guiSetEnabled(Edit_Rank_Permission_20, true)
    				guiSetEnabled(Edit_Rank_Permission_21, true)
    				guiSetEnabled(Edit_Rank_Permission_22, true)
    				guiSetEnabled(Edit_Rank_Permission_23, true)
    				local RankTable = guiGridListGetItemData(Group_Rank_Gridlist, selectedRank, 1)
    				if RankTable[2] == 1 then
    					guiSetEnabled(Edit_Rank_Permission_1, false)
    					guiSetEnabled(Edit_Rank_Permission_2, false)
    					guiSetEnabled(Edit_Rank_Permission_3, false)
    					guiSetEnabled(Edit_Rank_Permission_4, false)
    					guiSetEnabled(Edit_Rank_Permission_5, false)
    					guiSetEnabled(Edit_Rank_Permission_6, false)
    					guiSetEnabled(Edit_Rank_Permission_7, false)
    					guiSetEnabled(Edit_Rank_Permission_8, false)
    					guiSetEnabled(Edit_Rank_Permission_9, false)
    					guiSetEnabled(Edit_Rank_Permission_10, false)
    					guiSetEnabled(Edit_Rank_Permission_11, false)
    					guiSetEnabled(Edit_Rank_Permission_12, false)
    					guiSetEnabled(Edit_Rank_Permission_13, false)
    					guiSetEnabled(Edit_Rank_Permission_14, false)
    					guiSetEnabled(Edit_Rank_Permission_15, false)
    					guiSetEnabled(Edit_Rank_Permission_16, false)
    					guiSetEnabled(Edit_Rank_Permission_17, false)
    					guiSetEnabled(Edit_Rank_Permission_18, false)
    					guiSetEnabled(Edit_Rank_Permission_19, false)
    					guiSetEnabled(Edit_Rank_Permission_20, false)
    					guiSetEnabled(Edit_Rank_Permission_21, false)
    					guiSetEnabled(Edit_Rank_Permission_22, false)
    					guiSetEnabled(Edit_Rank_Permission_23, false)
    				elseif RankTable[2] == 2 then
    					guiSetEnabled(Edit_Rank_Permission_1, false)
    					guiSetEnabled(Edit_Rank_Permission_2, false)
    					guiSetEnabled(Edit_Rank_Permission_3, false)
    					guiSetEnabled(Edit_Rank_Permission_4, false)
    					guiSetEnabled(Edit_Rank_Permission_7, false)
    					guiSetEnabled(Edit_Rank_Permission_9, false)
    				end
    				for i, num in ipairs(split(RankTable[1], ', ')) do
    					local num = tonumber(num)
    					if num == 1 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_1, true)
    					elseif num == 2 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_2, true)
    					elseif num == 3 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_3, true)
    					elseif num == 4 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_4, true)
    					elseif num == 5 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_5, true)
    					elseif num == 6 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_6, true)
    					elseif num == 7 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_7, true)
    					elseif num == 8 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_8, true)
    					elseif num == 9 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_9, true)
    					elseif num == 10 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_10, true)
    					elseif num == 11 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_11, true)
    					elseif num == 12 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_12, true)
    					elseif num == 13 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_13, true)
    					elseif num == 14 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_14, true)
    					elseif num == 15 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_15, true)
    					elseif num == 16 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_16, true)
    					elseif num == 17 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_17, true)
    					elseif num == 18 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_18, true)
    					elseif num == 19 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_19, true)
    					elseif num == 20 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_20, true)
    					elseif num == 21 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_21, true)
    					elseif num == 22 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_22, true)
    					elseif num == 23 then
    						guiCheckBoxSetSelected(Edit_Rank_Permission_23, true)
    					end
    				end
    				setElementData(Edit_Rank_Window, "Rank", RankName, false)
    				guiSetText(Edit_Rank_Window, "Change rank'"..RankName.."'")
    				guiSetText(Edit_RankName_Edit, RankName)
    				guiSetVisible(Edit_Rank_Window, true)
    				guiBringToFront(Edit_Rank_Window)
    			end
    		end
    	elseif source == Edit_Rank then
    		local RankName = guiGetText(Edit_RankName_Edit)
    		if RankName ~= "" and not isHasSpace(RankName) then
    			permission = ""
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_1) then
    				permission = "1 "
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_2) then
    				permission = "2, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_3) then
    				permission = "3, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_4) then
    				permission = "4, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_5) then
    				permission = "5, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_6) then
    				permission = "6, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_7) then
    				permission = "7, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_8) then
    				permission = "8, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_9) then
    				permission = "9, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_10) then
    				permission = "10, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_11) then
    				permission = "11, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_12) then
    				permission = "12, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_13) then
    				permission = "13, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_14) then
    				permission = "14, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_15) then
    				permission = "15, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_16) then
    				permission = "16, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_17) then
    				permission = "17, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_18) then
    				permission = "18, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_19) then
    				permission = "19, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_20) then
    				permission = "20, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_21) then
    				permission = "21, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_22) then
    				permission = "22, "..permission
    			end
    			if guiCheckBoxGetSelected(Edit_Rank_Permission_23) then
    				permission = "23, "..permission
    			end
    			triggerServerEvent("EditRank", localPlayer, getElementData(Edit_Rank_Window, "Rank"), RankName, permission)
    			guiSetVisible(Edit_Rank_Window, false)
    		end
    	elseif source == Group_RemoveRank then
    		local RankName = guiGridListGetItemText(Group_Rank_Gridlist, selectedRank, 1)
    		if RankName ~= "" then
    			guiBringToFront(CheckRemoveRankWindow)
    			setElementData(CheckRemoveRankWindow, "Rank", RankName, false)
    			guiSetText(CheckRemoveRankWindow, "Remove rank '"..RankName.."'")
    			guiSetVisible(CheckRemoveRankWindow, true)
    		end
    	elseif source == YesRemoveRank then
    		triggerServerEvent("RemoveRank", localPlayer, getElementData(CheckRemoveRankWindow, "Rank"))
    		guiSetVisible(CheckRemoveRankWindow, false)
    	elseif source == NoRemoveRank then
    		guiSetVisible(CheckRemoveRankWindow, false)
    	elseif source == Group_AddNewRank then
    		guiSetText(Add_RankName_Edit, "")
    		guiSetVisible(Add_Rank_Window, true)
    		guiBringToFront(Add_Rank_Window)
    		guiCheckBoxSetSelected(Add_Rank_Permission_1, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_2, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_3, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_4, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_5, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_6, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_7, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_8, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_9, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_10, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_11, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_12, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_13, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_14, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_15, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_16, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_17, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_18, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_19, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_20, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_21, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_22, false)
    		guiCheckBoxSetSelected(Add_Rank_Permission_23, false)
    	elseif source == Add_NewRank then
    		local nRankName = guiGetText(Add_RankName_Edit)
    		local aAfter = guiComboBoxGetItemText(AddRankComboBox, guiComboBoxGetSelected(AddRankComboBox))
    		if nRankName ~= "" and not isHasSpace(nRankName) then
    			permission = ""
    			if guiCheckBoxGetSelected(Add_Rank_Permission_1) then
    				permission = "1 "
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_2) then
    				permission = "2, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_3) then
    				permission = "3, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_4) then
    				permission = "4, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_5) then
    				permission = "5, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_6) then
    				permission = "6, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_7) then
    				permission = "7, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_8) then
    				permission = "8, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_9) then
    				permission = "9, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_10) then
    				permission = "10, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_11) then
    				permission = "11, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_12) then
    				permission = "12, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_13) then
    				permission = "13, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_14) then
    				permission = "14, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_15) then
    				permission = "15, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_16) then
    				permission = "16, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_17) then
    				permission = "17, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_18) then
    				permission = "18, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_19) then
    				permission = "19, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_20) then
    				permission = "20, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_21) then
    				permission = "21, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_22) then
    				permission = "22, "..permission
    			end
    			if guiCheckBoxGetSelected(Add_Rank_Permission_23) then
    				permission = "23, "..permission
    			end
    			triggerServerEvent("AddNewRank", localPlayer, nRankName, aAfter, permission)
    			guiSetVisible(Add_Rank_Window, false)
    		end
    	elseif source == Add_Cancel then
    		guiSetVisible(Add_Rank_Window, false)
    	elseif source == Edit_Cancel then
    		guiSetVisible(Edit_Rank_Window, false)
    	end
    end
    addEventHandler("onClientGUIClick", resourceRoot, onRankClick)
    
    function isHasSpace(text)
        for i = 1, #text do
            local byte = text:byte(i)
            if(byte == 32)then
                return true
            end
        end
        return false
    end
    
    function updateRankTable(rankTable, rank)
    	currentRank = rank
    	PermissionTable = {}
    	guiGridListClear(Group_Rank_Gridlist)
    	guiComboBoxClear(AddRankComboBox)
    	for i, R in pairs(rankTable) do
    		local row = guiGridListAddRow(Group_Rank_Gridlist)
    		guiGridListSetItemText(Group_Rank_Gridlist, row, 1, R["group_rank_name"], false, false)
    		guiGridListSetItemData(Group_Rank_Gridlist, row, 1, {R["group_rank_permission"], R["rank_type"]})
    		if R["rank_type"] ~= 1 then
    			guiComboBoxAddItem(AddRankComboBox, R["group_rank_name"])
    		end
    		if R["group_rank_name"] == rank then
    			if R["rank_type"] == 1 then
    				guiSetEnabled(Group_EditRank, true)
    				guiSetEnabled(Group_RemoveRank, true)
    				guiSetEnabled(Group_AddNewRank, true)
    			else
    				guiSetEnabled(Group_EditRank, false)
    				guiSetEnabled(Group_RemoveRank, false)
    				guiSetEnabled(Group_AddNewRank, false)
    			end
    			for i, num in ipairs(split(R["group_rank_permission"], ', ')) do
    				PermissionTable[num] = true
    			end
    		end
    	end
    	guiCheckBoxSetSelected(Group_Rank_Permission_1, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_2, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_3, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_4, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_5, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_6, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_7, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_8, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_9, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_10, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_11, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_12, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_13, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_14, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_15, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_16, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_17, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_18, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_19, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_20, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_21, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_22, false)
    	guiCheckBoxSetSelected(Group_Rank_Permission_23, false)
    	local RankTable = guiGridListGetItemData(Group_Rank_Gridlist, (selectedRank or 0), 1)
    	if RankTable then
    		for i, num in ipairs(split(RankTable[1], ', ')) do
    			local num = tonumber(num)
    			if num == 1 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_1, true)
    			elseif num == 2 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_2, true)
    			elseif num == 3 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_3, true)
    			elseif num == 4 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_4, true)
    			elseif num == 5 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_5, true)
    			elseif num == 6 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_6, true)
    			elseif num == 7 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_7, true)
    			elseif num == 8 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_8, true)
    			elseif num == 9 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_9, true)
    			elseif num == 10 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_10, true)
    			elseif num == 11 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_11, true)
    			elseif num == 12 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_12, true)
    			elseif num == 13 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_13, true)
    			elseif num == 14 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_14, true)
    			elseif num == 15 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_15, true)
    			elseif num == 16 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_16, true)
    			elseif num == 17 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_17, true)
    			elseif num == 18 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_18, true)
    			elseif num == 19 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_19, true)
    			elseif num == 20 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_20, true)
    			elseif num == 21 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_21, true)
    			elseif num == 22 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_22, true)
    			elseif num == 23 then
    				guiCheckBoxSetSelected(Group_Rank_Permission_23, true)
    			end
    		end
    	end
    	guiGridListSetSelectedItem(Group_Rank_Gridlist, (selectedRank or 0), 1)
    end
    
    Group_Info_Window = guiCreateWindow(x / 2-252, y / 2-203,505,406, "Clan Info", false)
    Group_Info_ButtonSave = guiCreateButton(315,368,95,29, "Save", false, Group_Info_Window)
    guiSetAlpha(Group_Info_Window, 1)
    guiSetVisible (Group_Info_Window, false)
    guiWindowSetSizable(Group_Info_Window, false)
    Group_Info_Memo = guiCreateMemo(9,28,485,333, "", false, Group_Info_Window)
    guiSetProperty(Group_Info_Memo, "MaxTextLength", "8001")
    Group_Info_ButtonClose = guiCreateButton(415,368,81,29, "Close", false, Group_Info_Window)
    
    Max_Info_Label = guiCreateLabel(10,377,250,30, "(8001) Characters left", false, Group_Info_Window)
    
    addEventHandler("onClientGUIChanged", resourceRoot,
    function()
    	if source == Group_Info_Memo then
    		local cT = guiGetText(Group_Info_Memo)
    		guiSetText(Max_Info_Label, "("..8001-#cT..") Characters left.")
    	elseif source == ViewGroup_Info_Memo then
    		local cT = guiGetText(ViewGroup_Info_Memo)
    		guiSetText(Max_Info_LabelM, "("..8001-#cT..") Characters left.")
    	elseif source == Warn_Edit then
    		local num = guiGetText(Warn_Edit)
    		if tonumber(num) == nil or isHasSpace(num) or tonumber(num) < 0 then
    			guiSetText(Warn_Edit, "0")
    		elseif tonumber(num) > 100 then
    			guiSetText(Warn_Edit, "100")
    		end
    		guiProgressBarSetProgress(Warn_Bar, tonumber(num) or 0)
    	elseif source == GroupBank_Deposit_Edit then
    		local num = guiGetText(GroupBank_Deposit_Edit)
    		local money = getPlayerMoney(localPlayer) or 0
    		if tonumber(num) == nil or isHasSpace(num) or tonumber(num) < 0 or tonumber(money) < 0 then
    			guiSetText(GroupBank_Deposit_Edit, 0)
    		elseif tonumber(num) > money then
    			guiSetText(GroupBank_Deposit_Edit, tonumber(money))
    		else
    			guiSetText(GroupBank_Deposit_Edit, tonumber(num))
    		end
    	elseif source == GroupBank_Withdraw_Edit then
    		local num = guiGetText(GroupBank_Withdraw_Edit)
    		local currentBankBalance = currentBankBalance or 0
    		if tonumber(num) == nil or isHasSpace(num) or tonumber(num) < 0 then
    			guiSetText(GroupBank_Withdraw_Edit, 0)
    		elseif tonumber(num) > currentBankBalance then
    			guiSetText(GroupBank_Withdraw_Edit, tonumber(currentBankBalance))
    		else
    			guiSetText(GroupBank_Withdraw_Edit, tonumber(num))
    		end
    	elseif source == GroupBank_GiveAll_Edit then
    		local num = guiGetText(GroupBank_GiveAll_Edit)
    		local currentBankBalance = currentBankBalance or 0
    		if tonumber(num) == nil or isHasSpace(num) or tonumber(num) < 0 then
    			guiSetText(GroupBank_GiveAll_Edit, 0)
    		elseif tonumber(num) > currentBankBalance then
    			guiSetText(GroupBank_GiveAll_Edit, tonumber(currentBankBalance))
    		else
    			guiSetText(GroupBank_GiveAll_Edit, tonumber(num))
    		end
    	elseif source == GroupBank_GiveMember_Edit then
    		local num = guiGetText(GroupBank_GiveMember_Edit)
    		local currentBankBalance = currentBankBalance or 0
    		if tonumber(num) == nil or isHasSpace(num) or tonumber(num) < 0 then
    			guiSetText(GroupBank_GiveMember_Edit, 0)
    		elseif tonumber(num) > currentBankBalance then
    			guiSetText(GroupBank_GiveMember_Edit, tonumber(currentBankBalance))
    		else
    			guiSetText(GroupBank_GiveMember_Edit, tonumber(num))
    		end
    	end
    end)
    
    function Show_Groups_Window()
    	if not guiGetVisible(Groups_Window) then
    		guiSetVisible(Groups_Window, true)
    		showCursor(true)
    		triggerServerEvent("Request_Invite_List",localPlayer)
    		triggerServerEvent("Send_Groups_List",localPlayer)
    	else
    		guiSetVisible(Groups_Window, false)
    		guiSetVisible(Group_List_Window, false)
    		guiSetVisible(Group_Invite_Window, false)
    		guiSetVisible(myGroup_Invite_Window, false)
    		guiSetVisible(MyGroup_Members_Window, false)
    		guiSetVisible(Group_Info_Window, false)
    		guiSetVisible(Group_Leader_Window, false)
    		guiSetVisible(Group_Rank_Window, false)
    		guiSetVisible(Add_Rank_Window, false)
    		guiSetVisible(Edit_Rank_Window, false)
    		guiSetVisible(CheckRemoveRankWindow, false)
    		guiSetVisible(Promote_Demote_Window, false)
    		guiSetVisible(Warn_Window, false)
    		guiSetVisible(GroupBank_Window, false)
    		guiSetVisible(Group_History_Window, false)
    		guiSetVisible(Group_BlackList_Window, false)
    		guiSetVisible(Group_TopTurf_Window, false)
    		guiSetVisible(Group_TopBank_Window, false)
    		guiSetVisible(Group_BlackList_Block_Windowserial, false)
    		guiSetVisible(Group_BlackList_Block_Window, false)
    		showCursor(false)
    		guiSetInputEnabled(false)
    		setElementData(localPlayer, "MTAWindowActive", false)
    	end
    end
    bindKey("K", "down", Show_Groups_Window)
    
    function setButtonStat()
    	if getElementData(localPlayer, "Group") then
    		guiSetText(Name_Group_Label,"Clan name: "..getElementData(localPlayer, "Group"))
    		guiSetEnabled(Create_Group_Button, false)
    		guiSetEnabled(Leave_Group_Button, true)
    		guiSetEnabled(Members_Group_Button, true)
    		guiSetEnabled(InfoEdit_Group_Button, true)
    		guiSetEnabled(Group_Rank_Button, true)
    		guiSetEnabled(Group_Bank_Button, true)
    		guiSetEnabled(Group_History_Button, true)
    		guiSetEnabled(Group_BlackList_Button, true)
    		bindKey("y","down","chatbox","GroupChat")
    	else
    		guiSetText(Name_Group_Label,"Clan name: -")
    		guiSetEnabled(Create_Group_Button, true)
    		guiSetEnabled(Leave_Group_Button, false)
    		guiSetEnabled(Members_Group_Button, false)
    		guiSetEnabled(InfoEdit_Group_Button, false)
    		guiSetEnabled(Group_Rank_Button, false)
    		guiSetEnabled(Group_Bank_Button, false)
    		guiSetEnabled(Group_History_Button, false)
    		guiSetEnabled(Group_BlackList_Button, false)
    		unbindKey("y","down","chatbox","GroupChat")
    	end
    	guiSetEnabled(Promote_Button, false)
    	guiSetEnabled(Demote_Button, false)
    	guiSetEnabled(WL_Button, false)
    	guiSetEnabled(Mute_Button, false)
    	guiSetEnabled(Group_Info_ButtonSave, false)
    	guiMemoSetReadOnly(ViewGroup_Info_Memo, true)
    	guiSetEnabled(Admin_Group_Button, false)
    	guiSetEnabled(InvitesPlayer_Group_Button, false)
    	guiSetEnabled(Group_History_Button, false)
    	guiSetEnabled(Group_BlackList_Button, false)
    	guiSetEnabled(GroupBank_Deposit_Button, false)
    	guiSetEnabled(GroupBank_Withdraw_Button, false)
    	guiSetEnabled(GroupBank_GiveAll_Button, false)
    	guiSetEnabled(GroupBank_GiveMember_Button, false)
    	local value = getElementData(localPlayer, "GroupRank")
    	if type(value) == "table" then
    		updateRankTable(value[1], value[2])
    	else
    		updateRankTable({}, false)
    	end
    	if PermissionTable["1"] then
    		-- guiSetEnabled(Demote_Button, true)
    	end
    	if PermissionTable["2"] then
    		-- guiSetEnabled(Promote_Button, true)
    	end
    	if PermissionTable["3"] then
    		-- kick player
    	end
    	if PermissionTable["4"] then
    		-- promote player until thier own rank
    	end
    	if PermissionTable["5"] then -- edit info
    		guiSetEnabled(Group_Info_ButtonSave, true)
    		guiMemoSetReadOnly(ViewGroup_Info_Memo, false)
    	end
    	if PermissionTable["6"] then -- invite
    		guiSetEnabled(InvitesPlayer_Group_Button, true)
    	end
    	if PermissionTable["7"] then -- delete the group
    		guiSetEnabled(Admin_Group_Button, true)
    	end
    	if PermissionTable["8"] then
    		-- view history
    		guiSetEnabled(Group_History_Button, true)
    	end
    	if PermissionTable["9"] then
    		-- demote player with same rank
    	end
    	if PermissionTable["10"] then
    		-- deposit money
    		guiSetEnabled(GroupBank_Deposit_Button, true)
    	end
    	if PermissionTable["11"] then
    		-- withdraw money
    		guiSetEnabled(GroupBank_Withdraw_Button, true)
    	end
    	if PermissionTable["12"] then
    		-- turf color
    	end
    	if PermissionTable["13"] then
    		-- chat color
    	end
    	if PermissionTable["14"] then
    		-- warn members
    	end
    	if PermissionTable["15"] then
    		--give all players
    		guiSetEnabled(GroupBank_GiveAll_Button, true)
    	end
    	if PermissionTable["16"] then
    		--Mute Members
    	end
    	if PermissionTable["17"] then
    		-- give one member
    		guiSetEnabled(GroupBank_GiveMember_Button, true)
    	end
    	if PermissionTable["18"] then
    		guiSetEnabled(GroupHistory_Button_DeleteLog, true)
    	end
    	if PermissionTable["19"] then
    		guiSetEnabled(Group_BlackList_Button, true)
    	end
    	if PermissionTable["20"] then
    		guiSetEnabled(Group_BlackList_AccountAdd, true)
    	end
    	if PermissionTable["21"] then
    		guiSetEnabled(Group_BlackList_SerialAdd, true)
    	end
    	if PermissionTable["22"] then
    		guiSetEnabled(Group_BlackList_AccountRemove, true)
    	end
    	if PermissionTable["23"] then
    		guiSetEnabled(Group_BlackList_SerialRemove, true)
    	end
    end
    addEventHandler("onClientResourceStart", resourceRoot, setButtonStat)
    
    addEventHandler("onClientElementDataChange", root,
    function(dataName,oldData)
    	if getElementType(source) == "player" and source == localPlayer then
    		if dataName == "Group" then
    			if getElementData(localPlayer, "Group") then
    				guiSetText(Name_Group_Label,"Clan name: "..getElementData(localPlayer, "Group"))
    				guiSetEnabled(Create_Group_Button, false)
    				guiSetEnabled(Leave_Group_Button, true)
    				guiSetEnabled(Members_Group_Button, true)
    				guiSetEnabled(InfoEdit_Group_Button, true)
    				guiSetEnabled(Group_Rank_Button, true)
    				guiSetEnabled(Group_Bank_Button, true)
    				guiSetEnabled(Group_History_Button, true)
    				guiSetEnabled(Group_BlackList_Button, true)
    				bindKey("y","down","chatbox","GroupChat")
    			else
    				guiSetText(Name_Group_Label,"Clan name: -")
    				guiSetEnabled(Create_Group_Button, true)
    				guiSetEnabled(Leave_Group_Button, false)
    				guiSetEnabled(Members_Group_Button, false)
    				guiSetEnabled(InfoEdit_Group_Button, false)
    				guiSetEnabled(Group_Rank_Button, false)
    				guiSetEnabled(Group_Bank_Button, false)
    				guiSetEnabled(Group_History_Button, false)
    				guiSetEnabled(Group_BlackList_Button, false)
    				unbindKey("y","down","chatbox","GroupChat")
    			end
    		elseif dataName == "GroupRank" then
    			local value = getElementData(localPlayer, dataName)
    			if type(value) == "table" then
    				updateRankTable(value[1], value[2])
    			else
    				updateRankTable({}, false)
    			end
    		end
    		if dataName ~= "GroupRank" and dataName ~= "Group" then return end
    		guiSetEnabled(Promote_Button, false)
    		guiSetEnabled(Demote_Button, false)
    		guiSetEnabled(WL_Button, false)
    		guiSetEnabled(Mute_Button, false)
    		guiSetEnabled(Group_Info_ButtonSave, false)
    		guiMemoSetReadOnly(ViewGroup_Info_Memo, true)
    		guiSetEnabled(Admin_Group_Button, false)
    		guiSetEnabled(InvitesPlayer_Group_Button, false)
    		guiSetEnabled(Group_History_Button, false)
    		guiSetEnabled(Group_BlackList_Button, false)
    		guiSetEnabled(GroupBank_Deposit_Button, false)
    		guiSetEnabled(GroupBank_GiveMember_Button, false)
    		guiSetEnabled(GroupBank_Withdraw_Button, false)
    		guiSetEnabled(GroupBank_GiveAll_Button, false)
    		if PermissionTable["1"] then
    		    -- guiSetEnabled(Demote_Button, true)
    		end
    		if PermissionTable["2"] then
    			-- guiSetEnabled(Promote_Button, true)
    		end
    		if PermissionTable["3"] then
    			-- kick player
    		end
    		if PermissionTable["4"] then
    			-- promote player until thier own rank
    		end
    		if PermissionTable["5"] then -- edit info
    			guiSetEnabled(Group_Info_ButtonSave, true)
    			guiMemoSetReadOnly(ViewGroup_Info_Memo, false)
    		end
    		if PermissionTable["6"] then -- invite
    			guiSetEnabled(InvitesPlayer_Group_Button, true)
    		end
    		if PermissionTable["7"] then -- delete the group
    			guiSetEnabled(Admin_Group_Button, true)
    		end
    		if PermissionTable["8"] then
    			-- view history
    			guiSetEnabled(Group_History_Button, true)
    		end
    		if PermissionTable["9"] then
    			-- demote player with same rank
    		end
    		if PermissionTable["10"] then
    			-- deposit money
    		guiSetEnabled(GroupBank_Deposit_Button, true)
    		end
    		if PermissionTable["11"] then
    			-- withdraw money
    			guiSetEnabled(GroupBank_Withdraw_Button, true)
    		end
    		if PermissionTable["12"] then
    			-- turf color
    		end
    		if PermissionTable["13"] then
    			-- chat color
    		end
    		if PermissionTable["14"] then
    			-- warn members
    		end
    		if PermissionTable["15"] then
    			guiSetEnabled(GroupBank_GiveAll_Button, true)
    		end
    		if PermissionTable["16"] then
    			--Mute Members
    		end
    		if PermissionTable["17"] then
    			-- give one member
    			guiSetEnabled(GroupBank_GiveMember_Button, true)
    		end
    		if PermissionTable["18"] then
    			guiSetEnabled(GroupHistory_Button_DeleteLo, true)
    		end
    		if PermissionTable["19"] then
    			guiSetEnabled(Group_BlackList_Button, true)
    		end
    		if PermissionTable["20"] then
    			guiSetEnabled(Group_BlackList_AccountAdd, true)
    		end
    		if PermissionTable["21"] then
    			guiSetEnabled(Group_BlackList_SerialAdd, true)
    		end
    		if PermissionTable["22"] then
    			guiSetEnabled(Group_BlackList_AccountRemove, true)
    		end
    		if PermissionTable["23"] then
    			guiSetEnabled(Group_BlackList_SerialRemove, true)
    		end
    	end
    end)
    
    function on_Group_Click()
    	if source == Create_Group_Button then
    		local GroupName = tostring(guiGetText(Create_Group_Edit))
    		if GroupName ~= "" then
    			triggerServerEvent("Create_Group", localPlayer, GroupName)
    			triggerServerEvent("Send_Groups_List",localPlayer)
    		end
    	elseif source == GroupList_Group_Button then
    		guiSetVisible(Group_List_Window, not guiGetVisible(Group_List_Window))
    		guiBringToFront(Group_List_Window)
    		triggerServerEvent("Send_Groups_List",localPlayer)
    	elseif source == Close_Group_Button then
    		guiSetVisible(Groups_Window, false)
    		guiSetVisible(Group_List_Window, false)
    		guiSetVisible(Group_Invite_Window, false)
    		guiSetVisible(myGroup_Invite_Window, false)
    		guiSetVisible(MyGroup_Members_Window, false)
    		guiSetVisible(Group_Leader_Window, false)
    		guiSetVisible(Group_Rank_Window, false)
    		guiSetVisible(Add_Rank_Window, false)
    		guiSetVisible(Edit_Rank_Window, false)
    		guiSetVisible(CheckRemoveRankWindow, false)
    		guiSetVisible(Promote_Demote_Window, false)
    		guiSetVisible(Warn_Window, false)
    		guiSetVisible(GroupBank_Window, false)
    		guiSetVisible(Group_History_Window,false)
    		guiSetVisible(Group_BlackList_Window, false)
    		guiSetVisible(Group_BlackList_Block_Windowserial, false)
    		guiSetVisible(Group_BlackList_Block_Window, false)
    		showCursor(false)
    		setElementData(localPlayer, "MTAWindowActive", false)
    	elseif source == myInvites_Group_Button then
    		guiSetVisible(myGroup_Invite_Window, not guiGetVisible(myGroup_Invite_Window))
    		guiBringToFront(myGroup_Invite_Window)
    		triggerServerEvent("Request_Invite_List", localPlayer)
    	elseif source == Admin_Group_Button then
    		guiSetVisible(Group_Leader_Window, not guiGetVisible(Group_Leader_Window))
    		guiBringToFront(Group_Leader_Window)
    	elseif source == Group_Rank_Button then
    		guiSetVisible(Group_Rank_Window, not guiGetVisible(Group_Rank_Window))
    		guiBringToFront(Group_Rank_Window)
    	elseif source == Group_List_Button then
    		guiSetVisible(Group_List_Window, false)
    	elseif source == Leave_Group_Button then
    		if getElementData(localPlayer,"Group") then
    			guiSetVisible(CheckLeaveWindow, true)
    			guiBringToFront(CheckLeaveWindow)
    			guiSetText(CheckLeaveWindow, "Leave the clan'"..getElementData(localPlayer, "Group").."'")
    		end
    	elseif source == YesLeaveGroup then
    		if getElementData(localPlayer,"Group") then
    			triggerServerEvent("Leave_Group", localPlayer)
    		end
    		guiSetVisible(CheckLeaveWindow, false)
    	elseif source == NoLeaveGroup then
    		guiSetVisible(CheckLeaveWindow, false)
    	elseif source == Close_Group_Invite_Button then
    		guiSetVisible(myGroup_Invite_Window, false)
    	elseif source == Group_Invite_Button then
    		local InvPlayer = guiGridListGetItemText(Group_Invite_Grid,guiGridListGetSelectedItem(Group_Invite_Grid),1)
    		local InvitedPlayer = getPlayerFromName(InvPlayer)
    		if InvitedPlayer and not getElementData(InvitedPlayer, "Group") then
    			triggerServerEvent("Invite_Player", localPlayer, getElementData(localPlayer, "Group"), InvitedPlayer)
    			guiSetVisible(Group_Invite_Window, false)
    		end
    	elseif source == InvitesPlayer_Group_Button then
    		guiSetVisible(Group_Invite_Window, not guiGetVisible(Group_Invite_Window))
    		guiBringToFront(Group_Invite_Window)
    		guiGridListClear(Group_Invite_Grid)
    		for i, player in pairs(getElementsByType("player")) do
    			if not getElementData(player, "Group") then
    				local row = guiGridListAddRow(Group_Invite_Grid)
    				guiGridListSetItemText(Group_Invite_Grid, row, 1, getPlayerName(player), false, false)
    			end
    		end
    	elseif source == Accept_Group_Invite_Button then
    		local AccGroup = tostring(guiGridListGetItemText(myGroup_Invite_Grid,guiGridListGetSelectedItem(myGroup_Invite_Grid),1))
    		if AccGroup ~= "" and not getElementData(localPlayer,"Group") then
    			triggerServerEvent("Accept_Invite", localPlayer, AccGroup)
    		end
    	elseif source == Reject_Group_Invite_Button then
    		local AccGroup = tostring(guiGridListGetItemText(myGroup_Invite_Grid,guiGridListGetSelectedItem(myGroup_Invite_Grid),1))
    		if AccGroup ~= "" then
    			triggerServerEvent("Reject_Invite", localPlayer, AccGroup)
    		end
    	elseif source == Group_Invite_Close then
    		guiSetVisible(Group_Invite_Window,false)
    	elseif source == Group_Leader_Close then
    		guiSetVisible(Group_Leader_Window,false)
    	elseif source == InfoEdit_Group_Button then
    		guiSetVisible(Group_Info_Window,not guiGetVisible(Group_Info_Window))
    		guiBringToFront(Group_Info_Window)
    		guiSetInputEnabled(true)
    		triggerServerEvent("Request_Group_Info",localPlayer,getElementData(localPlayer,"Group"))
    	elseif source == Group_Info_ButtonSave then
    		local infoText = tostring(guiGetText(Group_Info_Memo))
    		if infoText ~= "" then
    			triggerServerEvent("update_Group_Info",localPlayer,getElementData(localPlayer,"Group"),infoText)
    		end
    	elseif source == Group_Info_ButtonClose then
    		guiSetVisible(Group_Info_Window,false)
    		guiSetInputEnabled(true)
    	elseif source == Group_CloseRankWindow then
    		guiSetVisible(Group_Rank_Window, false)
    	end
    end
    addEventHandler("onClientGUIClick", resourceRoot, on_Group_Click)
    
    addEvent("onLeave_Group", true)
    addEventHandler("onLeave_Group", root,
    function ()
    	guiSetText(Name_Group_Label, "Group Name: No Group")
    	guiSetEnabled(Create_Group_Button, true)
    	guiSetEnabled(Leave_Group_Button, false)
    	guiSetEnabled(InvitesPlayer_Group_Button, false)
    	guiSetEnabled(InfoEdit_Group_Button, false)
    	guiSetEnabled(Admin_Group_Button, false)
    	guiSetEnabled(Members_Group_Button, false)
    end)
    
    addEvent("Set_Top_Kills", true)
    addEventHandler("Set_Top_Kills", root,
    function (killtable)
    	for index, group in pairs(sortTable(killtable)) do
    		local row = guiGridListAddRow(Group_TopKill_Points)
    		guiGridListSetItemText(Group_TopKill_Points, row, 1, tostring("["..index.."]"), false, false)
    		guiGridListSetItemText(Group_TopKill_Points, row, 2, tostring(group.group), false, false)
    		guiGridListSetItemText(Group_TopKill_Points, row, 3, tostring(group.points), false, false)
    		if index == 1 or index == 2 or index == 3 then
    			guiGridListSetItemColor(Group_TopKill_Points, row, 1, 0, 255, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 2, 0, 255, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 3, 0, 255, 0)
    		elseif index == 4 or index == 5 or index == 6 then
    			guiGridListSetItemColor(Group_TopKill_Points, row, 1, 255, 255, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 2, 255, 255, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 3, 255, 255, 0)
    		elseif index == 7 or index == 8 or index == 9 then
    			guiGridListSetItemColor(Group_TopKill_Points, row, 1, 255, 170, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 2, 255, 170, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 3, 255, 170, 0)
    		elseif index >= 10 then
    			guiGridListSetItemColor(Group_TopKill_Points, row, 1, 255, 0, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 2, 255, 0, 0)
    			guiGridListSetItemColor(Group_TopKill_Points, row, 3, 255, 0, 0)
    		end
    		if index >= 10 then
    			guiGridListRemoveRow (Group_TopKill_Points, index)
    			break
            end
    	end
    end
    )
    
    addEvent("Set_Top_Turf", true)
    addEventHandler("Set_Top_Turf", root,
    function (toptable)
    	for index, group in pairs(sortTable(toptable)) do
    		local row = guiGridListAddRow(Group_TopTurf_Points)
    		guiGridListSetItemText(Group_TopTurf_Points, row, 1, tostring("["..index.."]"), false, false)
    		guiGridListSetItemText(Group_TopTurf_Points, row, 2, tostring(group.group), false, false)
    		guiGridListSetItemText(Group_TopTurf_Points, row, 3, tostring(group.points), false, false)
    		if index == 1 or index == 2 or index == 3 then
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 1, 0, 255, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 2, 0, 255, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 3, 0, 255, 0)
    		elseif index == 4 or index == 5 or index == 6 then
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 1, 255, 255, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 2, 255, 255, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 3, 255, 255, 0)
    		elseif index == 7 or index == 8 or index == 9 then
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 1, 255, 170, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 2, 255, 170, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 3, 255, 170, 0)
    		elseif index >= 10 then
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 1, 255, 0, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 2, 255, 0, 0)
    			guiGridListSetItemColor(Group_TopTurf_Points, row, 3, 255, 0, 0)
    		end
    		if index >= 20 then
    			guiGridListRemoveRow (Group_TopTurf_Points, index)
    			break
            end
    	end
    end
    )
    
    addEvent("Set_Top_Bank", true)
    addEventHandler("Set_Top_Bank", root,
    function (banktable)
    	guiGridListClear(Group_TopBank_List)
    	for index, group in pairs(sortTable(banktable)) do
    		local row = guiGridListAddRow(Group_TopBank_List)
    		guiGridListSetItemText(Group_TopBank_List, row, 1, tostring("["..index.."]"), false, false)
    		guiGridListSetItemText(Group_TopBank_List, row, 2, tostring(group.group), false, false)
    		guiGridListSetItemText(Group_TopBank_List, row, 3, tostring("$"..group.points), false, false)
    		if index == 1 or index == 2 or index == 3 then
    			guiGridListSetItemColor(Group_TopBank_List, row, 1, 0, 255, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 2, 0, 255, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 3, 0, 255, 0)
    		elseif index == 4 or index == 5 or index == 6 then
    			guiGridListSetItemColor(Group_TopBank_List, row, 1, 255, 255, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 2, 255, 255, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 3, 255, 255, 0)
    		elseif index == 7 or index == 8 or index == 9 then
    			guiGridListSetItemColor(Group_TopBank_List, row, 1, 255, 170, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 2, 255, 170, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 3, 255, 170, 0)
    		elseif index >= 10 then
    			guiGridListSetItemColor(Group_TopBank_List, row, 1, 255, 0, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 2, 255, 0, 0)
    			guiGridListSetItemColor(Group_TopBank_List, row, 3, 255, 0, 0)
    		end
    		if index >= 10 then
    			guiGridListRemoveRow (Group_TopBank_List, index)
    			break
            end	
    	end
    end
    )
    
    function sortTable(theTable)
        local rowdata = {}
        for index, group in pairs(theTable) do
            rowdata[index] = {
    			group = group[1],
    			points = group[2],
            }
        end
        local comparator = function (a, b) 
            return (tonumber(a.points) or 0) > (tonumber(b.points) or 0) 
        end
        table.sort(rowdata, comparator)
        return rowdata
    end
    
    addEvent("GroupList", true)
    addEventHandler("GroupList", root,
    function(groups)
    	guiGridListClear(Group_List_Grid)
    	GroupTotal = 0
    	MemberTotal = 0
    	for i, group in pairs(groups) do
    		rowsa = guiGridListAddRow(Group_List_Grid)
    		GroupTotal = GroupTotal + 1
    		MemberTotal = MemberTotal + group["group_members"]
    		guiGridListSetItemText(Group_List_Grid, rowsa, 1, group["group_name"], false, false)
    		guiGridListSetItemText(Group_List_Grid, rowsa, 2, group["group_members"].."/"..group["members_limit"], false, true)
    		guiGridListSetItemText(Group_List_Grid, rowsa, 3, group["group_owner"], false, false)
    	end
    	guiSetText(Total_Groups, "Total clans: "..GroupTotal)
    	guiSetText(Total_Groups_Members, "Total clans: "..MemberTotal)
    end)
    
    function sortTable(theTable)
        local rowdata = {}
        for index, groups in pairs(theTable) do
            rowdata[index] = {
                group = groups[1],
                points = groups[2],
            }
        end
        local comparator = function (a, b) 
            return (tonumber(a.points) or 0) > (tonumber(b.points) or 0) 
        end
        table.sort(rowdata, comparator)
        return rowdata
    end
    
    addEvent("Send_Group_Info", true)
    addEventHandler("Send_Group_Info", root,
    function(theInfo)
    	guiSetText(Group_Info_Memo,theInfo)
    end)
    
    addEvent("Send_Invite_List", true)
    addEventHandler("Send_Invite_List", root,
    function(Invite)
    	guiGridListClear(myGroup_Invite_Grid)
    	invCont = 0
    	if Invite then
    		for i, Inv in pairs(Invite) do
    			local row = guiGridListAddRow(myGroup_Invite_Grid)
    			guiGridListSetItemText(myGroup_Invite_Grid, row, 1, Inv["group_name"], false, false)
    			guiGridListSetItemText(myGroup_Invite_Grid, row, 2, Inv["byy"], false, false)
    			invCont = invCont + 1
    		end
    	end
    	guiSetText(myInvites_Group_Label, "Invitations: "..invCont)
    end)
    
    Group_TopKill_Window = guiCreateWindow(x/2-185,y/2-225, 341, 445, "Top kills", false)
    guiWindowSetSizable(Group_TopKill_Window, false)
    guiSetVisible(Group_TopKill_Window, false)
    guiSetAlpha (Group_TopKill_Window,1)
    		
    Group_TopKill_Points = guiCreateGridList(9, 26, 322, 370, false, Group_TopKill_Window)
    guiGridListAddColumn(Group_TopKill_Points, "#", 0.3)
    guiGridListAddColumn(Group_TopKill_Points, "Clan", 0.3)
    guiGridListAddColumn(Group_TopKill_Points, "Score", 0.3)
    Group_TopKill_Close = guiCreateButton(113, 411, 114, 24, "Close", false, Group_TopKill_Window) 
    
    Group_TopBank_Window = guiCreateWindow(x/2-185,y/2-225, 341, 445, "Top banks", false)
    guiWindowSetSizable(Group_TopBank_Window, false)
    guiSetVisible(Group_TopBank_Window, false)
    guiSetAlpha (Group_TopBank_Window,1)
    		
    Group_TopBank_List = guiCreateGridList(9, 26, 322, 370, false, Group_TopBank_Window)
    guiGridListAddColumn(Group_TopBank_List, "#", 0.3)
    guiGridListAddColumn(Group_TopBank_List, "Clan", 0.3)
    guiGridListAddColumn(Group_TopBank_List, "Money", 0.3)
    Group_TopBank_Close = guiCreateButton(113, 411, 114, 24, "Close", false, Group_TopBank_Window)
    
    Group_TopTurf_Window = guiCreateWindow(x / 2-185, y / 2-225, 341, 445, "Top Territories", false)
    guiWindowSetSizable(Group_TopTurf_Window, false)
    guiSetVisible(Group_TopTurf_Window, false)
    guiSetAlpha(Group_TopTurf_Window, 1)
    
    Group_TopTurf_Points = guiCreateGridList(9, 26, 322, 370, false, Group_TopTurf_Window)
    guiGridListAddColumn(Group_TopTurf_Points, "#", 0.3)
    guiGridListAddColumn(Group_TopTurf_Points, "Clan", 0.3)
    guiGridListAddColumn(Group_TopTurf_Points, "Count", 0.3)
    Group_TopTurf_Close = guiCreateButton(113, 411, 114, 24, "Close", false, Group_TopTurf_Window)
    
    Group_List_Window = guiCreateWindow(x / 2-185, y / 2-225,370,440, "Clan List", false)
    guiSetAlpha(Group_List_Window, 1)
    guiWindowSetSizable(Group_List_Window,false)
    Group_List_Grid = guiCreateGridList(19,28,330,350,false,Group_List_Window)
    guiGridListSetSelectionMode(Group_List_Grid,1)
    guiGridListAddColumn(Group_List_Grid, "Clan", 0.25)
    guiGridListAddColumn(Group_List_Grid, "Members", 0.30)
    guiGridListAddColumn(Group_List_Grid, "Creator", 0.45)
    
    guiSetVisible(Group_List_Window, false)
    Total_Groups = guiCreateLabel (20,385,191,17, "Total clans: 0", false, Group_List_Window)
    Total_Groups_Members = guiCreateLabel(230,385,191,17, "Total Members: 0", false, Group_List_Window)
    Group_List_Button = guiCreateButton(150,408,68,25, "Close", false, Group_List_Window)
    Group_Invite_Window = guiCreateWindow(x / 2-140, y / 2-201,280,402, "Prompt Window", false)
    guiSetAlpha(Group_Invite_Window, 1)
    
    guiSetVisible(Group_Invite_Window, false)
    guiWindowSetSizable(Group_Invite_Window,false)
    Group_Invite_Grid = guiCreateGridList(10,60,261,247,false,Group_Invite_Window)
    guiGridListSetSelectionMode(Group_Invite_Grid,2)
    guiGridListAddColumn(Group_Invite_Grid,"Player",0.9)
    Group_Invite_Label1 = guiCreateLabel(41,313,191,17,"",false,Group_Invite_Window)
    Group_Invite_Label2 = guiCreateLabel(74,335,128,20,"",false,Group_Invite_Window)
    Group_Invite_Button = guiCreateButton(11,367,101,24, "Invite", false, Group_Invite_Window)
    Group_Invite_Close = guiCreateButton(166,367,99,24, "Close", false, Group_Invite_Window)
    
    ImageSearch = guiCreateStaticImage(242,30,22,22,"Search.png",false,Group_Invite_Window)
    PlayerNameSearch = guiCreateEdit(10,30,220,20,"",false,Group_Invite_Window)
    
    function SearchName()
         if (source == PlayerNameSearch) then
              guiGridListClear(Group_Invite_Grid)
              local text = guiGetText(source)
              if (text == "") then
                   for i, player in pairs(getElementsByType("player")) do
                        if not getElementData(player, "Group") then
                             local row = guiGridListAddRow(Group_Invite_Grid)
                             guiGridListSetItemText(Group_Invite_Grid, row, 1, getPlayerName(player), false, false)
                        end
                   end
              else
                   for i, player in pairs(getElementsByType("player")) do
                        if not getElementData(player, "Group") then
                             if string.find (string.upper(getPlayerName(player)), string.upper(text), 1, true) then
                                  local row = guiGridListAddRow(Group_Invite_Grid)
                                  guiGridListSetItemText(Group_Invite_Grid, row, 1, getPlayerName(player), false, false)
                             end
                        end
                   end
              end
         end
    end
    addEventHandler("onClientGUIChanged", PlayerNameSearch, SearchName)
    
    myGroup_Invite_Window = guiCreateWindow(x / 2-259, y / 2-124,518,248, "Clan Invitations", false)
    guiSetAlpha(myGroup_Invite_Window, 1)
    guiSetVisible(myGroup_Invite_Window, false)
    guiWindowSetSizable(myGroup_Invite_Window, false)
    myGroup_Invite_Grid = guiCreateGridList(12,32,491,156, false, myGroup_Invite_Window)
    guiGridListSetSelectionMode(myGroup_Invite_Grid, 1)
    guiGridListAddColumn(myGroup_Invite_Grid, "Clan Invite", 0.4)
    guiGridListAddColumn(myGroup_Invite_Grid, "Name of the person who invited you", 0.55)
    Accept_Group_Invite_Button = guiCreateButton(20,200,150,32, "Accept invitation", false, myGroup_Invite_Window)
    Reject_Group_Invite_Button = guiCreateButton(175,200,150,32, "Reject invitation", false, myGroup_Invite_Window)
    Close_Group_Invite_Button = guiCreateButton(390,200,105,32, "Close", false, myGroup_Invite_Window)
    
    Group_Leader_Window = guiCreateWindow(x / 2-155, y / 2-100,313,245, "Deleting Clan", false)
    guiSetAlpha(Group_Leader_Window, 1)
    guiSetVisible(Group_Leader_Window, false)
    guiWindowSetSizable(Group_Leader_Window, false)
    
    Group_Leader_Label1 = guiCreateLabel(12,26,293,14, "Deleting clan", false, Group_Leader_Window)
    Group_Leader_Edit1 = guiCreateEdit(176,59,121,29, "", false, Group_Leader_Window)
    Group_Leader_Edit2 = guiCreateEdit(176,99,121,29, "", false, Group_Leader_Window)
    Group_Leader_Edit3 = guiCreateEdit(176,139,121,29, "", false, Group_Leader_Window)
    Group_Leader_Label2 = guiCreateLabel(52,65,116,16, "Clan name:", false, Group_Leader_Window)
    Group_Leader_Label3 = guiCreateLabel(8,107,160,16, "Login confirmation:", false, Group_Leader_Window)
    Group_Leader_Label4 = guiCreateLabel(18,145,148,16, "Password confirmation:", false, Group_Leader_Window)
    Group_Leader_Label5 = guiCreateLabel(11,201,44,13, "Click Here", false, Group_Leader_Window)
    Group_Leader_Label6 = guiCreateLabel(11,221,54,13, "to delete", false, Group_Leader_Window)
    Group_Leader_Checkbox = guiCreateCheckBox(63,208,15,16, "", false, false, Group_Leader_Window)
    Group_Leader_Delete = guiCreateButton(92,205,119,28, "Delete", false, Group_Leader_Window)
    Group_Leader_Close = guiCreateButton(233,205,71,28, "Close", false, Group_Leader_Window)
    guiEditSetMasked(Group_Leader_Edit3,true)
    
    function on_Group_LeaderClick()
    	if guiCheckBoxGetSelected(Group_Leader_Checkbox) then
    		local GroupName = guiGetText(Group_Leader_Edit1)
    		local AccountName = guiGetText(Group_Leader_Edit2)
    		local AccountPassword = guiGetText(Group_Leader_Edit3)
    		if GroupName == "" then
    			outputChatBox("#FFFF00[Clan System] #FFFFFFPlease enter your clan name.", 255, 255, 255, true)
    		elseif AccountName == "" then
    			outputChatBox("#FFFF00[Clan system] #FFFFFFPlease enter your username.", 255, 255, 255, true)
    		elseif AccountPassword == "" then
    			outputChatBox("#FFFF00[Clan system] #FFFFFFPlease enter your password.", 255, 255, 255, true)
    		else
    			triggerServerEvent("Leader_Group_Delete", localPlayer, GroupName, AccountName, AccountPassword)
    		end
    	end
    end
    addEventHandler("onClientGUIClick", Group_Leader_Delete,on_Group_LeaderClick, false)
    
    MyGroup_Members_Window = guiCreateWindow(x / 2-291, y / 2-250, 642, 546, "Clan Membership", false)
    guiSetAlpha(MyGroup_Members_Window, 1)
    guiSetVisible(MyGroup_Members_Window, false)
    guiWindowSetSizable(MyGroup_Members_Window, false)
    
    MyGroup_Members_Grid = guiCreateGridList(20, 29, 602, 335, false, MyGroup_Members_Window)
    guiGridListSetSelectionMode(MyGroup_Members_Grid, 1)
    guiGridListAddColumn(MyGroup_Members_Grid, "Nick", 0.3)
    guiGridListAddColumn(MyGroup_Members_Grid, "Login", 0.23)
    guiGridListAddColumn(MyGroup_Members_Grid, "Rank", 0.15)
    guiGridListAddColumn(MyGroup_Members_Grid, "Last Login", 0.15)
    guiGridListAddColumn(MyGroup_Members_Grid, "WR", 0.1)
    
    Redt = guiCreateEdit(137, 427, 82, 25, "0", false, MyGroup_Members_Window) - Turf
    Greent = guiCreateEdit(240, 427, 82, 25, "0", false, MyGroup_Members_Window)
    Bluet = guiCreateEdit(344, 427, 82, 25, "0", false, MyGroup_Members_Window)
    ALabel = guiCreateLabel(41, 431, 86, 15, "Territories: ", false, MyGroup_Members_Window)
    SetTurfColor = guiCreateButton(436, 428, 108, 24, "Set", false, MyGroup_Members_Window)
    
    TAPLLABEL = guiCreateLabel(41, 462, 86, 15, "Chat color:", false, MyGroup_Members_Window) --Chat
    Redc = guiCreateEdit(137, 456, 82, 25, "0", false, MyGroup_Members_Window)
    Greenc = guiCreateEdit(240, 456, 82, 25, "0", false, MyGroup_Members_Window)
    Bluec = guiCreateEdit(344, 456, 82, 25, "0", false, MyGroup_Members_Window)
    SetChatColor = guiCreateButton(436, 457, 108, 24, "Set", false, MyGroup_Members_Window)
    
    Alabeltag = guiCreateLabel(41, 491, 88, 15, "Clan tag color:", false, MyGroup_Members_Window) --Tag
    Redta = guiCreateEdit(137, 487, 82, 25, "0", false, MyGroup_Members_Window)
    Greenta = guiCreateEdit(240, 487, 82, 25, "0", false, MyGroup_Members_Window)
    Blueta = guiCreateEdit(344, 487, 82, 25, "0", false, MyGroup_Members_Window)
    setTagColor = guiCreateButton(436, 488, 108, 24, "Set", false, MyGroup_Members_Window)
    
    addEventHandler("onClientRender",root,
    function ()
    	local Red = tonumber ( guiGetText ( Redt ) )
    	local Green = tonumber ( guiGetText ( Greent ) )
    	local Blue = tonumber ( guiGetText ( Bluet ) )
    	local r = tonumber ( guiGetText ( Redc ) )
    	local g = tonumber ( guiGetText ( Greenc ) )
    	local b = tonumber ( guiGetText ( Bluec ) )
    	local rt = tonumber ( guiGetText ( Redta ) )
    	local gt = tonumber ( guiGetText ( Greenta ) )
    	local bt = tonumber ( guiGetText ( Blueta ) )
    
    end
    )
    
    function fix()
      if guiGetText(Redt) ~= "" then
        local input = tonumber(guiGetText(Redt))
        if not input then
          guiSetText(Redt, string.gsub(guiGetText(Redt), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Redt, "255")
        elseif input < 0 then
          guiSetText(Redt, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Redt,fix)
    
    function fix()
      if guiGetText(Greent) ~= "" then
        local input = tonumber(guiGetText(Greent))
        if not input then
          guiSetText(Greent, string.gsub(guiGetText(Greent), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Greent, "255")
        elseif input < 0 then
          guiSetText(Greent, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Greent,fix)
    
    function fix()
      if guiGetText(Bluet) ~= "" then
        local input = tonumber(guiGetText(Bluet))
        if not input then
          guiSetText(Bluet, string.gsub(guiGetText(Bluet), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Bluet, "255")
        elseif input < 0 then
          guiSetText(Bluet, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Bluet,fix)
    -----------------------
    function fix()
      if guiGetText(Redc) ~= "" then
        local input = tonumber(guiGetText(Redc))
        if not input then
          guiSetText(Redc, string.gsub(guiGetText(Redc), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Redc, "255")
        elseif input < 0 then
          guiSetText(Redc, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Redc,fix)
    
    function fix()
      if guiGetText(Greenc) ~= "" then
        local input = tonumber(guiGetText(Greenc))
        if not input then
          guiSetText(Greenc, string.gsub(guiGetText(Greenc), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Greenc, "255")
        elseif input < 0 then
          guiSetText(Greenc, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Greenc,fix)
    
    function fix()
      if guiGetText(Bluec) ~= "" then
        local input = tonumber(guiGetText(Bluec))
        if not input then
          guiSetText(Bluec, string.gsub(guiGetText(Bluec), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Bluec, "255")
        elseif input < 0 then
          guiSetText(Bluec, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Bluec,fix)
    ------------------------------------------------------
    
    function fix()
      if guiGetText(Redta) ~= "" then
        local input = tonumber(guiGetText(Redta))
        if not input then
          guiSetText(Redta, string.gsub(guiGetText(Redta), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Redta, "255")
        elseif input < 0 then
          guiSetText(Redta, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Redta,fix)
    
    function fix()
      if guiGetText(Greenta) ~= "" then
        local input = tonumber(guiGetText(Greenta))
        if not input then
          guiSetText(Greenta, string.gsub(guiGetText(Greenta), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Greenta, "255")
        elseif input < 0 then
          guiSetText(Greenta, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Greenta,fix)
    
    function fix()
      if guiGetText(Blueta) ~= "" then
        local input = tonumber(guiGetText(Blueta))
        if not input then
          guiSetText(Blueta, string.gsub(guiGetText(Blueta), "[^%d]", ""))
        elseif input > 255 then
          guiSetText(Blueta, "255")
        elseif input < 0 then
          guiSetText(Blueta, "0")
        end
      end
      return
    end
    addEventHandler("onClientGUIChanged",Blueta,fix)
    --------------------------------------------
    Promote_Button = guiCreateButton (19, 374, 120, 32, "Promote", false, MyGroup_Members_Window)
    Demote_Button = guiCreateButton (150, 374, 120, 32, "Demote", false, MyGroup_Members_Window)
    WL_Button = guiCreateButton (281, 374, 135, 32, "Warning Level", false, MyGroup_Members_Window)
    Mute_Button = guiCreateButton (426, 373, 118, 33, "Mut", false, MyGroup_Members_Window)
    BlipCheck = guiCreateCheckBox (41, 521, 268, 15, "Blip clan members", false, false, MyGroup_Members_Window)
    
    MyGroup_Members_Close = guiCreateButton (554, 373, 75, 32, "Close", false, MyGroup_Members_Window)
    
    Promote_Demote_Window = guiCreateWindow (x / 2-129.5, y / 2-115, 259, 230, "", false)
    guiSetVisible (Promote_Demote_Window, false)
    guiWindowSetSizable (Promote_Demote_Window, false)
    guiSetAlpha (Promote_Demote_Window, 1)
    
    Promote_Demote_Combobox = guiCreateComboBox (15, 22, 228, 120, "Select Rank", false, Promote_Demote_Window)
    Promote_Demote_Name = guiCreateLabel (22, 50, 216, 17, "", false, Promote_Demote_Window)
    Promote_Demote_AccountName = guiCreateLabel (22, 75, 144, 16, "", false, Promote_Demote_Window)
    Promote_Demote_Rank = guiCreateLabel (22, 100, 141, 19, "Current Rank: Trial", false, Promote_Demote_Window)
    Promote_Demote_Reason = guiCreateLabel (82, 125, 95, 19, "Reason:", false, Promote_Demote_Window)
    Promote_Demote_Edit = guiCreateEdit (9, 146, 240, 27, "", false, Promote_Demote_Window)
    Promote_Demote_Button = guiCreateButton (9, 188, 112, 30, "", false, Promote_Demote_Window)
    Promote_Demote_Cancel = guiCreateButton (137, 188, 112, 30, "Close", false, Promote_Demote_Window)
    
    Warn_Window = guiCreateWindow(x/2-164,y/2-92, 328, 184, "", false)
    guiSetVisible(Warn_Window, false)
    guiWindowSetSizable(Warn_Window, false)
    guiSetAlpha(Warn_Window,1)
    
    guiCreateLabel (114, 28, 109, 19, "Warning Level", false, Warn_Window)
    Warn_Bar = guiCreateProgressBar (10, 50, 255, 23, false, Warn_Window)
    Warn_Edit = guiCreateEdit (270, 50, 45, 23, "", false, Warn_Window)
    guiCreateLabel (114, 83, 109, 19, "Reason", false, Warn_Window)
    Warn_Reason_Edit = guiCreateEdit (9, 108, 304, 24, "", false, Warn_Window)
    SetWarn_Button = guiCreateButton (10, 141, 141, 33, "Set", false, Warn_Window)
    CancelWarn_Button = guiCreateButton (177, 141, 141, 33, "Close", false, Warn_Window)
    
    addEventHandler("onClientGUIClick",root,
    function ()
    	if source == Mute_Button then
    	local selectedItem = guiGridListGetItemText(MyGroup_Members_Grid, guiGridListGetSelectedItem(MyGroup_Members_Grid),1)
    	local Player = getPlayerFromName(selectedItem)
    		if selectedItem ~= "" and selectedItem ~= getPlayerName(localPlayer) then
    			triggerServerEvent ( "groupMutePlayer", localPlayer, Player )
    		end
    	end
    end
    )
    
    addEventHandler("onClientGUIClick",root,
    function ()
    	if source == BlipCheck then
    		if guiCheckBoxGetSelected(BlipCheck) == true then
    			createGroupBlips ()
    			addEventHandler("onClientPlayerQuit", root, destroyGroupBlipsOnQuit)
    		else
    			destroyGroupBlips ()
    			removeEventHandler("onClientPlayerQuit", root, destroyGroupBlipsOnQuit)
    		end
    	end
    end
    )
    --------------------------------------
    
    function createGroupBlips()
    	for k, v in ipairs(getElementsByType("player")) do
    		if getElementData(v, "Group") == getElementData(localPlayer,"Group") then
    			GroupBlip = createBlipAttachedTo(v, 25)
    			setElementData(GroupBlip, "GroupBlips","True")
    		end
    	end
    end
    
    function destroyGroupBlips()
    	for k, v in ipairs(getElementsByType("player")) do
    		if getElementData(v,"Group") == getElementData(localPlayer,"Group") then
    			for i, members in ipairs (getAttachedElements(v)) do
    				if getElementType(members) == "blip" and getElementData(members, "GroupBlips") == "True" then
    					destroyElement(members)
    				end
    			end
    		end
    	end
    end
    
    function destroyGroupBlipsOnQuit()
    	for k, v in ipairs(getElementsByType("player")) do
    		if getElementData(v, "Group") == getElementData(localPlayer, "Group") then
    			for i, memb in ipairs (getAttachedElements(localPlayer)) do
    				if getElementType(memb) and getElementData(memb, "GroupBlips") == "True" then
    					destroyElement(memb)
    				end
    			end
    		end
    	end
    end
    
    function on_MyGroup_MemberClick()
    	if source == Members_Group_Button then
    		guiSetVisible(MyGroup_Members_Window,not guiGetVisible(MyGroup_Members_Window))
    		guiGridListClear(MyGroup_Members_Grid)
    		guiBringToFront(MyGroup_Members_Window)
    		triggerServerEvent("Request_myGroup_MembersList", localPlayer, getElementData(localPlayer,"Group"))
    		if PermissionTable["13"] then
    			guiSetEnabled(SetChatColor, true)
    			guiSetEnabled(setTagColor, true)
    		else
    			guiSetEnabled(SetChatColor, false)
    			guiSetEnabled(setTagColor, false)
    		end
    		if PermissionTable["12"] then
    			guiSetEnabled(SetTurfColor, true)
    		else
    			guiSetEnabled(SetTurfColor, false)
    		end
    	elseif source == MyGroup_Members_Grid then
    		local Name = guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),1)
    		if Name ~= "" and Name ~= getPlayerName(localPlayer) then
    			if PermissionTable["2"] then
    				guiSetEnabled(Promote_Button, true)
    			else
    				guiSetEnabled(Promote_Button, false)
    			end
    			if PermissionTable["3"] then
    				guiSetEnabled(Demote_Button, true)
    			else
    				guiSetEnabled(Demote_Button, false)
    			end
    			if PermissionTable["14"] then
    				guiSetEnabled(WL_Button, true)
    			else
    				guiSetEnabled(WL_Button, false)
    			end
    			if PermissionTable["16"] then
    				guiSetEnabled(Mute_Button, true)
    			else
    				guiSetEnabled(Mute_Button, false)
    			end
    		else
    			guiSetEnabled(Promote_Button, false)
    			guiSetEnabled(Demote_Button, false)
    			guiSetEnabled(WL_Button, false)
    			guiSetEnabled(Mute_Button, false)
    		end
    	elseif source == Promote_Button then
    		local Account = guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),2)
    		if Account ~= "" then
    			guiSetVisible(Promote_Demote_Window, true)
    			guiBringToFront(Promote_Demote_Window)
    			guiSetText (Promote_Demote_Window, "Promote Player")
    			setElementData (Promote_Demote_Window, "Who", Account, false)
    			guiSetText (Promote_Demote_Name, "Name:" ..guiGridListGetItemText (MyGroup_Members_Grid, guiGridListGetSelectedItem (MyGroup_Members_Grid), 1))
    			guiSetText (Promote_Demote_AccountName, "Account Name:" ..Account)
    			guiSetText (Promote_Demote_Rank, "Current Rank:" ..guiGridListGetItemText (MyGroup_Members_Grid, guiGridListGetSelectedItem (MyGroup_Members_Grid), 3))
    			guiSetText (Promote_Demote_Button, "Promote")
    			guiComboBoxClear(Promote_Demote_Combobox)
    			gPromote = false
    			for i = 0, guiGridListGetRowCount(Group_Rank_Gridlist)-1 do
    				if PermissionTable["2"] then
    					if guiGridListGetItemText(Group_Rank_Gridlist, i, 1) == guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),3) then
    						gPromote = true
    					end
    					if gPromote and guiGridListGetItemText(Group_Rank_Gridlist, i, 1) ~= guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),3) then
    						if PermissionTable["4"] then
    							if guiGridListGetItemText(Group_Rank_Gridlist, i, 1) == currentRank then
    								guiComboBoxAddItem(Promote_Demote_Combobox, guiGridListGetItemText(Group_Rank_Gridlist, i, 1))
    								break
    							else
    								guiComboBoxAddItem(Promote_Demote_Combobox, guiGridListGetItemText(Group_Rank_Gridlist, i, 1))
    							end
    						else
    							if guiGridListGetItemText(Group_Rank_Gridlist, i, 1) == currentRank then
    								break
    							else
    								guiComboBoxAddItem(Promote_Demote_Combobox, guiGridListGetItemText(Group_Rank_Gridlist, i, 1))
    							end
    						end
    					end
    				end
    			end
    		end
    	elseif source == Demote_Button then
    		local Account = guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),2)
    		if Account ~= "" then
    			guiSetVisible(Promote_Demote_Window, true)
    			guiBringToFront(Promote_Demote_Window)
    			guiSetText (Promote_Demote_Window, "Demote Player")
    			setElementData (Promote_Demote_Window, "Who", Account, false)
    			guiSetText (Promote_Demote_Name, "Name:" ..guiGridListGetItemText (MyGroup_Members_Grid, guiGridListGetSelectedItem (MyGroup_Members_Grid), 1))
    			guiSetText (Promote_Demote_AccountName, "Login:" ..Account)
    			guiSetText (Promote_Demote_Rank, "Current Rank:" ..guiGridListGetItemText (MyGroup_Members_Grid, guiGridListGetSelectedItem (MyGroup_Members_Grid), 3))
    			guiSetText (Promote_Demote_Button, "Demote")
    			guiComboBoxClear(Promote_Demote_Combobox)
    			if PermissionTable["3"] then
    				guiComboBoxAddItem(Promote_Demote_Combobox, "Kick this player")
    			end
    			for i = 0, guiGridListGetRowCount(Group_Rank_Gridlist)-1 do
    				if PermissionTable["1"] then
    					if guiGridListGetItemText(Group_Rank_Gridlist, i, 1) == guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),3) then
    						break
    					end
    					if PermissionTable["9"] then
    						if guiGridListGetItemText(Group_Rank_Gridlist, i, 1) == currentRank then
    							guiComboBoxAddItem(Promote_Demote_Combobox, guiGridListGetItemText(Group_Rank_Gridlist, i, 1))
    							break
    						else
    							guiComboBoxAddItem(Promote_Demote_Combobox, guiGridListGetItemText(Group_Rank_Gridlist, i, 1))
    						end
    					else
    						if guiGridListGetItemText(Group_Rank_Gridlist, i, 1) == currentRank then
    							break
    						else
    							guiComboBoxAddItem(Promote_Demote_Combobox, guiGridListGetItemText(Group_Rank_Gridlist, i, 1))
    						end
    					end
    				end
    			end
    		end
    	elseif source == Promote_Demote_Button then
    		Reason = guiGetText(Promote_Demote_Edit)
    		if Reason == "" or Reason:byte(1) == 32 then Reason = "No Reason" end
    		if guiGetText (source) == Promote then
    		local Promote = guiComboBoxGetItemText (Promote_Demote_Combobox, guiComboBoxGetSelected (Promote_Demote_Combobox))
    		if Promote ~= "" and Promote ~= "Select Rank" then
    		triggerServerEvent("Promote_Demote", localPlayer, "Promote", getElementData(Promote_Demote_Window, "Who"), Promote, guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),3), Reason)
    		guiSetVisible(Promote_Demote_Window, false)
    		end
    		elseif guiGetText (source) == "Downgrade" then
    		local Demote = guiComboBoxGetItemText (Promote_Demote_Combobox, guiComboBoxGetSelected (Promote_Demote_Combobox))
    		if Demote ~= "" and Demote ~= "Select Rank" then
    		triggerServerEvent("Promote_Demote", localPlayer, "Demote", getElementData(Promote_Demote_Window, "Who"), Demote, guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),3), Reason, Founder)
    		guiSetVisible(Promote_Demote_Window, false)
    		end
    		end
    	elseif source == Promote_Demote_Cancel then
    		guiSetVisible(Promote_Demote_Window, false)
    	elseif source == WL_Button then
    		local Name = guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),1)
    		if Name ~= "" then
    			local currentLevel = guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),5)
    			guiSetVisible(Warn_Window, true)
    			guiBringToFront(Warn_Window)
    			guiSetText (Warn_Window, "Set(" .. Name .. ") warning level")
    			guiSetText(Warn_Edit, string.sub(currentLevel, 1, #currentLevel-1))
    			guiProgressBarSetProgress(Warn_Bar, string.sub(currentLevel, 1, #currentLevel-1))
    			setElementData(Warn_Window, "Who", guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),2))
    		end
    	elseif source == SetTurfColor then
    			local Red = tonumber ( guiGetText(Redt) )
    			local Green = tonumber ( guiGetText(Greent) )
    			local Blue = tonumber ( guiGetText(Bluet) )
    			triggerServerEvent("guiChangeTurfColor",localPlayer,Red,Green,Blue)
    	elseif source == SetChatColor then
    			local Red = tonumber ( guiGetText(Redc) )
    			local Green = tonumber ( guiGetText(Greenc) )
    			local Blue = tonumber ( guiGetText(Bluec) )
    			triggerServerEvent("guiChangeChatColor",localPlayer,Red,Green,Blue)
    	elseif source == setTagColor then
    			local Red = tonumber ( guiGetText (Redta) )
    			local Green = tonumber ( guiGetText(Greenta) )
    			local Blue = tonumber ( guiGetText (Blueta) )
    			triggerServerEvent("guiChangeChatTagColor",localPlayer,Red,Green,Blue)
    	elseif source == SetWarn_Button then
    		local currentLevel = guiGridListGetItemText(MyGroup_Members_Grid,guiGridListGetSelectedItem(MyGroup_Members_Grid),5)
    		local warnLevel = tonumber(guiGetText(Warn_Edit)) or 0
    		local currentLevel = tonumber(string.sub(currentLevel, 1, #currentLevel-1))
    		if warnLevel ~= currentLevel then
    			Reason = guiGetText(Warn_Reason_Edit)
    			if Reason == "" or Reason:byte(1) == 32 then Reason = "No Reason" end
    			guiSetVisible(Warn_Window, false)
    			if warnLevel > currentLevel then
    				oLevel = "+"..math.abs(currentLevel-warnLevel)
    			else
    				oLevel = "-"..currentLevel-warnLevel
    			end
    			triggerServerEvent("setWarningLevel", localPlayer, getElementData(Warn_Window, "Who"), warnLevel, oLevel, Reason)
    		end
    	elseif source == CancelWarn_Button then
    		guiSetVisible(Warn_Window, false)
    	elseif source == Group_TopBank_Button then
    		guiSetVisible(Group_TopBank_Window, not guiGetVisible(Group_TopBank_Window))
    		guiBringToFront(Group_TopBank_Window)
    		triggerServerEvent("Request_Top_Bank", localPlayer)
    	elseif source == Group_TopBank_Close then
    		guiSetVisible(Group_TopBank_Window, false)
    	elseif source == Group_TopTurf_Close then
    		guiSetVisible(Group_TopTurf_Window, false)
    	elseif source == Group_TopKill_Button then
    		guiSetVisible(Group_TopKill_Window, not guiGetVisible(Group_TopKill_Window))
    		guiBringToFront(Group_TopKill_Window)
    		triggerServerEvent("Request_Top_Kill", localPlayer)
    	elseif source == Group_TopKill_Close then
    		guiSetVisible(Group_TopKill_Window, false)
    	elseif source == Group_TopTurf_Button then
    		guiSetVisible(Group_TopTurf_Window, not guiGetVisible(Group_TopTurf_Window))
    		guiBringToFront(Group_TopTurf_Window)
    		guiGridListClear(Group_TopTurf_Points)
    		triggerServerEvent("Request_Top_Turf", client)
    	elseif source == MyGroup_Members_Close then
    		guiSetVisible(MyGroup_Members_Window,not guiGetVisible(MyGroup_Members_Window))
    		guiGridListClear(MyGroup_Members_Grid)
    	elseif source == Group_History_Button then
    		guiSetVisible(Group_History_Window, not guiGetVisible(Group_History_Window))
    		guiBringToFront(Group_History_Window)
    		guiGridListClear(Group_History_Log)
    		triggerServerEvent("Request_Group_History", localPlayer ) 
    	elseif source == GroupHistory_Button_Close then
    		guiSetVisible(Group_History_Window, not guiGetVisible(Group_History_Window))
    	elseif source == Group_Bank_Button then
    		guiSetVisible(GroupBank_Window, not guiGetVisible(GroupBank_Window))
    		guiBringToFront(GroupBank_Window)
    		FillTheComboWithItems()
    		triggerServerEvent("getGroupBalance", localPlayer)
    		setElementData(localPlayer, "MTAWindowActive", true)
    	elseif source == GroupBank_Deposit_Button then
    		local money = tonumber(guiGetText(GroupBank_Deposit_Edit)) or 0
    		if money > 0 then
    			if money >= 1000 then
    				triggerServerEvent("DepositMoneyInGroupBank", localPlayer, money)
    				guiSetText(GroupBank_Deposit_Edit, "0")
    			else
    				outputChatBox("#ffff00[Clan system] #FFFFFFMinimum contribution 1000 $.", 255, 255, 255, true)
    
    			end
    		end
    	elseif source == GroupBank_Withdraw_Button then
    		local money = tonumber(guiGetText(GroupBank_Withdraw_Edit)) or 0
    		if money > 0 then
    			triggerServerEvent("WithdrawMoneyInGroupBank", localPlayer, money)
    			guiSetText(GroupBank_Withdraw_Edit, "0")
    		end
    	elseif source == GroupBank_GiveAll_Button then
    		local money = tonumber(guiGetText(GroupBank_GiveAll_Edit)) or 0
    		if money >= 1000 then
    			triggerServerEvent("GiveAllPlayerMoneyInGroupBank", localPlayer, money)
    			guiSetText(GroupBank_GiveAll_Edit, "0")
    		end
    	elseif source == GroupBank_GiveMember_Button then
    		local moneys = tonumber(guiGetText(GroupBank_GiveMember_Edit)) or 0
    		local selectedcombo = guiComboBoxGetItemText(GroupBank_GiveMember_Combmo,guiComboBoxGetSelected(GroupBank_GiveMember_Combmo) )
    		triggerServerEvent("guiGiveMemberMoney", localPlayer, selectedcombo, moneys)
    	elseif source == Group_BlackList_Button then
    		guiSetVisible(Group_BlackList_Window, not guiGetVisible(Group_BlackList_Window))
    		guiBringToFront(Group_BlackList_Window)
    		guiGridListClear(Group_BlackList_AccountsList)
    		guiGridListClear(Group_BlackList_SerialsList)
    		triggerServerEvent("Request_Group_BlackList", localPlayer)
    	elseif source == Group_BlackList_AccountAdd then
    		guiSetVisible(Group_BlackList_Block_Window, not guiGetVisible(Group_BlackList_Block_Window))
    		guiBringToFront(Group_BlackList_Block_Window)
    	elseif source == Group_BlackList_AccountRemove then
    		local Account = guiGridListGetItemText(Group_BlackList_AccountsList, guiGridListGetSelectedItem(Group_BlackList_AccountsList), 2)
    		guiGridListClear(Group_BlackList_AccountsList)
    		if Account == "" then outputChatBox("#FFFF00[Clan System] #FFFFFFPlease select something.", 255, 255, 255, true) return end
    		triggerServerEvent("Group_Unblock_Account", localPlayer, Account)
    	elseif source == Group_BlackList_SerialRemove then
    		local Account = guiGridListGetItemText(Group_BlackList_SerialsList, guiGridListGetSelectedItem(Group_BlackList_SerialsList), 2)
    		guiGridListClear(Group_BlackList_SerialsList)
    		if Account == "" then outputChatBox("#FFFF00[Clan System] #FFFFFFPlease select something.", 255, 255, 255, true) return end
    		triggerServerEvent("Group_UnBlock_Serial", localPlayer, Account)
    	elseif source == Group_BlackBlockserial_Close then
    		guiSetVisible(Group_BlackList_Block_Windowserial, false)
    	elseif source == Group_BlackBlock_Close then
    		guiSetVisible(Group_BlackList_Block_Window, false)
    	elseif source == Group_BlackList_Close then
    		guiSetVisible(Group_BlackList_Window, false)
    	elseif source == Group_BlackBlock_Button then
    		guiGridListClear(Group_BlackList_AccountsList)
    		guiSetVisible(Group_BlackList_Block_Window, false)
    		local Account = guiGetText(Group_BlackAccount_Edit)
    		local Reason = guiGetText(Group_BlackReason_Edit)
    		if Account ~= "" and Reason ~= "" then
    			triggerServerEvent("Group_Block_Account", localPlayer, Account, Reason)
    		end
    	elseif source == Group_BlackBlockserial_Button then
    		guiGridListClear(Group_BlackList_SerialsList)
    		local Serial = guiGetText(Group_BlackSerial_Edit)
    		local Reason = guiGetText(Group_BlackReasonserial_Edit)
    		if Serial ~= "" then
    			triggerServerEvent("Group_Block_Serial", localPlayer, Serial, Reason)
    		end
    		guiSetVisible(Group_BlackList_Block_Windowserial, false)
    	elseif source == Group_BlackList_SerialAdd then
    		guiSetVisible(Group_BlackList_Block_Windowserial, true)
    		guiBringToFront(Group_BlackList_Block_Windowserial)
    	elseif source == GroupHistory_Button_DeleteLog then
    		local row, col = guiGridListGetSelectedItem(Group_History_Log)
    		if (row and col and row ~= -1 and col ~= -1) then
    		local theLogID = guiGridListGetItemText ( Group_History_Log, guiGridListGetSelectedItem ( Group_History_Log ), 2 )
    		local theLogTime = guiGridListGetItemText ( Group_History_Log, guiGridListGetSelectedItem ( Group_History_Log ), 1 )
    		local r, g, b, a = guiGridListGetItemColor ( Group_History_Log, row, 1 )
    		if ( r == 255 ) then
    			outputChatBox("#FFFF00[Clan System] #FFFFFFEvent has already been removed.", 255, 255, 255, true)
    		elseif string.find(theLogID,"Created The Group '") then
    			outputChatBox("#FFFF00[Clan System] #FFFFFFThis event cannot be deleted.", 255, 255, 255, true)
    		else
    			triggerServerEvent("History_Remove_Event", localPlayer, theLogID, theLogTime )
    		end
    	end
    	elseif source == GroupBank_Close then
    		guiSetVisible(GroupBank_Window, false)
    		setElementData(localPlayer, "MTAWindowActive", false)
    	end
    end
    addEventHandler("onClientGUIClick", resourceRoot, on_MyGroup_MemberClick)
    
    function FillTheComboWithItems()
    guiComboBoxClear ( GroupBank_GiveMember_Combmo )
    local Group = getElementData( localPlayer, "Group" )
    	for k, v in ipairs(getElementsByType("player")) do
    		if getElementData( v, "Group" ) == Group and getPlayerName(v) ~= getPlayerName(localPlayer) then
    			guiComboBoxAddItem( GroupBank_GiveMember_Combmo, getPlayerName(v) )
    		end
    	end
    end
    
    GroupBank_Window = guiCreateWindow (x / 2-126, y / 2-92, 252, 261, "Clan Bank", false)
    guiWindowSetSizable (GroupBank_Window, false)
    guiSetVisible (GroupBank_Window, false)
    guiSetAlpha (GroupBank_Window, 1)
    
    GroupBank_Balance_Lable = guiCreateLabel (36, 23, 204, 17, "Balance: $ 0", false, GroupBank_Window)
    guiLabelSetColor (GroupBank_Balance_Lable, 0, 255, 0)
    GroupBank_Deposit_Edit = guiCreateEdit (9, 50, 124, 22, "0", false, GroupBank_Window)
    GroupBank_Withdraw_Edit = guiCreateEdit (9, 82, 124, 22, "0", false, GroupBank_Window)
    GroupBank_GiveAll_Edit = guiCreateEdit (9, 113, 124, 22, "0", false, GroupBank_Window)
    GroupBank_GiveMember_Edit = guiCreateEdit (9, 140, 62, 22, "0", false, GroupBank_Window)
    GroupBank_Deposit_Button = guiCreateButton (139, 50, 101, 22, "Put", false, GroupBank_Window)
    GroupBank_Withdraw_Button = guiCreateButton (139, 82, 101, 22, "Withdraw", false, GroupBank_Window)
    GroupBank_GiveAll_Button = guiCreateButton (139, 113, 101, 22, "Give to All", false, GroupBank_Window)
    GroupBank_GiveMember_Button = guiCreateButton (175, 141, 67, 27, "Give to Player", false, GroupBank_Window)
    GroupBank_GiveMember_Combmo = guiCreateComboBox (71, 140, 103, 73, "Member", false, GroupBank_Window)
    GroupBank_Close = guiCreateButton (9, 186, 230, 27, "Close", false, GroupBank_Window)
    GroupBank_dLable = guiCreateLabel (8, 219, 231, 32, "Details such as who put the money in the bank can be viewed in the history.", false, GroupBank_Window)
    guiSetFont (GroupBank_dLable, "default-small")
    guiLabelSetColor (GroupBank_dLable, 0, 255, 0)
    guiLabelSetHorizontalAlign (GroupBank_dLable, "left", true)
    
    addEvent("receiveGroupBankBalance", true)
    addEventHandler("receiveGroupBankBalance", root,
    function(balance)
    	if balance then
    		currentBankBalance = balance
    		guiSetText(GroupBank_Balance_Lable, "Balance: $"..balance)
    	end
    end)
    							
    Group_History_Window = guiCreateWindow (x / 2-291, y / 2-250, 667, 503, "Clan History", false)
    guiWindowSetSizable (Group_History_Window, false)
    guiSetVisible (Group_History_Window, false)
    guiSetAlpha (Group_History_Window, 1)
    
    Group_History_Log = guiCreateGridList (9, 22, 648, 397, false, Group_History_Window)
    
    guiGridListAddColumn (Group_History_Log, "Time", 0.20)
    guiGridListAddColumn (Group_History_Log, "Event", 0.74)
    
    GroupHistory_Button_Close = guiCreateButton (506, 432, 151, 51, "Close", false, Group_History_Window)
    GroupHistory_Button_DeleteLog = guiCreateButton (316, 432, 151, 51, "Delete", false, Group_History_Window)
    
    addEvent( "Set_Group_History", true )
    addEventHandler( "Set_Group_History", root,
    function ( MyGroupHistory )
    	if ( MyGroupHistory ) then
    		guiGridListClear(Group_History_Log)
    		for key, hst in ipairs(MyGroupHistory) do
    			local row = guiGridListAddRow(Group_History_Log)
    			guiGridListSetItemText (Group_History_Log, row, 1, hst.thetime, false, false)
    			guiGridListSetItemColor (Group_History_Log, row, 1, 0, 255, 0)
    			guiGridListSetItemText (Group_History_Log, row, 2, hst.groupaction, false, false)
    			guiGridListSetItemColor (Group_History_Log, row, 2, 0, 255, 0)
    		end
    	end
    end
    )
    Group_BlackList_Window = guiCreateWindow (x / 2-350, y / 2-200, 668, 396, "Clan Blacklist", false)
    guiWindowSetSizable (Group_BlackList_Window, false)
    guiSetVisible (Group_BlackList_Window, false)
    guiSetAlpha (Group_BlackList_Window, 1)
    
    Group_BlackList_TabPanel = guiCreateTabPanel (9, 25, 649, 327, false, Group_BlackList_Window)
    
    Group_BlackList_Accounts = guiCreateTab ("Account List", Group_BlackList_TabPanel)
    
    Group_BlackList_AccountsList = guiCreateGridList (5, 10, 634, 246, false, Group_BlackList_Accounts)
    guiGridListAddColumn (Group_BlackList_AccountsList, "By", 0.2)
    guiGridListAddColumn (Group_BlackList_AccountsList, "Login", 0.2)
    guiGridListAddColumn (Group_BlackList_AccountsList, "Reason", 0.2)
    guiGridListAddColumn (Group_BlackList_AccountsList, "Time", 0.2)
    Group_BlackList_AccountRemove = guiCreateButton (5, 262, 209, 32, "Remove Selected", false, Group_BlackList_Accounts)
    Group_BlackList_AccountAdd = guiCreateButton (241, 262, 209, 32, "Add Account", false, Group_BlackList_Accounts)
    
    Group_BlackList_Serials = guiCreateTab ("Serial Number List", Group_BlackList_TabPanel)
    
    Group_BlackList_SerialsList = guiCreateGridList (5, 10, 634, 246, false, Group_BlackList_Serials)
    guiGridListAddColumn (Group_BlackList_SerialsList, "By", 0.2)
    guiGridListAddColumn (Group_BlackList_SerialsList, "Serial number", 0.4)
    guiGridListAddColumn (Group_BlackList_SerialsList, "Reason", 0.2)
    guiGridListAddColumn (Group_BlackList_SerialsList, "Time", 0.2)
    Group_BlackList_SerialRemove = guiCreateButton (5, 262, 209, 32, "Remove Selected", false, Group_BlackList_Serials)
    Group_BlackList_SerialAdd = guiCreateButton (241, 262, 209, 32, "Add Serial", false, Group_BlackList_Serials)
    Group_BlackList_Close = guiCreateButton (510, 356, 148, 30, "Close", false, Group_BlackList_Window)
    
    Group_BlackList_Block_Window = guiCreateWindow (x / 2-150, y / 2-140, 347, 236, "Blacklist: Account Blocked", false)
    guiWindowSetSizable (Group_BlackList_Block_Window, false)
    guiSetVisible (Group_BlackList_Block_Window, false)
    guiSetAlpha (Group_BlackList_Block_Window, 1)
    
    Group_BlackAccount_Edit = guiCreateEdit (9, 29, 316, 39, "Account", false, Group_BlackList_Block_Window)
    Group_BlackReason_Edit = guiCreateEdit (9, 105, 316, 39, "Reason", false, Group_BlackList_Block_Window)
    Group_BlackBlock_Button = guiCreateButton (12, 171, 143, 46, "Block", false, Group_BlackList_Block_Window)
    Group_BlackBlock_Close = guiCreateButton (182, 171, 143, 46, "Cancel", false, Group_BlackList_Block_Window)
    
    Group_BlackList_Block_Windowserial = guiCreateWindow (x / 2-150, y / 2-140, 347, 236, "Blacklist: Block Serial", false)
    guiWindowSetSizable (Group_BlackList_Block_Windowserial, false)
    guiSetVisible (Group_BlackList_Block_Windowserial, false)
    guiSetAlpha (Group_BlackList_Block_Windowserial, 1)
    
    Group_BlackSerial_Edit = guiCreateEdit (9, 29, 316, 39, "Serial", false, Group_BlackList_Block_Windowserial)
    Group_BlackReasonserial_Edit = guiCreateEdit (9, 105, 316, 39, "Reason", false, Group_BlackList_Block_Windowserial)
    Group_BlackBlockserial_Button = guiCreateButton (12, 171, 143, 46, "Block", false, Group_BlackList_Block_Windowserial)
    Group_BlackBlockserial_Close = guiCreateButton (182, 171, 143, 46, "Cancel", false, Group_BlackList_Block_Windowserial)
    
    addEvent("Set_Group_BlackList", true)
    addEventHandler("Set_Group_BlackList",root,
    function (accountstable, serialstable)
    	if (accountstable) then
    		for key, vaule in ipairs(accountstable) do
    			local row = guiGridListAddRow(Group_BlackList_AccountsList)
    			guiGridListSetItemText(Group_BlackList_AccountsList, row, 1, vaule.byy, false, false)
    			guiGridListSetItemText(Group_BlackList_AccountsList, row, 2, vaule.account_name, false, false)
    			guiGridListSetItemText(Group_BlackList_AccountsList, row, 3, vaule.Reason, false, false)
    			guiGridListSetItemText(Group_BlackList_AccountsList, row, 4, vaule.Time, false, false)
    		end
    	end
    end
    )
    
    addEvent("Set_Group_BlackListSerial", true)
    addEventHandler("Set_Group_BlackListSerial",root,
    function (serialstable)
    	if (serialstable) then
    		for k, v in ipairs(serialstable) do
    			local row = guiGridListAddRow(Group_BlackList_SerialsList)
    			guiGridListSetItemText(Group_BlackList_SerialsList, row, 1, v.byy, false, false)
    			guiGridListSetItemText(Group_BlackList_SerialsList, row, 2, v.serial, false, false)
    			guiGridListSetItemText(Group_BlackList_SerialsList, row, 3, v.Reason, false, false)
    			guiGridListSetItemText(Group_BlackList_SerialsList, row, 4, v.Time, false, false)
    		end
    	end
    end
    )
    
    addEvent("myGroupList", true)
    addEventHandler("myGroupList", root,
    function(members, data)
    	guiGridListClear(MyGroup_Members_Grid)
    	for i, group in pairs(members) do
    		local row = guiGridListAddRow(MyGroup_Members_Grid)
    		guiGridListSetItemText(MyGroup_Members_Grid , row, 1, group["member_name"] or "N/A", false, false)
    		guiGridListSetItemText(MyGroup_Members_Grid , row, 2, group["member_account"], false, false)
    		guiGridListSetItemText(MyGroup_Members_Grid , row, 3, group["member_rank"], false, false)
    		guiGridListSetItemText(MyGroup_Members_Grid , row, 5, group["WL"].."%", false, false)
    		if group["last_online"] == data then
    			guiGridListSetItemText(MyGroup_Members_Grid , row, 4, "Today", false, false)
    		else
    			guiGridListSetItemText(MyGroup_Members_Grid , row, 4, group["last_online"], false, false)
    		end
    		if group["member_status"] == "Yes" and data == group["last_online"] then
    			r, g, b = 0,255,0
    		else
    			r, g, b = 255,0,0
    		end
    		guiGridListSetItemColor(MyGroup_Members_Grid, row, 1, r, g, b)
    		guiGridListSetItemColor(MyGroup_Members_Grid, row, 2, r, g, b)
    		guiGridListSetItemColor(MyGroup_Members_Grid, row, 3, r, g, b)
    		guiGridListSetItemColor(MyGroup_Members_Grid, row, 4, r, g, b)
    		guiGridListSetItemColor(MyGroup_Members_Grid, row, 5, r, g, b)
    	end
    end)
    
    function stopGroupDamage(attacker)
    	if attacker and getElementType(attacker) == "player" and attacker ~= source then
    		local attackerTeam = getPlayerTeam(attacker)
    		local damagedTeam = getPlayerTeam(source)
    		local attackerGroup = getElementData(attacker, "Group")
    		local damagedGroup = getElementData(source, "Group")
    		if attackerTeam and damagedTeam and attackerGroup and damagedGroup and attackerTeam == damagedTeam and attackerGroup == damagedGroup then
    			cancelEvent() 
    		end
    	end
    end
    addEventHandler("onClientPlayerDamage", localPlayer, stopGroupDamage)
    
    --------------Group Manager----------------
    Manager_Window = guiCreateWindow (x / 2-288, y / 2-300,581, 641, "Clan Manager", false)
    Manager_Grid = guiCreateGridList (13,56,341,575, false, Manager_Window)
    guiWindowSetSizable (Manager_Window, false)
    guiSetAlpha (Manager_Window, 1)
    
    guiGridListSetSelectionMode (Manager_Grid, 1)
    guiSetVisible (Manager_Window, false)
    
    guiGridListAddColumn (Manager_Grid, "Clan name", 0.3)
    guiGridListAddColumn (Manager_Grid, "Members", 0.3)
    guiGridListAddColumn (Manager_Grid, "Number of territories", 0.3)
    guiGridListAddColumn (Manager_Grid, "Group Leader", 0.3)
    
    ViewMembers_Button = guiCreateButton (389,77,172,31, "View Members", false, Manager_Window)
    ViewGroupInfo = guiCreateButton (389,132,172,31, "View Info", false, Manager_Window)
    ViewGroupInviteList_Button = guiCreateButton (389,187,172,31, "Prompts", false, Manager_Window)
    SetMembersLimit_Button = guiCreateButton (389,242,172,31, "Set Members Limit", false, Manager_Window)
    RenameGroup_Button = guiCreateButton (389,297,172,31, "Rename Clan", false, Manager_Window)
    DeleteGroup_Button = guiCreateButton (389,352,172,31, "Delete Clan", false, Manager_Window)
    ShowHistory_Button = guiCreateButton (389, 405, 172, 31, "Show History", false, Manager_Window)
    ShowBlackList_Button = guiCreateButton (389, 459, 172, 31, "Show Blacklist", false, Manager_Window)
    SetTurfPoints_Button = guiCreateButton (389, 516, 172, 31, "Show number of territories", false, Manager_Window)
    SetGroupOwner_Button = guiCreateButton (389, 565, 172, 31, "Set Owner", false, Manager_Window)
    Close_Button = guiCreateButton (528, 612, 43, 19, "Close", false, Manager_Window)
    
    addEvent("OpenGroupManager", true)
    addEventHandler("OpenGroupManager", root,
    function(groups, update)
    	rr = guiGridListGetSelectedItem(Manager_Grid) or -1
    	guiGridListClear(Manager_Grid)
    	for i, group in pairs(groups) do
    		local row = guiGridListAddRow(Manager_Grid)
    		guiGridListSetItemText(Manager_Grid, row, 1, group["group_name"], false, false)
    		guiGridListSetItemText(Manager_Grid, row, 2, group["group_members"].."/"..group["members_limit"], false, true)
    		guiGridListSetItemText(Manager_Grid, row, 3, group["turf_points"], false, false)
    		guiGridListSetItemText(Manager_Grid, row, 4, group["group_owner"], false, false)
    	end
    	if update then
    		guiGridListSetSelectedItem(Manager_Grid, rr, 1)
    	end
    	if not guiGetVisible(Manager_Window) then
    		guiSetVisible(Manager_Window, true)
    		showCursor(true)
    	else
    		if not update then
    			guiSetVisible(Manager_Window,false)
    			showCursor(false)
    			guiSetVisible(Rename_Windows,false)
    			guiSetVisible(DeleteGroup_Window,false)
    			guiSetVisible(View_Members_Window,false)
    			guiSetVisible(ViewGroup_Info_Window,false)
    			guiSetVisible(ViewGroup_Invite_Window,false)
    		end
    	end
    end)
    
    Limit_Windows = guiCreateWindow (x / 2-86, y / 2-60,172,120, "Set Members Limit", false)
    guiSetVisible (Limit_Windows, false)
    guiSetAlpha (Limit_Windows, 1)
    guiWindowSetSizable (Limit_Windows, false)
    
    guiSetProperty (Limit_Windows, "AlwaysOnTop", "true")
    Limit_Edit = guiCreateEdit (17,33,138,28, "", false, Limit_Windows)
    guiEditSetMaxLength (Limit_Edit, 5)
    SetLimit_Button = guiCreateButton (22,79,65,26, "Set", false, Limit_Windows)
    CloseLimit_Button = guiCreateButton (96,79,65,26, "Close", false, Limit_Windows)
    
    addEventHandler("onClientGUIClick",root,
    function()
    	if source == ViewMembers_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" then
    			guiSetVisible(View_Members_Window,true)
    			guiBringToFront(View_Members_Window)
    			guiGridListClear(MyGroup_Members_Grid)
    			triggerServerEvent("Request_Group_MembersList",localPlayer,selectedItem)
    		end
    	elseif source == ViewGroupInfo then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" then
    			guiSetVisible(ViewGroup_Info_Window,true)
    			guiSetInputEnabled(true)
    			guiBringToFront(ViewGroup_Info_Window)
    			triggerServerEvent("Request_Group_Info",localPlayer,selectedItem)
    		end
    	elseif source == ViewGroupInviteList_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" then
    			guiSetVisible(ViewGroup_Invite_Window,true)
    			guiBringToFront(ViewGroup_Invite_Window)
    			guiGridListClear(ViewGroup_Invite_Grid)
    			triggerServerEvent("get_Group_InviteList",localPlayer,selectedItem)
    		end
    	elseif source == SetMembersLimit_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" then
    			guiSetVisible(Limit_Windows,true)
    			guiBringToFront(Limit_Windows)
    			guiSetText(Limit_Edit,"")
    		end
    	elseif source == RenameGroup_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" then
    			guiSetVisible(Rename_Windows,true)
    			guiBringToFront(Rename_Windows)
    			guiSetText(Rename_Edit,"")
    		end
    	elseif source == DeleteGroup_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" then
    			guiSetVisible(DeleteGroup_Window,true)
    			guiBringToFront(DeleteGroup_Window)
    			guiCheckBoxSetSelected(DeleteGroup_Checkbox,false)
    		end
    	elseif source == Close_Button then
    		showCursor(false)
    		guiSetVisible(Manager_Window,false)
    		guiSetVisible(Rename_Windows,false)
    		guiSetVisible(DeleteGroup_Window,false)
    		guiSetVisible(View_Members_Window,false)
    		guiSetVisible(ViewGroup_Info_Window,false)
    		guiSetVisible(ViewGroup_Invite_Window,false)
    	end
    end)
    
    addEventHandler("onClientGUIClick",root,
    function()
    	if source == SetLimit_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		local LimitValue = guiGetText(Limit_Edit)
    		if LimitValue ~= "" and selectedItem ~= "" then
    			triggerServerEvent("setGroupMemberLimit",localPlayer,selectedItem,LimitValue)
    			triggerServerEvent("Send_Groups_List",localPlayer)
    			guiSetVisible(Limit_Windows,false)
    		end
    	elseif source == CloseLimit_Button then
    		guiSetVisible(Limit_Windows,false)
    	elseif source == Rename_Button then
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		local RenameValue = guiGetText(Rename_Edit)
    		if RenameValue ~= "" and selectedItem ~= "" then
    			triggerServerEvent("setGroupName",localPlayer,selectedItem,RenameValue)
    			triggerServerEvent("Send_Groups_List",localPlayer)
    			guiSetVisible(Rename_Windows,false)
    		end
    	elseif source == CloseRename_Button then
    		guiSetVisible(Rename_Windows,false)
    	end
    end)
    
    Rename_Windows = guiCreateWindow (x / 2-86, y / 2-60,172,120, "Set Clan Name", false)
    guiSetVisible (Rename_Windows, false)
    guiWindowSetSizable (Rename_Windows, false)
    guiSetAlpha (Rename_Windows, 1)
    
    guiSetProperty (Rename_Windows, "AlwaysOnTop", "true")
    Rename_Edit = guiCreateEdit (17,33,138,28, "", false, Rename_Windows)
    guiEditSetMaxLength (Rename_Edit, 20)
    Rename_Button = guiCreateButton (22,79,65,26, "Install", false, Rename_Windows)
    CloseRename_Button = guiCreateButton (96,79,65,26, "Close", false, Rename_Windows)
    
    DeleteGroup_Window = guiCreateWindow (x / 2-144, y / 2-56,288,112, "Delete Clan", false)
    guiSetVisible (DeleteGroup_Window, false)
    guiWindowSetSizable (DeleteGroup_Window, false)
    guiSetAlpha (DeleteGroup_Window, 1)
    
    guiSetProperty (DeleteGroup_Window, "AlwaysOnTop", "true")
    DeleteGroup_Label1 = guiCreateLabel (38,27,202,15, "Clan deletion cannot be undone.", False, DeleteGroup_Window)
    DeleteGroup_Checkbox = guiCreateCheckBox (61,74,15,18, "", false, false, DeleteGroup_Window)
    CloseDeleteGroup_Button = guiCreateButton (209,75,67,28, "Close", false, DeleteGroup_Window)
    DeleteGroup_Buttons = guiCreateButton (106,75,95,28, "Delete", false, DeleteGroup_Window)
    DeleteGroup_Label2 = guiCreateLabel (8,68,46,15, "Click", false, DeleteGroup_Window)
    DeleteGroup_Label3 = guiCreateLabel (8,87,51,15, "delete", false, DeleteGroup_Window)
    
    function on_GroupDelete_Click()
    	if source == DeleteGroup_Buttons then
    		if guiCheckBoxGetSelected(DeleteGroup_Checkbox) then
    			local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    			if selectedItem ~= "" then
    				triggerServerEvent("Delete_Group",localPlayer,selectedItem)
    				guiSetVisible(DeleteGroup_Window, false)
    			end
    		end
    	elseif source == CloseDeleteGroup_Button then
    		guiSetVisible(DeleteGroup_Window, false)
    	end
    end
    addEventHandler("onClientGUIClick",root,on_GroupDelete_Click)
    
    View_Members_Window = guiCreateWindow (x / 2-291, y / 2-212,582,546, "View Members List", false)
    guiSetAlpha (View_Members_Window, 1)
    guiSetVisible (View_Members_Window, false)
    guiWindowSetSizable (View_Members_Window, false)
    guiSetProperty (View_Members_Window, "AlwaysOnTop", "true")
    View_Members_Grid = guiCreateGridList (20,29,543,337, false, View_Members_Window)
    guiGridListSetSelectionMode (View_Members_Grid, 1)
    guiGridListAddColumn (View_Members_Grid, "Name", 0.3)
    guiGridListAddColumn (View_Members_Grid, "Account", 0.23)
    guiGridListAddColumn (View_Members_Grid, "Rank", 0.15)
    guiGridListAddColumn (View_Members_Grid, "Last Run", 0.15)
    guiGridListAddColumn (View_Members_Grid, "WL", 0.1)
    View_Members_Close = guiCreateButton (460, 376, 113, 30, "Close", false, View_Members_Window)
    -----------
    function on_ViewGroupMember_Click()
    	guiSetVisible(View_Members_Window, false)
    end
    addEventHandler("onClientGUIClick",View_Members_Close,on_ViewGroupMember_Click,false)
    
    addEvent("ViewGroupMember", true)
    addEventHandler("ViewGroupMember", root,
    function(members, data)
    	guiGridListClear(View_Members_Grid)
    	for i, group in pairs(members) do
    		local row = guiGridListAddRow(View_Members_Grid)
    		guiGridListSetItemText(View_Members_Grid , row, 1, group["member_name"] or "N/A", false, false)
    		guiGridListSetItemText(View_Members_Grid , row, 2, group["member_account"], false, false)
    		guiGridListSetItemText(View_Members_Grid , row, 3, group["member_rank"], false, false)
    		guiGridListSetItemText(View_Members_Grid , row, 5, group["WL"].."%", false, false)
    		if group["last_online"] == data then
    			guiGridListSetItemText(View_Members_Grid , row, 4, "Today", false, false)
    		else
    			guiGridListSetItemText(View_Members_Grid , row, 4, group["last_online"], false, false)
    		end
    		if group["member_status"] == "Yes" and data == group["last_online"] then
    			r, g, b = 0,255,0
    		else
    			r, g, b = 255,0,0
    		end
    		guiGridListSetItemColor(View_Members_Grid, row, 1, r, g, b)
    		guiGridListSetItemColor(View_Members_Grid, row, 2, r, g, b)
    		guiGridListSetItemColor(View_Members_Grid, row, 3, r, g, b)
    		guiGridListSetItemColor(View_Members_Grid, row, 4, r, g, b)
    		guiGridListSetItemColor(View_Members_Grid, row, 5, r, g, b)
    	end
    end)
    
    ViewGroup_Info_Window = guiCreateWindow(x/2-252,y/2-203,505,406,"Group Info",false)
    
    ViewGroup_Info_ButtonSave = guiCreateButton(315,368,95,29,"Save",false,ViewGroup_Info_Window)
    guiSetAlpha(ViewGroup_Info_Window,1)
    guiSetVisible(ViewGroup_Info_Window, false)
    guiSetProperty(ViewGroup_Info_Window, "AlwaysOnTop", "true")
    guiWindowSetSizable(ViewGroup_Info_Window,false)
    ViewGroup_Info_Memo = guiCreateMemo(9,28,485,333,"",false,ViewGroup_Info_Window)
    Max_Info_LabelM = guiCreateLabel(10,377,250,30,"(8001) Characters left",false,ViewGroup_Info_Window)
    ViewGroup_Info_ButtonClose = guiCreateButton(415,368,81,29,"Close",false,ViewGroup_Info_Window)
    
    function on_ViewGroup_Info_Click()
    	if source == ViewGroup_Info_ButtonSave then
    		local infoTextt = tostring(guiGetText(ViewGroup_Info_Memo))
    		local selectedItem = guiGridListGetItemText(Manager_Grid,guiGridListGetSelectedItem(Manager_Grid),1)
    		if selectedItem ~= "" and infoTextt ~= "" then
    			triggerServerEvent("Change_Group_Info",localPlayer,selectedItem,infoTextt)
    		end
    	elseif source == ViewGroup_Info_ButtonClose then
    		guiSetVisible(ViewGroup_Info_Window, false)
    	end
    end
    addEventHandler("onClientGUIClick",root,on_ViewGroup_Info_Click)
    
    addEvent("Send_Group_Info", true)
    addEventHandler("Send_Group_Info", root,
    function(info)
    	guiSetText(ViewGroup_Info_Memo,info)
    end)
    
    ViewGroup_Invite_Window = guiCreateWindow(x/2-259,y/2-124,518,248,"View Group Invite List",false)
    guiSetAlpha(ViewGroup_Invite_Window,1)
    guiSetVisible(ViewGroup_Invite_Window, false)
    guiWindowSetSizable(ViewGroup_Invite_Window,false)
    guiSetProperty(ViewGroup_Invite_Window, "AlwaysOnTop", "true")
    ViewGroup_Invite_Grid = guiCreateGridList(12,32,491,156,false,ViewGroup_Invite_Window)
    guiGridListSetSelectionMode(ViewGroup_Invite_Grid,1)
    guiGridListAddColumn(ViewGroup_Invite_Grid,"Group Name",0.38)
    guiGridListAddColumn(ViewGroup_Invite_Grid,"To",0.27)
    guiGridListAddColumn(ViewGroup_Invite_Grid,"From",0.27)
    Delete_Group_Invite_Button = guiCreateButton(23,198,200,32,"Delete Selected Invite",false,ViewGroup_Invite_Window)
    Close_ViewGroup_Invite_Button = guiCreateButton(390,198,105,32,"Close",false,ViewGroup_Invite_Window)
    
    function on_ViewGroup_Invite_Click()
    	if source == Delete_Group_Invite_Button then
    		local GroupName = guiGridListGetItemText(ViewGroup_Invite_Grid ,guiGridListGetSelectedItem(ViewGroup_Invite_Grid ),1)
    		To = guiGridListGetItemText(ViewGroup_Invite_Grid ,guiGridListGetSelectedItem(ViewGroup_Invite_Grid ),2)
    		From = guiGridListGetItemText(ViewGroup_Invite_Grid ,guiGridListGetSelectedItem(ViewGroup_Invite_Grid ),3)
    		if GroupName ~= "" and To ~= "" and From ~= "" then
    			triggerServerEvent("Delete_Invite",localPlayer,GroupName,To,From)
    		end
    	elseif source == Close_ViewGroup_Invite_Button then
    		guiSetVisible(ViewGroup_Invite_Window, false)
    	end
    end
    addEventHandler("onClientGUIClick",root,on_ViewGroup_Invite_Click)
    
    addEvent("Send_Group_InviteList", true)
    addEventHandler("Send_Group_InviteList", root,
    function(Invite)
    guiGridListClear(ViewGroup_Invite_Grid)
    	for i, Inv in pairs(Invite) do
    		local row = guiGridListAddRow(ViewGroup_Invite_Grid)
    		guiGridListSetItemText(ViewGroup_Invite_Grid, row, 1, Inv["group_name"], false, false)
    		guiGridListSetItemText(ViewGroup_Invite_Grid, row, 2, Inv["player_account"], false, false)
    		guiGridListSetItemText(ViewGroup_Invite_Grid, row, 3, Inv["byy"], false, false)
    	end
    end)
    
    Group_M_History_Window = guiCreateWindow(x/2-291, y/2-250, 667, 503, "Group History", false)
    guiWindowSetSizable(Group_M_History_Window, false)
    guiSetVisible(Group_M_History_Window, false)
    guiSetAlpha (Group_M_History_Window,1)
    
    Group_M_History_Log = guiCreateGridList(9, 22, 648, 397, false, Group_M_History_Window)
    
    guiGridListAddColumn(Group_M_History_Log,"Time",0.20)
    guiGridListAddColumn(Group_M_History_Log,"Event",0.74)
    
    GroupHistory_M_Button_Close = guiCreateButton(506, 432, 151, 51, "Close", false, Group_M_History_Window)
    
    addEventHandler("onClientGUIClick",root,
    function ()
    	if source == ShowHistory_Button then
    		local GroupName = guiGridListGetItemText(Manager_Grid, guiGridListGetSelectedItem(Manager_Grid), 1)
    		if GroupName ~= "" then
    			guiSetVisible(Group_M_History_Window, not guiGetVisible(Group_M_History_Window))
    			guiBringToFront(Group_M_History_Window)
    			guiGridListClear(Group_M_History_Log)
    			triggerServerEvent("Show_Manager_History", localPlayer, GroupName)
    		end
    	elseif source == GroupHistory_M_Button_Close then
    		guiSetVisible(Group_M_History_Window, false)			
    	end
    end
    )
    
    addEvent("SetManagerGroupHistory", true)
    addEventHandler("SetManagerGroupHistory", root,
    function (MyGroupHistory)
    	guiGridListClear(Group_M_History_Log)
    	for k, v in ipairs(MyGroupHistory) do
    		local row = guiGridListAddRow(Group_M_History_Log)
    		guiGridListSetItemText(Group_M_History_Log, row, 1, v.thetime, false, false)
    		guiGridListSetItemColor(Group_M_History_Log, row, 1, 0, 255, 0)
    		guiGridListSetItemText(Group_M_History_Log, row, 2, v.groupaction, false, false)
    		guiGridListSetItemColor(Group_M_History_Log, row, 2, 0, 255, 0)
    	end
    end
    )
    
    Points_Window = guiCreateWindow(x/2-86,y/2-60,172,120,"Set Group Turf Points",false)
    guiSetVisible(Points_Window, false)
    guiWindowSetSizable(Points_Window,false)
    guiSetAlpha (Points_Window,1)
    
    guiSetProperty(Points_Window, "AlwaysOnTop", "true")
    Points_Edit = guiCreateEdit(17,33,138,28,"",false,Points_Window)
    guiEditSetMaxLength(Rename_Edit,8)
    Points_Button = guiCreateButton(22,79,65,26,"Set",false,Points_Window)
    ClosePoints_Button = guiCreateButton(96,79,65,26,"Close",false,Points_Window)
    
    addEventHandler("onClientGUIClick", root,
    function ()
    	local GroupName = guiGridListGetItemText(Manager_Grid, guiGridListGetSelectedItem(Manager_Grid), 1)
    	if source == SetTurfPoints_Button then
    		if GroupName ~= "" then
    			guiSetVisible(Points_Window, not guiGetVisible(Points_Window))
    			guiBringToFront(Points_Window)
    		end
    	elseif source == ClosePoints_Button then
    		guiSetVisible(Points_Window, false)
    	elseif source == Points_Button then
    		local points = guiGetText(Points_Edit)
    		if points ~= "" then
    			triggerServerEvent("set_Group_M_Turf_Points",localPlayer, GroupName, points)
    			guiSetVisible(Points_Window, false)
    			guiSetText(Points_Edit, "")
    		end
    	end
    end
    )
    
    
    
    Group_BlackList_M_Window = guiCreateWindow(x/2-350,y/2-200, 668, 396, "Group Black List", false)
    guiWindowSetSizable(Group_BlackList_M_Window, false)
    guiSetVisible(Group_BlackList_M_Window, false)
    guiSetAlpha (Group_BlackList_M_Window,1)
    
    Group_BlackList_M_TabPanel = guiCreateTabPanel(9, 25, 649, 327, false, Group_BlackList_M_Window)
    
    Group_BlackList_M_Accounts = guiCreateTab("Accounts List", Group_BlackList_M_TabPanel)
    
    Group_BlackList_M_AccountsList = guiCreateGridList(5, 10, 634, 246, false, Group_BlackList_M_Accounts)
    guiGridListAddColumn(Group_BlackList_M_AccountsList, "By", 0.2)
    guiGridListAddColumn(Group_BlackList_M_AccountsList, "Account Involved", 0.2)
    guiGridListAddColumn(Group_BlackList_M_AccountsList, "Reason", 0.2)
    guiGridListAddColumn(Group_BlackList_M_AccountsList, "Time", 0.2)
    Group_BlackList_M_AccountRemove = guiCreateButton(5, 262, 209, 32, "Remove Selected", false, Group_BlackList_M_Accounts)
    Group_BlackList_M_AccountAdd = guiCreateButton(241, 262, 209, 32, "Add Account", false, Group_BlackList_M_Accounts)
    
    Group_BlackList_M_Serials = guiCreateTab("Serial List", Group_BlackList_M_TabPanel)
    		
    Group_BlackList_M_SerialsList = guiCreateGridList(5, 10, 634, 246, false, Group_BlackList_M_Serials)
    guiGridListAddColumn(Group_BlackList_M_SerialsList, "By", 0.2)
    guiGridListAddColumn(Group_BlackList_M_SerialsList, "Serial Involved", 0.4)
    guiGridListAddColumn(Group_BlackList_M_SerialsList, "Reason", 0.2)
    guiGridListAddColumn(Group_BlackList_M_SerialsList, "Time", 0.2)
    Group_BlackList_M_SerialRemove = guiCreateButton(5, 262, 209, 32, "Remove Selected", false, Group_BlackList_M_Serials)
    Group_BlackList_M_SerialAdd = guiCreateButton(241, 262, 209, 32, "Add Serial", false, Group_BlackList_M_Serials)
    Group_BlackList_M_Close = guiCreateButton(510, 356, 148, 30, "Close", false, Group_BlackList_M_Window) 
    
    Group_BlackList_Block_M_Window = guiCreateWindow(x/2-150,y/2-140, 347, 236, "Black List Block Account", false)
    guiWindowSetSizable(Group_BlackList_Block_M_Window, false)
    guiSetVisible(Group_BlackList_Block_M_Window, false)
    guiSetAlpha (Group_BlackList_Block_M_Window,1)
    
    Group_BlackAccount_M_Edit = guiCreateEdit(9, 29, 316, 39, "Account", false, Group_BlackList_Block_M_Window)
    Group_BlackReason_M_Edit = guiCreateEdit(9, 105, 316, 39, "Reason", false, Group_BlackList_Block_M_Window)
    Group_BlackBlock_M_Button = guiCreateButton(12, 171, 143, 46, "Block", false, Group_BlackList_Block_M_Window)
    Group_BlackBlock_M_Close = guiCreateButton(182, 171, 143, 46, "Cancel", false, Group_BlackList_Block_M_Window)    
    
    Group_BlackList_Block_M_Windowserial = guiCreateWindow(x/2-150,y/2-140, 347, 236, " Black List Block Serial", false)
    guiWindowSetSizable(Group_BlackList_Block_M_Windowserial, false)
    guiSetVisible(Group_BlackList_Block_M_Windowserial, false)
    guiSetAlpha (Group_BlackList_Block_M_Windowserial,1)
    
    Group_BlackSerial_M_Edit = guiCreateEdit(9, 29, 316, 39, "Serial", false, Group_BlackList_Block_M_Windowserial)
    Group_BlackReasonserial_M_Edit = guiCreateEdit(9, 105, 316, 39, "Reason", false, Group_BlackList_Block_M_Windowserial)
    Group_BlackBlockserial_M_Button = guiCreateButton(12, 171, 143, 46, "Block", false, Group_BlackList_Block_M_Windowserial)
    Group_BlackBlockserial_M_Close = guiCreateButton(182, 171, 143, 46, "Cancel", false, Group_BlackList_Block_M_Windowserial)    
    
    addEventHandler("onClientGUIClick", root,
    function ()
    	local GroupName = guiGridListGetItemText(Manager_Grid, guiGridListGetSelectedItem(Manager_Grid), 1)
    	if source == ShowBlackList_Button then
    		if GroupName ~= "" then
    			guiSetVisible(Group_BlackList_M_Window, not guiGetVisible(Group_BlackList_M_Window))
    			triggerServerEvent("get_Group_Manager_Blacklist", localPlayer, GroupName)
    		end
    	elseif source == Group_BlackList_M_Close then
    		guiSetVisible(Group_BlackList_M_Window, false)
    	elseif source == Group_BlackList_M_AccountRemove then
    		local member = guiGridListGetItemText(Group_BlackList_M_SerialsList, guiGridListGetSelectedItem(Group_BlackList_M_SerialsList), 2)	
    		triggerServerEvent("UnBlock_Member_By_Manager", localPlayer, GroupName, member)
    	end
    end
    )
    
    addEvent("set_Group_Manager_Blacklist_Account", true)
    addEventHandler("set_Group_Manager_Blacklist_Account", root,
    function (Accounts)
    	guiGridListClear(Group_BlackList_M_AccountsList)
    	for i, account in ipairs(Accounts) do
    		local row = guiGridListAddRow(Group_BlackList_M_AccountsList)
    		guiGridListSetItemText(Group_BlackList_M_AccountsList, row, 1, account.byy, false, false)
    		guiGridListSetItemText(Group_BlackList_M_AccountsList, row, 2, account.account_name, false, false)
    		guiGridListSetItemText(Group_BlackList_M_AccountsList, row, 3, account.Reason, false, false)
    		guiGridListSetItemText(Group_BlackList_M_AccountsList, row, 4, account.Time, false, false)
    	end
    end
    )
    
    addEvent("set_Group_Manager_Blacklist_Serial", true)
    addEventHandler("set_Group_Manager_Blacklist_Serial", root,
    function (Serials)
    	guiGridListClear(Group_BlackList_M_SerialsList)
    	for i, serials in ipairs(Serials) do
    		local row = guiGridListAddRow(Group_BlackList_M_SerialsList)
    		guiGridListSetItemText(Group_BlackList_M_SerialsList, row, 1, serials.byy, false, false)
    		guiGridListSetItemText(Group_BlackList_M_SerialsList, row, 2, serials.serial, false, false)
    		guiGridListSetItemText(Group_BlackList_M_SerialsList, row, 3, serials.Reason, false, false)
    		guiGridListSetItemText(Group_BlackList_M_SerialsList, row, 4, serials.Time, false, false)		
    	end
    end
    )

     

     

    Help pls

  7. Hello, I compiled the latest version of Mta night build, and an error occurred when entering the server.
    Code = 0xC0000005 Offset = 0x001B51FF EAX = 1EA7BD48 EBX = 00000000 ECX = 005389C4 EDX = 000002C4 ESI = 0000032D EDI = 00000000 EBP = 008E2CB0 ESP = 0177FD08 EIP = 005B51FF FLG = 002102 = 002 0053 GS = 002B.
    Help me please.

    downloaded the source code from here for the latest version.

    5 hours and 46 minutes I'm trying to compile so that it goes to the server in my LAN. but one and the same error comes out, it pisses me off already.

  8. 3 hours ago, Erlkonig said:

    Becaue the author of this topic is russian and translating this topic into russian let me answer in russian. Ask me if anybody need the translate.

     

     

    Дайте пожалуйста код в более нормальном виде, а не тексте. Опишите что вы хотите чтобы скрипт делал и когда именно возникает ошибка.

    с чего ты взял что я руский? где я говорил что я руский, я не славянин, я римлянин раз ты хочешь узнать какой я нации и народа. И я Молдованин.

    Problem solved

     

  9. Spoiler

    speedometer

     

    addEvent( "removeMe", true ) 
    addEventHandler( "removeMe", getRootElement(), function(player) 
        removePedFromVehicle( player ) 
        setPedAnimation( player, "dildo", "dildo_hit_3",-1,false,false,true,true)
        setTimer(function() setPedAnimation(player,true) end, 5*1000, 1)
    end)

    function onVehicleStartExit ( thePlayer, seat, jacked )
        local veh = getPedOccupiedVehicle(thePlayer)
        if veh then
            if getPedOccupiedVehicle (thePlayer) then
                if getElementData(thePlayer, "remeshok") == "strapped on" then
                    outputChatBox("#FF0000RU: Отстегните ремень безопасности!",thePlayer,255,255,255,true)
                    outputChatBox("#FF0000EN: Unfasten your seat belt!",thePlayer,255,255,255,true)
                    cancelEvent()
                end
            end
        end
    end
    addEventHandler ( "onVehicleStartExit", getRootElement(), onVehicleStartExit)

    Spoiler

    povorotnik

     

    local dxShader = dxCreateShader("shader.fx")
    local sh = {}

    trigger = function(shader, type, veh)
      if sh[veh] then
        sh[veh] = nil
        return engineRemoveShaderFromWorldTexture(shader, type, veh)
      else
        sh[veh] = true
        return engineApplyShaderToWorldTexture(shader, type, veh)
      end
    end
    trigger2 = function(shader, veh)
      if sh[veh] then
        sh[veh] = nil
        engineRemoveShaderFromWorldTexture(shader, "rightflash", veh)
        return engineRemoveShaderFromWorldTexture(shader, "leftflash", veh)
      else
        sh[veh] = true
        engineApplyShaderToWorldTexture(shader, "rightflash", veh)
        return engineApplyShaderToWorldTexture(shader, "leftflash", veh)
      end
    end

    setTimer(function()
      for _,v in ipairs(getElementsByType("vehicle")) do
        if getElementData(v, "rightflash") then
          setElementData(v, 'leftflash', false)
          setElementData(v, 'allflash', false)
          trigger(dxShader, "rightflash", v)
        end
      end
    end
    , 450, 0)
    setTimer(function()
      for _,veh in ipairs(getElementsByType("vehicle")) do
        if getElementData(veh, "leftflash") then
          setElementData(veh, 'rightflash', false)
          setElementData(veh, 'allflash', false)
          trigger(dxShader, "leftflash", veh)
        end
      end
    end
    , 450, 0)
    setTimer(function()
      for _,vehicle in ipairs(getElementsByType("vehicle")) do
        if getElementData(vehicle, "allflash") then
            setElementData(vehicle, "leftflash", false)
            setElementData(vehicle, "rightflash", false)
              trigger2(dxShader, vehicle)
        end
      end
    end
    , 450, 0)

    left = function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if getVehicleOccupant (veh) ~= localPlayer then return end
    if not veh then return end
      if setElementData(veh, "leftflash", true) then
        if getElementData(veh, 'rightflash') then
            setElementData(veh, "rightflash", false)
            engineRemoveShaderFromWorldTexture(dxShader, "rightflash",veh)
        end
        setElementData(veh, "allflash", false)
        engineApplyShaderToWorldTexture(dxShader, "leftflash", veh)
      else
        setElementData(veh, "leftflash", false)
        engineRemoveShaderFromWorldTexture(dxShader, "leftflash", veh)
        setTimer(function()
          end, 600, 0)
      end
    end
    bindKey("[", "down", left)

    right = function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if getVehicleOccupant (veh) ~= localPlayer then return end
    if not veh then return end
      if setElementData(veh, "rightflash", true) then
          if getElementData(veh, 'leftflash') then
            setElementData(veh, "leftflash", false)
            engineRemoveShaderFromWorldTexture(dxShader, "leftflash",veh)
        end
        setElementData(veh, "allflash", false)
        engineApplyShaderToWorldTexture(dxShader, "rightflash", veh)
      else
        setElementData(veh, "rightflash", false)
        engineRemoveShaderFromWorldTexture(dxShader, "rightflash",veh)
        setTimer(function()
          end, 600, 0)
      end
    end
    bindKey("]", "down", right)
    all = function()
    local veh = getPedOccupiedVehicle(localPlayer)
    if getVehicleOccupant (veh) ~= localPlayer then return end
    if not veh then return end
      if not getElementData(veh, "allflash") then
          if getElementData(veh, 'leftflash') then
            setElementData(veh, "leftflash", false)
            engineRemoveShaderFromWorldTexture(dxShader, "leftflash",veh)
        end
        if getElementData(veh, 'rightflash') then
            setElementData(veh, "rightflash", false)
            engineRemoveShaderFromWorldTexture(dxShader, "rightflash",veh)
        end
        setElementData(veh, "allflash", true)
        engineApplyShaderToWorldTexture(dxShader, "rightflash", veh)
        engineApplyShaderToWorldTexture(dxShader, "leftflash", veh)
      else
          setElementData(veh, "allflash", false)
          engineRemoveShaderFromWorldTexture(dxShader, "rightflash",veh)
          engineRemoveShaderFromWorldTexture(dxShader, "leftflash",veh)
      end
    end
    bindKey("o", "down", all)

    Spoiler

    spacer.png

    My previous topic was blocked just like that, there was nothing, even comments and advertisements that could violate the forum rule. Please help fix the warnings

  10. Спойлер

    поворотник

     

    local dxShader = dxCreateShader ("shader.fx")
    local sh = {}

    trigger = function (shader, type, veh)
      if sh [veh] then
        sh [veh] = nil
        return engineRemoveShaderFromWorldTexture (shader, type, veh)
      else
        sh [veh] = true
        return engineApplyShaderToWorldTexture (shader, type, veh)
      end
    end
    trigger2 = function (shader, veh)
      если sh [veh] то
        sh [veh] = nil
        engineRemoveShaderFromWorldTexture (шейдер, "rightflash", veh)
        return engineRemoveShaderFromWorldTexture (шейдер, "leftflash", veh)
      еще
        sh [veh] = true
        engineApplyShaderToW , "rightflash", veh)
        return engineApplyShaderToWorldTexture (шейдер, "leftflash",veh)
      конец
    конец

    setTimer (function ()
      for _, v в ipairs (getElementsByType ("транспортное средство")) do
        if getElementData (v, "rightflash"), затем
          setElementData (v, 'leftflash', false)
          setElementData (v, 'allflash', false)
          trigger (dxShader, "rightflash", v)
        end
      end
    end
    , 450, 0)
    setTimer (function ()
      for _, veh in ipairs (getElementsByType ("vehicle")) do
        if getElementData (veh, "leftflash") then
          setElementData ( veh, 'rightflash', false)
          setElementData (veh, 'allflash', false)
          trigger (dxShader, "leftflash", veh)
        конец
      конец
    конец
    , 450,0)
    setTimer (функция ()
      для _, автомобиль в ipairs (getElementsByType ("vehicle")) do
        if getElementData (vehicle, "allflash") then
            setElementData (vehicle, "leftflash", false)
            setElementData (vehicle, "rightflash", false)
              trigger2 (dxShader, vehicle )
        конец
      конец
    конец
    , 450, 0)

    left = function ()
    local veh = getPedOccupiedVehicle (localPlayer),
    если getVehicleOccupant (veh) ~ = localPlayer, то вернуть end,
    если не veh, то вернуть конец,
      если setElementData (veh, "leftflash", true), то
        если getElementData (veh, 'rightflash') затем
            setElementData (Вег, "rightflash", ложь)
            engineRemoveShaderFromWorldTexture (dxShader, "rightflash", Вег)
        конец
        setElementData (Вег, "allflash", ложь)
        engineApplyShaderToWorldTexture (dxShader, "leftflash", Вег)
      еще
        setElementData (Вег, "leftflash" , false)
        engineRemoveShaderFromWorldTexture (dxShader, "leftflash",
        veh ) setTimer (функция ()
          конец, 600, 0)
      конец
    конец
    bindKey ("[", "вниз", слева)

    right = function ()
    local veh = getPedOccupiedVehicle (localPlayer),
    если getVehicleOccupant (veh) ~ = localPlayer, то вернуть end,
    если не veh, то вернуть конец,
      если setElementData (veh, "rightflash", true), то
          если getElementData (veh, 'leftflash') затем
            setElementData (Век, "leftflash", ложь)
            engineRemoveShaderFromWorldTexture (dxShader, "leftflash", Век)
        конец
        setElementData (Век, "allflash", ложь)
        engineApplyShaderToWorldTexture (dxShader, "rightflash", Век)
      еще
        setElementData (Век, "rightflash" , false)
        engineRemoveShaderFromWorldTexture (dxShader, "rightflash",
        veh ) setTimer (функция ()
          конец, 600, 0)
      конец
    end
    bindKey ("]", "down", right)
    all = function ()
    local veh = getPedOccupiedVehicle (localPlayer),
    если getVehicleOccupant (veh) ~ = localPlayer, затем вернуть end,
    если не veh, то вернуть end,
      если не getElementData (veh, "allflash "), то
          если getElementData (veh, 'leftflash'), то
            setElementData (veh," leftflash ", false)
            engineRemoveShaderFromWorldTexture (dxShader," leftflash ", veh)
        end
        if getElementData (veh, 'rightflash'), затем
            setElementData (veh , 'rightflash') ", false)
            engineRemoveShaderFromWorldTexture (dxShader," rightflash ", veh)
        end
        setElementData (veh,"allflash ", правда)
        engineApplyShaderToWorldTexture (dxShader, "rightflash", Вег)
        engineApplyShaderToWorldTexture (dxShader, "leftflash", Вег)
      еще
          setElementData (Вег, "allflash", ложь)
          engineRemoveShaderFromWorldTexture (dxShader, "rightflash", Вег)
          engineRemoveShaderFromWorldTexture (dxShader, "leftflash", Вег )
      end
    end
    bindKey («о», «вниз», все)

    Спойлер

    спидометр

     

    addEvent ("removeMe", true) 
    addEventHandler ("removeMe", getRootElement (), function (player) 
        removePedFromVehicle (player) 
        setPedAnimation (player, "dildo", "dildo_hit_3", - 1, false, false, true, true)
        setTimer (function () setPedAnimation (player, true) конец, 5 * 1000, 1)
    конец)

    function onVehicleStartExit (thePlayer, seat, jacked)
        local veh = getPedOccupiedVehicle (thePlayer)
        если veh, то
            если getPedOccupiedVehicle (thePlayer), то
                если getElementData (thePlayer, "Ремешок безопасности") == "привязано:" then
                    output FChat0000 ! ", thePlayer, 255,255,255, true)
                    outputChatBox (" # FF0000EN: Отстегните ремень безопасности! ", thePlayer, 255,255,255, true)
                    cancelEvent ()
                end
            end
        end
    end
    addEventHandler (" onVehicleStartExit ", getRootElement (), onExitehicleStart

    Спойлер

    spacer.png

     

  11. 37 minutes ago, Burak5312 said:
    spfont = dxCreateFont("fonts/font.ttf", 21)
    
    local isAdded = false
    
    function speed()
        if(isAdded == false) then
           addEventHandler ("onClientRender", root, getspeed)
           isAdded = true
        end
    end
    addEventHandler("onClientVehicleEnter", root, speed)
    
    function wylacz ()
    	if(isAdded == true) then
           removeEventHandler("onClientRender", root, getspeed)
           isAdded = false
        end
    end
    addEventHandler("onClientVehicleExit", root, wylacz)
    
    function getspeed()
        local playerVehicle = getPedOccupiedVehicle(localPlayer)
        if(playerVehicle) then
           local sx, sy, sz = getElementVelocity(playerVehicle)
           kmhs = math.floor(((sx^2 + sy^2 + sz^2)^(0.5))*180)
           mphs = math.floor((((sx^2 + sy^2 + sz^2)^(0.5))*180)/1.6)
           health = getElementHealth(playerVehicle)
           name = getVehicleName(playerVehicle)
           currenthealth = math.floor(health/10)
           screenWidth, screenHeight = guiGetScreenSize()
           windowWidth, windowHeight = 300,170
           left = screenWidth/1.18 - windowWidth/9.8
           top = screenHeight/1.03 - windowHeight/20
           dxDrawText ( " "..tostring(kmhs).."km/h", left ,  top +2, screenWidth +2, screenHeight , tocolor ( 255, 255, 255, 255 ), 1, spfont )
           dxDrawText ( " "..tostring(kmhs).."km/h", left -2,  top, screenWidth, screenHeight -2, tocolor ( 255, 255, 0, 255 ), 1, spfont )
           dxDrawText ( " "..tostring(mphs).."mph", left ,  top -23, screenWidth +2, screenHeight , tocolor ( 255, 255, 255, 255 ), 1, spfont )
           dxDrawText ( " "..tostring(mphs).."mph", left -2,  top -25, screenWidth, screenHeight -2, tocolor ( 255, 255, 0, 255 ), 1, spfont )
        end
    end

    try this

    Everything works fine, tried mistakes, let me offer you cooperation for your work, I will pay money, we will discuss my project in private messages.

  12. Spoiler

    That speedometer is all buggy, I threw off another one here the same errors but the code itself is small help please

    Spoiler

    screenWidth, screenHeight = guiGetScreenSize ( )
    function speed()
    if isPedInVehicle then
            theVehicle = getPedOccupiedVehicle ( getLocalPlayer() )
            speedx, speedy, speedz = getElementVelocity ( theVehicle )
            actualspeed = (speedx^2 + speedy^2 + speedz^2)^(0.5)
            kmh = actualspeed * 180
            kmhFloor = math.floor (kmh)
            dxDrawText ( "KMH: ".. kmhFloor, screenWidth - 150, screenHeight - 40, screenWidth, screenHeight, tocolor ( 255, 255, 0, 255 ), 1.02, "pricedown" )
        end
    end
    addEventHandler ( "onClientRender", root, speed )
     

     

  13. 4 hours ago, RavenLoad said:

    местный thecar =  getPedOccupiedVehicle (localPlayer)

    местные sx, sy, sz = getElementVelocity  (автомобиль )

    -------------------------------------------------- ---

    или просто:
    local sx, sy, sz = getElementVelocity (localplayer)

    not worked

×
×
  • Create New...