示例#1
0
//@brief 组建 S_S pk请求包:  for 怪物
//@lrpki		返回的组建结果
//@return 0 成功  非0 失败
int PKSvc::MakeSSPkgForMonster( 	const ArchvPosition &posPKOrigin, Monster &monster, List<ArchvRolePKInfo> &lrpki,Byte num)
{
	ArchvRolePKInfo pkInfo;
	ArchvAvatarDescBrief adb;
	//List<ArchvAvatarDescBrief> ladb;
	List<UInt32> lrid;
	ArchvSkill skill;
	int iRet = 0;

	//赋值
	pkInfo.controlID = monster.ID();
	pkInfo.roleID = monster.ID();
	pkInfo.level = monster.Level();//没有
	pkInfo.opposition = 4;
	pkInfo.creatureFlag = 2;
	pkInfo.creatureType = monster.Type();

	pkInfo.maxHP = monster.MaxHp();
	pkInfo.maxMP = monster.MaxMp();
	pkInfo.hp = monster.Hp();
	pkInfo.mp = monster.Mp();
	pkInfo.moveSpeed = monster.MoveSpeed();
	


//pk坐标处理
//	对超出pk地图范围的坐标进行调整
		if(num%2==0)
		pkInfo.currPosY = posPKOrigin.Y+1;
		else
		pkInfo.currPosY = posPKOrigin.Y;
  	pkInfo.currPosX = posPKOrigin.X;

	
LOG(LOG_DEBUG,__FILE__,__LINE__,"----------->>>>roleID [%d], currPosX x[%d],y[%d]  ",
	monster.ID(), pkInfo.currPosX, pkInfo.currPosY );	
	
	pkInfo.direct = monster.Direct();
	pkInfo.attackPowerHigh = monster.AttackPowerHigh();
	pkInfo.attackPowerLow = monster.AttackPowerLow();
	pkInfo.attackArea = monster.AttackScope();
	pkInfo.attackSpeed = monster.AttackSpeed();
	pkInfo.attackDisplayTime = 2;
	pkInfo.attackBulletSpeed = monster.BulletSpeed();
	pkInfo.hitRate = monster.HitRate();
	pkInfo.dodgeRate = monster.DodgeRate();
	pkInfo.defense = monster.Defence();
	pkInfo.CritRate=monster.CritRate();
	pkInfo.mDefense = monster.MDefence();
//	LOG(LOG_ERROR,__FILE__,__LINE__,"PKRoleID:::: %d contronID :::%d  ---------" , pkInfo.roleID,pkInfo.controlID);

	lrpki.push_back(pkInfo);
	if(num>1)
	{
		int pp=-1;
		for(int i=1;i<num;i++)
		{
			pp=-1*pp;
			pkInfo.controlID=monster.ID()+i;
			pkInfo.roleID=monster.ID()+i;
	  	pkInfo.currPosX = posPKOrigin.X;
//	  		LOG(LOG_ERROR,__FILE__,__LINE__,"PKRoleID:::: %d contronID :::%d  ---------" , pkInfo.roleID,pkInfo.controlID);
				pkInfo.currPosY = ((pkInfo.currPosY)+2*pp*i);

			lrpki.push_back(pkInfo);
		}
	}


	return 0;
}