📄 sealstone.cpp
字号:
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_;
}
}
}
}
void SendSealStoneBlock( void )
{
t_packet p;
int i;
int ret;
ret = ReturnNation2NationRelation( N_VYSEUS, N_ZYPERN );
switch( ret )
{
// 利惫啊..
case NATION_RELATION_ENEMY_ : p.h.header.type = CMD_STEALSTONE_BREAKABLE;
break;
// 悼竿包拌俊辑绰 甘阑 刚绢哎荐 绝促.
case NATION_RELATION_FRIEND_: if( g_hour >= 22 || g_hour < 2 ) p.h.header.type = CMD_STEALSTONE_NON_BREAKABLE_PEACE;
else p.h.header.type = CMD_STEALSTONE_NON_BREAKABLE;
break;
default : return;
}
p.h.header.size = 0;
for(i = 0; i < LOGIN_MAX_CONNECTIONS; ++ i)
if( connections[i].server_check )
QueuePacket( connections, i, &p, 1 );
}
// 20盒付促.. 谎妨霖促.
void CheckSealStoneBlock( void )
{
static DWORD t;
static int oldh;
if( g_curr_time - t > 20*60 || oldh != g_hour )
{
t = g_curr_time;
oldh = g_hour;
}
else return;
SendSealStoneBlock();
}
void CheckNationWar( void )
{
CheckSealStoneBlock();
//CheckReGenTime();
CheckSealStoneStatus();
//CheckWarLeftTime();
}
//////////////////////////////////////////////////////////////////////////////
/******************************************************************************************************
扁 瓷 : 弥家狼 惫啊惑怕甫 汲沥茄促. 扁夯利栏肺 葛电惫啊绰 利措惫啊捞促.
牢 磊 : 绝澜
搬 苞 :
*******************************************************************************************************/
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 )
{
if( anation > MAX_NATION_ ) return 0;
if( bnation > MAX_NATION_ ) return 0;
t_NationRelation *ta, *tb;
ta = &NationRelation[anation][bnation];
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
{
if( g_hour >= 22 || g_hour < 2 )
{
return ta->relation;
}
else
{
return NATION_RELATION_FRIEND_;
}
}
return ta->relation;
}
int SetNation2NationRelation( int a_nation, int b_nation, int relation, int year, int yday, int hour, DWORD howlong )
{
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_ENEMY_ :
break;
case NATION_RELATION_FRIEND_ :
if( relation == NationRelation[a_nation][b_nation].relation )
{
return NATION_RELATION_SAME_FAIL_;
}
if( g_hour >= 22 || g_hour < 2 ) // 泅犁绰 傈里吝捞扁 锭巩俊 捞矫埃俊绰 惫备埃 包拌甫 汲沥且荐 绝促.
{
return NATION_RELATION_FAIL_;
}
break;
case NATION_RELATION_MASTER_SERVANT_:
break;
}
t_NationRelation *t;
t = &NationRelation[a_nation][b_nation];
t->oldrelation = t->relation;
t->relation = relation;
t->year = year;
t->yday = yday;
t->hour = hour;
t->howlong = howlong;
t = &NationRelation[b_nation][a_nation];
t->oldrelation = t->relation;
t->relation = relation;
t->year = year;
t->yday = yday;
t->hour = hour;
t->howlong = howlong;
return NATION_RELATION_SUCCESS_;
}
/********************************************************************************************白挤(甘挤)俊辑 荤侩窍绰 窃荐
扁 瓷 : 惫啊埃狼 包拌甫 Loginserver肺 焊郴 霸烙辑滚俊 焊郴绢 葛电 霸烙挤(甘挤)捞 舅霸 茄促.
牢 磊 : int a_nation, b_nation : 包拌甫 汲沥且 惫啊 ( 惫啊内靛, 3: 官捞辑胶, 4:磊捞戚 ... )
int relation : 0 : 公包拌 1: 利措包拌 2: 蛆仿包拌 3: 林辆包拌( a:林 b:辆)
DWORD relationstart : 割檬第俊 矫累且巴牢啊
DWORD relationhowlong : 割檬悼救 蜡瘤瞪巴牢啊? ( 0捞搁 公茄 )
搬 苞 : LoginServer俊 焊郴瘤搁, 促矫 霸烙挤(甘挤)栏肺 焊郴瘤哥, 促矫 Client鳖瘤 搬苞甫 焊郴林霸 等促.
*******************************************************************************************************/
int SendNation2NationRelation( int a_nation, int b_nation, int relation, int year = 0, int yday = 0, int hour = 0, DWORD howlong = 0 )
{
t_packet p;
if( relation == NATION_RELATION_FRIEND_ )
{
if( year == 0 ) // 惫啊埃狼 1老埃狼 绒傈阑 茄促.
{
year = g_year;
yday = g_yday;
hour = g_hour;
int shour = 24 - g_hour + 2;
int smin = 60 - g_min;
howlong = 60*60*shour + smin * 60;
}
}
p.h.header.type = CMD_NATION2NATION_RELATION;
p.h.header.size = sizeof( t_nation2nation_relation );
p.u.nation2nation_relation.a = a_nation;
p.u.nation2nation_relation.b = b_nation;
p.u.nation2nation_relation.relation = relation;
p.u.nation2nation_relation.year = year;
p.u.nation2nation_relation.yday = yday;
p.u.nation2nation_relation.hour = hour;
p.u.nation2nation_relation.howlong = howlong;
QueuePacket( connections, LOGIN_SERVER_CONNECT, &p, 1 );
return 1;
}
/********************************************************************************************白挤(甘挤)俊辑 荤侩窍绰 窃荐
扁 瓷 : 惫啊埃狼 包拌甫 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].server_check )
QueuePacket( connections, i, &p, 1 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -