📄 callfromac.c
字号:
if( (ch = CHAR_getCharPointer( charaindex)) == NULL ) return; ch->indexOfExistDepotItems = allocateMemory( sizeof( int ) * CHAR_MAXDEPOTITEMHAVE ); if( ch->indexOfExistDepotItems == NULL ) return; for( i=0; i<CHAR_MAXDEPOTITEMHAVE; i++) ch->indexOfExistDepotItems[i] = -1; if( CHAR_makeDepotItemStringToChar( charaindex, data) == FALSE ){ CHAR_talkToCli( charaindex, -1, "道具仓库资料读取失败!", CHAR_COLORYELLOW); CHAR_removeDepotItem( charaindex); return; } if( !CHAR_CHECKINDEX( meindex) ) return; if( clifd != -1 ) { char message[1024]; char buf[1024]; strcpy( message, "3\n\n" " 使用道具仓库\n\n" " <存放道具>\n" " <取回道具>\n" ); lssproto_WN_send( clifd, WINDOW_MESSAGETYPE_SELECT, WINDOW_BUTTONTYPE_CANCEL, 311, //CHAR_WINDOWTYPE_DEPOTITEMSHOP_HANDLE, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), makeEscapeString( message, buf, sizeof(buf)) ); }}#endif//,。!#ifdef _CHAR_POOLPETvoid saacproto_ACCharSavePoolPet_recv(int fd ,char* result, char* data,int retfd){ int charaindex = getCharindexFromFdid( retfd); if( !CHAR_CHECKINDEX(charaindex) ) return; if( strstr( result, FAILED ) != NULL ){ CHAR_talkToCli( charaindex, -1, "宠物仓库资料存档失败!", CHAR_COLORYELLOW); return; }}void saacproto_ACCharGetPoolPet_recv(int fd ,char* result, char* data,int retfd, int meindex) { Char* ch = NULL; int i, clifd, charaindex; if( strcmp( result , SUCCESSFUL ) != 0 ) return; charaindex = getCharindexFromFdid(retfd); if( !CHAR_CHECKINDEX( charaindex) ) return; clifd = getfdFromCharaIndex( charaindex); if( CHAR_CheckDepotPet( charaindex) ) return;//仓库已存在 if( (ch = CHAR_getCharPointer( charaindex)) == NULL ) return; ch->indexOfExistDepotPets = allocateMemory( sizeof( int ) * CHAR_MAXDEPOTPETHAVE ); if( ch->indexOfExistDepotPets == NULL ) return; for( i=0; i<CHAR_MAXDEPOTPETHAVE; i++) ch->indexOfExistDepotPets[i] = -1; if( CHAR_makeDepotPetStringToChar( charaindex, data) == FALSE ){ CHAR_talkToCli( charaindex, -1, "宠物仓库资料读取失败!", CHAR_COLORYELLOW); CHAR_removeDepotPet( charaindex); return; } if( !CHAR_CHECKINDEX( meindex) ) return; if( clifd != -1 ) { char message[1024]; char buf[1024]; strcpy( message, "3\n\n" " 使用宠物仓库\n\n" " <存放宠物>\n" " <取回宠物>\n" ); lssproto_WN_send( clifd, WINDOW_MESSAGETYPE_SELECT, WINDOW_BUTTONTYPE_CANCEL, CHAR_WINDOWTYPE_DEPOTPETSHOP_HANDLE, CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), makeEscapeString( message, buf, sizeof(buf)) ); }}#endif#ifdef _UNIVERSE_CHATROOM//ACUniChatroomvoid saacproto_ACUniChatroom_recv( int acfd, int charaindex, int clifdid, char *result, char *CdKey, char *data){ saac_ChatRoom_recvall ( acfd, result, data, charaindex, clifdid );}#endif#ifdef _ANGEL_SUMMON//void saacproto_ACMissionTable_recv( int fd, int num, int type, char *data, int charaindex)void saacproto_ACMissionTable_recv( int fd, int num, int type, char *data, char* angelinfo){ char msg[1024]; if( type == 1 ) { // get data list //if( num == -1) // get all data { int di, ti; char onedata[1024], token[1024]; if( num == -1 ) { print("获得所有任务!!\n"); memset( missiontable, 0, sizeof(missiontable)); } else print("获得一个任务!!:%s\n", data); for( di =1; di <MAXMISSIONTABLE; di++) { if( !getStringFromIndexWithDelim( data, " ", di, onedata, sizeof(onedata))) break; if( onedata[0] == NULL || onedata[0] == ' ') break; print(" data%d:%s ", di, onedata); getStringFromIndexWithDelim( onedata, "|", 1, token, sizeof(token)); ti = atoi( token); if( ti <0 || ti >= MAXMISSIONTABLE) continue; getStringFromIndexWithDelim( onedata, "|", 2, token, sizeof(token)); strcpy( missiontable[ti].angelinfo, token); getStringFromIndexWithDelim( onedata, "|", 3, token, sizeof(token)); strcpy( missiontable[ti].heroinfo, token); getStringFromIndexWithDelim( onedata, "|", 4, token, sizeof(token)); missiontable[ti].mission = atoi( token); getStringFromIndexWithDelim( onedata, "|", 5, token, sizeof(token)); missiontable[ti].flag = atoi( token); getStringFromIndexWithDelim( onedata, "|", 6, token, sizeof(token)); missiontable[ti].time = atoi( token); getStringFromIndexWithDelim( onedata, "|", 7, token, sizeof(token)); missiontable[ti].limittime = atoi( token); } } } else if( type == 2 ) { // add data return int angelindex =-1, i, maxChar; char nameinfo[128], msgbuf[1024]; if( num == -1) { sprintf( msg, "任务已满\n"); print( msg); LogAngel( msg); return; } sprintf( msgbuf, "收到AC回应(add data) num=%d nameinfo=%s ", num, angelinfo); print( msgbuf); LogAngel( msgbuf); maxChar = CHAR_getPlayerMaxNum(); for( i =0; i <maxChar; i++) { if( !CHAR_CHECKINDEX( i) ) continue; getMissionNameInfo( i, nameinfo); if( strcmp( nameinfo, angelinfo) ) continue; angelindex = i; break; } if( angelindex == -1 ) { print("使者已下线\n"); return; } lssproto_WN_send( getfdFromCharaIndex(angelindex), WINDOW_MESSAGETYPE_ANGELMESSAGE, WINDOW_BUTTONTYPE_YESNO, CHAR_WINDOWTYPE_ANGEL_ASK, -1, "目前魔族肆虐,精灵们需要你的帮忙,前往寻找勇者来消灭这些魔族,你是否愿意帮忙?"); CHAR_talkToCli( angelindex, -1, "精灵正在召唤你。", CHAR_COLORYELLOW); } else if( type == 3) { if( num <0 || num >= MAXMISSIONTABLE) return; sprintf( msg, " AC清除 任务:%d %s %s ", num, missiontable[num].angelinfo, missiontable[num].heroinfo); print( msg); LogAngel( msg); strcpy( missiontable[num].angelinfo, ""); strcpy( missiontable[num].heroinfo, ""); missiontable[num].mission = 0; missiontable[num].flag = 0; missiontable[num].time = 0; missiontable[num].limittime = 0; }}#endif#ifdef _TEACHER_SYSTEMvoid saacproto_ACCheckCharacterOnLine_recv( int acfd, int charaindex, int iOnline,char *data,int flag){ switch(flag){ case R_F_TEACHER_SYSTEM: CHAR_Teacher_system_View(charaindex,iOnline,data); break; default:printf("saacproto_ACCheckCharacterOnLine_recv(): error flag type!!(%d)\n",flag); }}#endif#ifdef _RACEMANvoid saacproto_ACRaceRecordandSort_recv(int fd,int charaindex,int racetype,char *data) { int i,j=0; char perdata[128]; char buuf[16384]; //sprintf(buuf,"recv_type:%d data:%s",racetype,data); //CHAR_talkToCli( charaindex , -1, buuf , CHAR_COLORYELLOW); //print("race_recv:%s",data); if(racetype == 0 || racetype == 9 ) return; //因为登记动作而接收到ac的回传,所以不用处理 //或许可以原封不动传给CLIENT if(racetype == 1){ //gamemode 1 memset(ranktable1,0,sizeof(ranktable1)); for(i=0;i<DEFMAXRANK*3;i++) //原则上不会跑完 { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable1[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable1[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; ranktable1[j].catchcnt = atoi(perdata); ranktable1[j].rank = j+1; j++; } } }else if(racetype == 2){ //gamemode 2 memset(ranktable2,0,sizeof(ranktable2)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable2[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable2[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; ranktable2[j].catchcnt = atoi(perdata); ranktable2[j].rank = j+1; j++; } } }else if(racetype == 3){ //gamemode 3 memset(ranktable3,0,sizeof(ranktable3)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable3[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable3[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; ranktable3[j].catchcnt = atoi(perdata); ranktable3[j].rank = j+1; j++; } } }else if(racetype == 4){ //gamemode 4 memset(ranktable4,0,sizeof(ranktable4)); for(i=0;i<DEFMAXRANK*3;i++) //原则上不会跑完 { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable4[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable4[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; ranktable4[j].catchcnt = atoi(perdata); ranktable4[j].rank = j+1; j++; } } }else if(racetype == 5){ //gamemode 5 memset(ranktable5,0,sizeof(ranktable5)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable5[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(ranktable5[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; ranktable5[j].catchcnt = atoi(perdata); ranktable5[j].rank = j+1; j++; } } }else if(racetype == 11){ memset(history1,0,sizeof(history1)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history1[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history1[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; history1[j].catchcnt = atoi(perdata); history1[j].rank = j+1; j++; } } }else if(racetype == 12){ memset(history2,0,sizeof(history2)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history2[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history2[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; history2[j].catchcnt = atoi(perdata); history2[j].rank = j+1; j++; } } }else if(racetype == 13){ memset(history3,0,sizeof(history3)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history3[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history3[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; history3[j].catchcnt = atoi(perdata); history3[j].rank = j+1; j++; } } }else if(racetype == 14){ memset(history4,0,sizeof(history4)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history4[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history4[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; history4[j].catchcnt = atoi(perdata); history4[j].rank = j+1; j++; } } }else if(racetype == 15){ memset(history5,0,sizeof(history5)); for(i=0;i<DEFMAXRANK*3;i++) { if( i % 3 == 0){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history5[j].id,perdata); }else if( i % 3 == 1){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; strcpy(history5[j].name,perdata); }else if( i % 3 == 2){ if( !getStringFromIndexWithDelim( data, "|", i+1 , perdata, sizeof(perdata))) break; if( strlen(perdata) == 0 ) break; history5[j].catchcnt = atoi(perdata); history5[j].rank = j+1; j++; } } }}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -