本文整理汇总了C++中ClientName函数的典型用法代码示例。如果您正苦于以下问题:C++ ClientName函数的具体用法?C++ ClientName怎么用?C++ ClientName使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ClientName函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindClientByName
/*
=======================================================================================================================================
FindClientByName
=======================================================================================================================================
*/
int FindClientByName(char *name) {
int i;
char buf[MAX_INFO_STRING];
static int maxclients;
if (!maxclients) {
maxclients = trap_Cvar_VariableIntegerValue("sv_maxclients");
}
for (i = 0; i < maxclients && i < MAX_CLIENTS; i++) {
ClientName(i, buf, sizeof(buf));
if (!Q_stricmp(buf, name)) {
return i;
}
}
for (i = 0; i < maxclients && i < MAX_CLIENTS; i++) {
ClientName(i, buf, sizeof(buf));
if (stristr(buf, name)) {
return i;
}
}
return -1;
}
示例2: FindEnemyByName
/*
=======================================================================================================================================
FindEnemyByName
=======================================================================================================================================
*/
int FindEnemyByName(bot_state_t *bs, char *name) {
int i;
char buf[MAX_INFO_STRING];
static int maxclients;
if (!maxclients) {
maxclients = trap_Cvar_VariableIntegerValue("sv_maxclients");
}
for (i = 0; i < maxclients && i < MAX_CLIENTS; i++) {
if (BotSameTeam(bs, i)) {
continue;
}
ClientName(i, buf, sizeof(buf));
if (!Q_stricmp(buf, name)) {
return i;
}
}
for (i = 0; i < maxclients && i < MAX_CLIENTS; i++) {
if (BotSameTeam(bs, i)) {
continue;
}
ClientName(i, buf, sizeof(buf));
if (stristr(buf, name)) {
return i;
}
}
return -1;
}
示例3: server
Bridge::Bridge(ulen num_clients)
: server(*this),
clients(DoReserve,num_clients),
masters(DoReserve,num_clients+1),
msem("Bridge"),
mutex("Bridge"),
running(false)
{
masters.append_fill(server,ServerName());
for(ulen i=0; i<num_clients ;i++)
{
Client *client=clients.append_fill(*this,i+1);
masters.append_fill(*client,ClientName(i+1).str);
}
drop_rate=0;
drop_den=1;
to_server_format.prefix=11;
to_server_format.max_data=1100;
to_server_format.suffix=10;
to_client_format.prefix=13;
to_client_format.max_data=1000;
to_client_format.suffix=15;
}
示例4: BotSetTeamMateCTFPreference
/*
==================
BotGetTeamMateCTFPreference
==================
*/
void BotSetTeamMateCTFPreference(bot_state_t *bs, int teammate, int preference) {
char teammatename[MAX_NETNAME];
ctftaskpreferences[teammate].preference = preference;
ClientName(teammate, teammatename, sizeof(teammatename));
strcpy(ctftaskpreferences[teammate].name, teammatename);
}
示例5: BotAddressedToBot
/*
==================
BotAddressedToBot
==================
*/
int BotAddressedToBot(bot_state_t *bs, bot_match_t *match) {
char addressedto[MAX_MESSAGE_SIZE];
char netname[MAX_MESSAGE_SIZE];
//char name[MAX_MESSAGE_SIZE];
char botname[128];
int client;
//char buf[MAX_MESSAGE_SIZE];
trap_BotMatchVariable(match, NETNAME, netname, sizeof(netname));
client = ClientOnSameTeamFromName(bs, netname);
if (client < 0) return qfalse;
//if the message is addressed to someone
if (match->subtype & ST_ADDRESSED) {
// compare addressee with botname
trap_BotMatchVariable(match, ADDRESSEE, addressedto, sizeof(addressedto));
ClientName(bs->client, botname, 128);
// is that me?
if ( strlen(addressedto) && (stristr(botname, addressedto)) ){
return qtrue;
}
// no its not!
if( bot_developer.integer & AIDBG_CHAT){
//Com_sprintf(buf, sizeof(buf), "not addressed to me but %s", addressedto);
//trap_EA_Say(bs->client, buf);
}
return qfalse;
}
// not addressed, take it
return qtrue;
}
示例6: 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;
}
示例7: FindHumanTeamLeader
/*
==================
FindHumanTeamLeader
==================
*/
int FindHumanTeamLeader(bot_state_t *bs)
{
int i;
for (i = 0; i < MAX_CLIENTS; i++)
{
if ( g_entities[i].inuse )
{
// if this player is not a bot
if ( !(g_entities[i].r.svFlags & SVF_BOT) )
{
// if this player is ok with being the leader
if (!notleader[i])
{
// if this player is on the same team
if ( BotSameTeam(bs, i) )
{
ClientName(i, bs->teamleader, sizeof(bs->teamleader));
// if not yet ordered to do anything
if ( !BotSetLastOrderedTask(bs) )
{
// go on defense by default
BotVoiceChat_Defend(bs, i, SAY_TELL);
}
return qtrue;
}
}
}
}
}
return qfalse;
}
示例8: BotMatch_StopTeamLeaderShip
/*
=======================================================================================================================================
BotMatch_StopTeamLeaderShip
=======================================================================================================================================
*/
void BotMatch_StopTeamLeaderShip(bot_state_t *bs, bot_match_t *match) {
int client;
char teammate[MAX_MESSAGE_SIZE];
char netname[MAX_MESSAGE_SIZE];
if (!TeamPlayIsOn()) {
return;
}
// get the team mate that stops being the team leader
trap_BotMatchVariable(match, TEAMMATE, teammate, sizeof(teammate));
// if chats for him or herself
if (match->subtype & ST_I) {
trap_BotMatchVariable(match, NETNAME, netname, sizeof(netname));
client = FindClientByName(netname);
}
// chats for someone else
else {
client = FindClientByName(teammate);
}
if (client >= 0) {
if (!Q_stricmp(bs->teamleader, ClientName(client, netname, sizeof(netname)))) {
bs->teamleader[0] = '\0';
}
}
}
示例9: BotVoiceChat_StartLeader
/*
==================
BotVoiceChat_StartLeader
==================
*/
void BotVoiceChat_StartLeader(bot_state_t *bs, int client, int mode) {
/* LQ3A */
UNREFERENCED_PARAMETER(mode);
ClientName(client, bs->teamleader, sizeof(bs->teamleader));
}
示例10: 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;
}
示例11: 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;
}
示例12: BotAddressedToBot
/*
==================
BotAddressedToBot
==================
*/
int BotAddressedToBot( bot_state_t *bs, bot_match_t *match ) {
char addressedto[MAX_MESSAGE_SIZE];
char netname[MAX_MESSAGE_SIZE];
char name[MAX_MESSAGE_SIZE];
char botname[128];
int client;
bot_match_t addresseematch;
trap_BotMatchVariable( match, NETNAME, netname, sizeof( netname ) );
client = ClientFromName( netname );
if ( client < 0 ) {
return qfalse;
}
if ( !BotSameTeam( bs, client ) ) {
return qfalse;
}
//if the message is addressed to someone
if ( match->subtype & ST_ADDRESSED ) {
trap_BotMatchVariable( match, ADDRESSEE, addressedto, sizeof( addressedto ) );
//the name of this bot
ClientName( bs->client, botname, 128 );
//
while ( trap_BotFindMatch( addressedto, &addresseematch, MTCONTEXT_ADDRESSEE ) ) {
if ( addresseematch.type == MSG_EVERYONE ) {
return qtrue;
} else if ( addresseematch.type == MSG_MULTIPLENAMES ) {
trap_BotMatchVariable( &addresseematch, TEAMMATE, name, sizeof( name ) );
if ( strlen( name ) ) {
if ( stristr( botname, name ) ) {
return qtrue;
}
if ( stristr( bs->subteam, name ) ) {
return qtrue;
}
}
trap_BotMatchVariable( &addresseematch, MORE, addressedto, MAX_MESSAGE_SIZE );
} else {
trap_BotMatchVariable( &addresseematch, TEAMMATE, name, MAX_MESSAGE_SIZE );
if ( strlen( name ) ) {
if ( stristr( botname, name ) ) {
return qtrue;
}
if ( stristr( bs->subteam, name ) ) {
return qtrue;
}
}
break;
}
}
//Com_sprintf(buf, sizeof(buf), "not addressed to me but %s", addressedto);
//trap_EA_Say(bs->client, buf);
return qfalse;
} else {
//make sure not everyone reacts to this message
if ( random() > (float ) 1.0 / ( NumPlayersOnSameTeam( bs ) - 1 ) ) {
return qfalse;
}
}
return qtrue;
}
示例13: BotMatch_WhatIsMyCommand
/*
==================
BotMatch_WhatIsMyCommand
==================
*/
void BotMatch_WhatIsMyCommand(bot_state_t *bs, bot_match_t *match) {
char netname[MAX_NETNAME];
ClientName(bs->client, netname, sizeof(netname));
if (Q_stricmp(netname, bs->teamleader) != 0) return;
bs->forceorders = qtrue;
}
示例14: BotMatch_StartTeamLeaderShip
/*
=======================================================================================================================================
BotMatch_StartTeamLeaderShip
=======================================================================================================================================
*/
void BotMatch_StartTeamLeaderShip(bot_state_t *bs, bot_match_t *match) {
int client;
char teammate[MAX_MESSAGE_SIZE];
if (!TeamPlayIsOn()) {
return;
}
// if chats for him or herself
if (match->subtype & ST_I) {
// get the team mate that will be the team leader
trap_BotMatchVariable(match, NETNAME, teammate, sizeof(teammate));
strncpy(bs->teamleader, teammate, sizeof(bs->teamleader));
bs->teamleader[sizeof(bs->teamleader) - 1] = '\0';
}
// chats for someone else
else {
// get the team mate that will be the team leader
trap_BotMatchVariable(match, TEAMMATE, teammate, sizeof(teammate));
client = FindClientByName(teammate);
if (client >= 0) {
ClientName(client, bs->teamleader, sizeof(bs->teamleader));
}
}
}
示例15: BotGetTeamMateCTFPreference
/*
==================
BotGetTeamMateCTFPreference
==================
*/
int BotGetTeamMateCTFPreference(bot_state_t *bs, int teammate) {
char teammatename[MAX_NETNAME];
if (!ctftaskpreferences[teammate].preference) return 0;
ClientName(teammate, teammatename, sizeof(teammatename));
if (Q_stricmp(teammatename, ctftaskpreferences[teammate].name)) return 0;
return ctftaskpreferences[teammate].preference;
}