📄 menunetwork.cpp
字号:
case 2 : CallOkCancelMessageBox( 0, 0, 0, lan->OutputMessage(5,16),0 );break;//010215 lsw
default : JustMsg( lan->OutputMessage(5,6)); break;
}
break;
case CM_OPEN_SUPPER : switch( result )
{
case 10 : CallOkCancelMessageBox( 0, 0, 0, lan->OutputMessage(5,17),0 );break;//010215 lsw
case 20 : CallOkCancelMessageBox( 0, 0, 0, lan->OutputMessage(5,18),0 );break;//010215 lsw
case 30 : CallOkCancelMessageBox( 0, 0, 0, lan->OutputMessage(5,19),0 );break;//010215 lsw
default : JustMsg( lan->OutputMessage(5,6)); break;
}
}
}
int GetLeveByExp(int nStep, DWORD exp)
{
for (int i = 1; i < Num_Of_NPC_Lev; ++i)
{
if (nStep == NPC_Lev_Ref[i].nStep && exp <= NPC_Lev_Ref[i].nMaxExp)
return i;
}
return Num_Of_NPC_Lev;
}
void RecvTacSkillExp( t_char_info_tac_skillexp *s ) // 13俺
{
memcpy( &SCharacterData.TacticsExp, s, 13 * sizeof( DWORD ) );
memcpy( Hero->aStepInfo, s->aStepInfo, 20* sizeof( char ) );
for( int a=0; a<13; a++ )
{
SCharacterData.SkillId[a+88] = GetLeveByExp(Hero->aStepInfo[a + TAC_INDEX], SCharacterData.TacticsExp[a]);
int tac_lv = SCharacterData.SkillId[a+88];
SCharacterData.TacticsExpNext[a] = NPC_Lev_Ref[tac_lv].nMaxExp;
}
}
void ReqTacSkillExp( )
{
t_packet packet;
packet.h.header.type = CMD_CHAR_INFO_TAC_SKILL_EXP;
packet.h.header.size = 0;
QueuePacket( &packet, 1 );
}
void CallServer( int type, void *msg, int size )
{
t_packet packet;
packet.h.header.type = type;
packet.h.header.size = 0;
if( size && msg )
{
memcpy( packet.u.data, msg, size );
packet.h.header.size = size;
}
QueuePacket( &packet, 1 );
}
void RecvSkillExp( int type, t_SkillExp exp ) //31俺 楼府
{//021111 lsw
SCharacterData.nJobSkill[type] = exp;
}
void AllReqSkillExp( int is_end )
{
static int just_one = 0;
if( is_end ) // 犁矫累 且锭,
{
just_one = 0;
return;
}
if( !just_one ) // 贸澜栏肺 胶懦 版氰摹甫 夸没茄促.
{
memset( SCharacterData.nJobSkill, 0, sizeof( DWORD )*MAX_MOTHER_SKILL ) ;
just_one = 1;
CallServer( CMD_REQ_SKILL_ALL );
}
}
void OpenStatus()
{
CallServer( CMD_OPEN_STATUS_REQ );
CallServer( CMD_REQ_DMG );
}
void GetTatics()
{
SCharacterData.tatics = 88;
ItemAttr t = EquipItemAttr[WT_WEAPON];
if( !t.item_no ) return;
if( t.item_no/1000 == TOOL ) return;
int type, num;
GetItemNumber( t.item_no, type, num );
CItem *item = ItemUnit( type, num );
if( !item ) return;
SCharacterData.tatics = item->GetSkillAbility();
}
void RecvStatusOpen( k_server_status_open *p )
{
SCharacterData.beat = p->killmon;
SCharacterData.ac = p->ac;
SCharacterData.mov = p->mov;
SCharacterData.nCharacterAbility[FAME] = p->fame;
}
void RecvBankInventory( k_server_bank_item *i )
{
int a = i->first;
int b = i->second;
memcpy( BankItemAttr[a][b], i->inv, sizeof(ItemAttr)*6 );
}
//RecvCharDisease( &p->u.kein.server_disease ); break;
void RecvParty( k_server_party *p )
{
SCharacter *ch = &SCharacterData;
for( int i=0; i<6; i++ )
{
strcpy( ch->party[i].m_Name, p->name[i] );
ch->party[i].m_Gender = p->Gender[i];
ch->party[i].m_ImageNo = p->Face[i];
ch->party[i].m_Lv = p->Level[i];
ch->party[i].m_Str = p->Str[i];
ch->party[i].m_Class = p->Class[i];
}
/*
*/
// CallServer( CMD_REQ_MY_PARTY ); // 颇萍盔甸吝 捞固 甸绢 柯 仇捞 乐绰瘤...
// SetExistMeOfParty( ); // 颇萍盔吝 唱绰 亲惑 炼牢茄 惑怕促.
}
void RecvRelation( k_server_relation *p )
{
SCharacter *ch = &SCharacterData;
for( int i=0; i<3; i++ )
{
strcpy( ch->relation[i].m_Name, p->name[i] );
ch->relation[i].m_Gender = p->Gender[i];
ch->relation[i].m_ImageNo = p->Face[i];
ch->relation[i].m_Lv = p->Level[i];
ch->relation[i].m_Str = p->Str[i];
ch->relation[i].m_Class = p->Class[i];
}
}
void RecvEmployment( k_server_party *p )
{
SCharacter *ch = &SCharacterData;
for( int i=0; i<6; i++ )
{
strcpy( ch->employment[i].m_Name, p->name[i] );
ch->employment[i].m_Gender = p->Gender[i];
ch->employment[i].m_ImageNo = p->Face[i];
ch->employment[i].m_Lv = p->Level[i];
ch->employment[i].m_Str = p->Str[i];
ch->employment[i].m_Class = p->Class[i];
}
}
int SendInputParty( int type, int ct, LpCharacterParty ch ) // 颇萍盔 肝扁 辑滚 傈价
{
if (ch->ch != NULL)
{ //< CSD-020628 : 某腐磐 捞寇俊绰 颇萍 阂啊
switch (ch->ch->sprno)
{
case 0:
case 1:
{
break;
}
default:
{
return 0;
}
}
} //> CSD-020628
if( strcmp( SCharacterData.sCharacterName, mouse_ch.m_Name ) == 0 ) // 磊扁 磊脚篮 肝阑荐 绝寸.
{
MP3( SN_WARNING );
if( type == PARTY )
AddCurrentStatusMessage( 178, 189, 255, lan->OutputMessage(5,21) ); //010215 lsw
else AddCurrentStatusMessage( 178, 189, 255, lan->OutputMessage(5,22) ); //010215 lsw
return 0;
}
if( IsSameCharOfParty( type, &mouse_ch ) ) return 0; // 鞍篮 某腐磐啊 乐绰啊?
if( !IsCheckLevelOfParty( type, &mouse_ch, ct) ) // 颇萍 殿狼 包拌甫 啊龙荐 乐绰 饭骇牢啊 犬牢
{
MP3( SN_WARNING );
if( type == PARTY )
AddCurrentStatusMessage( 178, 189, 255,lan->OutputMessage(5,23) ); //010215 lsw
return 0;
}
if( !IsSameNation( type, &mouse_ch ) )
{
MP3( SN_WARNING );
AddCurrentStatusMessage( 178, 189, 255, lan->OutputMessage(5,24) );//010215 lsw
return 0;
}
t_packet packet;
packet.h.header.type = CMD_DO_PARTY;
{
packet.u.kein.client_do_party.type= type;
packet.u.kein.client_do_party.ct= (char) ct;
strcpy( packet.u.kein.client_do_party.name, ch->m_Name );
}
packet.h.header.size = sizeof( k_client_do_party );
QueuePacket( &packet, 1 );
return 1;
}
void RecvPartyInfo( k_party_info *p )
{
LpCharacterParty character;
switch( p->type )
{
case PARTY : character = &SCharacterData.party[p->index]; break;
case RELATION : character = &SCharacterData.relation[p->index]; break;
case EMPLOYMENT : character = &SCharacterData.employment[p->index]; break;
}
strcpy( character->m_Name, p->m_Name );
character->m_Gender = p->m_Gender;
character->m_ImageNo = p->m_ImageNo;
character->m_Lv = p->m_btLevel; // CSD-030806
character->m_Str = p->m_Str;
character->m_Class = p->m_Class;
character->m_Join = (int) p->m_Join;
SetExistMeOfParty( ); // 颇萍盔吝 唱绰 亲惑 炼牢茄 惑怕促.
}
void RecvDeleteParty_server( int type, int index )
{
LpCharacterParty character;
switch( type )
{
case PARTY : character = &SCharacterData.party[index]; break;
case RELATION : character = &SCharacterData.relation[index]; break;
case EMPLOYMENT : character = &SCharacterData.employment[index]; break;
}
memset( character, 0, sizeof( CharacterParty ) );
}
void SendDeleteParty( int type, int ct )
{
t_packet packet;
packet.h.header.type = CMD_DELETE_PARTY;
{
packet.u.kein.client_do_party.type= type;
packet.u.kein.client_do_party.ct= (char) ct;
}
packet.h.header.size = sizeof( k_client_delete_party );
QueuePacket( &packet, 1 );
}
void SendLearnMagic( int magic_num )
{
t_packet packet;
packet.h.header.type = CMD_REQ_LEARN_MAGIC;
{
packet.u.kein.client_learn_magic.num = magic_num;
}
packet.h.header.size = sizeof( k_client_learn_magic );
QueuePacket( &packet, 1 );
}
void RecvLearnMagicOk( int num )
{
MP3( SN_LEARN_MAGIC );
int menu;
if( SMenu[MN_LEARN_MAGIC_BOOK].bActive ) menu = MN_LEARN_MAGIC_BOOK;
else menu = 0;
CallOkCancelMessageBox( menu, 0, 0, lan->OutputMessage(5,25),0 );//010215 lsw
SCharacterData.MagicId[num] = true;
if( SCharacterData.nCharacterData[SPELL] == PRIEST_SPELL ) num += 150;
SubtractMoney( g_lpMT[num].Price );
if( g_bMagicSelect )
{
if( SCharacterData.nCharacterData[SPELL] == WIZARD_SPELL && SCharacterData.nLevel > CHOBO_LEVEL ) MagicSetting(); // 困磊靛 俺凯老锭父
else MagicSetting2();
}
else MagicSetting2(); // 矫裹 辑厚胶 烙矫...
}
void SendClientPreventing( int num ) // 龙捍 锅龋
{
t_packet packet;
packet.h.header.type = CMD_PREVENTING;
{
packet.u.kein.client_disease.disease_num = num;
}
packet.h.header.size = sizeof( k_client_disease );
QueuePacket( &packet, 1 );
}
void RecvPreventingOk( short int num )
{
int menu = 0;
int money = 100;
// 抗规俊 包茄 捣 啊廉客具 茄促.
money = disease_tbl[num].price_prevent;
if( SMenu[MN_HEAL_MAIN].bActive ) menu = MN_HEAL_MAIN;
SCharacterData.disease_no_time[num] = 15*24*3600/6;
SubtractMoney( money );
char buf[127];
sprintf(buf, lan->OutputMessage(5,26), SHideNomal[HN_HEAL_PREVENTING][num].temp );//010215 lsw
CallOkCancelMessageBox( menu, 0, 0, buf ,0 );
}
void SendClientCureDisease( int num )
{
t_packet packet;
packet.h.header.type = CMD_CURE_DISEASE;
{
packet.u.kein.client_disease.disease_num = num;
}
packet.h.header.size = sizeof( k_client_disease );
QueuePacket( &packet, 1 );
}
void RecvCureDiseaseOk( short int num )
{
int menu = 0;
int money = 100;
// 抗规俊 包茄 捣 啊廉客具 茄促.
money = disease_tbl[num].price_heal;
if( SMenu[MN_HEAL_MAIN].bActive ) menu = MN_HEAL_MAIN;
SubtractMoney( money );
SCharacterData.disease[num] = 0; // 摹丰
char buf[127];
sprintf(buf,lan->OutputMessage(5,27), SHideNomal[HN_HEAL_PREVENTING][num].temp );//010215 lsw
CallOkCancelMessageBox( menu, 0, 0, buf ,0 );
}
//
// item 荤绊 迫扁 绊摹扁 啊拜 夸没棺 傈价 罐绰 窃荐甸
//
void ReqItemValue_Sell( int type, POS pos ) // 混锭 绊磨锭 啊拜 啊廉 坷扁
{
t_packet packet;
switch( type )
{
case ITEM_SELL : packet.h.header.type = CMD_REQ_ITEM_VALUE_SELL; break;
case ITEM_REPAIR : packet.h.header.type = CMD_REQ_ITEM_VALUE_REPAIR; break;
}
{
packet.u.kein.server_delete_item.item_pos = pos;
}
packet.h.header.size = sizeof( k_server_delete_item );
QueuePacket( &packet, 1 );
}
void ReqItemValue( int item_no )
{
t_packet packet;
packet.h.header.type = CMD_REQ_ITEM_VALUE;
{
packet.u.kein.client_item_no.item_no = item_no;
}
packet.h.header.size = sizeof( k_client_item_no );
QueuePacket( &packet, 1 );
}
void RecvItemValue( int item_no, int money )
{
int type, num;
GetItemNumber( item_no, type, num );
CItem *item = ItemUnit(type, num );
if( !item ) return;
item->curr_value = money;
}
void RecvItemValue_Sell( int item_no, int money )
{
int type, num;
GetItemNumber( item_no, type, num );
CItem *item = ItemUnit(type, num );
if( !item ) return;
item->curr_value_sell = money;
}
void RecvItemValue_Repair( int item_no, int money )
{
int type, num;
GetItemNumber( item_no, type, num );
CItem *item = ItemUnit( type, num );
if( !item ) return;
item->curr_value_repair = money;
}
void SendReqPartyInfo( int type, int num ) // 颇萍盔 瓷仿 傈价 夸没 风凭
{
t_packet packet;
packet.h.header.type = CMD_SERVER_PARTY;
{
packet.u.kein.client_delete_party.type= (short int) type;
packet.u.kein.client_delete_party.ct= (char) num;
}
packet.h.header.size = sizeof( k_client_delete_party );
QueuePacket( &packet, 1 );
}
void SendClientInn( int type )
{
t_packet packet;
packet.h.header.type = CMD_CLIENT_INN;
{
packet.u.kein.client_inn.type= (char ) type;
}
packet.h.header.size = sizeof( k_client_inn );
QueuePacket( &packet, 1 );
}
void RecvServerWakeUp()
{
SCharacterData.sleep = CSC_AWAKE;
StopWave( SN_SLEEP );
StopWave( SN_REST );
SetVolumeMusic( system_info.music );
SetVolume( system_info.sound );
}
void RecvJoinGameWho( char *name ) // 捞抚栏肺 且鳖? 酒丛, 锅龋肺 且鳖?~~
{
for( int i=0; i<6; i++ )
{
if( !strcmp(SCharacterData.party[i].m_Name, name) )
{
SCharacterData.party[i].m_Join = 1;
SendReqPartyInfo( PARTY, i ); // 0620 YGI
return;
}
}
// if( i==6) CallServer( CMD_REQ_PARTY_MEMBER ); // 犁傈价 夸没...
}
void RecvExitGameWho( char *name ) // 颇萍盔吝 穿焙啊 唱艾促..
{
for( int i=0; i<6; i++ )
{
if( !strcmp(SCharacterData.party[i].m_Name, name) )
{
SCharacterData.party[i].m_Join = 0;
return;
}
}
}
void RecvMyPartyExist( char *name )
{
for( int i=0; i<6; i++ )
{
if( !strcmp(SCharacterData.party[i].m_Name, name) )
{
SCharacterData.party[i].m_Join = 1;
return;
}
}
}
void RecvPartyJoinOk( char *name )
{
for( int i=0; i<6; i++ )
{
if( !strcmp(SCharacterData.party[i].m_Name, name) )
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -