本文整理汇总了C++中TeamPlayIsOn函数的典型用法代码示例。如果您正苦于以下问题:C++ TeamPlayIsOn函数的具体用法?C++ TeamPlayIsOn怎么用?C++ TeamPlayIsOn使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了TeamPlayIsOn函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BotChat_Kill
/*
==================
BotChat_Kill
==================
*/
int BotChat_Kill(bot_state_t *bs) {
char name[32];
float rnd;
if (bot_nochat.integer) return qfalse;
if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) return qfalse;
rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_KILL, 0, 1);
// don't chat in tournament mode
if (gametype == GT_TOURNAMENT) return qfalse;
//if fast chat is off
if (!bot_fastchat.integer) {
if (random() > rnd) return qfalse;
}
if (bs->lastkilledplayer == bs->client) return qfalse;
if (BotNumActivePlayers() <= 1) return qfalse;
if (!BotValidChatPosition(bs)) return qfalse;
//
if (BotVisibleEnemies(bs)) return qfalse;
//
EasyClientName(bs->lastkilledplayer, name, 32);
//
bs->chatto = CHAT_ALL;
if (TeamPlayIsOn() && BotSameTeam(bs, bs->lastkilledplayer)) {
BotAI_BotInitialChat(bs, "kill_teammate", name, NULL);
bs->chatto = CHAT_TEAM;
}
else
{
//don't chat in teamplay
if (TeamPlayIsOn()) {
#ifdef MISSIONPACK
trap_EA_Command(bs->client, "vtaunt");
#endif
return qfalse; // don't wait
}
//
if (bs->enemydeathtype == MOD_GAUNTLET) {
BotAI_BotInitialChat(bs, "kill_gauntlet", name, NULL);
}
else if (bs->enemydeathtype == MOD_RAILGUN) {
BotAI_BotInitialChat(bs, "kill_rail", name, NULL);
}
else if (bs->enemydeathtype == MOD_TELEFRAG) {
BotAI_BotInitialChat(bs, "kill_telefrag", name, NULL);
}
#ifdef MISSIONPACK
else if (bs->botdeathtype == MOD_KAMIKAZE && trap_BotNumInitialChats(bs->cs, "kill_kamikaze"))
BotAI_BotInitialChat(bs, "kill_kamikaze", name, NULL);
#endif
//choose between insult and praise
else if (random() < trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_INSULT, 0, 1)) {
BotAI_BotInitialChat(bs, "kill_insult", name, NULL);
}
else {
BotAI_BotInitialChat(bs, "kill_praise", name, NULL);
}
}
bs->lastchat_time = FloatTime();
return qtrue;
}
示例2: BotChat_Kill
/*
==================
BotChat_Kill
==================
*/
int BotChat_Kill( bot_state_t *bs ) {
char name[32];
float rnd;
if ( bot_nochat.integer ) {
return qfalse;
}
if ( bs->lastchat_time > trap_AAS_Time() - 3 ) {
return qfalse;
}
rnd = trap_Characteristic_BFloat( bs->character, CHARACTERISTIC_CHAT_KILL, 0, 1 );
//if fast chat is off
if ( !bot_fastchat.integer ) {
if ( random() > rnd ) {
return qfalse;
}
}
if ( bs->lastkilledplayer == bs->client ) {
return qfalse;
}
if ( BotNumActivePlayers() <= 1 ) {
return qfalse;
}
if ( !BotValidChatPosition( bs ) ) {
return qfalse;
}
//
EasyClientName( bs->lastkilledplayer, name, 32 );
//
bs->chatto = CHAT_ALL;
if ( TeamPlayIsOn() && BotSameTeam( bs, bs->lastkilledplayer ) ) {
BotAI_BotInitialChat( bs, "kill_teammate", name, NULL );
bs->chatto = CHAT_TEAM;
} else
{
//don't chat in teamplay
if ( TeamPlayIsOn() ) {
return qfalse;
}
//
if ( bs->enemydeathtype == MOD_GAUNTLET ) {
BotAI_BotInitialChat( bs, "kill_gauntlet", name, NULL );
} else if ( bs->enemydeathtype == MOD_RAILGUN ) {
BotAI_BotInitialChat( bs, "kill_rail", name, NULL );
} else if ( bs->enemydeathtype == MOD_TELEFRAG ) {
BotAI_BotInitialChat( bs, "kill_telefrag", name, NULL );
}
//choose between insult and praise
else if ( random() < trap_Characteristic_BFloat( bs->character, CHARACTERISTIC_CHAT_INSULT, 0, 1 ) ) {
BotAI_BotInitialChat( bs, "kill_insult", name, NULL );
} else {
BotAI_BotInitialChat( bs, "kill_praise", name, NULL );
}
}
bs->lastchat_time = trap_AAS_Time();
return qtrue;
}
示例3: BotVoiceChatCommand
int BotVoiceChatCommand(bot_state_t *bs, int mode, char *voiceChat) {
int i, clientNum;
char *ptr, buf[MAX_MESSAGE_SIZE], *cmd,*cmd2;
if (!TeamPlayIsOn()) {
return qfalse;
}
if ( mode == SAY_ALL ) {
return qfalse;
}
Q_strncpyz(buf, voiceChat, sizeof(buf));
cmd = buf;
ptr = strchr(buf,' ');
*ptr++ = 0;
clientNum = atoi(ptr);
cmd2 = ptr+2;
ptr = strchr(cmd2,' ');
*ptr = 0;
if (!BotSameTeam(bs, clientNum)) {
return qfalse;
}
for (i = 0; voiceCommands[i].cmd; i++) {
if (!Q_stricmp(cmd2, voiceCommands[i].cmd)) {
voiceCommands[i].func(bs, clientNum, mode);
return qtrue;
}
}
return qfalse;
}
示例4: BotChat_HitTalking
/*
==================
BotChat_HitTalking
==================
*/
int BotChat_HitTalking(bot_state_t *bs) {
char name[32], *weap;
int lasthurt_client;
float rnd;
if (bot_nochat.integer) return qfalse;
if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) return qfalse;
if (BotNumActivePlayers() <= 1) return qfalse;
lasthurt_client = g_entities[bs->client].client->lasthurt_client;
if (!lasthurt_client) return qfalse;
if (lasthurt_client == bs->client) return qfalse;
//
if (lasthurt_client < 0 || lasthurt_client >= MAX_CLIENTS) return qfalse;
//
rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_HITTALKING, 0, 1);
//don't chat in teamplay
if (TeamPlayIsOn()) return qfalse;
// don't chat in tournament mode
if (gametype == GT_TOURNAMENT) return qfalse;
//if fast chat is off
if (!bot_fastchat.integer) {
if (random() > rnd * 0.5) return qfalse;
}
if (!BotValidChatPosition(bs)) return qfalse;
//
ClientName(g_entities[bs->client].client->lasthurt_client, name, sizeof(name));
weap = BotWeaponNameForMeansOfDeath(g_entities[bs->client].client->lasthurt_mod);
//
BotAI_BotInitialChat(bs, "hit_talking", name, weap, NULL);
bs->lastchat_time = FloatTime();
bs->chatto = CHAT_ALL;
return qtrue;
}
示例5: BotChat_HitNoDeath
/*
==================
BotChat_HitNoDeath
==================
*/
int BotChat_HitNoDeath( bot_state_t *bs ) {
char name[32];
const char* weap;
float rnd;
int lasthurt_client;
aas_entityinfo_t entinfo;
lasthurt_client = g_entities[bs->client].client->lasthurt_client;
if ( !lasthurt_client ) {
return qfalse;
}
if ( lasthurt_client == bs->client ) {
return qfalse;
}
//
if ( lasthurt_client < 0 || lasthurt_client >= MAX_CLIENTS ) {
return qfalse;
}
//
if ( bot_nochat.integer ) {
return qfalse;
}
if ( bs->lastchat_time > trap_AAS_Time() - 3 ) {
return qfalse;
}
if ( BotNumActivePlayers() <= 1 ) {
return qfalse;
}
rnd = trap_Characteristic_BFloat( bs->character, CHARACTERISTIC_CHAT_HITNODEATH, 0, 1 );
//don't chat in teamplay
if ( TeamPlayIsOn() ) {
return qfalse;
}
//if fast chat is off
if ( !bot_fastchat.integer ) {
if ( random() > rnd * 0.5 ) {
return qfalse;
}
}
if ( !BotValidChatPosition( bs ) ) {
return qfalse;
}
//if the enemy is visible
if ( BotEntityVisible( bs->client, bs->eye, bs->viewangles, 360, bs->enemy ) ) {
return qfalse;
}
//
BotEntityInfo( bs->enemy, &entinfo );
if ( EntityIsShooting( &entinfo ) ) {
return qfalse;
}
//
ClientName( lasthurt_client, name, sizeof( name ) );
weap = BotWeaponNameForMeansOfDeath( g_entities[bs->client].client->lasthurt_mod );
//
BotAI_BotInitialChat( bs, "hit_nodeath", name, weap, NULL );
bs->lastchat_time = trap_AAS_Time();
bs->chatto = CHAT_ALL;
return qtrue;
}
示例6: BotChat_EnterGame
/*
==================
BotChat_EnterGame
==================
*/
int BotChat_EnterGame(bot_state_t *bs) {
char name[32];
float rnd;
if (bot_nochat.integer) return qfalse;
if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) return qfalse;
//don't chat in teamplay
if (TeamPlayIsOn()) return qfalse;
// don't chat in tournament mode
if (gametype == GT_TOURNAMENT) return qfalse;
rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_ENTEREXITGAME, 0, 1);
if (!bot_fastchat.integer) {
if (random() > rnd) return qfalse;
}
if (BotNumActivePlayers() <= 1) return qfalse;
if (!BotValidChatPosition(bs)) return qfalse;
BotAI_BotInitialChat(bs, "game_enter",
EasyClientName(bs->client, name, 32), // 0
BotRandomOpponentName(bs), // 1
"[invalid var]", // 2
"[invalid var]", // 3
BotMapTitle(), // 4
NULL);
bs->lastchat_time = FloatTime();
bs->chatto = CHAT_ALL;
return qtrue;
}
示例7: BotMatch_WhereAreYou
/*
==================
BotMatch_WhereAreYou
==================
*/
void BotMatch_WhereAreYou( bot_state_t *bs, bot_match_t *match ) {
float dist, bestdist;
int i, bestitem, redflagtt, blueflagtt, redtobluett;
bot_goal_t goal;
char *nearbyitems[] = {
"Shotgun",
"Grenade Launcher",
"Rocket Launcher",
"Plasmagun",
"Railgun",
"Lightning Gun",
"BFG10K",
"Quad Damage",
"Regeneration",
"Battle Suit",
"Speed",
"Invisibility",
"Flight",
"Armor",
"Heavy Armor",
"Red Flag",
"Blue Flag",
NULL
};
//
if ( !TeamPlayIsOn() ) {
return;
}
//if not addressed to this bot
if ( !BotAddressedToBot( bs, match ) ) {
return;
}
bestitem = -1;
bestdist = 999999;
for ( i = 0; nearbyitems[i]; i++ ) {
dist = BotNearestVisibleItem( bs, nearbyitems[i], &goal );
if ( dist < bestdist ) {
bestdist = dist;
bestitem = i;
}
}
if ( bestitem != -1 ) {
if ( gametype == GT_CTF ) {
redflagtt = trap_AAS_AreaTravelTimeToGoalArea( bs->areanum, bs->origin, ctf_redflag.areanum, TFL_DEFAULT );
blueflagtt = trap_AAS_AreaTravelTimeToGoalArea( bs->areanum, bs->origin, ctf_blueflag.areanum, TFL_DEFAULT );
redtobluett = trap_AAS_AreaTravelTimeToGoalArea( ctf_redflag.areanum, ctf_redflag.origin, ctf_blueflag.areanum, TFL_DEFAULT );
if ( redflagtt < ( redflagtt + blueflagtt ) * 0.4 ) {
BotAI_BotInitialChat( bs, "ctflocation", nearbyitems[bestitem], "red", NULL );
} else if ( blueflagtt < ( redflagtt + blueflagtt ) * 0.4 ) {
BotAI_BotInitialChat( bs, "ctflocation", nearbyitems[bestitem], "blue", NULL );
} else {
BotAI_BotInitialChat( bs, "location", nearbyitems[bestitem], NULL );
}
} else {
BotAI_BotInitialChat( bs, "location", nearbyitems[bestitem], NULL );
}
trap_BotEnterChat( bs->cs, bs->client, CHAT_TEAM );
}
}
示例8: BotChat_ExitGame
/*
=======================================================================================================================================
BotChat_ExitGame
=======================================================================================================================================
*/
int BotChat_ExitGame(bot_state_t *bs) {
char name[32];
float rnd;
if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) {
return qfalse;
}
// don't chat in teamplay
if (TeamPlayIsOn()) {
return qfalse;
}
// don't chat in tournament mode
if (gametype == GT_TOURNAMENT) {
return qfalse;
}
rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_ENTEREXITGAME, 0, 1);
if (random() > rnd) {
return qfalse;
}
if (BotNumActivePlayers() <= 1) {
return qfalse;
}
BotAI_BotInitialChat(bs, "game_exit", EasyClientName(bs->client, name, 32), BotRandomOpponentName(bs), "[invalid var]", "[invalid var]", BotMapTitle(), NULL);
bs->lastchat_time = FloatTime();
bs->chatto = CHAT_ALL;
return qtrue;
}
示例9: BotMatch_Patrol
/*
==================
BotMatch_Patrol
==================
*/
void BotMatch_Patrol(bot_state_t *bs, bot_match_t *match) {
char netname[MAX_MESSAGE_SIZE];
int client;
if (!TeamPlayIsOn()) return;
//if not addressed to this bot
if (!BotAddressedToBot(bs, match)) return;
//get the patrol waypoints
if (!BotGetPatrolWaypoints(bs, match)) return;
//
trap_BotMatchVariable(match, NETNAME, netname, sizeof(netname));
//
client = FindClientByName(netname);
//
bs->decisionmaker = client;
bs->ordered = qtrue;
bs->order_time = FloatTime();
//set the time to send a message to the team mates
bs->teammessage_time = FloatTime() + 2 * random();
//set the ltg type
bs->ltgtype = LTG_PATROL;
//get the team goal time
bs->teamgoal_time = BotGetTime(match);
//set the team goal time if not set already
if (!bs->teamgoal_time) bs->teamgoal_time = FloatTime() + TEAM_PATROL_TIME;
//
BotSetTeamStatus(bs);
// remember last ordered task
BotRememberLastOrderedTask(bs);
#ifdef DEBUG
BotPrintTeamGoal(bs);
#endif //DEBUG
}
示例10: BotChat_StartLevel
/*
==================
BotChat_StartLevel
==================
*/
int BotChat_StartLevel(bot_state_t *bs) {
char name[32];
float rnd;
if (bot_nochat.integer) return qfalse;
if (BotIsObserver(bs)) return qfalse;
if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) return qfalse;
//don't chat in teamplay
if (TeamPlayIsOn()) {
#ifdef MISSIONPACK
trap_EA_Command(bs->client, "vtaunt");
#endif
return qfalse;
}
// don't chat in tournament mode
if (gametype == GT_TOURNAMENT) return qfalse;
rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_STARTENDLEVEL, 0, 1);
if (!bot_fastchat.integer) {
if (random() > rnd) return qfalse;
}
if (BotNumActivePlayers() <= 1) return qfalse;
BotAI_BotInitialChat(bs, "level_start",
EasyClientName(bs->client, name, 32), // 0
NULL);
bs->lastchat_time = FloatTime();
bs->chatto = CHAT_ALL;
return qtrue;
}
示例11: BotMatch_FormationSpace
/*
=======================================================================================================================================
BotMatch_FormationSpace
=======================================================================================================================================
*/
void BotMatch_FormationSpace(bot_state_t *bs, bot_match_t *match) {
char buf[MAX_MESSAGE_SIZE];
float space;
if (!TeamPlayIsOn()) {
return;
}
// if not addressed to this bot
if (!BotAddressedToBot(bs, match)) {
return;
}
trap_BotMatchVariable(match, NUMBER, buf, MAX_MESSAGE_SIZE);
// if it's the distance in feet
if (match->subtype & ST_FEET) {
space = 0.3048 * 32 * atof(buf);
}
// else it's in meters
else {space = 32 * atof(buf);}
// check if the formation intervening space is valid
if (space < 48 || space > 500) {
space = 100;
}
bs->formation_dist = space;
}
示例12: BotMatch_CatchMe
void BotMatch_CatchMe(bot_state_t *bs, bot_match_t *match){
char netname[MAX_MESSAGE_SIZE];
int client;
//if not addressed to this bot
if ( !TeamPlayIsOn() || !BotAddressedToBot(bs, match) ) return;
// who wants me to to come?
trap_BotMatchVariable(match, NETNAME, netname, sizeof(netname));
client = ClientOnSameTeamFromName(bs, netname);
bs->teammate = client;
bs->teammatevisible_time = FloatTime(); //last time the team mate was assumed visible
bs->decisionmaker = client;
// bs->ordered = qtrue;
//bs->order_time = FloatTime();
//set the time to send a message to the team mates
bs->teammessage_time = FloatTime() + 2 * random();
//set the ltg type
bs->ltgtype = LTG_JOINMATE;
//set the team goal time
bs->teamgoal_time = FloatTime() + 300; // 5 minutes
}
示例13: BotMatch_Patrol
/*
=======================================================================================================================================
BotMatch_Patrol
=======================================================================================================================================
*/
void BotMatch_Patrol(bot_state_t *bs, bot_match_t *match) {
if (!TeamPlayIsOn()) {
return;
}
// if not addressed to this bot
if (!BotAddressedToBot(bs, match)) {
return;
}
// get the patrol waypoints
if (!BotGetPatrolWaypoints(bs, match)) {
return;
}
// set the time to send a message to the team mates
bs->teammessage_time = trap_AAS_Time() + 2 * random();
// set the ltg type
bs->ltgtype = LTG_PATROL;
// get the team goal time
bs->teamgoal_time = BotGetTime(match);
// set the team goal time if not set already
if (!bs->teamgoal_time) {
bs->teamgoal_time = trap_AAS_Time() + TEAM_PATROL_TIME;
}
#ifdef DEBUG
BotPrintTeamGoal(bs);
#endif // DEBUG
}
示例14: BotChat_ExitGame
/*
==================
BotChat_ExitGame
==================
*/
int BotChat_ExitGame( bot_state_t *bs ) {
char name[32];
float rnd;
if ( bot_nochat.integer ) {
return qfalse;
}
if ( bs->lastchat_time > trap_AAS_Time() - 3 ) {
return qfalse;
}
//don't chat in teamplay
if ( TeamPlayIsOn() ) {
return qfalse;
}
rnd = trap_Characteristic_BFloat( bs->character, CHARACTERISTIC_CHAT_ENTEREXITGAME, 0, 1 );
if ( !bot_fastchat.integer ) {
if ( random() > rnd ) {
return qfalse;
}
}
if ( BotNumActivePlayers() <= 1 ) {
return qfalse;
}
//
BotAI_BotInitialChat( bs, "game_exit",
EasyClientName( bs->client, name, 32 ), // 0
BotRandomOpponentName( bs ), // 1
"[invalid var]", // 2
"[invalid var]", // 3
BotMapTitle(), // 4
NULL );
bs->lastchat_time = trap_AAS_Time();
bs->chatto = CHAT_ALL;
return qtrue;
}
示例15: BotMatch_GetItem
/*
=======================================================================================================================================
BotMatch_GetItem
=======================================================================================================================================
*/
void BotMatch_GetItem(bot_state_t *bs, bot_match_t *match) {
char itemname[MAX_MESSAGE_SIZE];
if (!TeamPlayIsOn()) {
return;
}
// if not addressed to this bot
if (!BotAddressedToBot(bs, match)) {
return;
}
// get the match variable
trap_BotMatchVariable(match, ITEM, itemname, sizeof(itemname));
if (!BotGetMessageTeamGoal(bs, itemname, &bs->teamgoal)) {
// BotAI_BotInitialChat(bs, "cannotfind", itemname, NULL);
// trap_BotEnterChat(bs->cs, bs->client, CHAT_TEAM);
return;
}
// set the time to send a message to the team mates
bs->teammessage_time = trap_AAS_Time() + 2 * random();
// set the ltg type
bs->ltgtype = LTG_GETITEM;
// set the team goal time
bs->teamgoal_time = trap_AAS_Time() + TEAM_GETITEM_TIME;
#ifdef DEBUG
BotPrintTeamGoal(bs);
#endif // DEBUG
}