当前位置: 首页>>代码示例>>C++>>正文


C++ Hero::getIdentity方法代码示例

本文整理汇总了C++中Hero::getIdentity方法的典型用法代码示例。如果您正苦于以下问题:C++ Hero::getIdentity方法的具体用法?C++ Hero::getIdentity怎么用?C++ Hero::getIdentity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Hero的用法示例。


在下文中一共展示了Hero::getIdentity方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: acceptCdkeySrvSuccess

//解析从cdkey Server返回的消息
void acceptCdkeySrvSuccess(char *buffer)
{
	if (sock_fd != cdKeySrvFd)
	{
		return;
	}
	cout<<"the sizeof buff:"<<strlen(buffer)<<endl;
	char *userName;
	char *cdKeyId;
	char *heroId;
	char *goodsId;
	char *type;
	char failReason[100] = {0};
	int flag = 0;
	
	MSG_BEGIN(buffer,g_msg_len);
	MSG_CHAR(userName);
	MSG_CHAR(heroId);
	MSG_CHAR(cdKeyId);
	MSG_CHAR(goodsId);	
	MSG_CHAR_END(type);
	
	
	Hero *myHero = heroid_to_hero(heroId);
	
	if(myHero == NULL)
	{
		cout<<"the hero is NUll:"<<heroId<<endl;
		return;
	}
	if(type[0] == '0')
	{
		myHero->useActiveCode(cdKeyId,0);
	}
	else
	{
		myHero->useActiveCode(cdKeyId,1);
	}
	
	/*成功激活验证码*/
	snprintf(failReason,sizeof(failReason),"%d,%d,3",28,3);
	
	send_msg(myHero->getFd(),failReason);		
	
	saveGoodsInBag(myHero,goodsId,1);
	
	char account_msg[1024]={'\0'};
	snprintf(account_msg,sizeof(account_msg),"%d,%d,%s,%d,%s,%s,%s,%s",20,0,server_name,(int)myTime.tv_sec,myHero->getIdentity(),myHero->getNickName(),pg_role->getUserName(),cdKeyId);
	write_log(account_msg);	
	
}
开发者ID:cirosantilli,项目名称:netWork-fork,代码行数:52,代码来源:acceptActiveCode.cpp

示例2: attactMonsterArrange

