📄 dummyobjmng.cpp
字号:
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 + -