cgsayhandler.cpp
来自「天之炼狱1服务器端源文件游戏服务端不完整」· C++ 代码 · 共 1,958 行 · 第 1/5 页
CPP
1,958 行
//cout << "==================Operator Order user Execute==================" << endl; opuser(pGamePlayer, msg, i); } else if (msg.substr(i+1 , 6) == "notice" && (pCreature->isGOD() || pCreature->isDM())){ //cout << "==================Operator Order user Execute==================" << endl; opnotice(pGamePlayer, msg, i); } // 阿辆 窃荐侩 蔼 技泼侩 窃荐 // set type value 屈怕肺 沥狼等促. // 2002.5.8 喊 犬伏阑 磊啦利栏肺 炼例窍扁 困秦辑 父惦 else if (msg.substr(i+1, 3) == "set" && (pCreature->isGOD())) { opset(pGamePlayer, msg, i); } else if (msg.substr(i+1, 4) == "load" && (pCreature->isGOD())) { opload(pGamePlayer, msg, i); } else if (msg.substr(i+1, 4) == "view" && (pCreature->isGOD() || pCreature->isDM())) { opview(pGamePlayer, msg, i); } else if (msg.substr(i+1, 6) == "combat" && (pCreature->isGOD() || pCreature->isDM())) { opcombat(pGamePlayer, msg, i); } else if (msg.substr(i+1, 4) == "find" || msg.substr(i+1, 4) == "绢叼") { opfind(pGamePlayer, msg, i); } else if (msg.substr(i+1, 6) == "credit") { opcredit(pGamePlayer, msg, i); } else if (msg.substr(i+1, 9) == "soulchain" && ( !pCreature->isPLAYER() ) ) { opsoulchain( pGamePlayer, msg, i ); } else if ( msg.substr(i+1, 3) == "log" && (pCreature->isGOD() || pCreature->isDM()) ) { oplog( pGamePlayer, msg, i ); } else if ( msg.substr(i+1, 10) == "bug_report" ) { uint j = msg.find_first_of(' ', i+1); if ( j == string::npos ) { filelog("bugreport.log", "%s", msg.c_str()); return; } string report = msg.substr(j+1, msg.size()-j-1); if ( ( j = report.find_first_of('\'') ) != string::npos ) report[j] = '_'; if ( ( j = report.find_first_of('\\') ) != string::npos ) report[j] = '_'; Statement* pStmt = NULL; try { BEGIN_DB { pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); pStmt->executeQuery("INSERT INTO BugReportLog(PlayerID, Name, ReportTime, ReportLog) VALUES " "('%s', '%s', now(), '%s')", pGamePlayer->getID().c_str(), pCreature->getName().c_str(), report.c_str()); SAFE_DELETE(pStmt); } END_DB(pStmt) // 穿啊 捞惑茄芭 朝府搁 公矫窍磊 } catch(...) { filelog("bugreport.log", "%s", msg.c_str()); } } else if ( msg.substr(i+1,11) == "CrashReport" ) { uint j = msg.find_first_of(' ', i+1); uint k = msg.find_first_of(' ', j+13); uint l = msg.find_first_of(' ', k+1); uint m = msg.find_first_of(' ', l+1); if ( j == string::npos || k == string::npos || l == string::npos || m == string::npos ) { filelog("CrashReport.log", "[%s] %s", pGamePlayer->getID().c_str(), msg.c_str() ); return; } string ExecutableTime = msg.substr(j+1, k-j-1); string Version = msg.substr(k+1, l-k-1); string Address = msg.substr(l+1, m-l-1); string Message = msg.substr(m+1, msg.size()-m-1); cout << ExecutableTime << endl; cout << Version << endl; cout << Address << endl; cout << Message << endl; Statement* pStmt = NULL; try { BEGIN_DB { pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); pStmt->executeQuery("INSERT INTO CrashLog (PlayerID, Name, ReportTime, ExecutableTime, Version, Address, Message) VALUES " "('%s', '%s', now(), '%s', '%s', '%s', '%s')", pGamePlayer->getID().c_str(), pCreature->getName().c_str(), ExecutableTime.c_str(), Version.c_str(), Address.c_str(), Message.c_str() ); SAFE_DELETE(pStmt); } END_DB(pStmt) // 穿啊 捞惑茄芭 朝府搁 公矫窍磊 } catch(...) { filelog("CrashReport.log", "%s", msg.c_str()); } } __END_CATCH}void CGSayHandler::opcombat(GamePlayer* pGamePlayer, string msg, int i) throw(ProtocolException, Error){ __BEGIN_TRY if(pGamePlayer==NULL) return; Creature* pCreature = pGamePlayer->getCreature(); if (pCreature==NULL) return; filelog("change.txt", "[%s] %s", pCreature->getName().c_str(), msg.c_str());// Creature* pCreature = pGamePlayer->getCreature(); GCSystemMessage gcSystemMessage; // 烙矫肺 阜酒敌巴 { gcSystemMessage.setMessage( g_pStringPool->getString( STRID_DO_NOT_SUPPORT_OLD_WAR ) ); pGamePlayer->sendPacket (&gcSystemMessage); return; } StringStream message; uint j = msg.find_first_of(' ', i+1); uint z = msg.find_first_of(' ', j+1); string set_type = msg.substr(j+1, z-j-1); if(set_type == "start") { if(g_pCombatInfoManager->isCombat() || g_pCombatInfoManager->isSlayerBonus() || g_pCombatInfoManager->isVampireBonus()) { cout << "捞固 傈里吝涝聪促" << endl;// message << "捞固 傈里吝涝聪促"; gcSystemMessage.setMessage( g_pStringPool->getString( STRID_COMBAT_ALEADY_START ) ); pGamePlayer->sendPacket (&gcSystemMessage); } else { cout << "傈里捞 矫累登菌嚼聪促" << endl;// message << "傈里捞 矫累登菌嚼聪促"; gcSystemMessage.setMessage( g_pStringPool->getString( STRID_COMBAT_START ) ); g_pZoneGroupManager->broadcast( &gcSystemMessage ); // by sigi. 2002.7.5 for (int i=0; i<maxRelic; i++) { const RelicInfo* pRelicInfo = dynamic_cast<RelicInfo*>(g_pRelicInfoManager->getItemInfo(i)); int ZoneNum = pRelicInfo->zoneID; ZoneInfo* pZoneInfo = NULL; try { pZoneInfo = g_pZoneInfoManager->getZoneInfo(ZoneNum); } catch (NoSuchElementException&) { throw Error("傈里粮捞 绝促."); } ZoneGroup* pZoneGroup = NULL; try { pZoneGroup = g_pZoneGroupManager->getZoneGroup(pZoneInfo->getZoneGroupID()); } catch (NoSuchElementException&) { throw Error("傈里粮捞 绝促.2"); } Zone* pZone = pZoneGroup->getZone(ZoneNum); pZone->addRelicItem( i ); } g_pCombatInfoManager->setCombat( true ); } } else if(set_type == "end") { if(!g_pCombatInfoManager->isCombat() && (g_pCombatInfoManager->isSlayerBonus() || g_pCombatInfoManager->isVampireBonus())) { cout << "傈里阑 辆丰钦聪促." << endl; gcSystemMessage.setMessage( g_pStringPool->getString( STRID_COMBAT_END ) ); g_pZoneGroupManager->broadcast( &gcSystemMessage ); // by sigi. 2002.7.5 for (int i=0; i<maxRelic; i++) { const RelicInfo* pRelicInfo = dynamic_cast<RelicInfo*>(g_pRelicInfoManager->getItemInfo(i)); int ZoneNum = pRelicInfo->zoneID; ZoneInfo* pZoneInfo = NULL; try { pZoneInfo = g_pZoneInfoManager->getZoneInfo(ZoneNum); } catch (NoSuchElementException&) { throw Error("傈里粮捞 绝促."); } ZoneGroup* pZoneGroup = NULL; try { pZoneGroup = g_pZoneGroupManager->getZoneGroup(pZoneInfo->getZoneGroupID()); } catch (NoSuchElementException&) { throw Error("傈里粮捞 绝促.2"); } Zone* pZone = pZoneGroup->getZone(ZoneNum); pZone->deleteRelicItem(); g_pCombatInfoManager->setRelicOwner(i, CombatInfoManager::RELIC_OWNER_NULL); } g_pCombatInfoManager->computeModify(); g_pCombatInfoManager->setCombat( false ); } else { cout << "傈里吝捞 酒聪芭唱 辆丰且 荐 绝嚼聪促." << endl; gcSystemMessage.setMessage( g_pStringPool->getString( STRID_CANNOT_END_COMBAT ) ); pGamePlayer->sendPacket (&gcSystemMessage); } } __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGSayHandler::opview(GamePlayer* pGamePlayer, string msg, int i) throw(ProtocolException, Error){ __BEGIN_TRY if (pGamePlayer==NULL) return; Creature* pCreature = pGamePlayer->getCreature(); GCSystemMessage gcSystemMessage; StringStream message; uint j = msg.find_first_of(' ' , i+1); uint z = msg.find_first_of(' ' , j+1); string set_type = msg.substr(j+1, z-j-1); cout << "modifier : " << pCreature->getName() << " set type : " << set_type << endl; if(set_type == "star") { message << "喊 免泅 犬伏: 1/" << g_pVariableManager->getStar(); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "evnet_activate") { if(g_pVariableManager->getEventActivate() == 1) message << "捞亥飘 柳青吝" << endl; else message << "捞亥飘 沥瘤吝" << endl; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "event_ratio") { message << "捞亥飘 阁胶磐 免泅 犬伏 1/" << g_pVariableManager->getEventRatio(); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "exp_ratio") { message << "版氰摹 裙垫伏: " << g_pVariableManager->getExpRatio(); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "item_prob_ratio") { message << "酒捞袍 裙垫伏: " << g_pVariableManager->getItemProbRatio(); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "combat_bonus_time") { message << "傈里 铰府 蜡瘤矫埃: " << g_pVariableManager->getCombatBonusTime() << "盒"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "combat_bonus_slayer_hp_ratio") { message << "浇饭捞绢 傈里 HP焊呈胶 刘啊摹: +" << g_pVariableManager->getCombatSlayerHPBonusRatio() << "%"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "combat_bonus_vampire_hp_ratio") { message << "轨颇捞绢 傈里 HP焊呈胶 刘啊摹: +" << g_pVariableManager->getCombatVampireHPBonusRatio() << "%"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "combat_bonus_slayer_damage") { message << "浇饭捞绢 傈里 Damage焊呈胶 刘啊摹: +" << g_pVariableManager->getCombatSlayerDamageBonus(); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "combat_bonus_vampire_damage") { message << "轨颇捞绢 傈里 Damage焊呈胶 刘啊摹: +" << g_pVariableManager->getCombatVampireDamageBonus(); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "premium_exp_bonus_percent") { message << "橇府固决 荤侩磊 版氰摹 焊呈胶: " << g_pVariableManager->getPremiumExpBonusPercent() << "%"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "premium_item_probe_percent") { message << "橇府固决 粮 酒捞袍 风泼 犬伏: " << g_pVariableManager->getPremiumItemProbePercent() << "%"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "zone_group_balancing_minute") { message << "ZoneGroupBalancing 矫埃: " << g_pVariableManager->getZoneGroupBalancingMinute() << "盒"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "zone_group_next_balancing_time") { const Timeval& tv = g_pClientManager->getBalanceZoneGroupTime(); Timeval currentTime; getCurrentTime(currentTime); message << "促澜 ZoneGroupBalancing 矫埃: " << (tv.tv_sec - currentTime.tv_sec)/60 << "盒 饶"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "gamble_item_type_ratio") { message << "胺喉 ItemType犬伏: " << g_pVariableManager->getGambleItemTypeRatio() << "%"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "gamble_item_option_ratio") { message << "胺喉 ItemOption犬伏: " << g_pVariableManager->getGambleItemOptionRatio() << "%"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "summon_motorcycle") { message << "坷配官捞 家券 扁瓷 : " << (g_pVariableManager->isSummonMotorcycle()? "ON":"OFF"); gcSystemMessage.setMessage(message.toString()); } else if (set_type == "enemy_limit_time") { message << "阁胶磐 利 蜡瓤 矫埃: " << g_pVariableManager->getEnemyLimitTime() << "檬"; gcSystemMessage.setMessage(message.toString()); } else if (set_type == "rare_item_ratio") { message << "饭绢 酒捞袍 风泼 犬伏: " << g_pVariableManager->getRareItemRatio() << "%"; gcSystemMessage.setMessage(message.toString()); } else if (set_type == "unique_item_ratio") { message << "蜡聪农 酒捞袍 风泼 犬伏: " << g_pVariableManager->getUniqueItemRatio() << "/10000"; gcSystemMessage.setMessage(message.toString()); } else if(set_type == "active_master_lair") { message << "付胶磐 饭绢 捞亥飘 : " << (g_pVariableManager->isActiveMasterLair()? "ON":"OFF"); gcSystemMessage.setMessage(message.toString()); } else if(set_type == "retry_master_lair") { message << "付胶磐 饭绢俊 磷绊 促矫 甸绢啊扁 : " << (g_pVariableManager->isRetryMasterLair()? "ON":"OFF"); gcSystemMessage.setMessage(message.toString()); } else if (set_type == "harvest_festival_item_ratio") { message << "眠籍 价祈 酒捞袍 风泼 犬伏: 1/" << g_pVariableManager->getHarvestFestivalItemRatio();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?