JuanM27 Posted June 5, 2012 Share Posted June 5, 2012 hola buenos dias. estoy haciendo un sistema de clanes. ya lo tengo casi listo el cual lo estoy haciendo en una base de datos MySql pero tengo un problema con una list en la gui. la gui se me crea correctamente etc, solo que se que tengo mal la consulta en el serverside aca se lo dejo como lo tengo, nose si estara bien (supongo que esta mal) me podria decir como lo tengo que hacer para que cargue todos los clanes en un lista por favor... addEvent ("PidoLista", true) function PidoLista() master = dbQuery(link, "SELECT nombreclan FROM clanes") local queryResult = dbPoll ( master , -1 ) local Clanes = queryResult[1] if Clanes == nil then else for i,v in ipairs(Clanes) do triggerClientEvent(source,"ListaClanes",source,Clanes) end dbFree(master) end end addEventHandler( "PidoLista", getRootElement(), PidoLista ) y en el clientside tengo de esta manera. addEvent("ListaClanes",true) function ListaClanes(Clan) local playerList = guiCreateGridList ( 0.01, 0.09, 0.90, 0.75, true, theWindowCla1 ) local column = guiGridListAddColumn( playerList, "Clanes", 0.75 ) if ( column ) then local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, column, Clan, false, false ) end end addEventHandler ("ListaClanes", getRootElement(), ListaClanes) yo llamo el triggerServerEvent en el evento onClientGUIClick lo dejo por las dudas. function guiClick (button, state, absoluteX, absoluteY) if (source == CerrarClan) then guiSetVisible ( theWindowCla, false ) showCursor ( false ) elseif (source == creaClanBoton ) then local text = guiGetText ( editCraClanes ) triggerServerEvent("CreaClan", getLocalPlayer(), text) elseif (source == VerListaClan ) then menuShowClanes1() elseif (source == CerraVentanaList) then guiSetVisible ( theWindowCla1, false ) guiSetVisible ( theWindowCla, true ) end end addEventHandler ("onClientGUIClick", getRootElement(), guiClick) function menuShowClanes1 () visableornot1 = guiGetVisible (theWindowCla1) triggerServerEvent("PidoLista", localPlayer) if (visableornot1 == true) then guiSetVisible (theWindowCla1, false) showCursor (false) end if (visableornot1 == false) then guiSetVisible (theWindowCla1, true) showCursor (true) guiSetVisible ( theWindowCla, false ) ListaClanes() end end bueno espero que me puedan ayudar.. desde ya muchas gracias Link to comment
Castillo Posted June 5, 2012 Share Posted June 5, 2012 No te aconsejo hacer el loop server side, mejor envia la tabla de los clanes y luego haces el loop en el client side: --client side: addEvent("ListaClanes",true) function ListaClanes(clanes) local playerList = guiCreateGridList ( 0.01, 0.09, 0.90, 0.75, true, theWindowCla1 ) local column = guiGridListAddColumn( playerList, "Clanes", 0.75 ) if ( column ) then for index, clan in ipairs ( clanes ) do local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, column, clan [ "elNombreDeLaColumna" ], false, false ) -- Cambia "elNombreDeLaColumna". end end end addEventHandler ("ListaClanes", getRootElement(), ListaClanes) -- server side: addEvent ("PidoLista", true) function PidoLista ( ) local master = dbQuery ( link, "SELECT nombreclan FROM clanes" ) local queryResult = dbPoll ( master , -1 ) if ( queryResult ~= nil ) then triggerClientEvent ( source, "ListaClanes", source, queryResult ) end dbFree ( master ) end addEventHandler ( "PidoLista", getRootElement(), PidoLista ) Mira el comentario que puse en el client side, es muy importante. Link to comment
JuanM27 Posted June 5, 2012 Author Share Posted June 5, 2012 Listo Muchas Gracias.... Tema Resulto. Link to comment
Recommended Posts