SuleymanM Posted March 26, 2013 Posted March 26, 2013 ty to all , now tx_minimapshop function ... can set maps ... Its more problem ... Panel (F1) not remeber(not function for all maps) TopTimes .... why ? Look (toptimes_server.LUA) -- -- toptimes_server.lua -- SToptimesManager = {} SToptimesManager.__index = SToptimesManager SToptimesManager.instances = {} --------------------------------------------------------------------------- -- Server -- Handle events from Race -- -- This is the 'interface' from Race -- --------------------------------------------------------------------------- addEvent('onMapStarting') addEventHandler('onMapStarting', g_Root, function(mapInfo, mapOptions, gameOptions) if g_SToptimesManager then g_SToptimesManager:setModeAndMap( mapInfo.modename, mapInfo.name, gameOptions.statsKey ) end end ) addEvent('onPlayerPickUpRacePickup') addEventHandler('onPlayerPickUpRacePickup', g_Root, function(number, sort, model) if sort == "vehiclechange" then if model == 425 then --outputChatBox ( "* " .. getPlayerName(source) .. " has got the Hunter!", getRootElement(), 255, 0, 0, true ) if g_SToptimesManager then g_SToptimesManager:playerFinished( source, exports.race:getTimePassed()) end end end end ) addEvent('onPlayerPickUpRacePickup') addEventHandler('onPlayerPickUpRacePickup', g_Root, function(number, sort, model) if sort == "vehiclechange" then if model == 447 then --outputChatBox ( "* " .. getPlayerName(source) .. " has got the Hunter!", getRootElement(), 255, 0, 0, true ) if g_SToptimesManager then g_SToptimesManager:playerFinished( source, exports.race:getTimePassed()) end end end end ) addEvent('onPlayerPickUpRacePickup') addEventHandler('onPlayerPickUpRacePickup', g_Root, function(number, sort, model) if sort == "vehiclechange" then if model == 520 then --outputChatBox ( "* " .. getPlayerName(source) .. " has got the Hunter!", getRootElement(), 255, 0, 0, true ) if g_SToptimesManager then g_SToptimesManager:playerFinished( source, exports.race:getTimePassed()) end end end end ) addEvent('onPlayerPickUpRacePickup') addEventHandler('onPlayerPickUpRacePickup', g_Root, function(number, sort, model) if sort == "vehiclechange" then if model == 464 then --outputChatBox ( "* " .. getPlayerName(source) .. " has got the Hunter!", getRootElement(), 255, 0, 0, true ) if g_SToptimesManager then g_SToptimesManager:playerFinished( source, exports.race:getTimePassed()) end end end end ) addEvent('onPlayerPickUpRacePickup') addEventHandler('onPlayerPickUpRacePickup', g_Root, function(number, sort, model) if sort == "vehiclechange" then if model == 432 then --outputChatBox ( "* " .. getPlayerName(source) .. " has got the Hunter!", getRootElement(), 255, 0, 0, true ) if g_SToptimesManager then g_SToptimesManager:playerFinished( source, exports.race:getTimePassed()) end end end end ) addEvent('onPlayerFinish') addEventHandler('onPlayerFinish', g_Root, function(rank, time) if g_SToptimesManager then g_SToptimesManager:playerFinished( source, time) end end ) addEventHandler('onResourceStop', g_ResRoot, function() if g_SToptimesManager then g_SToptimesManager:unloadingMap() end end ) addEventHandler('onPlayerQuit', g_Root, function() if g_SToptimesManager then g_SToptimesManager:removePlayerFromUpdateList(source) g_SToptimesManager:unqueueUpdate(source) end end ) addEventHandler('onResourceStart', g_ResRoot, function() local raceInfo = getRaceInfo() if raceInfo and g_SToptimesManager then g_SToptimesManager:setModeAndMap( raceInfo.mapInfo.modename, raceInfo.mapInfo.name, raceInfo.gameOptions.statsKey ) end end ) function getRaceInfo() local raceResRoot = getResourceRootElement( getResourceFromName( "race" ) ) return raceResRoot and getElementData( raceResRoot, "info" ) end --------------------------------------------------------------------------- -- -- Events fired from here -- --------------------------------------------------------------------------- addEvent("onPlayerToptimeImprovement") --------------------------------------------------------------------------- --------------------------------------------------------------------------- -- -- SToptimesManager:create() -- -- Create a SToptimesManager instance -- --------------------------------------------------------------------------- function SToptimesManager:create() local id = #SToptimesManager.instances + 1 SToptimesManager.instances[id] = setmetatable( { id = id, playersWhoWantUpdates = {}, updateQueue = {}, serviceQueueTimer = nil, displayTopCount = 12, -- Top number of times to display mapTimes = nil, -- SMaptimes:create() serverRevision = 0, -- To prevent redundant updating to clients }, self ) SToptimesManager.instances[id]:postCreate() return SToptimesManager.instances[id] end --------------------------------------------------------------------------- -- -- SToptimesManager:destroy() -- -- Destroy a SToptimesManager instance -- --------------------------------------------------------------------------- function SToptimesManager:destroy() SToptimesManager.instances[self.id] = nil self.id = 0 end --------------------------------------------------------------------------- -- -- SToptimesManager:postCreate() -- -- -- --------------------------------------------------------------------------- function SToptimesManager:postCreate() cacheSettings() self.displayTopCount = g_Settings.numtimes end --------------------------------------------------------------------------- -- -- SToptimesManager:setModeAndMap() -- -- Called when a new map has been loaded -- --------------------------------------------------------------------------- function SToptimesManager:setModeAndMap( raceModeName, mapName, statsKey ) outputDebug( 'TOPTIMES', 'SToptimesManager:setModeAndMap ' .. raceModeName .. '<>' .. mapName ) -- Reset updatings from the previous map self.playersWhoWantUpdates = {} self.updateQueue = {} if self.serviceQueueTimer then killTimer(self.serviceQueueTimer) end self.serviceQueueTimer = nil -- Remove old map times if self.mapTimes then self.mapTimes:flush() -- Ensure last stuff is saved self.mapTimes:destroy() end -- Get map times for this map self.mapTimes = SMaptimes:create( raceModeName, mapName, statsKey ) self.mapTimes:load() -- Get the toptimes data ready to send self:updateTopText() end --------------------------------------------------------------------------- -- -- SToptimesManager:unloadingMap() -- -- Called when unloading -- --------------------------------------------------------------------------- function SToptimesManager:unloadingMap() if self.mapTimes then self.mapTimes:flush() -- Ensure last stuff is saved end end --------------------------------------------------------------------------- -- -- SToptimesManager:playerFinished()
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