⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ai_shared.cpp

📁 Blood 2全套源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:

void AI_Shared::ResetNodes(HOBJECT hObject)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();

	for(int i = 0; i < NUM_ALL_NODES; i++)
	{
		HideNodeAndSubNodes(hObject,i,DFALSE);	
	}
}

// ----------------------------------------------------------------------- //
//
//	ROUTINE:	AI_Shared::SetAnimation
//
//	PURPOSE:	Set the current animation
//
// ----------------------------------------------------------------------- //
//void AI_Shared::SetAnimation(HOBJECT m_hObject, int nAni)
//{
//    CServerDE* pServerDE = BaseClass::GetServerDE();
//    if (!pServerDE || !m_hObject) return;
//
//    // only set the animation if it has not been set yet...
//    if (m_nCurAnimation != nAni)
//    {
//	    m_nCurAnimation = nAni;
//        pServerDE->SetModelAnimation(m_hObject, m_nCurAnimation);
//    }
//}


//void AI_Shared::ForceAnimation(HOBJECT m_hObject, int nAni)
//{
//    CServerDE* pServerDE = BaseClass::GetServerDE();
//    if (!pServerDE || !m_hObject) return;
//
//    // Force to different animation
//    pServerDE->SetModelAnimation(m_hObject, 0);
//
//	m_nCurAnimation = nAni;
//    pServerDE->SetModelAnimation(m_hObject, m_nCurAnimation);
//}



//
//
//
// Do we still need these functions????????????
//
//
// ****************************************************************
// ****************************************************************
// ****************************************************************

//void AI_Shared::GotoIdleAnimation()
//{
//	m_nState = STATE_INANIMATE;
//	SetAnimation(m_nAnim_IDLE);
//}


//void AI_Shared::GotoNextAnimation()
//{
//	m_nCurAnimation++;
//	if(m_nCurAnimation > m_nAnim_VICTORY1)
//		m_nCurAnimation = m_nAnim_IDLE;
//
//	SetAnimation(m_nCurAnimation);
//}


//void AI_Shared::GotoPrevAnimation()
//{
//	m_nCurAnimation--;
//	if(m_nCurAnimation < m_nAnim_IDLE)
//		m_nCurAnimation = m_nAnim_VICTORY1;
//
//	SetAnimation(m_nCurAnimation);
//}

// ****************************************************************
// ****************************************************************
// ****************************************************************




// ----------------------------------------------------------------------- //
//
//	ROUTINE:	AI_Shared::
//
//	PURPOSE:	
//
// ----------------------------------------------------------------------- //
DBOOL AI_Shared::LoadBrains(char* pfilename) 
{

// Load in the valid behavior states
//

//    FILE *infile;
//    char line[128];
//      
//    DBOOL b_begin_state = DFALSE;
//    DBOOL b_begin_substate = DFALSE;
//    DBOOL b_begin_ppscore = DFALSE;
//      
//    int m_slot;
//    
//    AIState m_estate;
//    AISubState m_esubstate;
//    AIMetaCommand m_emetacmd;
//    
//
//    infile  = fopen(pfilename, "r");
//    
//    if (infile == NULL)
//        return DFALSE;
//
//    while (!feof(infile))
//    {
//          if (NULL != fgets(line, 128, infile))
//          {
//
//     	        BPrint(line);
//              // remove spaces and tabs from the beginning!
//              while ( _mbsncmp((const unsigned char*)line,(const unsigned char*)" ",1) == 0)
//              {
//                  _mbscpy((unsigned char*)line, (const unsigned char*)&line[1]);
//              }
//          
//              // Check for comments
//              if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)";", 1) != 0 || _mbsncmp((const unsigned char*)line, "//", 2) != 0 )
//              {
//                  if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"BEGIN_STATE", 11) == 0)
//                  {
//                      b_begin_state = DTRUE;
//                      b_begin_substate = DFALSE;
//                      b_begin_ppscore = DFALSE;
//                      m_slot = 0;
//                      
//                      _mbscpy((unsigned char*)line, (const unsigned char*)&line[12]);  // only want the Name
//                      
//             	        BPrint(line);
//                      m_estate = BrainState(line);
//                  }
//                  else if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"BEGIN_SUBSTATE", 14) == 0)
//                  {
//                      b_begin_substate = DTRUE;
//                      b_begin_state = DFALSE;
//                      b_begin_ppscore = DFALSE;
//                      m_slot = 0;
//
//                      _mbscpy((unsigned char*)line, (const unsigned char*)&line[15]);  // only want the Name
//                      m_esubstate = BrainSubState(line);
//                  }
//                  else if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"BEGIN_PPSCORE", 13) == 0)
//                  {
//                      b_begin_ppscore = DTRUE;
//                      b_begin_substate = DFALSE;
//                      b_begin_state = DFALSE;
//                      m_slot = 0;
//                  }
//                  else if ( _mbsncmp((const unsigned char*)line, (const unsigned char*)"END", _mbstrlen("END")) == 0)
//                  {
//                      if (b_begin_state == DTRUE)
//                      {
//                          b_begin_state = DFALSE;
//                      }
//                      else if (b_begin_substate == DTRUE)
//                      {
//                          b_begin_substate = DFALSE;
//                      }
//                      else if (b_begin_ppscore == DTRUE)
//                      {
//                          b_begin_ppscore = DFALSE;
//                      }
//                      
//                      m_slot = 0;
//                      m_estate = STATE_INANIMATE;
//                      m_esubstate = SS_DONOTHING;
//                  }
//                  // Load the SubStates into the State Array
//                  else if (b_begin_state)
//                  {
//                      if (m_slot < 6)         // Only load up to 6 SubStates
//                      {
//                          m_esubstate = BrainSubState(line);
//                          m_Brain.m_eStateArray[m_estate][m_slot] = m_esubstate;
//                          
//                          char buf[80];
//                          sprintf(buf,"Set State(%d), with SubState(%d) in slot(%d)",(int)m_estate,(int)m_esubstate, m_slot);
//             	            BPrint(buf);
//                          
//                          m_slot++;    
//                      } 
//                      else
//                      {
//                          char buf[80];
//                          sprintf(buf,"MAX SubStates set for State(%d)",(int)m_estate);
//             	            BPrint(buf);
//                      }                           
//                  }   
//                  // Load the MetaCommands into the SubStates Array
//                  else if (b_begin_substate)
//                  {
//                      if (m_slot < 4)         // Only load up to 4 MetaCommands
//                      {
//                          m_emetacmd = BrainMetaCommand(line);
//                          m_Brain.m_eSSCmdArray[m_esubstate][m_slot] = m_emetacmd;
//                          
//                          char buf[80];
//                          sprintf(buf,"Set SubState(%d), with MetaCmd(%d) in slot(%d)",(int)m_esubstate,(int)m_emetacmd, m_slot);
//             	            BPrint(buf);
//                          
//                          m_slot++;    
//                      } 
//                      else
//                      {
//                          char buf[80];
//                          sprintf(buf,"MAX Metacmds set for SubState(%d)",(int)m_esubstate);
//             	            BPrint(buf);
//                      }                     
//                            
//                  }   
//                  // Load the PPScore
//                  else if (b_begin_ppscore)
//                  {
//                      if (m_slot < 3)         // Only load up to 3 Scores
//                      {
//                      
//                        DFLOAT m_ppvalue = (float)atof(line);
//                        m_Brain.m_PP_Score[m_slot] = m_ppvalue;
//                          
//                        char buf[80];
//                        sprintf(buf,"Set PPScore with(%f) in slot(%d)",m_ppvalue, m_slot);
//             	        BPrint(buf);
//                          
//                          m_slot++;    
//                      } 
//                      else
//                      {
//                        char buf[80];
//                        sprintf(buf,"MAX PPScores");
//                        BPrint(buf);
//                      }                     
//                            
//                  }   
//                  
//                  
//              }    // comment
//                
//                
//        }
//    }
//
//    fclose(infile);
//    
    return DTRUE;
}




