Noneatme

Untitled

Jul 9th, 2013
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.66 KB | None | 0 0
  1. -- #######################################
  2. -- ## Project: Playersync ACTIVE        ##
  3. -- ## Name: Playersync.lua                  ##
  4. -- ## Author: Noneatme                  ##
  5. -- ## Version: 1.0                      ##
  6. -- ## License: See top Folder           ##
  7. -- #######################################
  8.  
  9. -- FUNCTIONS / METHODS --
  10.  
  11. local cFunc = {};       -- Local Functions
  12. local cSetting = {};    -- Local Settings
  13.  
  14. Playersync = {};
  15. Playersync.__index = Playersync;
  16.  
  17. --[[
  18.     Playersync 1 - Syncs active players on THIS server to MySQL Database
  19. ]]
  20.  
  21. -- ///////////////////////////////
  22. -- ///// New                //////
  23. -- ///// Returns: Object    //////
  24. -- ///////////////////////////////
  25.  
  26. function Playersync:New(...)
  27.     local obj = setmetatable({}, {__index = self});
  28.     if obj.Constructor then
  29.         obj:Constructor(...);
  30.     end
  31.     return obj;
  32. end
  33.  
  34. -- ///////////////////////////////
  35. -- ///// JoinPlayer         //////
  36. -- ///// Returns: void      //////
  37. -- ///////////////////////////////
  38.  
  39. function Playersync:JoinPlayer(player)
  40.     if(player) then
  41.         source = player
  42.     end
  43.  
  44.     local serial = getPlayerSerial(source)
  45.  
  46.     local result, numrows = connectionManager:Query("SELECT * FROM tblplayers WHERE Serial = '"..serial.."';")
  47.    
  48.     if(numrows > 0) then
  49.        
  50.     else
  51.         local result, numrows = connectionManager:Query("INSERT INTO tblplayers(Serial) VALUES ('"..serial.."');")
  52.     end
  53.    
  54.     local player = source
  55.     self.updateTimer[player] = setTimer(self.updatePlayer, 500, -1, player);
  56. end
  57.  
  58. -- ///////////////////////////////
  59. -- ///// QuitPlayer         //////
  60. -- ///// Returns: void      //////
  61. -- ///////////////////////////////
  62.  
  63. function Playersync:QuitPlayer()
  64.     if(player) then
  65.         source = player
  66.     end
  67.    
  68.     local serial = getPlayerSerial(source)
  69.    
  70.     local result, numrows = connectionManager:Query("SELECT * FROM tblplayers WHERE Serial = '"..serial.."';")
  71.    
  72.     if(numrows > 0) then
  73.         connectionManager:Query("DELETE FROM tblplayers WHERE Serial = '"..serial.."';", true);
  74.     end
  75.    
  76.     if(isTimer(self.updateTimer[source])) then
  77.         killTimer(self.updateTimer[source]);
  78.     end
  79. end
  80.  
  81. -- ///////////////////////////////
  82. -- ///// UpdatePlayer       //////
  83. -- ///// Returns: void      //////
  84. -- ///////////////////////////////
  85.  
  86. function Playersync:UpdatePlayer(player)
  87.     local x, y, z = getElementPosition(player)
  88.     local int, dim = getElementInterior(player), getElementDimension(player)
  89.     local skin = getElementModel(player)
  90.     local serial = getPlayerSerial(player)
  91.     local name = getServerName(player)
  92.     local pname = getPlayerName(player)
  93.     local rot = getPedRotation(player)
  94.    
  95.     connectionManager:Query("UPDATE tblplayers SET PX = '"..x.."', PY = '"..y.."', PZ = '"..z.."', Interior = '"..int.."', Dimension = '"..dim.."', Skin = '"..skin.."', Currentservername = '"..name.."', Playername = '"..pname.."', Rotation = '"..rot.."' WHERE Serial = '"..serial.."';", true);
  96. end
  97.  
  98. -- ///////////////////////////////
  99. -- ///// Constructor        //////
  100. -- ///// Returns: void      //////
  101. -- ///////////////////////////////
  102.  
  103. function Playersync:Constructor(...)
  104.     self.joinPlayer = function(...) self:JoinPlayer(...) end;
  105.     self.quitPlayer = function(...) self:QuitPlayer(...) end;
  106.     self.updatePlayer = function(...) self:UpdatePlayer(...) end;
  107.     self.truncate = function(...)
  108.         connectionManager:Query("TRUNCATE tblplayers;", true)
  109.     end;
  110.    
  111.     self.playerID = {}
  112.    
  113.     addEventHandler("onPlayerJoin", getRootElement(), self.joinPlayer)
  114.     addEventHandler("onPlayerQuit", getRootElement(), self.quitPlayer)
  115.     addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), self.truncate)
  116.    
  117.     self.updateTimer = {};
  118.    
  119.     for index, player in pairs(getElementsByType("player")) do
  120.         self:JoinPlayer(player)
  121.     end
  122.     outputDebugString("[CALLING] Playersync: Constructor");
  123. end
  124.  
  125. -- EVENT HANDLER --
Advertisement
Add Comment
Please, Sign In to add comment