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

📄 teambattle.cpp

📁 国内著名网络游戏dragon的客户端登陆用完整源码 配套一起上传的服务端部分可开服 无说明文档
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	{
		Hcolor( pCharInfo->m_wColor );
		iReultLineCount = TxtOut.RcTXTOutB(iX,iY+iBlkG+iLG*iCt,iWidth,1,"%s", pCharInfo->m_szCallLevel);
		iCt += iReultLineCount;

		Hcolor( FONT_COLOR_NUMBER );
		iReultLineCount = TxtOut.RcTXTOut(iX,iY+iBlkG+iLG*iCt,iWidth,1,"Score:    %5d", pCharInfo->m_dwLadderScore);
		iCt += iReultLineCount;


		iReultLineCount = TxtOut.RcTXTOut(iX,iY+iBlkG+iLG*iCt,iWidth,1,"Victory:  %5d", pCharInfo->m_WinDefeat.win);
		iCt += iReultLineCount;

		iReultLineCount = TxtOut.RcTXTOut(iX,iY+iBlkG+iLG*iCt,iWidth,1,"Defeat:   %5d", pCharInfo->m_WinDefeat.defeat);
		iCt += iReultLineCount;

		iReultLineCount = TxtOut.RcTXTOut(iX,iY+iBlkG+iLG*iCt,iWidth,1,"Draw:     %5d", pCharInfo->m_WinDefeat.disconnect);
		iCt += iReultLineCount;
	}
	TxtOut.PutTextTailBGImg(iX,iY+iBlkG+iLG*iCt,iWidth);
}

void RecvFightRemainTime( t_packet *p )
{
	int time_type = p->u.kein.default_char;
	g_RemainTimeType = time_type; 
	g_RemainTimeDelay = 80;
}
void ResetMagicFlag( LPCHARACTER ch )
{
	EndCastMagic( ch );

	if( ch->lostSightTime )
	{
		ch->sight = 10;
		ch->lostSight = 0;
//		ch->lightness		= 0;//010530 lsw
		ch->lostSightTime = 0;
	}

	MAGICLIST	*next, *Temp;
	Temp = g_lpML;
	while( Temp )
	{
		next = Temp->Next;
		DeleteList( &g_lpML, Temp );
		Temp = next;
	}
}

//////////////////////////////////////////////////////////////////////////////
// 辨靛 包访
///////////////////////////////////////////////////////////////////////////
// 辨靛 矫胶袍
int g_save_load_flag;
TKeinGuildMap< CGuild > g_GuildMgr; // CSD-030324

char *CallGuildDegreeName( int guild_num, int degree_num )
{	//< CSD-030324
	if( guild_num < 0 ) return NULL;
	return g_GuildMgr[guild_num].CallGuildDegreeName( degree_num );
}	//> CSD-030324

char *GetGuildName( int guild_num )
{	//< CSD-030324
	if( guild_num < 0 ) return NULL;
	return g_GuildMgr[guild_num].m_szName;
}	//> CSD-030324

int GetGuildCode( LPCHARACTER ch )
{	//< CSD-030324
	return ch->GetGuildCode();
}	//> CSD-030324

// thai2 YGI
void SaveGuildInfoEx( )		// 辨靛 沥焊 眠啊 历厘
{	//< CSD-030326
	if( !g_save_load_flag ) return;		// 郴侩捞 官诧利捞 乐绢具父 货肺 历厘茄促.
	g_save_load_flag = 0;

	char filename[128];
	char filename2[128];
	sprintf( filename, "./data/guild_info_%02d.txt", g_SelectServerIndex +1 );
	
	FILE *fp, *fp2;
	fp = Fopen( filename, "wt" );
	if( !fp ) return;

	sprintf( filename2, "./data/mark_ex_%02d.dat",g_SelectServerIndex+1  );
	fp2 = Fopen( filename2, "wb" );
	if( !fp2 ) 
	{
		fclose( fp );
		return;
	}

	for( TKeinGuildMap<CGuild>::LPGUILDHASHUNIT i=g_GuildMgr.Begin(); i != g_GuildMgr.End(); i++ )
	{
		for( int j=0; j<MaxGuildBlock ; j++ ) 
		{
			CGuild *curr_guild = &g_GuildMgr[i->first*MaxGuildBlock+j];
			if( curr_guild->m_nCode )
			{
				fprintf( fp, "%d ,%s ,%s ,%s ,%s ,%s ,%s ,%d ,%d ,%d ,%d\n", 
					curr_guild->m_nCode,
					curr_guild->m_szName,
					curr_guild->m_aDegree[0],
					curr_guild->m_aDegree[1],
					curr_guild->m_aDegree[2],
					curr_guild->m_aDegree[3],
					curr_guild->m_aDegree[4],
					curr_guild->first,
					curr_guild->mark_num,
					curr_guild->make ,
					curr_guild->info_num
					);

				if( curr_guild->m_Spr_save.img )
				{
					fwrite( &curr_guild->m_nCode, sizeof( int ), 1, fp2 );
					fwrite( &curr_guild->m_Spr_save.size, sizeof( DWORD ), 1, fp2 );
					fwrite( &curr_guild->m_Spr_save.xl, sizeof( short int ), 1, fp2 );
					fwrite( &curr_guild->m_Spr_save.yl, sizeof( short int ), 1, fp2 );
					fwrite( curr_guild->m_Spr_save.img, sizeof( char ), curr_guild->m_Spr_save.size, fp2 );
				}
			}
		}
	}

	fclose( fp );
	fclose( fp2 );
}	//> CSD-030326

// thai2 YGI
int LoadGuildTableEx()
{	//< CSD-030324
	char filename[50];
	sprintf( filename, "./data/guild_info_%02d.txt", g_SelectServerIndex +1 );
	
	FILE *fp = Fopen( filename, "rt" );
	if( fp )
	{
		char temp[512];
		int count = 0;
		int code;
		int ct;
		while( fgets( temp, 512, fp ) != NULL )
		{
			if( temp == NULL|| temp[0] == ';'  || temp[0] == '#' ) continue;
			char *token;
			token = strtok( temp, ",\n" );
			if( !token ) continue;
			code = atoi( token );
			if( code < 0 ) continue;
			ct = g_GuildMgr[code].m_nCode = code;

			token = strtok( NULL, ",\n" );
			strcpy( g_GuildMgr[ct].m_szName, token );
			EatRearWhiteChar( g_GuildMgr[ct].m_szName );

			memset( g_GuildMgr[ct].m_aDegree, 0, sizeof( char)*20*5 );
			for( int i=0; i<5; i++ )
			{
				token = strtok( NULL, ",\n" );
				if( !token ) break;
				strcpy( g_GuildMgr[ct].m_aDegree[i], token );
				EatRearWhiteChar( g_GuildMgr[ct].m_aDegree[i] );
			}

			token = strtok( NULL, ",\n" );
			if( !token ) continue;
			code = atoi( token );
			g_GuildMgr[ct].first = code;

			token = strtok( NULL, ",\n" );
			if( !token ) continue;
			code = atoi( token );
			g_GuildMgr[ct].mark_num= code;

			token = strtok( NULL, ",\n" );
			if( !token ) continue;
			code = atoi( token );
			g_GuildMgr[ct].make = code;

			token = strtok( NULL, ",\n" );
			if( !token ) continue;
			code = atoi( token );
			g_GuildMgr[ct].info_num = code;
		}
		fclose( fp );
	}
	return 1;
}	//> CSD-030324

