Jump to content

[SOLUCIONADO]Ayuda con una gridlist


Anzo

Recommended Posts

Hola, estoy haciendo una gridlist donde puedas comprar tus armas, solo para probar, pero tengo un problema, al precionar el boton 'usar' me da el arma pero solo me quita 2$ de dinero, cuando me tendría que quitar 1000$ o 500$, otra cosa es que solo no deja comprar el arma cuando tienes 0$ de dinero, pero si tienes 100$ podrás comprar el arma valiendo 1000$.

-Client

armas = { 
{31, 500}, 
{38, 1000}, 
{8, 500}, 
} 
  
  Windows7 = guiCreateWindow(254, 96, 267, 362, "test", false) 
        guiWindowSetSizable(Windows7, false) 
        guiSetVisible(Windows7,false) 
  
  
        MyGrid = guiCreateGridList(23, 37, 220, 256, false, Windows7) 
        guiGridListAddColumn(MyGrid, "Armas", 0.7) 
        price = guiGridListAddColumn(MyGrid, "Precio", 0.4) 
  
          
      
        guiGridListSetItemText(MyGrid, 0, 1, "M4", false, false) 
        usar = guiCreateButton(23, 310, 220, 37, "Usar", false, Windows7)     
        
for i,v in ipairs (armas) do 
   local wep = getWeaponNameFromID(v[1]) 
   local row = guiGridListAddRow(MyGrid) 
   local row = guiGridListAddRow(MyGrid) 
    guiGridListSetItemText (MyGrid, row, 1, wep, false, true) 
    guiGridListSetItemText(MyGrid, row, price, v[2].."$", false, false) 
    guiGridListSetItemData (MyGrid, row, 1, v[1] ) 
     guiGridListSetItemData (MyGrid, row, 1, v[2] ) 
end 
  
local player = getLocalPlayer() 
  
addEventHandler("onClientGUIClick", root, 
function() 
    if source == usar then 
        local row, column = guiGridListGetSelectedItem(MyGrid) 
        if ( row ~= guiGridListGetRowCount ( MyGrid ) and column ~= 0 ) then 
            local weaponID = guiGridListGetItemText ( MyGrid, row, 1 ) 
            local money = getPlayerMoney(player) 
            local precioWeap = price 
            if money > precioWeap then 
                triggerServerEvent("onWeapon", player, weaponID,precioWeap) 
                outputChatBox("Haz elegido una: " ..weaponID.. "Por :"  ) 
                else 
                outputChatBox("No tienes dinero") 
            end     
            
        end 
    end 
end) 

-Server

addEvent("onWeapon", true) 
    addEventHandler("onWeapon", root, 
    function( weapon, precio) 
        if weapon and precio  then 
            
            local weaponID = getWeaponIDFromName(weapon) 
            takePlayerMoney(source, precio) 
            TestWep = giveWeapon(source,weaponID, 5000 ) 
            
            return true; 
        end 
    end) 

Edited by Guest
Link to comment
Linea 40:
local precioWeap = price 

Claro que te quita $2, ya que price tiene el int de la columna 2.

Reemplaza eso por:

local precioWeap = tonumber(guiGridListGetItemText ( MyGrid, row, 2 )) 

Tiene que ser guiGridListGetItemData, ya que el texto contiene el "$".

Link to comment

Gracias a los dos, pero ahora tengo otra pregunta, ¿cómo puedo poner las armas que llevas en una gridlist? yo intente con getPedWeapon y lo hice de la misma forma que tome las id de las armas, pero no sirvió.

Link to comment
Gracias a los dos, pero ahora tengo otra pregunta, ¿cómo puedo poner las armas que llevas en una gridlist? yo intente con getPedWeapon y lo hice de la misma forma que tome las id de las armas, pero no sirvió.
  
for slot=0, 12 do 
   if ( getPedWeapon(localPlayer, slot) ) then 
      guiGridListAddRow(...) 
   end 
end 
  

Link to comment
  • Recently Browsing   0 members

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