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

📄 nationsupport.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
#include "stdafx.h"
#include "gameproc.h"
#include "NetWork.h"
#include "NationSys.h"
#include "menu.h"
#include "SmallMenu.h"
#include "map.h"
#include "LineCommand.h"
#include "DirectSound.h"
#include "tool.h"
#include "nationsys.h"
#include "nationSUPPORT.h"
#include "MenuDef2.h"
#include "menuset.h"//021008 lsw
#include "Skill.h"//021008 lsw
#include "Auction.h"//021008 lsw
#include "MailMgr.h"//021008 lsw

extern void SendMoveToHomeTown();
extern void SendMoveToHomeTownWithAlive();
extern int CallFriendMenu();
extern cNation*	g_pNation;
extern int g_Squad;						// 唱吝俊 努贰胶俊 器窃茄促. 
extern int g_Commander;
extern int g_AttackNation;
extern int g_DefenceNation;
extern int g_CommanderCandidaterLevel;   //唱吝俊 官槽促..
extern bool g_bWarBegin;  // RecvCMD_WAR_START,END俊辑 荤侩 

extern int g_SquadLoadingPoint;//肺爹器牢飘 锅龋 
extern int g_SquadNum;			//何措皋春 

extern int WarResultAniCount;
extern bool isNationWarfieldServer();
extern void SendCMD_NW_MAP_MOVE(int Type,int WarfieldNo);
extern bool isAttacker();
extern void SendNationPacket(int type);
extern void SendCMD_REQUEST_SQUAD_INFO(int SquadNo);				// Request Warfield Squad Information
extern void SendCMD_REQUEST_COMMANDER_VOTE_DATA(int CandidaterNo);	// Request Commander Candidater Information, Parameter : Candidater No
extern void SendCMD_SET_SQUAD_LODING_POINT(int SquadNo,int LoadingPoint) ;
extern int GetSquadNo();
extern int CheckNationStatus(int StatusNo);
extern void GetTime(DWORD RemainTime,WORD& Hour,WORD& Min,WORD& Sec);
void NationWarResultDoneButton();//搬苞 俊辑 done 穿福搁 甸绢咳

extern void SendCMD_CHECK_AM_I_DEFEAT();			//烙矫窃荐 // 011015 LTS
extern void SendCMD_LOCALWAR_JOIN();									// LTS LOCALWAR
extern void DrawLocalWarJoinInterface(int ImageType,int MenuNumber,int BaseX,int BaseY);
extern bool isNewWarfieldServer();
extern void SendCMD_CHECK_DEFEAT();
extern void CallMapMoveMenu(int WarfieldNo);

//010924 lsw
int g_TodayNoticeStatus[3]	= {0,};
int g_TodayNoticeMsgNo[3] ={300,300,300};

