void Game::processGameStart() { m_online = true; // synchronize fight modes with the server m_protocolGame->sendChangeFightModes(m_fightMode, m_chaseMode, m_safeFight, m_pvpMode); // NOTE: the entire map description and local player information is not known yet (bot call is allowed here) enableBotCall(); g_lua.callGlobalField("g_game", "onGameStart"); disableBotCall(); if(g_game.getFeature(Otc::GameClientPing) || g_game.getFeature(Otc::GameExtendedClientPing)) { m_pingEvent = g_dispatcher.scheduleEvent([this] { g_game.ping(); }, m_pingDelay); } m_checkConnectionEvent = g_dispatcher.cycleEvent([this] { if(!g_game.isConnectionOk() && !m_connectionFailWarned) { g_lua.callGlobalField("g_game", "onConnectionFailing", true); m_connectionFailWarned = true; } else if(g_game.isConnectionOk() && m_connectionFailWarned) { g_lua.callGlobalField("g_game", "onConnectionFailing", false); m_connectionFailWarned = false; } }, 1000); }
void Game::processPing() { g_lua.callGlobalField("g_game", "onPing"); enableBotCall(); m_protocolGame->sendPingBack(); disableBotCall(); }
void Game::processGameStart() { m_online = true; // synchronize fight modes with the server m_protocolGame->sendChangeFightModes(m_fightMode, m_chaseMode, m_safeFight); // NOTE: the entire map description and local player information is not known yet (bot call is allowed here) enableBotCall(); g_lua.callGlobalField("g_game", "onGameStart"); disableBotCall(); }
void Game::processGameStart() { m_online = true; // synchronize fight modes with the server m_protocolGame->sendChangeFightModes(m_fightMode, m_chaseMode, m_safeFight); // NOTE: the entire map description and local player information is not known yet (bot call is allowed here) enableBotCall(); g_lua.callGlobalField("g_game", "onGameStart"); disableBotCall(); if(g_game.getFeature(Otc::GameClientPing) || g_game.getFeature(Otc::GameExtendedClientPing)) { m_protocolGame->sendPing(); m_pingEvent = g_dispatcher.cycleEvent([this] { if(m_protocolGame && m_protocolGame->isConnected()) { enableBotCall(); m_protocolGame->sendPing(); disableBotCall(); } }, 2000); } }
void Game::processOpenContainer(int containerId, const ItemPtr& containerItem, const std::string& name, int capacity, bool hasParent, const std::vector<ItemPtr>& items, bool isUnlocked, bool hasPages, int containerSize, int firstIndex) { ContainerPtr previousContainer = getContainer(containerId); ContainerPtr container = ContainerPtr(new Container(containerId, capacity, name, containerItem, hasParent, isUnlocked, hasPages, containerSize, firstIndex)); m_containers[containerId] = container; container->onAddItems(items); // we might want to close a container here enableBotCall(); container->onOpen(previousContainer); disableBotCall(); if(previousContainer) previousContainer->onClose(); }