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

📄 nationsys.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
		for( j = 0 ; j < 5 ; j ++)
		{				
			s = &SquadPic[i][j];
			fread( &size, 4,1, fp);
			if( size== 0 )	
			{				
				s->xl = 0;	
				s->yl = 0;	
				s->size = 0;
				s->img = NULL;
				continue;	
			}				
							
			fread( &(s->xl),	sizeof( short ), 1, fp);
			fread( &(s->yl),	sizeof( short ), 1, fp);
			//s->yl ++;		
			fread( &(s->ox),	sizeof( short ), 1, fp);
			fread( &(s->oy),	sizeof( short ), 1, fp);
			fread( &(s->size),sizeof( unsigned int ), 1, fp);
							
			if( nOff + s->size >= sprfilelength ) 
			{						
				JustMsg( lan->OutputMessage(6,51),FileName, i+1, j );
				ExitApplication(EA_LOAD_LOACL_SQUAD_SPR_DATA);
			}						
			fread( SquadPicBuffer + nOff, s->size, 1, fp);
			s->img = SquadPicBuffer + nOff;
							
			convert565to555_LoadSprite( s );
							
			nOff += size;		
		}		
	}			
	fclose(fp);	
	return sprfilelength;	
}

void DeleteSquadPic()
{
	MemFree( SquadPicBuffer );
}

// Global Function
bool InitNation()					
{
	if (!LoadSquadPic("./char/WarSquad.spr")) 
	{
		JustMsg( "./char/WarSquad.spr Error!!");
		return false;
	}


	if (!LoadLocalWarInfoPic("./data/LWInfo.dat")) 
	{
		JustMsg( "./data/LWInfo.dat Error!!");
		return false;	// LTS LOCALWAR
	}
	InitSitDownData();			// LTS SITDOWN BUG
	/*if (!LoadChairPic("./char/092000.spr")) 
	{
		JustMsg( "./char/092.spr 颇老俊 巩力啊 乐嚼聪促.");
		return false;				// LTS SITDOWN
	}*/
	g_pNation=new cNation;
	if (g_pNation==NULL) return false;

	g_pDontManager=new CDontManager;
	if (g_pDontManager==NULL)
		return false;
	else
		g_pDontManager->LoadData();
	return true;
}

void CloseNation()
{
	DeleteSquadPic();
	FreeLocalWarInfoPicBuffer();				// LTS LOCALWAR
	FreeChairPicBuffer();						// LTS SITDOWN
	SAFE_DELETE(g_pNation);
	SAFE_DELETE(g_pDontManager);
}

// Very often Call Function
int CheckNationStatus(int StatusNo)
{
	int WarfieldNo=-1;
	if (g_pNation->GetStatus(0)==StatusNo) WarfieldNo=0;
	if (g_pNation->GetStatus(1)==StatusNo) WarfieldNo=1;
	if (g_pNation->GetStatus(2)==StatusNo) WarfieldNo=2;
	if (g_pNation->GetNewStatus(0)==StatusNo) WarfieldNo=3;
    return WarfieldNo;
}

bool isNationWarfieldServer()
{
	if (MapInfo[MapNumber].port==WARFIELD_PORT1 ||
		MapInfo[MapNumber].port==WARFIELD_PORT2 ||
		MapInfo[MapNumber].port==WARFIELD_PORT3	) return true;
	return false;
}

bool isNewWarfieldServer()
{
	int Port=MapInfo[MapNumber].port;
	if (Port<BASE_NEW_WARFIELD_PORT||Port>=(BASE_NEW_WARFIELD_PORT+MAX_NEW_WARFIELD))
		return false;
	return true;
}

