本文整理汇总了C++中Zone::getWatcherList方法的典型用法代码示例。如果您正苦于以下问题:C++ Zone::getWatcherList方法的具体用法?C++ Zone::getWatcherList怎么用?C++ Zone::getWatcherList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zone
的用法示例。
在下文中一共展示了Zone::getWatcherList方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: throw
//.........这里部分代码省略.........
_GCSkillToTileOK5.addCListElement(pTargetCreature->getObjectID());
pEffect->affect(pTargetCreature);
}
//pEffect->affectObject(pTarget, false);
}
}
}
}
_GCSkillToTileOK2.setObjectID(pMonster->getObjectID());
_GCSkillToTileOK2.setSkillType(SkillType);
_GCSkillToTileOK2.setX(X);
_GCSkillToTileOK2.setY(Y);
_GCSkillToTileOK2.setDuration(output.Duration);
_GCSkillToTileOK2.setRange(Dir);
//_GCSkillToTileOK2.addShortData(MODIFY_VISION, BLOODY_WALL_SIGHT);
_GCSkillToTileOK3.setObjectID(pMonster->getObjectID());
_GCSkillToTileOK3.setSkillType(SkillType);
_GCSkillToTileOK3.setX(X);
_GCSkillToTileOK3.setY(Y);
_GCSkillToTileOK4.setSkillType(SkillType);
_GCSkillToTileOK4.setX(X);
_GCSkillToTileOK4.setY(Y);
_GCSkillToTileOK4.setRange(Dir);
_GCSkillToTileOK4.setDuration(output.Duration);
_GCSkillToTileOK5.setObjectID(pMonster->getObjectID());
_GCSkillToTileOK5.setSkillType(SkillType);
_GCSkillToTileOK5.setX(X);
_GCSkillToTileOK5.setY(Y);
_GCSkillToTileOK5.setRange(Dir);
_GCSkillToTileOK5.setDuration(output.Duration);
_GCSkillToTileOK6.setOrgXY(myX, myY);
_GCSkillToTileOK6.setSkillType(SkillType);
_GCSkillToTileOK6.setX(X);
_GCSkillToTileOK6.setY(Y);
_GCSkillToTileOK6.setDuration(output.Duration);
_GCSkillToTileOK6.setRange(Dir);
//_GCSkillToTileOK6.addShortData(MODIFY_VISION, BLOODY_WALL_SIGHT);
for(list<Creature*>::const_iterator itr = cList.begin(); itr != cList.end(); itr++)
{
Creature* pTargetCreature = *itr;
if (canSee(pTargetCreature, pMonster)) pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK2);
else pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK6);
}
cList.push_back(pMonster);
list<Creature*> watcherList = pZone->getWatcherList(myX, myY, pMonster);
// watcherList에서 cList에 속하지 않고, caster(pMonster)를 볼 수 없는 경우는
// OK4를 보내고.. cList에 추가한다.
for(list<Creature*>::const_iterator itr = watcherList.begin(); itr != watcherList.end(); itr++)
{
bool bBelong = false;
for(list<Creature*>::const_iterator tItr = cList.begin(); tItr != cList.end(); tItr++)
if (*itr == *tItr)
bBelong = true;
Creature* pWatcher = (*itr);
if (bBelong == false && canSee(pWatcher, pMonster) == false)
{
//Assert(pWatcher->isPC()); // 당연 PC다.. Zone::getWatcherList는 PC만 return한다
if (!pWatcher->isPC())
{
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
return;
}
pWatcher->getPlayer()->sendPacket(&_GCSkillToTileOK4);
cList.push_back(*itr);
}
}
cList = pZone->broadcastSkillPacket(myX, myY, X, Y, &_GCSkillToTileOK5, cList, false);
pZone->broadcastPacket(myX, myY, &_GCSkillToTileOK3 , cList);
pZone->broadcastPacket(X, Y, &_GCSkillToTileOK4 , cList);
}
else
{
executeSkillFailNormal(pMonster, getSkillType(), NULL);
}
}
catch (Throwable & t)
{
executeSkillFailException(pMonster, getSkillType());
}
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
__END_CATCH
}
示例2: throw
//.........这里部分代码省略.........
_GCSkillToTileOK1.setRange(grade);
_GCSkillToTileOK2.setObjectID(pOusters->getObjectID());
_GCSkillToTileOK2.setSkillType(SkillType);
_GCSkillToTileOK2.setX(X);
_GCSkillToTileOK2.setY(Y);
_GCSkillToTileOK2.setDuration(output.Duration);
_GCSkillToTileOK2.setRange(grade);
//_GCSkillToTileOK2.addShortData(MODIFY_VISION, ICE_FIELD_SIGHT);
_GCSkillToTileOK3.setObjectID(pOusters->getObjectID());
_GCSkillToTileOK3.setSkillType(SkillType);
_GCSkillToTileOK3.setX(X);
_GCSkillToTileOK3.setY(Y);
_GCSkillToTileOK4.setSkillType(SkillType);
_GCSkillToTileOK4.setX(X);
_GCSkillToTileOK4.setY(Y);
_GCSkillToTileOK4.setRange(grade);
_GCSkillToTileOK4.setDuration(output.Duration);
_GCSkillToTileOK5.setObjectID(pOusters->getObjectID());
_GCSkillToTileOK5.setSkillType(SkillType);
_GCSkillToTileOK5.setX(X);
_GCSkillToTileOK5.setY(Y);
_GCSkillToTileOK5.setRange(grade);
_GCSkillToTileOK5.setDuration(output.Duration);
_GCSkillToTileOK6.setOrgXY(myX, myY);
_GCSkillToTileOK6.setSkillType(SkillType);
_GCSkillToTileOK6.setX(X);
_GCSkillToTileOK6.setY(Y);
_GCSkillToTileOK6.setDuration(output.Duration);
_GCSkillToTileOK6.setRange(grade);
//_GCSkillToTileOK6.addShortData(MODIFY_VISION, ICE_FIELD_SIGHT);
for(list<Creature*>::const_iterator itr = cList.begin(); itr != cList.end(); itr++)
{
Creature* pTargetCreature = *itr;
if (canSee(pTargetCreature, pOusters)) pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK2);
else pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK6);
}
pPlayer->sendPacket(&_GCSkillToTileOK1);
cList.push_back(pOusters);
list<Creature*> watcherList = pZone->getWatcherList(myX, myY, pOusters);
// watcherList에서 cList에 속하지 않고, caster(pOusters)를 볼 수 없는 경우는
// OK4를 보내고.. cList에 추가한다.
for(list<Creature*>::const_iterator itr = watcherList.begin(); itr != watcherList.end(); itr++)
{
bool bBelong = false;
for(list<Creature*>::const_iterator tItr = cList.begin(); tItr != cList.end(); tItr++)
if (*itr == *tItr)
bBelong = true;
Creature* pWatcher = (*itr);
if (bBelong == false && canSee(pWatcher, pOusters) == false)
{
//Assert(pWatcher->isPC()); // 당연 PC다.. Zone::getWatcherList는 PC만 return한다
if (!pWatcher->isPC())
{
//cout << "IceField : 왓처 리스트가 PC가 아닙니다." << endl;
// GCSkillFailed1 _GCSkillFailed1;
// _GCSkillFailed1.setSkillType(getSkillType());
// pOusters->getPlayer()->sendPacket(&_GCSkillFailed1);
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
// return;
continue;
}
pWatcher->getPlayer()->sendPacket(&_GCSkillToTileOK4);
cList.push_back(*itr);
}
}
cList = pZone->broadcastSkillPacket(myX, myY, X, Y, &_GCSkillToTileOK5, cList, false);
pZone->broadcastPacket(myX, myY, &_GCSkillToTileOK3 , cList);
pZone->broadcastPacket(X, Y, &_GCSkillToTileOK4 , cList);
pOustersSkillSlot->setRunTime(output.Delay);
}
else
{
executeSkillFailNormal(pOusters, getSkillType(), NULL);
}
}
catch (Throwable & t)
{
executeSkillFailException(pOusters, getSkillType());
}
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
__END_CATCH
}
示例3: throw
//.........这里部分代码省略.........
}
}
}
_GCSkillToTileOK1.setSkillType(SkillType);
_GCSkillToTileOK1.setCEffectID(CEffectID);
_GCSkillToTileOK1.setX(X);
_GCSkillToTileOK1.setY(Y);
_GCSkillToTileOK1.setDuration(output.Duration);
_GCSkillToTileOK1.setRange(Range);
_GCSkillToTileOK2.setObjectID(pSlayer->getObjectID());
_GCSkillToTileOK2.setSkillType(SkillType);
_GCSkillToTileOK2.setX(X);
_GCSkillToTileOK2.setY(Y);
_GCSkillToTileOK2.setDuration(output.Duration);
_GCSkillToTileOK2.setRange(Range);
_GCSkillToTileOK3.setObjectID(pSlayer->getObjectID());
_GCSkillToTileOK3.setSkillType(SkillType);
_GCSkillToTileOK3.setX(X);
_GCSkillToTileOK3.setY(Y);
_GCSkillToTileOK4.setSkillType(SkillType);
_GCSkillToTileOK4.setX(X);
_GCSkillToTileOK4.setY(Y);
_GCSkillToTileOK4.setRange(Range);
_GCSkillToTileOK4.setDuration(output.Duration);
_GCSkillToTileOK5.setObjectID(pSlayer->getObjectID());
_GCSkillToTileOK5.setSkillType(SkillType);
_GCSkillToTileOK5.setX(X);
_GCSkillToTileOK5.setY(Y);
_GCSkillToTileOK5.setRange(Range);
_GCSkillToTileOK5.setDuration(output.Duration);
_GCSkillToTileOK6.setOrgXY(myX, myY);
_GCSkillToTileOK6.setSkillType(SkillType);
_GCSkillToTileOK6.setX(X);
_GCSkillToTileOK6.setY(Y);
_GCSkillToTileOK6.setDuration(output.Duration);
_GCSkillToTileOK6.setRange(Range);
for(list<Creature*>::const_iterator itr = cList.begin(); itr != cList.end(); itr++)
{
Creature* pTargetCreature = *itr;
if (canSee(pTargetCreature, pSlayer)) pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK2);
else pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK6);
}
pPlayer->sendPacket(&_GCSkillToTileOK1);
cList.push_back(pSlayer);
list<Creature*> watcherList = pZone->getWatcherList(myX, myY, pSlayer);
// watcherList에서 cList에 속하지 않고, caster(pSlayer)를 볼 수 없는 경우는
// OK4를 보내고.. cList에 추가한다.
for(list<Creature*>::const_iterator itr = watcherList.begin(); itr != watcherList.end(); itr++)
{
bool bBelong = false;
for(list<Creature*>::const_iterator tItr = cList.begin(); tItr != cList.end(); tItr++)
if (*itr == *tItr)
bBelong = true;
Creature* pWatcher = (*itr);
if (bBelong == false && canSee(pWatcher, pSlayer) == false)
{
//Assert(pWatcher->isPC()); // 당연 PC다.. Zone::getWatcherList는 PC만 return한다
if (pWatcher->isPC())
{
pWatcher->getPlayer()->sendPacket(&_GCSkillToTileOK4);
cList.push_back(*itr);
}
}
}
cList = pZone->broadcastSkillPacket(myX, myY, X, Y, &_GCSkillToTileOK5, cList, false);
pZone->broadcastPacket(myX, myY, &_GCSkillToTileOK3 , cList);
pZone->broadcastPacket(X, Y, &_GCSkillToTileOK4 , cList);
}
else
{
executeSkillFailNormal(pSlayer, getSkillType(), NULL);
}
if (bTimeCheck ) pSkillSlot->setRunTime(output.Delay);
}
catch (Throwable & t)
{
executeSkillFailException(pSlayer, getSkillType());
}
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
__END_CATCH
}
示例4: throw
//.........这里部分代码省略.........
_GCSkillToTileOK3.setSkillType(SkillType);
_GCSkillToTileOK3.setX(X);
_GCSkillToTileOK3.setY(Y);
_GCSkillToTileOK4.setSkillType(SkillType);
_GCSkillToTileOK4.setX(X);
_GCSkillToTileOK4.setY(Y);
_GCSkillToTileOK4.setRange(Range);
_GCSkillToTileOK4.setDuration(output.Duration);
_GCSkillToTileOK5.setObjectID(pSlayer->getObjectID());
_GCSkillToTileOK5.setSkillType(SkillType);
_GCSkillToTileOK5.setX(X);
_GCSkillToTileOK5.setY(Y);
_GCSkillToTileOK5.setRange(Range);
_GCSkillToTileOK5.setDuration(output.Duration);
_GCSkillToTileOK6.setOrgXY(myX, myY);
_GCSkillToTileOK6.setSkillType(SkillType);
_GCSkillToTileOK6.setX(X);
_GCSkillToTileOK6.setY(Y);
_GCSkillToTileOK6.setDuration(output.Duration);
_GCSkillToTileOK6.setRange(Range);
//_GCSkillToTileOK6.addShortData(MODIFY_VISION, SANCTUARY_SIGHT);
// EXP UP!
SkillDomainType_t DomainType = pSkillInfo->getDomainType();
SkillGrade Grade = g_pSkillInfoManager->getGradeByDomainLevel(pSlayer->getSkillDomainLevel(DomainType));
Exp_t ExpUp = 10* (Grade + 1);
shareAttrExp(pSlayer, ExpUp, 1, 1, 8, _GCSkillToTileOK1);
increaseDomainExp(pSlayer, DomainType, pSkillInfo->getPoint(), _GCSkillToTileOK1);
increaseSkillExp(pSlayer, DomainType, pSkillSlot, pSkillInfo, _GCSkillToTileOK1);
for(list<Creature*>::const_iterator itr = cList.begin(); itr != cList.end(); itr++)
{
Creature* pTargetCreature = *itr;
if (canSee(pTargetCreature, pSlayer)) pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK2);
else pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK6);
}
pPlayer->sendPacket(&_GCSkillToTileOK1);
cList.push_back(pSlayer);
list<Creature*> watcherList = pZone->getWatcherList(myX, myY, pSlayer);
// watcherList에서 cList에 속하지 않고, caster(pSlayer)를 볼 수 없는 경우는
// OK4를 보내고.. cList에 추가한다.
for(list<Creature*>::const_iterator itr = watcherList.begin(); itr != watcherList.end(); itr++)
{
bool bBelong = false;
for(list<Creature*>::const_iterator tItr = cList.begin(); tItr != cList.end(); tItr++)
if (*itr == *tItr)
bBelong = true;
Creature* pWatcher = (*itr);
if (bBelong == false && canSee(pWatcher, pSlayer) == false)
{
//Assert(pWatcher->isPC()); // 당연 PC다.. Zone::getWatcherList는 PC만 return한다
if (!pWatcher->isPC())
{
//cout << "Sanctuary : 왓처 리스트가 PC가 아닙니다." << endl;
GCSkillFailed1 _GCSkillFailed1;
_GCSkillFailed1.setSkillType(getSkillType());
pSlayer->getPlayer()->sendPacket(&_GCSkillFailed1);
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
return;
}
pWatcher->getPlayer()->sendPacket(&_GCSkillToTileOK4);
cList.push_back(*itr);
}
}
cList = pZone->broadcastSkillPacket(myX, myY, X, Y, &_GCSkillToTileOK5, cList, false);
pZone->broadcastPacket(myX, myY, &_GCSkillToTileOK3 , cList);
pZone->broadcastPacket(X, Y, &_GCSkillToTileOK4 , cList);
pSkillSlot->setRunTime(output.Delay);
}
else
{
executeSkillFailNormal(pSlayer, getSkillType(), NULL);
}
}
catch (Throwable & t)
{
executeSkillFailException(pSlayer, getSkillType());
}
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
__END_CATCH
}
示例5: throw
//.........这里部分代码省略.........
_GCSkillToTileOK1.setDuration(output.Duration);
_GCSkillToTileOK1.setRange(Range);
_GCSkillToTileOK2.setObjectID(pVampire->getObjectID());
_GCSkillToTileOK2.setSkillType(SkillType);
_GCSkillToTileOK2.setX(X);
_GCSkillToTileOK2.setY(Y);
_GCSkillToTileOK2.setDuration(output.Duration);
_GCSkillToTileOK2.setRange(Range);
//_GCSkillToTileOK2.addShortData(MODIFY_VISION, DARKNESS_SIGHT);
_GCSkillToTileOK3.setObjectID(pVampire->getObjectID());
_GCSkillToTileOK3.setSkillType(SkillType);
_GCSkillToTileOK3.setX(X);
_GCSkillToTileOK3.setY(Y);
_GCSkillToTileOK4.setSkillType(SkillType);
_GCSkillToTileOK4.setX(X);
_GCSkillToTileOK4.setY(Y);
_GCSkillToTileOK4.setRange(Range);
_GCSkillToTileOK4.setDuration(output.Duration);
_GCSkillToTileOK5.setObjectID(pVampire->getObjectID());
_GCSkillToTileOK5.setSkillType(SkillType);
_GCSkillToTileOK5.setX(X);
_GCSkillToTileOK5.setY(Y);
_GCSkillToTileOK5.setRange(Range);
_GCSkillToTileOK5.setDuration(output.Duration);
_GCSkillToTileOK6.setOrgXY(myX, myY);
_GCSkillToTileOK6.setSkillType(SkillType);
_GCSkillToTileOK6.setX(X);
_GCSkillToTileOK6.setY(Y);
_GCSkillToTileOK6.setDuration(output.Duration);
_GCSkillToTileOK6.setRange(Range);
//_GCSkillToTileOK6.addShortData(MODIFY_VISION, DARKNESS_SIGHT);
for(list<Creature*>::const_iterator itr = cList.begin(); itr != cList.end(); itr++)
{
Creature* pTargetCreature = *itr;
if (canSee(pTargetCreature, pVampire)) pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK2);
else pTargetCreature->getPlayer()->sendPacket(&_GCSkillToTileOK6);
}
pPlayer->sendPacket(&_GCSkillToTileOK1);
cList.push_back(pVampire);
list<Creature*> watcherList = pZone->getWatcherList(myX, myY, pVampire);
// watcherList에서 cList에 속하지 않고, caster(pVampire)를 볼 수 없는 경우는
// OK4를 보내고.. cList에 추가한다.
for(list<Creature*>::const_iterator itr = watcherList.begin(); itr != watcherList.end(); itr++)
{
bool bBelong = false;
for(list<Creature*>::const_iterator tItr = cList.begin(); tItr != cList.end(); tItr++)
if (*itr == *tItr)
bBelong = true;
Creature* pWatcher = (*itr);
if (bBelong == false && canSee(pWatcher, pVampire) == false)
{
//Assert(pWatcher->isPC()); // 당연 PC다.. Zone::getWatcherList는 PC만 return한다
if (!pWatcher->isPC())
{
//cout << "Darkness : 왓처 리스트가 PC가 아닙니다." << endl;
GCSkillFailed1 _GCSkillFailed1;
_GCSkillFailed1.setSkillType(getSkillType());
pVampire->getPlayer()->sendPacket(&_GCSkillFailed1);
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
return;
}
pWatcher->getPlayer()->sendPacket(&_GCSkillToTileOK4);
cList.push_back(*itr);
}
}
cList = pZone->broadcastSkillPacket(myX, myY, X, Y, &_GCSkillToTileOK5, cList, false);
pZone->broadcastPacket(myX, myY, &_GCSkillToTileOK3 , cList);
pZone->broadcastPacket(X, Y, &_GCSkillToTileOK4 , cList);
pVampireSkillSlot->setRunTime(output.Delay);
}
else
{
executeSkillFailNormal(pVampire, getSkillType(), NULL);
}
}
catch (Throwable & t)
{
executeSkillFailException(pVampire, getSkillType());
}
//cout << "TID[" << Thread::self() << "]" << getSkillHandlerName() << " End" << endl;
__END_CATCH
}