📄 encount.c
字号:
}
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 );
#if 0
{
int i;
for( i=0; i <ENCOUNT_encountnum ; i++ )
print( "encount idx[%d] fl[%d] prob_min[%d] prob_max[%d] e_max[%d] x[%d] wth[%d] y[%d] hgt[%d] \n",
ENCOUNT_table[i].index,
ENCOUNT_table[i].floor,
ENCOUNT_table[i].encountprob_min,
ENCOUNT_table[i].encountprob_max,
ENCOUNT_table[i].enemymaxnum,
ENCOUNT_table[i].rect.x,
ENCOUNT_table[i].rect.width,
ENCOUNT_table[i].rect.y,
ENCOUNT_table[i].rect.height);
}
#endif
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 + -