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

📄 nation.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
#include "..\stdafx.h"
#include "..\LowerLayers\servertable.h"
#include "..\LowerLayers\recvmsg.h"
#include "..\LowerLayers\mylog.h"
#include "DefaultHeader.h"
#include "MenuDefine.h"
#include "ItemList.h"
#include "CItem.h"
#include "map.h"

tagNationInfo	NationInfo[MAX_NATION];
bool			g_MainNationMap[MAX_NATION];			// 淬寸窍绰 唱扼 锅龋

void CheckMainMap()
{	//< CSD-030506
	for (int i = 0; i < MAX_NATION; ++i)
	{
		if (NationInfo[i].main_map_port == g_MapPort)
		{
			g_MainNationMap[i] = true;
			LoadNationInfoOfMainMap(i);	// 皋牢 皋春俊辑 淬寸且 郴侩甸阑 肺靛秦柯促.
		}
	}
}	//> CSD-030506

void SendNationMoney( int type, int nation, double money )
{
	t_packet packet;

	packet.h.header.type = CMD_NATION_INFO_MAP_TO_MAP;

		packet.u.kein.nation_info_money.type = type;
		packet.u.kein.nation_info_money.nation = nation;
		packet.u.kein.nation_info_money.money = money;

	packet.h.header.size = sizeof( k_nation_info_money );

	if( type != N_NATION_ALL && g_MainNationMap[nation] )		// 捞镑俊辑 淬寸窍绰 镑捞扼搁
	{
		RecvNationInfo( &packet );		// 流立 贸府窍绊
	}
	else								// 酒聪搁
	{									// 淬寸 甘栏肺 焊辰促.
		g_pServerTable->SendRajaPacketToOtherMapServer( (WORD)NationInfo[nation].main_map_port, (char *)&packet, packet.h.header.size+sizeof(t_header) );
	}
}

void SaveNationInfo( int nation )		// 叼厚 单阁俊 历厘茄促.
{
	static save_time = g_curr_time;
	if( (g_curr_time - save_time) < 600 )	return;	// 10盒俊 茄锅究
	save_time = g_curr_time;

	if( !g_MainNationMap[nation] ) // 皋牢 甘捞 酒聪促.	
		return;

	t_packet packet;
	packet.h.header.type = CMD_SAVE_NATION_INFO;

		packet.u.kein.save_nation_info.nation		=	nation;
		packet.u.kein.save_nation_info.nation_money	=	NationInfo[nation].nation_money;
		packet.u.kein.save_nation_info.king_support	=	NationInfo[nation].king_support;
		packet.u.kein.save_nation_info.friend_va	=	NationInfo[nation].friend_va	;
		packet.u.kein.save_nation_info.friend_zy	=	NationInfo[nation].friend_zy;
		packet.u.kein.save_nation_info.friend_ill	=	NationInfo[nation].friend_ill;
		memcpy( packet.u.kein.save_nation_info.nation_item, NationInfo[nation].nation_item, sizeof( int ) * 20 );

	packet.h.header.size = sizeof( k_save_nation_info );
	QueuePacket( connections, DB_DEMON, &packet,1 );


	// 葛电 甘俊 谎妨 霖促.
	packet.h.header.type = CMD_NATION_INFO_MAP_TO_MAP;

		packet.u.kein.nation_info_money.type = N_NATION_ALL;
		packet.u.kein.nation_info_money.nation = nation;
		packet.u.kein.nation_info_money.money = NationInfo[nation].nation_money;

	packet.h.header.size = sizeof( k_nation_info_money );
	g_pServerTable->BroadCastToEveryServer( (char*)&packet, (sizeof(t_header)+packet.h.header.size), SERVER_TYPE_MAP );
}

void RecvNationInfo( t_packet *p )
{
	int type = p->u.kein.nation_type;
	switch( type )
	{
		case NM_ADD	:		NationInfo[p->u.kein.nation_info_money.nation].nation_money += p->u.kein.nation_info_money.money;
			SaveNationInfo(p->u.kein.nation_info_money.nation);
			break;
		case NM_SUBTRACT :	
			{
				int nation = p->u.kein.nation_info_money.nation;
				int money = p->u.kein.nation_info_money.money;
				if( NationInfo[nation].nation_money > money )
				{
					NationInfo[p->u.kein.nation_info_money.nation].nation_money -= p->u.kein.nation_info_money.money;
				}
				else NationInfo[nation].nation_money = 0;
				SaveNationInfo(p->u.kein.nation_info_money.nation);
				break;
			}
		case N_NATION_ALL : 
			{
				int nation = p->u.kein.nation_info_money.nation;
				NationInfo[nation].nation_money = p->u.kein.nation_info_money.money;
				break;
			}
		default : return;
	}
}

⌨️ 快捷键说明

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