您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BotAI_BotInitialChat函数代码示例

51自学网 2021-06-01 19:55:28
  C++
这篇教程C++ BotAI_BotInitialChat函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BotAI_BotInitialChat函数的典型用法代码示例。如果您正苦于以下问题:C++ BotAI_BotInitialChat函数的具体用法?C++ BotAI_BotInitialChat怎么用?C++ BotAI_BotInitialChat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BotAI_BotInitialChat函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: BotMatch_WrongWall

void BotMatch_WrongWall(bot_state_t* bs, bot_match_t *match){	char netname[MAX_MESSAGE_SIZE];	char buf[MAX_INFO_STRING];	int client;	if(gametype != GT_SPRAY)		return;	// talking about me ? (avoid clientfromname, its ambiguous)	trap_BotMatchVariable(match, NETNAME, netname, sizeof(netname));	trap_GetConfigstring(CS_PLAYERS + bs->client, buf, sizeof(buf));	Q_CleanStr( buf );	if (!Q_stricmp(Info_ValueForKey(buf, "n"), netname)){		// could be someone with same name, so make (more) sure		if( ClientInSprayroom(bs->client) ){			bs->which_wall = BotChooseCorrectWall(bs);			bs->enemy = -1;			// chat			BotAI_BotInitialChat(bs, "wall_missed", NULL);			trap_BotEnterChat(bs->cs, 0, CHAT_ALL);			return;		}	}	// check if opposite team	client = ClientFromName(netname);	if(!BotSameTeam(bs, client)){		float rnd;		// flame		rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_INSULT, 0, 1);		if(random() > rnd) return;			BotAI_BotInitialChat(bs, "wall_insult", netname, NULL);		trap_BotEnterChat(bs->cs, 0, CHAT_ALL);	}}
开发者ID:PadWorld-Entertainment,项目名称:wop-gamesource,代码行数:34,


示例2: 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 );	}}
开发者ID:JackalFrost,项目名称:RTCW-WSGF,代码行数:65,


示例3: BotMatch_CheckPoint

