• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ aithread类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ alignment类代码示例发布时间:2022-05-31
下一篇:
C++ aiString类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap