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

📄 ltssupprot.cpp

📁 国内著名网络游戏dragon的客户端登陆用完整源码 配套一起上传的服务端部分可开服 无说明文档
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	g_LocalWarPoint[1]=p->u.LocalWar.LocalWarPointChanged.Point[1];
	g_LocalWarPoint[2]=p->u.LocalWar.LocalWarPointChanged.Point[2];
}

void RecvCMD_ACTION_STATUS(t_packet* p)
{
	LPCHARACTER ch=FindHim(p->u.LocalWar.ActionStatus.ServerID);
	if (NULL!=ch) 
	{
		ch->nCurrentAction=p->u.LocalWar.ActionStatus.nCurrentAction;
		ch->direction=(DIRECTION)p->u.LocalWar.ActionStatus.Direction;
	}
}

void RecvCMD_SITDOWN_DIRECTION_CHANGED(t_packet* p)
{
	LPCHARACTER ch=FindHim(p->u.LocalWar.SDChanged.ServerID);
	if (NULL!=ch) 
	{
		ch->direction=(DIRECTION)p->u.LocalWar.SDChanged.Direction;
	}
}

void RecvCMD_LOCALWAR_STARTUP_STATUS(t_packet* p)
{
	g_LocalWarBegin=p->u.LocalWar.CommonDataC.Data;
}


// Event LocalWar ___________________________________________________________________
/*
void EventLocalWarControl(char* Arg)	// 020115 LTS
{
#ifdef _DEBUG

	t_packet packet;
	char temp=Arg[0]-48;		// 0 :荤侩救窃, 1 : 泪咯 棺 捞悼, 2 : 矫累, 3 : 辆丰

	packet.h.header.type=CMD_EVENT_LOCALWAR_CONTROL;
	packet.u.LocalWar.CommonDataC.Data=temp;
	packet.h.header.size=sizeof(t_CommonDataC);
	QueuePacket(&packet,1);
	
#endif
}*/

void SendCMD_EVENT_LOCALWAR_JOIN()
{
	t_packet packet;

	packet.h.header.type=CMD_EVENT_LOCALWAR_JOIN;
	packet.h.header.size=0;
	QueuePacket(&packet,1);
	CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,349) , FALSE); //"捞亥飘 惫瘤傈俊 曼啊脚没阑 窍看嚼聪促."
}

void SendCMD_EVENT_LOCALWAR_MOVE()
{
	t_packet packet;

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


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

	while (ch!=NULL)
	{
		if (ch->sprno<=1)
		{
			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;
	}
}

/*void ProcessEventLocalWarStart()
{
	AddCurrentStatusMessage( 255,255,0,"捞亥飘 惫瘤傈捞 矫累登菌嚼聪促.");
	SetEventLocalWarArmor();
}

void RecvCMD_EVENT_LOCALWAR_STATUS_CHANGE(t_packet* p)
{
	g_EventLocalWarBegin=p->u.LocalWar.CommonDataC.Data;
	//皋矫瘤 贸府
	switch (g_EventLocalWarBegin)
	{
	case 0 :	break;
	case 1 :	break;
	case 2 :	break;
	case 3 : 	
				AddCurrentStatusMessage( 255,255,0,"捞亥飘 惫瘤傈捞 矫累登菌嚼聪促.");
				//SetEventLocalWarArmor(); 
				break;
	case 4 :	
				AddCurrentStatusMessage( 255,255,0,"捞亥飘 惫瘤傈捞 辆丰登菌嚼聪促.");
				break;
	}
}

void RecvCMD_EVENT_LOCALWAR_REMAIN_TIME(t_packet* p)
{
	char temp[MAX_PATH];
	WORD Hour,Min,Sec;
	GetTime(p->u.LocalWar.CommonDataDw.Data,Hour,Min,Sec);			// 020115 LTS

	sprintf(temp,"捞亥飘 惫瘤傈捞 %02d:%02d:%02d 巢疽嚼聪促.",Hour,Min,Sec);
	AddCurrentStatusMessage( 255,255,0,temp);
}*/

void RecvCMD_EVENT_LOCALWAR_JOIN_RESULT(t_packet* p)
{
	switch (p->u.LocalWar.CommonDataC.Data)
	{
	case 0 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,350) , FALSE); break;//"权其捞瘤俊辑 捞亥飘 曼啊脚没阑 窍瘤 臼疽嚼聪促.."
	case 1 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,349) , FALSE); break;//"曼咯脚没阑 窍看嚼聪促."
	case 2 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,351) , FALSE); break;//"泅犁 措雀俊 曼咯且 荐 乐绰 饭骇捞 酒凑聪促. 曼咯啊瓷茄 措雀俊 殿废窍矫扁 官而聪促."
	case 3 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,352) , FALSE); break;//"公茄 PK 措雀 曼啊磊 牢盔捞 傈何 谩嚼聪促. 促澜 措雀俊 曼啊秦 林矫扁 官而聪促."
	}
}

void RecvCMD_EVENT_LOCALWAR_MOVE_RESULT(t_packet* p)
{
	if (!p->u.LocalWar.CommonDataC.Data)
	{
		CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,353) , FALSE); //"措雀 曼啊 脚没阑 秦具父 措雀厘家肺 捞悼且 荐啊 乐嚼聪促."
	}
}

void GetMapName(int Nation,char* MapName,int& x, int &y)
{
	switch(Nation)
	{
	case NW_BY : sprintf(MapName,lan->OutputMessage(9,201));			x=100;	y=100;	break;	// 秋畔飘
	case NW_ZY : sprintf(MapName,lan->OutputMessage(9,220));			x=100;	y=100;	break;	// 饭呈胶矫
	case NW_YL : sprintf(MapName,lan->OutputMessage(9,263));			x=100;	y=100;	break;	// 官鄂藕
	}
}

void ProcessEventMessage(t_EventLocalWarMessage* Message)	//皋矫瘤 贸府	// LTS BUG
{
	char	tempMapName[MAX_PATH];
	int		x,y;
	POINTS	EventJoinLocation[3];

	GetMapName(Hero->name_status.nation,tempMapName,x,y);

	EventJoinLocation[0].x=Message->EventJoinLocation[0].x;
	EventJoinLocation[0].y=Message->EventJoinLocation[0].y;
	EventJoinLocation[1].x=Message->EventJoinLocation[1].x;
	EventJoinLocation[1].y=Message->EventJoinLocation[1].y;
	EventJoinLocation[2].x=Message->EventJoinLocation[2].x;
	EventJoinLocation[2].y=Message->EventJoinLocation[2].y;

	x=EventJoinLocation[GetNationIndex(Hero->name_status.nation)].x;
	y=EventJoinLocation[GetNationIndex(Hero->name_status.nation)].y;

	switch(Message->EventStatus)
	{
	case 0 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,354)); break;	//"坷疵狼 葛电捞亥飘啊 场车嚼聪促."
	case 1 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,355),Message->MinLevel,Message->MaxLevel,tempMapName,x,y); break; // "[ %d ] - [ %d ]饭骇 公茄 PK 措雀 曼咯磊 殿废阑 [ %s ]甘狼 [ %d, %d ]俊辑 罐绊乐嚼聪促."
	case 2 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,356),Message->MinLevel,Message->MaxLevel,tempMapName,x,y); break;//"[ %d ] - [ %d ]饭骇 公茄 PK 措雀 曼咯磊绰 [ %s ]甘狼 [ %d, %d ]俊辑 曼咯秦林矫扁 官而聪促."
	case 3 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,357),Message->MinLevel,Message->MaxLevel); break;//"[ %d ] - [ %d ]饭骇 公茄 PK 措雀啊 矫累登菌嚼聪促."
	case 4 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,358),Message->MinLevel,Message->MaxLevel); break;//"[ %d ] - [ %d ]饭骇 公茄 PK 措雀啊 辆丰登菌嚼聪促."
	}
	PlayListAutoSounds(62,0,0,FALSE);

}

void RecvCMD_EVENT_LOCALWAR_MESSAGE(t_packet* p)
{
	g_EventLocalWarBegin=p->u.LocalWar.EventLocalWarMessage.EventStatus;
	switch (g_EventLocalWarBegin)
	{
	case 0 :	break;
	case 1 :	break;
	case 2 :	break;
	case 3 : 	
				//SetEventLocalWarArmor(); 
				break;
	case 4 :	
				break;
	}
	ProcessEventMessage(&p->u.LocalWar.EventLocalWarMessage);	//皋矫瘤 贸府
}

void RecvCMD_EVENT_POINT_CHANGE(t_packet* p)					// LTS BUG
{
	g_dEventPoint=p->u.LocalWar.EventPoint.Point;
}

void RecvCMD_EVENT_REMAIN_TIME(t_packet* p)						// LTS BUG
{
	g_dEventRemainTime=(g_ClientTime/1000)+p->u.LocalWar.EventRemainTime.RemainTime;
}



void MakeEarthQuake(int Delay)		// LTS AI2
{
	g_GameInfo.displayOption = DISPLAY_EARTHQUAKE;  g_GameInfo.displayOptionDelay = Delay;	// 瘤柳 贸府何盒..
}

void RecvCMD_EVENT_MONSTER_CREATED(t_packet* p)		// LTS AI2
{
	 AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,289),MapInfo[MapNumber].mapname);//"[ %s ]俊 阁胶磐啊 魔涝窍看嚼聪促."
	 MakeEarthQuake(40);
	 //PlayListAutoSound(260,0,0,0);
}

void DrawLocalWarSquadPic(int x,int y,LPORDERTABLE o,LPCHARACTER ch)	// LTS HORSERIDER
{
	int NationIndex=GetNationIndex(ch->name_status.nation);
	if (ch->viewtype!=VIEWTYPE_TRANSPARENCY_&&ch->viewtype!=VIEWTYPE_GHOST_)	// 捧疙捞芭唱 磷绢乐绰仇篮 力寇 
	{
		PutCompressedImage(x,y,&SquadPic[NationIndex][3]);
	}
}

void RecvCMD_LOCALWAR_NATION_RESULT(t_packet* p)		// LTS NEW LOCALWAR
{														// 惫瘤傈 吝埃俊 捞菩哦阑 罐栏搁 菩硅捞促.. 		
	int Nation=GetNationFromIndex(p->u.LocalWar.LocalWarResult.NationIndex);
	int Result=p->u.LocalWar.LocalWarResult.Result;

	if (Hero->name_status.nation==Nation)
	{
		g_LocalWarBegin=FALSE;
		if (Result)				// 铰府
		{
			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));//"磊惫啊狼 搬拌籍阑 焊龋窍瘤 臼酒 傈里俊 菩硅窍看嚼聪促");
		}
	}
	else
	{
		switch(Nation)
		{
		case 3 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,367),lan->OutputMessage(0,205)); break;//lan->OutputMessage(0,339));
		case 4 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,367),lan->OutputMessage(0,206)); break;
		case 6 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,367),lan->OutputMessage(0,207)); break;
		}
		PlayListAutoSounds(56,0,0,0);
	}
}

void RecvCMD_LOCALWAR_MAPMOVE_RESULT(t_packet* p)	// LTS NEW LOCALWAR
{
	switch(p->u.LocalWar.CommonDataC.Data)
	{
	case 1 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,368), FALSE); break;		// "惫瘤傈俊 曼咯秦具父 甘捞悼阑 且荐 乐嚼聪促."
	case 2 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,369), FALSE); break;		// "磊惫狼 甘俊父 甘捞悼阑 且荐 乐嚼聪促."
	}
}

void RecvCMD_LOCALWAR_FAME_EXP(t_packet* p)			/// LTS NEW LOCALWAR
{
	short int	tempFame=p->u.LocalWar.FameExpChange.GainedFame;
	DWORD		tempExp=p->u.LocalWar.FameExpChange.GainedExp;
	PlayListAutoSounds(62,0,0,FALSE);
	/*AddCurrentStatusMessage( 255,255,0,"============< 傈里 焊惑 >==============");
	AddCurrentStatusMessage( 255,255,0,"傈里俊辑 腹篮 傍阑 技况 惫啊俊辑 酒贰客 鞍篮 焊惑阑 窍霸夌嚼聪促.");
	AddCurrentStatusMessage( 255,255,0,"   [ 疙    己] : %d",tempFame);
	AddCurrentStatusMessage( 255,255,0,"   [ 版 氰 摹] : %d",tempExp);*/
	AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,198));
	AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,199));
	AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,200),tempFame);
	AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,201),tempExp);
}

void RecvCMD_LOCALWAR_DEFENCE_POINT(t_packet* p)			// LTS NEW LCOALWAR
{
	g_LocalWarDefencePoint[0]=p->u.LocalWar.LocalWarDefencePoint.Point[0];
	g_LocalWarDefencePoint[1]=p->u.LocalWar.LocalWarDefencePoint.Point[1];
	g_LocalWarDefencePoint[2]=p->u.LocalWar.LocalWarDefencePoint.Point[2];
}

void RecvCMD_GOTO_GUILD_HOUSE_RESULT(t_packet* p)		// 辫康林
{
	char* GuildName=GetGuildName(p->u.LocalWar.CommonDataDw.Data);
	if (GuildName!=NULL)
	{
		AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,290),GuildName);
	}
}

void RecvCMD_CHECK_GUILD_HOUSE_RESULT(t_packet* p)		// 辫康林
{
	char* GuildName=GetGuildName(p->u.LocalWar.CommonDataDw.Data);
	if (GuildName!=NULL)
	{
		AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,291),GuildName);
	}
}

LPCHARACTER ReturnCharacterBySprNo(int Sprno)	// LTS DRAGON TEMP
{
	LPCHARACTER ch=Hero;
	while (ch!=NULL)
	{
		if (ch->sprno==Sprno)
		{
			return ch;
		}
		ch=ch->lpNext;
	}
	return NULL;
}

void SendDragonAction(char* Arg)			// LTS DRAGON TEMP
{
	int i=atoi(Arg);
	LPCHARACTER ch=ReturnCharacterBySprNo(50);

	if (!ch) 
	{
		if( GetSysInfo(SI_GAME_MAKE_MODE ) )	// 020925 YGI
		AddCurrentStatusMessage(255,255,0,"秦寸 胶橇扼捞飘 锅龋甫 八免窍瘤 给窍看嚼聪促.");
		return;
	}

	ch->nCurrentAction=i;	//咀记技泼
	ch->nCurrentFrame=0;
}


int GetDirection(POINT tStart,POINT tDest)
{
	POINT temp;
	int Quater=0;
	float Ratio=0;
	int Direction;

	temp.x=tStart.x-tDest.x;
	temp.y=tStart.y-tDest.y;
    if (temp.x>0 && temp.y>0) Quater=1;	// 秦寸 荤盒搁 搬沥
    if (temp.x<0 && temp.y>0) Quater=2;
    if (temp.x>0 && temp.y<0) Quater=3;
    if (temp.x<0 && temp.y<0) Quater=4;

	if (Quater==0) return 0;
	if (temp.y==0) return 0;
    Ratio=(float)temp.x / (float)temp.y;
	if (Ratio<0) Ratio*=-1;	// ABS

	switch(Quater)
	{
	case 1 :
		{
			if (Ratio>=0     && Ratio<0.17) Direction=8;
            if (Ratio>=0.17 && Ratio<0.65) Direction=7;
            if (Ratio>=0.65 && Ratio<1.5)  Direction=6;
            if (Ratio>=1.5  && Ratio<5.5)  Direction=5;
            if (Ratio>=5.5  && Ratio<500)  Direction=4;
		}
		break;
	case 2 :
		{
			if (Ratio>=0     && Ratio<0.17) Direction=8;
            if (Ratio>=0.17 && Ratio<0.65) Direction=9;
            if (Ratio>=0.65 && Ratio<1.5)  Direction=10;
            if (Ratio>=1.5  && Ratio<5.5)  Direction=11;
            if (Ratio>=5.5  && Ratio<500)  Direction=12;
		}
		break;
	case 3 :
		{
			if (Ratio>=0     && Ratio<0.17) Direction=0;
            if (Ratio>=0.17 && Ratio<0.65) Direction=1;
            if (Ratio>=0.65 && Ratio<1.5)  Direction=2;
            if (Ratio>=1.5  && Ratio<5.5)  Direction=3;
            if (Ratio>=5.5  && Ratio<500)  Direction=4;
		}
		break;
	case 4 : 
		{
			if (Ratio>=0     && Ratio<0.17) Direction=0;
            if (Ratio>=0.17 && Ratio<0.65) Direction=15;
            if (Ratio>=0.65 && Ratio<1.5)  Direction=14;
            if (Ratio>=1.5  && Ratio<5.5)  Direction=13;
            if (Ratio>=5.5  && Ratio<500)  Direction=12;
		}
		break;
	}

	return Direction;
}

void MakeBreathData(int Index,int Count,int x,int y)
{
/*	t_CommonArg Arg;
	for (int i=0;i<Count;i++)
	{
		Arg.BreathArg.SpriteIndex=Index;								// Packet Receive
		Arg.BreathArg.StartLocation.x=600;

⌨️ 快捷键说明

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