📄 callfromac.c
字号:
{ int ret; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; ACShowFMList(ret, fmnum, data);}void saacproto_ACShowMemberList_recv(int fd, char *result, int index, int fmmemnum, int fmacceptflag, int fmjoinnum, char *data){ int ret; // fmmemnum -1:无此索引值, -2:无更新 else:表示此家族人数 if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; ACShowMemberList(ret, index, fmmemnum, fmacceptflag, fmjoinnum, data);}void saacproto_ACFMDetail_recv(int fd, char *result, char *data, int charfdid){ int ret; int clifd = getfdFromFdid(charfdid); if (CONNECT_checkfd(clifd) == FALSE) return; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; ACFMDetail(ret, data, clifd );}void saacproto_ACMemberJoinFM_recv(int fd, char *result, char *data, int charfdid){}void saacproto_ACMemberLeaveFM_recv(int fd, char *result, char *data, int charfdid){}#ifdef _PERSONAL_FAME // Arminius: 家族个人声望void saacproto_ACFMCharLogin_recv(int fd, char *result, int index, int floor, int fmdp, int joinflag, int fmsetupflag, int flag, int charindex, int charfame, int charfdid )#elsevoid saacproto_ACFMCharLogin_recv(int fd, char *result, int index, int floor, int fmdp, int joinflag, int fmsetupflag, int flag, int charindex, int charfdid)#endif{ int ret; int clifd = getfdFromFdid(charfdid); if (CONNECT_checkfd(clifd) == FALSE) return; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0;// print("Login fd:%d result:%s index:%d floor:%d fmdp:%d joinflag:%d setup:%d charfdid:%d\n",// fd, result, index, floor, fmdp, joinflag, fmsetupflag, charfdid);#ifdef _PERSONAL_FAME // Arminius: 家族个人声望// print("Login charfame:%d\n", charfame); ACFMCharLogin(clifd, ret, index, floor, fmdp, joinflag, fmsetupflag, flag, charindex, charfame );#else ACFMCharLogin(clifd, ret, index, floor, fmdp, joinflag, fmsetupflag, flag, charindex);#endif}void saacproto_ACFMCharLogout_recv(int fd, char *result, int charfdid){}void saacproto_ACFMReadMemo_recv(int fd, char *result, int index, int num, int dataindex, char *data){ int ret; // index(家族 WORK 的索引),num(资料笔数,最大35笔) // dataindex(最新的资料数),data(资料)。 // 注:num -1:无此索引值, -2:无更新 else:表示此家族人数 if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; ACShowFMMemo(ret, index, num, dataindex, data);}void saacproto_ACFMWriteMemo_recv(int fd, char *result, int index){}void saacproto_ACFMPointList_recv(int fd, char *result, char *data){ int ret; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; ACShowPointList(ret, data);}void saacproto_ACSetFMPoint_recv(int fd, char *result, int r, int charfdid){ int ret; int clifd = getfdFromFdid(charfdid); if( CONNECT_checkfd(clifd) == FALSE )return; if (strcmp(result, SUCCESSFUL) == 0){ ret = 1; }else{ ret = 0; } ACSetFMPoint(ret, r, clifd);}void saacproto_ACFixFMPoint_recv(int fd, char *result, int r){}void saacproto_ACFMAnnounce_recv(int fd, char *result, char *fmname, int fmindex, int index, int kindflag, char *data, int color){ int ret; if (strcmp(result, SUCCESSFUL) == 0){ ret = 1; }else{ ret = 0; } ACFMAnnounce(ret, fmname, fmindex, index, kindflag, data, color); } void saacproto_ACShowTopFMList_recv(int fd, char *result, int kindflag, int num, char *data){ int ret; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; ACShowDpTop(ret, num, data, kindflag);}void saacproto_ACFixFMData_recv(int fd, char *result, int kindflag, char *data1, char *data2, int charfdid){ int ret; int intdata; int clifd = getfdFromFdid(charfdid); int charaindex = CONNECT_getCharaindex( clifd ); if( CONNECT_checkfd(clifd) == FALSE )return; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; if( !CHAR_CHECKINDEX(charaindex) ) return; if( kindflag == FM_FIX_FMRULE ){ CHAR_talkToCli( charaindex , -1, "家族主旨修改OK!", CHAR_COLORWHITE); }else if( kindflag == FM_FIX_FMGOLD ) { intdata = atoi( data1 ); if( ret == 0 ) { if( atoi(data1) > 0 ) { CHAR_setInt( charaindex, CHAR_GOLD, CHAR_getInt( charaindex, CHAR_GOLD ) +atoi(data1) ); } CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_GOLD); return; }else { if( atoi(data1) < 0 ) { CHAR_setInt( charaindex, CHAR_GOLD, CHAR_getInt( charaindex, CHAR_GOLD ) -atoi(data1) ); CHAR_send_P_StatusString( charaindex , CHAR_P_STRING_GOLD); } LogStone( atoi(data2), CHAR_getChar( charaindex, CHAR_NAME ), CHAR_getChar( charaindex, CHAR_CDKEY ), -intdata, CHAR_getInt( charaindex, CHAR_GOLD ), "FMBank(家族银行)", CHAR_getInt( charaindex,CHAR_FLOOR), CHAR_getInt( charaindex,CHAR_X ), CHAR_getInt( charaindex,CHAR_Y ) ); } }else if( kindflag == FM_FIX_FMLEADERCHANGE ){ ACFMJob( clifd, ret, data1, data2 ); } // CoolFish: 2001/10/03 else if (kindflag == FM_FIX_FMADV || kindflag == FM_FIX_FMFEED || kindflag == FM_FIX_FMSYNTHESIZE || kindflag == FM_FIX_FMDEALFOOD) { char tmpbuf[1024], flag[128]; if (kindflag == FM_FIX_FMADV) strcpy(flag, "ADV"); else if (kindflag == FM_FIX_FMFEED) strcpy(flag, "FEED"); else if (kindflag == FM_FIX_FMSYNTHESIZE) strcpy(flag, "SYN"); else if (kindflag == FM_FIX_FMDEALFOOD) strcpy(flag, "FOOD"); sprintf(tmpbuf, "%s::%d %s %s", flag, CHAR_getInt(charaindex, CHAR_FMINDEX), CHAR_getChar(charaindex, CHAR_FMNAME), data1); // print("ACFixFMData tmpbuf:%s\n", tmpbuf); LogFMPOP(tmpbuf); }}void saacproto_ACFixFMPK_recv(int fd, char *result, int data, int winindex, int loseindex){ int ret; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; // print("FixFMPK_recv result:%s data:%d winindex:%d loseindex:%d\n", result, data, winindex, loseindex); if (ret == 1) { char tmpbuf[256]; ACFixFMPK(winindex, loseindex, data); sprintf(tmpbuf, "FMPK(家族PK)::win(优胜家族):%d lose(落败家族):%d point:%d", winindex, loseindex, data); //print("FixFMPK tmpbuf:%s\n", tmpbuf); LogFMPOP(tmpbuf); }}void saacproto_ACGMFixFMData_recv(int fd, char *result, char *fmname, int charfdid){ int ret; int clifd = getfdFromFdid(charfdid); char buf[256]; if( CONNECT_checkfd(clifd) == FALSE )return; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; print("GMFixFMData_recv result:%s\n", result); if (ret == 1) { sprintf(buf, "修改%s资料OK!", fmname); CHAR_talkToCli(CONNECT_getCharaindex(clifd) , -1, buf, CHAR_COLORWHITE); } else { sprintf(buf, "修改%s资料失败!", fmname); CHAR_talkToCli(CONNECT_getCharaindex(clifd) , -1, buf, CHAR_COLORWHITE); }}extern int familyTax[];void saacproto_ACGetFMData_recv(int fd, char *result, int kindflag, int data, int charfdid){ int ret; char buf[256]; int clifd = getfdFromFdid(charfdid); if( CONNECT_checkfd(clifd) == FALSE )return; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; //print(" FMBank2_%d_%d_%d ", ret, kindflag, data ); if( ret == 0 ) return; if( kindflag == 1 ) { int fmindex = CHAR_getWorkInt(CONNECT_getCharaindex(clifd), CHAR_WORKFMINDEXI); if( fmindex < 0 || fmindex >= FAMILY_MAXNUM ){ print(" fmindex:%d if FALSE !!\n", fmindex); return; } familyTax[ fmindex] = data; sprintf( buf, "B|T|%d", data ); lssproto_FM_send( clifd, buf ); } }void saacproto_ACFMClearPK_recv(int fd, char *result, char *fmname, int fmindex, int index){ int ret, i = 0; if (strcmp(result, SUCCESSFUL) == 0) ret = 1; else ret = 0; for (i = 0; i < MAX_SCHEDULEMAN * MAX_SCHEDULE; i++) { { if (fmpks[i].flag == -1) continue; if (fmpks[i].host_index == index || fmpks[i].guest_index == index) { fmpks[i].host_index = -1; strcpy(fmpks[i].host_name, ""); fmpks[i].guest_index = -1; strcpy(fmpks[i].guest_name, ""); fmpks[i].prepare_time = -1; fmpks[i].max_player = -1; fmpks[i].win = -1; fmpks[i].flag = -1; } } }}#ifdef _ACFMPK_LISTvoid saacproto_ACSendFmPk_recv( int fd, int toindex, int flg){ char buf[256]; if( flg == 0){ sprintf( buf, "庄园挑战登录失败!!"); CHAR_talkToCli( toindex, -1, buf, CHAR_COLORRED); }else{ sprintf( buf, "庄园挑战登录确认OK,请好好准备。"); CHAR_talkToCli( toindex, -1, buf, CHAR_COLORYELLOW); }}void saacproto_ACLoadFmPk_recv(int fd, char *data){ char buf[10], fm_pk_data[128]; char token[256], skip[256]; int fm_pk_num , fmpks_pos=-1; easyGetTokenFromString( data , 1 , buf , sizeof(buf)); fm_pk_num = atoi(buf); sprintf(fm_pk_data , "%s", data+2 ); if( ((fmpks_pos=fm_pk_num*MAX_SCHEDULE)== -1) || (fm_pk_num > FMPOINTNUM) ){ print("\n err fm_pk_num(%d)", fm_pk_num ); return; } if (getStringFromIndexWithDelim(data,"|",2,token,sizeof(token))) { fmpks[fmpks_pos+1].dueltime=atoi(token); } if (getStringFromIndexWithDelim(data,"|",3,token,sizeof(token))) { fmpks[fmpks_pos+1].host_index=atoi(token); } if (getStringFromIndexWithDelim(data,"|",4,token,sizeof(token))) { strcpy(fmpks[fmpks_pos+1].host_name,makeStringFromEscaped(token)); } if (getStringFromIndexWithDelim(data,"|",5,token,sizeof(token))) { fmpks[fmpks_pos+1].guest_index=atoi(token); } if (getStringFromIndexWithDelim(data,"|",6,token,sizeof(token))) { strcpy(fmpks[fmpks_pos+1].guest_name,makeStringFromEscaped(token)); } if (getStringFromIndexWithDelim(data,"|",7,token,sizeof(token))) { fmpks[fmpks_pos+1].prepare_time=atoi(token); } if (getStringFromIndexWithDelim(data,"|",8,token,sizeof(token))) { int maxnum = atoi( token); if( maxnum < 50 ) maxnum = 50; fmpks[fmpks_pos+1].max_player = maxnum; } if (getStringFromIndexWithDelim(data,"|",9,token,sizeof(token))) { fmpks[fmpks_pos+1].flag=atoi(token); } if( fmpks[fmpks_pos+1].flag == FMPKS_FLAG_MANOR_OTHERPLANET ){ if (getStringFromIndexWithDelim(data,"|",10,token,sizeof(token))) { strcpy(fmpks[fmpks_pos+2].host_name,makeStringFromEscaped(token)); strcpy(skip, makeStringFromEscaped(token)); if (strcmp(getGameserverID(), skip)==0) { fmpks[fmpks_pos+1].flag=8; }else if( fmpks[fmpks_pos+1].flag == 8) { fmpks[fmpks_pos+1].flag=10; } } }else{ strcpy( fmpks[fmpks_pos+2].host_name, ""); }}#endifvoid saacproto_ACManorPKAck_recv(int fd, char *data){ // 更新这个 server 的 庄园 pk scheduleman int i; char token[256], skip[256]; int char_max=CHAR_getCharNum(); print("ACManorPKAck_recv: %s\n",data); for (i=0; i<char_max; i++) { if (CHAR_getCharUse(i)) { if (CHAR_getInt( i, CHAR_WHICHTYPE )==CHAR_TYPEMANORSCHEDULEMAN) { if (getStringFromIndexWithDelim(data,"|",1,token,sizeof(token))) { if (CHAR_getWorkInt(i, CHAR_NPCWORKINT2)==atoi(token)) { // manor id int fmpks_pos = CHAR_getWorkInt(i, CHAR_NPCWORKINT1)*MAX_SCHEDULE; // 对战星球 if (getStringFromIndexWithDelim(data,"|",10,token,sizeof(token))) { strcpy(skip, makeStringFromEscaped(token)); print("ACManorPKAck: %d %s\n", fmpks_pos, skip); if (strcmp(getGameserverID(), skip)!=0) { strcpy(fmpks[fmpks_pos+2].host_name, skip); // 时间 if (getStringFromIndexWithDelim(data,"|",2,token,sizeof(token))) { fmpks[fmpks_pos+1].dueltime=atoi(token); } // 主队 familyindex if (getStringFromIndexWithDelim(data,"|",3,token,sizeof(token))) { fmpks[fmpks_pos+1].host_index=atoi(token); } // 主队 家族名 if (getStringFromIndexWithDelim(data,"|",4,token,sizeof(token))) { strcpy(fmpks[fmpks_pos+1].host_name,makeStringFromEscaped(token)); } // 客队 familyindex if (getStringFromIndexWithDelim(data,"|",5,token,sizeof(token))) { fmpks[fmpks_pos+1].guest_index=atoi(token); } // 客队 家族名 if (getStringFromIndexWithDelim(data,"|",6,token,sizeof(token))) { strcpy(fmpks[fmpks_pos+1].guest_name,makeStringFromEscaped(token)); } // 准备时间 if (getStringFromIndexWithDelim(data,"|",7,token,sizeof(token))) { fmpks[fmpks_pos+1].prepare_time=atoi(token); } // 最大人数 if (getStringFromIndexWithDelim(data,"|",8,token,sizeof(token))) { fmpks[fmpks_pos+1].max_player=atoi(token); } // 旗标 if (getStringFromIndexWithDelim(data,"|",9,token,sizeof(token))) { fmpks[fmpks_pos+1].flag=atoi(token); } // 对战星球 if (getStringFromIndexWithDelim(data,"|",10,token,sizeof(token))) { strcpy(fmpks[fmpks_pos+2].host_name,makeStringFromEscaped(token)); } } } } } } } }}#ifdef _WAEI_KICKvoid saacproto_ACKick_recv(int fd , int act, char* data ,int retfd){ int clifd = getfdFromFdid(retfd); //char cdkey[CDKEYLEN]; int cindex = getCharindexFromFdid(retfd); print("状态:%s ", data); switch( act) { case 0: //FAIL if( CONNECT_checkfd(clifd) == FALSE) return; CHAR_talkToCli( cindex, -1, data, CHAR_COLORYELLOW); break; case 1: //跨星球踢人 { char cdkey[64]; char szName[64]; int i, MAX_USER=0; BOOL find=FALSE; print("跨服踢人:%s", data); MAX_USER=getFdnum(); for(i=0;i<MAX_USER;i++){ int i_use; if(fd==i)continue; i_use=CONNECT_getUse(i); if(i_use){ CONNECT_getCdkey( i, cdkey, sizeof( cdkey )); if( !strcmp( cdkey, data) ){ int fd_charaindex = CONNECT_getCharaindex( i ); CONNECT_getCharname( i, szName, sizeof( szName ) ); if( retfd == -1 ){ print("因重复登入"); CHAR_talkToCli( fd_charaindex, -1, "因重复帐号登入而断线!",CHAR_COLORYELLOW); }else{ print("因做坏事 "); CHAR_talkToCli(fd_charaindex, -1, "因做坏事而断线。",CHAR_COLORYELLOW); } CONNECT_setCloseRequest( i , 1 ); find=TRUE; } } } if( find == TRUE && retfd != -1 && CHAR_CHECKINDEX( cindex) ) { char buf1[256];//, buf2[256]; sprintf(buf1,"系统将[%s]逐出伺服器。", /*CHAR_getChar( cindex, CHAR_NAME),*/ szName); for( i=0; i<MAX_USER; i++){ if( CONNECT_getUse(i) ) { int fd_charaindex = CONNECT_getCharaindex( i); if( !CHAR_CHECKINDEX( fd_charaindex) ) continue; CHAR_talkToCli( fd_charaindex, -1, buf1, CHAR_COLORYELLOW); // CHAR_talkToCli(fd_charaindex, -1, buf2, CHAR_COLORYELLOW); } } } } break; case 2: print("\n CASE 2"); break; }}#endifvoid saacproto_ACCharLogin_recv(int fd , int clifd, int flag){ if(flag==1) lssproto_ClientLogin_send( clifd , "ok" ); else{ lssproto_ClientLogin_send( clifd , "no" ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -