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

📄 ltssupprot.cpp

📁 国内著名网络游戏dragon的客户端登陆用完整源码 配套一起上传的服务端部分可开服 无说明文档
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		PutCompressedImage(ch->x-Mapx,ch->y-Mapy,s);
	}
}

void SendCMD_HERO_ACTION_CHANGED(LPCHARACTER ch)		// 011214 LTS
{
	if (ch->nCurrentAction==ACTION_SITDOWN)
	{
		t_packet packet;

		packet.h.header.type=CMD_HERO_ACTION_CHANGED;
		packet.u.LocalWar.CommonDataC.Data=ch->nCurrentAction;
		packet.h.header.size=sizeof(t_CommonDataC);
		QueuePacket(&packet,1);
	}
}

void SendCMD_CHECK_ABILITY_CHANGE_MONEY()   // LTS HORSERIDER  //绢呼犁盒硅...
{
	t_packet packet;

	if (!Hero->aStepInfo[CLS_STEP])
	{
		packet.h.header.type=CMD_CHECK_ABILITY_CHANGE_MONEY;
		packet.h.header.size=0;
		QueuePacket(&packet,1);
	}
	else CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,334), FALSE); // 绢呼犁盒硅甫 窍看嚼聪促. 
}

void RecvCMD_CHECK_ABILITY_CHANGE_MONEY(t_packet* p)	// 020115 LTS
{
	switch (p->u.NationWar.CommonDataC.Data)
	{
	case 0 : CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,336), FALSE); break; // 篮青 儡绊啊 何练窍咯 绢呼犁盒硅甫 窍瘤 给沁嚼聪促.
	case 1 : CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,335), FALSE); break;// 绢呼犁盒硅甫 窍看嚼聪促.
	case 5 : CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,348), FALSE); break;// 掂倔努贰胶绰 绢呼府萍 犁盒硅甫且 荐 绝嚼聪促.
	}
}

void LocalWarMapMoveClick(int MapNo)	// LTS NEW LOCALWAR
{
	g_LocalWarMapMoveIndex=MapNo;
}

void CloseLocalWarInfo()				// LTS NEW LOCALWAR
{
	g_LocalWarMapMoveIndex=-1;	// 急琶等芭 秦力秦 霖促.
}

int GetLocalWarMapMoveIndex()			// LTS NEW LOCALWAR
{
	return g_LocalWarMapMoveIndex;
}

void ChangeHeroLocalWarArmor()
{
	LPCHARACTER	ch=Hero;			// 矫具狼 葛电 荤恩狼 渴阑 官槽促.

	if (ch->sprno<=1)
	{
		if (g_LocalWarBegin)
		{
			if (ch->JoinLocalWar)
			{
				switch (ch->name_status.nation)
				{
				case NW_BY : ch->accessory[0] = fight_map_acc_num[1]; break;
				case NW_ZY : ch->accessory[0] = fight_map_acc_num[0]; break;
				case NW_YL : ch->accessory[0] = fight_map_acc_num[2]; break;
				}
				ch->accessory[1] = 1;
				LoadHeroClothAccessoryDataOne( ch->sprno, ch->accessory[0] );
				LoadHeroClothAccessoryDataOne( ch->sprno, ch->accessory[1] ); 
			}
		}
	}
}

void ChangeUserLocalWarArmor()
{
	LPCHARACTER	ch=Hero;			// 矫具狼 葛电 荤恩狼 渴阑 官槽促.

	while (ch!=NULL)
	{
		if (ch->sprno<=1)
		{
			if (g_LocalWarBegin)
			{
				if (ch->JoinLocalWar)
				{
					switch (ch->name_status.nation)
					{
					case NW_BY : ch->accessory[0] = fight_map_acc_num[1]; break;
					case NW_ZY : ch->accessory[0] = fight_map_acc_num[0]; break;
					case NW_YL : ch->accessory[0] = fight_map_acc_num[2]; break;
					}
					ch->accessory[1] = 1;
					LoadHeroClothAccessoryDataOne( ch->sprno, ch->accessory[0] );
					LoadHeroClothAccessoryDataOne( ch->sprno, ch->accessory[1] ); 
				}
			}
		}
		ch=ch->lpNext;
	}
}

int GetNationFromIndex(int NationIndex)		// LTS NEW HORSERIDER
{
	switch(NationIndex)
	{
	case 0 : return NW_BY;
	case 1 : return NW_ZY;
	case 2 : return NW_YL;
	}
	return NW_BY;
}


void SetLocalWarArmor(t_server_change_equip *p,LPCHARACTER ch)		// NetWork.cpp RecvChangeEquip() Call
{
	if (g_LocalWarBegin)
	{
		if (ch->JoinLocalWar)
		{
			switch(ch->name_status.nation)
			{
			case NW_BY : p->equip[0]=fight_map_acc_num[1];	break;
			case NW_ZY : p->equip[0]=fight_map_acc_num[0];	break;
			case NW_YL : p->equip[0]=fight_map_acc_num[2];	break;
			}
			p->equip[1]=1;
			LoadHeroClothAccessoryDataOne( ch->sprno, p->equip[0] );
			LoadHeroClothAccessoryDataOne( ch->sprno, p->equip[1] ); 
		}
	}
}

void SetLocalWarArmor(t_server_user_add *c)							// NetWork.cpp	RecvUserAdd() Call
{
	if (g_LocalWarBegin)
	{
		if (c->JoinLocalWar)
		{
			switch(c->nation)
			{
			case NW_BY : c->equip0=fight_map_acc_num[1];	break;
			case NW_ZY : c->equip0=fight_map_acc_num[0];	break;
			case NW_YL : c->equip0=fight_map_acc_num[2];	break;
			}
			c->equip1=1;
			LoadHeroClothAccessoryDataOne( c->spr_no, c->equip0 );
			LoadHeroClothAccessoryDataOne( c->spr_no, c->equip1 ); 
		}
	}
}


void SendCMD_LOCALWAR_STATUS()	//惫瘤傈 惑怕
{
	t_packet packet;

	packet.h.header.type=CMD_LOCALWAR_STATUS;
	packet.h.header.size=0;

	QueuePacket(&packet,1);
}

void SendCMD_REQUEST_LOCALWAR_INFO()
{
	t_packet packet;
	packet.h.header.type=CMD_REQUEST_LOCALWAR_INFO;	//沥焊夸没
	packet.h.header.size=0;
	QueuePacket(&packet,1);
}

void RecvCMD_LOCALWAR_STATUS(t_packet* p)	// 惫瘤傈 惑怕
{
	if (p->u.LocalWar.CommonDataC.Data)
	{
		g_LocalWarBegin=1;
		SendCMD_REQUEST_LOCALWAR_INFO();
	}
	else CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,258), FALSE); //"[傈里吝] 扁埃俊父 荤侩且 荐 乐嚼聪促."
}

void RecvCMD_ANSWER_LOCALWAR_INFO(t_packet* p)
{
	short BY_Point=0,ZY_Point=0,YL_Point=0;
	short BY_Count=0,ZY_Count=0,YL_Count=0;

	for (int i=0;i<7;i++)	// 配呕 墨款飘													// too Many
	{

		BY_Count+=p->u.LocalWar.LocalWarInfo.LocalWarInfo1[i].ManCount[0];		// 惫瘤傈 曼咯 牢盔 备窃 眠饶 荤侩 抗沥
		ZY_Count+=p->u.LocalWar.LocalWarInfo.LocalWarInfo1[i].ManCount[1];
		YL_Count+=p->u.LocalWar.LocalWarInfo.LocalWarInfo1[i].ManCount[2];

		g_AreaCount[i][0]=p->u.LocalWar.LocalWarInfo.LocalWarInfo1[i].ManCount[0];
		g_AreaCount[i][1]=p->u.LocalWar.LocalWarInfo.LocalWarInfo1[i].ManCount[1];
		g_AreaCount[i][2]=p->u.LocalWar.LocalWarInfo.LocalWarInfo1[i].ManCount[2];
	}

	g_LocalWarRemainTime=(g_ClientTime/1000)+p->u.LocalWar.LocalWarInfo.LocalWarPointChanged.RemainTime;	// 020115 LTS
	g_LocalWarPoint[0]=p->u.LocalWar.LocalWarInfo.LocalWarPointChanged.Point[0];
	g_LocalWarPoint[1]=p->u.LocalWar.LocalWarInfo.LocalWarPointChanged.Point[1];
	g_LocalWarPoint[2]=p->u.LocalWar.LocalWarInfo.LocalWarPointChanged.Point[2];


	sprintf(SMenu[MN_LOCALWAR_JOIN].nField[9].temp,  "%4d",g_LocalWarPoint[0]);
	sprintf(SMenu[MN_LOCALWAR_JOIN].nField[10].temp,  "%4d",g_LocalWarPoint[1]);
	sprintf(SMenu[MN_LOCALWAR_JOIN].nField[11].temp,  "%4d",g_LocalWarPoint[2]);

	g_SealStoneStatus[0][0]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][0];		// LOOP UNROLL
	g_SealStoneStatus[0][1]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][1];
	g_SealStoneStatus[0][2]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][2];
	g_SealStoneStatus[0][3]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][3];
	g_SealStoneStatus[0][4]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][4];
	g_SealStoneStatus[0][5]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][5];
	g_SealStoneStatus[0][6]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][6];
	g_SealStoneStatus[0][7]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][7];
	g_SealStoneStatus[0][8]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[0][8];

	g_SealStoneStatus[1][0]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][0];		// LOOP UNROLL
	g_SealStoneStatus[1][1]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][1];
	g_SealStoneStatus[1][2]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][2];
	g_SealStoneStatus[1][3]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][3];
	g_SealStoneStatus[1][4]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][4];
	g_SealStoneStatus[1][5]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][5];
	g_SealStoneStatus[1][6]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][6];
	g_SealStoneStatus[1][7]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][7];
	g_SealStoneStatus[1][8]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[1][8];

	g_SealStoneStatus[2][0]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][0];		// LOOP UNROLL
	g_SealStoneStatus[2][1]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][1];
	g_SealStoneStatus[2][2]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][2];
	g_SealStoneStatus[2][3]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][3];
	g_SealStoneStatus[2][4]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][4];
	g_SealStoneStatus[2][5]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][5];
	g_SealStoneStatus[2][6]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][6];
	g_SealStoneStatus[2][7]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][7];
	g_SealStoneStatus[2][8]=p->u.LocalWar.LocalWarInfo.LocalWarInfo2.SealStoneInfo[2][8];

	g_LocalWarDefencePoint[0]=p->u.LocalWar.LocalWarInfo.LocalWarDefencePoint[0];		// LTS NEW LOCALWAR
	g_LocalWarDefencePoint[1]=p->u.LocalWar.LocalWarInfo.LocalWarDefencePoint[1];
	g_LocalWarDefencePoint[2]=p->u.LocalWar.LocalWarInfo.LocalWarDefencePoint[2];


	CallSmallMenu(MN_LOCALWAR_JOIN);
}

void SendCMD_LOCALWAR_JOIN()				// LTS NEW LOCALWAR
{
	if (g_LocalWarBegin)
	{
		int Nation=GetNationIndex(Hero->name_status.nation);
		if (g_LocalWarDefencePoint[Nation]>0)
		{
			t_packet packet;
			
			packet.h.header.type=CMD_LOCALWAR_JOIN;
			packet.h.header.size=0;
			QueuePacket(&packet,1);
		}
		else
		{
			CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,372),FALSE);	// 惫瘤傈俊 菩硅窍看栏骨肺 曼 啊且荐 绝嚼聪促.
		}
	}
	else
	{
		CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,371),FALSE);	// 惫瘤傈捞 矫累登瘤 臼疽嚼聪促.
	}

}

void SendCMD_LOCALWAR_MAPMOVE()				// LT SNEW LOCALWAR
{
	if (g_LocalWarMapMoveIndex>=0)
	{
		t_packet packet;
		packet.h.header.type=CMD_LOCALWAR_MAPMOVE;
		packet.u.LocalWar.CommonDataC.Data=g_LocalWarMapMoveIndex;
		packet.h.header.size=sizeof(t_CommonDataC);
		QueuePacket(&packet,1);
		g_LocalWarMapMoveIndex=-1;			// 檬扁拳
	}
	else
	{
		AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,371),FALSE); // "捞悼窍角 甘阑 急琶秦具 钦聪促.");
	}
}

void RecvCMD_LOCALWAR_JOIN_RESULT(t_packet* p)
{
	if (p->u.LocalWar.CommonDataC.Data)
	{
		Hero->JoinLocalWar=TRUE;
		ChangeHeroLocalWarArmor();
		//CallOkCancelMessageBox(TRUE, 0,0,"惫瘤傈俊 曼咯 钦聪促.", FALSE);
		strcpy(SMenu[MN_LOCALWAR_OK].nField[3].temp, lan->OutputMessage(0,378)); // LTS LOCALWAR MENU
		PlayListAutoSounds(62,0,0,FALSE);					// 020115 LTS
		CallSmallMenu(MN_LOCALWAR_OK);

	}
	else CallOkCancelMessageBox(TRUE, 0,0, lan->OutputMessage(0,337), FALSE); 
}

// 031110 YGI
void LocalWarDoneBoxText(bool Button)						// LTS LOCALWAR MENU
{
#ifdef USA_LOCALIZING_
	int MessageNo[6]={378,390,379,391,380,392};							// MessageNo
	const int iMaxPage = 5;
#else
	int MessageNo[3]={378,379,380};							// MessageNo
	const int iMaxPage = 2;
#endif

	switch(Button)
	{
	case false	: // PREV
		{
			SMenu[MN_LOCALWAR_OK].work--;
			if (SMenu[MN_LOCALWAR_OK].work<0) SMenu[MN_LOCALWAR_OK].work=0;
			strcpy(SMenu[MN_LOCALWAR_OK].nField[3].temp, lan->OutputMessage(0,MessageNo[SMenu[MN_LOCALWAR_OK].work])); 
			break;
		}
	case true	: // NEXT
		{
			SMenu[MN_LOCALWAR_OK].work++;
			if (SMenu[MN_LOCALWAR_OK].work>iMaxPage) SMenu[MN_LOCALWAR_OK].work=iMaxPage;
			strcpy(SMenu[MN_LOCALWAR_OK].nField[3].temp, lan->OutputMessage(0,MessageNo[SMenu[MN_LOCALWAR_OK].work])); 
			break;
		}
	}
}


void SendCMD_REQUEST_COMPARE_PHASE()
{
	t_packet packet;

	packet.h.header.type=CMD_REQUEST_COMPARE_PHASE;
	packet.h.header.size=0;
	QueuePacket(&packet,1);
}

void RecvCMD_USER_JOIN_LOCALWAR(t_packet* p)
{
	LPCHARACTER ch=FindHim(p->u.LocalWar.UserJoinLocalWar.ServerID);
	if (NULL!=ch) 
	{
		ch->JoinLocalWar=TRUE;
		ChangeUserLocalWarArmor();
	}
}

void RecvCMD_LOCALWAR_BEGIN(t_packet* p)		// 011217 LTS
{
	g_LocalWarBegin=TRUE;
	SendCMD_REQUEST_LOCALWAR_INFO();
	AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,284));
	switch (Hero->name_status.nation)
	{
	case NW_BY : AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,285));	break;
	case NW_ZY : AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,286));	break;
	case NW_YL : AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,287));	break;
	}
	PlayListAutoSounds(271,0,0,FALSE);
}

void RecvCMD_LOCALWAR_END(t_packet* p)						// LTS NEW LOCALWAR
{
	if (g_LocalWarDefencePoint[GetNationIndex(Hero->name_status.nation)]!=0)	// 捞固 惫瘤傈俊辑 菩硅茄 唱扼绰 促矫 靛肺雷 窍瘤 臼绰促.
	{
		g_LocalWarBegin=FALSE;
		if (Hero->JoinLocalWar) Hero->JoinLocalWar=0;
		if (Hero->name_status.nation==p->u.LocalWar.CommonDataC.Data) 
		{
			g_LocalWarResult=1; // WIN
			AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,338));
		}
		else 
		{
			g_LocalWarResult=2; // LOOSE
			AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,366));//"磊惫啊狼 搬拌籍阑 焊龋窍瘤 臼酒 傈里俊 菩硅沁嚼聪促"
		}
	}
}

void RecvCMD_SEALSTONE_BROKED(t_packet* p)
{
	AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,340),
		MapInfo[p->u.LocalWar.SealStoneBroked.MapNumber].mapname,
		p->u.LocalWar.SealStoneBroked.LocateX,
		p->u.LocalWar.SealStoneBroked.LocateY);
	PlayListAutoSounds(262,0,0,FALSE);					// 0215 LTS
}

void RecvCMD_SEALSTONE_ATTACKED(t_packet* p)
{
	AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,341),
		MapInfo[p->u.LocalWar.SealStoneAttacked.MapNumber].mapname,
		p->u.LocalWar.SealStoneAttacked.LocateX,
		p->u.LocalWar.SealStoneAttacked.LocateY);
}

void RecvCMD_LOCALWAR_POINT_BBS(t_packet* p)	// LTS BUG
{
	g_LocalWarRemainTime=(g_ClientTime/1000)+p->u.LocalWar.LocalWarPointChanged.RemainTime;		// 020115 LTS
	g_LocalWarPoint[0]=p->u.LocalWar.LocalWarPointChanged.Point[0];

⌨️ 快捷键说明

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