本文整理汇总了C++中Hero::getLifeStation方法的典型用法代码示例。如果您正苦于以下问题:C++ Hero::getLifeStation方法的具体用法?C++ Hero::getLifeStation怎么用?C++ Hero::getLifeStation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hero
的用法示例。
在下文中一共展示了Hero::getLifeStation方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: redSchRge
/* 搜寻自己一个屏幕上的hero,看是不是在仇恨范围内*/
void MonsterAttRed::redSchRge(void)
{
set<string>::iterator her_it;
set<string>HeroIdSet;
list<HatVal>new_enmy;
Point heroPt;
Hero *myHero;
Nbox *box;
bool isCpy;
isCpy = false;
/*过滤仇恨列表*/
PasSchRge();
box = map_now->getBox();
if(box == NULL)
{
return;
}
box->getCentPtSrcHerIdSet(pt,HeroIdSet);
for(her_it = HeroIdSet.begin(); her_it != HeroIdSet.end(); ++her_it)
{
myHero = heroid_to_hero(*her_it);
if(myHero == NULL || myHero->getLifeStation() == DEAD || !myHero->getWalkingFlg() ||\
!myHero->getisRedName())
{
continue;
}
#if 0
if(myHero == NULL || myHero->getLifeStation() == DEAD || !myHero->getWalkingFlg())
{
continue;
}
#endif
/*为了减少误差,用像素判断*/
heroPt = myHero->getLocation();
/*判断是否在仇恨范围内*/
/*现在是以当前像素坐标点为圆心,仇恨范围动的格式做的*/
if(sqrt(pow(fabs(heroPt._x - pt._x),2)+pow(fabs(heroPt._y - pt._y),2)) < hatRge)
{
HatVal hat(const_cast<char *>((*her_it).c_str()),hatValRue->getHatInRag());
new_enmy.push_back(hat);
myHero->insertAttList(identity);
}
}
/*add by chenzhen 201301311533 */
if(!new_enmy.empty())
{
if(map_now != NULL && map_now->getFlgCpy())
{
//isCpy = true; copy and wild same. by benliao 2012.12.09
enmityValues.swap(new_enmy);
}
else
{
/*交换新仇恨列表*/
enmityValues.swap(new_enmy);
}
}
int flag;
/*这里调用一个函数,进行仇恨值列表和物品归属进行操作*/
flag = HatFun(enmityValues,new_enmy,perHerId,goodsOwner,identity,isCpy);
/*仇恨列表为空*/
if(enmityValues.empty())
{
/*把当前目标玩家至空*/
if(strlen(perHerId) != 0)
{
memset(perHerId,'\0',SHOR_MID_VALUE_LENGTH + 1);
}
/*把当前物品归属玩家至空*/
if(strlen(goodsOwner) != 0) //add chenzhen 6.8
{
memset(goodsOwner,'\0',IDL + 1);
}
return;
}
list<HatVal>::iterator hatf_it; //仇恨列表头结点(仇恨值最大)
list<HatVal>::iterator hats_it; //仇恨列表头第二结点(仇恨值第二大)
/*如果目标不为空,且目标还在仇恨范围内*/
//.........这里部分代码省略.........
示例2: response
void MonsterActive::response(void)
{
StyObj obj(identity,MONSTER_STYLE_TYPE);
vector<string> herId;
Point heroPt;
Hero *perHero;
Nbox *box;
if(map_now == NULL)
{
return;
}
box = map_now->getBox();
if(box == NULL || !isAlive)
{
return;
}
/*判断任务是否还在*/
if(judgeTask())
{
cout<<"the task mon of the task is illeay:"<<endl;
return;
}
if(!isPlayOver())
{
// cout<<"it is playCd time:"<<endl;
return;
}
memset(otherMsg,'\0',MONSTER_MSG_LENGTH + 1);
box->getStaInSrcVec(obj);
/*处理延时性技能*/
hitedSkiFun();
/*地图没人,判断是否已眩晕*/
if(!dizz)
{
stopMove();
return;
}
/*回血功能*/
recoverBloodSelf();
/*boss逃跑*/
if(flgRun)
{
/*判断是否已定身*/
if(!skiBody)
{
stopMove();
return;
}
}
else
{
/*仇恨范围搜寻*/
schRge();
/*如果仇恨列表不为空*/
if(!enmityValues.empty())
{
/*这个是从仇恨列表里面得到的最高值,至于怎么得到的,则要看仇恨计算*/
perHero = getHero(perHerId);
if(perHero == NULL || !perHero->getLifeStation())
{
return;
}
heroPt = perHero->getLogPt();
/*攻击距离判断*/
int fight_state = attackRangePoint(pt,perHero->getLocation(),attack_range);
if(fight_state != 1)
{
/*判断是否已定身*/
if(!skiBody)
{
stopMove();
return;
}
/*如果人物没动,则这次就不必要再寻一次路*/
if(jdgSmePt(heroPt))
{
findAttWay(heroPt);
isPersuitHero = true;
}
}
else
//.........这里部分代码省略.........
示例3: response
void MonsterAttRed::response(void)
{
StyObj obj(identity,MONSTER_STYLE_TYPE);
vector<string> herId;
Point heroPt;
Hero *perHero;
Nbox *box;
if(map_now == NULL)
{
return;
}
box = map_now->getBox();
if(box == NULL || !isAlive)
{
return;
}
/*判断任务是否还在*/
if(judgeTask())
{
cout<<"the task mon of the task is illeay:"<<endl;
return;
}
if(!isPlayOver())
{
// cout<<"it is playCd time:"<<endl;
return;
}
memset(otherMsg,'\0',MONSTER_MSG_LENGTH + 1);
box->getStaInSrcVec(obj);
/*处理延时性技能*/
hitedSkiFun();
/*判断地图是否有人,怪物是否已眩晕*/
if(!dizz)
{
stopMove();
return;
}
/*回血功能*/
recoverBloodSelf();
/*这个是从仇恨列表里面得到的最高值,至于怎么得到的,则要看仇恨计算*/
if(flgRun)
{
/*判断是否已定身*/
if(!skiBody)
{
stopMove();
return;
}
}
else
{
/*终究还是专打红名了 add by chenzhen 201301300950*/
redSchRge();
if(!enmityValues.empty())
{
chageEny(((*(enmityValues.begin())).id));
/*这个是从仇恨列表里面得到的最高值,至于怎么得到的,则要看仇恨计算*/
perHero = getHero(perHerId);
if(perHero == NULL || !perHero->getLifeStation())
{
return;
}
heroPt = perHero->getLogPt();
int fight_state = attackRangePoint(pt,perHero->getLocation(),attack_range);
if(fight_state != 1)
{
/*判断是否已定身*/
if(!skiBody)
{
stopMove();
return;
}
/*如果人物没动,则这次就不必要再寻一次路*/
if(jdgSmePt(heroPt))
{
findAttWay(heroPt);
isPersuitHero = true;
}
isInPatrol = false;
}
else
//.........这里部分代码省略.........