本文整理汇总了C++中aithread类的典型用法代码示例。如果您正苦于以下问题:C++ aithread类的具体用法?C++ aithread怎么用?C++ aithread使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了aithread类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: execute
bool Enter_Transport::execute(aithread &thread) const
{
if ( this->getOpcode() == AISCRIPT::Enum::ENTER_BUNKER || this->getOpcode() == AISCRIPT::Enum::ENTER_TRANSPORT )
{
Unitset unitsForTrans( Broodwar->getUnitsInRectangle(thread.getLocation().topLeft, thread.getLocation().bottomRight,
this->getOpcode() == AISCRIPT::Enum::ENTER_BUNKER ? bunkerProc : transProc) );
// Iterate the units that are to enter the bunkers
for ( auto u : unitsForTrans )
{
// Find a bunker closest to the current unit that has space available
Unit pClosest = u->getClosestUnit( (this->getOpcode() == AISCRIPT::Enum::ENTER_BUNKER ? GetType == UnitTypes::Terran_Bunker : GetType != UnitTypes::Terran_Bunker) &&
IsTransport &&
GetPlayer == Broodwar->self() &&
SpaceRemaining >= u->getType().spaceRequired() );
if ( pClosest ) // If a bunker was found
u->rightClick(pClosest);
}
}
else if ( this->getOpcode() == AISCRIPT::Enum::EXIT_TRANSPORT )
{
// Normally we are supposed to check the type here, but we don't need to save processing time and can let BWAPI sort it out
Broodwar->getUnitsInRectangle(thread.getLocation().topLeft, thread.getLocation().bottomRight).unloadAll();
}
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:30,代码来源:Enter_Transport.cpp
示例2: execute
bool Killable::execute(aithread &thread) const
{
thread.setFlags(AI_THREAD_KILLABLE);
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:8,代码来源:Killable.cpp
示例3: execute
bool Wait_FinishAttack::execute(aithread &thread) const
{
// Debug
thread.saveDebug(Text::Red, this->getOpcode());
// Check if AI is attacking
// if ( AIIsAttacking )
{
return thread.noretry();
}
return thread.retry();
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:12,代码来源:Wait_FinishAttack.cpp
示例4: execute
bool Wait_Upgrades::execute(aithread &thread) const
{
// Debug
thread.saveDebug(Text::Green, this->getOpcode());
// If upgrades are finished, then move on to next opcode
if ( MainController.getFlags() & CONTROLLER_UPGRADES_FINISHED )
return thread.noretry();
// Otherwise retry this opcode
return thread.retry();
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:12,代码来源:Wait_Upgrades.cpp
示例5: execute
bool Harass_Factor::execute(aithread &thread) const
{
// Parameters
WORD wUnknown;
thread.readTuple( std::tie( wUnknown ) );
// HarassFactor(wUnk);
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%u", wUnknown);
return true;
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:12,代码来源:Harass_Factor.cpp
示例6: execute
bool Allies_Watch::execute(aithread &thread) const
{
// Params
BYTE bExpansionId;
WORD wBlock;
thread.readTuple( std::tie(bExpansionId, wBlock) );
// @TODO
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%u %04X", bExpansionId, wBlock);
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:13,代码来源:Allies_Watch.cpp
示例7: execute
bool DefenseUse::execute(aithread &thread) const
{
// Parameters
BYTE bCount;
WORD wUnitType;
thread.readTuple( std::tie(bCount, wUnitType) );
MainController.DefenseUse(this->getOpcode() - AISCRIPT::Enum::DEFENSEUSE_GG, bCount, wUnitType);
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode(), "%u %s", bCount, AISCRIPT::getUnitName(wUnitType) );
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:13,代码来源:DefenseUse.cpp
示例8: execute
bool Nuke_Rate::execute(aithread &thread) const
{
// Parameters
BYTE bNukeRate;
thread.readTuple( std::tie( bNukeRate ) );
// Assign to controller
MainController.bNukeRate = bNukeRate;
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:13,代码来源:Nuke_Rate.cpp
示例9: execute
bool Default_Min::execute(aithread &thread) const
{
// Parameters
BYTE bDefaultMin;
thread.readTuple( std::tie( bDefaultMin ) );
// Assign to controller
MainController.bDefaultMin = bDefaultMin;
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:13,代码来源:Default_Min.cpp
示例10: execute
bool Guard_Resources::execute(aithread &thread) const
{
// Retrieve parameters
WORD wUnitType;
thread.readTuple( std::tie(wUnitType) );
// Execution
// GuardResources(wType);
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%s", AISCRIPT::getUnitName(wUnitType));
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:13,代码来源:Guard_Resources.cpp
示例11: execute
bool Panic::execute(aithread &thread) const
{
// Retrieve parameters
WORD wOffset;
thread.readTuple( std::tie(wOffset) );
// Set panic block
MainController.wPanicBlock = wOffset;
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode(), "p_%04X", wOffset);
return true;
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:13,代码来源:Panic.cpp
示例12: execute
bool Place_Guard::execute(aithread &thread) const
{
// Retrieve parameters
WORD wUnitType;
BYTE bGuardType;
thread.readTuple( std::tie(wUnitType, bGuardType) );
// Execution
// this->pTown->PlaceGuard(bGuardType, wUnitType);
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%s %u", AISCRIPT::getUnitName(wUnitType), bGuardType);
return true;
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:14,代码来源:Place_Guard.cpp
示例13: execute
bool Move_DT::execute(aithread &thread) const
{
// Execute
Unitset myUnits( Broodwar->self()->getUnits() );
// NOTE: Not actual behaviour. Needs special AI Control & Captain assignment.
// However this command is not important and serves little purpose.
myUnits.erase_if(!((GetType == UnitTypes::Protoss_Dark_Templar || GetType == UnitTypes::Hero_Dark_Templar) && Exists && IsCompleted));
myUnits.move( thread.getLocation().center() );
// Debug and return
thread.saveDebug(Text::Yellow, this->getOpcode());
return true;
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:14,代码来源:Move_DT.cpp
示例14: execute
bool Build::execute(aithread &thread) const
{
// Retrieve parameters
BYTE bBuildCount, bPriority;
WORD wUnitType;
thread.readTuple( std::tie(bBuildCount, wUnitType, bPriority) );
//if ( bBuildCount <= 30 && wBuildType < UnitTypes::None )
// this->pTown->MacroManagerSet(MACRO_BUILD, bBuildCount, wBuildType, bPriority, false);
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode(), "%u %s %u", bBuildCount, AISCRIPT::getUnitName(wUnitType), bPriority);
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:14,代码来源:Build.cpp
示例15: execute
bool Define_Max::execute(aithread &thread) const
{
// Retrieve parameters
BYTE bCount;
WORD wType;
thread.readTuple( std::tie(bCount, wType) );
if ( wType < UnitTypes::None )
MainController.bDefineMax[wType] = bCount;
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode(), "%u %s", bCount, AISCRIPT::getUnitName(wType) );
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:14,代码来源:Define_Max.cpp
示例16: execute
bool Player_Ally::execute(aithread &thread) const
{
// @TODO: BWAPI: Unitset::getPlayers for retrieving set of players owning the units, not important
/* can become
unitsInRect( bw->getUnitsInRectangle(location.topLeft, location.bottomRight, GetPlayer != self) ).getPlayers().setAlliance(bOpcode == AISCRIPT::Enum::PLAYER_ALLY);
*/
// Set the alliance of all players who own units inside the thread's execution location
Unitset units( Broodwar->getUnitsInRectangle(thread.getLocation().topLeft, thread.getLocation().bottomRight, GetPlayer != Broodwar->self()) );
for ( auto u = units.begin(); u != units.end(); ++u )
Broodwar->setAlliance(u->getPlayer(), this->getOpcode() == AISCRIPT::Enum::PLAYER_ALLY);
// Debug and return
thread.saveDebug(Text::Green, this->getOpcode());
return true;
}
开发者ID:AdesChacal,项目名称:bwapi,代码行数:15,代码来源:Player_Ally.cpp
示例17: execute
bool Random_Jump::execute(aithread &thread) const
{
// Retrieve parameters
BYTE bChance;
WORD wOffset;
thread.readTuple( std::tie(bChance, wOffset) );
/// Set the new script offset
if ( (BYTE)rand() <= bChance )
thread.setScriptOffset( wOffset );
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode(), "%u p_%04X", bChance, wOffset);
return true;
}
开发者ID:dansgithubuser,项目名称:ninepool,代码行数:15,代码来源:Random_Jump.cpp
示例18: execute
bool Wait_Train::execute(aithread &thread) const
{
// Parameters
BYTE bCount;
WORD wUnitType;
thread.readTuple( std::tie(bCount, wUnitType) );
// Debug
thread.saveDebug(Text::Green, this->getOpcode(), "%u %s", bCount, AISCRIPT::getUnitName(wUnitType) );
// Perform actions
if ( GetStandardUnitCount(wUnitType) < bCount )
return thread.retry();
return thread.noretry();
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:15,代码来源:Wait_Train.cpp
示例19: execute
bool If_Dif::execute(aithread &thread) const
{
// Parameters
BYTE bModifier, bValue;
WORD wBlock;
thread.readTuple( std::tie( bModifier, bValue, wBlock ) );
// Compare diff value
BYTE bDiff = MainController.bIfDif;
if ( bModifier ? (bDiff > bValue) : (bDiff < bValue) )
thread.setScriptOffset( wBlock );
// Save debug info and return
thread.saveDebug(Text::Green, this->getOpcode(), "%u %u %04X", bModifier, bValue, wBlock);
return true;
}
开发者ID:mgoral,项目名称:bwapi,代码行数:16,代码来源:If_Dif.cpp
示例20: execute
bool Capt_Expand::execute(aithread &thread) const
{
// Save debug info and return
thread.saveDebug(Text::Red, this->getOpcode());
return true;
}
开发者ID:AdamKotynia,项目名称:bwapi,代码行数:7,代码来源:Capt_Expand.cpp
注:本文中的aithread类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论