cldeletepchandler.cpp
来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 300 行 · 第 1/2 页
CPP
300 行
//////////////////////////////////////////////////////////////////////////////// Filename : CLDeletePCHandler.cpp// Written By :// Description ://////////////////////////////////////////////////////////////////////////////#include "CLDeletePC.h"#ifdef __LOGIN_SERVER__ #include "LoginPlayer.h" #include "Assert.h" #include "DB.h" #include "ItemDestroyer.h" #include "Properties.h" #include "Lpackets/LCDeletePCOK.h" #include "Lpackets/LCDeletePCError.h"#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CLDeletePCHandler::execute (CLDeletePC* pPacket , Player* pPlayer) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __LOGIN_SERVER__ Assert(pPacket != NULL); Assert(pPlayer != NULL); LoginPlayer* pLoginPlayer = dynamic_cast<LoginPlayer*>(pPlayer); Statement* pStmt = NULL; Statement* pLoginStmt = NULL; Result* pResult = NULL; LCDeletePCError lcDeletePCError; WorldID_t WorldID = pLoginPlayer->getWorldID(); try { pLoginStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement(); pStmt = g_pDatabaseManager->getConnection( WorldID )->createStatement(); //////////////////////////////////////////////////////////// // 老窜 弊繁 浇饭捞绢啊 粮犁窍绰瘤 眉农茄促. //////////////////////////////////////////////////////////// pResult = pStmt->executeQuery("SELECT Active FROM Slayer WHERE Name = '%s'", pPacket->getName().c_str()); if (pResult->getRowCount() != 1) { lcDeletePCError.setErrorID(NOT_FOUND_PLAYER); throw InvalidProtocolException("no such slayer exist."); } //////////////////////////////////////////////////////////// // 林刮殿废锅龋甫 犬牢茄促. ////////////////////////////////////////////////////////////#ifndef __CHINA_SERVER__ if (pLoginPlayer->isFreePass() || g_pConfig->getPropertyInt("IsNetMarble")==1) { // 公炼扒 瘤匡 荐 乐促. pResult = pLoginStmt->executeQuery("SELECT length(Password) FROM Player Where PlayerID = '%s'", pPlayer->getID().c_str()); if(!pResult->next()) { lcDeletePCError.setErrorID(NOT_FOUND_PLAYER); throw InvalidProtocolException("no such slayer exist."); } int PasswordLength = pResult->getInt(1); if (PasswordLength != 12) { lcDeletePCError.setErrorID(INVALID_SSN); throw InvalidProtocolException("invalid SSN"); } } else { pResult = pLoginStmt->executeQuery("SELECT SSN FROM Player Where PlayerID = '%s'", pPlayer->getID().c_str()); if(!pResult->next()) { lcDeletePCError.setErrorID(NOT_FOUND_PLAYER); throw InvalidProtocolException("no such slayer exist."); } string SSN = pResult->getString(1); if (SSN != pPacket->getSSN()) { lcDeletePCError.setErrorID(INVALID_SSN); throw InvalidProtocolException("invalid SSN"); } }#endif //////////////////////////////////////////////////////////// // 老窜 浇饭捞绢 抛捞喉俊绰 犬角洒 粮犁茄促. //////////////////////////////////////////////////////////// pResult = pStmt->executeQuery("DELETE FROM Slayer WHERE Name = '%s' AND Slot = '%s'", pPacket->getName().c_str(), Slot2String[pPacket->getSlot()].c_str()); if (pStmt->getAffectedRowCount() != 1) { lcDeletePCError.setErrorID(NOT_FOUND_ID); throw InvalidProtocolException("no such slayer exist."); } //////////////////////////////////////////////////////////// // 轨颇捞绢 抛捞喉阑 瘤款促. //////////////////////////////////////////////////////////// pResult = pStmt->executeQuery("DELETE FROM Vampire WHERE Name = '%s' AND Slot = '%s'", pPacket->getName().c_str(), Slot2String[pPacket->getSlot()].c_str()); //if (pStmt->getAffectedRowCount() == 1) //cout << "Vampire(" << pPacket->getName() << ") deleted successfully...." << endl; //////////////////////////////////////////////////////////// // 酒快胶磐胶 抛捞喉阑 瘤款促. //////////////////////////////////////////////////////////// pResult = pStmt->executeQuery("DELETE FROM Ousters WHERE Name = '%s' AND Slot = '%s'", pPacket->getName().c_str(), Slot2String[pPacket->getSlot()].c_str()); //////////////////////////////////////////////////////////// // 浇饭捞绢 胶懦阑 瘤款促. //////////////////////////////////////////////////////////// pStmt->executeQuery("DELETE FROM SkillSave WHERE OwnerID = '%s'", pPacket->getName().c_str()); //cout << "Slayer(" << pPacket->getName() << ") deleted successfully...." << endl; //////////////////////////////////////////////////////////// // 轨颇捞绢 胶懦阑 瘤况霖促. //////////////////////////////////////////////////////////// pStmt->executeQuery("DELETE FROM VampireSkillSave WHERE OwnerID = '%s'", pPacket->getName().c_str()); //////////////////////////////////////////////////////////// // 酒快胶磐令 胶懦阑 瘤况霖促. //////////////////////////////////////////////////////////// pStmt->executeQuery("DELETE FROM OustersSkillSave WHERE OwnerID = '%s'", pPacket->getName().c_str()); //////////////////////////////////////////////////////////// // 拌鞭 焊呈胶甫 瘤况霖促. //////////////////////////////////////////////////////////// pStmt->executeQuery("DELETE FROM RankBonusData WHERE OwnerID = '%s'", pPacket->getName().c_str() ); //////////////////////////////////////////////////////////// // 酒捞袍阑 兵弊府 瘤款促. ////////////////////////////////////////////////////////////// g_pItemDestroyer->destroyAll(pPacket->getName()); string ownerID = pPacket->getName(); pStmt->executeQuery("DELETE FROM ARObject WHERE OwnerID = '" + ownerID + "'"); pStmt->executeQuery("DELETE FROM BeltObject WHERE OwnerID = '" + ownerID + "'"); pStmt->executeQuery("DELETE FROM BladeObject WHERE OwnerID = '" + ownerID + "'"); pStmt->executeQuery("DELETE FROM BloodBibleObject WHERE OwnerID = '" + ownerID + "'");
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?