/*宠物群攻判定*/
void Pet::attactMonsterArrange(MonsterBase *monster,double skiHrtRatio,double _cdTime,int index)
{
	Hero *owner=heroid_to_hero(masterId);
	if (owner==NULL)
	{
		return;
	}
	
	Map_Inform *mapNow = owner->getMap();
	if (mapNow==NULL)
	{
		return;
	}
	
	
	// 群体指向性技能不闪避
	float hitTimes = 1.0f;
	int lifeHurt = 0;
	unsigned range = 0;
	bool isCrit = false;
	// 群攻技能不带debuff
	
	int atkNum = 0;			//受攻击人数
	char msg[4096] = {0};
	char tempMsg[4096] = {0};
	sprintf(msg, "26,2,1,%s,%d,%s,%d,%d,%d,%d,%d,%d,%d",petdata->petskilldata[index-1].id, 1,
		petdata->identity, 100, 100, 100,100,0, 0, isCrit);
	// cout<<"It have enter here and msg is "<<msg<<endl;
	Nbox *box = mapNow->getBox();
	if (box == NULL)
	{
		return;
	}
	Point objPt;
	Point tempPt;
	
	objPt = monster->getLocation();
	
	range = petdata->petskilldata[index-1].range;
	if (range != 200)
	{
		range = 200;
	}

	range += 50;								//比客户端放大50范围
	
	OneScreen *neighborScrs[4] = {0}, *oneScr = NULL;
	box->getNeighbour(objPt, neighborScrs);
	set<string> tempSet;
	for (int i = 0; i < 4; i++)
	{
		oneScr = neighborScrs[i];
		if (oneScr == NULL)
		{
			continue;
		}
		// cout<<"hero pk state is "<<owner->gethero_PK_status()<<endl;
		if (owner->gethero_PK_status() != PEACE_MODE)
		{
			set<string>::iterator it_id;
			tempSet = oneScr->heroSet;
			for (it_id = tempSet.begin(); it_id != tempSet.end(); it_id++)
			{
				if (!strcmp(owner->getIdentity(), (*it_id).c_str()))
				{
					// 是宠物的主人
					continue;
				}
				Hero *hitedHero = heroid_to_hero(*it_id);
				if (hitedHero == NULL)
				{
					continue;
				}
				// 已经死亡
				if (hitedHero->getLifeVal() <= 0)
				{
					cout<<"The atked hero is dead when use many atk skill"<<endl;
					continue;
				}
				// 无敌状态
				if (hitedHero->skillBuffState & BUFF_INVINCIBLE_STATE)
				{
					cout<<"The atked hero is invinc for atk"<<endl;
					continue;
				}
				if (relationCheck(owner, hitedHero, mapNow) != 2)
				{
					// 不是敌人,不能攻击
					cout<<"The hero is not your enemy when use many atk skill !!"<<endl;
					continue;
				}
				tempPt = hitedHero->getLocation();
				cout<<"really distance is:"<<GET_DISTANCE(tempPt, objPt)<<endl;
				cout<<"can hurt range is:"<<range<<endl;
				if (IS_OUT_RANGE(tempPt, objPt, range))
				{
					// 不在作用范围内
					cout<<"The atked hero is out of range when use many atk skill!!"<<endl;
					continue;
//.........这里部分代码省略.........
开发者ID:cirosantilli,项目名称:netWork-fork,代码行数:101,代码来源:pet_attack_monster.cpp

示例3: attactWagonComm

void attactWagonComm(char *buff)
{
#if 0
	char *wagonId;							//马车Id
	char *skillId;							//使用技能的Id
	int index = 0;							//攻击者类型
	
	MSG_BEGIN(buff, g_msg_len);
	MSG_INT(index);
	MSG_CHAR(wagonId);
	MSG_CHAR_END(skillId);
	
	//由fd查hero实例
	Hero *hero = pg_hero;
	
	map<string,Wagon*>::iterator it_wagon;
	//cout<<"BisonTest:wagonInstMap size is "<<wagonInstMap.size()<<endl;
	it_wagon = wagonInstMap.find(wagonId);
	if (it_wagon == wagonInstMap.end())
	{
		//没有这个马车
		cout<<"BisonTest: Attack failed because of no the wagon of this id "<<wagonId<<endl;
		return;
	}
	
	Wagon *wagon = it_wagon->second;
	
	Map_Inform *wagonMap = hero->getMap();
	if (wagonMap == NULL)
	{
		cout<<"This Map no Id ????????????????????"<<endl;
		return;
	}
	char *wagonMapId = wagonMap->getIdentity();
	if (strcmp(wagonMapId, "map_001") == 0)
	{
		cout<<"You can't attack wagon In This Map"<<endl;
		return;
	}
	char* owerId;
	Hero *owner = wagon->getOwner();
	if (owner == NULL)
	{
		cout<<"This wagon has no owner, but you can attack it"<<endl;
		goto LG;	//没有主人的马车也能被打
		// return;
	}
	//马车主人不能打自己的马车
	owerId = owner->getIdentity();
	if (!strcmp(owerId, hero->getIdentity()))
	{
		return;
	}
LG: ;	
	//全用像素点
	Point wagonLocation = wagon->getPt();
	int range;			//攻击者的攻击范围
	//bool isLive;		//马车是否还活着
	int distance = 0;	//攻击者离马车距离
	
	Skill *skill; 
	//int skillNeedMagic = 0;						//技能的魔法消耗
	int attackLife = 100;						//攻击者当前血量……置为宠物的属性值
	int attackMagic = 100;						//攻击者魔法……置为宠物的属性值
	//int attackHurt = wagon->getHurt();			//马车每次被攻击掉血固定
	//index = 0 为人攻击马车
	if (index == 0)
	{
		map<string,Skill*> attack_skill_list;				//玩家角色的技能列表	
		map<string,Skill*>::iterator skill_iter;
		attack_skill_list = hero->getSkill_list();	
		skill_iter = attack_skill_list.find(skillId);
		if(skill_iter == attack_skill_list.end())
		{
			cout<<"BisonTest: hero does not has this skill to use when attack wagon"<<endl;
			return;
		}                   
		skill = skill_iter->second;							//玩家所使用的技能
		
		if (skill->gettype() != 1 || skill->geteffect() != 1)
		{
			//管你是群攻还是医疗,只要不是主动技能都别用来搞马车
			cout<<"skill type can't attack wagon"<<endl;
			return;
		}
		
		if(!isFightStatusOfHero(hero, skill))					//判断玩家的真气,和技能的时间是否符合条件
		{
			cout<<"BisonTest: magical or time is not ok to use this skill"<<endl;
			return;
		}
		
		cout<<"BisonTest: Hero attacks the wagon "<<wagonId<<endl;
		//判断距离是否够
		Point heroLocation = hero->getLocation();
		int deltaX = wagonLocation._x - heroLocation._x;
		int deltaY = wagonLocation._y - heroLocation._y;
		int distance = sqrt(deltaX * deltaX + deltaY * deltaY);
		range = hero->getAtk_range();
		cout<<"BisonTest: distance is "<<distance<<" hero attack range is "<<range<<endl; 
//.........这里部分代码省略.........
开发者ID:cirosantilli,项目名称:netWork-fork,代码行数:101,代码来源:attack_wagon.cpp


注:本文中的Hero::getIdentity方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。