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

📄 skill_lsw.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	case 2:
		{
			f->nImageNumber	=	14;
			f->nRectImage	=	13;
		}break;
	case 0:
		{
			f->nImageNumber	=	24;
			f->nRectImage	=	23;
		}break;
	default:
		break;
	}
	f = &SMenu[MN_COMBAT_SKILL_POINT].nField[5];
	switch(GetKnowCSGroupType(2))
	{
	case 1:
		{
			f->nImageNumber	=	16;
			f->nRectImage	=	15;
		}break;
	case 2:
		{
			f->nImageNumber	=	18;
			f->nRectImage	=	17;
		}break;
	case 0:
		{
			f->nImageNumber	=	26;
			f->nRectImage	=	25;
		}break;
	default:
		break;
	}
	f = &SMenu[MN_COMBAT_SKILL_POINT].nField[6];
	switch(GetKnowCSGroupType(3))
	{
	case 1:
		{
			f->nImageNumber	=	20;
			f->nRectImage	=	19;
		}break;
	case 2:
		{
			f->nImageNumber	=	22;
			f->nRectImage	=	21;
		}break;
	case 0:
		{
			f->nImageNumber	=	28;
			f->nRectImage	=	27;
		}break;
	default:
		break;
	}
	
	switch(iSelected)//急琶等巴篮 灌篮 滚瓢栏肺
	{
	case 1:
		{
			f = &SMenu[MN_COMBAT_SKILL_POINT].nField[4];
			f->nImageNumber	=	f->nRectImage;
		}break;
	case 2:
		{
			f = &SMenu[MN_COMBAT_SKILL_POINT].nField[5];
			f->nImageNumber	=	f->nRectImage;
		}break;
	case 3:
		{
			f = &SMenu[MN_COMBAT_SKILL_POINT].nField[6];
			f->nImageNumber	=	f->nRectImage;
		}break;
	default:
		break;
	}
	//弊缝 鸥涝 滚瓢 弊覆 府悸
	SMenu[MN_COMBAT_SKILL_POINT].nField[13].nRectImage = 34;
	SMenu[MN_COMBAT_SKILL_POINT].nField[13].nImageNumber = 33;
	SMenu[MN_COMBAT_SKILL_POINT].nField[14].nRectImage = 35;
	SMenu[MN_COMBAT_SKILL_POINT].nField[14].nImageNumber = 32;
}

void SetCSPIconImageANDnWillDo(const int iGroupNo,const int iForceGroupType)//急琶等 弊缝俊 蝶扼 CSP狼 滚瓢 弊覆苞 nWillDo甫 悸泼茄促
{
	int iGroupType =0;
	if(iForceGroupType)
	{
		iGroupType = iForceGroupType;
	}
	else
	{
		 iGroupType = GetKnowCSGroupType(iGroupNo);
	}
	int iCombatSkillIndex = GetCombatSkillIndexStart(iGroupNo, iGroupType);
	const int iGroup1Start	= iCSCovertSkillID+iCombatSkillIndex-1;//1锅 弊缝何磐 矫累窍聪鳖
	const int iGroup1End = iGroup1Start+6;
	int iStartField		= 7;//SMenu[MN_COMBAT_SKILL_POINT].nField[7] 何磐 SC酒捞能 捞扁 锭巩捞促
	int i = 0;
	for(i = iGroup1Start; i <iGroup1End; i++)
	{
		SFIELD *f = &SMenu[MN_COMBAT_SKILL_POINT].nField[iStartField];
		if(SCharacterData.SkillId[i])//酒绰芭
		{
			f->nImageNumber = SkillIdToCombatSkillIconImage(i,true);//i绰 胶懦 逞滚绊 iCSCovertSkillID锅 何磐 矫累捞聪鳖 iCSCovertSkillID甫 力寇茄促
			f->nRectImage	= SkillIdToCombatSkillIconImage(i,false);//i绰 胶懦 逞滚绊 iCSCovertSkillID锅 何磐 矫累捞聪鳖 iCSCovertSkillID甫 力寇茄促 捞固瘤 弓篮芭俊 36 锅何磐 货肺款芭扼辑 +35 茄促
		}
		else //葛福绰芭
		{
			f->nImageNumber = 73+(iGroupNo-1)*2+(iGroupType-1);
			f->nRectImage	= SkillIdToCombatSkillIconImage(i,false);//i绰 胶懦 逞滚绊 iCSCovertSkillID锅 何磐 矫累捞聪鳖 iCSCovertSkillID甫 力寇茄促 捞固瘤 弓篮芭俊 36 锅何磐 货肺款芭扼辑 +35 茄促
		}
		f->nWillDo = iCombatSkillIndex++;//t_CombatSkill狼 牢郸胶 历厘 1 何磐 矫累 0锅篮 Doing狼 皋牢 酒捞能 蔼
		iStartField++;
	}

	if( iGroupNo >0)
	{
		for(int xx = 0; xx < 12;xx++)
		{
			const int iStartCSIndex = ((iGroupNo-1) * 12 +1);
			SMenu[MN_COMBAT_SKILL_POINT].nField[18+xx].nWillDo	=iStartCSIndex+xx;//汲疙 何盒俊 棵府绰芭 FT_CS_EXPLAIN 狼nWillDo 悸泼
		}
	}
}

void CallCombatSkillPointMenu()
{
	if(!SMenu[MN_COMBAT_SKILL_POINT].bActive)
	{
		CloseAllMenu();
		SMenu[MN_COMBAT_SKILL_POINT].bActive = true;	
	}
	else
	{
		SMenu[MN_COMBAT_SKILL_POINT].bActive = false;
	}

	if(0 >= Hero->hp)
	{
		CloseAllMenu();
		return;
	}
	const int iDefaultGroup =1;
	InitCombatSkill();
	SMenu[MN_COMBAT_SKILL_POINT].work = iDefaultGroup;//work俊 泅犁 急琶等 弊缝蔼捞 甸绢乐促
	SetCSPButtonType(iDefaultGroup);//困俊 3俺 乐绰 弊缝 滚瓢阑 穿福绰芭 弊 滚瓢狼 nWillDo 蔼捞 滚瓢捞 啊柳 弊缝 蔼捞促
	SetCSPGroupButtonImage(iDefaultGroup);//弊缝 滚瓢 捞固瘤甫 悸泼 茄促//SkillId 甫 啊瘤绊 惶绰芭促
	SetCSPIconImageANDnWillDo(iDefaultGroup);//牢磐眉捞胶俊 哆绰 6俺狼 酒捞能 滚瓢 捞固瘤客 nWillDo 悸泼

//	CallSmallMenu(MN_COMBAT_SKILL_POINT);
}

int iCSReservPoint = 10;
//鸥涝篮 绢叼促 历厘 秦 滴瘤?
void SendCSLvUp(const int iCombatSkillIndex)//iSkillNo(1~6)
{
	if( !iCombatSkillIndex ) 
	{
		if( GetSysInfo(SI_GAME_MAKE_MODE ) )		// 020925 YGI
			AddCurrentStatusMessage(255,255,255,"傈捧胶懦 牢郸胶啊 捞惑钦聪促");
		return;
	}
	
  if (iCSReservPoint > 0)
  { 
    g_mgrBattle.SendCombatLearn(iCombatSkillIndex + 214, Hero);
  } 
}

void InitCombatSkill()
{
  memset(CombatSkill,0,sizeof(t_CombatSkill)*MAX_COMBAT_SKILL_STRUCT);
	int iCSN = 1;
	for(int i = 1; i < 36+1 ; i++)
	{	//1-6	7-12		//13-18	19-24		//25-30 31-36
		CombatSkill[i].iGroup			=	(i-1)/12 +1		;			//傈捧 胶懦 弊缝
		CombatSkill[i].iGroupType		=	(i-1)%12 /6 +1		;		//傈捧 胶懦 鸥涝
		CombatSkill[i].iCombatSkillNo	=	iCSN++										;	//傈捧 胶懦 逞滚
		CombatSkill[i].iSkillNo			=	iCSCovertSkillID + i - 1				;		//SkillID 狼 逞滚
		CombatSkill[i].iSkillLv			=	SCharacterData.SkillId[CombatSkill[i].iSkillNo];		//傈捧 胶懦 饭骇//SCharacterData.SkilID[iSkillNo]窍搁 唱坷绰 蔼
		if(6 < iCSN)
		{
			iCSN=1;
		}
	}

  iCSReservPoint = Hero->aStepInfo[CSP_STEP];
}

/////////////////////////////////////////////////////// 傈捧 胶懦 Doing
int iCpMax = 100;
int iCpNow = 50;

int iCpCountMax = 100;
int iCpCountNow = 50;
bool SetCSDFlied(const int iGroupNo, const int iGroupType, const int iStartFlieddNo)
{
	//傈捧胶懦 弊缝 鸥涝捞 乐促搁. CombatSkill阑 八荤 窍咯(ex>1~^)乐栏搁 持绊 绝栏搁 牧萍春 茄促
	int iFNo = iStartFlieddNo;//矫累鞘靛 逞滚 鞘靛甫 急屈利栏肺 硅摹 且巴
	int iCSIndex = GetCombatSkillIndexStart(iGroupNo, iGroupType);
	bool bForceNoneType = false;
	bool iReturnValue = false;//府畔登绰 蔼. 鞘靛 窍唱扼档 悸泼 登搁 促澜 鞘靛肺 刮促
	if( !iGroupType)
	{
		bForceNoneType = true;
	}
	const int iCSIndexTarget = iCSIndex+6;
	//努府绢 棵 鞘靛 扼绰吧 笼绢 持磊.

	SMenu[MN_COMBAT_SKILL_DOING].nField[iStartFlieddNo].nWillDo = 0;
	SMenu[MN_COMBAT_SKILL_DOING].nField[iStartFlieddNo+1].nWillDo = 0;
	SMenu[MN_COMBAT_SKILL_DOING].nField[iStartFlieddNo+2].nWillDo = 0;

	SMenu[MN_COMBAT_SKILL_DOING].nField[iStartFlieddNo+3].nWillDo = 0;
	SMenu[MN_COMBAT_SKILL_DOING].nField[iStartFlieddNo+4].nWillDo = 0;
	SMenu[MN_COMBAT_SKILL_DOING].nField[iStartFlieddNo+5].nWillDo = 0;
	
	for(; iCSIndex<iCSIndexTarget ;iCSIndex++)
	{
		SFIELD *f = &SMenu[MN_COMBAT_SKILL_DOING].nField[iFNo];
//    if(	iCSIndex != (iCSIndexTarget-1) 
//		|| 
//			(iGroupNo==3 && iGroupType ==2) )//5锅捞 酒聪搁 弊赴促 3锅 弊缝俊 2锅 鸥涝( 官恩 捞搁 弊赴促 )
//		{
		  if(CombatSkill[iCSIndex].iSkillLv&&(bForceNoneType == 0))//硅款芭促.. 1肪 捞惑捞聪鳖
		  {
			  f->nImageNumber = SkillIdToCombatSkillIconImage(CombatSkill[iCSIndex].iSkillNo,true);
			  f->nRectImage	= SkillIdToCombatSkillIconImage(CombatSkill[iCSIndex].iSkillNo,false);
			  SetRect(f->rCheakBox, f->x, f->y, f->x+42, f->y+42);
			  f->nWillDo = iCSIndex;
			  iFNo++;//促澜 鞘靛肺
			  iReturnValue = true;
      }
//    }
		else//镜荐 乐绰 胶懦 酒聪搁 康开苞 nWillDo甫 0栏肺 悸泼
		{
			f->nWillDo = 0;
			SetRect(f->rCheakBox, 0, 0, 0, 0);
		}
	}
	return iReturnValue;
}

void SetCSDIconRectAndnWillDo()
{
	int iSkillId = iCSCovertSkillID;
	int iFieldNo = 17;//鞘靛 逞滚 剐扁
	int iGroupNo = 1;

//	( SetCSDFlied(1,GetKnowCSGroupType(1),17) );
//	( SetCSDFlied(2,GetKnowCSGroupType(2),17) );
//	( SetCSDFlied(3,GetKnowCSGroupType(3),5) );

	for ( iGroupNo =1; iGroupNo<4;iGroupNo++)
	{
		if( SetCSDFlied(iGroupNo,GetKnowCSGroupType(iGroupNo),iFieldNo) )
		{
			iFieldNo-=6;
		}
	}
}

void SetSCDMainAndOtherClear(const iCombatSkillIndex)
{	
	SMenu[MN_COMBAT_SKILL_DOING].nField[1].nWillDo = 0;
	SMenu[MN_COMBAT_SKILL_DOING].work = 0;//霸捞瘤啊 免仿 吝捞促
	for(int iFNo=5 ; iFNo <=22 ;iFNo++)//鞘靛傈何 努府绢 (努腐 规瘤 殿殿)
	{
		SFIELD *f = &SMenu[MN_COMBAT_SKILL_DOING].nField[iFNo];
		f->nWillDo = 0;
		SetRect(f->rCheakBox, 0, 0, 0, 0);//
	}
	if(!iCombatSkillIndex)
	{
		return;
	}//胶懦 牢郸胶啊 捞矾搁 救登瘤
	SMenu[MN_COMBAT_SKILL_DOING].nField[1].nWillDo = iCombatSkillIndex;//nWillDo 悸泼
	SMenu[MN_COMBAT_SKILL_DOING].work = 2;//霸捞瘤啊 免仿 吝捞促
}

