def schedule_updates(): # Player updates player_update_scheduler = BackgroundScheduler() player_update_scheduler._daemon = True player_update_scheduler.add_job( WorldSessionStateHandler.update_players, 'interval', seconds=0.1, max_instances=24) player_update_scheduler.start() # Creature updates creature_update_scheduler = BackgroundScheduler() creature_update_scheduler._daemon = True creature_update_scheduler.add_job(GridManager.update_creatures, 'interval', seconds=0.1, max_instances=24) creature_update_scheduler.start() # Gameobject updates gameobject_update_scheduler = BackgroundScheduler() gameobject_update_scheduler._daemon = True gameobject_update_scheduler.add_job(GridManager.update_gameobjects, 'interval', seconds=1.0, max_instances=12) gameobject_update_scheduler.start()
def schedule_background_tasks(): # Save characters realm_saving_scheduler = BackgroundScheduler() realm_saving_scheduler._daemon = True realm_saving_scheduler.add_job( WorldSessionStateHandler.save_characters, 'interval', seconds=config.Server.Settings.realm_saving_interval_seconds, max_instances=1) realm_saving_scheduler.start() # Player updates player_update_scheduler = BackgroundScheduler() player_update_scheduler._daemon = True player_update_scheduler.add_job( WorldSessionStateHandler.update_players, 'interval', seconds=0.1, max_instances=1) player_update_scheduler.start() # Creature updates creature_update_scheduler = BackgroundScheduler() creature_update_scheduler._daemon = True creature_update_scheduler.add_job(MapManager.update_creatures, 'interval', seconds=0.2, max_instances=1) creature_update_scheduler.start() # Gameobject updates gameobject_update_scheduler = BackgroundScheduler() gameobject_update_scheduler._daemon = True gameobject_update_scheduler.add_job(MapManager.update_gameobjects, 'interval', seconds=1.0, max_instances=1) gameobject_update_scheduler.start() # Cell deactivation cell_unloading_scheduler = BackgroundScheduler() cell_unloading_scheduler._daemon = True cell_unloading_scheduler.add_job(MapManager.deactivate_cells, 'interval', seconds=120.0, max_instances=1) cell_unloading_scheduler.start()
def handle(self): try: self.auth_challenge(self.request) self.player_mgr = None self.account_mgr = None self.keep_alive = True self.is_alive = True realm_saving_scheduler = BackgroundScheduler() realm_saving_scheduler._daemon = True realm_saving_scheduler.add_job(self.save_character, 'interval', seconds=config.Server.Settings.realm_saving_interval_seconds) realm_saving_scheduler.start() while self.receive(self.request) != -1 and self.keep_alive: sleep(0.001) finally: self.disconnect()
from game.realm import RealmManager from game.world import WorldManager from utils.ConfigManager import config from database.realm.RealmDatabaseManager import RealmDatabaseManager from utils.Logger import Logger if __name__ == '__main__': # initialize colorama to make ansi codes work in Windows colorama.init() login_thread = threading.Thread( target=RealmManager.LoginServerSessionHandler.start) login_thread.start() proxy_thread = threading.Thread( target=RealmManager.ProxyServerSessionHandler.start) proxy_thread.start() world_thread = threading.Thread( target=WorldManager.WorldServerSessionHandler.start) world_thread.start() realm_saving_scheduler = BackgroundScheduler() realm_saving_scheduler._daemon = True realm_saving_scheduler.add_job( RealmDatabaseManager.save, 'interval', seconds=config.Server.Settings.realm_saving_interval_seconds) realm_saving_scheduler.start()
def schedule_updates(): player_update_scheduler = BackgroundScheduler() player_update_scheduler._daemon = True player_update_scheduler.add_job(WorldSessionStateHandler.update_players, 'interval', seconds=0.05) player_update_scheduler.start()