Jump to content

[SOLUCIONADO]Ayuda con una gridlist


Anzo

Recommended Posts

Posted (edited)

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
Posted

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

Posted
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 "$".

Posted

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

Posted
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 
  

Posted

No funciona, solo le agrege el nombre de la grid en el addRow pero no me aparece en la gridlist el nombre de las armas

  • Recently Browsing   0 members

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