CMap :: CMap( CGHost *nGHost ) { CONSOLE_Print( "[MAP] using hardcoded Emerald Gardens map data for Warcraft 3 version 1.24" ); m_GHost = nGHost; m_Valid = true; m_MapPath = "Maps\\FrozenThrone\\(12)EmeraldGardens.w3x"; m_MapSize = UTIL_ExtractNumbers( "174 221 4 0", 4 ); m_MapInfo = UTIL_ExtractNumbers( "251 57 68 98", 4 ); m_MapCRC = UTIL_ExtractNumbers( "108 250 204 59", 4 ); m_MapSHA1 = UTIL_ExtractNumbers( "35 81 104 182 223 63 204 215 1 17 87 234 220 66 3 185 82 99 6 13", 20 ); m_MapSpeed = MAPSPEED_FAST; m_MapVisibility = MAPVIS_DEFAULT; m_MapObservers = MAPOBS_NONE; m_MapFlags = MAPFLAG_TEAMSTOGETHER | MAPFLAG_FIXEDTEAMS; m_MapGameType = 9; m_MapWidth = UTIL_ExtractNumbers( "172 0", 2 ); m_MapHeight = UTIL_ExtractNumbers( "172 0", 2 ); m_MapLoadInGame = false; m_MapNumPlayers = 12; m_MapNumTeams = 12; m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 0, 0, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 1, 1, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 2, 2, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 3, 3, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 4, 4, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 5, 5, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 6, 6, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 7, 7, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 8, 8, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 9, 9, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 10, 10, SLOTRACE_RANDOM ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 11, 11, SLOTRACE_RANDOM ) ); }
CMap :: CMap( CGHost *nGHost ) { CONSOLE_Print( "[MAP] using hardcoded Emerald Gardens map data for Warcraft 3 version 1.24 & 1.24b" ); m_GHost = nGHost; m_Valid = true; m_MapPath = "Maps\\FrozenThrone\\(12)EmeraldGardens.w3x"; m_MapSize = UTIL_ExtractNumbers( "174 221 4 0", 4 ); m_MapInfo = UTIL_ExtractNumbers( "251 57 68 98", 4 ); m_MapCRC = UTIL_ExtractNumbers( "108 250 204 59", 4 ); m_MapSHA1 = UTIL_ExtractNumbers( "35 81 104 182 223 63 204 215 1 17 87 234 220 66 3 185 82 99 6 13", 20 ); if (m_GHost->m_LANWar3Version == 23) { m_MapCRC = UTIL_ExtractNumbers( "112 185 65 97", 4 ); m_MapSHA1 = UTIL_ExtractNumbers( "187 28 143 4 97 223 210 52 218 28 95 52 217 203 121 202 24 120 59 213", 20 ); } m_MapSpeed = MAPSPEED_FAST; m_MapVisibility = MAPVIS_DEFAULT; m_MapObservers = MAPOBS_NONE; m_MapFlags = MAPFLAG_TEAMSTOGETHER | MAPFLAG_FIXEDTEAMS; m_MapFilterMaker = MAPFILTER_MAKER_BLIZZARD; m_MapFilterType = MAPFILTER_TYPE_MELEE; m_MapFilterSize = MAPFILTER_SIZE_LARGE; m_MapFilterObs = MAPFILTER_OBS_NONE; m_MapOptions = MAPOPT_MELEE; m_MapWidth = UTIL_ExtractNumbers( "172 0", 2 ); m_MapHeight = UTIL_ExtractNumbers( "172 0", 2 ); m_MapLoadInGame = false; m_MapNumPlayers = 12; m_MapNumTeams = 12; m_MapOnlyAutoWarnIfMoreThanXPlayers = 0; m_AutoWarnMarks.push_back( 0 ); m_LogAll = false; m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 0, 0, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 1, 1, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 2, 2, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 3, 3, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 4, 4, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 5, 5, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 6, 6, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 7, 7, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 8, 8, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 9, 9, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 10, 10, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 11, 11, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); }
CMap :: CMap( CGHost *nGHost ) : m_GHost( nGHost ), m_Valid( true ), m_MapPath( "Maps\\FrozenThrone\\(12)EmeraldGardens.w3x" ), m_MapSpeed( MAPSPEED_FAST ), m_MapVisibility( MAPVIS_DEFAULT ), m_MapObservers( MAPOBS_NONE ), m_MapFlags( MAPFLAG_TEAMSTOGETHER | MAPFLAG_FIXEDTEAMS ), m_MapFilterMaker( MAPFILTER_MAKER_BLIZZARD ), m_MapFilterType( MAPFILTER_TYPE_MELEE ), m_MapFilterSize( MAPFILTER_SIZE_LARGE ), m_MapFilterObs( MAPFILTER_OBS_NONE ), m_MapOptions( MAPOPT_MELEE ), m_MapLoadInGame( false ), m_MapNumPlayers( 12 ), m_MapNumTeams( 12 ) { CONSOLE_Print( "[MAP] using hardcoded Emerald Gardens map data for Warcraft 3 version 1.24 & 1.24b" ); m_MapSize = UTIL_ExtractNumbers( "174 221 4 0", 4 ); m_MapInfo = UTIL_ExtractNumbers( "251 57 68 98", 4 ); m_MapCRC = UTIL_ExtractNumbers( "108 250 204 59", 4 ); m_MapSHA1 = UTIL_ExtractNumbers( "35 81 104 182 223 63 204 215 1 17 87 234 220 66 3 185 82 99 6 13", 20 ); m_MapWidth = UTIL_ExtractNumbers( "172 0", 2 ); m_MapHeight = UTIL_ExtractNumbers( "172 0", 2 ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 0, 0, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 1, 1, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 2, 2, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 3, 3, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 4, 4, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 5, 5, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 6, 6, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 7, 7, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 8, 8, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 9, 9, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 10, 10, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); m_Slots.push_back( CGameSlot( 0, 255, SLOTSTATUS_OPEN, 0, 11, 11, SLOTRACE_RANDOM | SLOTRACE_SELECTABLE ) ); }
CCCBot :: CCCBot( CConfig *CFG ) : m_Exiting( false), m_Version( "1.04" ) { CONSOLE_Print( "[CCBOT] Channel && Clan Bot - " + m_Version + ", based on GHost++" ); m_DB = new CCCBotDB( CFG ); m_Language = new CLanguage( LanguageFile ); m_Warcraft3Path = CFG->GetString( "bot_war3path", "C:\\Program Files\\Warcraft III\\" ); // load the battle.net connections // we're just loading the config data and creating the CBNET classes here, the connections are established later (in the Update function) if( CFG->GetGenerated( ) ) { CONSOLE_Print( "[CONFIG] EDIT ccbot.cfg IN THE cfg FOLDER AND RESTART CCBOT!" ); CONSOLE_Print( "[CONFIG] EDIT ccbot.cfg IN THE cfg FOLDER AND RESTART CCBOT!" ); CONSOLE_Print( "[CONFIG] EDIT ccbot.cfg IN THE cfg FOLDER AND RESTART CCBOT!" ); CONSOLE_Print( "[CONFIG] EDIT ccbot.cfg IN THE cfg FOLDER AND RESTART CCBOT!" ); return; } for( unsigned int i = 1; i < 10; ++i ) { string Prefix; if( i == 1 ) Prefix = "bnet_"; else Prefix = "bnet" + UTIL_ToString( i ) + "_"; string Server = CFG->GetString( Prefix + "server", string( ) ); transform( Server.begin( ), Server.end( ), Server.begin( ), (int(*)(int))tolower ); string CDKeyROC = CFG->GetString( Prefix + "cdkeyroc", string( ) ); string CDKeyTFT = CFG->GetString( Prefix + "cdkeytft", string( ) ); string CountryAbbrev = CFG->GetString( Prefix + "countryabbrev", "FIN" ); string Country = CFG->GetString( Prefix + "country", "Finland" ); string UserName = CFG->GetString( Prefix + "username", string( ) ); string UserPassword = CFG->GetString( Prefix + "password", string( ) ); string FirstChannel = CFG->GetString( Prefix + "firstchannel", "The Void" ); string RootAdmin = CFG->GetString( Prefix + "rootadmin", string( ) ); string BNETCommandTrigger = CFG->GetString( Prefix + "commandtrigger", "!" ); string ClanTag = CFG->GetString( Prefix + "clantag", "" ); string HostbotName = CFG->GetString( Prefix + "hostbotname", "" ); bool AntiSpam = CFG->GetInt( Prefix + "antispam", 0 ) == 0 ? false : true; bool GreetUsers = CFG->GetInt( Prefix + "greetusers", 0 ) == 0 ? false : true; bool SwearingKick = CFG->GetInt( Prefix + "swearingkick", 0 ) == 0 ? false : true; bool AnnounceGames = CFG->GetInt( Prefix + "announcegames", 0 ) == 0 ? false : true; bool SelfJoin = CFG->GetInt( Prefix + "selfjoin", 0 ) == 0 ? false : true; bool BanChat = CFG->GetInt( Prefix + "banchat", 0 ) == 0 ? false : true; unsigned char ClanDefaultAccess = CFG->GetInt( Prefix + "clanmembersdefaultaccess", 4 ); if( ClanDefaultAccess > 9 ) ClanDefaultAccess = 9; unsigned char War3Version = CFG->GetInt( Prefix + "custom_war3version", 24 ); BYTEARRAY EXEVersion = UTIL_ExtractNumbers( CFG->GetString( Prefix + "custom_exeversion", string( ) ), 4 ); BYTEARRAY EXEVersionHash = UTIL_ExtractNumbers( CFG->GetString( Prefix + "custom_exeversionhash", string( ) ), 4 ); string PasswordHashType = CFG->GetString( Prefix + "custom_passwordhashtype", string( ) ); unsigned char MaxMessageLength = CFG->GetInt( Prefix + "custom_maxmessagelength", 200 ); if( Server.empty( ) ) break; CONSOLE_Print( "[CCBOT] found battle.net connection #" + UTIL_ToString( i ) + " for server [" + Server + "]" ); m_BNETs.push_back( new CBNET( this, Server, CDKeyROC, CDKeyTFT, CountryAbbrev, Country, UserName, UserPassword, FirstChannel, RootAdmin, BNETCommandTrigger[0], War3Version, EXEVersion, EXEVersionHash, PasswordHashType, MaxMessageLength, ClanTag, GreetUsers, SwearingKick, AnnounceGames, SelfJoin, BanChat, ClanDefaultAccess, HostbotName, AntiSpam ) ); } if( m_BNETs.empty( ) ) CONSOLE_Print( "[CCBOT] warning - no battle.net connections found in config file" ); // Update the swears.cfg file UpdateSwearList( ); // Check for the default access system values UpdateCommandAccess( ); m_Uptime = GetTime( ); }