bool IsSelectCombat()
{	//< CSD-TW-030606
	return (SMenu[MN_COMBAT_SKILL_DOING].nField[1].nWillDo == 0) ? false:true;
}	//> CSD-TW-030606

void CallCombatSkillDoingMenu()
{ //公炼扒 勘聪促
	if(!SMenu[MN_COMBAT_SKILL_DOING].bActive)
	{
		SMenu[MN_COMBAT_SKILL_DOING].bActive = true;	
	}
  /*
	else
	{
		SMenu[MN_COMBAT_SKILL_DOING].bActive = true;
	}
	InitCombatSkill();
	SetCSDIconRectAndnWillDo();
	SetSCDMainAndOtherClear(0);
  */
}

int iCSPMax = 0;
int iCSPNow	= 0;

int iCSPCMax = 0;
int iCSPCNow = 0;

void CSDMainIconClear()
{	//< CSD-TW-030627
	g_mgrBattle.SendCombatClear();
}	//> CSD-TW-030627

inline void ReadCombatSkillExplain(char * buf,int i)
{	
	char *token;

	token = strtok(buf, "\t\n\r");	if( token == NULL ) return;
	const int iIndex = CombatSkillExplain[i].iSkillNo				= atoi(token);	
	
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;
	strcpy(CombatSkillExplain[iIndex].EngName	,token);
//	CombatSkillExplain[iIndex].EngName[30] = 0;
	EatRearWhiteChar( CombatSkillExplain[iIndex].EngName);
	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;
	strcpy(CombatSkillExplain[iIndex].LocalName,token);
//	CombatSkillExplain[iIndex].LocalName[30] = 0;
	EatRearWhiteChar( CombatSkillExplain[iIndex].LocalName);
	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;//荤侩过
	strcpy(CombatSkillExplain[iIndex].ClassName,token);
//	CombatSkillExplain[iIndex].ClassName[50] = 0;
	EatRearWhiteChar( CombatSkillExplain[iIndex].ClassName);

	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;//荤侩过
	strcpy(CombatSkillExplain[iIndex].WeaponTactic,token);
//	CombatSkillExplain[iIndex].WeaponTactic[30] = 0;
	EatRearWhiteChar( CombatSkillExplain[iIndex].WeaponTactic);

	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;CombatSkillExplain[iIndex].iNeedLv[0]		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;CombatSkillExplain[iIndex].iNeedLv[1]		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;CombatSkillExplain[iIndex].iNeedLv[2]		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;CombatSkillExplain[iIndex].iLvCp[0]		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;CombatSkillExplain[iIndex].iLvCp[1]		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;CombatSkillExplain[iIndex].iLvCp[2]		= atoi(token);	

	for(int xx = 0; xx < 3; xx++)
	{
		token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;//荤侩过
		strcpy(CombatSkillExplain[iIndex].MicroExplain[xx],token);
//		CombatSkillExplain[iIndex].MicroExplain[xx][50] = 0;
		EatRearWhiteChar( CombatSkillExplain[iIndex].MicroExplain[xx]);
	}
	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;//荤侩过
	strcpy(CombatSkillExplain[iIndex].Use,token);
//	CombatSkillExplain[iIndex].Use[50] = 0;
	EatRearWhiteChar( CombatSkillExplain[iIndex].Use);

	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;
	strcpy(CombatSkillExplain[iIndex].Explain,token);
//	CombatSkillExplain[iIndex].Explain[100] = 0;
	EatRearWhiteChar( CombatSkillExplain[iIndex].Explain);
	
	ConvertSpecialWord(CombatSkillExplain[iIndex].Explain,"\\n",'\n');
	ConvertSpecialWord(CombatSkillExplain[iIndex].Explain,"\\t",'\t');
	ConvertSpecialWord(CombatSkillExplain[iIndex].Explain,"\\r",'\r');
	
	return;
}

bool LoadCombatSkillExplain()

⌨️ 快捷键说明

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