本文整理汇总了C++中CMonster::GetTileY方法的典型用法代码示例。如果您正苦于以下问题:C++ CMonster::GetTileY方法的具体用法?C++ CMonster::GetTileY怎么用?C++ CMonster::GetTileY使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMonster
的用法示例。
在下文中一共展示了CMonster::GetTileY方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RandomRun
bool MonsterAI::RandomRun()
{
CMonster *monster = static_cast<CMonster*>(GetOwner());
if (monster == NULL)
{
LogError(AI_MODULE, "MosterAI has no owner object...");
}
assert(monster);
if(random(10000) < monster->GetMoveRandomValue())
{
long dir = 0;
long curX = monster->GetTileX();
long curY = monster->GetTileY();
long dis = monster->Distance(curX, curY, m_BornPos.x, m_BornPos.y);
if(dis > monster->GetPeaceMoveRange())
{
dir = GetLineDir(curX, curY, m_BornPos.x, m_BornPos.y);
long gdir = (8 - dir) % 8;
if(gdir >= 2 || gdir <= 6)
{
dir = (dir + random(3) - 1 + 8) % 8;
}
}
else
{
dir = random(8);
}
long maxRunTimes = monster->GetMaxRunTimes();
long minRunTimes = monster->GetMinRunTimes();
AI_EVENT_SENDER(this).MoveByStep(dir, random(maxRunTimes - minRunTimes) + minRunTimes);
// drive the ai
Resume(0);
}
else
{
Stand(monster->GetStopFrame());
}
return true;
}
示例2: JudgeAttackRelation
//1表示增益
//2表示减益
BOOL CPKSys::JudgeAttackRelation(CMoveShape *pAttacker,CMoveShape *pBeenAttacker,int nAddSub)
{
if (pBeenAttacker->IsGod())
{
//((CPlayer*)pAttacker)->SendNotifyMessage(AppFrame::GetText("STR_WS_SKILL_FIFTEENTH"),0xffff0000,0,eNOTIFYPOS_CENTER);
return FALSE;
}
if (!IsAttackAble(pAttacker,pBeenAttacker))
{
return FALSE;
}
CServerRegion* pRegion = dynamic_cast<CServerRegion*>( pAttacker->GetFather() );
if( !pRegion )
return FALSE;
//PVP
if (pAttacker->GetType()==TYPE_PLAYER && pBeenAttacker->GetType()==TYPE_PLAYER && nAddSub==2)
{
CPlayer* pPlayerAttacker = dynamic_cast<CPlayer*>( pAttacker );
CPlayer* pPlayerBeenAttacker = dynamic_cast<CPlayer*>( pBeenAttacker );
// 如果在nopk场景,玩家不能PK的
if(0 == pRegion->IsNoPk())
return FALSE;
CRegion::eSecurity eBSecurityType =
pRegion->GetSecurity(pPlayerBeenAttacker->GetTileX(),pPlayerBeenAttacker->GetTileY());
CRegion::eSecurity eSecurityType = pRegion->GetSecurity(pPlayerAttacker->GetTileX(),pPlayerAttacker->GetTileY());
if (eSecurityType == CRegion::SECURTIY_SAFE || eBSecurityType == CRegion::SECURTIY_SAFE)
{
return FALSE;
}
//组队
if (pPlayerAttacker->IsPk_Team())
{
if (pPlayerAttacker->GetTeamID()!=NULL_GUID && pPlayerAttacker->GetTeamID()==pPlayerBeenAttacker->GetTeamID())
{
return FALSE;
}
}
//帮会
if (pPlayerAttacker->IsPk_Union())
{
if (pPlayerAttacker->GetFactionID()!=NULL_GUID && pPlayerAttacker->GetFactionID()==pPlayerBeenAttacker->GetFactionID())
{
return FALSE;
}
}
//本国
if (pPlayerAttacker->IsPk_Country())
{
// [9/7/2009 chenxianj]
//只保护本国白名玩家
if (pPlayerAttacker->GetCountry()==pPlayerBeenAttacker->GetCountry() && pPlayerBeenAttacker->GetPkValue()==0)
{
return FALSE;
}
}
//阵营
if (pPlayerAttacker->IsPk_Camp())
{
// [9/7/2009 chenxianj]
//只保护本阵营白名玩家
if (IsSameCamp(pPlayerAttacker,pPlayerBeenAttacker) && pPlayerBeenAttacker->GetPkValue()==0)
{
return FALSE;
}
}
//全体
if (pPlayerAttacker->IsPk_Normal())
{
if(!IsSameCamp(pPlayerAttacker,pPlayerBeenAttacker) && pPlayerBeenAttacker->GetPkValue()==0 && pPlayerBeenAttacker->GetPVPValue()==0)
{
return FALSE;
}
}
//红名
if (pPlayerAttacker->IsPk_Badman())
{
if (pPlayerBeenAttacker->GetPkValue()>0)
{
return FALSE;
}
}
//海盗
if ( pPlayerAttacker->IsPk_Pirate())
{
if (pPlayerBeenAttacker->GetPVPValue()>0)
{
return FALSE;
}
}
}
//PVM
if (pAttacker->GetType()==TYPE_PLAYER && pBeenAttacker->GetType()==TYPE_MONSTER)
{
CPlayer* pPlayerAttacker = dynamic_cast<CPlayer*>( pAttacker );
CMonster* pPlayerBeenAttacker = dynamic_cast<CMonster*>( pBeenAttacker );
//.........这里部分代码省略.........