📄 dragonloginserver2.cpp
字号:
strcpy( packet.u.kein.login_to_gameserver_ear_message.message, p->message );
packet.u.kein.login_to_gameserver_ear_message.game_server = connections[game_server].server_check;
}
packet.h.header.size = sizeof( k_login_to_gameserver_ear_message ) - 200 + strlen( p->message );
g_pServerTable->BroadCastToEveryServer( (char *)&packet, (sizeof(t_header)+packet.h.header.size ), SERVER_TYPE_MAP );
}
void RecvEarMessageOk( k_send_ear_message_ok_to_login *p ) // 绢恫 霸烙辑滚俊辑 己傍利栏肺 皋矫瘤甫 焊陈促绰 雀脚
{
if( !p->gameserver_port ) return;
for(int i = 0; i < LOGIN_MAX_CONNECTIONS; i ++)
{
if( connections[i].server_check == p->gameserver_port )
{
t_packet packet;
packet.h.header.type = CMD_SEND_EAR_MESSAGE_OK;
{
packet.u.kein.loginserver_to_gameserver_ear_message.server_id = p->server_id;
strcpy( packet.u.kein.loginserver_to_gameserver_ear_message.name, p->name );
}
packet.h.header.size = sizeof( k_loginserver_to_gameserver_ear_message );
// QueuePacket( connections, p->gameserver_port, &packet, 1 );
QueuePacket( connections, i, &packet, 1 );
break;
}
}
}
void RecvEarMessageResult( k_send_ear_message_result *p )
{
t_packet packet;
packet.h.header.type = CMD_LOGIN2GAME_EAR_MESSAGE_RESULT;
{
packet.u.kein.login2game_ear_message_result.send_server_id = p->send_server_id;
packet.u.kein.login2game_ear_message_result.ret = p->ret;
}
packet.h.header.size = sizeof( k_login2game_ear_message_result );
for(int i = 0; i < LOGIN_MAX_CONNECTIONS; i ++)
{
if(connections[i].server_check == p->send_game_server )
{
QueuePacket( connections, i, &packet, 1 );
return;
}
}
}
void RecvCheckName( char *name, short int server_id, short int cn )
{
int ret_type;
if( CheckName_SQL( name ) ) {ret_type = CMD_THEREIS_CHARNAME ;}
else {ret_type = CMD_THEREIS_NO_CHARNAME;}
t_packet packet;
packet.h.header.type = CMD_GAME2LOGIN_CHECK_NAME;
{
packet.u.kein.login2game_ear_message_result.send_server_id= server_id;
packet.u.kein.login2game_ear_message_result.ret = ret_type;
}
packet.h.header.size = sizeof( k_login2game_ear_message_result );
QueuePacket( connections, cn, &packet, 1 );
}
void CheckMoveItem( k_moving_item *p )
{
char *pos_type[20] = { "HAND", "INV", "EQUIP", "QUICK", "BANK", "BOX", "MAKE", "OTHER_CH", "CHARACTER", "GROUND", "USE", "BUY", "SELL", "DELETE", "EXCHANGE" };
FILE *fp;
char temp[MAX_PATH];
sprintf( temp, ".\\logout_item\\%s_酒捞袍捞悼.txt", p->name );
fp = fopen( temp, "at+" );
if( !fp ) return;
CItem *t = ItemUnit( p->item );
if( !t )
{
fclose( fp );
return;
}
if( t->GetRbutton() == DIVIDE_ITEM )
fprintf( fp, "酒捞袍:%s, 荐樊:%9ld, 困摹:[%8s] ===> 困摹:[%8s] 捣:[%8ld]\n", t->GetHanName(), p->item.attr[IATTR_MUCH], pos_type[p->source_type], pos_type[p->dest_type], p->money );
else
{
WORD dur_curr, dur_max;
GetItemDuration( p->item, dur_curr, dur_max );
fprintf( fp, "酒捞袍:%s, Dur :%4d/%4d, 困摹:[%8s] ===> 困摹:[%8s] 捣:[%8ld]\n", t->GetHanName(), dur_curr, dur_max, pos_type[p->source_type], pos_type[p->dest_type], p->money );
}
fclose( fp );
}
void RecvGuildMailTitle( int guild_code, short int server_id, short int game_id )
{
k_guild_mail mail[12] = {0, };
int max = GetGuildMailTitle(guild_code, mail );
if( max > 0 )
{
t_packet packet;
packet.h.header.type = CMD_REP_RECV_GUILD_MAIL_TITLE;
{
packet.u.kein.login_to_game_mail_title.server_id = server_id;
}
for( int i=0; i<max; i++ )
{
packet.u.kein.login_to_game_guild_mail_title.degree = mail[i].degree;
packet.u.kein.login_to_game_guild_mail_title.mail_id = mail[i].mail_id;
packet.u.kein.login_to_game_guild_mail_title.mail_year = mail[i].year;
packet.u.kein.login_to_game_guild_mail_title.mail_month = mail[i].month;
packet.u.kein.login_to_game_guild_mail_title.mail_day = mail[i].day;
strcpy( packet.u.kein.login_to_game_guild_mail_title.mail_name, mail[i].send_name );
strcpy( packet.u.kein.login_to_game_guild_mail_title.mail_title, mail[i].mail_title );
packet.h.header.size = sizeof( k_login_to_game_guild_mail_title ) - 60 + strlen( mail[i].mail_title );
QueuePacket( connections, game_id, &packet, 1 );
}
}
}
// 020808 YGI --------------------------
extern CServerTable* g_pServerTable;
void RecvChangeMapData1( t_packet *pPacket )
{
// CMD_CHANGE_MAP_DATA1
for(int i = 0; i < LOGIN_MAX_CONNECTIONS; i ++)
{
if(connections[i].server_check == pPacket->u.kein.change_map1.game_port )
{
QueuePacket( connections, i, pPacket, 1 );
return;
}
}
}
// 010218
void RecvChangeLogintableByChangemap( char *user_id, char *map_name, short int server_id, short int cn )
{
if( ::UpdateLogintablebyChangeMap( user_id, map_name ))
{
t_packet tp;
tp.h.header.type = CMD_JOINABLE;
tp.u.ls_joinable.server_id = server_id;
tp.h.header.size = sizeof( t_ls_joinable );
::QueuePacket( connections, cn, &tp, 1 );
}
}
void ReSendBoxItemEach( k_login_put_box_item *box )
{
PutBoxItem_SQL( box->box_id, box->para, &box->item );
/* t_packet p;
p.h.header.type = CMD_RECALL_BOX_ITEM;
p.u.kein.login_put_box_item = *box;
p.h.header.size = sizeof( k_login_put_box_item );
for(int i = 0; i < LOGIN_MAX_CONNECTIONS; i ++)
{
if( connections[i].socket && connections[i].server_check )
{
QueuePacket( connections, i, &p, 1 );
}
}*/
}
// 傈档茄荤恩捞 霸烙 辑滚俊 乐绰瘤 眉农秦辑 努扼捞攫飘肺 焊郴霖促.
void RecvFaithUp( char *name, short int point )
{
t_packet p;
p.h.header.type = CMD_REQ_FAITH_UP;
strcpy( p.u.kein.req_faith_up.name, name );
p.u.kein.req_faith_up.up_point = point;
p.h.header.size = sizeof( k_req_faith_up );
g_pServerTable->BroadCastToEveryServer( (char *)&p, (sizeof(t_header)+p.h.header.size ), SERVER_TYPE_MAP );
}
void SendOhMyParty( char *my_name, char *party_name )
{
t_packet p;
p.h.header.type = CMD_OH_MY_PARTY;
strcpy( p.u.kein.oh_my_party.my_name, my_name );
strcpy( p.u.kein.oh_my_party.party_name, party_name );
p.h.header.size = sizeof( k_oh_my_party );
g_pServerTable->BroadCastToEveryServer( (char *)&p, (sizeof(t_header)+p.h.header.size ), SERVER_TYPE_MAP );
}
//////////////////////////////////////////////////////////
// 傍瘤 荤亲阑 叼厚俊辑 佬绢辑 傈眉肺 谎妨霖促.
void SendLoginToGameServerMessage( int type, char *szTemp )
{
if( !szTemp ) return;
t_packet p;
int len=strlen( szTemp );
int max = (len / 512)+1;
p.h.header.type = type;
for( int i=0; i<max; i++ )
{
char *temp = szTemp+512*i;
strncpy( p.u.kein.server_text_default.text, temp ,512 );
p.u.kein.server_text_default.len = len;
p.h.header.size = sizeof( k_server_text_default );
g_pServerTable->BroadCastToEveryServer( (char *)&p, (sizeof(t_header)+p.h.header.size ), SERVER_TYPE_MAP );
}
}
void SendPublicBbs()
{
GetPublicBbs( &public_bbs );
SendLoginToGameServerMessage( CMD_LOGIN_TO_GAME_PUBLIC_BBS, public_bbs );
}
void SendLearnedItem( t_connection c[], short int cn )
{
t_packet packet;
packet.h.header.type = CMD_SEND_LEARN_ITEM_INDEX;
{
packet.u.kein.server_learn_item.item_count = c[cn].chrlst.ItemMax;
memcpy( packet.u.kein.server_learn_item.item, c[ cn].chrlst.Item, sizeof( short int ) * c[cn].chrlst.ItemMax );
}
packet.h.header.size = sizeof( k_server_learn_item );
QueuePacket( c, cn, &packet, 1);
}
void SendPublicBbsEach( short int server_id, short int game_id )
{
GetPublicBbs( &public_bbs );
if( !public_bbs ) return;
t_packet p;
int len=strlen( public_bbs );
int max = (len / 512)+1;
p.h.header.type = CMD_CALL_PUBLIC_BBS_ONLY_ONE;
for( int i=0; i<max; i++ )
{
char *temp = public_bbs +512*i;
strncpy( p.u.kein.server_text_only_one.text, temp ,512 );
p.u.kein.server_text_only_one.len = len;
p.u.kein.server_text_only_one.server_id = server_id;
p.h.header.size = sizeof( k_server_text_only_one );
QueuePacket( connections, game_id, &p, 1 );
}
}
void RecvHunterRegist( k_hunter_regist2 *p )
{
int ret = InsertHunterList( p->target_name, p->regist_name, p->money, p->text );
}
void RecvGetHunterList( int list_id, short int server_id, short int game_id)
{
k_hunter_list list;
int ret = GetHunterList( list_id, &list, 1 ); // 酒捞叼 官肺 关狼 郴侩阑 啊廉柯促.
if( ret != 1 ) return;
t_packet p;
p.h.header.type = CMD_SEND_HUNTER_LIST;
p.u.kein.login_game_hunter_list.server_id = server_id;
p.u.kein.login_game_hunter_list.list = list;
p.h.header.size = sizeof( k_login_game_hunter_list )-1000+(strlen(list.text ));
QueuePacket( connections, game_id, &p, 1 );
}
void RecvKillHunter( int list_id, char *hunter_name, short int server_id, short int game_id )
{
t_packet p;
k_hunter_list list;
int ret = GetHunterList( list_id, &list, 0 ); // 酒捞叼肺 撅技胶 茄促.
if( ret != 1 || !list.index ) // 孽府巩俊 角菩沁芭唱 府胶飘狼 牢郸胶啊 绝阑 版快
{
p.h.header.type = CMD_KILL_HUNTER_LIST_CANCEL;
p.u.kein.server_id.server_id = server_id;
p.h.header.size = sizeof( k_server_id );
QueuePacket( connections, game_id, &p, 1 );
}
else
{
DeleteHunterList( list_id ); // 郴侩阑 昏力茄促.
// 霸烙辑滚肺 捣窍绊 郴侩阑 焊郴霖促. // 贸府茄 荤恩俊霸 沥焊甫 焊郴霖促.
p.h.header.type = CMD_KILL_HUNTER_LIST_OK;
// strcpy( p.u.kein.send_kill_hunter_list.target_name, list.target_name);
// strcpy( p.u.kein.send_kill_hunter_list.regist_name, list.regist_name);
p.u.kein.send_kill_hunter_list.money = list.money;
p.u.kein.send_kill_hunter_list.server_id = server_id;
p.h.header.size = sizeof( k_send_kill_hunter_list );
QueuePacket( connections, game_id, &p, 1 );
// 搬苞甫 泅惑裹 扒 荤恩俊霸 皋老肺 舅妨 霖促.
EatRearWhiteChar( list.regist_name );
EatRearWhiteChar( list.target_name);
k_game_to_login_send_mail result;
//< CSD-030324
char ini_from[20];
char ini_title[60];
char ini_body[1000];
ini_from[0] = 0;
ini_title[0] = 0;
ini_body[0] = 0;
// thai YGI
if(GetPrivateProfileString("hunter_mail","from","",ini_from,20,MapServerConfigFileName) > 0)
{
GetPrivateProfileString("hunter_mail","title","",ini_title,60,MapServerConfigFileName);
GetPrivateProfileString("hunter_mail","body","",ini_body,1000,MapServerConfigFileName);
}
if( ini_from[0] && ini_title[0] && ini_body[0] )
{
strcpy( result.send_name, ini_from );
strcpy( result.uni.recv_name, list.regist_name );
strcpy( result.title, ini_title );
sprintf( result.body, ini_body, list.target_name, hunter_name, list.target_name, list.regist_name, list.money );
}
else
{
if(LocalMgr.IsAbleNation(CHINA))//021007 lsw
{
strcpy( result.send_name, "佣兵军团" );
strcpy( result.uni.recv_name, list.regist_name );
strcpy( result.title, "[公告] 抓到通缉犯!" );
sprintf( result.body, "抓到了您想抓的悬赏犯 '%s'。\n"
"[%s] 抓到了 '%s',所以得到了 %s 设定的悬赏金 %d。\n"
"以后我们佣兵军团还是会尽力捉拿悬赏犯。"
, list.target_name, hunter_name, list.target_name, list.regist_name, list.money );
}
else if(LocalMgr.IsAbleNation(TAIWAN|HONGKONG))//021007 lsw
{
strcpy( result.send_name, "赌
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -