Yoshi-Networks

Try again

Apr 4th, 2012
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. -- Client side
  2.  
  3. local cTimer = { }
  4.  
  5. function onUserClick ( points, achievements, account )
  6. local row, col = guiGridListGetSelectedItem ( source )
  7. if ( row and col and row ~= -1 and col ~= -1 ) then
  8. local slc = guiGridListGetItemText ( source, row, col )
  9. local timeSpent = getElementData ( tostring ( slc ), 'timeSpent' )
  10. for i, v in pairs ( label ) do
  11. guiSetText ( v, 'Requesting...' )
  12. end
  13. guiSetText ( label_account, "Account name: " .. callServerFunction ( 'getAccountName', getPlayerAccount ( slc ) ) or 'N/A' )
  14. guiSetText ( label_Serial, "Serial: " .. callServerFunction ( 'getPlayerSerial', slc ) or 'Invalid serial' )
  15. guiSetText ( label_Country, "Country: " .. callServerFunction ( 'exports.admin:getPlayerCountry', slc ) or 'N/A' )
  16. cTimer [ localPlayer ] = setTimer (
  17. function ( )
  18. guiSetText ( label_timespent, "Time online: " .. tostring ( math.floor ( timeSpent / 60 ) ) .. " hours and " .. math.floor ( timeSpent % 60 ) .. " minutes" )
  19. guiSetText ( label_Ping, "Ping: " .. callServerFunction ( 'getPlayerPing', slc ) )
  20. guiSetText ( label_achievements, "Achievements Unlocked: " .. getPlayerAchievements ( slc ) )
  21. guiSetText ( label_points, "NPG Points: " .. getPlayerPoints ( slc ) )
  22. end,
  23. 50, 0 )
  24. else
  25. if ( isTimer ( cTimer [ localPlayer ] ) then
  26. killTimer ( cTimer [ localPlayer ] )
  27. end
  28. guiSetText ( label_account, "Account name: No player selected" )
  29. guiSetText ( label_Ping, "Ping: No player selected" )
  30. guiSetText ( label_Serial, "Serial: No player selected" )
  31. guiSetText ( label_points, "NPG Points: No player selected" )
  32. guiSetText ( label_timespent, "Time online: No player selected" )
  33. guiSetText ( label_achievements, "Achievements Unlocked: No player selected" )
  34. guiSetText ( label_Country, "Country: No player selected" )
  35. end
  36. end
  37.  
  38. function callClientFunction(funcname, ...)
  39. local arg = { ... }
  40. if (arg[1]) then
  41. for key, value in next, arg do arg[key] = tonumber(value) or value end
  42. end
  43. loadstring("return "..funcname)()(unpack(arg))
  44. end
  45. addEvent("onServerCallsClientFunction", true)
  46. addEventHandler("onServerCallsClientFunction", resourceRoot, callClientFunction)
  47.  
  48. function callServerFunction(funcname, ...)
  49. local arg = { ... }
  50. if (arg[1]) then
  51. for key, value in next, arg do
  52. if (type(value) == "number") then arg[key] = tostring(value) end
  53. end
  54. end
  55. triggerServerEvent("onClientCallsServerFunction", resourceRoot , funcname, unpack(arg))
  56. end
  57.  
  58. -- Server side
  59.  
  60. function callServerFunction(funcname, ...)
  61. local arg = { ... }
  62. if (arg[1]) then
  63. for key, value in next, arg do arg[key] = tonumber(value) or value end
  64. end
  65. loadstring("return "..funcname)()(unpack(arg))
  66. end
  67. addEvent("onClientCallsServerFunction", true)
  68. addEventHandler("onClientCallsServerFunction", resourceRoot , callServerFunction)
  69.  
  70. function callClientFunction(client, funcname, ...)
  71. local arg = { ... }
  72. if (arg[1]) then
  73. for key, value in next, arg do
  74. if (type(value) == "number") then arg[key] = tostring(value) end
  75. end
  76. end
  77. triggerClientEvent(client, "onServerCallsClientFunction", resourceRoot, funcname, unpack(arg or {}))
  78. end
Advertisement
Add Comment
Please, Sign In to add comment