📄 actiongivechildrendayevent.cpp
字号:
////////////////////////////////////////////////////////////////////////////////// Filename : ActionGiveChildrenItem.cpp// Written By : // Description :////////////////////////////////////////////////////////////////////////////////#include "ActionGiveChildrenItem.h"#include "PlayerCreature.h"#include "GamePlayer.h"#include "Item.h"#include "ItemUtil.h"#include "Inventory.h"#include "Zone.h"#include "ItemFactoryManager.h"#include "DB.h"#include "Thread.h"#include "StringPool.h"#include <list>#include "item/Key.h"#include "Gpackets/GCCreateItem.h"#include "Gpackets/GCNPCResponse.h"#include "Gpackets/GCSystemMessage.h"////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////void ActionGiveChildrenItem::read (PropertyBuffer & propertyBuffer) throw (Error){ __BEGIN_TRY __END_CATCH}////////////////////////////////////////////////////////////////////////////////// 咀记阑 角青茄促.// 5岿 5老 捞亥飘肺// 楷函风倒橇, 楷函魂鸥 阁胶磐甫 磷看阑措 唱坷绰 酒捞袍阑 葛酒坷搁// 弊俊 秦寸窍绰 酒捞袍阑 林档废 茄促.// 阁胶磐 酒捞袍篮 喊肺 沥秦龙 抗沥捞绊..// 唱坷绰 酒捞袍篮 酒流篮 固沥捞促.////////////////////////////////////////////////////////////////////////////////void ActionGiveChildrenItem::execute (Creature * pCreature1 , Creature * pCreature2) throw (Error){ __BEGIN_TRY Assert(pCreature1 != NULL); Assert(pCreature2 != NULL); Assert(pCreature1->isNPC()); Assert(pCreature2->isPC()); PlayerCreature* pPC = dynamic_cast<PlayerCreature*>(pCreature2); Assert(pPC != NULL); Player* pPlayer = pPC->getPlayer(); Assert(pPlayer != NULL); // 刚历 努扼捞攫飘甫 困秦 GCNPCResponse甫 焊郴霖促. GCNPCResponse okpkt; pPlayer->sendPacket(&okpkt); Statement* pStmt = NULL; Result* pResult = NULL; int count = -1; Zone* pZone = pPC->getZone(); ObjectRegistry& OR = pZone->getObjectRegistry(); Inventory* pInventory = pPC->getInventory(); TPOINT pt; GCCreateItem gcCreateItem; StringStream msg; msg << "PlayerID[" << pPlayer->getID() << "], " << "CreatureName[" << pPC->getName() << "]\n"; if (pPC->isSlayer()) { // 酒捞袍阑 积己茄促. Item* pItem = g_pItemFactoryManager->createItem(Item::ITEM_CLASS_BRACELET, 3, 50); // OID甫 殿废罐绰促. OR.registerObject(pItem); if(pInventory->addItem(pItem, pt)) { // 酒捞袍阑 牢亥配府俊 父电促. pItem->create(pPC->getName(), STORAGE_INVENTORY, 0, pt.x, pt.y); //酒捞袍阑 罐疽促绰 巴阑 舅妨霖促. gcCreateItem.setObjectID(pItem->getObjectID()); gcCreateItem.setItemClass(pItem->getItemClass()); gcCreateItem.setItemType(pItem->getItemType()); gcCreateItem.setOptionType(pItem->getOptionType()); gcCreateItem.setDurability(pItme->getDurability()); gcCreateItem.setSilver(pItem->getSilver()); gcCreateItem.setItemNum(pItem->getNum()); gcCreateItem.setInvenX(pt.x); gcCreateItem.setInvenY(pt.y); pPlayer->sendPacket(&gcCreateItem); msg << "Inventory Adding Success : " << pItem->toString() << "\n"; // ItemTraceLog 甫 巢变促 if ( pItem != NULL && pItem->isTraceItem() ) { remainTraceLog( pItem, pCreature1->getName(), pCreature2->getName(), ITEM_LOG_CREATE, DETAIL_EVENTNPC); } } else { // 牢亥配府俊 磊府啊 绝促搁 皋矫瘤甫 焊郴绊 弊父敌促. StringStream buf; buf << pPlayer->getID() << g_pStringPool->getString( STRID_NOT_ENOUGH_INVENTORY_SPACE ); GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage(buf.toString()); pPlayer->sendPacket(&gcSystemMessage); return; } } else { Item* pItem = g_pItemFactoryManager->createItem(Item::ITEM_CLASS_VAMPIRE_BRACELET, 3, 50); // OID甫 殿废罐绰促. OR.registerObject(pItem); if (pInventory->addItem(pItem, pt)) { pItem->create(pPC->getName(), STORAGE_INVENTORY, 0, pt.x, pt.y); pItem->save(pPC->getName(), STORAGE_INVENTORY, 0, pt.x, pt.y); gcCreateItem.setObjectID(pItem->getObjectID()); gcCreateItem.setItemClass(pItem->getItemClass()); gcCreateItem.setItemType(pItem->getItemType()); gcCreateItem.setOptionType(pItem->getOptionType()); gcCreateItem.setDurability(pItem->getDurability()); gcCreateItem.setSilver(pItem->getSilver()); gcCreateItem.setItemNum(pItem->getNum()); gcCreateItem.setInvenX(pt.x); gcCreateItem.setInvenY(pt.y); pPlayer->sendPacket(&gcCreateItem); msg << "Inventory Adding Succeeded : " << pItem->toString() << "\n"; // ItemTraceLog 甫 巢变促 if ( pItem != NULL && pItem->isTraceItem() ) { remainTraceLog( pItem, pCreature1->getName(), pCreature2->getName(), ITEM_LOG_CREATE, DETAIL_EVENTNPC); } } else { // 牢亥配府俊 磊府啊 绝促搁 皋矫瘤甫 焊郴绊 弊父敌促. StringStream buf; buf << pPlayer->getID() << g_pStringPool->getString( STRID_NOT_ENOUGH_INVENTORY_SPACE ); GCSystemMessage gcSystemMessage; gcSystemMessage.setMessage(buf.toString()); pPlayer->sendPacket(&gcSystemMessage); return; } } msg << "Finished\n"; filelog("SpecialEvent.log", "%s", msg.toString().c_str()); __END_CATCH}////////////////////////////////////////////////////////////////////////////////// get debug string////////////////////////////////////////////////////////////////////////////////string ActionGiveChildrenItem::toString () const throw (){ __BEGIN_TRY StringStream msg; msg << "ActionGiveChildrenItem(" << ")"; return msg.toString(); __END_CATCH}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -