本文整理汇总了C++中WorldServer::Connect方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldServer::Connect方法的具体用法?C++ WorldServer::Connect怎么用?C++ WorldServer::Connect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldServer
的用法示例。
在下文中一共展示了WorldServer::Connect方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WorldServerLoop
// this should always be called in a new thread
void WorldServerLoop(void *tmp)
{
WorldLoopRunning = true;
while(RunLoops)
{
if (worldserver.Connected())
{
if (!(worldserver.ReceiveData() && worldserver.SendPacketQueue()))
{
worldserver.Disconnect();
}
}
else if (worldserver.GetState() == WSCS_Ready)
{
if (worldserver.ReconnectTimer->Check())
{
worldserver.Connect();
}
}
Sleep(1);
}
WorldLoopRunning = false;
}
示例2: main
int main(int argc, char** argv) {
RegisterExecutablePlatform(ExePlatformZone);
set_exception_handler();
const char *zone_name;
if(argc == 3) {
worldserver.SetLauncherName(argv[2]);
worldserver.SetLaunchedName(argv[1]);
if(strncmp(argv[1], "dynamic_", 8) == 0) {
//dynamic zone with a launcher name correlation
zone_name = ".";
} else {
zone_name = argv[1];
worldserver.SetLaunchedName(zone_name);
}
} else if (argc == 2) {
worldserver.SetLauncherName("NONE");
worldserver.SetLaunchedName(argv[1]);
if(strncmp(argv[1], "dynamic_", 8) == 0) {
//dynamic zone with a launcher name correlation
zone_name = ".";
} else {
zone_name = argv[1];
worldserver.SetLaunchedName(zone_name);
}
} else {
zone_name = ".";
worldserver.SetLaunchedName(".");
worldserver.SetLauncherName("NONE");
}
_log(ZONE__INIT, "Loading server configuration..");
if (!ZoneConfig::LoadConfig()) {
_log(ZONE__INIT_ERR, "Loading server configuration failed.");
return(1);
}
const ZoneConfig *Config=ZoneConfig::get();
if(!load_log_settings(Config->LogSettingsFile.c_str()))
_log(ZONE__INIT, "Warning: Unable to read %s", Config->LogSettingsFile.c_str());
else
_log(ZONE__INIT, "Log settings loaded from %s", Config->LogSettingsFile.c_str());
worldserver.SetPassword(Config->SharedKey.c_str());
_log(ZONE__INIT, "Connecting to MySQL...");
if (!database.Connect(
Config->DatabaseHost.c_str(),
Config->DatabaseUsername.c_str(),
Config->DatabasePassword.c_str(),
Config->DatabaseDB.c_str(),
Config->DatabasePort)) {
_log(ZONE__INIT_ERR, "Cannot continue without a database connection.");
return(1);
}
dbasync = new DBAsync(&database);
dbasync->AddFQ(&MTdbafq);
guild_mgr.SetDatabase(&database);
GuildBanks = NULL;
#ifdef _EQDEBUG
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
_log(ZONE__INIT, "CURRENT_VERSION: %s", CURRENT_VERSION);
/*
* Setup nice signal handlers
*/
if (signal(SIGINT, CatchSignal) == SIG_ERR) {
_log(ZONE__INIT_ERR, "Could not set signal handler");
return 0;
}
if (signal(SIGTERM, CatchSignal) == SIG_ERR) {
_log(ZONE__INIT_ERR, "Could not set signal handler");
return 0;
}
#ifndef WIN32
if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) {
_log(ZONE__INIT_ERR, "Could not set signal handler");
return 0;
}
#endif
const char *log_ini_file = "./log.ini";
if(!load_log_settings(log_ini_file))
_log(ZONE__INIT, "Warning: Unable to read %s", log_ini_file);
else
_log(ZONE__INIT, "Log settings loaded from %s", log_ini_file);
_log(ZONE__INIT, "Mapping Incoming Opcodes");
MapOpcodes();
_log(ZONE__INIT, "Loading Variables");
database.LoadVariables();
_log(ZONE__INIT, "Loading zone names");
database.LoadZoneNames();
_log(ZONE__INIT, "Loading items");
if (!database.LoadItems()) {
//.........这里部分代码省略.........
示例3: main
//.........这里部分代码省略.........
if (!database.LoadLoot()) {
LogFile->write(EQEMuLog::Error, "Loading loot FAILED!");
CheckEQEMuErrorAndPause();
return 0;
}
#ifdef SHAREMEM
LogFile->write(EQEMuLog::Status, "Loading doors");
database.LoadDoors();
#endif
LoadSPDat();
#ifdef GUILDWARS
LogFile->write(EQEMuLog::Status, "Loading guild alliances");
//database.LoadGuildAlliances();
#endif
// New Load function. keeping it commented till I figure out why its not working correctly in linux. Trump.
// NewLoadSPDat();
LogFile->write(EQEMuLog::Status, "Loading guilds");
database.LoadGuilds(guilds);
LogFile->write(EQEMuLog::Status, "Loading factions");
database.LoadFactionData();
LogFile->write(EQEMuLog::Status, "Loading corpse timers");
database.GetDecayTimes(npcCorpseDecayTimes);
LogFile->write(EQEMuLog::Status, "Loading what ever is left");
database.ExtraOptions();
AutoDelete<Parser> ADparse(&parse, new Parser);
#ifdef ADDONCMD
LogFile->write(EQEMuLog::Status, "Looding addon commands from dll");
if ( !addonCmd.openLib() ) {
LogFile->write(EQEMuLog::Error, "Loading addons failed =(");
}
#endif
if (!worldserver.Connect()) {
LogFile->write(EQEMuLog::Error, "worldserver.Connect() FAILED!");
}
if (strcmp(zone_name, ".") == 0 || strcasecmp(zone_name, "sleep") == 0) {
LogFile->write(EQEMuLog::Status, "Entering sleep mode");
} else if (!Zone::Bootup(database.GetZoneID(zone_name), true)) {
LogFile->write(EQEMuLog::Error, "Zone bootup FAILED!");
zone = 0;
}
Timer InterserverTimer(INTERSERVER_TIMER); // does MySQL pings and auto-reconnect
UpdateWindowTitle();
bool worldwasconnected = worldserver.Connected();
EQNetworkConnection* eqnc;
while(RunLoops) {
Timer::SetCurrentTime();
while ((eqnc = eqns.NewQueuePop())) {
struct in_addr in;
in.s_addr = eqnc->GetrIP();
LogFile->write(EQEMuLog::Status, "%i New client from ip:%s port:%i", Timer::GetCurrentTime(), inet_ntoa(in), ntohs(eqnc->GetrPort()));
Client* client = new Client(eqnc);
entity_list.AddClient(client);
}
#ifdef CATCH_CRASH
try{
#endif
worldserver.Process();
#ifdef CATCH_CRASH
}
catch(...){
error = 1;
adverrornum = worldserver.GetErrorNumber();