// thai2 YGI
void LoadGuildMarkEx()
{	//< CSD-030324
	FILE *fp;
	char filename[128];
	sprintf( filename, "./data/mark_ex_%02d.dat", g_SelectServerIndex+1 );
	fp = Fopen( filename, "rb" );
	if( !fp ) return;

	int guildCode;
	while( 1 )
	{
		fread( &guildCode, sizeof( int ), 1, fp );
		if( feof(fp ) ) break;
		CGuild *curr_guild = &g_GuildMgr[guildCode];
		fread( &curr_guild->m_Spr.size, sizeof( DWORD ), 1, fp );
		fread( &curr_guild->m_Spr.xl, sizeof( short int ), 1, fp );
		fread( &curr_guild->m_Spr.yl, sizeof( short int ), 1, fp );
		curr_guild->m_Spr.ox = curr_guild->m_Spr.xl>>1;
		curr_guild->m_Spr.oy = curr_guild->m_Spr.yl>>1;
		curr_guild->m_Spr.img = new char[curr_guild->m_Spr.size];
		fread( curr_guild->m_Spr.img, sizeof( char ), curr_guild->m_Spr.size, fp );
		
		CopySprToSpr( &curr_guild->m_Spr_save, &curr_guild->m_Spr );
		convert565to555( &curr_guild->m_Spr );
	}
	fclose( fp );
}	//> CSD-030324

////////////////////////////////////////////////////////////////////////////////
//class CGuildBasic
int CGuildBasic::InitData()
{
	m_bInfo = 0;
	m_nCode = 0;
	m_bActive = 1;
	memset( m_szName, 0, sizeof( char)*20 );
	memset( m_szGuldMasterName, 0, sizeof( char)*20*5 );
	memset( m_aDegree, 0, sizeof( char)*20*5 );
	return 1;
}

int CGuild::InitData()
{
	save_flag = 0; 
	m_szExplain = NULL; 
	m_Spr.img = NULL; 
	m_Spr_save.img = NULL;

	first = 0;
	mark_num = 0;
	make = 0;
	info_num = 0;


	return 1;
}

////////////////////////////////////////////////////////////////////////////////
// 妮肺辑胶 胶沛俊 包茄 窃荐 葛澜
int GetTeamByStone( DWORD attr )
{
	if( GetAttr2( attr, IA2_NOTMOVE )  ) return -1;		// 酒流 评捞 绝促.
	return ( /*GetAttr2( attr, STONE_SCORE_2 )?2:0 +*/ GetAttr2( attr, STONE_SCORE_1 )?1:0 );
}

// 弊 胶沛阑 锭副 荐 乐绰啊 绝绰啊?
bool IsPossibleAttackColossusStone( LPITEMGROUND item )
{
	if( !Hero->fight_map_team_num ) return false;		// 辨靛傈 曼咯甫 秦具 窍绊
	if( Hero->fight_map_team_num == ( GetTeamByStone( item->attr[IATTR_ATTR] )+1 ) ) return false;	// 唱客 促弗 搬拌籍捞具 窍哥
	if( EquipItemAttr[WT_WEAPON].item_no ) return false;	// 酒公巴档 馒侩窍绊 乐栏搁 救等促.
	return true;
}

// 胶沛阑 锭啡促. 扼绰 荤角阑 辑滚肺 龋免
void SendAttackColossusItem( LPITEMGROUND item )
{
	t_packet packet;
	packet.h.header.type = CMD_ATTACK_COLOSSUS_STONE;
	packet.u.kein.default_int = item->server_id;
	packet.h.header.size = sizeof( int );
	QueuePacket( &packet, 1 );	
}

// 锭啡促. 加己阑 官操扼...
void SendAttackColossusItemResult( LPITEMGROUND item )
{

}
////////////////////////////////////////////////////////////////////////////////

WORD GetRGBByTeam( int team, int &r, int &g, int &b )
{
	WORD color=0; // 020620 YGI
	switch( team )
	{
		case 0 : r = 230; g = 40; b = 40; break;
		case 1 : r = 40; g = 40; b = 230; break;
		case 2 : r = 0; g = 0; b = 0; break;
		case 3 : r = 0; g = 0; b = 0; break;
	}
	return color;
}

//< soto-030313
bool	CheckGuardianGuildWear()// 矫具狼 荤恩甸狼 渴阑眉农 窍咯 辨靛汗栏肺 哎酒 涝腮促.
{
	return true;
}
//> soto-030313
void SetArenaObserverTarget(const int iTeamType)
{	//< CSD-030520
COMMENT	::AddCurrentStatusMessage( 250, 100, 100, "Set Observer Target '%d'",iTeamType);
	g_pArenaManager->SetObserveTeam(iTeamType);
}	//> CSD-030520

int GetArenaObserverTarget()
{	//< CSD-030520
	return g_pArenaManager->GetObserveTeam();
}	//> CSD-030520	

void SendObserverTeamSelect()//急琶 登绢乐绰 评 沥焊甫 焊郴凛聪促.
{	//< CSD-030520
COMMENT	::AddCurrentStatusMessage( 250, 100, 100, "Send Observer Target" );
	const int nTeam = GetArenaObserverTarget();
	g_pArenaManager->SendEnterObserve(nTeam);
}	//> CSD-030520

void SetArenaBettingTarget(const int iTeamType)
{	//< CSD-030520
COMMENT	::AddCurrentStatusMessage( 250, 100, 100, "Set Betting Target '%d'",iTeamType);
	if (g_pArenaManager->GetBattingMoney() > 0)
	{
		return;
	}

	g_pArenaManager->SetGamblingTeam(iTeamType);
}	//> CSD-030520

int GetArenaBettingTarget()
{	//< CSD-030521
	return g_pArenaManager->GetGamblingTeam(Hero->id);
}	//> CSD-030521

void SendMyArenaBettingMoney(const DWORD dwMoney)
{	//< CSD-030520
COMMENT	::AddCurrentStatusMessage( 250, 100, 100, "Send SendMyArenaBettingMoney" );
	const int nTeam = GetArenaBettingTarget();
	g_pArenaManager->SendEnterGambling(nTeam, dwMoney);
}	//> CSD-030520

DWORD GetTeamBettingMoney(const int iTeamType)//评俊 吧赴 捣
{	//< CSD-030520 : ATI_RED_TEAM, ATI_BLUE_TEAM
	return g_pArenaManager->GetBattingMoney(iTeamType);
}	//> CSD-030520

float GetTeamWinRate(const int iTeamType)//秦寸 评狼 铰伏
{	//< CSD-030520 : ATI_RED_TEAM, ATI_BLUE_TEAM
	return g_pArenaManager->GetTeamProbability(iTeamType);
}	//> CSD-030520

DWORD GetMyBettingMoney()//硅泼陛
{	//< CSD-030520
	return g_pArenaManager->GetBattingMoney();
}	//> CSD-030520

DWORD GetMyBettingResult()//硅寸陛
{	//< CSD-030520
	return g_pArenaManager->GetDividendMoney();
}	//> CSD-030520

DWORD GetAreanWaitTime()
{	//< CSD-030521
	return g_pArenaManager->GetReadyTime();
	//> CSD-030521
}

bool CanCallBettingMenu()
{
	// BBD 031214	怕惫俊绰 白喉窍搁 奴老抄促, 空捞 给窍霸 窍唱何促 -_-;
#ifdef	THAI_LOCALIZING_
	return false;
#endif

	//< CSD-030522
	if (g_pArenaManager->IsReadyGame())
	{
		return false;
	}

	return true;
}	//> CSD-030522

bool CanCallObserverMenu()
{	//< CSD-030522
	if (g_pArenaManager->IsReadyGame())
	{
		return false;
	}

	if (!g_pArenaManager->IsEnableObserve(Hero->id))
	{
		return false;
	}

	return true;
}	//> CSD-030522

⌨️ 快捷键说明

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