📄 sealstone.cpp
字号:
SealStone[ nation].regentime = 0;
SealStone[ antination[nation]].regentime = 0;
SendEndOfReGenTime();
}
}
}
// 傈傈器绊啊 等第俊 ,葛电 搬拌籍捞 柄脸绰啊?
void CheckSealStoneStatus( void )
{
int nation, j;
static DWORD t;
if( g_curr_time - t > 10 )
{
t = g_curr_time;
}
else return;
for( nation = N_VYSEUS ; nation <= N_ZYPERN ; nation ++ )
{
if( SealStone[ nation].warlefttime ) // 傈里急器甫 茄惑怕俊辑 .
{
for( j = 0 ; j < MAX_SEALSTONE_NATION_ ; j ++)
{
if( SealStone[ antination[ nation]].status[ j] ) break;
}
if( j == MAX_SEALSTONE_NATION_ ) // 惑措规狼 搬拌籍捞 葛滴 何寂脸促搁.
{
// 铰府...
SendResultNationWar( SSR_VICTORY, nation, SSR_FAIL, antination[ nation] );
SealStone[ nation].warlefttime = 0;
SealStone[ antination[nation]].warlefttime = 0;
SealStone[ nation].waraftertime = g_curr_time + SEALSTONE_WAR_AFTERTIME_;
SealStone[ antination[nation]].waraftertime = g_curr_time + SEALSTONE_WAR_AFTERTIME_;
}
}
}
}
extern cNation* g_pNation; // LTS LOCALWAR
extern int g_LocalWarBegin; // 011215 LTS
extern bool isNationManageServer(); // 011216 LTS
void SendSealStoneBlock( void ) // 011217 LTS
{ //< CSD-030723
const int ret = ReturnNation2NationRelation(N_VYSEUS, N_ZYPERN);
t_packet p;
switch (ret)
{
case NATION_RELATION_ENEMY_:
{
p.h.header.type = CMD_STEALSTONE_BREAKABLE;
break;
}
case NATION_RELATION_FRIEND_:
{
CWarStartInfo* pWarStartInfo = g_pNation->GetWarStartInfo();
if (pWarStartInfo != NULL)
{
if (pWarStartInfo->IsActive())
{
p.h.header.type = CMD_STEALSTONE_NON_BREAKABLE_PEACE;
}
else
{
p.h.header.type = CMD_STEALSTONE_NON_BREAKABLE;
}
}
break;
}
default:
{
return;
}
}
p.u.LocalWar.CommonDataC.Data=g_LocalWarBegin;
p.h.header.size = sizeof(t_CommonDataC);
SERVER_DATA *pData = g_pServerTable->GetOwnServerData();
if( pData->wPort == NATION_MANAGE_SERVER )
{
if (NULL != g_pNation) // LTS NEW LOCALWAR
{
switch(p.h.header.type)
{
case CMD_STEALSTONE_BREAKABLE:
{
g_pNation->SetLocalWarStatus2(1);
break;
}
case CMD_STEALSTONE_NON_BREAKABLE:
case CMD_STEALSTONE_NON_BREAKABLE_PEACE:
{
g_pNation->SetLocalWarStatus2(0);
break;
}
}
p.u.LocalWar.CommonDataC.Data = g_LocalWarBegin;
}
g_pUserManager->SendPacket(&p); // CSD-031213
SealStoneBreakable = p.h.header.type;
g_pServerTable->BroadCastToEveryServer((char*)&p, (sizeof(t_header) + p.h.header.size), SERVER_TYPE_MAP);
}
} //> CSD-030723
void CheckSealStoneBlock( void )
{ //< CSD-030804
if (g_pServerTable == NULL)
{
return;
}
if (!isNationManageServer())
{
return; // 011216 LTS
}
if (!g_pNation)
{
return; // 011216 LTS
}
static DWORD t;
static int oldh;
static int nCount;
if (g_curr_time - t > 60 || oldh != g_hour) // LTS LOCALWAR
{
CWarStartInfo* pWarStartInfo = g_pNation->GetWarStartInfo();
if (pWarStartInfo != NULL)
{
pWarStartInfo->Execute();
}
if (++nCount >= 10 || oldh != g_hour)
{
nCount = 0;
SendSealStoneBlock();
}
t = g_curr_time;
oldh = g_hour;
}
} //> CSD-030804
extern bool UpdateNationWarData(); // 010904 LTS // 傈里磐 甘狼 诀单捞飘
extern void UpdateEventLocalWarTime(); // 020115 LTS
// 020620 YGI
void CheckNationWar( void )
{
UpdateNationWarData(); // 010904 LTS
UpdateEventLocalWarTime(); // 020115 LTS
if( g_MapPort != NATION_MANAGE_SERVER ) return;
CheckSealStoneBlock();
CheckSealStoneStatus();
}
//////////////////////////////////////////////////////////////////////////////
/******************************************************************************************************
扁 瓷 : 弥家狼 惫啊惑怕甫 汲沥茄促. 扁夯利栏肺 葛电惫啊绰 利措惫啊捞促.
牢 磊 : 绝澜
搬 苞 :
*******************************************************************************************************/
int InitNationRelation( void )
{
int i,j;
for( i = 0 ; i < MAX_NATION ; i ++)
{
for( j = 0 ; j < MAX_NATION ; j ++)
{
if( i == j ) NationRelation[i][j].relation = NATION_RELATION_NO_;
else NationRelation[i][j].relation = NATION_RELATION_ENEMY_;
}
}
return 1;
}
/******************************************************************************************************
扁 瓷 : 泅犁 惫啊埃狼 包拌甫 府畔茄促.
牢 磊 : int a_nation, b_nation : 包拌甫 汲沥且 惫啊 ( 惫啊内靛, 3: 官捞辑胶, 4:磊捞戚 ... )
搬 苞 : 0 : 公包拌 1: 利措包拌 2: 蛆仿包拌 3: 林辆包拌( a:林 b:辆)
*******************************************************************************************************/
int ReturnNation2NationRelation( int anation, int bnation ) // 011217 LTS
{ //< CSD-030723
if( anation > MAX_NATION ) return 0;
if( bnation > MAX_NATION ) return 0;
t_NationRelation* ta = &NationRelation[anation][bnation];
t_NationRelation* tb = &NationRelation[bnation][anation];
if( ta->year &&
( (double)ta->year* 365*24*60*60 + (double)ta->yday* 24*60*60 + (double)ta->hour* 60*60 + ta->howlong <
(double)g_year * 365*24*60*60 + (double)g_yday * 24*60*60 + (double)g_hour * 60*60 ) )
{
ta->relation = ta->oldrelation;
tb->relation = tb->oldrelation;
tb->year = 0;
ta->year = 0;
}
else
{
CWarStartInfo* pWarStartInfo = g_pNation->GetWarStartInfo();
if (pWarStartInfo != NULL && pWarStartInfo->IsActive())
{
return NATION_RELATION_ENEMY_;
}
return NATION_RELATION_FRIEND_;
}
return ta->relation;
} //> CSD-030723
int SetNation2NationRelation( int a_nation, int b_nation, int relation, int year, int yday, int hour, DWORD howlong ) // 011217 LTS
{ //< CSD-030723
if (a_nation > MAX_NATION)
{
return NATION_RELATION_FAIL_NO_NATION_;
}
if (b_nation > MAX_NATION)
{
return NATION_RELATION_FAIL_NO_NATION_;
}
switch (relation)
{
case NATION_RELATION_FRIEND_:
{
if (relation == NationRelation[a_nation][b_nation].relation)
{
return NATION_RELATION_SAME_FAIL_;
}
CWarStartInfo* pWarStartInfo = g_pNation->GetWarStartInfo();
if (pWarStartInfo != NULL && pWarStartInfo->IsActive())
{
return NATION_RELATION_FAIL_;
}
break;
}
case NATION_RELATION_ENEMY_:
case NATION_RELATION_MASTER_SERVANT_:
{
break;
}
}
return NATION_RELATION_SUCCESS_;
} //> CSD-030723
/********************************************************************************************白挤(甘挤)俊辑 荤侩窍绰 窃荐
扁 瓷 : 惫啊埃狼 包拌甫 Loginserver肺 焊郴 霸烙辑滚俊 焊郴绢 葛电 霸烙挤(甘挤)捞 舅霸 茄促.
牢 磊 : int a_nation, b_nation : 包拌甫 汲沥且 惫啊 ( 惫啊内靛, 3: 官捞辑胶, 4:磊捞戚 ... )
int relation : 0 : 公包拌 1: 利措包拌 2: 蛆仿包拌 3: 林辆包拌( a:林 b:辆)
DWORD relationstart : 割檬第俊 矫累且巴牢啊
DWORD relationhowlong : 割檬悼救 蜡瘤瞪巴牢啊? ( 0捞搁 公茄 )
搬 苞 : LoginServer俊 焊郴瘤搁, 促矫 霸烙挤(甘挤)栏肺 焊郴瘤哥, 促矫 Client鳖瘤 搬苞甫 焊郴林霸 等促.
*******************************************************************************************************/
void RecvNation2NationRelation( int cn, t_nation2nation_relation *tp )
{
t_packet p;
int i;
int ret;
ret = SetNation2NationRelation( tp->a, tp->b, tp->relation, tp->year, tp->yday, tp->hour, tp->howlong );
p.h.header.type = CMD_NATION2NATION_RELATION_RESULT;
p.h.header.size = sizeof( t_nation2nation_relation_result );
p.u.nation2nation_relation_result.why = ret;
for( i = 0 ; i < LOGIN_MAX_CONNECTIONS ; i ++)
if( connections[i].dwAgentConnectionIndex )
if( connections[i].server_check )
QueuePacket( connections, i, &p, 1 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -