本文整理汇总了C++中Slayer::getGuildID方法的典型用法代码示例。如果您正苦于以下问题:C++ Slayer::getGuildID方法的具体用法?C++ Slayer::getGuildID怎么用?C++ Slayer::getGuildID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Slayer
的用法示例。
在下文中一共展示了Slayer::getGuildID方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: execute
//.........这里部分代码省略.........
SAFE_DELETE(pStmt);
}
catch (SQLQueryException & sqe)
{
SAFE_DELETE(pStmt);
throw Error(sqe.toString());
}
//----------------------------------------------------------------------
// 슬레이어 또는 뱀파이어 캐릭터를 로딩한다.
//----------------------------------------------------------------------
Slayer* pSlayer = NULL;
Vampire* pVampire = NULL;
Ousters* pOusters = NULL;
bool bAlreadyConnected = false;
//try
//{
if (pPacket->getPCType() == PC_SLAYER)
{
pSlayer = new Slayer();
pSlayer->setName(pPacket->getPCName());
pSlayer->setPlayer(pGamePlayer);
if (!pSlayer->load())
{
filelog("connectDB_BUG.txt", "Failed to load SLAYER(%s) data from DB", pPacket->getPCName().c_str());
throw ProtocolException("Failed to load SLAYER data from DB");
}
// 유료존에서만 적용되는 아이템 때문에 밑에서 체크
//pSlayer->loadItem();
//Assert(pSlayer->getName() == pPacket->getPCName());
if (pSlayer->getName() != pPacket->getPCName())
{
//cout << "Different Name : " << pSlayer->getName().c_str() << ", " << pPacket->getPCName().c_str() << endl;
Assert(pSlayer->getName() == pPacket->getPCName());
}
pGamePlayer->setCreature(pSlayer);
// Slayer를 TelephoneCenter에 등록한다.
//g_pTelephoneCenter->addSlayer(pSlayer);
// 주기 회복 이벤트를 플레이어 객체에 추가한다.
// 이때 기본적으로 10초 회복을 원칙으로 한다.
// (setDeadline의 파라미터는 0.1 초라는 데 유의할 것)
EventRegeneration* pEventRegeneration = new EventRegeneration(pGamePlayer);
pEventRegeneration->setDeadline(10* 10);
pGamePlayer->addEvent(pEventRegeneration);
// PCFinder에 추가한다.
// PCFinder의 삭제는 ~GamePlayer()에서만 한다.
try {
g_pPCFinder->addCreature(pSlayer);
} catch (DuplicatedException& de) {
bAlreadyConnected = true;
}
// 이미 접속중인 경우가 아니라면.. by sigi. 2002.8.29
if (!bAlreadyConnected)
{
// 길드 현재 접속 멤버 리스트에 추가한다.
if (pSlayer->getGuildID() != 99 )
{
Guild* pGuild = g_pGuildManager->getGuild(pSlayer->getGuildID());
if (pGuild != NULL )
{
// sharedserver로 접속을 알리고 DB 도 update 한다.
try {
pGuild->addCurrentMember(pSlayer->getName());
GSGuildMemberLogOn gsGuildMemberLogOn;
gsGuildMemberLogOn.setGuildID(pGuild->getID());
gsGuildMemberLogOn.setName(pSlayer->getName());
gsGuildMemberLogOn.setLogOn(true);
gsGuildMemberLogOn.setServerID( g_pConfig->getPropertyInt("ServerID"));
g_pSharedServerManager->sendPacket(&gsGuildMemberLogOn);
// DB 업데이트
BEGIN_DB
{
pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();
pStmt->executeQuery("UPDATE `GuildMember` SET `LogOn` = 1 WHERE `Name` = '%s'", pSlayer->getName().c_str());
}
END_DB(pStmt )
} catch (DuplicatedException& t) {
// 일단 무시한다. by sigi. 2002.8.29
filelog("guildBug.log", "%s", t.toString().c_str());
}
}
else
filelog("GuildMissing.log", "[NoSuchGuild] GuildID : %d, Name : %s\n", (int)pSlayer->getGuildID(), pSlayer->getName().c_str());
}
示例2: activate
//.........这里部分代码省略.........
return;
}
pFromCreature->removeFlag(Effect::EFFECT_CLASS_BLOOD_DRAIN);
Zone* pZone = pFromCreature->getZone();
// 만일 Restore 이펙트가 걸려있다면 변신이 되지 않는다.
if (pFromCreature->isFlag(Effect::EFFECT_CLASS_RESTORE))
{
return;
}
dropRelicToZone(pFromCreature);
dropFlagToZone(pFromCreature);
dropSweeperToZone(pFromCreature);
//////////////////////////////////////////////////////////////////////
// 각종 존 레벨 정보를 삭제해야 한다.
//////////////////////////////////////////////////////////////////////
// 파티 초대 중이라면 정보를 삭제해 준다.
PartyInviteInfoManager* pPIIM = pZone->getPartyInviteInfoManager();
Assert(pPIIM != NULL);
pPIIM->cancelInvite(pFromCreature);
// 파티 관련 정보를 삭제해 준다.
uint PartyID = pFromCreature->getPartyID();
if (PartyID != 0)
{
// 먼저 로컬에서 삭제하고...
LocalPartyManager* pLPM = pZone->getLocalPartyManager();
Assert(pLPM != NULL);
pLPM->deletePartyMember(PartyID, pFromCreature);
// 글로벌에서도 삭제해 준다.
deleteAllPartyInfo(pFromCreature);
}
// 트레이드 중이었다면 트레이드 관련 정보를 삭제해준다.
TradeManager* pTM = pZone->getTradeManager();
Assert(pTM != NULL);
pTM->cancelTrade(pFromCreature);
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
Vampire* pVampire = new Vampire();
GCMorph1 gcEventMorph1; // 변신 당사자에게..
GCMorphVampire2 gcEventMorphVampire2; // 변신 구경꾼들에게..
pVampire->setName(pFromCreature->getName());
ObjectID_t fromObjectID = pFromCreature->getObjectID();
pVampire->setObjectID(fromObjectID);
Player* pPlayer = pFromCreature->getPlayer();
dynamic_cast<GamePlayer*>(pPlayer)->setCreature(pVampire);
pVampire->setPlayer(pPlayer);
pVampire->setZone(pZone);
pVampire->load();
Coord_t x = pFromCreature->getX(), y = pFromCreature->getY();
Dir_t dir = pFromCreature->getDir();
pVampire->setXYDir(x, y, dir);
pVampire->setMoveMode(pFromCreature->getMoveMode());
// slayer to vampire
Slayer* pSlayer = dynamic_cast<Slayer*>(pFromCreature);
// 뱀파이어로 변신할때 Creature Pointer가 달라지므로...
// 원래 등록 되어있던 포인터는 개가 된다...
// 따라서 새로운 Creature Pointer를 등록해줘야 한다.
g_pPCFinder->deleteCreature(pFromCreature->getName());
g_pPCFinder->addCreature(pVampire);
// 길드 현재 접속 리스트에서 삭제한다.
if (pSlayer->getGuildID() != 99 )
{
Guild* pGuild = g_pGuildManager->getGuild(pSlayer->getGuildID());
if (pGuild != NULL )
{
pGuild->deleteCurrentMember(pSlayer->getName());
GSGuildMemberLogOn gsGuildMemberLogOn;
gsGuildMemberLogOn.setGuildID(pGuild->getID());
gsGuildMemberLogOn.setName(pSlayer->getName());
gsGuildMemberLogOn.setLogOn(false);
g_pSharedServerManager->sendPacket(&gsGuildMemberLogOn);
Statement* pStmt = NULL;
// 디비에 업데이트 한다.
BEGIN_DB
{
pStmt = g_pDatabaseManager->getConnection("DARKEDEN")->createStatement();
pStmt->executeQuery("UPDATE GuildMember SET LogOn = 0 WHERE Name = '%s'", pSlayer->getName().c_str());
}
END_DB(pStmt)
}