Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- #######################################
- -- ## Project: Playersync ACTIVE ##
- -- ## Name: Playersync.lua ##
- -- ## Author: Noneatme ##
- -- ## Version: 1.0 ##
- -- ## License: See top Folder ##
- -- #######################################
- -- FUNCTIONS / METHODS --
- local cFunc = {}; -- Local Functions
- local cSetting = {}; -- Local Settings
- Playersync = {};
- Playersync.__index = Playersync;
- --[[
- Playersync 1 - Syncs active players on THIS server to MySQL Database
- ]]
- -- ///////////////////////////////
- -- ///// New //////
- -- ///// Returns: Object //////
- -- ///////////////////////////////
- function Playersync:New(...)
- local obj = setmetatable({}, {__index = self});
- if obj.Constructor then
- obj:Constructor(...);
- end
- return obj;
- end
- -- ///////////////////////////////
- -- ///// JoinPlayer //////
- -- ///// Returns: void //////
- -- ///////////////////////////////
- function Playersync:JoinPlayer(player)
- if(player) then
- source = player
- end
- local serial = getPlayerSerial(source)
- local result, numrows = connectionManager:Query("SELECT * FROM tblplayers WHERE Serial = '"..serial.."';")
- if(numrows > 0) then
- else
- local result, numrows = connectionManager:Query("INSERT INTO tblplayers(Serial) VALUES ('"..serial.."');")
- end
- local player = source
- self.updateTimer[player] = setTimer(self.updatePlayer, 500, -1, player);
- end
- -- ///////////////////////////////
- -- ///// QuitPlayer //////
- -- ///// Returns: void //////
- -- ///////////////////////////////
- function Playersync:QuitPlayer()
- if(player) then
- source = player
- end
- local serial = getPlayerSerial(source)
- local result, numrows = connectionManager:Query("SELECT * FROM tblplayers WHERE Serial = '"..serial.."';")
- if(numrows > 0) then
- connectionManager:Query("DELETE FROM tblplayers WHERE Serial = '"..serial.."';", true);
- end
- if(isTimer(self.updateTimer[source])) then
- killTimer(self.updateTimer[source]);
- end
- end
- -- ///////////////////////////////
- -- ///// UpdatePlayer //////
- -- ///// Returns: void //////
- -- ///////////////////////////////
- function Playersync:UpdatePlayer(player)
- local x, y, z = getElementPosition(player)
- local int, dim = getElementInterior(player), getElementDimension(player)
- local skin = getElementModel(player)
- local serial = getPlayerSerial(player)
- local name = getServerName(player)
- local pname = getPlayerName(player)
- local rot = getPedRotation(player)
- 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);
- end
- -- ///////////////////////////////
- -- ///// Constructor //////
- -- ///// Returns: void //////
- -- ///////////////////////////////
- function Playersync:Constructor(...)
- self.joinPlayer = function(...) self:JoinPlayer(...) end;
- self.quitPlayer = function(...) self:QuitPlayer(...) end;
- self.updatePlayer = function(...) self:UpdatePlayer(...) end;
- self.truncate = function(...)
- connectionManager:Query("TRUNCATE tblplayers;", true)
- end;
- self.playerID = {}
- addEventHandler("onPlayerJoin", getRootElement(), self.joinPlayer)
- addEventHandler("onPlayerQuit", getRootElement(), self.quitPlayer)
- addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), self.truncate)
- self.updateTimer = {};
- for index, player in pairs(getElementsByType("player")) do
- self:JoinPlayer(player)
- end
- outputDebugString("[CALLING] Playersync: Constructor");
- end
- -- EVENT HANDLER --
Advertisement
Add Comment
Please, Sign In to add comment