📄 nationsys.cpp
字号:
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;
return WarfieldNo;
}
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;
}
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; //"魂吝傈里磐"
case 1 : sprintf(Message,lan->OutputMessage(0,209)); break; //"乞盔傈里磐"
case 2 : sprintf(Message,lan->OutputMessage(0,210)); break; //"级傈里磐"
case 3 : sprintf(Message,lan->OutputMessage(0,386)); break; // "汲盔傈里磐"
}
}
void SendCMD_SQUAD_CHAT(int type,char* Message) // Send Squad Chat Message to Server(Warfield Server)
{
t_packet packet;
if (!isNationWarfieldServer()&&!isNewWarfieldServer())
{
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,211), FALSE); //"[傈里磐]俊辑父 荤侩且 荐 乐绰 扁瓷涝聪促."
return;
}
if (isNationWarfieldServer())
{
switch(type) //救等促绰 皋矫瘤 免仿
{
case 0 : // "/*1"
if (!(Hero->NWCharacter.isCommander||Hero->NWCharacter.isSquadLeader))
{
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,212), FALSE); //"[荤飞包], [何措厘]父 焊尘 荐 乐绰 皋矫瘤 扁瓷涝聪促."
return;
}
break;
case 1 : // "/*2"
case 2 : // "/*3"
case 3 : // "/*4"
if (!Hero->NWCharacter.isCommander)
{
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,213), FALSE); //"[荤飞包]父 焊尘 荐 乐绰 皋矫瘤 扁瓷涝聪促."
return;
}
break;
case 4 : // "/*"
if (Hero->NWCharacter.SquadNo==0)
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,214), FALSE); //"[何措盔]父 焊尘 荐 乐绰 皋矫瘤 扁瓷涝聪促."
}
}
packet.h.header.type=CMD_SQUAD_CHAT;
packet.u.NationWar.SquadChat.Type=type;
packet.u.NationWar.SquadChat.Size=strlen(Message);
strcpy(packet.u.NationWar.SquadChat.Message,Message);
packet.h.header.size=sizeof(t_SquadChat)-MAX_STRING_PK+packet.u.NationWar.SquadChat.Size;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -