cgtrademoneyhandler.cpp
来自「dk1游戏的原代码文件,完整.编译系统redhat7.3,mysql 3.23 」· C++ 代码 · 共 579 行 · 第 1/2 页
CPP
579 行
Vampire* pSender = dynamic_cast<Vampire*>(pPC); Vampire* pReceiver = dynamic_cast<Vampire*>(pTargetPC); Player* pTargetPlayer = pTargetPC->getPlayer(); Gold_t finalAmount = Amount; Gold_t margin = 0; GCTradeMoney gcTradeMoney; GCTradeVerify gcTradeVerify; TradeManager* pTradeManager = pZone->getTradeManager(); Assert(pTradeManager != NULL); // 背券 惑怕啊 嘎绰瘤 眉农甫 秦毫具茄促. TradeInfo* pInfo1 = pTradeManager->getTradeInfo(pSender->getName()); TradeInfo* pInfo2 = pTradeManager->getTradeInfo(pReceiver->getName()); // 牢亥配府俊辑 捣阑 代绢, 背券芒俊促 歹茄促. if (Code == CG_TRADE_MONEY_INCREASE) { // 背券芒俊促 歹且 咀荐焊促 腹篮 捣阑 啊瘤绊 乐绢具 茄促. if (pSender->getGold() >= Amount) { // 捣阑 罐绰 率捞 钙胶甫 檬苞窍霸 等促搁, 老何父 持绢拎具 茄促. // 泅犁 背券 抗沥牢 捣档 歹秦辑 拌魂. by sigi. 2003.1.8 Gold_t receiverGold = pReceiver->getGold() + pInfo1->getGold(); if (receiverGold + Amount > MAX_MONEY) { margin = receiverGold + Amount - MAX_MONEY; finalAmount = finalAmount - margin; } // 牢亥配府俊辑 捣阑 哗绊, 背券芒俊促 歹茄促. pSender->setGold(pSender->getGold() - finalAmount); pInfo1->setGold(pInfo1->getGold() + finalAmount); // 泅犁 OK甫 穿弗 惑怕扼搁, 努扼捞攫飘俊霸 牢刘 菩哦阑 焊郴拎具 茄促. if (pInfo1->getStatus() == TRADE_FINISH) { // 牢刘 菩哦阑 朝妨霖促. gcTradeVerify.setCode(GC_TRADE_VERIFY_CODE_MONEY_INCREASE); pPlayer->sendPacket(&gcTradeVerify); } // 酒捞袍阑 歹窍芭唱 滑 版快, 惑怕甫 函券秦拎具 茄促. pInfo1->setStatus(TRADE_TRADING); pInfo2->setStatus(TRADE_TRADING); // 捣阑 棵赴 寸荤磊俊霸 角力肺 牢亥配府俊辑 // 狐柳 陛咀捞 倔付牢瘤 焊郴霖促. gcTradeMoney.setTargetObjectID(TargetOID); gcTradeMoney.setCode(GC_TRADE_MONEY_INCREASE_RESULT); gcTradeMoney.setAmount(finalAmount); pPlayer->sendPacket(&gcTradeMoney); // 惑措规俊霸 官诧 沥焊甫 焊郴霖促. gcTradeMoney.setTargetObjectID(pSender->getObjectID()); gcTradeMoney.setCode(GC_TRADE_MONEY_INCREASE); gcTradeMoney.setAmount(finalAmount); pTargetPlayer->sendPacket(&gcTradeMoney); } else { pTradeManager->cancelTrade(pPC); executeError(pPacket, pPlayer, GC_TRADE_ERROR_CODE_INCREASE_MONEY); return; } } // 背券芒俊辑 捣阑 代绢, 牢亥配府俊促啊 歹茄促. else if (Code == CG_TRADE_MONEY_DECREASE) { // 牢亥配府俊促 歹且 咀荐焊促 背券芒俊 乐绰 捣捞 腹酒具 茄促. if (pInfo1->getGold() >= Amount) { // 捣捞 钙胶甫 檬苞窍霸 等促搁, 老何父 滑 荐 乐促. Gold_t senderGold = pSender->getGold() + pInfo2->getGold(); if (senderGold + Amount > MAX_MONEY) { margin = senderGold + Amount - MAX_MONEY; finalAmount = finalAmount - margin; } // 牢亥配府俊促啊 捣阑 歹窍绊, 背券芒俊辑 捣阑 猾促. pSender->setGold(pSender->getGold() + finalAmount); pInfo1->setGold(pInfo1->getGold() - finalAmount); // 泅犁 OK甫 穿弗 惑怕扼搁, 努扼捞攫飘俊霸 牢刘 菩哦阑 焊郴拎具 茄促. if (pInfo1->getStatus() == TRADE_FINISH) { // 牢刘 菩哦阑 朝妨霖促. gcTradeVerify.setCode(GC_TRADE_VERIFY_CODE_MONEY_DECREASE); pPlayer->sendPacket(&gcTradeVerify); } // 酒捞袍阑 歹窍芭唱 滑 版快, 惑怕甫 函券秦拎具 茄促. pInfo1->setStatus(TRADE_TRADING); pInfo2->setStatus(TRADE_TRADING); // 捣阑 棵赴 寸荤磊俊霸 角力肺 牢亥配府俊促 // 歹茄 陛咀捞 倔付牢瘤 焊郴霖促. gcTradeMoney.setTargetObjectID(TargetOID); gcTradeMoney.setCode(GC_TRADE_MONEY_DECREASE_RESULT); gcTradeMoney.setAmount(finalAmount); pPlayer->sendPacket(&gcTradeMoney); // 惑措规俊霸 官诧 沥焊甫 焊郴霖促. gcTradeMoney.setTargetObjectID(pSender->getObjectID()); gcTradeMoney.setCode(GC_TRADE_MONEY_DECREASE); gcTradeMoney.setAmount(finalAmount); pTargetPlayer->sendPacket(&gcTradeMoney); } else { pTradeManager->cancelTrade(pPC); executeError(pPacket, pPlayer, GC_TRADE_ERROR_CODE_DECREASE_MONEY); return; } }#endif __END_DEBUG_EX __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGTradeMoneyHandler::executeOusters (CGTradeMoney* pPacket , Player* pPlayer) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__ // 惑困 窃荐俊辑 八荤甫 沁扁 锭巩俊, // 咯扁辑绰 器牢磐啊 澄牢瘤甫 八荤窍瘤 臼绰促. ObjectID_t TargetOID = pPacket->getTargetObjectID(); Gold_t Amount = pPacket->getAmount(); BYTE Code = pPacket->getCode(); GamePlayer* pGamePlayer = dynamic_cast<GamePlayer*>(pPlayer); Creature* pPC = pGamePlayer->getCreature(); Zone* pZone = pPC->getZone(); Creature* pTargetPC = pZone->getCreature(TargetOID); // NoSuch力芭. by sigi. 2002.5.2 if (pTargetPC==NULL) return; Ousters* pSender = dynamic_cast<Ousters*>(pPC); Ousters* pReceiver = dynamic_cast<Ousters*>(pTargetPC); Player* pTargetPlayer = pTargetPC->getPlayer(); Gold_t finalAmount = Amount; Gold_t margin = 0; GCTradeMoney gcTradeMoney; GCTradeVerify gcTradeVerify; TradeManager* pTradeManager = pZone->getTradeManager(); Assert(pTradeManager != NULL); // 背券 惑怕啊 嘎绰瘤 眉农甫 秦毫具茄促. TradeInfo* pInfo1 = pTradeManager->getTradeInfo(pSender->getName()); TradeInfo* pInfo2 = pTradeManager->getTradeInfo(pReceiver->getName()); // 牢亥配府俊辑 捣阑 代绢, 背券芒俊促 歹茄促. if (Code == CG_TRADE_MONEY_INCREASE) { // 背券芒俊促 歹且 咀荐焊促 腹篮 捣阑 啊瘤绊 乐绢具 茄促. if (pSender->getGold() >= Amount) { // 捣阑 罐绰 率捞 钙胶甫 檬苞窍霸 等促搁, 老何父 持绢拎具 茄促. // 泅犁 背券 抗沥牢 捣档 歹秦辑 拌魂. by sigi. 2003.1.8 Gold_t receiverGold = pReceiver->getGold() + pInfo1->getGold(); if (receiverGold + Amount > MAX_MONEY) { margin = receiverGold + Amount - MAX_MONEY; finalAmount = finalAmount - margin; } // 牢亥配府俊辑 捣阑 哗绊, 背券芒俊促 歹茄促. pSender->setGold(pSender->getGold() - finalAmount); pInfo1->setGold(pInfo1->getGold() + finalAmount); // 泅犁 OK甫 穿弗 惑怕扼搁, 努扼捞攫飘俊霸 牢刘 菩哦阑 焊郴拎具 茄促. if (pInfo1->getStatus() == TRADE_FINISH) { // 牢刘 菩哦阑 朝妨霖促. gcTradeVerify.setCode(GC_TRADE_VERIFY_CODE_MONEY_INCREASE); pPlayer->sendPacket(&gcTradeVerify); } // 酒捞袍阑 歹窍芭唱 滑 版快, 惑怕甫 函券秦拎具 茄促. pInfo1->setStatus(TRADE_TRADING); pInfo2->setStatus(TRADE_TRADING); // 捣阑 棵赴 寸荤磊俊霸 角力肺 牢亥配府俊辑 // 狐柳 陛咀捞 倔付牢瘤 焊郴霖促. gcTradeMoney.setTargetObjectID(TargetOID); gcTradeMoney.setCode(GC_TRADE_MONEY_INCREASE_RESULT); gcTradeMoney.setAmount(finalAmount); pPlayer->sendPacket(&gcTradeMoney); // 惑措规俊霸 官诧 沥焊甫 焊郴霖促. gcTradeMoney.setTargetObjectID(pSender->getObjectID()); gcTradeMoney.setCode(GC_TRADE_MONEY_INCREASE); gcTradeMoney.setAmount(finalAmount); pTargetPlayer->sendPacket(&gcTradeMoney); } else { pTradeManager->cancelTrade(pPC); executeError(pPacket, pPlayer, GC_TRADE_ERROR_CODE_INCREASE_MONEY); return; } } // 背券芒俊辑 捣阑 代绢, 牢亥配府俊促啊 歹茄促. else if (Code == CG_TRADE_MONEY_DECREASE) { // 牢亥配府俊促 歹且 咀荐焊促 背券芒俊 乐绰 捣捞 腹酒具 茄促. if (pInfo1->getGold() >= Amount) { // 捣捞 钙胶甫 檬苞窍霸 等促搁, 老何父 滑 荐 乐促. Gold_t senderGold = pSender->getGold() + pInfo2->getGold(); if (senderGold + Amount > MAX_MONEY) { margin = senderGold + Amount - MAX_MONEY; finalAmount = finalAmount - margin; } // 牢亥配府俊促啊 捣阑 歹窍绊, 背券芒俊辑 捣阑 猾促. pSender->setGold(pSender->getGold() + finalAmount); pInfo1->setGold(pInfo1->getGold() - finalAmount); // 泅犁 OK甫 穿弗 惑怕扼搁, 努扼捞攫飘俊霸 牢刘 菩哦阑 焊郴拎具 茄促. if (pInfo1->getStatus() == TRADE_FINISH) { // 牢刘 菩哦阑 朝妨霖促. gcTradeVerify.setCode(GC_TRADE_VERIFY_CODE_MONEY_DECREASE); pPlayer->sendPacket(&gcTradeVerify); } // 酒捞袍阑 歹窍芭唱 滑 版快, 惑怕甫 函券秦拎具 茄促. pInfo1->setStatus(TRADE_TRADING); pInfo2->setStatus(TRADE_TRADING); // 捣阑 棵赴 寸荤磊俊霸 角力肺 牢亥配府俊促 // 歹茄 陛咀捞 倔付牢瘤 焊郴霖促. gcTradeMoney.setTargetObjectID(TargetOID); gcTradeMoney.setCode(GC_TRADE_MONEY_DECREASE_RESULT); gcTradeMoney.setAmount(finalAmount); pPlayer->sendPacket(&gcTradeMoney); // 惑措规俊霸 官诧 沥焊甫 焊郴霖促. gcTradeMoney.setTargetObjectID(pSender->getObjectID()); gcTradeMoney.setCode(GC_TRADE_MONEY_DECREASE); gcTradeMoney.setAmount(finalAmount); pTargetPlayer->sendPacket(&gcTradeMoney); } else { pTradeManager->cancelTrade(pPC); executeError(pPacket, pPlayer, GC_TRADE_ERROR_CODE_DECREASE_MONEY); return; } }#endif __END_DEBUG_EX __END_CATCH}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void CGTradeMoneyHandler::executeError (CGTradeMoney* pPacket , Player* pPlayer, BYTE ErrorCode) throw (ProtocolException , Error){ __BEGIN_TRY __BEGIN_DEBUG_EX#ifdef __GAME_SERVER__ GCTradeError gcTradeError; gcTradeError.setTargetObjectID(pPacket->getTargetObjectID()); gcTradeError.setCode(ErrorCode); pPlayer->sendPacket(&gcTradeError);#endif __END_DEBUG_EX __END_CATCH}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?