📄 network7.cpp
字号:
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 021010
//涅胶飘俊 包茄 瘤盔窃荐甸 肚绰 kyo啊 梅啊茄 郴侩甸
extern篮 network7.h俊
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
#include "stdafx.h"
#include "network.h"
#include "gameproc.h"
#include "map.h"
#include "CMessage.h"
#include "menudef2.h"
#include "hangul.h"
#include "QuestFunction.h"
#include "Menu.h"//soto-030429
extern int y_MenuFocus;//soto-030429
int GetMapNumberByMapName( const char *szMapName); //甘捞抚栏肺 甘锅龋舅酒坷扁 绝栏搁 -1馆券
//甘俊 绢恫 涅胶飘啊 绢蠢沥档柳青登菌绰啊 ?
void SendWhatQuestInMap( char * szMapName); //瘤档锅龋甫 焊郴 秦寸 瘤档狼 涅胶飘柳青沥档甫 救促.
void RecvQuestInMap( t_quest_in_map *tp); //涅胶飘 柳青沥档甫 汲疙茄促.
void RecvSHOW_COLER_MSG( t_show_msg *tp ); //秦惑 祸栏肺 概矫瘤甫 免仿茄促. ( AddCurrentStatusMessage荤侩 )
int GetInt4Test( const char* szApp, const char* szKey, const char* szFile)
{// 030513 kyo //for test
if( szApp == NULL || szKey == NULL )
{
return 1;
}
return GetPrivateProfileInt( szApp, szKey, 1, szFile );
}
void GetString4Test( char* szString, const char* szApp, const char* szKey, const char* szFile)
{// 030513 kyo //for test
if( szApp == NULL || szKey == NULL )
{
strcpy( szString, "");
}
GetPrivateProfileString( szApp, szKey, "", szString, 1024, szFile );
}
void SendWhatQuestInMap( char * szMapName ) //瘤档锅龋甫 焊郴 秦寸 瘤档狼 涅胶飘柳青沥档甫 救促.
{
t_packet packet;
packet.h.header.type = CMD_WHAT_QUEST_IN_MAP;
packet.h.header.size = sizeof(t_quest_in_map);
packet.u.quest_in_map.iQuestInfo = 0; //
strcpy( packet.u.quest_in_map.name, Hero->name );
packet.u.quest_in_map.name[20] = '\0'; //父距阑 困秦
//map捞抚捞 绝栏搁 泅犁 蜡历啊 甸绢啊 乐绰 甘狼 涅胶飘狼 郴侩阑 焊咯霖促.
if( strlen( szMapName ) == 0 )
{
packet.u.quest_in_map.iMapnumber = MapNumber; //MpaNumber篮 Client啊 甸绢啊 乐绰 甘锅龋
QueuePacket(&packet,1);
}
//map捞抚阑 all肺 林搁 葛电 涅胶飘 郴侩阑 焊咯霖促. (固备泅)
else if( 0 ==strcmp( szMapName , "all") )
{
;
}
else
{
//甘捞抚栏肺 甘锅龋甫 罐酒客辑 历厘
packet.u.quest_in_map.iMapnumber = GetMapNumberByMapName( szMapName );
//甘捞抚阑 肋给 闷阑版快
if( packet.u.quest_in_map.iMapnumber < 0 )
{
//255,255,0, lan->OutputMessage(0,219));
//const char *tmp = g_cMsg.GetTextMessage( 1);
AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, (char*)g_cMsg.GetTextMessage( 0,0) );// 021128
AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, (char*)g_cMsg.GetTextMessage( 0,1) );// 021128
return;
}
QueuePacket(&packet,1);
}
}
int GetMapNumberByMapName( const char * szMapname)
{
for( int i =0; i< MAX_MAP_; i++)
{
if( strcmp( MapInfo[i].mapname, szMapname) == 0 )
return i;
}
return -1;
}
void RecvQuestInMap( t_quest_in_map *tp)
{
if( !tp ) return;
//char szMap[30]; //t_mapinfo俊辑 曼绊
//strcpy( szMap, GetMapNameByIndex( tp->iMapnumber ), strlen( GetMapNameByIndex( tp->iMapnumber ) );
char szMsg[128];
if( 0 < tp->iQuestInfo && tp->iQuestInfo < MAX_MSG_NUM )
{
sprintf( szMsg, "<< %s >>", GetMapNameByIndex( tp->iMapnumber ) );
AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, szMsg );
AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, (char*)g_cMsg.GetTextMessage( 0, tp->iQuestInfo) ) ; // 021128
}
}
void RecvSHOW_COLER_MSG( t_show_msg *tp )
{
//郴侩捞 绝芭唱 祸 沥焊啊 撇府搁 府畔茄促.
if( tp->iMsgNum == NULL ) return;
if( 0 <= tp->R || tp->R <= 256 || 0 <= tp->G || tp->G < 256 || 0 <= tp->B || tp->B < 256 )
{
AddCurrentStatusMessage( tp->R,tp->G,tp->B, tp->szMsg );
}
}
int HandleCommand3( t_packet& packet, t_connection *c)
{
switch( packet.h.header.type)
{
case CMD_WHAT_QUEST_IN_MAP: // 021009 kyo //瘤档俊 刚 涅胶飘啊 倔父唱?
{
RecvQuestInMap( (&packet.u.quest_in_map) );
}break;
case CMD_SCRIPT_SHOW_COLOR_MSG: // 021015 KYO // 捞 祸栏肺 臂磊甫 焊咯炼
{
RecvSHOW_COLER_MSG( (&packet.u.show_msg) );
}break;
case CMD_SCRIPT_TIMER_START: // 021022 kyo script 鸥捞赣俊 包茄芭
{
g_cQuest.InitScriptTimer( packet.u.script_timer.dwTime, 50000 );
}break;
case CMD_SCRIPT_TIMER_SYNC: // 021022 kyo script 鸥捞赣俊 包茄芭
{
if( g_cQuest.m_cTimer == NULL ) return false; // 030821 kyo
g_cQuest.m_cTimer->RecvSCRIPT_TIMER_SYNC( (&packet.u.script_timer) );
}break;
case CMD_SCRIPT_TIMER_END_SUC: // 021022 kyo script 鸥捞赣俊 包茄芭
{
g_cQuest.DeleteScriptTimer();
}break;
case CMD_SCRIPT_TIMER_END_FAL: // 021022 kyo script 鸥捞赣俊 包茄芭
{
g_cQuest.DeleteScriptTimer();
}break;
case CMD_SCRIPT_COUNTER_START: // 021023 kyo 墨款磐
{
g_cQuest.InitScriptCounter( (&packet.u.script_counter) );
}break;
case CMD_SCRIPT_COUNTER_SYNC:
{
g_cQuest.SyncScriptCounter( (&packet.u.script_counter) );
}break;
case CMD_SCRIPT_COUNTER_END:
{
g_cQuest.DeleteScriptCounter();
}break;
case CMD_SCRIPT_SPELL_MAPMOVE:
{// 021128 kyo
g_cQuest.CheckSpellWord( (&packet.u.spell_mapmove) );
}break;
case CMD_SCRIPT_SPELL_MAPMOVE_SUC:
{// 021128 kyo
g_cQuest.RecvSpellWord_Suc( packet.u.spell_mapmove.szMap );
}break;
case CMD_SCRIPT_SPELL_MAPMOVE_FAIL:
{// 021128 kyo
g_cQuest.RecvSpellWord_Fail();
}break;
default: {return 0;}break;
}
return 1;
}
void MenuSet3() // 021020 kyo 皋春 火涝
{
const int M_TIMMER_X = 600;
const int M_TIMMER_Y = 25;
//const int M_TIMMER_SIZE_X = 197;
//const int M_TIMMER_SIZE_Y = 44;
const int M_EDITER_X = M_TIMMER_X +30;
const int M_EDITER_Y = M_TIMMER_Y +15;
{//ScriptTimer
const int iMnIndex = NM_SCRIPT_TIMMER;
const int iImg = SCRIPT_TIMER_COUNTER_IMG;
int iFtNum = 0;
SMenuReg(iMnIndex, M_TIMMER_X, M_TIMMER_Y, iImg,0,10);
SMenuFTReg( iMnIndex,iFtNum++, FT_SCRIPT_TIMMER_COUNT, 0,
M_EDITER_X, M_EDITER_Y, 150, 40,
iImg, 5, 6,0);
}
{//ScriptCounter
const int iMnIndex = NM_SCRIPT_COUNTER;
const int iImg = SCRIPT_TIMER_COUNTER_IMG;
int iFtNum = 0;
SMenuReg(iMnIndex, M_TIMMER_X, M_TIMMER_Y+50, iImg,0,10);
SMenuFTReg( iMnIndex,iFtNum++, FT_SCRIPT_COUNTER_COUNT, 0,
M_EDITER_X, M_EDITER_Y+50, 150, 40,
iImg+1, 5, 6,0);
}
}
//<soto-030425
void LottoMenuSet()
{
const int nButtonStartX = 16;
const int nButtonStartY = 57;
const int nBtnGab = 5;
const int nNumBtnWidth = 36;
const int nNumBtnHeight = 30;
int nX = nButtonStartX;
int nY = nButtonStartY;
int nImgNum = 1;
int nFieldNumber = 0;
::SMenuReg(MN_LOTTO_MENU,CENTER_X,100,LOTTO_MENU_IMG,0,30);// 肺肚 皋牢芒.
// 咯扁辑 21俺甫 悸泼 矫虐绊. 0~23
for(int j = 0; j < 3; j++)
{
for(int i = 0; i < 7; i++)
{
::SMenuFTReg(MN_LOTTO_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_NUMBER,nX,nY,nNumBtnWidth,nNumBtnHeight, LOTTO_MENU_IMG,nImgNum,nImgNum+1);nImgNum+=2;
nX += (nBtnGab + nNumBtnWidth);
nFieldNumber++;
}
nX = nButtonStartX;
nY += (nBtnGab + nNumBtnHeight);
}
//唱赣瘤 3俺甫 悸泼矫挪促.
for(int i = 0;i < 3;i++)
{
::SMenuFTReg(MN_LOTTO_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_NUMBER,nX,nY,nNumBtnWidth,nNumBtnHeight, LOTTO_MENU_IMG,nImgNum,nImgNum+1);nImgNum+=2;
nX += (nBtnGab + nNumBtnWidth);
nFieldNumber++;
}
nX += (nBtnGab + nNumBtnWidth);
//磊悼积己滚瓢.
::SMenuFTReg(MN_LOTTO_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_AUTO_GEN,nX,nY,118,30, LOTTO_MENU_IMG,nImgNum,nImgNum+1);nImgNum+=2;
nFieldNumber++;
//OK滚瓢.
nX = 40;
nY += 97;
::SMenuFTReg(MN_LOTTO_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_OK,nX,nY,84,30, LOTTO_MENU_IMG,nImgNum,nImgNum+1);nImgNum+=2;
nFieldNumber++;
nX += 150;
//CANCEL滚瓢.
::SMenuFTReg(MN_LOTTO_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_SMALLMENU_END,nX,nY,84,30, LOTTO_MENU_IMG,nImgNum,nImgNum+1);
}
void LuckyEventSet()
{
//<soto-031010 Lotto犬厘 眠啊盒.
int nX = 34;
int nY = 201;
::SMenuReg(MN_WINNER_MENU,CENTER_X,100,LUCKY_EVENT_IMG,1,4);// 犬牢 皋牢芒.
//犬牢 滚瓢.
nX = 34;nY = 277;
::SMenuFTReg(MN_WINNER_MENU,0,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_WINNER_OK,nX,nY,84,30, LUCKY_EVENT_IMG,5,6);
//CANCEL滚瓢.
nX = 245;nY = 277;
::SMenuFTReg(MN_WINNER_MENU,1,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_SMALLMENU_END,nX,nY,84,30, LUCKY_EVENT_IMG,7,8);
//捞傈 其捞瘤 滚瓢.
nX = 62;nY = 237;
::SMenuFTReg(MN_WINNER_MENU,2,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_NUM_LEFTSEEK,nX,nY,26,26, LUCKY_EVENT_IMG,9,10);
//促澜 其捞瘤 滚瓢.
nX = 274;nY = 237;
::SMenuFTReg(MN_WINNER_MENU,3,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_NUM_RIGHTSEEK,nX,nY,26,26, LUCKY_EVENT_IMG,11,12);
//>soto-031010 Lotto犬厘 眠啊盒.
}
//>soto-030502
void LuckyMenuSet()
{
const int nMainX = CENTER_X;
const int nMainY = 100;
const int nBtnPosX= 30;
int nBtnPosY = 53;
const int nGabY = 19;
const int nBtnWidth = 160;
const int nBtnHeight= 34;
const int nCancelPosX = 56;
const int nCancelPosY = 212;
const int nCancelWidth = 110;
const int nCancelHeight = 30;
int nImgNum = 1;
int nFieldNumber = 0;
::SMenuReg(MN_LUCKY_MENU,nMainX,nMainY,LUCK_MENU_IMG,0,4);// 青款 皋春.
::SMenuFTReg(MN_LUCKY_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LOTTO_OPEN,nBtnPosX,nBtnPosY,nBtnWidth,nBtnHeight, LUCK_MENU_IMG,nImgNum,nImgNum+1);
nImgNum+=2;nFieldNumber++;nBtnPosY += (nGabY+nBtnHeight);
::SMenuFTReg(MN_LUCKY_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_LUCKY_EVENT,nBtnPosX,nBtnPosY,nBtnWidth,nBtnHeight, LUCK_MENU_IMG,nImgNum,nImgNum+1);
nImgNum+=2;nFieldNumber++;nBtnPosY += (nGabY+nBtnHeight);
::SMenuFTReg(MN_LUCKY_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_COMFIRMATION_WINNER,nBtnPosX,nBtnPosY,nBtnWidth,nBtnHeight, LUCK_MENU_IMG,nImgNum,nImgNum+1);
nImgNum+=2;nFieldNumber++;nBtnPosY += (nGabY+nBtnHeight);
::SMenuFTReg(MN_LUCKY_MENU,nFieldNumber,FT_HIDE_SPECIAL_WILLDO_AUTO_PUT,SWD_SMALLMENU_END,nCancelPosX,nCancelPosY,nCancelWidth,nCancelHeight, LUCK_MENU_IMG,nImgNum,nImgNum+1);
LottoMenuSet();
LuckyEventSet();
}
void LuckyMenuOpen()
{
::CloseAllMenu();
SMenu[MN_LUCKY_MENU].bActive=TRUE;
MP3( SN_MENU_OPEN );
y_MenuFocus = MN_LUCKY_MENU;
}
void LottoMenuOpen()
{
::CloseAllMenu();
SMenu[MN_LOTTO_MENU].bActive=TRUE;
MP3( SN_MENU_OPEN );
y_MenuFocus = MN_LOTTO_MENU;
}
void WinnerMenu()
{
::CloseAllMenu();
SMenu[MN_WINNER_MENU].bActive=TRUE;
MP3( SN_MENU_OPEN );
y_MenuFocus = MN_WINNER_MENU;
}
//>soto-030425
void MenuSubProcessType2(SMENU *SubMenu,const int j) //021022 kyo
{
switch(SubMenu->nField[j].nType)
{
case FT_SCRIPT_TIMMER_COUNT:
{
if( g_cQuest.m_cTimer == NULL ) return;
char msg[128];
g_cQuest.RunScriptTimer( msg );
Hcolor( FONT_COLOR_SOLID_YELLOW );
Hprint2( SubMenu->nField[j].x, SubMenu->nField[j].y, g_DestBackBuf , msg);
}break;
case FT_SCRIPT_COUNTER_COUNT:
{
if( g_cQuest.m_cCounter == NULL ) return;
char msg[128];
g_cQuest.RunScriptCounter( msg );
Hcolor( FONT_COLOR_SOLID_YELLOW );
Hprint2( SubMenu->nField[j].x, SubMenu->nField[j].y, g_DestBackBuf , msg);
}break;
default: break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -