📄 patternnpc.cpp
字号:
// PatternNPC.cpp: implementation of the CPatternNPC class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "PatternNPC.h"
#include "Monster.h"
#include <time.h>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CPatternNPC::CPatternNPC()
{
// m_dwCurSearchTime = NULL;
// m_dwTmpSearchTime = NULL;
// m_dwLastSearchTime = NULL;
// m_bFirstSearch = FALSE;
srand((unsigned)time(NULL));
}
CPatternNPC::~CPatternNPC()
{
}
BOOL CPatternNPC::MonsterAreaCheck(CMonster* pMonster)
{
// VECTOR3 RegenPos = pMonster->
return FALSE;
}
void CPatternNPC::MonsterPatternManager(CMonster* pMonster, BYTE StateFlag)
{
/* if(!pMonster->GetFirstSearch())
{
// m_dwCurSearchTime = m_dwTmpSearchTime = m_dwLastSearchTime = gCurTime;
pMonster->SetCurSearchTime(gCurTime);
pMonster->SetTmpSearchTime(gCurTime);
pMonster->SetLastSearchTime(gCurTime);
StateFlag = MonsterSearchTarget(pMonster);
pMonster->SetFirstSearch(TRUE);
}
else
{
pMonster->SetCurSearchTime(gCurTime);
pMonster->SetTmpSearchTime(pMonster->GetCurSearchTime() - pMonster->GetLastSearchTime());
if(pMonster->GetTmpSearchTime() > GAMERESRCMNGR->GetMonsterInfo(pMonster->GetMonsterKind())->SearchTime * 1)
{
StateFlag = MonsterSearchTarget(pMonster);
pMonster->SetLastSearchTime(pMonster->GetCurSearchTime());
}
}
//////////////////////////////////////////////////////////////////////////
// 阁胶磐档 粱 奖矫促... -_-+ [3/18/2003]
if(pMonster->Rest(gTickTime) == FALSE)
return;
if(pMonster->GetState() == eObjectState_Die) return;
switch(StateFlag)
{
case PEACE_STATE:
PeacePattern(pMonster);
break;
case ANGER_STATE:
AngerPattern(pMonster);
break;
case ATTACK_STATE:
AttackPattern(pMonster);
break;
}*/
}
void CPatternNPC::NpcPatternManager(CNpc* pNpc, BYTE StateFlag)
{
/* switch(StateFlag)
{
case PEACE_STATE:
PeacePattern(pMonster);
break;
case ANGER_STATE:
AngerPattern(pMonster);
break;
case ATTACK_STATE:
AttackPattern(pMonster);
break;
}*/
}
BYTE CPatternNPC::MonsterSearchTarget(CMonster* pMonster)
{
// BYTE state = pMonster->GetMonsterState()->GetCurState();
// BYTE Kind = pMonster->GetObjectKind();
// BYTE dist = 9;
// CPlayer* pPeacePlayer = (CPlayer*)g_pServerSystem->GetGridSystem()->FindPlayerInRange(0, CCharMove::GetPosition(pMonster), GAMERESRCMNGR->GetMonsterInfo(Kind)->MoveArea);
// CPlayer* pAngerPlayer = (CPlayer*)GAMESYSTEM_OBJ->GetGridSystem()->FindPlayerInRange(0, CCharMove::GetPosition(pMonster), GAMERESRCMNGR->GetMonsterInfo(Kind)->AngryArea);
// WORD AttDist = GAMERESRCMNGR->GetMonsterInfo(Kind)->Attack1Distance;
// WORD SearchDist = GAMERESRCMNGR->GetMonsterInfo(Kind)->SearchArea;
// CPlayer* SearchPlayer = (CPlayer*)g_pServerSystem->GetGridSystem()->FindPlayerInRange(0, CCharMove::GetPosition(pMonster), SearchDist);
// CPlayer* AttPlayer = (CPlayer*)g_pServerSystem->GetGridSystem()->FindPlayerInRange(0, CCharMove::GetPosition(pMonster), 500);
// WORD tmp1 = GAMERESRCMNGR->GetMonsterInfo(Kind)->MoveArea;
//// if(pPeacePlayer)
// {
// if(pAngerPlayer)
// {
/* if(SearchPlayer)
{
if(AttPlayer)
{
pMonster->SetTargetPlayer(AttPlayer);
pMonster->SetTargetObjectPos(CCharMove::GetPosition(AttPlayer));
pMonster->GetMonsterState()->SetCurState(ATTACK_STATE);
}
else
{
// pMonster->SetTargetPlayer(pAngerPlayer);
// pMonster->SetTargetPlayer(pPeacePlayer);
// pMonster->SetTargetObjectPos(CCharMove::GetPosition(pPeacePlayer));
// pMonster->GetMonsterState()->SetCurState(ANGER_STATE);
pMonster->GetMonsterState()->SetCurState(PEACE_STATE);
}
}
// }
// else
// {
// pMonster->SetTargetPlayer(pPeacePlayer);
// pMonster->SetTargetObjectPos(CCharMove::GetPosition(pPeacePlayer));
// pMonster->GetMonsterState()->SetCurState(PEACE_STATE);
// }
// }
// else
// {
// pMonster->GetMonsterState()->SetCurState(PEACE_STATE);
// }*/
return 1;
}
void CPatternNPC::PeacePattern(CMonster* pMonster)
{
switch(pMonster->GetMonsterKind())
{
case eParakho_L:
case eParakho:
case eParakho_S: ParakhoPeace(pMonster); break;
case eHucpyobom_L:
case eHucpyobom:
case eHucpyobom_S: HucpyobomPeace(pMonster); break;
case eCoyente_L:
case eCoyente:
case eCoyente_S: CoyentePeace(pMonster); break;
case eHyelgwiso_L:
case eHyelgwiso:
case eHyelgwiso_S: HyelgwisoPeace(pMonster); break;
case eGorilra_L:
case eGorilra:
case eGorilra_S: GorilraPeace(pMonster); break;
case eNokrimdo_L:
case eNokrimdo:
case eNokrimdo_S: NokrimdoPeace(pMonster); break;
case eGom_L:
case eGom:
case eGom_S: GomPeace(pMonster); break;
case eTochawo_L:
case eTochawo:
case eTochawo_S: TochawoPeace(pMonster); break;
case eYeti_L:
case eYeti:
case eYeti_S: YetiPeace(pMonster); break;
case eGongGwi_L:
case eGongGwi:
case eGongGwi_S: GongGwiPeace(pMonster); break;
case eHorangie_L:
case eHorangie:
case eHorangie_S: HorangiePeace(pMonster); break;
case eDongyounginja_L:
case eDongyounginja:
case eDongyounginja_S: DongyounginjaPeace(pMonster); break;
case eYewa_L:
case eYewa:
case eYewa_S: YewaPeace(pMonster); break;
case eSanso_L:
case eSanso:
case eSanso_S: SansoPeace(pMonster); break;
case eAlyou_L:
case eAlyou:
case eAlyou_S: AlyouPeace(pMonster); break;
case eSagalru_L:
case eSagalru:
case eSagalru_S: SagalruPeace(pMonster); break;
case ePyobom_L:
case ePyobom:
case ePyobom_S: PyobomPeace(pMonster); break;
case eYekgwi_L:
case eYekgwi:
case eYekgwi_S: YekgwiPeace(pMonster); break;
case eImugi_L:
case eImugi:
case eImugi_S: ImugiPeace(pMonster); break;
case eSamurai_L:
case eSamurai:
case eSamurai_S: SamuraiPeace(pMonster); break;
case eBunwun_L:
case eBunwun:
case eBunwun_S: BunwunPeace(pMonster); break;
case eMokbigwi_L:
case eMokbigwi:
case eMokbigwi_S: MokbigwiPeace(pMonster); break;
case eSuckgein_L:
case eSuckgein:
case eSuckgein_S: SuckgeinPeace(pMonster); break;
case eHu_L:
case eHu:
case eHu_S: HuPeace(pMonster); break;
case eInmeundanrang_L:
case eInmeundanrang:
case eInmeundanrang_S: InmeundanrangPeace(pMonster); break;
case eNokrimchejuPe_L:
case eNokrimchejuPe:
case eNokrimchejuPe_S: NokrimchejuPeace(pMonster); break;
case eMujiki_L:
case eMujiki:
case eMujiki_S: MujikiPeace(pMonster); break;
case eBarki_L:
case eBarki:
case eBarki_S: BarkiPeace(pMonster); break;
case eHwan_L:
case eHwan:
case eHwan_S: HwanPeace(pMonster); break;
case eYoumyou_L:
case eYoumyou:
case eYoumyou_S: YoumyouPeace(pMonster); break;
case eSansin_L:
case eSansin:
case eSansin_S: SansinPeace(pMonster); break;
case eSagaik_L:
case eSagaik:
case eSagaik_S: SagaikPeace(pMonster); break;
case eBuHey_L:
case eBuHey:
case eBuHey_S: BuHeyPeace(pMonster); break;
case eHeulkyojangro_L:
case eHeulkyojangro:
case eHeulkyojangro_S: HeulkyojangroPeace(pMonster); break;
case eKangsi_L:
case eKangsi:
case eKangsi_S: KangsiPeace(pMonster); break;
case eHungchun_L:
case eHungchun:
case eHungchun_S: HungchunPeace(pMonster); break;
case eTa_L:
case eTa:
case eTa_S: TaPeace(pMonster); break;
case eSanjewangPeac_L:
case eSanjewangPeac:
case eSanjewangPeac_S: SanjewangPeace(pMonster);break;
case eBackho_L:
case eBackho:
case eBackho_S: BackhoPeace(pMonster); break;
case eKumong_L:
case eKumong:
case eKumong_S: KumongPeace(pMonster); break;
case eWomawang_L:
case eWomawang:
case eWomawang_S: WomawangPeace(pMonster); break;
case eJujak_L:
case eJujak:
case eJujak_S: JujakPeace(pMonster); break;
case eHyunmu_L:
case eHyunmu:
case eHyunmu_S: HyunmuPeace(pMonster); break;
case eKirin_L:
case eKirin:
case eKirin_S: KirinPeace(pMonster); break;
case eYoung_L:
case eYoung:
case eYoung_S: YoungPeace(pMonster); break;
}
}
void CPatternNPC::AngerPattern(CMonster* pMonster)
{
switch(pMonster->GetMonsterKind())
{
case eParakho_L:
case eParakho:
case eParakho_S: ParakhoAnger(pMonster); break;
case eHucpyobom_L:
case eHucpyobom:
case eHucpyobom_S: HucpyobomAnger(pMonster); break;
case eCoyente_L:
case eCoyente:
case eCoyente_S: CoyenteAnger(pMonster); break;
case eHyelgwiso_L:
case eHyelgwiso:
case eHyelgwiso_S: HyelgwisoAnger(pMonster); break;
case eGorilra_L:
case eGorilra:
case eGorilra_S: GorilraAnger(pMonster); break;
case eNokrimdo_L:
case eNokrimdo:
case eNokrimdo_S: NokrimdoAnger(pMonster); break;
case eGom_L:
case eGom:
case eGom_S: GomAnger(pMonster); break;
case eTochawo_L:
case eTochawo:
case eTochawo_S: TochawoAnger(pMonster); break;
case eYeti_L:
case eYeti:
case eYeti_S: YetiAnger(pMonster); break;
case eGongGwi_L:
case eGongGwi:
case eGongGwi_S: GongGwiAnger(pMonster); break;
case eHorangie_L:
case eHorangie:
case eHorangie_S: HorangieAnger(pMonster); break;
case eDongyounginja_L:
case eDongyounginja:
case eDongyounginja_S: DongyounginjaAnger(pMonster); break;
case eYewa_L:
case eYewa:
case eYewa_S: YewaAnger(pMonster); break;
case eSanso_L:
case eSanso:
case eSanso_S: SansoAnger(pMonster); break;
case eAlyou_L:
case eAlyou:
case eAlyou_S: AlyouAnger(pMonster); break;
case eSagalru_L:
case eSagalru:
case eSagalru_S: SagalruAnger(pMonster); break;
case ePyobom_L:
case ePyobom:
case ePyobom_S: PyobomAnger(pMonster); break;
case eYekgwi_L:
case eYekgwi:
case eYekgwi_S: YekgwiAnger(pMonster); break;
case eImugi_L:
case eImugi:
case eImugi_S: ImugiAnger(pMonster); break;
case eSamurai_L:
case eSamurai:
case eSamurai_S: SamuraiAnger(pMonster); break;
case eBunwun_L:
case eBunwun:
case eBunwun_S: BunwunAnger(pMonster); break;
case eMokbigwi_L:
case eMokbigwi:
case eMokbigwi_S: MokbigwiAnger(pMonster); break;
case eSuckgein_L:
case eSuckgein:
case eSuckgein_S: SuckgeinAnger(pMonster); break;
case eHu_L:
case eHu:
case eHu_S: HuAnger(pMonster); break;
case eInmeundanrang_L:
case eInmeundanrang:
case eInmeundanrang_S: InmeundanrangAnger(pMonster); break;
case eNokrimchejuPe_L:
case eNokrimchejuPe:
case eNokrimchejuPe_S: NokrimchejuAnger(pMonster); break;
case eMujiki_L:
case eMujiki:
case eMujiki_S: MujikiAnger(pMonster); break;
case eBarki_L:
case eBarki:
case eBarki_S: BarkiAnger(pMonster); break;
case eHwan_L:
case eHwan:
case eHwan_S: HwanAnger(pMonster); break;
case eYoumyou_L:
case eYoumyou:
case eYoumyou_S: YoumyouAnger(pMonster); break;
case eSansin_L:
case eSansin:
case eSansin_S: SansinAnger(pMonster); break;
case eSagaik_L:
case eSagaik:
case eSagaik_S: SagaikAnger(pMonster); break;
case eBuHey_L:
case eBuHey:
case eBuHey_S: BuHeyAnger(pMonster); break;
case eHeulkyojangro_L:
case eHeulkyojangro:
case eHeulkyojangro_S: HeulkyojangroAnger(pMonster); break;
case eKangsi_L:
case eKangsi:
case eKangsi_S: KangsiAnger(pMonster); break;
case eHungchun_L:
case eHungchun:
case eHungchun_S: HungchunAnger(pMonster); break;
case eTa_L:
case eTa:
case eTa_S: TaAnger(pMonster); break;
case eSanjewangPeac_L:
case eSanjewangPeac:
case eSanjewangPeac_S: SanjewangAnger(pMonster);break;
case eBackho_L:
case eBackho:
case eBackho_S: BackhoAnger(pMonster); break;
case eKumong_L:
case eKumong:
case eKumong_S: KumongAnger(pMonster); break;
case eWomawang_L:
case eWomawang:
case eWomawang_S: WomawangAnger(pMonster); break;
case eJujak_L:
case eJujak:
case eJujak_S: JujakAnger(pMonster); break;
case eHyunmu_L:
case eHyunmu:
case eHyunmu_S: HyunmuAnger(pMonster); break;
case eKirin_L:
case eKirin:
case eKirin_S: KirinAnger(pMonster); break;
case eYoung_L:
case eYoung:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -