📄 recv.c
字号:
return; } if( dbUpdateEntryInt( table , key , value, info ) == 0 ){ saacproto_DBUpdateEntryInt_send( fd , SUCCESSFUL ,table,key, msgid, msgid2 ); } else { saacproto_DBUpdateEntryInt_send( fd , FAILED , table,key, msgid, msgid2 ); }}#ifdef _ALLDOMAN // (不可开) Syu ADD 排行榜NPCvoid saacproto_UpdataStele_recv( int fd , char *cdkey , char *name , char *title , int level , int trns , int time , int floor ){#ifdef _FIX_ALLDOMAN int i, j; if( !strcmp( cdkey , "FirstLoad") ){ Send_A_herolist( fd ); }else{ for( i=0; i<MAX_HERO_LIST; i++){ if( Herolist[i].use == 0 )continue; if( !strcmp( Herolist[i].strings[0], cdkey) && !strcmp( Herolist[i].strings[1], name) ){ Herolist[i].use = 0; } } for( i=0; i<MAX_HERO_LIST; i++){ if( Herolist[i].use == 0 )continue; if( floor <= Herolist[i].intdata[3] ) continue; for( j=MAX_HERO_LIST-1; j>i; j--){ //20031001bug (原j++) sprintf( Herolist[j].strings[0], "%s", Herolist[j-1].strings[0] ); sprintf( Herolist[j].strings[1], "%s", Herolist[j-1].strings[1] ); sprintf( Herolist[j].strings[2], "%s", Herolist[j-1].strings[2] ); Herolist[j].intdata[0] = Herolist[j-1].intdata[0]; Herolist[j].intdata[1] = Herolist[j-1].intdata[1]; Herolist[j].intdata[2] = Herolist[j-1].intdata[2]; Herolist[j].intdata[3] = Herolist[j-1].intdata[3]; Herolist[j].use = Herolist[j-1].use; Herolist[j-1].use = 0; } sprintf( Herolist[i].strings[0], "%s", cdkey ); sprintf( Herolist[i].strings[1], "%s", name ); sprintf( Herolist[i].strings[2], "%s", title ); Herolist[i].intdata[0] = level; Herolist[i].intdata[1] = trns; Herolist[i].intdata[2] = time; Herolist[i].intdata[3] = floor; Herolist[i].use = 1; Send_S_herolist( i); break; } SAVE_herolist( fd); }#else int i, min=140, minnum=-1, nameflag=-1; for ( i=0; i<MAX_HERO_LIST; i ++ ) { if( atoi( Herolist[i][6] ) < min ) { min = atoi (Herolist[i][6]) ; minnum=i; } if ( strcmp ( Herolist[i][0] , cdkey ) == 0 && strcmp ( Herolist[i][1] , name ) == 0 ) nameflag = i ; } if( strcmp ( cdkey , "FirstLoad") == 0 && strcmp ( name , "LoadHerolist") == 0 && floor == 999 ) Send_A_herolist( fd ); else if ( nameflag != -1 && floor > atoi(Herolist[nameflag][6]) ) { Send_S_herolist ( Herolist[nameflag][0] , Herolist[nameflag][1] , cdkey , name , title , level , trns , floor ) ; sprintf ( Herolist[nameflag][2] , "%s" , title ) ; sprintf ( Herolist[nameflag][3] , "%d" , level ) ; sprintf ( Herolist[nameflag][4] , "%d" , trns ) ; sprintf ( Herolist[nameflag][5] , "%d" , time ) ; sprintf ( Herolist[nameflag][6] , "%d" , floor ) ; SAVE_herolist( fd ); }else if ( nameflag == -1 && floor > min ) { Send_S_herolist ( Herolist[minnum][0] , Herolist[minnum][1] , cdkey , name , title , level , trns , floor ) ; sprintf ( Herolist[minnum][0] , "%s" , cdkey ) ; sprintf ( Herolist[minnum][1] , "%s" , name ) ; sprintf ( Herolist[minnum][2] , "%s" , title ) ; sprintf ( Herolist[minnum][3] , "%d" , level ) ; sprintf ( Herolist[minnum][4] , "%d" , trns ) ; sprintf ( Herolist[minnum][5] , "%d" , time ) ; sprintf ( Herolist[minnum][6] , "%d" , floor ) ; SAVE_herolist( fd ); }#endif}#endifvoid saacproto_DBGetEntryRank_recv( int fd, char* table, char* key, int msgid, int msgid2){ int rk,c; if( !is_game_server_login(fd) ){ saacproto_DBGetEntryRank_send( fd, FAILED, 0,0,"","",msgid, msgid2 ); return; } dbGetEntryRank( table, key , &rk, &c ); if( rk <0 ){ saacproto_DBGetEntryRank_send( fd, FAILED, -1, -1, table, key, msgid, msgid2 ); } else { saacproto_DBGetEntryRank_send( fd, SUCCESSFUL, rk, c, table, key, msgid, msgid2 ); }}void saacproto_DBDeleteEntryInt_recv( int fd, char* table, char* key, int msgid, int msgid2){ if( !is_game_server_login(fd) ){ saacproto_DBDeleteEntryInt_send( fd, FAILED,"","",msgid, msgid2 ); return; } if( dbDeleteEntryInt( table, key ) < 0 ){ saacproto_DBDeleteEntryInt_send( fd, FAILED, table, key, msgid, msgid2 ); } else { saacproto_DBDeleteEntryInt_send( fd, SUCCESSFUL, table, key, msgid, msgid2 ); }} void saacproto_DBGetEntryInt_recv( int fd, char* table, char* key, int msgid, int msgid2){ int r ; int output; if( !is_game_server_login(fd) ){ saacproto_DBGetEntryInt_send( fd, FAILED,-1,"","",msgid, msgid2 ); return; } r = dbGetEntryInt( table, key, &output ); if( r < 0 ){ saacproto_DBGetEntryInt_send( fd, FAILED, -1, table, key, msgid, msgid2); } else { saacproto_DBGetEntryInt_send( fd, SUCCESSFUL, output, table, key, msgid, msgid2 ); }}void saacproto_DBGetEntryByRank_recv( int fd, char* table, int start, int end, int msgid , int msgid2){ char output[16384]; int r; if( !is_game_server_login(fd) ){ saacproto_DBGetEntryByRank_send( fd, FAILED,"","",msgid, msgid2 ); return; } r = dbGetEntryRankRange( table, start, end, output, sizeof( output )); if( r < 0 ){ saacproto_DBGetEntryByRank_send( fd, FAILED, "", table, msgid, msgid2 ); } else { saacproto_DBGetEntryByRank_send( fd, SUCCESSFUL, output,table, msgid, msgid2 ); }}void saacproto_DBGetEntryByCount_recv( int fd, char* table, int count_start, int num, int msgid , int msgid2){ char output[16384]; int r; if( !is_game_server_login(fd) ){ saacproto_DBGetEntryByCount_send( fd, FAILED,"",table,count_start,msgid, msgid2 ); return; } r = dbGetEntryCountRange( table, count_start, num, output, sizeof(output)); if( r < 0 ){ saacproto_DBGetEntryByCount_send( fd, FAILED, "", table, count_start, msgid, msgid2 ); } else { saacproto_DBGetEntryByCount_send( fd, SUCCESSFUL, output, table, count_start, msgid, msgid2 ); }}void saacproto_Broadcast_recv( int fd, char* id, char* charname, char* message, int flag){ if( !is_game_server_login( fd) ){ log( "Broadcast: no login. id:%s charname:%s message:%s flag:%d\n", id, charname, message , flag ); return; } gmsvBroadcast( fd, id, charname, message , flag );}void saacproto_Message_recv( int fd, char* id_from, char* charname_from, char* id_to, char* charname_to, char* message, int option ){ receiveMail( id_from, charname_from, id_to, charname_to, message, option ,0,0);}void saacproto_MessageAck_recv( int fd, char* id, char* charname, char* result, int mesgid ){ int a; if( strcmp( result, SUCCESSFUL ) )a=0; else a =-1; receiveMailAck( id, charname, a , mesgid );}void saacproto_MessageFlush_recv( int fd, char* id, char* charname ){ flushMail( fd, id , charname );}/******************************************************* * CoolFish: Family 2001/5/18 ******************************************************/#ifdef _PERSONAL_FAMEvoid saacproto_ACAddFM_recv( int fd, char *fmname, char *fmleadername, char *fmleaderid, int fmleaderlv, char *petname, char *petattr, char *fmrule, int fmsprite, int fmleadergrano, int fame, int charfdid)#elsevoid saacproto_ACAddFM_recv( int fd, char *fmname, char *fmleadername, char *fmleaderid, int fmleaderlv, char *petname, char *petattr, char *fmrule, int fmsprite, int fmleadergrano, int charfdid)#endif{#ifdef __FAMILY int r = 0, index = 0;#ifdef _PERSONAL_FAME r = ACAddFM(fd, &index, fmname, fmleadername, fmleaderid, fmleaderlv, petname, petattr, fmrule, fmsprite, fmleadergrano, fame, charfdid);#else r = ACAddFM(fd, &index, fmname, fmleadername, fmleaderid, fmleaderlv, petname, petattr, fmrule, fmsprite, fmleadergrano, charfdid);#endif if (r < 0){ saacproto_ACAddFM_send(fd, FAILED, r, index, charfdid); }else{ saacproto_ACAddFM_send(fd, SUCCESSFUL, r, index, charfdid); }#endif}void saacproto_ACJoinFM_recv(int fd, char *fmname, int fmindex,#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 char *charname, char *charid, int charlv, int index, int fame, int charfdid)#else char *charname, char *charid, int charlv, int index, int charfdid)#endif{#ifdef __FAMILY int r = 0;#ifdef _PERSONAL_FAME // Arminius: 家族个人声望 r = ACJoinFM(fd, index, fmname, fmindex, charname, charid, charlv, fame, charfdid);#else r = ACJoinFM(fd, index, fmname, fmindex, charname, charid, charlv, charfdid);#endif if (r < 0){ saacproto_ACJoinFM_send(fd, FAILED, r, charfdid); }else{ saacproto_ACJoinFM_send(fd, SUCCESSFUL, r, charfdid); }#endif}void saacproto_ACLeaveFM_recv(int fd, char *fmname, int fmindex, char *charname, char *charid, int index, int charfdid){#ifdef __FAMILY int r = 0; r = ACLeaveFM(index, fmname, fmindex, charname, charid); if (r < 0){ saacproto_ACLeaveFM_send(fd, FAILED, r, charfdid); }else{ saacproto_ACLeaveFM_send(fd, SUCCESSFUL, r, charfdid); }#endif}#ifdef _LEADERFUNCHECKvoid saacproto_ACDelFM_recv(int fd, char *fmname, int fmindex, int index, char *charname, char *charid, int charfdid){ int r = 0, result = 0; result = CheckLeaderQ(index, fmname, fmindex, charname, charid); if(result < 0) { saacproto_ACDelFM_send(fd, FAILED, charfdid); return; } // shan modify begin // original /*if (ChangeFMLeader(index, fmname, fmindex) < 0) r = ACDelFM(index, fmname, fmindex); else r = -1; // shan 1 -> -1 if (r < 0) saacproto_ACDelFM_send(fd, FAILED, charfdid); else saacproto_ACDelFM_send(fd, SUCCESSFUL, charfdid); */ r = ACDelFM(index, fmname, fmindex); if (r < 0) saacproto_ACDelFM_send(fd, FAILED, charfdid); else saacproto_ACDelFM_send(fd, SUCCESSFUL, charfdid); // shan end}#elsevoid saacproto_ACDelFM_recv(int fd, char *fmname, int fmindex, int index, int charfdid){#ifdef __FAMILY int r = 0;#ifdef _FMVER21 if (ChangeFMLeader(index, fmname, fmindex) >= 0) r = ACDelFM(index, fmname, fmindex); else r = 1;#else r = ACDelFM(index, fmname, fmindex);#endif if (r < 0){ saacproto_ACDelFM_send(fd, FAILED, charfdid); }#ifdef _FMVER21 else if (r == 1){ }#endif else{ saacproto_ACDelFM_send(fd, SUCCESSFUL, charfdid); }#endif}#endifvoid saacproto_ACShowFMList_recv(int fd){#ifdef __FAMILY int r = 0; char data[150 * MAX_FAMILY]; r = ACShowFMList(data); if (r < 0){ saacproto_ACShowFMList_send(fd, FAILED, r, "Nothing"); }else{ saacproto_ACShowFMList_send(fd, SUCCESSFUL, r, data); }#endif}#ifdef _DEATH_FAMILY_GM_COMMAND // WON ADD 家族战GM指令void saacproto_ACShowMemberList_2_recv( int fd, int charindex, int fm1, int fm2, int time, int id ){ char *fm1_name, *fm2_name; log("\n won test 7.2 ==> fm1(%d) fm2(%d) time(%d) id(%d)", fm1, fm2, time, id ); fm1_name = get_fm_leader_index( fm1 ); fm2_name = get_fm_leader_index( fm2 ); log("\n won test 7.3 ==> fm1_name(%s) fm2_name(%s)", fm1_name, fm2_name ); saacproto_ACSHOWMEMBERLIST_2_send( fd, charindex, fm1, fm1_name, fm2, fm2_name, time, id );}#endifvoid saacproto_ACShowMemberList_recv(int fd, int index){#ifdef __FAMILY int r = 0, fmacceptflag = 0, fmjoinnum = 0; char data[150 * MAX_MEMBERNUM]; r = ACShowFMMemberList(index, &fmacceptflag, &fmjoinnum, data); if (r < 0){ saacproto_ACShowMemberList_send(fd, FAILED, index, r, fmacceptflag, fmjoinnum, "Nothing"); }else{ saacproto_ACShowMemberList_send(fd, SUCCESSFUL, index, r, fmacceptflag, fmjoinnum, data); }#endif}void saacproto_ACFMDetail_recv(int fd, char *fmname, int fmindex, int index, int charfdid){#ifdef __FAMILY int r = 0; char data[15000]; r = ACFMDetail(index, fmname, fmindex, data); if (r < 0){ saacproto_ACFMDetail_send(fd, FAILED, "Nothing", charfdid); }else{ saacproto_ACFMDetail_send(fd, SUCCESSFUL, data, charfdid); }#endif}#ifdef _FMVER21void saacproto_ACMemberJoinFM_recv(int fd, char *fmname, int fmindex, char *charname, int charindex, int index, int result, int meindex, int charfdid)#elsevoid saacproto_ACMemberJoinFM_recv(int fd, char *fmname, int fmindex, char *charname, int charindex, int index, int result, int charfdid)#endif{ int r = 0;#ifdef _FMVER21 r = ACMemberJoinFM(index, fmname, fmindex, charname, charindex, result, meindex);#else r = ACMemberJoinFM(index, fmname, fmindex, charname, charindex);#endif if (r < 0){ saacproto_ACMemberJoinFM_send(fd, FAILED, charfdid); }else{ saacproto_ACMemberJoinFM_send(fd, SUCCESSFUL, charfdid); }}#ifdef _FMVER21void saacproto_ACMemberLeaveFM_recv(int fd, char *fmname, int fmindex, char *charname, int charindex, int index, int meindex, int charfdid)#elsevoid saacproto_ACMemberLeaveFM_recv(int fd, char *fmname, int fmindex, char *charname, int charindex, int index, int charfdid)#endif{#ifdef __FAMILY int r = 0; int flag = 1; // 主动离开家族#ifdef _FMVER21 r = ACMemberLeaveFM(index, fmname, fmindex, charname, flag, charindex, meindex);#else r = ACMemberLeaveFM(index, fmname, fmindex, charname, flag, charindex);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -