stoneage8.5/石器时代8.5客户端最新源代码/石器源码/system/battleproc.cpp

1173 lines
30 KiB
C++
Raw Normal View History

2020-06-23 15:53:23 +08:00
/************************/
2020-06-23 15:27:59 +08:00
/* battleProc.cpp */
/************************/
#include "../systeminc/version.h"
#include "../systeminc/system.h"
#include "../other/caryIme.h"
#include "../systeminc/ime_sa.h"
#include "../systeminc/map.h"
#include "../systeminc/menu.h"
#include "../systeminc/battlemap.h"
#include "../systeminc/battleProc.h"
#include "../systeminc/battleMenu.h"
#include "../systeminc/battleMap.h"
#include "../systeminc/produce.h"
#include "../systeminc/lssproto_cli.h"
#include "../systeminc/netmain.h"
#include "../systeminc/t_music.h"
#include "../systeminc/pc.h"
#include "../systeminc/character.h"
#include "../systeminc/handletime.h"
#include "../systeminc/savedata.h"
#include "../systeminc/field.h"
extern ACTION* oft_test();
extern void damage_num( ACTION *a0 );
extern void WindowDisp( ACTION *a0 );
extern int piyo_point;
extern void set_bc( void );
extern void disp_kanji(ACTION *a0);
extern BOOL bNewServer;
#ifdef _PROFESSION_ADDSKILL
extern ACTION *boundary_2,*boundary_mark[2];
#endif
#ifdef __ATTACK_MAGIC
// Global vars
2020-06-23 15:53:23 +08:00
extern int g_iRunEarthQuake; // 地震的状况: 0 --> 没地震 , 1 --> 初始化地震 , 2 --> 地震中
extern int g_iCurRunEarthQuake; // 目前地震的位置线
extern int g_iNumRunEarthQuake; // 地震的总次数
2020-06-23 15:27:59 +08:00
#endif
extern BOOL BattlingFlag;
int flash_pal_cnt;
2020-06-23 15:53:23 +08:00
PALETTEENTRY Palette2[256]; // ?????
2020-06-23 15:27:59 +08:00
// ?????????
BOOL EncountFlag = FALSE;
// ???????
BOOL DuelFlag = FALSE;
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
BOOL NoHelpFlag = FALSE;
2020-06-23 15:53:23 +08:00
#ifdef _MAGIC_NOCAST//沉默
2020-06-23 15:27:59 +08:00
BOOL NoCastFlag = FALSE;
#endif
// ???????????
BOOL EncountOffFlag = FALSE;
2020-06-23 15:53:23 +08:00
// ????????
2020-06-23 15:27:59 +08:00
BOOL Battle1P2PFlag;
2020-06-23 15:53:23 +08:00
// ???????
2020-06-23 15:27:59 +08:00
ACTION* pActSurprisalWnd;
ACTION* pActAudienceExitWnd;
2020-06-23 15:53:23 +08:00
#ifdef _NEWDRAWBATTLEMAP // (不可开放) Syu ADD 自动产生BattleMap
static ACTION *BattleWaterAct[8]; //环境动画
2020-06-23 15:27:59 +08:00
#endif
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
extern int check_all_dead( void );
// ????????
extern char att_select_flg;
// ???
// ??????????
int BattleDebTurnNo = 0;
// ?????????
char *BattleBcDeb[] =
{
#include "../systeminc/BattleBcDeb.h"
};
// ??????????
char *BattleCmdDeb[] =
{
#include "../systeminc/BattleMvDeb.h"
};
extern
2020-06-23 15:53:23 +08:00
/* 佋 *********************************************************/
2020-06-23 15:27:59 +08:00
void battle_quake( void )
{
switch(quake_vct_no){
2020-06-23 15:53:23 +08:00
case 0: //???
2020-06-23 15:27:59 +08:00
break;
2020-06-23 15:53:23 +08:00
case 1: //佋?
2020-06-23 15:27:59 +08:00
quake_flg = 60;
quake_vct_no = 2;
break;
2020-06-23 15:53:23 +08:00
case 2: //佋?
2020-06-23 15:27:59 +08:00
if(quake_flg >= 16){
piyo_point += 16;
} else {
piyo_point += quake_flg;
}
piyo_point &= 63;
2020-06-23 15:53:23 +08:00
if(!--quake_flg){ //佋???
2020-06-23 15:27:59 +08:00
quake_vct_no = 0;
}
break;
}
#ifdef __ATTACK_MAGIC
switch( g_iRunEarthQuake )
{
2020-06-23 15:53:23 +08:00
// 没地震
2020-06-23 15:27:59 +08:00
case 0:
break;
2020-06-23 15:53:23 +08:00
// 初始化地震
2020-06-23 15:27:59 +08:00
case 1:
g_iRunEarthQuake = 2;
break;
2020-06-23 15:53:23 +08:00
// 地震中
2020-06-23 15:27:59 +08:00
case 2:
if( g_iNumRunEarthQuake >= 16 )
g_iCurRunEarthQuake += 16;
else
g_iCurRunEarthQuake += g_iNumRunEarthQuake;
g_iCurRunEarthQuake &= 63;
if( 0 == --g_iNumRunEarthQuake )
g_iRunEarthQuake = 0;
break;
}
#endif
}
2020-06-23 15:53:23 +08:00
/* ?????? *********************************************************/
2020-06-23 15:27:59 +08:00
void die_flash( void )
{
int d0 = 0;
int d1,d7;
return;
switch(flash_vct_no){
case 0:
break;
2020-06-23 15:53:23 +08:00
//?????????? ? ??????????
2020-06-23 15:27:59 +08:00
case 1:
flash_vct_no++;
break;
case 2:
for( d7 = 0; d7 < 10; d7++ ){
Palette2[d7].peBlue = Palette[d7].peBlue;
Palette2[d7].peGreen = Palette[d7].peGreen;
Palette2[d7].peRed = Palette[d7].peRed;
Palette2[d7].peFlags = Palette[d7].peFlags;
Palette2[d7+246].peBlue = Palette[d7+246].peBlue;
Palette2[d7+246].peGreen = Palette[d7+246].peGreen;
Palette2[d7+246].peRed = Palette[d7+246].peRed;
Palette2[d7+246].peFlags = Palette[d7].peFlags;
}
for( d7 = 10; d7 < 246; d7++ ){ //??????????
Palette2[d7].peBlue = Palette[d7].peBlue;
Palette2[d7].peGreen = Palette[d7].peGreen;
Palette2[d7].peRed = 0xff;
Palette2[d7].peFlags = Palette[d7].peFlags;
}
#ifndef D3D_ENGINE
lpDraw->lpPALETTE->SetEntries(0, 0, 256, Palette2);
#endif
flash_pal_cnt = 20;
flash_vct_no++;
break;
case 3:
if(--flash_pal_cnt){
break;
}
flash_vct_no++;
break;
case 4:
for(d7=10; d7<246; d7++){
if(Palette2[d7].peRed == Palette[d7].peRed){
continue;
}
d0 = 1;
d1 = Palette2[d7].peRed - Palette[d7].peRed;
if(d1 > 3)
d1 = 3;
if(d1 < -3)
d1 = -3;
Palette2[d7].peRed -= d1;
}
if(WindowMode){ //??????????
flash_pal_cnt++;
2020-06-23 15:53:23 +08:00
if(flash_pal_cnt == 10){ //????
2020-06-23 15:27:59 +08:00
flash_pal_cnt = 0;
#ifndef D3D_ENGINE
lpDraw->lpPALETTE->SetEntries( 0, 0, 256, Palette2 );
#endif
} else {
2020-06-23 15:53:23 +08:00
d0 = 1; //????
2020-06-23 15:27:59 +08:00
}
} else {
#ifndef D3D_ENGINE
lpDraw->lpPALETTE->SetEntries( 0, 0, 256, Palette2 );
#endif
}
2020-06-23 15:53:23 +08:00
if(d0 == 0){ //???
2020-06-23 15:27:59 +08:00
flash_vct_no = 0;
}
break;
}
}
2020-06-23 15:53:23 +08:00
/* ??????? *********************************************************/
2020-06-23 15:27:59 +08:00
void damage_dispx( void )
{
2020-06-23 15:53:23 +08:00
ACTION *pActLoop = pActTop->pNext; /* ???????? */
ACTION *pActLoopBak; /* ????????? */
2020-06-23 15:27:59 +08:00
// ?????
while(1){
2020-06-23 15:53:23 +08:00
/* ?????????? */
2020-06-23 15:27:59 +08:00
if( pActLoop == pActBtm ) break;
2020-06-23 15:53:23 +08:00
/* ????? */
2020-06-23 15:27:59 +08:00
if( pActLoop->deathFlag == FALSE ){
/* Pd( pActLoop->prio ); */
2020-06-23 15:53:23 +08:00
/* ?????????? */
2020-06-23 15:27:59 +08:00
if( pActLoop->func == damage_num ){
damage_num(pActLoop);
}
if( pActLoop->func == WindowDisp ){
WindowDisp(pActLoop);
}
if( pActLoop->func == disp_kanji ){
disp_kanji(pActLoop);
}
/* ?????????? */
pActLoop = pActLoop->pNext;
}else{ /* ?????? */
2020-06-23 15:53:23 +08:00
/* ????? */
2020-06-23 15:27:59 +08:00
pActLoop->pPrev->pNext = pActLoop->pNext;
pActLoop->pNext->pPrev = pActLoop->pPrev;
/* ?????? */
pActLoopBak = pActLoop->pNext;
2020-06-23 15:53:23 +08:00
/* ?????? */
2020-06-23 15:27:59 +08:00
ClearAction( pActLoop );
/* ???????? */
pActLoop = pActLoopBak;
}
}
}
2020-06-23 15:53:23 +08:00
// ???? **************************************************************/
2020-06-23 15:27:59 +08:00
void SurprisalDisp( void )
{
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
if( BattleBpFlag & BATTLE_BP_ENEMY_SURPRISAL || BattleBpFlag & BATTLE_BP_PLAYER_SURPRISAL ){
2020-06-23 15:53:23 +08:00
// ?????????
2020-06-23 15:27:59 +08:00
if( pActSurprisalWnd == NULL ){
2020-06-23 15:53:23 +08:00
// ?????????
2020-06-23 15:27:59 +08:00
pActSurprisalWnd = MakeWindowDisp( 320 - 96, 240 - 48, 3, 2, NULL, 1 );
// ????????
play_se( 202, 320, 240 );
}
2020-06-23 15:53:23 +08:00
// ?????????????
2020-06-23 15:27:59 +08:00
if( pActSurprisalWnd->hp > 0 ){
2020-06-23 15:53:23 +08:00
// ????????????
2020-06-23 15:27:59 +08:00
if( MenuToggleFlag & JOY_CTRL_E || MenuToggleFlag & JOY_CTRL_A ){
if( pActSurprisalWnd->x < 320 - 96 + 56 ) pActSurprisalWnd->x += 6;
}else{
if( pActSurprisalWnd->x > 320 - 96 ) pActSurprisalWnd->x -= 6;
}
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
if( BattleBpFlag & BATTLE_BP_ENEMY_SURPRISAL ){
2020-06-23 15:53:23 +08:00
StockFontBuffer( pActSurprisalWnd->x + 38, pActSurprisalWnd->y + 40, FONT_PRIO_FRONT, 0, " 遭敌偷袭 ", 0 );
2020-06-23 15:27:59 +08:00
}
2020-06-23 15:53:23 +08:00
// ????????????
2020-06-23 15:27:59 +08:00
if( BattleBpFlag & BATTLE_BP_PLAYER_SURPRISAL ){
2020-06-23 15:53:23 +08:00
StockFontBuffer( pActSurprisalWnd->x + 38, pActSurprisalWnd->y + 40, FONT_PRIO_FRONT, 0, "出其不意的攻击", 0 );
2020-06-23 15:27:59 +08:00
}
}
}
}
int xxx;
2020-06-23 15:53:23 +08:00
/*Battle Process处理******************************************************************/
2020-06-23 15:27:59 +08:00
#ifdef _AI_OTHER
#ifdef _AI_CAPTURE
extern int AI_OtherSetting[2];
#else
extern int AI_OtherSetting[1];
#endif
#endif
void BattleProc( void )
{
int i;
int z;
s_timer++;
xxx = 0;
#ifndef _STREET_VENDOR
#ifdef _TABLEOFSKILL
extern short skillBtn ;
skillBtn = 0 ;
#endif
#endif
2020-06-23 15:53:23 +08:00
#ifdef _FRIENDCHANNEL //ROG ADD 好友频道
2020-06-23 15:27:59 +08:00
extern short chatRoomBtn ;
chatRoomBtn = 0;
SelRoomBtn = 0;
#endif
switch( SubProcNo ){
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_INIT: //初期化
2020-06-23 15:27:59 +08:00
#ifdef __AI
extern char *AI_Choosen;
AI_Choosen = NULL;
#endif
BattlingFlag = TRUE;
#ifdef _PROFESSION_ADDSKILL
if( boundary_2 != NULL ){
DeathAction( boundary_2 );
boundary_2 = NULL;
}
if( boundary_mark[0] ){
DeathAction( boundary_mark[0] );
boundary_mark[0] = NULL;
}
if( boundary_mark[1] ){
DeathAction( boundary_mark[1] );
boundary_mark[1] = NULL;
}
#endif
2020-06-23 15:53:23 +08:00
//Action消灭
2020-06-23 15:27:59 +08:00
DeathAllAction();
2020-06-23 15:53:23 +08:00
// 战斗初始时释放掉水世界所有的动画
#ifdef _AniRandom // Syu ADD 随机产生环境动画
2020-06-23 15:27:59 +08:00
extern void AniRandomRelease();
AniRandomRelease();
#endif
2020-06-23 15:53:23 +08:00
#ifdef _AniCrossFrame // Syu ADD 动画层游过画面生物
2020-06-23 15:27:59 +08:00
extern void crossAniRelease();
crossAniRelease();
#endif
2020-06-23 15:53:23 +08:00
#ifdef _AniCharBubble // Syu ADD 动画层人物吐出气泡
2020-06-23 15:27:59 +08:00
extern void CharbubbleRelease();
CharbubbleRelease();
#endif
2020-06-23 15:53:23 +08:00
#ifdef _AniImmobile // Syu ADD 定点产生特定动画
2020-06-23 15:27:59 +08:00
extern void ImmobileAniRelease();
ImmobileAniRelease();
#endif
2020-06-23 15:53:23 +08:00
#ifdef _SPECIALSPACEANIM // Syu ADD 特殊场景动画配置
2020-06-23 15:27:59 +08:00
extern void ReleaseSpecAnim();
ReleaseSpecAnim();
#endif
2020-06-23 15:53:23 +08:00
#ifdef _NEWDRAWBATTLEMAP // Syu ADD 自动产生BattleMap
2020-06-23 15:27:59 +08:00
if ( nowFloor == 817 || nowFloor == 8007 || nowFloor == 8101 || nowFloor == 8100 ||
nowFloor == 8027 || nowFloor == 8028 || nowFloor == 8029 || nowFloor == 8015 || nowFloor == 8113 || nowFloor == 8114 )
{
for ( z = 0 ; z < 8 ; z ++ )
{
if ( BattleWaterAct [ z ] == NULL )
{
BattleWaterAct[ z ] = MakeAnimDisp (
( 80 * (z + 1) ),
Rnd ( 5 , 450 ) ,
Rnd( 101502 , 101509) ,
0);
BattleWaterAct[ z ]->dispPrio = 30 ;
}
}
}
#endif
slow_flg = 0;
action_inf = 0;
oft_test();
2020-06-23 15:53:23 +08:00
// Menu初始化
2020-06-23 15:27:59 +08:00
InitMenu();
2020-06-23 15:53:23 +08:00
// BattleMenu初始化
2020-06-23 15:27:59 +08:00
InitBattleMenu();
pActSurprisalWnd = NULL;
pActAudienceExitWnd = NULL;
2020-06-23 15:53:23 +08:00
// Produce初始化
2020-06-23 15:27:59 +08:00
ProduceInitFlag = TRUE;
2020-06-23 15:53:23 +08:00
// 输入focus取得
2020-06-23 15:27:59 +08:00
GetKeyInputFocus( &MyChatBuffer );
2020-06-23 15:53:23 +08:00
// ?????
// Buffer初始化
2020-06-23 15:27:59 +08:00
DispBuffer.DispCnt = 0;
FontCnt = 0;
2020-06-23 15:53:23 +08:00
// BattleMap读取
2020-06-23 15:27:59 +08:00
#ifdef _NEW_RESOMODE
//drawMap();
ReadBattleMap( BattleMapNo );
#else
ReadBattleMap( BattleMapNo );
#endif
2020-06-23 15:53:23 +08:00
ChatProc(); // Chat处理
2020-06-23 15:27:59 +08:00
ChatBufferToFontBuffer(); // ??????????????????????
// ???????????????
ClearBackSurface();
// ????????????????
#ifdef __SKYISLAND
fastDrawTileFlag = 0;
PutBmp();
fastDrawTileFlag = 1;
#else
PutBmp();
// ??????????????????????
lpBattleSurface->BltFast( 0, 0, lpDraw->lpBACKBUFFER, NULL, DDBLTFAST_WAIT );
#endif
// ???????
DispBuffer.DispCnt = 0;
FontCnt = 0;
2020-06-23 15:53:23 +08:00
//????????
2020-06-23 15:27:59 +08:00
if(DuelFlag == TRUE || eventEnemyFlag == 1 || vsLookFlag == 1)
{
2020-06-23 15:53:23 +08:00
#ifdef _NEWMUSICFILE6_0 // Syu ADD 6.0 新地图音乐
2020-06-23 15:27:59 +08:00
if ( nowFloor != 817 && nowFloor != 8007 && nowFloor != 8101 && nowFloor != 8100 &&
nowFloor != 8027 && nowFloor != 8028 && nowFloor != 8029 && nowFloor != 8015 && nowFloor != 8113 && nowFloor != 8114 )
{
#endif
2020-06-23 15:53:23 +08:00
//Boss战BGM再生
2020-06-23 15:27:59 +08:00
if( map_bgm_no>=15 && map_bgm_no<=21)
play_bgm( 13 );
else
play_bgm( 6 );
if(nowFloor == 8519) play_bgm(14);
2020-06-23 15:53:23 +08:00
#ifdef _NEWMUSICFILE6_0 // Syu ADD 6.0 新地图音乐
2020-06-23 15:27:59 +08:00
}
else play_bgm ( 24 ) ;
#endif
}
else
{
2020-06-23 15:53:23 +08:00
#ifdef _NEWMUSICFILE6_0 // Syu ADD 6.0 新地图音乐
2020-06-23 15:27:59 +08:00
if ( nowFloor != 817 && nowFloor != 8007 && nowFloor != 8101 && nowFloor != 8100 &&
nowFloor != 8027 && nowFloor != 8028 && nowFloor != 8029 && nowFloor != 8015 && nowFloor != 8113 && nowFloor != 8114 )
{
#endif
2020-06-23 15:53:23 +08:00
//通常战斗BGM再生
2020-06-23 15:27:59 +08:00
if( map_bgm_no>=15 && map_bgm_no<=21)
play_bgm( 12 );
else
play_bgm( 5 );
2020-06-23 15:53:23 +08:00
#ifdef _NEWMUSICFILE6_0 // Syu ADD 6.0 新地图音乐
2020-06-23 15:27:59 +08:00
}
else
play_bgm ( 24 ) ;
#endif
}
// ????????
NowTime = TimeGetTime();
2020-06-23 15:53:23 +08:00
// ??????????
2020-06-23 15:27:59 +08:00
BackBufferDrawType = DRAW_BACK_PRODUCE;
2020-06-23 15:53:23 +08:00
// ??
2020-06-23 15:27:59 +08:00
DrawProduce( PRODUCE_HAGARE_OCHI_IN );
2020-06-23 15:53:23 +08:00
// ????
2020-06-23 15:27:59 +08:00
MenuProc(); // ??????
ImeProc(); // ???????
2020-06-23 15:53:23 +08:00
// 处理 field menu ???????????
2020-06-23 15:27:59 +08:00
fieldProc2();
// menu flag on ?????????
battleMenuFlag2 = TRUE;
2020-06-23 15:53:23 +08:00
// 检查宠物 ??????????
2020-06-23 15:27:59 +08:00
for( i = 0 ; i < 5 ; i++ ){
// ????????????
if( pet[ i ].useFlag == FALSE ){
// ??????
if( i == pc.battlePetNo ) pc.battlePetNo = -1;
// ?????
if( i == pc.mailPetNo ) pc.mailPetNo = -1;
// ??????????
pc.selectPetNo[ i ] = FALSE;
}
}
// ????????
saveUserSetting();
2020-06-23 15:53:23 +08:00
// ????????
2020-06-23 15:27:59 +08:00
SubProcNo++;
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_IN_PRODUCE: // ??????
// 转景 ??
2020-06-23 15:27:59 +08:00
if( DrawProduce( PRODUCE_HAGARE_OCHI_IN ) == TRUE ){
// ???????
DispBuffer.DispCnt = 0;
FontCnt = 0;
2020-06-23 15:53:23 +08:00
// ?????????????????????? */
2020-06-23 15:27:59 +08:00
#ifdef _NEW_RESOMODE
//drawMap();
ReadBattleMap( BattleMapNo );
#else
ReadBattleMap( BattleMapNo );
#endif
// ???????????????
ClearBackSurface();
// ????????????????
#ifdef __SKYISLAND
fastDrawTileFlag = 0;
PutBmp();
fastDrawTileFlag = 1;
#else
PutBmp();
// ??????????????????????
lpBattleSurface->BltFast( 0, 0, lpDraw->lpBACKBUFFER, NULL, DDBLTFAST_WAIT );
#endif
// ???????
DispBuffer.DispCnt = 0;
FontCnt = 0;
// ????????
NowTime = TimeGetTime();
2020-06-23 15:53:23 +08:00
// ??????????
2020-06-23 15:27:59 +08:00
BackBufferDrawType = DRAW_BACK_BATTLE;
2020-06-23 15:53:23 +08:00
// ??????????
2020-06-23 15:27:59 +08:00
/* ?????? */
ChatProc();
// ??????????????????????
ChatBufferToFontBuffer();
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
FlashKeyboardCursor();
// ??????
MenuProc();
// ???????
ImeProc();
// ???????????
fieldProc2();
SubProcNo++;
}else{
MenuProc(); // ??????
ImeProc(); // ???????
// ???????????
fieldProc2();
}
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_RECEIVE_BC: //每回合起始人物状态显示
2020-06-23 15:27:59 +08:00
#ifdef _DEBUG__
if(offlineFlag == TRUE){
#ifdef _BATTLE_PK_PLAYER_FOR_40
strcpy(BattleStatus,"BC|3|"
"0|ishikawa|title|18768|1|20|20|0|"
"1|ishikawa|title|18768|1|20|20|0|"
"2|ishikawa|title|18768|1|20|20|0|"
"3|ishikawa|title|18768|1|20|20|0|"
"4|ishikawa|title|18768|1|20|20|0|"
"5|beron|title|18813|1|20|20|0|"
"6|beron|title|18813|1|20|20|0|"
"7|beron|title|18813|1|20|20|0|"
"8|beron|title|18813|1|20|20|0|"
"9|beron|title|18813|1|20|20|0|"
"A|ishikawa|title|18813|1|20|20|0|"
"B|ishikawa|title|18813|1|20|20|0|"
"C|ishikawa|title|18813|1|20|20|0|"
"D|ishikawa|title|18813|1|20|20|0|"
"E|ishikawa|title|18813|1|20|20|0|"
"F|beron|title|187BA|1|20|20|0|"
"10|beron|title|187BA|1|20|20|0|"
"11|beron|title|187BA|1|20|20|0|"
"12|beron|title|187BA|1|20|20|0|"
"13|beron|title|187BA|1|20|20|0|"
"14|beron|title|187BA|1|20|20|0|"
"15|beron|title|187BA|1|20|20|0|"
"16|beron|title|187BA|1|20|20|0|"
"17|beron|title|187BA|1|20|20|0|"
"18|beron|title|187BA|1|20|20|0|"
"19|beron|title|187BA|1|20|20|0|"
"1A|beron|title|187BA|1|20|20|0|"
"1B|beron|title|187BA|1|20|20|0|"
"1C|beron|title|187BA|1|20|20|0|"
"1D|beron|title|187BA|1|20|20|0|"
"1E|beron|title|187BA|1|20|20|0|"
"1F|beron|title|187BA|1|20|20|0|"
"20|beron|title|187BA|1|20|20|0|"
"21|beron|title|187BA|1|20|20|0|"
"22|beron|title|187BA|1|20|20|0|"
"23|beron|title|187BA|1|20|20|0|"
"24|beron|title|187BA|1|20|20|0|"
"25|beron|title|187BA|1|20|20|0|"
"26|beron|title|187BA|1|20|20|0|"
"27|beron|title|187BA|1|20|20|0|"
);
#endif
#ifdef _BATTLE_PK_PLAYER_FOR_6VS6
strcpy(BattleStatus, "BC|3|"
"0|friend1|title|18A97|1|20|20|1|"
"1|friend2|title|18A97|1|20|20|1|"
"2|friend3|title|18A97|1|20|20|1|"
"3|friend4|title|18A97|1|20|20|1|"
"4|friend5|title|18A97|1|20|20|1|"
"5|friend6|title|18A97|1|20|20|1|"
"6|mypet1|title|18813|1|20|20|1|"
"7|mypet2|title|18813|1|20|20|1|"
"8|mypet3|title|18813|1|20|20|1|"
"9|mypet4|title|18813|1|20|20|1|"
"A|mypet5|title|18813|1|20|20|1|"
"B|mypet6|title|18813|1|20|20|1|"
"C|enemy|title|18A97|2|20|20|1|"
"D|enemy|title|18A97|2|20|20|1|"
"E|enemy|title|18A97|2|20|20|1|"
"F|enemy|title|18A97|2|20|20|1|"
"10|enemy|title|18A97|2|20|20|1|"
"11|enemy|title|18A97|2|20|20|1|"
"12|enemy|title|18813|2|20|20|1|"
"13|enemy|title|18813|2|20|20|1|"
"14|enemy|title|18813|2|20|20|1|"
"15|enemy|title|18813|2|20|20|1|"
"16|enemy|title|18813|2|20|20|1|"
"17|enemy|title|18813|2|20|20|1|"
);
#endif
//strcpy( BattleStatus, BattleBcDeb[ BattleDebTurnNo ] );
2020-06-23 15:53:23 +08:00
//设置BC封包
2020-06-23 15:27:59 +08:00
set_bc();
SubProcNo++;
break;
}
#endif
/* ?????? */
ChatProc();
/*
#ifndef __AI
2020-06-23 15:53:23 +08:00
//cary 清除暂停自动攻击
2020-06-23 15:27:59 +08:00
if( PauseAI == 2)
PauseAI = 0;
if( PauseAI == 1)
PauseAI = 2;
extern int battleButtonBak;
if( AI == AI_SELECT)
battleButtonBak = -1;
#endif
*/
// ??????????????????????
ChatBufferToFontBuffer();
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
FlashKeyboardCursor();
// ??????
MenuProc();
// ???????
ImeProc();
// ???????????
fieldProc2();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
TimeZoneProc();
2020-06-23 15:53:23 +08:00
// ??
2020-06-23 15:27:59 +08:00
if( BattleBpFlag & BATTLE_BP_JOIN ){
// ??????
2020-06-23 15:53:23 +08:00
strcpy( OneLineInfoStr,"等待回合结束。");
2020-06-23 15:27:59 +08:00
}
// ?????????????????
if( EncountFlag == FALSE ){
// ??????????
if( !( s_timer & 7 ) ){
piyo_point++;
piyo_point &= 63;
}
/* ????????? */
RunAction();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
StockTaskDispBuffer();
}
if( BattleStatusReadPointer != BattleStatusWritePointer ){
strcpy( BattleStatus, BattleStatusBak[ BattleStatusReadPointer ] );
BattleStatusReadPointer = ( BattleStatusReadPointer + 1 ) & ( BATTLE_BUF_SIZE-1 );
EncountFlag = FALSE;
set_bc();
if( BattleMyNo < BATTLKPKPLYAERNUM ) {
if( p_party[ BattleMyNo ]->petFall == 2 ) {
2020-06-23 15:53:23 +08:00
lssproto_TK_recv( sockfd, 0, "P|你中了落马术,座骑已退出战斗。", FONT_PAL_YELLOW);
2020-06-23 15:27:59 +08:00
p_party[ BattleMyNo ]->petFall = 0;
}else if( p_party[ BattleMyNo ]->onRide == -1 ) {
2020-06-23 15:53:23 +08:00
lssproto_TK_recv( sockfd, 0, "P|你的座骑受伤过重,已退出战斗。", FONT_PAL_YELLOW);
2020-06-23 15:27:59 +08:00
}
#ifdef _PETSKILL_BECOMEFOX
else if( p_party[ BattleMyNo ]->onRide == -2 ) {
2020-06-23 15:53:23 +08:00
lssproto_TK_recv( sockfd, 0, "P|你中了媚惑术,座骑已退出战斗。", FONT_PAL_YELLOW);
2020-06-23 15:27:59 +08:00
}
#endif
#ifdef _PETSKILL_BECOMEPIG
else if( p_party[ BattleMyNo ]->onRide == -3 ) {
2020-06-23 15:53:23 +08:00
lssproto_TK_recv( sockfd, 0, "P|你处于乌力化,座骑已退出战斗。", FONT_PAL_YELLOW);
2020-06-23 15:27:59 +08:00
}
#endif
#ifdef _PETSKILL_EXPLODE
else if( p_party[ BattleMyNo ]->onRide == -4 ) {
2020-06-23 15:53:23 +08:00
lssproto_TK_recv( sockfd, 0, "P|你中了爆裂攻击,座骑已退出战斗。", FONT_PAL_YELLOW);
2020-06-23 15:27:59 +08:00
}
#endif
}
2020-06-23 15:53:23 +08:00
// ??????????
2020-06-23 15:27:59 +08:00
CheckBattleNewPet();
2020-06-23 15:53:23 +08:00
// ????????
2020-06-23 15:27:59 +08:00
if( BattleMyNo < BATTLKPKPLYAERNUM ){
2020-06-23 15:53:23 +08:00
// ???
2020-06-23 15:27:59 +08:00
p_party[ BattleMyNo ]->mp = BattleMyMp;
}
2020-06-23 15:53:23 +08:00
// ?????????
2020-06-23 15:27:59 +08:00
Battle1P2PFlag = CheckBattle1P2P();
SubProcNo++;
}
2020-06-23 15:53:23 +08:00
// ??????????
2020-06-23 15:27:59 +08:00
if( BattleMyNo >= 20 ){
2020-06-23 15:53:23 +08:00
// ?????????
2020-06-23 15:27:59 +08:00
if( pActAudienceExitWnd == NULL ){
2020-06-23 15:53:23 +08:00
// ?????????
2020-06-23 15:27:59 +08:00
pActAudienceExitWnd = MakeWindowDisp( 444, 4, 3, 2, NULL, 1 );
// ????????
play_se( 202, 320, 240 );
}
}
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_CHAR_IN: // ?
2020-06-23 15:27:59 +08:00
// ??????????l
if( !( s_timer & 7 ) ){
piyo_point++;
piyo_point &= 63;
}
2020-06-23 15:53:23 +08:00
// ????
2020-06-23 15:27:59 +08:00
SurprisalDisp();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
CheckBattleAnimFlag();
/* ????????? */
RunAction();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
StockTaskDispBuffer();
/* ?????? */
ChatProc();
// ??????????????????????
ChatBufferToFontBuffer();
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
FlashKeyboardCursor();
// ??????
MenuProc();
// ???????
ImeProc();
// ???????????
fieldProc2();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
TimeZoneProc();
2020-06-23 15:53:23 +08:00
// ?
2020-06-23 15:27:59 +08:00
BattleNameDisp();
2020-06-23 15:53:23 +08:00
// ???
2020-06-23 15:27:59 +08:00
if( action_inf == 3 ){
action_inf = 0;
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
BattleBpFlag &= ~BATTLE_BP_JOIN;
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
if( check_all_dead() == 1 ){
SubProcNo = BATTLE_SUBPROC_OUT_PRODUCE_INIT;
break;
}
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
if( pActSurprisalWnd != NULL ){
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
DeathAction( pActSurprisalWnd );
pActSurprisalWnd = NULL;
2020-06-23 15:53:23 +08:00
// ????????
2020-06-23 15:27:59 +08:00
BattleBpFlag &= ~BATTLE_BP_ENEMY_SURPRISAL;
BattleBpFlag &= ~BATTLE_BP_PLAYER_SURPRISAL;
}
// ???????
SubProcNo++;
}
2020-06-23 15:53:23 +08:00
//??
2020-06-23 15:27:59 +08:00
if( action_inf == 2 ){
2020-06-23 15:53:23 +08:00
SubProcNo = BATTLE_SUBPROC_OUT_PRODUCE_INIT; //???
2020-06-23 15:27:59 +08:00
action_inf = 0;
// ??????????
BattleCmd[ 0 ] = NULL;
}
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_CMD_INPUT: // ?????
2020-06-23 15:27:59 +08:00
#ifdef _DEBUG__
if(offlineFlag == TRUE){
SubProcNo++;
break;
}
#endif
// ??????????
if( !( s_timer & 7 ) ){
piyo_point++;
piyo_point &= 63;
}
{
#ifndef __AI
if( mouse.onceState == MOUSE_RIGHT_CRICK)
PauseAI = 2;
// ?????????
BattleMenuProc();
#else
extern void AI_ChooseAction();
if( AI == AI_SELECT){
void CloseInfoWnd();
CloseInfoWnd();
AI_ChooseAction();
}else
BattleMenuProc();
#endif
}
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
CheckBattleAnimFlag();
/* ????????? */
RunAction();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
StockTaskDispBuffer();
/* ?????? */
ChatProc();
// ??????????????????????
ChatBufferToFontBuffer();
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
FlashKeyboardCursor();
// ??????
MenuProc();
// ???????
ImeProc();
// ???????????
fieldProc2();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
TimeZoneProc();
2020-06-23 15:53:23 +08:00
// ?
2020-06-23 15:27:59 +08:00
BattleNameDisp();
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_RECEIVE_MOVIE: // ?????
2020-06-23 15:27:59 +08:00
#ifdef _DEBUG__
if(offlineFlag == TRUE){
strcpy( BattleCmd,"BY teki_A jibun_0 flg_0 damage_0 jibun_1 flg_0 damage_0 jibun_2 flg_0 damage_0"
" jibun_3 flg_0 damage_0 jibun_4 flg_0 damage_0 jibun_5 flg_0 damage_0"
" jibun_6 flg_0 damage_0 jibun_7 flg_0 damage_0 jibun_8 flg_0 damage_0"
" jibun_9 flg_0 damage_1 FF");
strcpy( BattleCmd, BattleCmdDeb[ BattleDebTurnNo ] );
BattleMyNo = 0;
//????????
att_select_flg = FALSE;
SubProcNo++;
break;
}
#endif
#ifndef __AI
if( mouse.onceState == MOUSE_RIGHT_CRICK)
PauseAI = 1;
#else
extern char *AI_Choosen;
#endif
// ??????????
if( !( s_timer & 7 ) ){
piyo_point++;
piyo_point &= 63;
}
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
CheckBattleAnimFlag();
/* ????????? */
RunAction();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
StockTaskDispBuffer();
/* ?????? */
ChatProc();
// ??????????????????????
ChatBufferToFontBuffer();
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
FlashKeyboardCursor();
// ??????
MenuProc();
// ???????
ImeProc();
// ???????????
fieldProc2();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
TimeZoneProc();
2020-06-23 15:53:23 +08:00
// ?
2020-06-23 15:27:59 +08:00
BattleNameDisp();
2020-06-23 15:53:23 +08:00
// ????????
2020-06-23 15:27:59 +08:00
if( BattleCmdReadPointer != BattleCmdWritePointer ){
strcpy( BattleCmd, BattleCmdBak[ BattleCmdReadPointer ] );
BattleCmdReadPointer = ( BattleCmdReadPointer + 1 ) & ( BATTLE_BUF_SIZE-1 );
action_inf = 0;
//?????????
att_select_flg = FALSE;
SubProcNo++;
}
2020-06-23 15:53:23 +08:00
// ???
2020-06-23 15:27:59 +08:00
if( Battle1P2PFlag == 2 ){
// ??????
2020-06-23 15:53:23 +08:00
strcpy( OneLineInfoStr,"等待其他玩家。");
2020-06-23 15:27:59 +08:00
}
2020-06-23 15:53:23 +08:00
// ???
2020-06-23 15:27:59 +08:00
if( BattleMyNo >= BATTLKPKPLYAERNUM ){
2020-06-23 15:53:23 +08:00
// ????
2020-06-23 15:27:59 +08:00
for( i = 0 ; i < BATTLKPKPLYAERNUM ; i++ ){
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
HpMeterDisp( i );
}
}else{
// ????????
if( BattleMyNo < 10 ){
2020-06-23 15:53:23 +08:00
for( i = 0 ; i < 10 ; i++ ) HpMeterDisp( i ); // ??????
2020-06-23 15:27:59 +08:00
}else
// ????????
if( BattleMyNo >= 10 ){
2020-06-23 15:53:23 +08:00
for( i = 10 ; i < 20 ; i++ ) HpMeterDisp( i ); // ??????
2020-06-23 15:27:59 +08:00
}
#ifdef _BATTLE_PK_PLAYER_FOR_40
if( BattleMyNo < 30 ){
2020-06-23 15:53:23 +08:00
for( i = 20 ; i < 30 ; i++ ) HpMeterDisp( i ); // ??????
2020-06-23 15:27:59 +08:00
}else
// ????????
if( BattleMyNo >= 40 ){
2020-06-23 15:53:23 +08:00
for( i = 30 ; i < 40 ; i++ ) HpMeterDisp( i ); // ??????
2020-06-23 15:27:59 +08:00
}
#endif
}
break;
case BATTLE_SUBPROC_MOVIE: // ??????
#ifdef _DEBUG__
if(offlineFlag == TRUE){
if(joy_trg[0]&JOY_A){ //??????
DeathAllAction();
SubProcNo = 0;
BattleCmd[0] = NULL;
break;
}
}
#endif
2020-06-23 15:53:23 +08:00
//???????????
2020-06-23 15:27:59 +08:00
#ifndef __AI
if( mouse.onceState == MOUSE_RIGHT_CRICK)
PauseAI = 1;
#else
if( AI_Choosen){
StockFontBuffer( 640-strlen(AI_Choosen)*7-4 + DISPLACEMENT_X, 440 + DISPLACEMENT_Y, FONT_PRIO_FRONT, FONT_PAL_YELLOW, AI_Choosen, 0 );
}
#endif
if( slow_flg ){
if( !( s_timer & 31 ) ){ // ????????
2020-06-23 15:53:23 +08:00
piyo_point++; // ????????????
2020-06-23 15:27:59 +08:00
piyo_point &= 63; // ????????
}
if( s_timer & 3 ){ // ????????????????????
2020-06-23 15:53:23 +08:00
damage_dispx(); // ?????????
2020-06-23 15:27:59 +08:00
}else{
RunAction(); /* ????????? */
2020-06-23 15:53:23 +08:00
battle_quake(); //佋
2020-06-23 15:27:59 +08:00
}
} else { // ???????
if( !( s_timer & 7 ) ){
piyo_point++;
piyo_point &= 63;
}
RunAction(); /* ????????? */
2020-06-23 15:53:23 +08:00
battle_quake(); //佋
2020-06-23 15:27:59 +08:00
}
2020-06-23 15:53:23 +08:00
//????????
if( flash_vct_no ) die_flash(); //??????
// ???????????????
2020-06-23 15:27:59 +08:00
StockTaskDispBuffer();
/* ?????? */
ChatProc();
// ??????????????????????
ChatBufferToFontBuffer();
2020-06-23 15:53:23 +08:00
// ???????????
2020-06-23 15:27:59 +08:00
FlashKeyboardCursor();
// ??????
MenuProc();
// ???????
ImeProc();
// ???????????
fieldProc2();
2020-06-23 15:53:23 +08:00
// ???????????????
2020-06-23 15:27:59 +08:00
TimeZoneProc();
2020-06-23 15:53:23 +08:00
// ?
2020-06-23 15:27:59 +08:00
//BattleNameDisp();
2020-06-23 15:53:23 +08:00
//??????
2020-06-23 15:27:59 +08:00
if( action_inf == 1 ){
SubProcNo = BATTLE_SUBPROC_RECEIVE_BC; //?????
#ifndef PK_SYSTEM_TIMER_BY_ZHU
2020-06-23 15:53:23 +08:00
BattleCliTurnNo++; // ???????????
2020-06-23 15:27:59 +08:00
#endif
#ifdef _DEBUG__
if(offlineFlag == TRUE){
SubProcNo = BATTLE_SUBPROC_RECEIVE_BC; //?????????
BattleDebTurnNo++;
// ????????
if( BattleDebTurnNo >= sizeof( BattleCmdDeb )/sizeof(int) ) BattleDebTurnNo = 0;
}
#endif
action_inf = 0;
// ??????????
BattleCmd[ 0 ] = NULL;
// ?????????
battleMenuFlag2 = TRUE;
}
2020-06-23 15:53:23 +08:00
//??
2020-06-23 15:27:59 +08:00
if( action_inf == 2 ){
2020-06-23 15:53:23 +08:00
SubProcNo = BATTLE_SUBPROC_OUT_PRODUCE_INIT; //???
2020-06-23 15:27:59 +08:00
action_inf = 0;
// ??????????
BattleCmd[ 0 ] = NULL;
}
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_OUT_PRODUCE_INIT: // ?????
2020-06-23 15:27:59 +08:00
//??????????
fade_out_bgm();
2020-06-23 15:53:23 +08:00
// ????????????
2020-06-23 15:27:59 +08:00
CopyBackBuffer();
2020-06-23 15:53:23 +08:00
// ??????????
2020-06-23 15:27:59 +08:00
BackBufferDrawType = DRAW_BACK_PRODUCE;
SubProcNo++;
2020-06-23 15:53:23 +08:00
#ifdef _NEWDRAWBATTLEMAP // (不可开放) Syu ADD 自动产生BattleMap
2020-06-23 15:27:59 +08:00
extern int RandBattleBg ;
RandBattleBg = 0 ;
for ( z = 0 ; z < 8 ; z ++ )
{
if ( BattleWaterAct[ z ] != NULL )
{
DeathAction(BattleWaterAct[ z ]);
BattleWaterAct[ z ] = NULL;
}
}
#endif
break;
2020-06-23 15:53:23 +08:00
case BATTLE_SUBPROC_OUT_PRODUCE: // ??
// ??
2020-06-23 15:27:59 +08:00
if( DrawProduce( PRODUCE_4WAY_OUT ) == TRUE ){
#ifdef _HUNDRED_KILL
BattleHundredFlag = FALSE;
#endif
// ????????
ChangeProc( PROC_GAME, 1 );
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
DeathAllAction();
2020-06-23 15:53:23 +08:00
// ?????????????????
2020-06-23 15:27:59 +08:00
BattlingFlag = FALSE;
clearPtActCharObj();
2020-06-23 15:53:23 +08:00
// ???????????????????
2020-06-23 15:27:59 +08:00
encountNowFlag = 0;
2020-06-23 15:53:23 +08:00
// ?????????????????????????
2020-06-23 15:27:59 +08:00
if( bNewServer)
lssproto_EO_send( sockfd, 0 );
else
old_lssproto_EO_send( sockfd, 0 );
2020-06-23 15:53:23 +08:00
//??????????
// ?????????????????????????
2020-06-23 15:27:59 +08:00
if( battleResultMsg.useFlag >= 1 ){
BattleResultWndFlag = battleResultMsg.useFlag; // ?????????
2020-06-23 15:53:23 +08:00
battleResultMsg.useFlag = FALSE; // ????????
2020-06-23 15:27:59 +08:00
}
#ifdef _AI_OTHER
if(AI_OtherSetting[0]){
ITEM *pItem = pc.item;
#ifdef _NEW_ITEM_
for(int i=0;i<MAX_MAXHAVEITEM*3;i++){
#else
for(int i=0;i<MAX_MAXHAVEITEM;i++){
#endif
2020-06-23 15:53:23 +08:00
// 检查玩家身上的道具有没有肉
2020-06-23 15:27:59 +08:00
if(pItem[i+9].useFlag && (pItem[i+9].graNo >= 24000 && pItem[i+9].graNo <= 24044)){
2020-06-23 15:53:23 +08:00
// 丢掉
2020-06-23 15:27:59 +08:00
if(bNewServer) lssproto_DI_send(sockfd,nowGx,nowGy,i+9);
else old_lssproto_DI_send(sockfd,nowGx,nowGy,i+9);
}
}
}
#endif
return;
}
break;
2020-06-23 15:53:23 +08:00
case 12: // ?
2020-06-23 15:27:59 +08:00
break;
}
#ifndef _CHANNEL_MODIFY
// Robin 0805 channel
if( bNewServer && joy_trg[1] & JOY_CTRL_C )
{
char buf[64];
if( pc.channel == -1 ) {
if( (pc.quickChannel != -1) && (pc.familyName[0] != NULL) ) {
sprintf( buf, "C|J|%d", pc.quickChannel);
if( bNewServer)
lssproto_FM_send( sockfd, buf );
else
old_lssproto_FM_send( sockfd, buf );
}
}
else{
if( bNewServer)
lssproto_FM_send( sockfd, "C|J|-1" );
else
old_lssproto_FM_send( sockfd, "C|J|-1" );
}
}
#endif
// ????????????
if( BackBufferDrawType != DRAW_BACK_PRODUCE ){
2020-06-23 15:53:23 +08:00
// ????
2020-06-23 15:27:59 +08:00
if( BattleEscFlag == TRUE ){
2020-06-23 15:53:23 +08:00
// ??????
2020-06-23 15:27:59 +08:00
SubProcNo = BATTLE_SUBPROC_OUT_PRODUCE_INIT;
// ??????
BattleEscFlag = FALSE;
}
2020-06-23 15:53:23 +08:00
// ????????????
2020-06-23 15:27:59 +08:00
if( mouse.onceState & MOUSE_RIGHT_CRICK && BattleMyNo >= 20 ){
DeathAction(pActAudienceExitWnd);
pActAudienceExitWnd=NULL;
if( bNewServer)
lssproto_B_send( sockfd, "U" );
else
old_lssproto_B_send( sockfd, "U" );
}
// ????????
if( pActAudienceExitWnd != NULL ){
2020-06-23 15:53:23 +08:00
// ?????????????????
2020-06-23 15:27:59 +08:00
if( pActAudienceExitWnd->hp > 0 ){
2020-06-23 15:53:23 +08:00
// ??
StockFontBuffer( pActAudienceExitWnd->x + 30, pActAudienceExitWnd->y + 28, FONT_PRIO_FRONT, 0, "按滑鼠右键", 0 );
StockFontBuffer( pActAudienceExitWnd->x + 30, pActAudienceExitWnd->y + 52, FONT_PRIO_FRONT, 0, "结束观战", 0 );
2020-06-23 15:27:59 +08:00
}
}
}
}