📄 ltssupprot.cpp
字号:
g_LocalWarPoint[1]=p->u.LocalWar.LocalWarPointChanged.Point[1];
g_LocalWarPoint[2]=p->u.LocalWar.LocalWarPointChanged.Point[2];
}
void RecvCMD_ACTION_STATUS(t_packet* p)
{
LPCHARACTER ch=FindHim(p->u.LocalWar.ActionStatus.ServerID);
if (NULL!=ch)
{
ch->nCurrentAction=p->u.LocalWar.ActionStatus.nCurrentAction;
ch->direction=(DIRECTION)p->u.LocalWar.ActionStatus.Direction;
}
}
void RecvCMD_SITDOWN_DIRECTION_CHANGED(t_packet* p)
{
LPCHARACTER ch=FindHim(p->u.LocalWar.SDChanged.ServerID);
if (NULL!=ch)
{
ch->direction=(DIRECTION)p->u.LocalWar.SDChanged.Direction;
}
}
void RecvCMD_LOCALWAR_STARTUP_STATUS(t_packet* p)
{
g_LocalWarBegin=p->u.LocalWar.CommonDataC.Data;
}
// Event LocalWar ___________________________________________________________________
/*
void EventLocalWarControl(char* Arg) // 020115 LTS
{
#ifdef _DEBUG
t_packet packet;
char temp=Arg[0]-48; // 0 :荤侩救窃, 1 : 泪咯 棺 捞悼, 2 : 矫累, 3 : 辆丰
packet.h.header.type=CMD_EVENT_LOCALWAR_CONTROL;
packet.u.LocalWar.CommonDataC.Data=temp;
packet.h.header.size=sizeof(t_CommonDataC);
QueuePacket(&packet,1);
#endif
}*/
void SendCMD_EVENT_LOCALWAR_JOIN()
{
t_packet packet;
packet.h.header.type=CMD_EVENT_LOCALWAR_JOIN;
packet.h.header.size=0;
QueuePacket(&packet,1);
CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,349) , FALSE); //"捞亥飘 惫瘤傈俊 曼啊脚没阑 窍看嚼聪促."
}
void SendCMD_EVENT_LOCALWAR_MOVE()
{
t_packet packet;
packet.h.header.type=CMD_EVENT_LOCALWAR_MOVE;
packet.h.header.size=0;
QueuePacket(&packet,1);
}
void SetEventLocalWarArmor()
{
LPCHARACTER ch=Hero; // 矫具狼 葛电 荤恩狼 渴阑 官槽促.
while (ch!=NULL)
{
if (ch->sprno<=1)
{
switch (ch->name_status.nation)
{
case NW_BY : ch->accessory[0]=fight_map_acc_num[1]; break;
case NW_ZY : ch->accessory[0]=fight_map_acc_num[0]; break;
case NW_YL : ch->accessory[0]=fight_map_acc_num[2]; break;
}
ch->accessory[1]=1;
LoadHeroClothAccessoryDataOne( ch->sprno, ch->accessory[0] );
LoadHeroClothAccessoryDataOne( ch->sprno, ch->accessory[1] );
}
ch=ch->lpNext;
}
}
/*void ProcessEventLocalWarStart()
{
AddCurrentStatusMessage( 255,255,0,"捞亥飘 惫瘤傈捞 矫累登菌嚼聪促.");
SetEventLocalWarArmor();
}
void RecvCMD_EVENT_LOCALWAR_STATUS_CHANGE(t_packet* p)
{
g_EventLocalWarBegin=p->u.LocalWar.CommonDataC.Data;
//皋矫瘤 贸府
switch (g_EventLocalWarBegin)
{
case 0 : break;
case 1 : break;
case 2 : break;
case 3 :
AddCurrentStatusMessage( 255,255,0,"捞亥飘 惫瘤傈捞 矫累登菌嚼聪促.");
//SetEventLocalWarArmor();
break;
case 4 :
AddCurrentStatusMessage( 255,255,0,"捞亥飘 惫瘤傈捞 辆丰登菌嚼聪促.");
break;
}
}
void RecvCMD_EVENT_LOCALWAR_REMAIN_TIME(t_packet* p)
{
char temp[MAX_PATH];
WORD Hour,Min,Sec;
GetTime(p->u.LocalWar.CommonDataDw.Data,Hour,Min,Sec); // 020115 LTS
sprintf(temp,"捞亥飘 惫瘤傈捞 %02d:%02d:%02d 巢疽嚼聪促.",Hour,Min,Sec);
AddCurrentStatusMessage( 255,255,0,temp);
}*/
void RecvCMD_EVENT_LOCALWAR_JOIN_RESULT(t_packet* p)
{
switch (p->u.LocalWar.CommonDataC.Data)
{
case 0 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,350) , FALSE); break;//"权其捞瘤俊辑 捞亥飘 曼啊脚没阑 窍瘤 臼疽嚼聪促.."
case 1 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,349) , FALSE); break;//"曼咯脚没阑 窍看嚼聪促."
case 2 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,351) , FALSE); break;//"泅犁 措雀俊 曼咯且 荐 乐绰 饭骇捞 酒凑聪促. 曼咯啊瓷茄 措雀俊 殿废窍矫扁 官而聪促."
case 3 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,352) , FALSE); break;//"公茄 PK 措雀 曼啊磊 牢盔捞 傈何 谩嚼聪促. 促澜 措雀俊 曼啊秦 林矫扁 官而聪促."
}
}
void RecvCMD_EVENT_LOCALWAR_MOVE_RESULT(t_packet* p)
{
if (!p->u.LocalWar.CommonDataC.Data)
{
CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,353) , FALSE); //"措雀 曼啊 脚没阑 秦具父 措雀厘家肺 捞悼且 荐啊 乐嚼聪促."
}
}
void GetMapName(int Nation,char* MapName,int& x, int &y)
{
switch(Nation)
{
case NW_BY : sprintf(MapName,lan->OutputMessage(9,201)); x=100; y=100; break; // 秋畔飘
case NW_ZY : sprintf(MapName,lan->OutputMessage(9,220)); x=100; y=100; break; // 饭呈胶矫
case NW_YL : sprintf(MapName,lan->OutputMessage(9,263)); x=100; y=100; break; // 官鄂藕
}
}
void ProcessEventMessage(t_EventLocalWarMessage* Message) //皋矫瘤 贸府 // LTS BUG
{
char tempMapName[MAX_PATH];
int x,y;
POINTS EventJoinLocation[3];
GetMapName(Hero->name_status.nation,tempMapName,x,y);
EventJoinLocation[0].x=Message->EventJoinLocation[0].x;
EventJoinLocation[0].y=Message->EventJoinLocation[0].y;
EventJoinLocation[1].x=Message->EventJoinLocation[1].x;
EventJoinLocation[1].y=Message->EventJoinLocation[1].y;
EventJoinLocation[2].x=Message->EventJoinLocation[2].x;
EventJoinLocation[2].y=Message->EventJoinLocation[2].y;
x=EventJoinLocation[GetNationIndex(Hero->name_status.nation)].x;
y=EventJoinLocation[GetNationIndex(Hero->name_status.nation)].y;
switch(Message->EventStatus)
{
case 0 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,354)); break; //"坷疵狼 葛电捞亥飘啊 场车嚼聪促."
case 1 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,355),Message->MinLevel,Message->MaxLevel,tempMapName,x,y); break; // "[ %d ] - [ %d ]饭骇 公茄 PK 措雀 曼咯磊 殿废阑 [ %s ]甘狼 [ %d, %d ]俊辑 罐绊乐嚼聪促."
case 2 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,356),Message->MinLevel,Message->MaxLevel,tempMapName,x,y); break;//"[ %d ] - [ %d ]饭骇 公茄 PK 措雀 曼咯磊绰 [ %s ]甘狼 [ %d, %d ]俊辑 曼咯秦林矫扁 官而聪促."
case 3 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,357),Message->MinLevel,Message->MaxLevel); break;//"[ %d ] - [ %d ]饭骇 公茄 PK 措雀啊 矫累登菌嚼聪促."
case 4 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,358),Message->MinLevel,Message->MaxLevel); break;//"[ %d ] - [ %d ]饭骇 公茄 PK 措雀啊 辆丰登菌嚼聪促."
}
PlayListAutoSounds(62,0,0,FALSE);
}
void RecvCMD_EVENT_LOCALWAR_MESSAGE(t_packet* p)
{
g_EventLocalWarBegin=p->u.LocalWar.EventLocalWarMessage.EventStatus;
switch (g_EventLocalWarBegin)
{
case 0 : break;
case 1 : break;
case 2 : break;
case 3 :
//SetEventLocalWarArmor();
break;
case 4 :
break;
}
ProcessEventMessage(&p->u.LocalWar.EventLocalWarMessage); //皋矫瘤 贸府
}
void RecvCMD_EVENT_POINT_CHANGE(t_packet* p) // LTS BUG
{
g_dEventPoint=p->u.LocalWar.EventPoint.Point;
}
void RecvCMD_EVENT_REMAIN_TIME(t_packet* p) // LTS BUG
{
g_dEventRemainTime=(g_ClientTime/1000)+p->u.LocalWar.EventRemainTime.RemainTime;
}
void MakeEarthQuake(int Delay) // LTS AI2
{
g_GameInfo.displayOption = DISPLAY_EARTHQUAKE; g_GameInfo.displayOptionDelay = Delay; // 瘤柳 贸府何盒..
}
void RecvCMD_EVENT_MONSTER_CREATED(t_packet* p) // LTS AI2
{
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,289),MapInfo[MapNumber].mapname);//"[ %s ]俊 阁胶磐啊 魔涝窍看嚼聪促."
MakeEarthQuake(40);
//PlayListAutoSound(260,0,0,0);
}
void DrawLocalWarSquadPic(int x,int y,LPORDERTABLE o,LPCHARACTER ch) // LTS HORSERIDER
{
int NationIndex=GetNationIndex(ch->name_status.nation);
if (ch->viewtype!=VIEWTYPE_TRANSPARENCY_&&ch->viewtype!=VIEWTYPE_GHOST_) // 捧疙捞芭唱 磷绢乐绰仇篮 力寇
{
PutCompressedImage(x,y,&SquadPic[NationIndex][3]);
}
}
void RecvCMD_LOCALWAR_NATION_RESULT(t_packet* p) // LTS NEW LOCALWAR
{ // 惫瘤傈 吝埃俊 捞菩哦阑 罐栏搁 菩硅捞促..
int Nation=GetNationFromIndex(p->u.LocalWar.LocalWarResult.NationIndex);
int Result=p->u.LocalWar.LocalWarResult.Result;
if (Hero->name_status.nation==Nation)
{
g_LocalWarBegin=FALSE;
if (Result) // 铰府
{
g_LocalWarResult=1; // WIN
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,338));
}
else
{
g_LocalWarResult=2; // LOOSE
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,366));//"磊惫啊狼 搬拌籍阑 焊龋窍瘤 臼酒 傈里俊 菩硅窍看嚼聪促");
}
}
else
{
switch(Nation)
{
case 3 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,367),lan->OutputMessage(0,205)); break;//lan->OutputMessage(0,339));
case 4 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,367),lan->OutputMessage(0,206)); break;
case 6 : AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,367),lan->OutputMessage(0,207)); break;
}
PlayListAutoSounds(56,0,0,0);
}
}
void RecvCMD_LOCALWAR_MAPMOVE_RESULT(t_packet* p) // LTS NEW LOCALWAR
{
switch(p->u.LocalWar.CommonDataC.Data)
{
case 1 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,368), FALSE); break; // "惫瘤傈俊 曼咯秦具父 甘捞悼阑 且荐 乐嚼聪促."
case 2 : CallOkCancelMessageBox(TRUE, 0,0,lan->OutputMessage(0,369), FALSE); break; // "磊惫狼 甘俊父 甘捞悼阑 且荐 乐嚼聪促."
}
}
void RecvCMD_LOCALWAR_FAME_EXP(t_packet* p) /// LTS NEW LOCALWAR
{
short int tempFame=p->u.LocalWar.FameExpChange.GainedFame;
DWORD tempExp=p->u.LocalWar.FameExpChange.GainedExp;
PlayListAutoSounds(62,0,0,FALSE);
/*AddCurrentStatusMessage( 255,255,0,"============< 傈里 焊惑 >==============");
AddCurrentStatusMessage( 255,255,0,"傈里俊辑 腹篮 傍阑 技况 惫啊俊辑 酒贰客 鞍篮 焊惑阑 窍霸夌嚼聪促.");
AddCurrentStatusMessage( 255,255,0," [ 疙 己] : %d",tempFame);
AddCurrentStatusMessage( 255,255,0," [ 版 氰 摹] : %d",tempExp);*/
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,198));
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,199));
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,200),tempFame);
AddCurrentStatusMessage( 255,255,0,lan->OutputMessage(0,201),tempExp);
}
void RecvCMD_LOCALWAR_DEFENCE_POINT(t_packet* p) // LTS NEW LCOALWAR
{
g_LocalWarDefencePoint[0]=p->u.LocalWar.LocalWarDefencePoint.Point[0];
g_LocalWarDefencePoint[1]=p->u.LocalWar.LocalWarDefencePoint.Point[1];
g_LocalWarDefencePoint[2]=p->u.LocalWar.LocalWarDefencePoint.Point[2];
}
void RecvCMD_GOTO_GUILD_HOUSE_RESULT(t_packet* p) // 辫康林
{
char* GuildName=GetGuildName(p->u.LocalWar.CommonDataDw.Data);
if (GuildName!=NULL)
{
AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,290),GuildName);
}
}
void RecvCMD_CHECK_GUILD_HOUSE_RESULT(t_packet* p) // 辫康林
{
char* GuildName=GetGuildName(p->u.LocalWar.CommonDataDw.Data);
if (GuildName!=NULL)
{
AddCurrentStatusMessage(255,255,0,lan->OutputMessage(0,291),GuildName);
}
}
LPCHARACTER ReturnCharacterBySprNo(int Sprno) // LTS DRAGON TEMP
{
LPCHARACTER ch=Hero;
while (ch!=NULL)
{
if (ch->sprno==Sprno)
{
return ch;
}
ch=ch->lpNext;
}
return NULL;
}
void SendDragonAction(char* Arg) // LTS DRAGON TEMP
{
int i=atoi(Arg);
LPCHARACTER ch=ReturnCharacterBySprNo(50);
if (!ch)
{
if( GetSysInfo(SI_GAME_MAKE_MODE ) ) // 020925 YGI
AddCurrentStatusMessage(255,255,0,"秦寸 胶橇扼捞飘 锅龋甫 八免窍瘤 给窍看嚼聪促.");
return;
}
ch->nCurrentAction=i; //咀记技泼
ch->nCurrentFrame=0;
}
int GetDirection(POINT tStart,POINT tDest)
{
POINT temp;
int Quater=0;
float Ratio=0;
int Direction;
temp.x=tStart.x-tDest.x;
temp.y=tStart.y-tDest.y;
if (temp.x>0 && temp.y>0) Quater=1; // 秦寸 荤盒搁 搬沥
if (temp.x<0 && temp.y>0) Quater=2;
if (temp.x>0 && temp.y<0) Quater=3;
if (temp.x<0 && temp.y<0) Quater=4;
if (Quater==0) return 0;
if (temp.y==0) return 0;
Ratio=(float)temp.x / (float)temp.y;
if (Ratio<0) Ratio*=-1; // ABS
switch(Quater)
{
case 1 :
{
if (Ratio>=0 && Ratio<0.17) Direction=8;
if (Ratio>=0.17 && Ratio<0.65) Direction=7;
if (Ratio>=0.65 && Ratio<1.5) Direction=6;
if (Ratio>=1.5 && Ratio<5.5) Direction=5;
if (Ratio>=5.5 && Ratio<500) Direction=4;
}
break;
case 2 :
{
if (Ratio>=0 && Ratio<0.17) Direction=8;
if (Ratio>=0.17 && Ratio<0.65) Direction=9;
if (Ratio>=0.65 && Ratio<1.5) Direction=10;
if (Ratio>=1.5 && Ratio<5.5) Direction=11;
if (Ratio>=5.5 && Ratio<500) Direction=12;
}
break;
case 3 :
{
if (Ratio>=0 && Ratio<0.17) Direction=0;
if (Ratio>=0.17 && Ratio<0.65) Direction=1;
if (Ratio>=0.65 && Ratio<1.5) Direction=2;
if (Ratio>=1.5 && Ratio<5.5) Direction=3;
if (Ratio>=5.5 && Ratio<500) Direction=4;
}
break;
case 4 :
{
if (Ratio>=0 && Ratio<0.17) Direction=0;
if (Ratio>=0.17 && Ratio<0.65) Direction=15;
if (Ratio>=0.65 && Ratio<1.5) Direction=14;
if (Ratio>=1.5 && Ratio<5.5) Direction=13;
if (Ratio>=5.5 && Ratio<500) Direction=12;
}
break;
}
return Direction;
}
void MakeBreathData(int Index,int Count,int x,int y)
{
/* t_CommonArg Arg;
for (int i=0;i<Count;i++)
{
Arg.BreathArg.SpriteIndex=Index; // Packet Receive
Arg.BreathArg.StartLocation.x=600;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -