📄 menufunctions.cpp
字号:
}
void ClickCharacter() // 努腐
{
if( SMenu[MN_FRIEND_REGIST].bActive )
{
EWndMgr.SetTxt(HWND_3,g_GameInfo.lpcharacter->name);//021001 lsw
}
}
void SendSelectPartyExp( char select )
{
SendPacketDefault( CMD_CHANGE_PARTY_SELECT_EXP, &select, 1 );
switch( select )
{
case PS_EXP :
Kein_PutMessage( KM_INFO, kein_GetMenuString( 125 ), kein_GetMenuString( 122 ) );
break;
case PS_TACTIC :
Kein_PutMessage( KM_INFO, kein_GetMenuString( 125 ), kein_GetMenuString( 123 ) );
break;
case PS_MAGIC_TAC :
Kein_PutMessage( KM_INFO, kein_GetMenuString( 125 ), kein_GetMenuString( 124 ) );
break;
}
}
void CallGetGuildItem()
{
short int guild_code = Hero->GetGuildCode(); // CSD-030324
if( !guild_code )
{
Kein_PutMessage( KM_FAIL, kein_GetMenuString( 75 ) );
return;
}
// if( !Hero->name_status.guild_master ) return false; // 殿鞭俊 蝶弗 力茄
Kein_PutMessage( KM_OK, kein_GetMenuString( 144 ) );
if( g_Menu_Variable.m_pGuildItem )
{
delete g_Menu_Variable.m_pGuildItem ;
g_Menu_Variable.m_pGuildItem = 0;
}
CloseAllMenu();
SendDirectDB( CMD_GET_GUILD_ITEM_FIRST, &guild_code, sizeof( short int ) );
SendDirectDB( CMD_GET_GUILD_BOX_MONEY, &guild_code, sizeof( short int ) );
CallMenu( MN_GUILD_ITEM_GET);
CallMenu( MN_ITEM );
return;
}
void CallGuildItemPut()
{ //< CSD-030324
CloseAllMenu();
CallMenu( MN_ITEM );
CallMenu( MN_GUILD_ITEM_PUT);
short int guild_code = Hero->GetGuildCode();
SendDirectDB( CMD_GET_GUILD_ITEM_COUNT, &guild_code, sizeof( short int ) ); // 酒捞袍 肮荐 盎脚
} //> CSD-030324
int GetMoneyItemNumber()
{
#ifdef CHANGE_MONEY_
return IN_NEW_COINS;
#else
return IN_COINS;
#endif
}
// 辨靛 付胶磐 函版 滚瓢阑 喘范阑锭, 皋矫瘤 冠胶 剁快扁 傈 秦具 且老
void CallChangeMaster()
{ //< CSD-030324
if( CheckGuildMaster( Hero ) ) // 辨付啊 滚瓢阑 喘范阑锭
{
SendGetGuildMasterAndSubMasterName( Hero->GetGuildCode() , 2 ); // 辑宏 付胶磐 捞抚 啊廉坷扁
strcpy( SMenu[MN_GUILD_CHANGE_INFO].nField[4].temp, kein_GetMenuString( 137 ) );
}
else // 何 辨付啊 滚瓢阑 喘范阑锭
{
strcpy( SMenu[MN_GUILD_CHANGE_INFO].nField[4].temp, kein_GetMenuString( 139 ) );
}
} //> CSD-030324
void CallHtmlMessageBox( int next_menu, char *file_name )
{
if( is_mainmenu_active ) CallSmallMenu( MN_HTML_MESSAGEBOX );
else
{
SMenu[MN_HTML_MESSAGEBOX].bActive = true;
y_MenuFocus = MN_HTML_MESSAGEBOX;
}
int line = g_Menu_Variable.LoadingGuildRegistExplain( file_name );
WORD page =0;
WORD page_max = line/5+1;
SMenu[MN_HTML_MESSAGEBOX].work = MAKELONG( page, page_max );
SMenu[MN_HTML_MESSAGEBOX].key = line;
SMenu[MN_HTML_MESSAGEBOX].nTemp = next_menu;
}
int GetDegree2Param( int degree ) // degree 蔼阑 颇扼皋磐肺 函版茄促.
{
static degree2param[] = { 4, 0, 1, 2, 3 };
return degree2param[degree];
}
// 020620 YGI
bool CheckGuildPower( int type, LPCHARACTER ch )
{ //< CSD-030324
if( !ch ) return 0;
if( !ch->GetGuildCode() ) return 0;
if( type < 0 || type > GDP_MAX ) return 0;
static bool power_table[][5] = {
{ 1, 1, 0, 0, 0 }, // 辨靛 啊涝 // GDP_JOINING
{ 1, 1, 0, 0, 0 }, // 辨靛 傈眉 皋矫瘤 // GDP_BBS
{ 1, 0, 0, 0, 0 }, // 辨靛盔 流氓函版 // GDP_CHANGE_DEGREE // 020529 acer
{ 1, 1, 0, 0, 0 }, // 辨靛 芒绊 捞侩 // GDP_GUILD_BOX
{ 1, 1, 0, 0, 0 }, // 碍力 辨靛 呕硼 矫虐扁 // GDP_EXIT_GUILD_HIM
{ 1, 0, 0, 0, 0 }, // 辨靛 付农 函版 // GDP_CHANGE_MARK
{ 1, 0, 0, 0, 0 }, // 辨靛 流氓 疙 函版 // GDP_CHANGE_DEGREE_INFO
{ 1, 0, 0, 0, 0 }, // 辨靛 付胶磐 函版 // GDP_GUILD_CHANGE_MASTER
{ 1, 0, 0, 0, 0 }, // 辨靛 力芭 // GDP_GUILD_BREAK
{ 1, 0, 0, 0, 0 }, // 何辨付 殿废 // GDP_REGIST_SUB_MASTER
{ 0, 1, 1, 1, 1 }, // 胶胶肺 辨靛 呕硼 // GDP_EXIT_GUILD_SELF
{ 1, 0, 0, 0, 0 }, // 骏器府酒 荤扁 鼻茄 // GDP_BUY_GUILD_HOUSE
};
int para = GetDegree2Param( ch->name_status.guild_master );
return power_table[type][para];
} //> CSD-030324
void LoadFileText( char *file_name )
{
FILE *fp = Fopen( file_name, "rt" );
if( !fp ) return;
/*
if( g_Menu_Variable.m_szFileTextPut )
{
delete [] g_Menu_Variable.m_szFileTextPut;
g_Menu_Variable.m_szFileTextPut = 0;
}
*/
char temp[1024];
while( fgets( temp, 1024, fp ) )
{
if( CheckContinueLine( temp[0] ) ) continue;
g_Menu_Variable.m_szFileTextPut += temp;
g_Menu_Variable.m_szFileTextPut += "\n";
}
fclose( fp );
}
void CallNationItem()
{
CallServer( CMD_GET_NATION_ITEM );
CallSmallMenu( MN_NATION_ITEM );
}
void CallGuildHouseInfo()
{
char nation = Hero->name_status.nation;
CallServer( CMD_GUILD_HOUSE_INFO );
//SendDirectDB( CMD_GUILD_HOUSE_INFO, &nation, 1 );
}
char *GetIsGotGuildHouse( int time ) // 矫埃阑 啊瘤绊 家蜡 厚家蜡甫 魄窜.
{
int mon, day, hour;
GetRealTime( mon, day, hour );
int str = 0;
if( !time )
{
str = 166; // 绝澜
}
else if( time > 30 && day >= 25 )
{
str = 164; // 楷厘
}
else if( time < 5 || day >= 25 )
{
str = 165; // 固楷厘
}
else
{
str = 163; // 家蜡
}
return kein_GetMenuString( str );
}
//020808 YGI -----------------------------
bool DecoadFile( char *filename, void *pData, int size )
{
CHSEL_STREAM m_hsel;
FILE *fp = Fopen( filename, "rb" );
if( !fp ) return false;
int nVersion = 0;
fread( (void*)(&nVersion), sizeof(int), 1, fp );
if (m_hsel.GetVersion() != nVersion) return false;
HselInit deinit;
fread( (void*)(&deinit), sizeof(HselInit), 1, fp );
if (!m_hsel.Initial(deinit)) return false;
fread( pData, 1, size, fp );
m_hsel.Decrypt((char *)pData, size);
fclose( fp );
return true;
}
bool IncordFile( char *filename, void *pData, int size )
{
CHSEL_STREAM m_hsel;
FILE *fp = Fopen( filename, "wb" );
if( !fp ) return false;
HselInit eninit;
eninit.iEncryptType = HSEL_ENCRYPTTYPE_RAND;
eninit.iDesCount = HSEL_DES_TRIPLE;
eninit.iCustomize = HSEL_KEY_TYPE_DEFAULT;
eninit.iSwapFlag = HSEL_SWAP_FLAG_ON;
if (!m_hsel.Initial(eninit))
{
return false;
}
HselInit deinit;
deinit = m_hsel.GetHSELCustomizeOption();
const int nVersion = m_hsel.GetVersion();
fwrite((void *)(&nVersion), sizeof(nVersion), 1, fp );
fwrite((void *)(&deinit), sizeof(HselInit), 1, fp );
m_hsel.Encrypt((char*)pData, size);
fwrite( pData, 1, size, fp );
fclose( fp );
return true;
}
// ---------------------------------------------------
#ifdef LIGHT_VERSION_
CLightVersion *g_pLightVersion;
int CLightVersion::LoadLightVersionMap()
{
FILE *fp;
fp = Fopen( "./data/light_map.txt", "rt" );
if( !fp ) return 0;
Clear(); // 函荐 努府绢
char temp[255];
while( fgets( temp, 255, fp ) )
{
if( CheckContinueLine( temp[0] ) ) continue;
m_nCount++;
}
fseek( fp, 0, SEEK_SET );
m_szlpMap = new string[m_nCount];
int count = 0;
while( fgets( temp, 255, fp ) )
{
if( CheckContinueLine( temp[0] ) ) continue;
strupr( temp );
m_szlpMap[count++] = temp;
}
fclose( fp );
return 1;
}
int CLightVersion::IsGotoMap( char *mapname )
{
for( int i=0; i<m_nCount; i++ )
{
if( strcmp( mapname, m_szlpMap[i].c_str() ) == 0 ) return 1;
}
return 0;
}
int CLightVersion::LoadLightVersionWeapon()
{
FILE *fp;
fp = Fopen( "./data/light_weapon.txt", "rt" );
if( !fp ) return 0;
Clear(); // 函荐 努府绢
char temp[255];
while( fgets( temp, 255, fp ) )
{
if( CheckContinueLine( temp[0] ) ) continue;
m_nWeaponCount++;
}
fseek( fp, 0, SEEK_SET );
m_pWeapon = new k_light_version_weapon[m_nWeaponCount];
int count = 0;
char *token;
int data = 0;
while( fgets( temp, 255, fp ) )
{
if( CheckContinueLine( temp[0] ) ) continue;
token = strtok( temp, "\t\n" );
if( !token ) continue;
data = atoi( token );
m_pWeapon[count].weapon[0] = data;
token = strtok( NULL, "\t\n" );
data = atoi( token );
m_pWeapon[count].weapon[1] = data;
token = strtok( NULL, "\t\n" );
data = atoi( token );
m_pWeapon[count].weapon[2] = data;
token = strtok( NULL, "\t\n" );
data = atoi( token );
m_pWeapon[count].weapon[3] = data;
count++;
}
fclose( fp );
return 1;
}
//021030 YGI
int CLightVersion::GetLightVersionWeapon( int sex, int weapon_num )
{
if( !weapon_num ) return 0;
// 0捞 咯磊 1捞 巢磊捞扁 锭巩俊 鉴辑甫 第笼绰促.
sex = !sex;
for( int i=0; i<m_nWeaponCount; i++ )
{
if( m_pWeapon[i].weapon[sex] == weapon_num )
return m_pWeapon[i].weapon[sex+2];
}
return 0;
}
#endif
//021030 YGI
int RecvEventObject( k_event_object *pData )
{
k_event_object_sound *pData3 = (k_event_object_sound *)pData;
k_event_sound *pData2 = (k_event_sound *)pData;
int sound = ReturnBGMNumber(MapNumber);
if( sound > 0 )
{
StopWave(sound);
}
if( g_Menu_Variable.m_pEventObjcet )
{
delete g_Menu_Variable.m_pEventObjcet;
g_Menu_Variable.m_pEventObjcet = 0;
}
if( pData->active & ( g_Menu_Variable.ACTIVE_EVENT_OBJECT | g_Menu_Variable.ACTIVE_EVENT_SOUND ) )
{
g_Menu_Variable.m_pEventObjcet = new k_event_object_sound;
if( pData->active & g_Menu_Variable.ACTIVE_EVENT_OBJECT )
{
*g_Menu_Variable.m_pEventObjcet = *pData3;
}
else
{
g_Menu_Variable.m_pEventObjcet->active = pData2->active;
g_Menu_Variable.m_pEventObjcet->sound = pData2->sound;
}
}
return 1;
}
// 021107 YGI
void SendEvnetMoveMap()
{
if( !g_Menu_Variable.m_pEventMoveMap ) return;
if( !g_Menu_Variable.m_pEventMoveMap->IsCanMove() ) return;
CallServer( CMD_EVENT_MOVE_MAP, &g_Menu_Variable.m_pEventMoveMap->data.event_no, sizeof(int) );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -