📄 nationsys.cpp
字号:
MemAlloc( SquadPicBuffer, sprfilelength );
for( i = 0 ; i < 3 ; i ++)
{
for( j = 0 ; j < 5 ; j ++)
{
s = &SquadPic[i][j];
fread( &size, 4,1, fp);
if( size== 0 )
{
s->xl = 0;
s->yl = 0;
s->size = 0;
s->img = NULL;
continue;
}
fread( &(s->xl), sizeof( short ), 1, fp);
fread( &(s->yl), sizeof( short ), 1, fp);
//s->yl ++;
fread( &(s->ox), sizeof( short ), 1, fp);
fread( &(s->oy), sizeof( short ), 1, fp);
fread( &(s->size),sizeof( unsigned int ), 1, fp);
if( nOff + s->size >= sprfilelength )
{
JustMsg( lan->OutputMessage(6,51),FileName, i+1, j );
ExitApplication(EA_LOAD_LOACL_SQUAD_SPR_DATA);
}
fread( SquadPicBuffer + nOff, s->size, 1, fp);
s->img = SquadPicBuffer + nOff;
convert565to555_LoadSprite( s );
nOff += size;
}
}
fclose(fp);
return sprfilelength;
}
void DeleteSquadPic()
{
MemFree( SquadPicBuffer );
}
// Global Function
bool InitNation()
{
if (!LoadSquadPic("./char/WarSquad.spr"))
{
JustMsg( "./char/WarSquad.spr Error!!");
return false;
}
if (!LoadLocalWarInfoPic("./data/LWInfo.dat"))
{
JustMsg( "./data/LWInfo.dat Error!!");
return false; // LTS LOCALWAR
}
InitSitDownData(); // LTS SITDOWN BUG
/*if (!LoadChairPic("./char/092000.spr"))
{
JustMsg( "./char/092.spr 颇老俊 巩力啊 乐嚼聪促.");
return false; // LTS SITDOWN
}*/
g_pNation=new cNation;
if (g_pNation==NULL) return false;
g_pDontManager=new CDontManager;
if (g_pDontManager==NULL)
return false;
else
g_pDontManager->LoadData();
return true;
}
void CloseNation()
{
DeleteSquadPic();
FreeLocalWarInfoPicBuffer(); // LTS LOCALWAR
FreeChairPicBuffer(); // LTS SITDOWN
SAFE_DELETE(g_pNation);
SAFE_DELETE(g_pDontManager);
}
// Very often Call Function
int CheckNationStatus(int StatusNo)
{
int WarfieldNo=-1;
if (g_pNation->GetStatus(0)==StatusNo) WarfieldNo=0;
if (g_pNation->GetStatus(1)==StatusNo) WarfieldNo=1;
if (g_pNation->GetStatus(2)==StatusNo) WarfieldNo=2;
if (g_pNation->GetNewStatus(0)==StatusNo) WarfieldNo=3;
//< LTH-040226-KO 汲盔傈里磐 捞饶 傈里磐 惑怕 馆券. 1.4 器窃
if (g_pNation->GetNewStatus(WI_HADES_WARFIELD) == StatusNo) WarfieldNo = WI_HADES_WARFIELD;
//> LTH-040226-KO
return WarfieldNo;
}
/**
* @fn CheckWarfieldStatus().
* @brief 阿 傈里磐狼 惑怕甫 葛滴 炼荤窍咯 馆券.
* @param int nStatusNo. 炼荤 且 惑怕 蔼.
* @param BYTE aWarfieldStatus[WI_MAX_WARFIELD]. 阿 傈里磐狼 惑炔 馆券 厘家.
* @return void.
*/
//< LTH-040414-KO.
void CheckWarfieldStatus(int nStatusNo, BYTE aWarfieldStatus[WI_MAX_WARFIELD])
{
// 檬扁拳
eNEO_WARFIELD_ID eNeoWarfieldId = (eNEO_WARFIELD_ID)0;
for (; eNeoWarfieldId < WI_MAX_WARFIELD; eNeoWarfieldId = (eNEO_WARFIELD_ID)(eNeoWarfieldId + 1))
aWarfieldStatus[eNeoWarfieldId] = (BYTE)FALSE;
if (g_pNation->GetStatus(WI_MOUNTAIN_WARFIELD) == nStatusNo)
aWarfieldStatus[WI_MOUNTAIN_WARFIELD] = (BYTE)TRUE;
if (g_pNation->GetStatus(WI_PLAIN_WARFIELD) == nStatusNo)
aWarfieldStatus[WI_PLAIN_WARFIELD] = (BYTE)TRUE;
if (g_pNation->GetStatus(WI_ISLAND_WARFIELD) == nStatusNo)
aWarfieldStatus[WI_ISLAND_WARFIELD] = (BYTE)TRUE;
if (g_pNation->GetNewStatus(WI_SNOWY_WARFIELD - 3) == nStatusNo)
aWarfieldStatus[WI_SNOWY_WARFIELD] = (BYTE)TRUE;
if (g_pNation->GetNewStatus(WI_HADES_WARFIELD) == nStatusNo)
aWarfieldStatus[WI_HADES_WARFIELD] = (BYTE)TRUE;
}
//> LTH-040414-KO
bool isNationWarfieldServer()
{
if (MapInfo[MapNumber].port==WARFIELD_PORT1 ||
MapInfo[MapNumber].port==WARFIELD_PORT2 ||
MapInfo[MapNumber].port==WARFIELD_PORT3 ) return true;
return false;
}
bool isNewWarfieldServer()
{
int Port=MapInfo[MapNumber].port;
if (Port<BASE_NEW_WARFIELD_PORT||Port>=(BASE_NEW_WARFIELD_PORT+MAX_NEW_WARFIELD))
return false;
return true;
}
//< LTH-040226-KO 1.4 汲盔 傈里磐 捞饶狼 脚痹傈里磐牢瘤 厚背窍绰 窃荐
BOOL IsNeoWarfieldServer()
{
INT nPort = MapInfo[MapNumber].port;
if ((nPort < WP_HADES_WARFIELD) || (nPort >= WP_MAX_WARFIELD_PORT))
return FALSE;
return TRUE;
} //> LTH-040226-KO
// LTH-040207-KO 1.4 菩摹 捞饶 货肺款 傈里磐 锅龋牢啊?
BOOL IsNeoWarfield(INT nWarfieldNo)
{
if ((WI_HADES_WARFIELD > nWarfieldNo) || (WI_MAX_WARFIELD <= nWarfieldNo))
return FALSE;
return TRUE;
}
//> LTH-040226-KO
bool isOurSquad(LPCHARACTER hero,LPCHARACTER ch) // 011028 LTS
{
if (!isNationWarfieldServer()&&!isNewWarfieldServer()) return true;
if (hero->name_status.nation!=ch->name_status.nation) //滴蜡历啊 促弗 唱扼捞搁 荤恩捞搁
{
if (Hero->name_status.nation==NW_YL) // 011019 LTS // 林牢傍捞 老胶捞搁
{
if (ch->name_status.nation==NW_YL) //措惑档 老胶捞搁
{
if (hero->NWCharacter.YL_JoinNation==ch->NWCharacter.YL_JoinNation) return true; // 鞍篮 唱扼俊 炼牢沁促搁 快府何措
else return false; // 促弗唱扼俊 炼牢沁促搁 快府何措 酒丛
}
else //林牢傍篮 老胶 措惑篮 老胶啊 酒聪促
{
if (hero->NWCharacter.YL_JoinNation==ch->name_status.nation) return true; // Join茄 惫啊啊 鞍栏搁 鞍篮 祈
else return false; // 炼牢茄 惫啊啊 促福搁
}
}
else // Hero啊 老胶啊 捞聪促
{
if (ch->name_status.nation==NW_YL) //措惑捞 老胶捞搁
{
if (Hero->name_status.nation==ch->NWCharacter.YL_JoinNation) return true;
else return false;
}
else return false; // 林牢傍档 措惑档 老胶啊 酒聪促.
}
}
else
{
if (Hero->name_status.nation==NW_YL) // 011019 LTS // 林牢傍捞 老胶捞搁
{
if (ch->name_status.nation==NW_YL) //措惑档 老胶捞搁
{
if (hero->NWCharacter.YL_JoinNation==ch->NWCharacter.YL_JoinNation) return true; // 鞍篮 唱扼俊 炼牢沁促搁 快府何措
else return false; // 促弗唱扼俊 炼牢沁促搁 快府何措 酒丛
}
else //林牢傍篮 老胶 措惑篮 老胶啊 酒聪促
{
if (hero->NWCharacter.YL_JoinNation==ch->name_status.nation) return true; // Join茄 惫啊啊 鞍栏搁 鞍篮 祈
else return false; // 炼牢茄 惫啊啊 促福搁
}
}
else return true; // Hero啊 老胶啊 捞聪促
}
}
bool isAttacker() // 傈里磐 甘俊辑父 啊瓷窍促.
{
if (Hero->name_status.nation==NW_YL)
{
if (Hero->NWCharacter.YL_JoinNation==g_DefenceNation) return false;
else return true;
}
if (Hero->name_status.nation==g_DefenceNation) return false;
else return true;
}
bool isAttacker(LPCHARACTER ch) // LTS DRAGON BUG
{
if (ch->name_status.nation==NW_YL)
{
if (ch->NWCharacter.YL_JoinNation==g_DefenceNation) return false;
else return true;
}
if (ch->name_status.nation==g_DefenceNation) return false;
else return true;
}
bool isEnemy(LPCHARACTER ch1,LPCHARACTER ch2) // LTS DRAGON BUG2
{
if (isNewWarfieldServer())
{
int Nation1=ch1->name_status.nation;
int Nation2=ch2->name_status.nation;
if (Nation1==NW_YL)
Nation1=ch1->NWCharacter.YL_JoinNation;
if (Nation2==NW_YL)
Nation2=ch2->NWCharacter.YL_JoinNation;
if (Nation1==Nation2)
return false;
else
return true;
}
else
{
if (isAttacker(ch1)==isAttacker(ch2)) return false;
return true;
}
}
int GetSquadNo()
{
return Hero->NWCharacter.SquadNo;
}
void DrawSquadPic(int x,int y,LPORDERTABLE o,LPCHARACTER ch) // 011019 LTS // LTS HORSERIDER
{
//if (!isNationWarfieldServer()) return;
//if (!g_bWarBegin) return;
if (ch->viewtype!=VIEWTYPE_TRANSPARENCY_&&ch->viewtype!=VIEWTYPE_GHOST_) // 捧疙捞芭唱 磷绢乐绰仇篮 力寇
{
int NationIndex=GetNationIndex(ch->name_status.nation);
if (isNationWarfieldServer())
{
if (ch->NWCharacter.isCommander) PutCompressedImage(x,y,&SquadPic[NationIndex][4]); // 荤飞包捞搁..
else if (ch->NWCharacter.SquadNo) PutCompressedImage(x,y,&SquadPic[NationIndex][ch->NWCharacter.SquadNo-1]); // 何措捞搁..
else
{
if (ch->name_status.nation==NW_YL)
{
if (ch->NWCharacter.YL_JoinNation==NW_BY) // 官捞侩捍捞搁....
{
PutCompressedImage(x,y,&SquadPic[0][0]);
}
if (ch->NWCharacter.YL_JoinNation==NW_ZY)
{
PutCompressedImage(x,y,&SquadPic[1][0]); // 磊捞 侩捍捞搁..
}
}
}
}
if (isNewWarfieldServer())
{
if (g_bWarBegin)
{
int Nation=ch->name_status.nation;
if (Nation==NW_YL) Nation=ch->NWCharacter.YL_JoinNation;
switch(Nation)
{
case NW_BY : PutCompressedImage(x,y,&SquadPic[0][0]); break;
case NW_ZY : PutCompressedImage(x,y,&SquadPic[1][0]); break;
}
}
}
}
}
void WarMenuOpen() // 牢磐其捞胶 傈里包府家 皋春 坷锹
{
MP3(50);
CallSmallMenu( MN_NATION_BATTLE_BBS );
}
void GetTime(DWORD RemainTime,WORD& Hour,WORD& Min,WORD& Sec) // 011020 LTS
{
DWORD temp;
Hour=WORD(RemainTime / 3600);
temp=DWORD(RemainTime % 3600);
Min=WORD(temp / 60);
Sec=WORD(temp % 60);
}
void ShowCommanderInfo()
{
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,151), FALSE); //"============= 荤飞包 皋矫瘤 ============="
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,152), FALSE); //"/*1 郴侩 : 荤飞包捞 何措厘俊霸 皋矫瘤甫 焊尘 锭"
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,153), FALSE); //"/*2 郴侩 : 荤飞包捞 何措 傈眉俊霸 皋矫瘤甫 焊尘 锭"
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,154), FALSE); //"/*3 郴侩 : 荤飞包捞 傈里磐 救俊 乐绰 磊惫刮俊霸 皋矫瘤甫 焊尘 锭"
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,155), FALSE); //"/*4 郴侩 : 荤飞包捞 磊惫刮 傈眉俊霸 皋矫瘤甫 焊尘 锭"
} // 010924 LTS
void ShowSquadInfo()
{
char Message[100];
sprintf(Message,lan->OutputMessage(0,157),Hero->NWCharacter.SquadNo); //"寸脚篮 **[[力 %d 何措]]** 俊 家加蹬 乐嚼聪促."
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,156), FALSE); //"============== 何措 家加 =============="
AddCurrentStatusMessage( 255,255,0, Message, FALSE);
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,158), FALSE); //"0 何措绰 酒公 何措俊档 家加蹬瘤 臼篮 巴阑 唱鸥忱聪促."
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,159), FALSE); //"============== 何措 皋矫瘤 =============="
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,160), FALSE); // "/*1 郴侩 : 何措厘捞 荤飞包俊霸 皋矫瘤甫 焊尘 锭"
AddCurrentStatusMessage( 255,255,0, lan->OutputMessage(0,161), FALSE); //"/* 郴侩 : 何措盔捞 磊脚捞 家加等 何措盔俊霸 皋矫瘤甫 焊尘 锭"
}
void ReturnNationName(int Nation,char* Message)
{
switch (Nation)
{
case 3 : sprintf(Message,lan->OutputMessage(0,205)); break; //"官捞辑胶"
case 4 : sprintf(Message,lan->OutputMessage(0,206)); break; //"磊捞戚"
case 6 : sprintf(Message,lan->OutputMessage(0,207)); break; //"老胶"
}
}
void ReturnWarfieldName(int WarfieldNo,char* Message)
{
switch (WarfieldNo)
{
case 0 : sprintf(Message,lan->OutputMessage(0,208)); break; //"魂吝傈里磐"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -