Jump to content

[HELP] Add GridList row by Array


John_Scott

Recommended Posts

Posted

Hi!

Can someone help me with add items to a GridList from an array? I would like to set weapon IDs, Names, Prices in a Array, like this:

  
weapons = { 
"31";"M4";"100", 
"29";"MP5";"75", 
"30";"AK47";"90" } 
  

Place the ID to the first column, the name to the second and the price to the third.

Thanks for the helps!

Posted

I made this along time ago, try it(opens and close with 'shop')

Client:

GUI = { 
    Button = {}, 
    Window = {}, 
    Gridlist = {} 
} 
  
  
local weaponItems = { 
    {'Bat', 500, 5, 500}, 
    {'Chainsaw', 5000, 9, 1}, 
    {'Knife', 500, 4, 500}, 
    {'Katana', 3000, 8, 500}, 
    {'Shovel', 5000, 6, 1}, 
    {'Colt-45', 1000, 23, 500}, 
    {'Silenced Pistol', 2500, 22, 500}, 
    {'Desert Eagle', 2000, 24, 500}, 
    {'Sawn-Off Shotgun', 4700, 26, 500}, 
    {'Shotgun', 5000, 25, 500}, 
    {'SPAZ-12', 4000, 27,500}, 
    {'Uzi', 7500, 28, 500}, 
    {'Tec-9', 7500, 32, 500}, 
    {'MP5', 10500, 29, 500}, 
    {'AK-47', 5000, 30, 500}, 
    {'M4', 9000, 31, 500}, 
    {'Country Rifle', 3000, 33, 500}, 
    {'Sniper Rifle', 6000, 34, 500}, 
    {'Rocket Launcher', 10000, 35, 500}, 
    {'Heat-Seeking RPG', 10000, 36, 500}, 
    {'Grenade', 3500, 16, 500}, 
    {'Molotov Cocktails', 1500, 18, 500}, 
    {'Satchel Charges', 1500, 39, 50}, 
    {'Tear Gas', 300, 17, 500}, 
} 
  
addEventHandler('onClientResourceStart', resourceRoot, function() 
    GUI.Window[1] = guiCreateWindow(510, 337, 287, 336, "Shop", false) 
    guiSetAlpha(GUI.Window[1], 1.00) 
    GUI.Gridlist[1] = guiCreateGridList(9, 24, 268, 255, false, GUI.Window[1]) 
    guiGridListAddColumn(GUI.Gridlist[1], "ID", 0.2) 
    guiGridListAddColumn(GUI.Gridlist[1], "Weapons", 0.4) 
    guiGridListAddColumn(GUI.Gridlist[1], "$", 0.2) 
     
     
    for i, v in pairs(weaponItems) do 
        -- Note v is a table value. 
        local weaponName = v[1] 
        local weaponCost = v[2] 
        local weaponID = v[3] 
        local weaponAmmo = v[4] 
        local hiddenData = {weaponAmmo} 
         
        local theRow = guiGridListAddRow(GUI.Gridlist[1]) 
        guiGridListSetItemText(GUI.Gridlist[1], theRow, 1, weaponID, false, false) 
        guiGridListSetItemText(GUI.Gridlist[1], theRow, 2, weaponName, false, false) 
        guiGridListSetItemText(GUI.Gridlist[1], theRow, 3, weaponCost, false, false) 
        guiGridListSetItemData(GUI.Gridlist[1], theRow, 1, hiddenData) 
    end 
     
     
    GUI.Button[1] = guiCreateButton(180, 289, 87, 38, "Close", false, GUI.Window[1]) 
    GUI.Button[2] = guiCreateButton(19, 287, 87, 39, "Buy", false, GUI.Window[1]) 
    guiSetVisible(GUI.Window[1], false) 
    showCursor(false) 
end ) 
  
function enableOrDisableShop() 
    if guiGetVisible(GUI.Window[1]) == false then 
        guiSetVisible(GUI.Window[1], true) 
        showCursor(true) 
        updateWeaponGridList() 
    else 
        guiSetVisible(GUI.Window[1], false) 
        showCursor(false) 
    end 
end 
addCommandHandler("shop", enableOrDisableShop) 
  
function updateWeaponGridList() 
    guiGridListClear(GUI.Gridlist[1]) 
    for i, v in pairs(weaponItems) do 
        -- Note v is a table value. 
        local weaponName = v[1] 
        local weaponCost = v[2] 
        local weaponID = v[3] 
        local weaponAmmo = v[4] 
        local hiddenData = {weaponAmmo} 
         
        local theRow = guiGridListAddRow(GUI.Gridlist[1]) 
        guiGridListSetItemText(GUI.Gridlist[1], theRow, 1, weaponID, false, false) 
        guiGridListSetItemText(GUI.Gridlist[1], theRow, 2, weaponName, false, false) 
        guiGridListSetItemText(GUI.Gridlist[1], theRow, 3, weaponCost, false, false) 
        guiGridListSetItemData(GUI.Gridlist[1], theRow, 1, hiddenData) 
    end 
end 
  
addEventHandler("onClientGUIClick", guiRoot, 
function() 
    if source == GUI.Button[2] then 
        local row = guiGridListGetSelectedItem(GUI.Gridlist[1]) 
        if row then 
            local weaponID = guiGridListGetItemText(GUI.Gridlist[1], row, 1) 
            local weaponName = guiGridListGetItemText(GUI.Gridlist[1], row, 2) 
            local weaponCost = guiGridListGetItemText(GUI.Gridlist[1], row, 3) 
             
            local hiddenData = guiGridListGetItemData(GUI.Gridlist[1], row, 1) 
            local weaponAmmo = hiddenData[1] 
            triggerServerEvent("onWeaponBought", localPlayer, weaponName, weaponCost, weaponID, weaponAmmo) 
        end 
    elseif source == GUI.Button[1] then 
        enableOrDisableShop() 
    end 
end) 

Server:

addEvent("onWeaponBought", true) 
addEventHandler("onWeaponBought", root, 
function(weaponName, weaponCost, weaponID, weaponAmmo) 
    if getPlayerMoney (source) >= tonumber(weaponCost) then 
        takePlayerMoney (source, weaponCost) 
        giveWeapon ( source, weaponID, weaponAmmo ) 
        outputChatBox('You have just bought #FFFFFF('..weaponName..')!', source, 255, 0, 0, true) 
    else 
        outputChatBox('This weapon require #FFFFFF$'..tonumber(weaponCost)..'#FF0000.', source, 255, 0, 0, true) 
    end 
end) 

If you're looking for a cheap paid scripter, don't hesitate to contact me.

Great minds discuss ideas, Average minds discuss events and small minds discuss people.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...