Protagonist95 Posted August 5, 2017 Share Posted August 5, 2017 How can i pass serverside table to client? --Serverside function selectMembersList ( playerSource ) local connection = dbConnect( "sqlite", "data.db" ) local qh = dbQuery( connection, "SELECT member_login FROM gang_members WHERE gang_id = ?",selectGangIDBySerial(getPlayerSerial(playerSource))) local result = dbPoll ( qh, -1 ) local group_members = {} for _, row in ipairs ( result ) do local player = getPlayerFromSerial(row["member_login"]) table.insert(group_members,getPlayerSerial(player)) end return group_members --table is ok at this point end addEvent( "selectMembersListEvent", true ) addEventHandler( "selectMembersListEvent", resourceRoot, selectMembersList ) --Clientside function addGroupMembers() group_members = triggerServerEvent("selectMembersListEvent",resourceRoot,getLocalPlayer()) for _,value in ipairs(group_members) do -- table expected,got boolean outputChatBox(value) end end addEventHandler( "onClientResourceStart",resourceRoot,addGroupMembers) Link to comment
NeXuS™ Posted August 5, 2017 Share Posted August 5, 2017 triggerServerEvents can't return the values they get by the function "return". You have to make an another event on clientside to trigger it from the serverside and have the table as an arg in it. Link to comment
kikos500 Posted August 5, 2017 Share Posted August 5, 2017 --Serverside function selectMembersList ( playerSource ) local connection = dbConnect( "sqlite", "data.db" ) local qh = dbQuery( connection, "SELECT member_login FROM gang_members WHERE gang_id = ?",selectGangIDBySerial(getPlayerSerial(playerSource))) local result = dbPoll ( qh, -1 ) local group_members = {} for _, row in ipairs ( result ) do local player = getPlayerFromSerial(row["member_login"]) table.insert(group_members,getPlayerSerial(player)) end triggerClientEvent("resendValues", source, group_members) return group_members --table is ok at this point end addEvent( "selectMembersListEvent", true ) addEventHandler( "selectMembersListEvent", resourceRoot, selectMembersList ) --Clientside function addGroupMembers() group_members = triggerServerEvent("selectMembersListEvent",resourceRoot,getLocalPlayer()) end addEventHandler( "onClientResourceStart",resourceRoot,addGroupMembers) function recieveValue(group_members) for _,value in ipairs(group_members) do -- table expected,got boolean outputChatBox(value) end end addEvent("resendValues", true) addEventHandler("resendValues", resourceRoot, recieveValue) this should work the way u want it but why don't u do something like this ----- --Serverside function selectMembersList() local connection = dbConnect("sqlite", "data.db" ) local qh = dbQuery(connection, "SELECT member_login FROM gang_members WHERE gang_id = ?", selectGangIDBySerial(getPlayerSerial(source))) local result = dbPoll(qh, -1 ) local group_members = {} for _, row in ipairs (result) do local player = getPlayerFromSerial(row["member_login"]) table.insert(group_members, getPlayerSerial(player)) end triggerClientEvent("resendValues", source, group_members) end addEvent("selectMembersListEvent", true) addEventHandler("selectMembersListEvent", resourceRoot, selectMembersList) --Clientside function addGroupMembers() triggerServerEvent("selectMembersListEvent", getLocalPlayer()) end addEventHandler("onClientResourceStart", resourceRoot, addGroupMembers) function recieveValue(group_members) for _,value in ipairs(group_members) do -- table expected,got boolean outputChatBox(value) end end addEvent("resendValues", true) addEventHandler("resendValues", resourceRoot, recieveValue) Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now