📄 teambattle.cpp
字号:
{
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 + -