bool isOurSquad(LPCHARACTER hero,LPCHARACTER ch)			// 011028 LTS
{
	if (!isNationWarfieldServer()&&!isNewWarfieldServer()) return true;

	if (hero->name_status.nation!=ch->name_status.nation)	//滴蜡历啊 促弗 唱扼捞搁 荤恩捞搁 
	{
		if (Hero->name_status.nation==NW_YL)	// 011019 LTS	// 林牢傍捞 老胶捞搁
		{
			if (ch->name_status.nation==NW_YL)	//措惑档 老胶捞搁 
			{
				if (hero->NWCharacter.YL_JoinNation==ch->NWCharacter.YL_JoinNation) return true; // 鞍篮 唱扼俊 炼牢沁促搁 快府何措
				else return false;	// 促弗唱扼俊 炼牢沁促搁 快府何措 酒丛
			}
			else	//林牢傍篮 老胶 措惑篮 老胶啊 酒聪促
			{
				if (hero->NWCharacter.YL_JoinNation==ch->name_status.nation) return true;   // Join茄 惫啊啊 鞍栏搁 鞍篮 祈
				else return false; // 炼牢茄 惫啊啊 促福搁 
			}
		}
		else	// Hero啊 老胶啊 捞聪促 
		{
			if (ch->name_status.nation==NW_YL)	//措惑捞 老胶捞搁 
			{
				if (Hero->name_status.nation==ch->NWCharacter.YL_JoinNation) return true;
				else return false;
			}
			else return false;	// 林牢傍档 措惑档 老胶啊 酒聪促. 
		}
	}
	else 
	{
		if (Hero->name_status.nation==NW_YL)	// 011019 LTS	// 林牢傍捞 老胶捞搁
		{
			if (ch->name_status.nation==NW_YL)	//措惑档 老胶捞搁 
			{
				if (hero->NWCharacter.YL_JoinNation==ch->NWCharacter.YL_JoinNation) return true; // 鞍篮 唱扼俊 炼牢沁促搁 快府何措
				else return false;	// 促弗唱扼俊 炼牢沁促搁 快府何措 酒丛
			}
			else	//林牢傍篮 老胶 措惑篮 老胶啊 酒聪促
			{
				if (hero->NWCharacter.YL_JoinNation==ch->name_status.nation) return true;   // Join茄 惫啊啊 鞍栏搁 鞍篮 祈
				else return false; // 炼牢茄 惫啊啊 促福搁 
			}
		}
		else return true;	// Hero啊 老胶啊 捞聪促 
	}
}


bool isAttacker()			// 傈里磐 甘俊辑父 啊瓷窍促.
{
	if (Hero->name_status.nation==NW_YL)
	{
		if (Hero->NWCharacter.YL_JoinNation==g_DefenceNation) return false;
		else return true;
	}
	if (Hero->name_status.nation==g_DefenceNation) return false;
	else return true;
}

bool isAttacker(LPCHARACTER ch)				// LTS DRAGON BUG
{
	if (ch->name_status.nation==NW_YL)
	{
		if (ch->NWCharacter.YL_JoinNation==g_DefenceNation) return false;
		else return true;
	}
	if (ch->name_status.nation==g_DefenceNation) return false;
	else return true;
}

bool isEnemy(LPCHARACTER ch1,LPCHARACTER ch2)	// LTS DRAGON BUG2
{
	if (isNewWarfieldServer())
	{
		int Nation1=ch1->name_status.nation;
		int Nation2=ch2->name_status.nation;
		if (Nation1==NW_YL)
			Nation1=ch1->NWCharacter.YL_JoinNation;
		if (Nation2==NW_YL)
			Nation2=ch2->NWCharacter.YL_JoinNation;

		if (Nation1==Nation2)
			return false;
		else
			return true;
	}
	else
	{
		if (isAttacker(ch1)==isAttacker(ch2)) return false;
		return true;
	}
}


int GetSquadNo()
{
	return Hero->NWCharacter.SquadNo;
}


void DrawSquadPic(int x,int y,LPORDERTABLE o,LPCHARACTER ch)	// 011019 LTS	// LTS HORSERIDER
{
	//if (!isNationWarfieldServer()) return;
	//if (!g_bWarBegin) return;
	if (ch->viewtype!=VIEWTYPE_TRANSPARENCY_&&ch->viewtype!=VIEWTYPE_GHOST_)	// 捧疙捞芭唱 磷绢乐绰仇篮 力寇 
	{
		int NationIndex=GetNationIndex(ch->name_status.nation);

		if (isNationWarfieldServer())
		{
			if (ch->NWCharacter.isCommander) PutCompressedImage(x,y,&SquadPic[NationIndex][4]);		// 荤飞包捞搁..
			else if (ch->NWCharacter.SquadNo) PutCompressedImage(x,y,&SquadPic[NationIndex][ch->NWCharacter.SquadNo-1]);	// 何措捞搁..
			else
			{
				if (ch->name_status.nation==NW_YL)
				{
					if (ch->NWCharacter.YL_JoinNation==NW_BY)		// 官捞侩捍捞搁....
					{
						PutCompressedImage(x,y,&SquadPic[0][0]);
					}
					if (ch->NWCharacter.YL_JoinNation==NW_ZY)	
					{
						PutCompressedImage(x,y,&SquadPic[1][0]);	// 磊捞 侩捍捞搁..
					}
				}
			}
		}
		if (isNewWarfieldServer())
		{
			if (g_bWarBegin)
			{
				int Nation=ch->name_status.nation;
				if (Nation==NW_YL) Nation=ch->NWCharacter.YL_JoinNation;
				switch(Nation)
				{
				case NW_BY : PutCompressedImage(x,y,&SquadPic[0][0]); break;
				case NW_ZY : PutCompressedImage(x,y,&SquadPic[1][0]); break;
				}
			}
		}
	}
}

void WarMenuOpen()	// 牢磐其捞胶 傈里包府家 皋春 坷锹 
{
	MP3(50);
	CallSmallMenu( MN_NATION_BATTLE_BBS );
}

void GetTime(DWORD RemainTime,WORD& Hour,WORD& Min,WORD& Sec)		// 011020 LTS
{
	DWORD temp;
	Hour=WORD(RemainTime / 3600);
	temp=DWORD(RemainTime % 3600);
	Min=WORD(temp / 60);
	Sec=WORD(temp % 60);
}

void ShowCommanderInfo()
{
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,151), FALSE); //"============= 荤飞包 皋矫瘤 ============="
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,152), FALSE); //"/*1 郴侩 : 荤飞包捞 何措厘俊霸 皋矫瘤甫 焊尘 锭"
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,153), FALSE); //"/*2 郴侩 : 荤飞包捞 何措 傈眉俊霸 皋矫瘤甫 焊尘 锭"
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,154), FALSE); //"/*3 郴侩 : 荤飞包捞 傈里磐 救俊 乐绰 磊惫刮俊霸 皋矫瘤甫 焊尘 锭"
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,155), FALSE); //"/*4 郴侩 : 荤飞包捞 磊惫刮 傈眉俊霸 皋矫瘤甫 焊尘 锭"
}			// 010924 LTS

void ShowSquadInfo()
{
	char Message[100];
	sprintf(Message,lan->OutputMessage(0,157),Hero->NWCharacter.SquadNo); //"寸脚篮 **[[力 %d 何措]]** 俊 家加蹬 乐嚼聪促."
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,156), FALSE); //"============== 何措   家加 =============="
	AddCurrentStatusMessage( 255,255,0, Message, FALSE);
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,158), FALSE); //"0 何措绰 酒公 何措俊档 家加蹬瘤 臼篮 巴阑 唱鸥忱聪促."
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,159), FALSE); //"============== 何措 皋矫瘤 =============="
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,160), FALSE); // "/*1 郴侩 : 何措厘捞 荤飞包俊霸 皋矫瘤甫 焊尘 锭"
	AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,161), FALSE); //"/*  郴侩 : 何措盔捞 磊脚捞 家加等 何措盔俊霸 皋矫瘤甫 焊尘 锭"
}

void ReturnNationName(int Nation,char* Message)
{
	switch (Nation)
	{
	case 3 : sprintf(Message,lan->OutputMessage(0,205)); break; //"官捞辑胶"
	case 4 : sprintf(Message,lan->OutputMessage(0,206)); break; //"磊捞戚"
	case 6 : sprintf(Message,lan->OutputMessage(0,207)); break; //"老胶"
	}
}

void ReturnWarfieldName(int WarfieldNo,char* Message)
{
	switch (WarfieldNo)
	{
	case 0 : sprintf(Message,lan->OutputMessage(0,208)); break; //"魂吝傈里磐"
	case 1 : sprintf(Message,lan->OutputMessage(0,209)); break; //"乞盔傈里磐"
	case 2 : sprintf(Message,lan->OutputMessage(0,210)); break; //"级傈里磐"
	case 3 : sprintf(Message,lan->OutputMessage(0,386)); break;	// "汲盔傈里磐"
	}
}


void SendCMD_SQUAD_CHAT(int type,char* Message)			// Send Squad Chat Message to Server(Warfield Server)
{
	t_packet packet;

	if (!isNationWarfieldServer()&&!isNewWarfieldServer()) 
	{
		AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,211), FALSE); //"[傈里磐]俊辑父 荤侩且 荐 乐绰 扁瓷涝聪促."
		return;
	}

	if (isNationWarfieldServer())
	{
		switch(type)  //救等促绰 皋矫瘤 免仿 
		{
		case 0 :	// "/*1"
			if (!(Hero->NWCharacter.isCommander||Hero->NWCharacter.isSquadLeader)) 
			{
				AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,212), FALSE); //"[荤飞包], [何措厘]父 焊尘 荐 乐绰 皋矫瘤 扁瓷涝聪促."
				return;
			}
			break;
		case 1 :	// "/*2"	
		case 2 :	// "/*3"
		case 3 :	// "/*4"
			if (!Hero->NWCharacter.isCommander) 
			{
				AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,213), FALSE); //"[荤飞包]父 焊尘 荐 乐绰 皋矫瘤 扁瓷涝聪促."
				return;
			}
			break;
		case 4 :    // "/*"
			if (Hero->NWCharacter.SquadNo==0) 
				AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,214), FALSE); //"[何措盔]父 焊尘 荐 乐绰 皋矫瘤 扁瓷涝聪促."
			
		}
	}

	packet.h.header.type=CMD_SQUAD_CHAT;
	packet.u.NationWar.SquadChat.Type=type;
	packet.u.NationWar.SquadChat.Size=strlen(Message);
	strcpy(packet.u.NationWar.SquadChat.Message,Message);
	packet.h.header.size=sizeof(t_SquadChat)-MAX_STRING_PK+packet.u.NationWar.SquadChat.Size;

⌨️ 快捷键说明

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