Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
    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()
Пример #4
0
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()
Пример #5
0
 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()