/*=======================================================================================================================================BotMatch_CheckPoint=======================================================================================================================================*/void BotMatch_CheckPoint(bot_state_t *bs, bot_match_t *match) {	int areanum;	char buf[MAX_MESSAGE_SIZE];	vec3_t position;	bot_waypoint_t *cp;	if (!TeamPlayIsOn()) {		return;	}	trap_BotMatchVariable(match, POSITION, buf, MAX_MESSAGE_SIZE);	VectorClear(position);	// BotGPSToPosition(buf, position);	sscanf(buf, "%f %f %f", &position[0], &position[1], &position[2]);	position[2] += 0.5;	areanum = BotPointAreaNum(position);	if (!areanum) {		if (BotAddressedToBot(bs, match)) {			BotAI_BotInitialChat(bs, "checkpoint_invalid", NULL);			trap_BotEnterChat(bs->cs, bs->client, CHAT_TEAM);		}		return;	}	trap_BotMatchVariable(match, NAME, buf, MAX_MESSAGE_SIZE);	// check if there already exists a checkpoint with this name	cp = BotFindWayPoint(bs->checkpoints, buf);	if (cp) {		if (cp->next) {			cp->next->prev = cp->prev;		}		if (cp->prev) {			cp->prev->next = cp->next;		} else {bs->checkpoints = cp->next;}		cp->inuse = qfalse;	}	// create a new check point	cp = BotCreateWayPoint(buf, position, areanum);	// add the check point to the bot's known chech points	cp->next = bs->checkpoints;	if (bs->checkpoints) {		bs->checkpoints->prev = cp;	}	bs->checkpoints = cp;	if (BotAddressedToBot(bs, match)) {		Com_sprintf(buf, sizeof(buf), "%1.0f %1.0f %1.0f", cp->goal.origin[0], cp->goal.origin[1], cp->goal.origin[2]);		BotAI_BotInitialChat(bs, "checkpoint_confirm", cp->name, buf, NULL);		trap_BotEnterChat(bs->cs, bs->client, CHAT_TEAM);	}}
开发者ID:ioid3-games,项目名称:ioid3-rtcw,代码行数:64,


示例4: BotChat_EndLevel

/*==================BotChat_EndLevel==================*/int BotChat_EndLevel(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;	// teamplay	if (TeamPlayIsOn()) 	{#ifdef MISSIONPACK		if (BotIsFirstInRankings(bs)) {			trap_EA_Command(bs->client, "vtaunt");		}#endif		return qtrue;	}	// 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;	//	if (BotIsFirstInRankings(bs)) {		BotAI_BotInitialChat(bs, "level_end_victory",				EasyClientName(bs->client, name, 32),	// 0				BotRandomOpponentName(bs),				// 1				"[invalid var]",						// 2				BotLastClientInRankings(),				// 3				BotMapTitle(),							// 4				NULL);	}	else if (BotIsLastInRankings(bs)) {		BotAI_BotInitialChat(bs, "level_end_lose",				EasyClientName(bs->client, name, 32),	// 0				BotRandomOpponentName(bs),				// 1				BotFirstClientInRankings(),				// 2				"[invalid var]",						// 3				BotMapTitle(),							// 4				NULL);	}	else {		BotAI_BotInitialChat(bs, "level_end",				EasyClientName(bs->client, name, 32),	// 0				BotRandomOpponentName(bs),				// 1				BotFirstClientInRankings(),				// 2				BotLastClientInRankings(),				// 3				BotMapTitle(),							// 4				NULL);	}	bs->lastchat_time = FloatTime();	bs->chatto = CHAT_ALL;	return qtrue;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:61,


示例5: BotChat_EndLevel

/*==================BotChat_EndLevel==================*/int BotChat_EndLevel( bot_state_t *bs ) {	char name[32];	float rnd;	if ( bot_nochat.integer ) {		return qfalse;	}	if ( BotIsObserver( bs ) ) {		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_STARTENDLEVEL, 0, 1 );	if ( !bot_fastchat.integer ) {		if ( random() > rnd ) {			return qfalse;		}	}	if ( BotNumActivePlayers() <= 1 ) {		return qfalse;	}	//	if ( BotIsFirstInRankings( bs ) ) {		BotAI_BotInitialChat( bs, "level_end_victory",							  EasyClientName( bs->client, name, 32 ), // 0							  BotRandomOpponentName( bs ), // 1							  "[invalid var]",      // 2							  BotLastClientInRankings(), // 3							  BotMapTitle(),            // 4							  NULL );	} else if ( BotIsLastInRankings( bs ) )       {		BotAI_BotInitialChat( bs, "level_end_lose",							  EasyClientName( bs->client, name, 32 ), // 0							  BotRandomOpponentName( bs ), // 1							  BotFirstClientInRankings(), // 2							  "[invalid var]",      // 3							  BotMapTitle(),            // 4							  NULL );	} else {		BotAI_BotInitialChat( bs, "level_end",							  EasyClientName( bs->client, name, 32 ), // 0							  BotRandomOpponentName( bs ), // 1							  BotFirstClientInRankings(), // 2							  BotLastClientInRankings(), // 3							  BotMapTitle(),            // 4							  NULL );	}	bs->lastchat_time = trap_AAS_Time();	bs->chatto = CHAT_ALL;	return qtrue;}
开发者ID:chegestar,项目名称:omni-bot,代码行数:61,


示例6: BotMatch_WhichTeam

/*==================BotMatch_LeaveSubteam==================*/void BotMatch_WhichTeam(bot_state_t *bs, bot_match_t *match) {	if (!TeamPlayIsOn()) return;	//if not addressed to this bot	if (!BotAddressedToBot(bs, match)) return;	//	if (strlen(bs->subteam)) {		BotAI_BotInitialChat(bs, "inteam", bs->subteam, NULL);	}	else {		BotAI_BotInitialChat(bs, "noteam", NULL);	}	trap_BotEnterChat(bs->cs, bs->client, CHAT_TEAM);}
开发者ID:AHPlankton,项目名称:Quake-III-Arena,代码行数:18,


示例7: 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;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:32,


示例8: 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;}
开发者ID:bibendovsky,项目名称:rtcw,代码行数:65,


示例9: 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;}
开发者ID:KuehnhammerTobias,项目名称:ioqw,代码行数:37,


示例10: BotMatch_Kill

/*==================BotMatch_Kill==================*/void BotMatch_Kill(bot_state_t *bs, bot_match_t *match) {	char enemy[MAX_MESSAGE_SIZE];	char netname[MAX_MESSAGE_SIZE];	int playernum;	if (!TeamPlayIsOn()) return;	//if not addressed to this bot	if (!BotAddressedToBot(bs, match)) return;	BotMatchVariable(match, ENEMY, enemy, sizeof(enemy));	//	playernum = FindEnemyByName(bs, enemy);	if (playernum < 0) {		BotAI_BotInitialChat(bs, "whois", enemy, NULL);		BotMatchVariable(match, NETNAME, netname, sizeof(netname));		playernum = PlayerFromName(netname);		BotEnterChat(bs->cs, playernum, CHAT_TELL);		return;	}	bs->teamgoal.entitynum = playernum;	//set the time to send a message to the team mates	bs->teammessage_time = FloatTime() + 2 * random();	//set the ltg type	bs->ltgtype = LTG_KILL;	//set the team goal time	bs->teamgoal_time = FloatTime() + TEAM_KILL_SOMEONE;	//	BotSetTeamStatus(bs);	BotPrintTeamGoal(bs);}
开发者ID:coltongit,项目名称:mint-arena,代码行数:35,


示例11: 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;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:33,


示例12: 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;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:38,


示例13: 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 > trap_AAS_Time() - 3 ) {		return qfalse;	}	//don't chat in teamplay	if ( TeamPlayIsOn() ) {		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 = trap_AAS_Time();	bs->chatto = CHAT_ALL;	return qtrue;}
开发者ID:chegestar,项目名称:omni-bot,代码行数:38,


示例14: BotMatch_Kill

/*=======================================================================================================================================BotMatch_Kill=======================================================================================================================================*/void BotMatch_Kill(bot_state_t *bs, bot_match_t *match) {	char enemy[MAX_MESSAGE_SIZE];	int client;	if (!TeamPlayIsOn()) {		return;	}	// if not addressed to this bot	if (!BotAddressedToBot(bs, match)) {		return;	}	trap_BotMatchVariable(match, ENEMY, enemy, sizeof(enemy));	client = FindEnemyByName(bs, enemy);	if (client < 0) {		BotAI_BotInitialChat(bs, "whois", enemy, NULL);		trap_BotEnterChat(bs->cs, bs->client, CHAT_TEAM);		return;	}	bs->teamgoal.entitynum = client;	// 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_KILL;	// set the team goal time	bs->teamgoal_time = trap_AAS_Time() + TEAM_KILL_SOMEONE;#ifdef DEBUG	BotPrintTeamGoal(bs);#endif // DEBUG}
开发者ID:ioid3-games,项目名称:ioid3-rtcw,代码行数:37,


示例15: BotChat_HitNoKill

/*==================BotChat_HitNoKill==================*/int BotChat_HitNoKill(bot_state_t *bs) {	char name[32], *weap;	float rnd;	aas_entityinfo_t entinfo;	if (bot_nochat.integer) return qfalse;	if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) return qfalse;	if (BotNumActivePlayers() <= 1) return qfalse;	rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_HITNOKILL, 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;	//	if (BotVisibleEnemies(bs)) return qfalse;	//	BotEntityInfo(bs->enemy, &entinfo);	if (EntityIsShooting(&entinfo)) return qfalse;	//	ClientName(bs->enemy, name, sizeof(name));	weap = BotWeaponNameForMeansOfDeath(g_entities[bs->enemy].client->lasthurt_mod);	//	BotAI_BotInitialChat(bs, "hit_nokill", name, weap, NULL);	bs->lastchat_time = FloatTime();	bs->chatto = CHAT_ALL;	return qtrue;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:37,


示例16: BotMatch_GetItem

/*==================BotMatch_GetItem==================*/void BotMatch_GetItem(bot_state_t *bs, bot_match_t *match) {	char itemname[MAX_MESSAGE_SIZE];	char netname[MAX_MESSAGE_SIZE];	int client;	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;	}	trap_BotMatchVariable(match, NETNAME, netname, sizeof(netname));	client = ClientOnSameTeamFromName(bs, 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() + 1 * random();	//set the ltg type	bs->ltgtype = LTG_GETITEM;	//set the team goal time	bs->teamgoal_time = FloatTime() + TEAM_GETITEM_TIME;#ifdef DEBUG//	BotPrintTeamGoal(bs);#endif //DEBUG}
开发者ID:PadWorld-Entertainment,项目名称:wop-gamesource,代码行数:38,


示例17: BotChat_EnemySuicide

/*==================BotChat_EnemySuicide==================*/int BotChat_EnemySuicide(bot_state_t *bs) {	char name[32];	float rnd;	if (bot_nochat.integer) return qfalse;	if (bs->lastchat_time > FloatTime() - TIME_BETWEENCHATTING) return qfalse;	if (BotNumActivePlayers() <= 1) return qfalse;	//	rnd = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_CHAT_ENEMYSUICIDE, 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) return qfalse;	}	if (!BotValidChatPosition(bs)) return qfalse;	//	if (BotVisibleEnemies(bs)) return qfalse;	//	if (bs->enemy >= 0) EasyClientName(bs->enemy, name, 32);	else strcpy(name, "");	BotAI_BotInitialChat(bs, "enemy_suicide", name, NULL);	bs->lastchat_time = FloatTime();	bs->chatto = CHAT_ALL;	return qtrue;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:33,


示例18: 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;}
开发者ID:chegestar,项目名称:omni-bot,代码行数:40,


示例19: 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;}
开发者ID:MAN-AT-ARMS,项目名称:ioq3,代码行数:65,


示例20: BotVoiceChat_Camp

/*==================BotVoiceChat_Camp==================*/voidBotVoiceChat_Camp(bot_state_t * bs, int client, int mode){  int areanum;  aas_entityinfo_t entinfo;  char netname[MAX_NETNAME];  //  bs->teamgoal.entitynum = -1;  BotEntityInfo(client, &entinfo);  //if info is valid (in PVS)  if (entinfo.valid)  {    areanum = BotPointAreaNum(entinfo.origin);    if (areanum)    {				// && trap_AAS_AreaReachability(areanum)) {      //NOTE: just assume the bot knows where the person is      //if (BotEntityVisible(bs->entitynum, bs->eye, bs->viewangles, 360, client)) {      bs->teamgoal.entitynum = client;      bs->teamgoal.areanum = areanum;      VectorCopy(entinfo.origin, bs->teamgoal.origin);      VectorSet(bs->teamgoal.mins, -8, -8, -8);      VectorSet(bs->teamgoal.maxs, 8, 8, 8);      //}    }  }  //if the other is not visible  if (bs->teamgoal.entitynum < 0)  {    BotAI_BotInitialChat(bs, "whereareyou",			 EasyClientName(client, netname,					sizeof(netname)), NULL);    trap_BotEnterChat(bs->cs, client, CHAT_TELL);    return;  }  //  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_CAMPORDER;  //get the team goal time  bs->teamgoal_time = FloatTime() + TEAM_CAMP_TIME;  //the teammate that requested the camping  bs->teammate = client;  //not arrived yet  bs->arrive_time = 0;  //  BotSetTeamStatus(bs);  // remember last ordered task  BotRememberLastOrderedTask(bs);#ifdef DEBUG  BotPrintTeamGoal(bs);#endif //DEBUG}
开发者ID:lrq3000,项目名称:ioquake3-anti-cheat,代码行数:62,


示例21: BotCTFOrders_BothFlagsAtBase

/*==================BotCTFOrders==================*/void BotCTFOrders_BothFlagsAtBase( bot_state_t *bs ) {	int numteammates, defenders, attackers, i;	int teammates[MAX_CLIENTS];	char name[MAX_NETNAME];//	char buf[MAX_MESSAGE_SIZE];	numteammates = BotSortTeamMatesByBaseTravelTime( bs, teammates, sizeof( teammates ) );	//different orders based on the number of team mates	switch ( numteammates ) {	case 1: break;	case 2:	{		//the one closest to the base will defend the base		ClientName( teammates[0], name, sizeof( name ) );		BotAI_BotInitialChat( bs, "cmd_defendbase", name, NULL );		BotSayTeamOrder( bs, teammates[0] );		//the other will get the flag		ClientName( teammates[1], name, sizeof( name ) );		BotAI_BotInitialChat( bs, "cmd_getflag", name, NULL );		BotSayTeamOrder( bs, teammates[1] );		break;	}	case 3:	{		//the one closest to the base will defend the base		ClientName( teammates[0], name, sizeof( name ) );		BotAI_BotInitialChat( bs, "cmd_defendbase", name, NULL );		BotSayTeamOrder( bs, teammates[0] );		//the second one closest to the base will defend the base		ClientName( teammates[1], name, sizeof( name ) );		BotAI_BotInitialChat( bs, "cmd_defendbase", name, NULL );		BotSayTeamOrder( bs, teammates[1] );		//the other will get the flag		ClientName( teammates[2], name, sizeof( name ) );		BotAI_BotInitialChat( bs, "cmd_getflag", name, NULL );		BotSayTeamOrder( bs, teammates[2] );		break;	}	default:	{		defenders = (int) ( float ) numteammates * 0.5 + 0.5;		attackers = (int) ( float ) numteammates * 0.3 + 0.5;		for ( i = 0; i < defenders; i++ ) {			//			ClientName( teammates[i], name, sizeof( name ) );			BotAI_BotInitialChat( bs, "cmd_defendbase", name, NULL );			BotSayTeamOrder( bs, teammates[i] );		}		for ( i = 0; i < attackers; i++ ) {			//			ClientName( teammates[numteammates - i - 1], name, sizeof( name ) );			BotAI_BotInitialChat( bs, "cmd_getflag", name, NULL );			BotSayTeamOrder( bs, teammates[numteammates - i - 1] );		}		//		break;	}	}}
开发者ID:bibendovsky,项目名称:rtcw,代码行数:64,


示例22: BotInstructMate

void BotInstructMate(bot_state_t* bs, int client ,int goal){    char name[MAX_NETNAME];	ClientName(client, name, sizeof(name));	//G_Printf("ordering %s",name);	// cyr 20055    if( g_entities[client].r.svFlags & SVF_BOT )            BotAI_BotInitialChat(bs, "cmd_accompany", name, va("%d", goal), NULL);    else{		if(lastorderedgoal[client] == goal+1) return;	//dont bother humans with the same MSG		lastorderedgoal[client] = goal+1;        if( goal >= 0)            BotAI_BotInitialChat(bs, "cmd_accompany", name,            va("the %s",g_entities[ balloongoal[goal].entitynum ].message ), NULL);        else            BotAI_BotInitialChat(bs, "cmd_accompany", name, va("nothing, just roam"), NULL);    }    BotSayTeamOrder(bs, client);}
开发者ID:PadWorld-Entertainment,项目名称:wop-gamesource,代码行数:19,


示例23: BotVoiceChat_FollowMe

/*==================BotVoiceChat_FollowMe==================*/voidBotVoiceChat_FollowMe(bot_state_t * bs, int client, int mode){  int areanum;  aas_entityinfo_t entinfo;  char netname[MAX_NETNAME];  bs->teamgoal.entitynum = -1;  BotEntityInfo(client, &entinfo);  //if info is valid (in PVS)  if (entinfo.valid)  {    areanum = BotPointAreaNum(entinfo.origin);    if (areanum)    {				// && trap_AAS_AreaReachability(areanum)) {      bs->teamgoal.entitynum = client;      bs->teamgoal.areanum = areanum;      VectorCopy(entinfo.origin, bs->teamgoal.origin);      VectorSet(bs->teamgoal.mins, -8, -8, -8);      VectorSet(bs->teamgoal.maxs, 8, 8, 8);    }  }  //if the other is not visible  if (bs->teamgoal.entitynum < 0)  {    BotAI_BotInitialChat(bs, "whereareyou",			 EasyClientName(client, netname,					sizeof(netname)), NULL);    trap_BotEnterChat(bs->cs, client, CHAT_TELL);    return;  }  //  bs->decisionmaker = client;  bs->ordered = qtrue;  bs->order_time = FloatTime();  //the team mate  bs->teammate = client;  //last time the team mate was assumed visible  bs->teammatevisible_time = FloatTime();  //set the time to send a message to the team mates  bs->teammessage_time = FloatTime() + 2 * random();  //get the team goal time  bs->teamgoal_time = FloatTime() + TEAM_ACCOMPANY_TIME;  //set the ltg type  bs->ltgtype = LTG_TEAMACCOMPANY;  bs->formation_dist = 3.5 * 32;	//3.5 meter  bs->arrive_time = 0;  //  BotSetTeamStatus(bs);  // remember last ordered task  BotRememberLastOrderedTask(bs);#ifdef DEBUG  BotPrintTeamGoal(bs);#endif //DEBUG}
开发者ID:lrq3000,项目名称:ioquake3-anti-cheat,代码行数:60,


示例24: BotCreateGroup

/*==================BotCreateGroup==================*/void BotCreateGroup(bot_state_t *bs, int *teammates, int groupsize){    char name[MAX_NETNAME], leadername[MAX_NETNAME];    int i;    // the others in the group will follow the teammates[0]    ClientName(teammates[0], leadername, sizeof(leadername));    for (i = 1; i < groupsize; i++)    {        ClientName(teammates[i], name, sizeof(name));        if (teammates[0] == bs->client)        {            BotAI_BotInitialChat(bs, "cmd_accompanyme", name, NULL);        }        else        {            BotAI_BotInitialChat(bs, "cmd_accompany", name, leadername, NULL);        }        BotSayTeamOrderAlways(bs, teammates[i]);    }}
开发者ID:zturtleman,项目名称:recoil,代码行数:26,


示例25: BotVoiceChat_WhoIsLeader

/*==================BotVoiceChat_WhoIsLeader==================*/void BotVoiceChat_WhoIsLeader(bot_state_t *bs, int client, int mode) {	char netname[MAX_MESSAGE_SIZE];	if (!TeamPlayIsOn()) return;	ClientName(bs->client, netname, sizeof(netname));	//if this bot IS the team leader	if (!Q_stricmp(netname, bs->teamleader)) {		BotAI_BotInitialChat(bs, "iamteamleader", NULL);		trap_BotEnterChat(bs->cs, 0, CHAT_TEAM);		BotVoiceChatOnly(bs, -1, VOICECHAT_STARTLEADER);	}}
开发者ID:Mixone-FinallyHere,项目名称:SmokinGuns,代码行数:18,


示例26: 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;}
开发者ID:chegestar,项目名称:omni-bot,代码行数:62,


示例27: BotMatch_Dismiss

/*=======================================================================================================================================BotMatch_Dismiss=======================================================================================================================================*/void BotMatch_Dismiss(bot_state_t *bs, bot_match_t *match) {	if (!TeamPlayIsOn()) {		return;	}	// if not addressed to this bot	if (!BotAddressedToBot(bs, match)) {		return;	}	bs->ltgtype = 0;	bs->lead_time = 0;	BotAI_BotInitialChat(bs, "dismissed", NULL);	trap_BotEnterChat(bs->cs, bs->client, CHAT_TEAM);}
开发者ID:ioid3-games,项目名称:ioid3-rtcw,代码行数:20,


示例28: BotVoiceChat_WantOnDefense

/*==================BotVoiceChat_WantOnDefense==================*/void BotVoiceChat_WantOnDefense(bot_state_t *bs, int playernum, int mode) {	char netname[MAX_NETNAME];	int preference;	preference = BotGetTeamMateTaskPreference(bs, playernum);	preference &= ~TEAMTP_ATTACKER;	preference |= TEAMTP_DEFENDER;	BotSetTeamMateTaskPreference(bs, playernum, preference);	//	EasyPlayerName(playernum, netname, sizeof(netname));	BotAI_BotInitialChat(bs, "keepinmind", netname, NULL);	BotEnterChat(bs->cs, playernum, CHAT_TELL);	BotVoiceChatOnly(bs, playernum, VOICECHAT_YES);	EA_Action(bs->playernum, ACTION_AFFIRMATIVE);}
开发者ID:KuehnhammerTobias,项目名称:ioid3-game,代码行数:20,


示例29: BotVoiceChat_Patrol

/*==================BotVoiceChat_Patrol==================*/void BotVoiceChat_Patrol(bot_state_t *bs, int playernum, int mode) {	//	bs->decisionmaker = playernum;	//	bs->ltgtype = 0;	bs->lead_time = 0;	bs->lastgoal_ltgtype = 0;	//	BotAI_BotInitialChat(bs, "dismissed", NULL);	BotEnterChat(bs->cs, playernum, CHAT_TELL);	BotVoiceChatOnly(bs, -1, VOICECHAT_ONPATROL);	//	BotSetTeamStatus(bs);	BotPrintTeamGoal(bs);}
开发者ID:KuehnhammerTobias,项目名称:ioid3-game,代码行数:20,


示例30: BotVoiceChat_WantOnOffense

/*==================BotVoiceChat_WantOnOffense==================*/void BotVoiceChat_WantOnOffense(bot_state_t *bs, int client, int mode) {	char netname[MAX_NETNAME];	int preference;	preference = BotGetTeamMateTaskPreference(bs, client);	preference &= ~TEAMTP_DEFENDER;	preference |= TEAMTP_ATTACKER;	BotSetTeamMateTaskPreference(bs, client, preference);	//	EasyClientName(client, netname, sizeof(netname));	BotAI_BotInitialChat(bs, "keepinmind", netname, NULL);	trap_BotEnterChat(bs->cs, client, CHAT_TELL);	BotVoiceChatOnly(bs, client, VOICECHAT_YES);	trap_EA_Action(bs->client, ACTION_AFFIRMATIVE);}
开发者ID:Mixone-FinallyHere,项目名称:SmokinGuns,代码行数:20,



注:本文中的BotAI_BotInitialChat函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ BotAI_Print函数代码示例
C++ Bopen函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。