void NationSupportRecvNationWarResult(t_packet *p)
{
	WarResultAniCount = 0;
 	int WinNation=p->u.NationWar.WarBBS.Arg[0];
	int AttackerWin=p->u.NationWar.WarBBS.Arg[1];
	//___________________________	// 010927 LTS
	WORD BYCount;
	WORD ZYCount;
	WORD YL_BYCount;
	WORD BYDeathCount;
	WORD ZYDeathCount;
	WORD YL_ZYCount;
	//011014 lsw >
	g_bWarBegin =0;
	//011014 lsw <

	//___________________________	// 010927 LTS
	memcpy(&BYCount,		&p->u.NationWar.WarBBS.Arg[2],sizeof(WORD));	// 12官捞飘... 糕滚墨款飘捞促.
	memcpy(&ZYCount,		&p->u.NationWar.WarBBS.Arg[4],sizeof(WORD));	// 12官捞飘... 糕滚墨款飘捞促.
	memcpy(&YL_BYCount,		&p->u.NationWar.WarBBS.Arg[6],sizeof(WORD));	// 12官捞飘... 糕滚墨款飘捞促.

	memcpy(&BYDeathCount,	&p->u.NationWar.WarBBS.Arg[8],sizeof(WORD));	// 12官捞飘... 糕滚墨款飘捞促.
	memcpy(&ZYDeathCount,	&p->u.NationWar.WarBBS.Arg[10],sizeof(WORD));	// 12官捞飘... 糕滚墨款飘捞促.
	memcpy(&YL_ZYCount,		&p->u.NationWar.WarBBS.Arg[12],sizeof(WORD));	// 12官捞飘... 糕滚墨款飘捞促.

	//011014 LSW >
	SMenu[MN_NATION_WAR_RESULT].nField[1].nWillDo = BYDeathCount;
	SMenu[MN_NATION_WAR_RESULT].nField[2].nWillDo = ZYDeathCount;

	SMenu[MN_NATION_WAR_RESULT].nField[3].nWillDo = BYCount;
	SMenu[MN_NATION_WAR_RESULT].nField[4].nWillDo = YL_BYCount;

	SMenu[MN_NATION_WAR_RESULT].nField[5].nWillDo =	ZYCount;
	SMenu[MN_NATION_WAR_RESULT].nField[6].nWillDo = YL_ZYCount;
	//011014 LSW <

	int iamwin = 0;

	if( Hero->name_status.nation==NW_YL)
	{
		 if( Hero->NWCharacter.YL_JoinNation==WinNation)
		 {
			iamwin = 1;
		 }
	}
	if( Hero->name_status.nation==WinNation)//铰府 措惑
	{
		iamwin = 1;
	}

	
	if( iamwin )//铰府 措惑
	{
		SMenu[MN_NATION_WAR_RESULT].nField[0].nImageType = 0;
		//PlayListAutoSounds(62,0,0,0);			
		if(WinNation==NW_BY)//官捞辑胶啊 捞辫
		{
			SMenu[MN_NATION_WAR_RESULT].nField[7].nImageNumber = 1;
		}
		else if(WinNation==NW_ZY)//磊捞戚捞 捞辫
		{
			SMenu[MN_NATION_WAR_RESULT].nField[7].nImageNumber = 3;
		}
	}
	else//菩硅 措惑
	{
		SMenu[MN_NATION_WAR_RESULT].nField[0].nImageType = 1;
		//PlayListAutoSounds(62,0,0,0);
		//010927 lsw 菩硅 窍绰芭
		if(WinNation==NW_BY)//磊捞戚捞 咙
		{
			SMenu[MN_NATION_WAR_RESULT].nField[7].nImageNumber = 4;
		}
		else if(WinNation==NW_ZY)//官捞辑胶啊 咙
		{
			SMenu[MN_NATION_WAR_RESULT].nField[7].nImageNumber = 2;
		}
	}	

	CallSmallMenu(MN_NATION_WAR_RESULT);
	return;
}

int CallNationYesOrNo(int iPrevType,int temp)
{
	MP3(258);
	switch(iPrevType)
	{
	//010928 lsw
	case SWD_NATION_BUDAE_JOIN://何措 殿废 汞扁 krlan阑 哗坷磊 
		if(g_bWarBegin == 1 )//傈里吝捞搁
		{
			CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,197), FALSE);
			return 0;
		}
		else
		{
			sprintf(SMenu[MN_NATION_MSGBOX].nField[2].temp,lan->OutputMessage(0,143),temp);
		}
		break;
	
	case SWD_NATION_VOTE_I_AM_HERO://何措 殿废 汞扁 krlan阑 哗坷磊 
		sprintf(SMenu[MN_NATION_MSGBOX].nField[2].temp,lan->OutputMessage(0,144));
		break;
	}
	SMenu[MN_NATION_MSGBOX].nField[1].nWillDo=iPrevType;//捞 蔼阑 曼炼 窍咯 老阑 茄促
	
	CallSmallMenu(MN_NATION_MSGBOX,MN_NATION_BATTLE_BBS);//皋技瘤 冠胶 龋免
	return 0;
}

// Style Flag	---> 0x0000 ALL_CLEAR 0x0001 FORCE_TYPE 0x0002 QUEUE_TYPE 
// iPositionFlag---> 
//					At QUEUE_TYPE
//						0x0001 FIRST_IN 0x0002	LAST_IN
//
//

//020620 YGI  昏力


//011013 lsw>
void IntoNationNotice(const eIntoNationNoticeType iStyleFlag, int iPosition, char *Msg)//QUEUE Style //INTOPOSTION Style // ALL Clear // 
{	
	switch(iStyleFlag )
	{
	case ALL_CLEAR:
		{
			ZeroMemory( SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp,sizeof(char)*MAX_STRING);
			ZeroMemory( SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp,sizeof(char)*MAX_STRING);
			ZeroMemory( SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp,sizeof(char)*MAX_STRING);
			ZeroMemory( SMenu[MN_NATION_TODAY_NOTICE].nField[4].temp,sizeof(char)*MAX_STRING);
			ZeroMemory( SMenu[MN_NATION_TODAY_NOTICE].nField[5].temp,sizeof(char)*MAX_STRING);
			ZeroMemory( SMenu[MN_NATION_TODAY_NOTICE].nField[6].temp,sizeof(char)*MAX_STRING);
		}
		break;
	case FORCE_TYPE:
		{
			strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[iPosition].temp, Msg);
			memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[iPosition+3].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[iPosition].temp+1), 16);//累篮沫 悸泼
			SMenu[MN_NATION_TODAY_NOTICE].nField[iPosition+3].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[iPosition+3].temp)-1);
		}break;
	case QUEUE_TYPE:
		{
			switch(iPosition )
			{
			case FIRST_IN:
				{
					// 020706 YGI -----------------------
					if( !SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp[0] )
					{
						IntoNationNotice( FORCE_TYPE, 1, Msg );
						return;
					}
					memset( SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp, 0, sizeof( SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp ) );
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp, SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp);
					memset( SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp, 0, sizeof( SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp ) );
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp, SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp);
					memset( SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp, 0, sizeof( SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp ) );
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp, Msg);
					// ----------------------------------------

					memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[4].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp+1), 16);//累篮沫 悸泼
					memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[5].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp+1), 16);//累篮沫 悸泼
					memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[6].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp+1), 16);//累篮沫 悸泼

					SMenu[MN_NATION_TODAY_NOTICE].nField[4].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[4].temp)-1);
					SMenu[MN_NATION_TODAY_NOTICE].nField[5].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[5].temp)-1);
					SMenu[MN_NATION_TODAY_NOTICE].nField[6].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[6].temp)-1);

					//011030 lsw >
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[7].temp, lan->OutputMessage(0, 399));
					//011030 lsw <
				}break;
			case LAST_IN:
				{
					// 020706 YGI -----------------------
					if( !SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp[0] )
					{
						IntoNationNotice( FORCE_TYPE, 3, Msg );
						return ;
					}
					memset( SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp, 0, sizeof( SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp ) );
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp, SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp);
					memset( SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp, 0, sizeof( SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp ) );
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp, SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp);
					memset( SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp, 0, sizeof( SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp ) );
					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp, Msg);
					// ----------------------------------------

					memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[4].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[1].temp+1), 16);//累篮沫 悸泼
					memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[5].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[2].temp+1), 16);//累篮沫 悸泼
					memcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[6].temp,(SMenu[MN_NATION_TODAY_NOTICE].nField[3].temp+1), 16);//累篮沫 悸泼

					SMenu[MN_NATION_TODAY_NOTICE].nField[4].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[4].temp)-1);
					SMenu[MN_NATION_TODAY_NOTICE].nField[5].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[5].temp)-1);
					SMenu[MN_NATION_TODAY_NOTICE].nField[6].nWillDo  = (strlen(SMenu[MN_NATION_TODAY_NOTICE].nField[6].temp)-1);

					strcpy(SMenu[MN_NATION_TODAY_NOTICE].nField[7].temp, lan->OutputMessage(0, 399));
				}break;
			}
		}break;
	}

	int *MasterImage	;
	int *SlaveImage		;
	int	*WillDo			;

	for(int pos = 1; pos < 4; pos++)
	{
		MasterImage		= &SMenu[MN_NATION_TODAY_NOTICE].nField[pos].nImageNumber;
		SlaveImage		= &SMenu[MN_NATION_TODAY_NOTICE].nField[pos].nRectImage;
		WillDo			= &SMenu[MN_NATION_TODAY_NOTICE].nField[pos].nWillDo;
		char 	Status	=	SMenu[MN_NATION_TODAY_NOTICE].nField[pos].temp[0];
			
		switch (Status)
		{
		case '0'://捞亥飘 绝澜
			{
				*MasterImage	=	9;
				*SlaveImage		=	10;
				*WillDo			=	1;
			}
			break;
		case '1'://傈捧 包访惑怕
			{	//傈捧 包访 惑怕
				*MasterImage	=	5;	
				*SlaveImage		=	6;
				*WillDo			=	1;
			}
		break;
		case '2'://傍瘤 包访
			{	//傍瘤包访.. (捧钎唱.. 殿殿)
				*MasterImage	=	7;	
				*SlaveImage		=	8;
				*WillDo			=	1;
			}
			break;
		case '3'://捞亥飘 包访 
			{	//捞亥飘 包访
				*MasterImage	=	3;	
				*SlaveImage		=	4;
				*WillDo			=	1;
			}
			break;
		default:
			{
				*MasterImage	=	9;
				*SlaveImage		=	10;
				*WillDo			=	1;
			}
			break;
		}
	}
	return;
}
//011013 lsw <

bool DoButtonNationOkCancel_lsw(int iOkType)
{
	switch(iOkType)
	{
	case SWD_NATION_BUDAE_JOIN:
		SendNationPacket(BUTTON_SQUAD_JOIN);
		break;
	case SWD_NATION_VOTE_I_AM_HERO:
		SendNationPacket(BUTTON_COMMANDER_REG);
		break;
	}
	return false;
}

//何措俊 殿废 且 炼扒捞 登绰啊 眉农
bool NationSupportCheckSquadJoin()
{
	return true;
}

//荤飞包捞 瞪荐 乐绰啊甫 眉农
bool NationSupportCheckCanWillCommander()
{
	return true;
}


void NationSupportNationNow1(t_packet *p)
{
	char  GuardStoneSize=p->u.data[0];
	char  CastleSize=p->u.data[GuardStoneSize+1];
	char* GuardStoneStatus=new char[GuardStoneSize];
	char* CastleStatus=new char[CastleSize];

	SMenu[MN_NATION_NOW].nField[20].nWillDo		= 1;
	SMenu[MN_NATION_NOW].nField[21].nWillDo		= 1;
	SMenu[MN_NATION_NOW].nField[22].nWillDo		= 1;
	SMenu[MN_NATION_NOW].nField[23].nWillDo		= 1;

	switch( CheckNationStatus(NW_WAR))
	{	
	case	0://魂吝OK
		//谅钎棺 技泼		
		SMenu[MN_NATION_NOW].nField[3].nImageNumber = 9;
		SMenu[MN_NATION_NOW].nField[4].nType = 0;//捞抚 官蹿波 靖
		/*
		[64.132]-1锅荐龋籍
		[91.123]-2锅荐龋籍
		[129.85]-3锅荐龋籍
		[141.58]-4锅荐龋籍
		[99.150]-1锅己巩
		[136.113]-2锅己巩
		[174.75]-3锅己巩
		*/

		//己巩 4娄
		SMenu[MN_NATION_NOW].nField[24].x = 99 +19;

⌨️ 快捷键说明

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