本文整理汇总了C++中CAI_Stalker::g_Group方法的典型用法代码示例。如果您正苦于以下问题:C++ CAI_Stalker::g_Group方法的具体用法?C++ CAI_Stalker::g_Group怎么用?C++ CAI_Stalker::g_Group使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAI_Stalker
的用法示例。
在下文中一共展示了CAI_Stalker::g_Group方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Action
//.........这里部分代码省略.........
bDangerScheme = true;
}
}
SAttackGoodwillStorage* st = bDangerScheme?&gw_danger:&gw_free;
CHARACTER_GOODWILL delta_goodwill = 0;
CHARACTER_REPUTATION_VALUE delta_reputation = 0;
switch (relation)
{
case ALife::eRelationTypeEnemy:
{
delta_goodwill = st->enemy_attack_goodwill;
delta_reputation = st->enemy_attack_reputation;
}break;
case ALife::eRelationTypeNeutral:
{
delta_goodwill = st->neutral_attack_goodwill;
delta_reputation = st->neutral_attack_reputation;
}break;
case ALife::eRelationTypeFriend:
{
delta_goodwill = st->friend_attack_goodwill;
delta_reputation = st->friend_attack_reputation;
}break;
};
//сталкер при нападении на членов своей же группировки отношения не меняют
//(считается, что такое нападение всегда случайно)
// change relation only for pairs actor->stalker, do not use pairs stalker->stalker
bool stalker_attack_team_mate = stalker && stalker_from;
if (delta_goodwill && !stalker_attack_team_mate) {
//изменить отношение ко всем членам атакованой группы (если такая есть)
//как к тому кого атаковали
CGroupHierarchyHolder& group = Level().seniority_holder().team(stalker->g_Team()).squad(stalker->g_Squad()).group(stalker->g_Group());
for(std::size_t i = 0; i < group.members().size(); i++)
{
ChangeGoodwill(group.members()[i]->ID(), from->ID(), delta_goodwill);
}
//*(CHARACTER_GOODWILL)( stalker->Sympathy() * (float)(delta_goodwill));
CHARACTER_GOODWILL community_goodwill = (CHARACTER_GOODWILL)( stalker->Sympathy() * (float)(st->community_member_attack_goodwill) );
if (community_goodwill)
{
ChangeCommunityGoodwill(stalker->Community(), from->ID(), community_goodwill);
}
}
if(delta_reputation)
{
inv_owner_from->ChangeReputation(delta_reputation);
}
}
}
break;
case KILL:
{
if(stalker)
{
//FIGHT_DATA* fight_data_from = FindFight (from->ID(), true);
//мы помним то, какое отношение обороняющегося к атакующему
//было перед началом драки
ALife::ERelationType relation_before_attack = ALife::eRelationTypeDummy;
//if(fight_data_from)
// relation_before_attack = fight_data_from->defender_to_attacker;
//else
relation_before_attack = relation;