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

📄 nationsys.cpp

📁 DragonRaja Client source version 1.4+ this source allow players join in (Hades Warfield or Monsters
💻 CPP
📖 第 1 页 / 共 5 页
字号:
}
// Interface Concern Packet Send Function

void SendCMD_REQUEST_WARFIELD_STATUS(int RequestType)		// Request Warfield Status , Parameter : Button No
{
	t_packet p;

	p.h.header.type=CMD_REQUEST_WARFIELD_STATUS;
	p.u.NationWar.CommonDataC.Data=RequestType;				// Just Checking Warfield Status
	p.h.header.size=sizeof(t_CommonDataC);
	QueuePacket( &p, 1 );
}

int CheckWarfieldLoop()
{
	if (g_pNation->GetStatus(0)>=2) return 0;
	if (g_pNation->GetStatus(1)>=2) return 1;
	if (g_pNation->GetStatus(2)>=2) return 2;
	return -1;
}

void SendCMD_REQUEST_WARFIELD_INFO()
{
	t_packet p;

	int WarfieldNo=CheckWarfieldLoop();

	if (WarfieldNo>=0)
	{
		p.h.header.type=CMD_REQUEST_WARFIELD_INFO;
		p.u.NationWar.CommonDataC.Data=WarfieldNo;
		p.h.header.size=sizeof(t_CommonDataC);
		QueuePacket( &p, 1 );
	}
}

void SendCMD_REQUEST_VOTE_DATA(int WarfieldNo)				// Request Vote Data
{															// CMD_REQUEST_WARFIELD_STATUS -> CMD_ANSWER_WARFIELD_STATUS
	t_packet p;												// CMD_REQUEST_VOTE_DATA -> CMD_ANSWER_VOTE_DATA	
	p.h.header.type=CMD_REQUEST_VOTE_DATA;					// RecvCMD_ANSWER_VOTE_DATA() -> CallSmallMenu()
	p.u.NationWar.CommonDataC.Data=WarfieldNo;
	p.h.header.size=sizeof(t_CommonDataC);
	QueuePacket( &p, 1 );
}

void RecvCMD_ANSWER_VOTE_DATA(t_packet* p)					// Nation War Join Interface Open
{															// Display Data	
	if (p->u.NationWar.VoteData.WarfieldNo>=0)
	{
		//弊贰橇肺 弊府扁
//		p->u.NationWar.VoteData.WarfieldNo, ->傈里磐 逞滚

		switch(p->u.NationWar.VoteData.WarfieldNo)
		{
		case 0: //魂吝
			SMenu[MN_NATION_JOIN].nField[2].nImageNumber = 1;
			break;
		case 1: //乞盔
			SMenu[MN_NATION_JOIN].nField[2].nImageNumber = 3;
			break;
		case 2: //级
			SMenu[MN_NATION_JOIN].nField[2].nImageNumber = 2;
			break;
		}
		//010927 lsw
		char msg[10];
		sprintf(msg,"%d",p->u.NationWar.VoteData.VoteCount);
		strcpy(SMenu[MN_NATION_JOIN].nField[5].temp, msg );
		SMenu[MN_NATION_JOIN].nField[4].nWillDo =p->u.NationWar.VoteData.VoteCount ;

		char msg2[20];
		ReturnNationName(g_DefenceNation,msg2);
		char msg3[20];
		ReturnWarfieldName(p->u.NationWar.VoteData.WarfieldNo,msg3);
		//010928 lsw
		sprintf(SMenu[MN_NATION_JOIN].nField[3].temp,lan->OutputMessage(0,142), msg2,msg3 ); //" [ %s ]惫啊肺何磐 [ %s ]甫 呕券窍扁 困秦 傈里 急器 咯何甫 捧钎窍绰 镑涝聪促.\n 捧钎 扁埃篮 5盒捞 林绢瘤哥 弊 扁埃 救俊 5疙捞 逞霸 登搁 磊悼栏肺 傈里 急器啊 捞凤笼聪促.\n 傈里篮 傈里 急器 饶 20盒 饶俊 国绢瘤霸 邓聪促." 
		
		CallSmallMenu(MN_NATION_JOIN,MN_NATION_BATTLE_BBS);
	}
	else
	{
		CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,220), FALSE); //"傈里曼咯 捧钎甫 且 荐 绝嚼聪促."
	}
}

//傈里曼咯 捧钎
//牢磐其捞胶 啊 凯妨乐绰瘤 犬牢 茄促.. 掉饭捞 鸥烙俊 狼秦 急芭扁埃捞 瘤车绰单档 捧钎甫 茄促搁.. 
//捧钎甫 给沁促绰 菩哦捞 朝酒柯促..酒聪 朝酒客具 茄促.
//某腐磐 府胶飘 棺 DB俊 历厘秦具 茄促.
void SendCMD_VOTING_DATA()									// Send Nation War Join Data
{															// Ack Does Not Retrun
	t_packet p;	
	
	if (Hero->NWCharacter.DoWarJoinVote) 
	{
		CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,221), FALSE); //"捞固 傈里 曼咯 捧钎甫 窍继嚼聪促."
		return;
	}

	int WarfieldNo=CheckNationStatus(NW_VOTE);			
    if (WarfieldNo>=0) 
	{
		if (Hero->name_status.nation!=g_DefenceNation)
		{
			p.h.header.type=CMD_VOTING_DATA;
			p.u.NationWar.CommonDataC.Data=WarfieldNo;
			p.h.header.size=sizeof(t_CommonDataC);
			QueuePacket( &p, 1 );
		
			char msg[80],msg2[200];
			ReturnWarfieldName(WarfieldNo,msg);
			sprintf(msg2,lan->OutputMessage(0,222),msg); //"利惫狼 [ %s ] 肺 傈里俊 悼曼 狼荤甫 灌躯嚼聪促."
			CallOkCancelMessageBox(TRUE, 0,0, msg2, FALSE);
			Hero->NWCharacter.DoWarJoinVote=true;
		}
		else
		{
			CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,223), FALSE); //"规绢惫啊狼 惫刮篮 傈里曼咯捧钎甫 且 荐 绝嚼聪促."
		}
	}
}

void SendCMD_REQUEST_SQUAD_INFO(int SquadNo)				// Request Warfield Squad Information
{															// Open Turn of Squad Menu
	t_packet p;												// Interface Click -> CMD_REQUEST_WARFIELD_STATUS ->
	int WarfieldNo=CheckNationStatus(NW_PREPARE);						// CMD_ANSWER_WARFIELD_STATUS -> CMD_REQUEST_SQUAD_INFO ->
	if (WarfieldNo<0) WarfieldNo=CheckNationStatus(NW_WAR);		// 010927 LTS
	if (WarfieldNo>=3)
	{
		//<! BBD 040322
		char tempMessage[200];
		switch(WarfieldNo)
		{
		case WI_SNOWY_WARFIELD:
			{
				sprintf(tempMessage, lan->OutputMessage(0,292), lan->OutputMessage(0,386));  //汲盔傈里磐绰 何措扁瓷阑 荤侩窍瘤 臼嚼聪促.
				break;
			}
		case WI_HADES_WARFIELD:
			{
				sprintf(tempMessage, lan->OutputMessage(0,292), lan->OutputMessage(0,619));
				break;
			}
		default:
			{
				break;
			}
		}
		CallOkCancelMessageBox(TRUE, 0,0,tempMessage, FALSE);
		return;
		//> BBD 040322
	}
															// CMD_ANSWER_SQUAD_INFO -> CallOkCancelMessageBox(TRUE()

	if (SquadNo<1)											// 何措 锅龋 0篮 何措 祈己捞 登瘤 臼篮 蜡历狼 葛烙捞促.
	{
		SquadNo=1;
		g_Squad=1;
	}
	if (SquadNo>4)
	{
		SquadNo=4;
		g_Squad=4;
	}
	if (WarfieldNo>=0)
	{
		p.h.header.type=CMD_REQUEST_SQUAD_INFO;
		p.u.NationWar.RequestSquadInfo.Nation=Hero->name_status.nation;		// 老胶牢版快... 锅龋啊 甸绢埃促.
		p.u.NationWar.RequestSquadInfo.WarfieldNo=WarfieldNo;
		p.u.NationWar.RequestSquadInfo.SquadNo=SquadNo;
		p.h.header.size=sizeof(t_RequestSquadInfo);
		QueuePacket( &p, 1 );
		//AddCurrentStatusMessage( 255,255,0, "何措祈己 单捞磐甫 夸没窍看嚼聪促. 何措锅龋:%d",g_Squad);
	}
}

void RecvCMD_ANSWER_SQUAD_INFO(t_packet* p)					// Squad Information Packet process
{
	//MN 何措 牢磐 其捞胶
	g_SquadLoadingPoint	=	p->u.NationWar.SquadInfo.LoadingPoint;
	g_SquadNum = p->u.NationWar.SquadInfo.SquadNo;

	NationSupportNationSquadLeader( p);//010910 lsw
}

void RecvCMD_ANSWER_SQUAD_INFO2(t_packet* p)
{
	NationSupportNationSquadLeader2( p);//010910 lsw
}

//荤飞包 捧钎单捞鸥 夸没
void SendCMD_REQUEST_COMMANDER_VOTE_DATA(int CandidaterNo)	// Request Commander Candidater Information, Parameter : Candidater No
{
	t_packet p;
	int WarfieldNo=CheckNationStatus(NW_PREPARE);

	if (CandidaterNo<0)								// 荤飞包 锅龋狼 眉农..
	{
		g_Commander=0;
		CandidaterNo=0;
	}
	if (CandidaterNo>5)
	{
		g_Commander=5;
		CandidaterNo=5;
	}

	if (WarfieldNo>=0)
	{
		p.h.header.type=CMD_REQUEST_COMMANDER_VOTE_DATA;
		p.u.NationWar.RequestCommanderVoteData.Nation=Hero->name_status.nation;
		p.u.NationWar.RequestCommanderVoteData.WarfieldNo=WarfieldNo;
		p.u.NationWar.RequestCommanderVoteData.CandidaterNo=CandidaterNo;
		p.h.header.size=sizeof(t_RequestCommanderVoteData);
		QueuePacket( &p, 1 );
		//AddCurrentStatusMessage( 255,255,0, "荤飞包 捧钎磊丰甫 夸没窍看嚼聪促. 惫啊锅龋:%d, 荤飞包 捧钎磊丰:%d",WarfieldNo,CandidaterNo);
	}
}
void RecvCMD_ANSWER_COMMANDER_VOTE_DATA(t_packet* p)		// Answer Commander Candidater Information
{
	//捞芭档 官层具 凳 父甸绢 初疽澜
//	AddCurrentStatusMessage( 255,255,0, "荤飞包 饶焊 %d狼 单捞磐涝聪促.",p->u.NationWar.CommanderVoteData.VoteNo);
//	AddCurrentStatusMessage( 255,255,0, "饶焊ID : %d, 饶焊捞抚 : %s",p->u.NationWar.CommanderVoteData.CandidaterID,p->u.NationWar.CommanderVoteData.Name);
//	AddCurrentStatusMessage( 255,255,0, "饭骇 : %d, 疙己摹 : %d, 瘤瘤钎 :%d",p->u.NationWar.CommanderVoteData.Level,p->u.NationWar.CommanderVoteData.Fame,p->u.NationWar.CommanderVoteData.VoteCount);
	g_CommanderCandidaterLevel = p->u.NationWar.CommanderVoteData.Level;
	
	if(p->u.NationWar.CommanderVoteData.CandidaterID != 0)
	{
	sprintf(SMenu[MN_NATION_VOTE].nField[5].temp,"%d",SHideNomal[HN_MAKECHARACTER_CLASS_TEXT][p->u.NationWar.CommanderVoteData.VoteCount]);
	sprintf(SMenu[MN_NATION_VOTE].nField[6].temp,"%s",p->u.NationWar.CommanderVoteData.Name);
  const __int8 nBefore = p->u.NationWar.CommanderVoteData.Class;	// 努贰胶		// 011020 LTS
  const __int8 nAfter = p->u.NationWar.CommanderVoteData.nDual;	// 掂倔..		// 011020 LTS
	const __int8 nStep = p->u.NationWar.CommanderVoteData.nStep;	// 胶跑			// 011020 LTS
  const string strName = g_mgrDual.GetClassName(nBefore, nAfter, nStep, g_CommanderCandidaterLevel);
	sprintf(SMenu[MN_NATION_VOTE].nField[7].temp,"%s", strName.c_str() );
	sprintf(SMenu[MN_NATION_VOTE].nField[8].temp,"%d",p->u.NationWar.CommanderVoteData.Fame);
	sprintf(SMenu[MN_NATION_VOTE].nField[9].temp,"%d",p->u.NationWar.CommanderVoteData.LadderScore);
	SMenu[MN_NATION_VOTE].nField[10].nWillDo = 1;//倔奔 捞固瘤 难扁
	SMenu[MN_NATION_VOTE].nField[10].nImageType = p->u.NationWar.CommanderVoteData.Gender;
	SMenu[MN_NATION_VOTE].nField[10].nRectImage = p->u.NationWar.CommanderVoteData.Face;
	}
	else
	{
	SMenu[MN_NATION_VOTE].nField[10].nWillDo = 0;
	sprintf(SMenu[MN_NATION_VOTE].nField[5].temp,lan->OutputMessage(0,224)); //"殿废措扁"
	sprintf(SMenu[MN_NATION_VOTE].nField[6].temp,lan->OutputMessage(0,224)); //"殿废措扁"
	sprintf(SMenu[MN_NATION_VOTE].nField[7].temp,lan->OutputMessage(0,224)); //"殿废措扁"
	sprintf(SMenu[MN_NATION_VOTE].nField[8].temp,lan->OutputMessage(0,224)); //"殿废措扁"
	sprintf(SMenu[MN_NATION_VOTE].nField[9].temp,lan->OutputMessage(0,224)); //"殿废措扁"
	}
}

void RecvCMD_ANSWER_COMMANDER_VOTE_DATA2(t_packet* p)
{
	char msg[200];
	memset(msg,0,200);
	
	for ( int i = 0 ; i < 6 ; i++)//011001 lsw
	{
		sprintf(msg,"%s\n   [%d]",p->u.NationWar.CommanderVoteData2.CandidaterName[i],p->u.NationWar.CommanderVoteData2.VoteCount[i]);
		strcpy(SMenu[MN_NATION_VOTE].nField[11+i].temp, msg);
	}
	
	//011005 lsw >
	CallSmallMenu(MN_NATION_VOTE,MN_NATION_BATTLE_BBS);	// Commander Candidater Interface Open
	//011005 lsw <
}


bool CheckJoinLevel(int SquadNo)	// 011015 LTS
{
	switch (SquadNo)
	{
	case 1 :
		if (Hero->lv>=NW_SQUAD1_LEVEL_MIN&&Hero->lv<=NW_SQUAD1_LEVEL_MAX) return true;
		return false;
	case 2 :
		if (Hero->lv>=NW_SQUAD2_LEVEL_MIN&&Hero->lv<=NW_SQUAD2_LEVEL_MAX) return true;
		return false;
	case 3 :
		if (Hero->lv>=NW_SQUAD3_LEVEL_MIN&&Hero->lv<=NW_SQUAD3_LEVEL_MAX) return true;
		return false;
	case 4 :
		if (Hero->lv>=NW_SQUAD4_LEVEL_MIN&&Hero->lv<=NW_SQUAD4_LEVEL_MAX) return true;
		return false;
	}
	return true;

}
//何措甫 函版 茄促.. 
//何措锅龋绰 傈里锅龋客 窃膊 DB俊 历厘登绢具 茄促.
//捞固 何措啊 乐绰版快... //傈里锅龋客 厚背甫 茄促. // 浆婆 何措厘捞搁.. 救等促..
//捞固 何措啊 乐绰 版快  
//捞傈 何措狼 锅龋  //某腐磐 府胶飘俊 眠啊登绢具 窍绰 荤亲 
//何措俊 货肺 炼牢窍绰 版快 
//捞傈 何措狼 锅龋  //某腐磐 府胶飘俊 眠啊登绢具 窍绰 荤亲 
void SendCMD_CHANGE_SQUAD(int SquadNo)						// Squad Registration Change 
{
	t_packet p;
	int WarfieldNo=CheckNationStatus(NW_PREPARE);    

	if (Hero->NWCharacter.isSquadLeader) 
	{
		CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,225), FALSE); //"何措厘篮 何措甫 官操角 荐 绝嚼聪促."
		return;
	}

	if (Hero->NWCharacter.SquadNo) //巩力 檬扁蔼栏肺 0捞酒囱 蔼捞 乐绢具 茄促. // If Hero Have Old Squad No
	{														// Send CMD_CHANGE_SQUAD Packet to Manage Server
		CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,226), FALSE); //"促弗 何措肺 殿废窍角 荐 绝嚼聪促."
	}
	else													// Hero Does Not Have Old Squad No
	{														// Send CMD_JOIN_SQUAD Packet to Manage Server
		if (CheckJoinLevel(SquadNo))						// 011015 LTS
		{
			p.h.header.type=CMD_JOIN_SQUAD;						// Answer was CMD_JOIN_SQUAD or CMD_YOU_ARE_SQUAD_LEADER
			p.u.NationWar.JoinSquad.Nation=Hero->name_status.nation;
			p.u.NationWar.JoinSquad.WarfieldNo=WarfieldNo;    
			p.u.NationWar.JoinSquad.SquadNo=g_Squad; //官诧促.. 牢磐其捞胶 蔼...
			p.h.header.size=sizeof(t_JoinSquad);
			QueuePacket( &p, 1 );

			char msg[80],msg2[200];
			ReturnWarfieldName(p.u.NationWar.JoinSquad.WarfieldNo,msg);
			sprintf(msg2,lan->OutputMessage(0,227),msg, p.u.NationWar.JoinSquad.SquadNo); //"[ %s ]狼 [力 %d 何措] 何措盔栏肺 殿废灯嚼聪促."
			PlayListAutoSounds(257,0,0,0);
			CallOkCancelMessageBox(TRUE, 0,0, msg2, FALSE);
		}
		else CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,228), FALSE); //"秦寸 何措俊 殿废窍扁俊 嘎瘤 臼篮 饭骇涝聪促."
	}
}

void RecvCMD_YOU_ARE_SQUAD_LEADER(t_packet *p)
{
	//何措厘捞骨肺.. 包访等 单捞鸥甫 技飘茄促.. ぬ.ぬ
	if (Hero->name_status.nation==NW_YL) Hero->NWCharacter.YL_JoinNation=p->u.NationWar.JoinSquad.Nation;
	Hero->NWCharacter.WarfieldNo=p->u.NationWar.JoinSquad.WarfieldNo;
	Hero->NWCharacter.SquadNo=p->u.NationWar.JoinSquad.SquadNo;
	Hero->NWCharacter.isSquadLeader=1;
	char msg[80],msg2[200];
	ReturnWarfieldName(Hero->NWCharacter.WarfieldNo,msg);
	sprintf(msg2,lan->OutputMessage(0,229),msg,Hero->NWCharacter.SquadNo); //"[ %s ]狼 [力 %d 何措] 何措厘俊 殿废灯嚼聪促."

	CallOkCancelMessageBox(TRUE, 0,0, msg2, FALSE);
}

void RecvCMD_JOIN_SQUAD(t_packet *p)
{
	if (Hero->name_status.nation==NW_YL) Hero->NWCharacter.YL_JoinNation=p->u.NationWar.JoinSquad.Nation;
	Hero->NWCharacter.WarfieldNo=p->u.NationWar.JoinSquad.WarfieldNo;
	Hero->NWCharacter.SquadNo=p->u.NationWar.JoinSquad.SquadNo;
	char msg[80],msg2[200];
	ReturnWarfieldName(Hero->NWCharacter.WarfieldNo,msg);
	sprintf(msg2,lan->OutputMessage(0,227),msg,Hero->NWCharacter.SquadNo); //"[ %s ]狼 [力 %d 何措] 何措盔栏肺 殿废灯嚼聪促."

	CallOkCancelMessageBox(TRUE, 0,0, msg2, FALSE);

⌨️ 快捷键说明

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