// ----------------------------------------------------------------------- //
//
//	ROUTINE:	AI_Shared::
//
//	PURPOSE:	Lookup States by NAME
//
// ----------------------------------------------------------------------- //
//AIState AI_Shared::BrainState(char* sName)
//{

//typedef struct StateData_t 
//{
//    char m_sStateName[64];
//    AIState m_eState;
//    
//} StateData;
//
//static StateData StateArray[STATE_MAX] =
//{
//        { "STATE_INANIMATE",    STATE_INANIMATE },
//        { "STATE_IDLE",         STATE_IDLE},
//        { "STATE_WORKING",      STATE_WORKING},
//        { "STATE_DEFENDING",    STATE_DEFENDING},
//        { "STATE_ATTACKING",    STATE_ATTACKING},
//        { "STATE_RETREATING",   STATE_RETREATING},
//        { "STATE_GUARDING",     STATE_GUARDING},
//        { "STATE_SCROUNGING",   STATE_SCROUNGING},
//        { "STATE_HITWALL",      STATE_HITWALL},
//        { "STATE_H_SHOTAT",     STATE_H_SHOTAT},
//        { "STATE_M_SHOTAT",     STATE_M_SHOTAT},
//        { "STATE_L_SHOTAT",     STATE_L_SHOTAT},
//        { "STATE_DYING",        STATE_DYING},
//        { "STATE_TREATASSESSMENT", STATE_TREATASSESSMENT},
//        { "STATE_GETHELP",      STATE_GETHELP}
//        
//};
 //   AIState m_return = STATE_INANIMATE;
//
//	for ( int m_index=0; m_index< STATE_MAX; m_index++)
//    {    
//        if ( _mbsncmp((const unsigned char*)sName, (const unsigned char*)StateArray[m_index].m_sStateName, _mbstrlen(StateArray[m_index].m_sStateName) ) == 0)
//        {
//            m_return = StateArray[m_index].m_eState;
//        }
//    }     
//    
//
//    return m_return;
//    return (AIState)0;
//}




// ----------------------------------------------------------------------- //
//
//	ROUTINE:	AI_Shared::
//
//	PURPOSE:	Lookup Substates by NAME
//
// ----------------------------------------------------------------------- //
//AISubState AI_Shared::BrainSubState(char* sName)
//{

//typedef struct SubStateData_t 
//{
//    char m_sSubStateName[64];
//    AISubState m_eSubState;
//    
//} SubStateData;
//
//static SubStateData SubStateArray[SS_MAX] =
//{
//        { "SS_DONOTHING",            SS_DONOTHING},
//        { "SS_IDLE",                 SS_IDLE}, 
//        { "SS_IDLEJUMP",             SS_IDLEJUMP},
//        { "SS_WALK",                 SS_WALK},
//        { "SS_RUN",                  SS_RUN},
//        { "SS_WORKING",              SS_WORKING},
//        { "SS_DEFENDING",            SS_DEFENDING},
//        { "SS_ATTACKING",            SS_ATTACKING},
//        { "SS_SHOOTTARGET",          SS_SHOOTTARGET},
//        { "SS_ATTACKING_JUMP",       SS_ATTACKING_JUMP},
//        { "SS_ATTACKING_ROLL",       SS_ATTACKING_ROLL},
//        { "SS_SMARTCORNER",          SS_SMARTCORNER},
//        { "SS_FOLLOWPLAYER",         SS_FOLLOWPLAYER},
//        { "SS_FIREATLASTLOCATION",   SS_FIREATLASTLOCATION},
//        { "SS_WAITATLASTLOCATION",   SS_WAITATLASTLOCATION},
//        { "SS_ATTACKMORPH",          SS_ATTACKMORPH},
//        { "SS_KILLEDMORPH",          SS_KILLEDMORPH},
//        { "SS_IGNORETREAT",          SS_IGNORETREAT},
//        { "SS_SIMULANTPACK",         SS_SIMULANTPACK},
//        { "SS_RETREATING",           SS_RETREATING},
//        { "SS_FINDCOVER",            SS_FINDCOVER},
//        { "SS_GUARDING",             SS_GUARDING},
//        { "SS_SCROUNGING",           SS_SCROUNGING},
//        { "SS_HITWALL",              SS_HITWALL},
//        { "SS_SHOTAT",               SS_SHOTAT},
//        { "SS_DYING",                SS_DYING},
//        { "SS_TREATASSESSMENT",      SS_TREATASSESSMENT},
//        { "SS_FRIENDSDEAD",          SS_FRIENDSDEAD},
//        { "SS_GETHELP",              SS_GETHELP},
//        { "SS_TRIGGEROTHERS",        SS_TRIGGEROTHERS},
//        { "SS_TRIGGERSOUNDS",        SS_TRIGGERSOUNDS},
//        { "SS_TRIGGERDOORS",         SS_TRIGGERDOORS}
//
//};

  //  AISubState m_return = SS_DONOTHING;


//	for ( int m_index=0; m_index< SS_MAX; m_index++)
//    {    
//        if ( _mbsncmp((const unsigned char*)sName, (const unsigned char*)SubStateArray[m_index].m_sSubStateName, _mbstrlen(SubStateArray[m_index].m_sSubStateName) ) == 0)
//        {
//            m_return = SubStateArray[m_index].m_eSubState;
//        }
//    }     

//    return m_return;
//}



// ----------------------------------------------------------------------- //
//
//	ROUTINE:	AI_Shared::
//
//	PURPOSE:	Lookup MetaCommands by NAME
//
// ----------------------------------------------------------------------- //
//AIMetaCommand AI_Shared::BrainMetaCommand(char* sName)
//{

//typedef struct MetaCommandData_t 
//{
//    char m_sMetaCmdName[64];
//    AIMetaCommand m_eMetaCmd;
//    
//} MetaCmdData;
//
//static MetaCmdData MetaCmdArray[MC_MAX] =
//{
//            // Basic Movements
//        { "MC_DONOTHING",           MC_DONOTHING},
//        { "MC_IDLE",                MC_IDLE},
//        { "MC_WALK",                MC_WALK},
//        { "MC_RUN",                 MC_RUN},
//        { "MC_TURNL",               MC_TURNL},
//        { "MC_TURNR",               MC_TURNR},
//        { "MC_TURNLR",              MC_TURNLR},
//        { "MC_ROLL",                MC_ROLL},
//        { "MC_DODGE",               MC_DODGE},
//        { "MC_STRAFE",              MC_STRAFE},
//        { "MC_JUMP",                MC_JUMP},
//// Attacking
//        { "MC_BESTWEAPON",          MC_BESTWEAPON},
//        { "MC_CHOOSETARGET",        MC_CHOOSETARGET},
//        { "MC_SHOT_TARGET",         MC_SHOT_TARGET},
//        { "MC_CHECKFORCOVER",       MC_CHECKFORCOVER},
//// Getting Help
//        { "MC_FINDTRIGGER",         MC_FINDTRIGGER},
//        { "MC_GO_TRIGGER",          MC_GO_TRIGGER},
//// PathPoints
//        { "MC_FINDNEARPATH",        MC_FINDNEARPATH},
//        { "MC_GO_PATH",             MC_GO_PATH},
//// Behavior change    
//        { "MC_STOP",                MC_STOP},
//        { "MC_EAT",                 MC_EAT},
//        { "MC_SLEEP",               MC_SLEEP},
//        { "MC_WAIT",                MC_WAIT},
//// Set Moods
//        { "MC_MOOD_FRIEND",         MC_MOOD_FRIEND},
//        { "MC_MO

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -