本文整理汇总了C++中NETWORK_GetState函数的典型用法代码示例。如果您正苦于以下问题:C++ NETWORK_GetState函数的具体用法?C++ NETWORK_GetState怎么用?C++ NETWORK_GetState使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NETWORK_GetState函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DEFINE_ACTION_FUNCTION
DEFINE_ACTION_FUNCTION(AActor, A_SerpentMeleeAttack)
{
// [BB] This is server-side.
if (( NETWORK_GetState( ) == NETSTATE_CLIENT ) ||
( CLIENTDEMO_IsPlaying( )))
{
return;
}
if (!self->target)
{
return;
}
if (self->CheckMeleeRange ())
{
int damage = pr_serpentmeattack.HitDice (5);
P_DamageMobj (self->target, self, self, damage, NAME_Melee);
P_TraceBleed (damage, self->target, self);
S_Sound (self, CHAN_BODY, "SerpentMeleeHit", 1, ATTN_NORM);
// [BB] If we're the server, tell the clients to play the sound.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_SoundActor( self, CHAN_BODY, "SerpentMeleeHit", 1, ATTN_NORM );
}
if (pr_serpentmeattack() < 96)
{
CALL_ACTION(A_SerpentCheckForAttack, self);
}
}
示例2: chat_UnignorePlayer
//*****************************************************************************
//
// [RC] Undos "ignore".
//
void chat_UnignorePlayer( FCommandLine &argv, const ULONG ulPlayer )
{
// Print the explanation message.
if ( argv.argc( ) < 2 )
{
// Create a list of currently ignored players.
FString PlayersIgnored = "";
chat_GetIgnoredPlayers( PlayersIgnored );
if ( PlayersIgnored.Len( ))
Printf( "\\cgIgnored players: \\c-%s\n", PlayersIgnored.GetChars() );
else
Printf( "Un-ignores a certain player's chat messages.\nUsage: unignore <name>\n" );
return;
}
if ( ulPlayer == MAXPLAYERS )
Printf( "There isn't a player named %s\\c-.\n", argv[1] );
else if ( ( ulPlayer == (ULONG)consoleplayer ) && ( NETWORK_GetState( ) != NETSTATE_SERVER ) )
Printf( "You can't unignore yourself.\n" );
else if ( !players[ulPlayer].bIgnoreChat )
Printf( "You're not ignoring %s\\c-.\n", players[ulPlayer].userinfo.netname );
else
{
players[ulPlayer].bIgnoreChat = false;
players[ulPlayer].lIgnoreChatTicks = -1;
Printf( "%s\\c- will no longer be ignored.\n", players[ulPlayer].userinfo.netname );
// Notify the server so that others using this IP are also ignored.
if ( NETWORK_GetState( ) == NETSTATE_CLIENT )
CLIENTCOMMANDS_Ignore( ulPlayer, false );
}
}
示例3: DEFINE_ACTION_FUNCTION
DEFINE_ACTION_FUNCTION(AActor, A_GetHurt)
{
// [BB] The server handles this.
if (( NETWORK_GetState( ) == NETSTATE_CLIENT ) ||
( CLIENTDEMO_IsPlaying( )))
{
if (( self->ulNetworkFlags & NETFL_CLIENTSIDEONLY ) == false )
return;
}
self->flags4 |= MF4_INCOMBAT;
if ((pr_gethurt() % 5) == 0)
{
S_Sound (self, CHAN_VOICE, self->PainSound, 1, ATTN_NORM);
// [BB] If we're the server, tell clients to play the sound.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_SoundActor( self, CHAN_VOICE, S_GetName( self->PainSound ), 1, ATTN_NORM );
self->health--;
}
if (self->health <= 0)
{
self->Die (self->target, self->target);
}
}
示例4: chat_SetChatMode
//*****************************************************************************
//*****************************************************************************
//
void chat_SetChatMode( ULONG ulMode )
{
if ( ulMode < NUM_CHATMODES )
{
player_t *pPlayer = &players[consoleplayer];
g_ulChatMode = ulMode;
if ( ulMode != CHATMODE_NONE )
{
pPlayer->bChatting = true;
// Tell the server we're beginning to chat.
if ( NETWORK_GetState( ) == NETSTATE_CLIENT )
CLIENTCOMMANDS_StartChat( );
}
else
{
pPlayer->bChatting = false;
// Tell the server we're done chatting.
if ( NETWORK_GetState( ) == NETSTATE_CLIENT )
CLIENTCOMMANDS_EndChat( );
}
}
}
示例5: DEFINE_ACTION_FUNCTION
DEFINE_ACTION_FUNCTION(AActor, A_BruisAttack)
{
AActor *pMissile;
if (!self->target)
return;
if (self->CheckMeleeRange ())
{
int damage = (pr_bruisattack()%8+1)*10;
S_Sound (self, CHAN_WEAPON, "baron/melee", 1, ATTN_NORM);
// [BC] If we're the server, tell clients play this sound.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_SoundActor( self, CHAN_WEAPON, "baron/melee", 1, ATTN_NORM );
P_DamageMobj (self->target, self, self, damage, NAME_Melee);
P_TraceBleed (damage, self->target, self);
return;
}
// launch a missile
pMissile = P_SpawnMissile (self, self->target, PClass::FindClass("BaronBall"));
// [BC] If we're the server, tell clients to spawn the missile.
if (( NETWORK_GetState( ) == NETSTATE_SERVER ) && ( pMissile ))
SERVERCOMMANDS_SpawnMissile( pMissile );
}
示例6: DEFINE_ACTION_FUNCTION
DEFINE_ACTION_FUNCTION(AActor, A_CPosRefire)
{
// keep firing unless target got out of sight
A_FaceTarget (self);
// [BC] Client chaingunners continue to fire until told by the server to stop.
if (( NETWORK_GetState( ) == NETSTATE_CLIENT ) ||
( CLIENTDEMO_IsPlaying( )))
{
return;
}
if (pr_cposrefire() < 40)
return;
if (!self->target
|| P_HitFriend (self)
|| self->target->health <= 0
|| !P_CheckSight (self, self->target, SF_SEEPASTBLOCKEVERYTHING|SF_SEEPASTSHOOTABLELINES))
{
// [BC] If we're the server, tell clients to update this thing's state.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_SetThingState( self, STATE_SEE );
self->SetState (self->SeeState);
}
}
示例7: DUEL_SetState
//*****************************************************************************
//
void DUEL_SetState( DUELSTATE_e State )
{
if ( g_DuelState == State )
return;
g_DuelState = State;
// Tell clients about the state change.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_SetGameModeState( State );
switch ( State )
{
case DS_WINSEQUENCE:
// If we've gotten to a win sequence, we've completed a duel.
if ( NETWORK_GetState( ) != NETSTATE_CLIENT )
DUEL_SetNumDuels( g_ulNumDuels + 1 );
break;
case DS_WAITINGFORPLAYERS:
// Zero out the countdown ticker.
DUEL_SetCountdownTicks( 0 );
break;
}
}
示例8: DUEL_DoWinSequence
//*****************************************************************************
//
void DUEL_DoWinSequence( ULONG ulPlayer )
{
ULONG ulIdx;
// Put the duel state in the win sequence state.
if ( NETWORK_GetState( ) != NETSTATE_CLIENT )
DUEL_SetState( DS_WINSEQUENCE );
// Tell clients to do the win sequence.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_DoGameModeWinSequence( ulPlayer );
if ( NETWORK_GetState( ) != NETSTATE_SERVER )
{
char szString[64];
DHUDMessageFadeOut *pMsg;
screen->SetFont( BigFont );
sprintf( szString, "%s \\c-WINS!", players[ulPlayer].userinfo.netname );
V_ColorizeString( szString );
// Display "%s WINS!" HUD message.
pMsg = new DHUDMessageFadeOut( szString,
160.4f,
75.0f,
320,
200,
CR_RED,
3.0f,
2.0f );
StatusBar->AttachMessage( pMsg, 'CNTR' );
screen->SetFont( SmallFont );
}
// Award a victory or perfect medal to the winner.
if ( NETWORK_GetState( ) != NETSTATE_CLIENT )
{
LONG lMedal;
// If the duel loser doesn't have any frags, give the winner a "Perfect!".
if ( players[g_ulDuelLoser].fragcount <= 0 )
lMedal = MEDAL_PERFECT;
else
lMedal = MEDAL_VICTORY;
// Give the player the medal.
MEDAL_GiveMedal( ulPlayer, lMedal );
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_GivePlayerMedal( ulPlayer, lMedal );
}
for ( ulIdx = 0; ulIdx < MAXPLAYERS; ulIdx++ )
{
if (( playeringame[ulIdx] ) && ( players[ulIdx].pSkullBot ))
players[ulIdx].pSkullBot->PostEvent( BOTEVENT_DUEL_WINSEQUENCE );
}
}
示例9: DEFINE_ACTION_FUNCTION
DEFINE_ACTION_FUNCTION(AActor, A_WizAtk3)
{
AActor *mo;
CALL_ACTION(A_GhostOff, self);
// [BB] This is server-side, the client only needs to run A_GhostOff.
if (( NETWORK_GetState( ) == NETSTATE_CLIENT ) ||
( CLIENTDEMO_IsPlaying( )))
{
return;
}
if (!self->target)
{
return;
}
S_Sound (self, CHAN_WEAPON, self->AttackSound, 1, ATTN_NORM);
// [BB] If we're the server, tell the clients to play the sound.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
SERVERCOMMANDS_SoundActor( self, CHAN_WEAPON, S_GetName( self->AttackSound ), 1, ATTN_NORM );
if (self->CheckMeleeRange())
{
int damage = pr_wizatk3.HitDice (4);
P_DamageMobj (self->target, self, self, damage, NAME_Melee);
P_TraceBleed (damage, self->target, self);
return;
}
const PClass *fx = PClass::FindClass("WizardFX1");
mo = P_SpawnMissile (self, self->target, fx);
if (mo != NULL)
{
AActor *missile1 = P_SpawnMissileAngle(self, fx, mo->angle-(ANG45/8), mo->velz);
AActor *missile2 = P_SpawnMissileAngle(self, fx, mo->angle+(ANG45/8), mo->velz);
// [BB] If we're the server, tell the clients to spawn the missiles.
if ( NETWORK_GetState( ) == NETSTATE_SERVER )
{
SERVERCOMMANDS_SpawnMissile( mo );
if ( missile1 )
SERVERCOMMANDS_SpawnMissile( missile1 );
if ( missile2 )
SERVERCOMMANDS_SpawnMissile( missile2 );
}
}
}
示例10: chat_IgnorePlayer
//*****************************************************************************
//
// [RC] Lets clients ignore an annoying player's chat messages.
//
void chat_IgnorePlayer( FCommandLine &argv, const ULONG ulPlayer )
{
// Print the explanation message.
if ( argv.argc( ) < 2 )
{
// Create a list of currently ignored players.
FString PlayersIgnored;
chat_GetIgnoredPlayers( PlayersIgnored );
if ( PlayersIgnored.Len( ))
Printf( "\\cgIgnored players: \\c-%s\nUse \"unignore\" or \"unignore_idx\" to undo.\n", PlayersIgnored.GetChars() );
else
Printf( "Ignores a certain player's chat messages.\nUsage: ignore <name> [duration, in minutes]\n" );
return;
}
LONG lTicks = -1;
const LONG lArgv2 = ( argv.argc( ) >= 3 ) ? atoi( argv[2] ) : -1;
// Did the user specify a set duration?
if ( ( lArgv2 > 0 ) && ( lArgv2 < LONG_MAX / ( TICRATE * MINUTE )))
lTicks = lArgv2 * TICRATE * MINUTE;
if ( ulPlayer == MAXPLAYERS )
Printf( "There isn't a player named %s\\c-.\n", argv[1] );
else if ( ( ulPlayer == (ULONG)consoleplayer ) && ( NETWORK_GetState( ) != NETSTATE_SERVER ) )
Printf( "You can't ignore yourself.\n" );
else if ( players[ulPlayer].bIgnoreChat && ( players[ulPlayer].lIgnoreChatTicks == lTicks ))
Printf( "You're already ignoring %s\\c-.\n", players[ulPlayer].userinfo.netname );
else
{
players[ulPlayer].bIgnoreChat = true;
players[ulPlayer].lIgnoreChatTicks = lTicks;
Printf( "%s\\c- will now be ignored", players[ulPlayer].userinfo.netname );
if ( lTicks > 0 )
Printf( ", for %d minutes", static_cast<int>(lArgv2));
Printf( ".\n" );
// Add a helpful note about bots.
if ( players[ulPlayer].bIsBot )
Printf( "Note: you can disable all bot chat by setting the CVAR bot_allowchat to false.\n" );
// Notify the server so that others using this IP are also ignored.
if ( NETWORK_GetState( ) == NETSTATE_CLIENT )
CLIENTCOMMANDS_Ignore( ulPlayer, true, lTicks );
}
}
示例11: DragonSeek
static void DragonSeek (AActor *actor, angle_t thresh, angle_t turnMax)
{
int dir;
int dist;
angle_t delta;
angle_t angle;
AActor *target;
int i;
angle_t bestAngle;
angle_t angleToSpot, angleToTarget;
AActor *mo;
// [BB] Let the server do this.
if (( NETWORK_GetState( ) == NETSTATE_CLIENT ) ||
( CLIENTDEMO_IsPlaying( )))
{
return;
}
target = actor->tracer;
if(target == NULL)
{
return;
}
dir = P_FaceMobj (actor, target, &delta);
if (delta > thresh)
{
delta >>= 1;
if (delta > turnMax)
{
delta = turnMax;
}
}
示例12: Use
bool ATeleporterBeacon::Use (bool pickup)
{
AInventory *drop;
// [BC] This is handled server-side.
if (( NETWORK_GetState( ) == NETSTATE_CLIENT ) ||
( CLIENTDEMO_IsPlaying( )))
{
return ( true );
}
// Increase the amount by one so that when DropInventory decrements it,
// the actor will have the same number of beacons that he started with.
// When we return to UseInventory, it will take care of decrementing
// Amount again and disposing of this item if there are no more.
Amount++;
drop = Owner->DropInventory (this);
if (drop == NULL)
{
Amount--;
return false;
}
else
{
drop->SetState(drop->FindState(NAME_Drop));
drop->target = Owner;
return true;
}
}