📄 encount.c
字号:
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 + -