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

📄 dummyobjmng.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void CDummyObjMng::CalMonsterPosition()
{
/*	m_MonsterInfo = MOVEMNG->FindNearMonster( m_pHeroBaseMoveInfo->CurPosition );
	m_pHeroBaseMoveInfo->TargetPositions[0] = m_MonsterInfo.BaseMoveInfo.CurPosition;

	CalEstimateTime();
	*/
}

void CDummyObjMng::CalMovePosition()
{
	if( m_nMoveFlag == 1 )
	{
//		m_pHeroBaseMoveInfo->TargetPositions[0] = m_vOldPosition;//m_MapDesc.vMovePoint[0];
//		m_pHeroBaseMoveInfo->TargetPositions[0].x += m_nMoveFlag*(rand()%100);
//		m_pHeroBaseMoveInfo->TargetPositions[0].z += m_nMoveFlag*(rand()%100);
		m_HeroMoveInfo.TargetPositions[0] = m_vOldPosition;//m_MapDesc.vMovePoint[0];
		m_HeroMoveInfo.TargetPositions[0].x += m_nMoveFlag*(rand()%100);
		m_HeroMoveInfo.TargetPositions[0].z += m_nMoveFlag*(rand()%100);
	}
	else
	{
		int i = rand()%m_MapDesc.nMaxMovePoint;
//		m_pHeroBaseMoveInfo->TargetPositions[0] = m_MapDesc.vMovePoint[i];
//		m_pHeroBaseMoveInfo->TargetPositions[0].x += m_nMoveFlag*(rand()%100);
//		m_pHeroBaseMoveInfo->TargetPositions[0].z += m_nMoveFlag*(rand()%100);
		m_HeroMoveInfo.TargetPositions[0] = m_MapDesc.vMovePoint[i];
		m_HeroMoveInfo.TargetPositions[0].x += m_nMoveFlag*(rand()%100);
		m_HeroMoveInfo.TargetPositions[0].z += m_nMoveFlag*(rand()%100);
	}

	m_nMoveFlag *= -1;

	CalEstimateTime();

	
}

void CDummyObjMng::CalEstimateTime()
{
//	float Distance = CalcDistanceXZ( &m_pHeroBaseMoveInfo->CurPosition, &m_pHeroBaseMoveInfo->TargetPositions[0] );
	float Distance = CalcDistanceXZ( &m_HeroMoveInfo.CurPosition, &m_HeroMoveInfo.TargetPositions[0] );
	m_dwActionEstimateTime = (DWORD)(Distance/m_fMoveSpeed*1000);	
}

void CDummyObjMng::ActionMoveToMapchangePoint()
{
	m_dwActionStartTime = GetTickCount();
	
	CalMapChangePosition();

	MOVE_TARGETPOS msg;
	msg.Init();
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;	
	msg.SetStartPos( &m_HeroMoveInfo.CurPosition );
	msg.AddTargetPos( &m_HeroMoveInfo.TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_HeroMoveInfo.CurPosition = m_HeroMoveInfo.TargetPositions[0];

	/*
	MOVE_TARGETPOS msg;
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;
	msg.Init();
	msg.SetStartPos( &m_pHeroBaseMoveInfo->CurPosition );
	msg.AddTargetPos( &m_pHeroBaseMoveInfo->TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_pHeroBaseMoveInfo->CurPosition = m_pHeroBaseMoveInfo->TargetPositions[0];
*/

	char* temp;
	temp = GetMapName( m_dwToMapNum );
	sprintf( m_sChat, "%s(栏)肺 啊杭鳖!!", temp );
	ActionChatting( m_sChat );

	m_bMapChange = TRUE;

	m_bFirstMove = FALSE;
}

void CDummyObjMng::ActionMoveToLoginPoint()
{
	m_dwActionStartTime = GetTickCount();

	CalLoginPosition();

	MOVE_TARGETPOS msg;
	msg.Init();
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;	
	msg.SetStartPos( &m_HeroMoveInfo.CurPosition );
	msg.AddTargetPos( &m_HeroMoveInfo.TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_HeroMoveInfo.CurPosition = m_HeroMoveInfo.TargetPositions[0];

/*		MOVE_TARGETPOS msg;
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;
	msg.Init();
	msg.SetStartPos( &m_pHeroBaseMoveInfo->CurPosition );
	msg.AddTargetPos( &m_pHeroBaseMoveInfo->TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_pHeroBaseMoveInfo->CurPosition = m_pHeroBaseMoveInfo->TargetPositions[0];
*/

	m_bLogin = TRUE;

	ActionChatting( "LoginPoint 历厘窍矾 啊具瘤!!" );

	m_bFirstMove = FALSE;
}

void CDummyObjMng::ActionMoveToMonster()
{
	if( MOVEMNG->GetMonsterNum() <= 0 ) return;
	
	++m_nHuntCount;

	m_dwActionStartTime = GetTickCount();

	CalMonsterPosition();

	MOVE_TARGETPOS msg;
	msg.Init();
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;	
	msg.SetStartPos( &m_HeroMoveInfo.CurPosition );
	msg.AddTargetPos( &m_HeroMoveInfo.TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_HeroMoveInfo.CurPosition = m_HeroMoveInfo.TargetPositions[0];

/*		MOVE_TARGETPOS msg;
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;
	msg.Init();
	msg.SetStartPos( &m_pHeroBaseMoveInfo->CurPosition );
	msg.AddTargetPos( &m_pHeroBaseMoveInfo->TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_pHeroBaseMoveInfo->CurPosition = m_pHeroBaseMoveInfo->TargetPositions[0];

	*/
	ActionChatting( "Monster 棱栏矾 啊具瘤!!" );

	m_bHunt = TRUE;

	m_bFirstMove = FALSE;
}

void CDummyObjMng::ActionMove()
{
	m_dwActionStartTime = GetTickCount();
	
	CalMovePosition();
	
	MOVE_TARGETPOS msg;
	msg.Init();
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;	
	msg.SetStartPos( &m_HeroMoveInfo.CurPosition );
	msg.AddTargetPos( &m_HeroMoveInfo.TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_HeroMoveInfo.CurPosition = m_HeroMoveInfo.TargetPositions[0];

/*		MOVE_TARGETPOS msg;
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;
	msg.Init();
	msg.SetStartPos( &m_pHeroBaseMoveInfo->CurPosition );
	msg.AddTargetPos( &m_pHeroBaseMoveInfo->TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

	m_pHeroBaseMoveInfo->CurPosition = m_pHeroBaseMoveInfo->TargetPositions[0];
*/

	if( m_bRun )	ActionChatting( "唱 崔赴促!!" );
	else			ActionChatting( "唱 叭绰促!!" );

	m_bFirstMove = FALSE;
}

void CDummyObjMng::ActionRevive()
{
	m_dwActionStartTime = GetTickCount();

	int i = rand()%2;

	MSGBASE msg;
	msg.Category = MP_CHAR_REVIVE;
	msg.dwObjectID = m_dwHeroID;
	if( i == 0 )
		msg.Protocol = MP_CHAR_REVIVE_PRESENTSPOT_SYN;
	else
		msg.Protocol = MP_CHAR_REVIVE_LOGINSPOT_SYN;
	m_pNetwork->Send( &msg, sizeof(msg) );

	m_dwActionEstimateTime = 15000;

	m_DummyObjState = eDUMMYOBJSTATE_Alive;

	ActionChatting( "促矫 混酒唱具蹬!!" );

	m_bRevive = FALSE;

	m_bMustUngi = TRUE;

	m_nSkillNum = 7;
}

void CDummyObjMng::ActionSkill()
{
/*	m_dwActionStartTime = GetTickCount();

	if( MOVEMNG->IsMonster( m_MonsterInfo.BaseObjectInfo.dwObjectID, m_pHeroBaseMoveInfo->CurPosition ) == FALSE )
	{
		m_bHunt = FALSE;
		m_nSkillNum = 7;
		ActionFollowMonster();
		return;
	}

	MSG_SKILL_START_SYN msg;
	MAINTARGET MainTarget;
	memset( &MainTarget, 0, sizeof(MAINTARGET) );
	MainTarget.SetMainTarget( m_MonsterInfo.BaseObjectInfo.dwObjectID );
	msg.InitMsg( m_nSkillNum, &MainTarget, 10.0f, m_dwHeroID );
	
	m_pNetwork->Send( &msg, msg.GetMsgLength() );

	m_dwActionEstimateTime = 500;
	
//	m_bHunt = FALSE;

//	if( m_nSkillNum == 7 )
	{
//		sprintf( m_sChat, "霓焊 %d 傍拜!!", m_nSkillNum );
//		ActionChatting( m_sChat );
		ActionChatting( "傍拜!!" );
	}

	++m_nSkillNum;
	if( m_nSkillNum > 12 )
		m_nSkillNum = 7;

	m_bFollow = FALSE;

	m_bHunt = TRUE;
	*/
}

void CDummyObjMng::SetLevelUp( int level )
{
	m_pHeroChrTotalInfo->Level = level;

	sprintf( m_sChat, "捞力 Level %d捞促!!", level );
	ActionChatting( m_sChat );
}

void CDummyObjMng::SetExp( int exp, int flag )
{
	if( flag == 0 )
	{
		sprintf( m_sChat, "版氰摹 %d(阑)甫 酪菌促.!!", exp );
	}
	else if( flag == 1 )
	{
		sprintf( m_sChat, "版氰摹 %d(阑)甫 掘菌促.!!", exp );
	}
	
	ActionChatting( m_sChat );
}

void CDummyObjMng::SetMoney( int money, int flag )
{
	if( flag == 0 )
	{
		sprintf( m_sChat, "捣 %d(阑)甫 掘菌促.!!", money );
	}
	else if( flag == 1 )
	{
		sprintf( m_sChat, "捣 %d(阑)甫 荤侩沁促.!!", money );
	}
	else if( flag == 2 )
	{
		sprintf( m_sChat, "捣 %d(阑)甫 酪菌促.!!", money );
	}
	
	ActionChatting( m_sChat );
}

void CDummyObjMng::SetItem()
{
	sprintf( m_sChat, "酒捞袍阑 掘菌促.!!" );
	
	ActionChatting( m_sChat );
}

void CDummyObjMng::ForcedToMapChange( int mapnum )
{
	if( m_dwCurMapNum == mapnum )
		return;

	m_dwActionStartTime = GetTickCount();

	MSG_DWORD msg;
	msg.Category = MP_USERCONN;
	msg.Protocol = MP_USERCONN_CHANGEMAP_SYN;
	msg.dwObjectID = m_dwHeroID;

	switch( mapnum )
	{
	case 12: msg.dwData = 1005; break;	// 厘救
	case 17: msg.dwData = 1003; break;	// 抄林
	case 18: msg.dwData = 1002; break;	// 捣炔
	case 19: msg.dwData = 1001; break;	// 苛巩包
	case 13: msg.dwData = 1007; break;	// 拳没瘤
	case 6: msg.dwData = 1011; break;	// 倡剧
	case 8: msg.dwData = 1015; break;	// 沥林
	case 7: msg.dwData = 1023; break;	// 俺豪
//	case 2: msg.dwData = 1028; break;	// 怕魂
	case 1: msg.dwData = 1024; break;	// 合版
	}
	
	m_pNetwork->Send( &msg, sizeof(msg) );

	m_bMapChange = FALSE;

	m_dwActionEstimateTime = 5000;
	
	g_MapChangeCount++;
}

void CDummyObjMng::ActionFollowMonster()
{
/*	if( MOVEMNG->GetMonsterNum() <= 0 ) return;
	
	m_dwActionStartTime = GetTickCount();

	m_MonsterInfo.BaseMoveInfo.CurPosition = MOVEMNG->GetMonsterPosition( m_MonsterInfo.BaseObjectInfo.dwObjectID );
	if( m_MonsterInfo.BaseMoveInfo.CurPosition.x == 0 )
		return;
	
	m_pHeroBaseMoveInfo->TargetPositions[0] = m_MonsterInfo.BaseMoveInfo.CurPosition;

	CalEstimateTime();

	MOVE_TARGETPOS msg;
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = m_dwHeroID;
	msg.dwMoverID = msg.dwObjectID;
	msg.Init();
	msg.SetStartPos( &m_pHeroBaseMoveInfo->CurPosition );
	msg.AddTargetPos( &m_pHeroBaseMoveInfo->TargetPositions[0] );
	m_pNetwork->Send( &msg, msg.GetSize() );

/*
	MOVE_TARGETPOS msg;
	msg.Init();
	msg.Category = MP_MOVE;
	msg.Protocol = MP_MOVE_TARGET;
	msg.dwObjectID = HEROID;
	msg.dwMoverID = HEROID;
	msg.SetStartPos(&pHero->m_MoveInfo.CurPosition);
	//msg.tpos.Compress(&TargetPos);
	for(int i=0;i<count;++i)
		msg.AddTargetPos(&pHero->m_MoveInfo.TargetPositions[i]);

	NETWORK->Send(&msg,msg.GetSize());

	//StartMove(pHero,gCurTime,&TargetPos);
	StartMoveEx(pHero,gCurTime);
	*/
/*
	m_pHeroBaseMoveInfo->CurPosition = m_pHeroBaseMoveInfo->TargetPositions[0];

	ActionChatting( "绢叼 艾绢!!" );

	m_bHunt = TRUE;

	m_bFirstMove = FALSE;

	m_bFollow = TRUE;
	*/
}

⌨️ 快捷键说明

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