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

📄 nationsupport.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
#include "..\stdafx.h"
#include "DefaultHeader.h"
#include "CItem.h"
#include "Op_Magic.h"
#include "Op_Battle.h"
#include "Map.h"
#include "ChrLog.h"
#include "nationsys.h"

extern cWarfield*	g_pWarfield;

extern bool isNationWarfieldServer();
extern bool isNationManageServer();

#define MAX_SQUAD_1_RARE_CALSS	5
#define MAX_SQUAD_2_RARE_CALSS	4
#define MAX_SQUAD_3_RARE_CALSS	3
#define MAX_SQUAD_4_RARE_CALSS	2

#define MAX_SQUAD_NUMBER		4
#define MAX_SQUAD_RARE			3

int		iSquadRareType[MAX_SQUAD_NUMBER][MAX_SQUAD_RARE];
bool	bSquadRared[MAX_SQUAD_NUMBER];

//扁裙磊啊 力傍茄 绊沥利牢 钙胶蔼.
const int	iSquadMaxRareClass[MAX_SQUAD_NUMBER]	=	{MAX_SQUAD_1_RARE_CALSS,MAX_SQUAD_2_RARE_CALSS,MAX_SQUAD_3_RARE_CALSS,MAX_SQUAD_4_RARE_CALSS};
//惑炔俊 蝶扼 函窍绰 钙胶蔼.
int		iSquadNowMaxRareClass[MAX_SQUAD_NUMBER]	=	{MAX_SQUAD_1_RARE_CALSS,MAX_SQUAD_2_RARE_CALSS,MAX_SQUAD_3_RARE_CALSS,MAX_SQUAD_4_RARE_CALSS}; 
int		iSquadNowRareClass[MAX_SQUAD_NUMBER]	=	{0,0,0,0}; 

void SquadRarePlus(CHARLIST *ch, int iRareType, int iClass)
{
	if(!isNationWarfieldServer()) return;//咯扁啊 惫啊傈 甘 酒聪搁 例措肺 啊吝摹甫 林瘤 臼绰促.	
	
	int iPlusValue = ItemRare[iRareType].GRADE[iClass];
}


//傈里磐 甘 辑滚父 靖 捞芭绰... 努贰胶父 沥窃 饭绢 鸥涝篮 惑包 绝澜
int CheckSquadRareGrade( int  iBattleType,int iSquadNo, int iManCount, bool bCommanderLogin, bool bSquadLeaderLogin, int iSquadItemStatus)
{
	int iRareSquadGradeNow = 0;
	//饭绢 甸绢哎 傍侥阑 眉农 窍磊
	//何措厘捞 殿废 凳苞 悼矫俊 饭绢 鸥涝篮 唱坷霸 等促
	if(!isNationWarfieldServer()) return 0;//荤恩荐 眉农 秦辑 扁夯利牢吧 葛滴 眉欧 秦 敌促	
	
	int MemberCount = g_pWarfield->GetSquadCurrentMemberCount(iBattleType,iSquadNo);
	
	if( MemberCount )//炼扒
	{	
		if(MemberCount < 19 )
			iRareSquadGradeNow = 1;
		if(MemberCount < 29 && MemberCount > 19 )
			iRareSquadGradeNow = 2;
		if(MemberCount < 39 && MemberCount > 29 )
			iRareSquadGradeNow = 3;
		if(MemberCount < 49 && MemberCount > 39)
			iRareSquadGradeNow = 4;
		if(MemberCount > 49 )
			iRareSquadGradeNow = 5;

		iSquadNowRareClass[iSquadNo] = iRareSquadGradeNow ;//捞仇狼 蔼阑 官层 林搁 等促
	}

	//荤飞包捞 乐栏搁 钙胶 蔼俊 true 甫 歹秦霖促 ( +1 登绰巴 )
	iSquadNowMaxRareClass[iSquadNo] = iSquadNowMaxRareClass[iSquadNo]+bCommanderLogin;

	if( bSquadLeaderLogin )//何措厘捞 乐栏搁 殿鞭阑 霖促
	{
		if(iSquadItemStatus)//荤扁 惑铰 酒捞袍阑 静搁 捞 蔼捞 +1 捞 登绊 荤扁 历窍 酒捞袍阑 静搁 -1捞 等促.
		{
			iSquadNowRareClass[iSquadNo] += iSquadItemStatus;//府悸 胶鸥老捞骨肺 捌沥绝捞 茄促.
			if( iSquadNowRareClass[iSquadNo] > iSquadNowMaxRareClass[iSquadNo])
			{
				iSquadNowRareClass[iSquadNo]=iSquadNowMaxRareClass[iSquadNo];
			}
			else if( iSquadNowRareClass[iSquadNo] < 0)
			{
				iSquadNowRareClass[iSquadNo] =0;
			}

		}
	}
	else
	{
		iSquadNowRareClass[iSquadNo] = 0;//何措厘捞 绝栏搁 力肺促.
	}
	return iRareSquadGradeNow = iSquadNowRareClass[iSquadNo];
}

//傈里鸥涝 ( Attacker Defencer ReForce), 目池记 逞滚, 傈里 包访 酒捞袍(荤扁)
void SquadRareReSet(int iBattleType, int cn,int iSquadItemStatus)//iSquadItemStatus->傈里 荤扁 酒捞袍俊 狼茄 努贰胶 函版蔼
{//020215 lsw

	//鸥涝苞 何措 逞滚客 荤飞包苞 府歹啊 乐唱甫 眉农 窍咯
	//何咯且 饭绢 加己苞 殿鞭阑 惶酒辰促
	CHARLIST *ch = &connections[cn].chrlst;
	
	int iSquadNo  = connections[cn].chrlst.NWCharacter.SquadNo;
	int iRareClass = 0;

	//捞霸 况鞘靛 牢啊.
	if(!isNationWarfieldServer()) return;

	bool bCommanderLogin = g_pWarfield->CommanderExist(iBattleType);
	bool bSquadLeaderLogin = g_pWarfield->SquadLeaderExist(iBattleType,connections[cn].chrlst.NWCharacter.SquadNo);

	int iSquadRareClass = CheckSquadRareGrade(iBattleType ,iSquadNo , g_pWarfield->GetSquadCurrentMemberCount(iBattleType,iSquadNo),  bCommanderLogin, bSquadLeaderLogin, iSquadItemStatus);

	//鸥涝( 傍拜磊 , 规绢磊 , 侩捍)
	//胶孽靛 逞滚 俊 老摹 窍绰 荤恩阑 八祸 秦 郴磊
	SquadList* g_SquadList;
	g_SquadList = g_pWarfield->GetSquadListPointer(iBattleType,iSquadNo);	
	
	char SquadRare[3] = {0,0,0};
	//011008 lsw 捞芭 林籍 仟技夸
	memcpy(SquadRare,g_pWarfield->GetSquadRareSok2(iBattleType,iSquadNo),3);
	
	for(SquadListItor itor=g_SquadList->begin();	itor!=g_SquadList->end()	;	itor++)
	{
		//胶孽靛绰 0,1,2,3 栏肺 秦 林技夸.. 
		ch = &connections[(*itor)->GetData()].chrlst;
		if(ch)
		{
				ch->SquadRare.grade		= iSquadRareClass;
				ch->SquadRare.soksung1	= SquadRare[0];
				ch->SquadRare.soksung2	= SquadRare[1];
				ch->SquadRare.soksung3	= SquadRare[2];
				ResetAbility(ch);
		}
	}
	
}

//傈里 包府侩 辑滚啊 龋免 // 加己沥窍扁父 钦聪促.
void GetSquadRare(char *Squadrare,int squadNo/*char [3]*/)
{
	if( !isNationManageServer() )
		return;

	if (!Squadrare[0]) //捞固 加己阑 罐篮 版快绰 加己 何咯 窍瘤 臼绰促
	{
		int squadrarecount =0;
		int	squadrarecountMax =0;
		
		switch (squadNo)
		{
			case 1:
			case 2:
				{
					squadrarecountMax	= 3;
				}break;
			case 3:
			case 4:
				{
					squadrarecountMax	= 2;
				}break;
			default:
				squadrarecountMax	= 0;
				break;
		}
		for(squadrarecount = 0;squadrarecount<squadrarecountMax;squadrarecount++)
		{
			//捞力 加己阑 罐酒吭促//加己捞 葛滴 沥秦脸促.
			//咯扁辑 持绢林扁
			Squadrare[squadrarecount] = ItemMgr.GetAbleRareKind(RARE_ABLE|RARE_ABLE_SQUAD,0);//惫啊傈侩//020725 lsw
		}
	}
}

extern bool isNewWarfieldServer();
extern CNewWarfield* g_pNewWarfield;


// 020418 YGI
int IsStartNationWar()		// 捞 甘捞 傈捧 甘捞绊 泅犁 傈捧 吝牢啊?
{
	if (isNationWarfieldServer())
	{
		if (g_pWarfield->GetStatus()==NW_WAR)
			return true;
	}
	if (isNewWarfieldServer())
	{
		if (g_pNewWarfield->GetWarfieldStatus()==NW_WAR)
			return true;
	}
	return false;
//	return ( isNationWarfieldServer() && g_pWarfield->GetStatus()==NW_WAR );
}

⌨️ 快捷键说明

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