/* sigaction°×ÛÍ */ void sighandle( int a ) { if (a==SIGUSR1) log("sigusr1ÐźÅ!\n"); log("µÃµ½Ò»¸öÐźÅ! Òì³£ÖжÏ......\n" ); writeFamily(familydir); writeFMPoint(fmpointdir); writeFMSMemo(fmsmemodir); #ifdef _ANGEL_SUMMON saveMissionTable(); #endif exit(1); }
/* sigaction���� */ void sighandle( int a ) { if (a==SIGUSR1) log("sigusr1�ź�!\n"); log("�õ�һ���ź�! �쳣�ж�......\n" ); writeFamily(familydir); writeFMPoint(fmpointdir); writeFMSMemo(fmsmemodir); #ifdef _ANGEL_SUMMON saveMissionTable(); #endif exit(1); }
void checkMissionTimelimit( void) { int index; static time_t lastcheck =0; if( sys_time < lastcheck + 5*60 ) return; log("\n¼ì²é¾«ÁéÕÙ»½Ê±¼äÏÞÖÆ:%d \n", sys_time); for( index =0; index < MAXMISSIONTABLE; index++) { if( missiontable[index].flag == MISSION_NONE) { continue; } // µÈ´ýʹÕß»ØÓ¦1Сʱ else if( missiontable[index].flag == MISSION_WAIT_ANSWER && sys_time > missiontable[index].time + ANSWERTIME*60*60 ) { delMissionTableOnedata( index);// ɾ } // µÈ´ýÁì½±Íê³É limittimeСʱ else if( ( missiontable[index].flag == MISSION_DOING || missiontable[index].flag == MISSION_HERO_COMPLETE ) && ( sys_time > (missiontable[index].time + missiontable[index].limittime*60*60)) ) { char buf[1024]; int gi; // ¸ÄTIMEOVER log("¾«ÁéÕÙ»½¼°Á콱ʱ¼ä¹ý:%d ", index); missiontable[index].flag = MISSION_TIMEOVER; missiontable[index].time = time(NULL); missiontable[index].limittime = BOUNDSTIME; sprintf( buf, "%d|%s|%s|%d|%d|%d|%d ", index, missiontable[index].angelinfo, missiontable[index].heroinfo, missiontable[index].mission, missiontable[index].flag, missiontable[index].time, missiontable[index].limittime ); for( gi=0; gi<MAXCONNECTION; gi++) { if (gs[gi].use && gs[gi].name[0]) { saacproto_ACMissionTable_send( gi, 1, 1, buf, ""); } } continue; } //else if( missiontable[index].flag == MISSION_HERO_COMPLETE // && sys_time > missiontable[index].time + BOUNDSTIME*60*60 ) { // log(" Á콱ʱ¼ä¹ý:%d ", index); // delMissionTableOnedata( index);// ɾ //} // ×ÊÁϱ£Áôʱ¼ä(BOUNDSTIMEСʱ) else if( missiontable[index].flag == MISSION_TIMEOVER && sys_time > missiontable[index].time + BOUNDSTIME*60*60 ) { log(" ±£Áôʱ¼ä¹ý:%d ", index); delMissionTableOnedata( index);// ɾ } } saveMissionTable(); lastcheck = sys_time; }
void checkMissionTimelimit( void) { int index; static time_t lastcheck =0; if( sys_time < lastcheck + 5*60 ) return; log("\n��龫���ٻ�ʱ������:%d \n", sys_time); for( index =0; index < MAXMISSIONTABLE; index++) { if( missiontable[index].flag == MISSION_NONE) { continue; } // �ȴ�ʹ��Ӧ1Сʱ else if( missiontable[index].flag == MISSION_WAIT_ANSWER && sys_time > missiontable[index].time + ANSWERTIME*60*60 ) { delMissionTableOnedata( index);// ɾ } // �ȴ��콱��� limittimeСʱ else if( ( missiontable[index].flag == MISSION_DOING || missiontable[index].flag == MISSION_HERO_COMPLETE ) && ( sys_time > (missiontable[index].time + missiontable[index].limittime*60*60)) ) { char buf[1024]; int gi; // ��TIMEOVER log("�����ٻ����콱ʱ���:%d ", index); missiontable[index].flag = MISSION_TIMEOVER; missiontable[index].time = time(NULL); missiontable[index].limittime = BOUNDSTIME; sprintf( buf, "%d|%s|%s|%d|%d|%d|%d ", index, missiontable[index].angelinfo, missiontable[index].heroinfo, missiontable[index].mission, missiontable[index].flag, missiontable[index].time, missiontable[index].limittime ); for( gi=0; gi<MAXCONNECTION; gi++) { if (gs[gi].use && gs[gi].name[0]) { saacproto_ACMissionTable_send( gi, 1, 1, buf, ""); } } continue; } //else if( missiontable[index].flag == MISSION_HERO_COMPLETE // && sys_time > missiontable[index].time + BOUNDSTIME*60*60 ) { // log(" �콱ʱ���:%d ", index); // delMissionTableOnedata( index);// ɾ //} // ���ϱ���ʱ��(BOUNDSTIMEСʱ) else if( missiontable[index].flag == MISSION_TIMEOVER && sys_time > missiontable[index].time + BOUNDSTIME*60*60 ) { log(" ����ʱ���:%d ", index); delMissionTableOnedata( index);// ɾ } } saveMissionTable(); lastcheck = sys_time; }