⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encount.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
📖 第 1 页 / 共 2 页
字号:
                        for( i = CREATEPROB_TOKEN; i < CREATEPROB_TOKEN +ENCOUNT_GROUPMAXNUM*2; i ++) {                ret = getStringFromIndexWithDelim( line,",",i,token,                                                   sizeof(token));                if( ret==FALSE ){                    fprint("文件语法错误:%s 第%d行\n",filename,linenum);                    continue;                }                if( strlen( token) != 0 ) {                    if( i < CREATEPROB_TOKEN + ENCOUNT_GROUPMAXNUM ) {                        ENCOUNT_table[encount_readlen].groupid[i-CREATEPROB_TOKEN]                             = atoi(token);                    }                    else {                        ENCOUNT_table[encount_readlen].createprob[i-(CREATEPROB_TOKEN + ENCOUNT_GROUPMAXNUM)]                             = atoi(token);                    }                }            }            /* 褐  民尼永弁 */            if( checkRedundancy( ENCOUNT_table[encount_readlen].groupid,             			arraysizeof( ENCOUNT_table[encount_readlen].groupid)))            {            	fprint( "文件语法错误:%s 第%d行\n",             				filename,linenum);            	continue;            }        }#ifdef _ADD_ENCOUNT           // WON ADD 增加敌遭遇触发修件        ret = getStringFromIndexWithDelim( line,",",31,token,                                           sizeof(token));        if( ret==FALSE ){            fprint("文件语法错误:%s 第%d行\n",filename,linenum);            continue;        }        ENCOUNT_table[encount_readlen].event_now = atoi(token);        ret = getStringFromIndexWithDelim( line,",",32,token,                                           sizeof(token));        if( ret==FALSE ){            fprint("文件语法错误:%s 第%d行\n",filename,linenum);            continue;        }        ENCOUNT_table[encount_readlen].event_end = atoi(token);        ret = getStringFromIndexWithDelim( line,",",33,token,                                           sizeof(token));        if( ret==FALSE ){            fprint("文件语法错误:%s 第%d行\n",filename,linenum);            continue;        }        ENCOUNT_table[encount_readlen].enemy_group = atoi(token);#endif        encount_readlen ++;}    }    fclose(f);    ENCOUNT_encountnum = encount_readlen;    print( "有效的遇敌坐标数是 %d..", ENCOUNT_encountnum );    return TRUE;}/*------------------------------------------------------------------------ * 巨件市它件玄涩烂白央奶伙  心  仄 *-----------------------------------------------------------------------*/BOOL ENCOUNT_reinitEncount( void ){	freeMemory( ENCOUNT_table);	return( ENCOUNT_initEncount( getEncountfile()));}/*------------------------------------------------------------ * 隙烂今木凶甄  及ENCOUNT_table及骄侬毛譬屯月[ * zorder及醒侬毛苇化穸燮赐匏及嫖中  毛潸  允月[ * 娄醒 *  floor       int     白夫失ID *  x           int     x甄   *  y           int     y甄   * 忒曰袄 *  恳橘      骄侬 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getEncountAreaArray( int floor, int x, int y){    int     i;    int     index = -1;    for( i=0 ; i<ENCOUNT_encountnum ; i++ ) {        if( ENCOUNT_table[i].floor == floor ) {            if( CoordinateInRect( &ENCOUNT_table[i].rect, x, y) ) {                int curZorder = ENCOUNT_getZorderFromArray(i);                if( curZorder >0) {                    if( index != -1 ) {                        /* 穸燮赐匏毛譬屯月 */                        /*   五中  穸燮 */                        if(  curZorder > ENCOUNT_getZorderFromArray(index)) {                            index = i;                        }                    }                    else {                        index = i;                    }                }            }        }    }    return index;}/*------------------------------------------------------------ * 隙烂今木凶甄  及巨件市它件玄割  毛譬屯月[ * 娄醒 *  floor       int     白夫失ID *  x           int     x甄   *  y           int     y甄   * 忒曰袄 *  恳橘      ㄟ动晓及割   *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getEncountPercentMin( int charaindex, int floor , int x, int y ){    int ret;        ret = ENCOUNT_getEncountAreaArray( floor, x, y);    if( ret != -1 ) {        ret = ENCOUNT_table[ret].encountprob_min;		/* 玄目夫旦躲绊毛勾仃月 */		if( CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT) > 0 ) {			ret = ceil( ret * 				((100 + CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_CUTRATE)) 					/ 100.0));		}		if( ret < 0 ) ret = 0;		if( ret > 100 ) ret = 100;    }    return ret;}/*------------------------------------------------------------ * 隙烂今木凶甄  及巨件市它件玄割  毛譬屯月[ * 娄醒 *  floor       int     白夫失ID *  x           int     x甄   *  y           int     y甄   * 忒曰袄 *  恳橘      ㄟ动晓及割   *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getEncountPercentMax( int charaindex, int floor , int x, int y ){    int ret;        ret = ENCOUNT_getEncountAreaArray( floor, x, y);    if( ret != -1 ) {        ret = ENCOUNT_table[ret].encountprob_max;		/* 玄目夫旦躲绊毛勾仃月 */		if( CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_COUNT) > 0 ) {			ret = ceil( ret * 				((100 + CHAR_getWorkInt( charaindex, CHAR_WORK_TOHELOS_CUTRATE)) 					/ 100.0));		}		if( ret < 0 ) ret = 0;		if( ret > 100 ) ret = 100;    }    return ret;}/*------------------------------------------------------------ * 隙烂今木凶甄  及衬戏岳MAX醒毛譬屯月[ * 娄醒 *  floor       int     白夫失ID *  x           int     x甄   *  y           int     y甄   * 忒曰袄 *  恳橘      ㄟ动晓及割   *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getCreateEnemyMaxNum( int floor , int x, int y ){    int ret;        ret = ENCOUNT_getEncountAreaArray( floor, x, y);    if( ret != -1 ) {        ret = ENCOUNT_table[ret].enemymaxnum;    }    return ret;}/*------------------------------------------------------------ * 隙烂今木凶甄  及巨件市它件玄白奴□伙玉及index毛譬屯月[ * 娄醒 *  floor       int     白夫失ID *  x           int     x甄   *  y           int     y甄   * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getEncountIndex( int floor , int x, int y ){    int ret;        ret = ENCOUNT_getEncountAreaArray( floor, x, y);    if( ret != -1 ) {        ret = ENCOUNT_table[ret].index;    }    return ret;}/*------------------------------------------------------------ * 隙烂今木凶甄  及巨件市它件玄白奴□伙玉及index毛譬屯月[ * 娄醒 *  array           int     ENCOUNTTABLE及骄侬 * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getEncountIndexFromArray( int array ){    if( !ENCOUNT_CHECKENCOUNTTABLEARRAY( array)) return -1;    return ENCOUNT_table[array].index;}/*------------------------------------------------------------ * 隙烂今木凶甄  及巨件市它件玄割  毛譬屯月[ * 娄醒 *  array           int     ENCOUNTTABLE及骄侬 * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getEncountPercentFromArray( int array ){    if( !ENCOUNT_CHECKENCOUNTTABLEARRAY( array)) return -1;    return ENCOUNT_table[array].encountprob_min;}/*------------------------------------------------------------ * 隙烂今木凶甄  及衬戏岳MAX醒毛譬屯月[ * 娄醒 *  array           int     ENCOUNTTABLE及骄侬 * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getCreateEnemyMaxNumFromArray( int array ){    if( !ENCOUNT_CHECKENCOUNTTABLEARRAY( array)) return -1;    return ENCOUNT_table[array].enemymaxnum;}/*------------------------------------------------------------ * 隙烂今木凶骄侬及弘伙□皿  寞毛譬屯月[ * 娄醒 *  array           int     ENCOUNTTABLE及骄侬 * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getGroupIdFromArray( int array, int grouparray ){    if( !ENCOUNT_CHECKENCOUNTTABLEARRAY( array)) return -1;    return ENCOUNT_table[array].groupid[grouparray];}/*------------------------------------------------------------ * 隙烂今木凶骄侬及弘伙□皿及请蜇  毛譬屯月[ * 娄醒 *  array           int     ENCOUNTTABLE及骄侬 * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getGroupProbFromArray( int array, int grouparray ){    if( !ENCOUNT_CHECKENCOUNTTABLEARRAY( array)) return -1;    return ENCOUNT_table[array].createprob[grouparray];}/*------------------------------------------------------------ * 隙烂今木凶骄侬及穸燮赐匏毛譬屯月[ * 娄醒 *  array           int     ENCOUNTTABLE及骄侬 * 忒曰袄 *  恳橘      ㄟ动晓 *  潸  撩    -1 ------------------------------------------------------------*/int ENCOUNT_getZorderFromArray( int array ){    if( !ENCOUNT_CHECKENCOUNTTABLEARRAY( array)) return -1;    return ENCOUNT_table[array].zorder;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -