@@ -82,6 +82,7 @@ CMainConfig::CMainConfig(CConsole* pConsole) : CXMLConfig(NULL)
8282 m_bSyncMapElementData = true ;
8383 m_elementDataWhitelisted = false ;
8484 m_checkDuplicateSerials = true ;
85+ m_allowMultiCommandHandlers = 1 ;
8586}
8687
8788bool CMainConfig::Load ()
@@ -540,6 +541,8 @@ bool CMainConfig::Load()
540541
541542 GetBoolean (m_pRootNode, " elementdata_whitelisted" , m_elementDataWhitelisted);
542543 GetBoolean (m_pRootNode, " check_duplicate_serials" , m_checkDuplicateSerials);
544+ GetInteger (m_pRootNode, " allow_multi_command_handlers" , m_allowMultiCommandHandlers);
545+ m_allowMultiCommandHandlers = Clamp (0 , m_allowMultiCommandHandlers, 2 );
543546
544547 ApplyNetOptions ();
545548
@@ -1531,6 +1534,7 @@ const std::vector<SIntSetting>& CMainConfig::GetIntSettingList()
15311534 {true , true , 50 , 1000 , 5000 , " player_triggered_event_interval" , &m_iPlayerTriggeredEventIntervalMs, &CMainConfig::OnPlayerTriggeredEventIntervalChange},
15321535 {true , true , 1 , 100 , 1000 , " max_player_triggered_events_per_interval" , &m_iMaxPlayerTriggeredEventsPerInterval, &CMainConfig::OnPlayerTriggeredEventIntervalChange},
15331536 {true , true , 0 , 1 , 1 , " resource_client_file_checks" , &m_checkResourceClientFiles, nullptr },
1537+ {true , true , 0 , 1 , 2 , " allow_multi_command_handlers" , &m_allowMultiCommandHandlers, &CMainConfig::OnAllowMultiCommandHandlersChange},
15341538 };
15351539
15361540 static std::vector<SIntSetting> settingsList;
@@ -1580,6 +1584,11 @@ void CMainConfig::OnPlayerTriggeredEventIntervalChange()
15801584 g_pGame->ApplyPlayerTriggeredEventIntervalChange ();
15811585}
15821586
1587+ void CMainConfig::OnAllowMultiCommandHandlersChange ()
1588+ {
1589+ g_pGame->SendSyncSettings ();
1590+ }
1591+
15831592void CGame::ApplyPlayerTriggeredEventIntervalChange ()
15841593{
15851594 m_iClientTriggeredEventsIntervalMs = m_pMainConfig->GetPlayerTriggeredEventInterval ();
0 commit comments