本文整理汇总了C++中IBattle::GetFounder方法的典型用法代码示例。如果您正苦于以下问题:C++ IBattle::GetFounder方法的具体用法?C++ IBattle::GetFounder怎么用?C++ IBattle::GetFounder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IBattle
的用法示例。
在下文中一共展示了IBattle::GetFounder方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnUserQuit
void ServerEvents::OnUserQuit(const std::string& nick)
{
slLogDebugFunc("");
try {
User& user = m_serv.GetUser(nick);
IBattle* userbattle = user.GetBattle();
if (userbattle) {
int battleid = userbattle->GetID();
try {
if (&userbattle->GetFounder() == &user) {
for (int i = 0; i < int(userbattle->GetNumUsers()); i++) {
User& battleuser = userbattle->GetUser(i);
OnUserLeftBattle(battleid, battleuser.GetNick());
}
OnBattleClosed(battleid);
} else
OnUserLeftBattle(battleid, user.GetNick());
} catch (...) {
}
}
ui().OnUserOffline(user);
m_serv._RemoveUser(nick);
if (useractions().DoActionOnUser(UserActions::ActNotifLogin, TowxString(nick)))
actNotifBox(SL_MAIN_ICON, TowxString(nick) + _(" just went offline"));
} catch (std::runtime_error& except) {
}
}
示例2: FilterBattle
bool BattleListFilter::FilterBattle(IBattle& battle)
{
if (!m_activ)
return true;
if (m_filter_highlighted->IsChecked() |
m_filter_status_start->IsChecked() |
m_filter_status_locked->IsChecked() |
m_filter_status_pass->IsChecked() |
m_filter_status_full->IsChecked() |
m_filter_status_open->IsChecked()) {
bool bResult = false;
if (m_filter_highlighted->IsChecked()) {
try {
wxString host = TowxString(battle.GetFounder().GetNick());
bResult = useractions().DoActionOnUser(UserActions::ActHighlight, host);
if (!bResult)
for (unsigned int i = 0; i < battle.GetNumUsers(); ++i) {
wxString name = TowxString(battle.GetUser(i).GetNick());
if (useractions().DoActionOnUser(UserActions::ActHighlight, name)) {
bResult = true;
break;
}
}
} catch (...) {
}
}
//Battle Status Check
if (m_filter_status_start->GetValue())
bResult |= battle.GetInGame();
if (m_filter_status_locked->GetValue())
bResult |= battle.IsLocked();
if (m_filter_status_pass->GetValue())
bResult |= battle.IsPassworded();
if (m_filter_status_full->GetValue())
bResult |= battle.IsFull();
if (m_filter_status_open->GetValue())
bResult |= (!battle.IsPassworded() && !battle.IsLocked() && !battle.GetInGame() && !battle.IsFull());
if (bResult == false)
return false;
}
//Rank Check
/** @fixme Is `nonsenserank' useful, or can it be removed? Why is
* it here in the first place?
*/
/* `Nonsense', in this context, apparently means that the battle
* requires rank 100, exactly, AND we're filtering for values less
* than some number.
*/
bool nonsenserank = (m_filter_rank_mode == BUTTON_MODE_SMALLER) && (battle.GetRankNeeded() == 100);
if (m_filter_rank_choice_value != -1 /* don't have "all" selected */
&& !nonsenserank /* Nonsensical `nonsenserank' flag isn't set. */
&& !_IntCompare(battle.GetRankNeeded(), m_filter_rank_choice_value, m_filter_rank_mode))
return false;
//Player Check
if ((m_filter_player_choice_value != -1) && !_IntCompare(battle.GetNumUsers() - battle.GetSpectators(), m_filter_player_choice_value, m_filter_player_mode))
return false;
//MaxPlayer Check
if ((m_filter_maxplayer_choice_value != -1) && !_IntCompare(battle.GetMaxPlayers(), m_filter_maxplayer_choice_value, m_filter_maxplayer_mode))
return false;
//Spectator Check
if ((m_filter_spectator_choice_value != -1) && !_IntCompare(battle.GetSpectators(), m_filter_spectator_choice_value, m_filter_spectator_mode))
return false;
//Only Maps i have Check
if (m_filter_map_show->GetValue() && !battle.MapExists())
return false;
//Only Mods i have Check
if (m_filter_mod_show->GetValue() && !battle.GameExists())
return false;
//Strings Plain Text & RegEx Check (Case insensitiv)
//Description:
if (!StringMatches(TowxString(battle.GetDescription()),
m_filter_description_edit->GetValue(),
m_filter_description_expression))
return false;
//Host:
try { //!TODO
if (!StringMatches(TowxString(battle.GetFounder().GetNick()),
m_filter_host_edit->GetValue(),
m_filter_host_expression))
//.........这里部分代码省略.........
示例3: WriteScriptTxt
//.........这里部分代码省略.........
{
tdf.Append( _T("NumPlayers"), battle.GetNumPlayers() -1 );
tdf.Append( _T("NumUsers"), battle.GetNumUsers() -1 );
}
else
{
tdf.Append( _T("NumPlayers"), battle.GetNumPlayers() );
tdf.Append( _T("NumUsers"), battle.GetNumUsers() );
}
tdf.AppendLineBreak();
unsigned int NumUsers = battle.GetNumUsers();
typedef std::map<int, int> ProgressiveTeamsVec;
typedef ProgressiveTeamsVec::iterator ProgressiveTeamsVecIter;
ProgressiveTeamsVec teams_to_sorted_teams; // original team -> progressive team
int free_team = 0;
std::map<User*, int> player_to_number; // player -> ordernumber
srand ( time(NULL) );
for ( unsigned int i = 0; i < NumUsers; i++ )
{
User& user = battle.GetUser( i );
UserBattleStatus& status = user.BattleStatus();
if ( !status.spectator )
{
ProgressiveTeamsVecIter itor = teams_to_sorted_teams.find ( status.team );
if ( itor == teams_to_sorted_teams.end() )
{
teams_to_sorted_teams[status.team] = free_team;
free_team++;
}
}
if ( battle.IsProxy() && ( user.GetNick() == battle.GetFounder().GetNick() ) ) continue;
if ( status.IsBot() ) continue;
tdf.EnterSection( _T("PLAYER") + TowxString( i ) );
tdf.Append( _T("Name"), user.GetNick() );
tdf.Append( _T("CountryCode"), user.GetCountry().Lower());
tdf.Append( _T("Spectator"), status.spectator );
tdf.Append( _T("Rank"), (int)user.GetRank() );
tdf.Append( _T("IsFromDemo"), int(status.isfromdemo) );
if ( !status.spectator )
{
tdf.Append( _T("Team"), teams_to_sorted_teams[status.team] );
}
else
{
int speccteam = 0;
if ( teams_to_sorted_teams.size() != 0 ) speccteam = rand() % teams_to_sorted_teams.size();
tdf.Append( _T("Team"), speccteam );
}
tdf.LeaveSection();
player_to_number[&user] = i;
}
if ( usync().VersionSupports( IUnitSync::USYNC_GetSkirmishAI ) )
{
for ( unsigned int i = 0; i < NumUsers; i++ )
{
User& user = battle.GetUser( i );
UserBattleStatus& status = user.BattleStatus();
if ( !status.IsBot() ) continue;
tdf.EnterSection( _T("AI") + TowxString( i ) );
tdf.Append( _T("Name"), user.GetNick() ); // AI's nick;
tdf.Append( _T("ShortName"), status.aishortname ); // AI libtype
tdf.Append( _T("Version"), status.aiversion ); // AI libtype version
tdf.Append( _T("Team"), teams_to_sorted_teams[status.team] );
示例4: WriteScriptTxt
//.........这里部分代码省略.........
tdf.LeaveSection();
tdf.AppendLineBreak();
if ( battle.IsProxy() ) {
tdf.Append("NumPlayers", battle.GetNumPlayers() -1 );
tdf.Append("NumUsers", battle.GetNumUsers() -1 );
} else {
tdf.Append("NumPlayers", battle.GetNumPlayers() );
tdf.Append("NumUsers", battle.GetNumUsers() );
}
tdf.AppendLineBreak();
unsigned int NumUsers = battle.GetNumUsers();
typedef std::map<int, int> ProgressiveTeamsVec;
typedef ProgressiveTeamsVec::iterator ProgressiveTeamsVecIter;
ProgressiveTeamsVec teams_to_sorted_teams; // original team -> progressive team
int free_team = 0;
std::map<User*, int> player_to_number; // player -> ordernumber
srand ( time(NULL) );
for ( unsigned int i = 0; i < NumUsers; i++ ) {
User& user = battle.GetUser( i );
UserBattleStatus& status = user.BattleStatus();
if ( !status.spectator ) {
ProgressiveTeamsVecIter itor = teams_to_sorted_teams.find ( status.team );
if ( itor == teams_to_sorted_teams.end() ) {
teams_to_sorted_teams[status.team] = free_team;
free_team++;
}
}
if ( battle.IsProxy() && ( user.GetNick() == battle.GetFounder().GetNick() ) ) continue;
if ( status.IsBot() ) continue;
tdf.EnterSection(stdprintf("PLAYER%d", i));
tdf.Append("Name", user.GetNick() );
tdf.Append("CountryCode", STD_STRING(TowxString(user.GetCountry()).Lower()));
tdf.Append("Spectator", status.spectator );
tdf.Append("Rank", (int)user.GetRank() );
tdf.Append("IsFromDemo", int(status.isfromdemo) );
if ( !status.scriptPassword.empty() ) {
tdf.Append("Password", status.scriptPassword );
}
if ( !status.spectator ) {
tdf.Append("Team", teams_to_sorted_teams[status.team] );
} else {
int speccteam = 0;
if ( !teams_to_sorted_teams.empty() ) speccteam = rand() % teams_to_sorted_teams.size();
tdf.Append("Team", speccteam );
}
tdf.LeaveSection();
player_to_number[&user] = i;
}
for ( unsigned int i = 0; i < NumUsers; i++ ) {
User& user = battle.GetUser( i );
UserBattleStatus& status = user.BattleStatus();
if ( !status.IsBot() ) continue;
tdf.EnterSection(stdprintf("AI%d", i));
tdf.Append("Name", user.GetNick()); // AI's nick;
tdf.Append("ShortName", status.aishortname ); // AI libtype
tdf.Append("Version", status.aiversion ); // AI libtype version
tdf.Append("Team", teams_to_sorted_teams[status.team] );
tdf.Append("IsFromDemo", int(status.isfromdemo) );
tdf.Append("Host", player_to_number[&battle.GetUser( status.owner )] );
tdf.EnterSection("Options");