亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? enemy.c

?? 最新主流石器時(shí)代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* 襯澀爛楮   */
#include "version.h"
#include <stdio.h>
#include <string.h>
#include "common.h"
#include "util.h"
#include "buf.h"
#include "char_base.h"
#include "char.h"
#include "configfile.h"
#include "encount.h"
#include "enemy.h"
#include "pet.h"
#include "enemyexptbl.h"
#include "petmail.h"
#include "battle.h"
#include "pet_skillinfo.h"
#include "anim_tbl.h"
#include "log.h"

#ifdef _ADD_ENCOUNT           // WON ADD 增加敵遭遇觸發(fā)修件
#include "encount.h"
#include "npcutil.h"
#endif

#define		ENEMY_INDEXTABLEMAXSIZE		16
static ENEMY_EnemyTable *ENEMY_enemy;
static int              ENEMY_enemynum;

static ENEMYTEMP_Table *ENEMYTEMP_enemy;
static int              ENEMYTEMP_enemynum;

static GROUP_Table 		*GROUP_group;
static int              GROUP_groupnum;

int                     ENEMY_indextable[ENEMY_INDEXTABLEMAXSIZE];

#ifdef _ENEMY_FALLGROUND
extern	tagRidePetTable ridePetTable[296];
#endif

INLINE BOOL ENEMY_CHECKINDEX( int index)
{
    if( index < 0 || index >= ENEMY_enemynum) return FALSE;
    return TRUE;
}

static INLINE BOOL ENEMY_CHECKINTDATAINDEX( int index)
{
    if( index< 0 || index >= ENEMY_DATAINTNUM) return FALSE;
    return TRUE;
}

static INLINE BOOL ENEMY_CHECKCHARDATAINDEX( int index)
{
    if( index< 0 || index >= ENEMY_DATACHARNUM) return FALSE;
    return TRUE;
}

INLINE int ENEMY_getInt( int index, ENEMY_DATAINT element)
{
    return ENEMY_enemy[index].intdata[element];
}

INLINE int *ENEMY_getIntdata( int index)
{
	return ENEMY_enemy[index].intdata;
}

INLINE int ENEMY_setInt( int index, ENEMY_DATAINT element, int data)
{
    int buf;
    buf = ENEMY_enemy[index].intdata[element];
    ENEMY_enemy[index].intdata[element] = data;
    return buf;
}

INLINE char *ENEMY_getChar( int index, ENEMY_DATACHAR element)
{
    if(!ENEMY_CHECKINDEX(index))return NULL;
    if(!ENEMY_CHECKCHARDATAINDEX(element))return NULL;

    return ENEMY_enemy[index].chardata[element].string;
}

INLINE BOOL ENEMY_setChar( int index ,ENEMY_DATACHAR element, char* new )
{
    if(!ENEMY_CHECKINDEX(index))return FALSE;
    if(!ENEMY_CHECKCHARDATAINDEX(element))return FALSE;
    strcpysafe( ENEMY_enemy[index].chardata[element].string,
                sizeof(ENEMY_enemy[index].chardata[element].string),
                new );
    return TRUE;
}

int ENEMY_getEnemyNum( void)
{
    return ENEMY_enemynum;
}

INLINE BOOL ENEMYTEMP_CHECKINDEX( int index)
{
    if( index < 0 || index >= ENEMYTEMP_enemynum) return FALSE;
    return TRUE;
}

static INLINE BOOL ENEMYTEMP_CHECKINTDATAINDEX( int index)
{
    if( index< 0 || index >= E_T_DATAINTNUM) return FALSE;
    return TRUE;
}

static INLINE BOOL ENEMYTEMP_CHECKCHARDATAINDEX( int index)
{
    if( index< 0 || index >= E_T_DATACHARNUM) return FALSE;
    return TRUE;
}

INLINE int ENEMYTEMP_getInt( int index, ENEMYTEMP_DATAINT element)
{
    return ENEMYTEMP_enemy[index].intdata[element];
}

INLINE int ENEMYTEMP_setInt( int index, ENEMYTEMP_DATAINT element, int data)
{
    int buf;
    buf = ENEMYTEMP_enemy[index].intdata[element];
    ENEMYTEMP_enemy[index].intdata[element] = data;
    return buf;
}

INLINE char *ENEMYTEMP_getChar( int index, ENEMYTEMP_DATACHAR element)
{
    if(!ENEMYTEMP_CHECKINDEX(index))return NULL;
    if(!ENEMYTEMP_CHECKCHARDATAINDEX(element))return NULL;

    return ENEMYTEMP_enemy[index].chardata[element].string;
}

INLINE BOOL ENEMYTEMP_setChar( int index ,ENEMYTEMP_DATACHAR element, char* new )
{
    if(!ENEMYTEMP_CHECKINDEX(index))return FALSE;
    if(!ENEMYTEMP_CHECKCHARDATAINDEX(element))return FALSE;
    strcpysafe( ENEMYTEMP_enemy[index].chardata[element].string,
                sizeof(ENEMYTEMP_enemy[index].chardata[element].string),
                new );
    return TRUE;
}

int ENEMYTEMP_getEnemyNum( void)
{
    return ENEMYTEMP_enemynum;
}

INLINE BOOL GROUP_CHECKINDEX( int index)
{
    if( index < 0 || index >= GROUP_groupnum) return FALSE;
    return TRUE;
}

static INLINE BOOL GROUP_CHECKINTDATAINDEX( int index)
{
    if( index< 0 || index >= GROUP_DATAINTNUM) return FALSE;
    return TRUE;
}

static INLINE BOOL GROUP_CHECKCHARDATAINDEX( int index)
{
    if( index< 0 || index >= GROUP_DATACHARNUM) return FALSE;
    return TRUE;
}

INLINE int GROUP_getInt( int index, GROUP_DATAINT element)
{
    return GROUP_group[index].intdata[element];
}

INLINE int GROUP_setInt( int index, GROUP_DATAINT element, int data)
{
    int buf;
    buf = GROUP_group[index].intdata[element];
    GROUP_group[index].intdata[element] = data;
    return buf;
}

INLINE char *GROUP_getChar( int index, GROUP_DATACHAR element)
{
    if(!GROUP_CHECKINDEX(index))return NULL;
    if(!GROUP_CHECKCHARDATAINDEX(element))return NULL;

    return GROUP_group[index].chardata[element].string;
}

INLINE BOOL GROUP_setChar( int index ,GROUP_DATACHAR element, char* new )
{
    if(!GROUP_CHECKINDEX(index))return FALSE;
    if(!GROUP_CHECKCHARDATAINDEX(element))return FALSE;
    strcpysafe( GROUP_group[index].chardata[element].string,
                sizeof(GROUP_group[index].chardata[element].string),
                new );
    return TRUE;
}

int GROUP_getEnemyNum( void)
{
    return GROUP_groupnum;
}

BOOL ENEMYTEMP_initEnemy( char* filename )
{
    FILE*   f;
    char    line[256];
    int     linenum=0;
    int     enemytemp_readlen=0;
	int		i,j;

#ifdef _ENEMYTEMP_OPTIMUM
	int		max_enemytempid =0;
	char	token[256];
#endif
    f = fopen(filename,"r");
    if( f == NULL ){
        print( "文件打開失敗\n");
        return FALSE;
    }

    ENEMYTEMP_enemynum=0;

    /*  引內(nèi)  躲卅墊互窒墊丐月井升丹井譬屯月    */
    while( fgets( line, sizeof( line ), f ) ){
        linenum ++;
        if( line[0] == '#' )continue;        /* comment */
        if( line[0] == '\n' )continue;       /* none    */
        chomp( line );

#ifdef _ENEMYTEMP_OPTIMUM // Robin 取出最大ENEMYTEMP ID
		if( getStringFromIndexWithDelim( line, ",", E_T_DATACHARNUM+E_T_TEMPNO+1,
				token, sizeof(token)) == FALSE )
			continue;
		max_enemytempid = max( atoi( token), max_enemytempid);
#endif

        ENEMYTEMP_enemynum++;
    }

    if( fseek( f, 0, SEEK_SET ) == -1 ){
        fprint( "Seek Error\n" );
        fclose(f);
        return FALSE;
    }

#ifdef _ENEMYTEMP_OPTIMUM
	print("\n 有效EBT:%d 最大EBT:%d \n", ENEMYTEMP_enemynum, max_enemytempid);
	ENEMYTEMP_enemynum = max_enemytempid +1;
#endif

    ENEMYTEMP_enemy = allocateMemory( sizeof(struct tagENEMYTEMP_Table)
                                   * ENEMYTEMP_enemynum );
    if( ENEMYTEMP_enemy == NULL ){
        fprint( "無法分配內(nèi)存 %d\n" ,
                sizeof(struct tagENEMYTEMP_Table)*ENEMYTEMP_enemynum);
        fclose( f );
        return FALSE;
    }

	/* 賡渝祭 */
    for( i = 0; i < ENEMYTEMP_enemynum; i ++ ) {
    	for( j = 0; j < E_T_DATAINTNUM; j ++ ) {
    		ENEMYTEMP_setInt( i,j,-1);
    	}
    }
    linenum = 0;
    while( fgets( line, sizeof( line ), f ) ){
        linenum ++;
        if( line[0] == '#' )continue;        /* comment */
        if( line[0] == '\n' )continue;       /* none    */
        chomp( line );
        replaceString( line, '\t' , ' ' );
{
        char    buf[256];
        for( i = 0; i < strlen( line); i ++) {
            if( line[i] != ' ' ) {
                break;
            }
            strcpy( buf, &line[i]);
        }
        if( i != 0 ) {
            strcpy( line, buf);
        }
}
{
        char    token[256];
        int     ret;

#ifdef _ENEMYTEMP_OPTIMUM
		if( getStringFromIndexWithDelim( line, ",", E_T_DATACHARNUM+E_T_TEMPNO+1,
				token, sizeof(token)) == FALSE )
			continue;
		enemytemp_readlen = atoi(token);
#endif

#if 0
        ret = getStringFromIndexWithDelim( line,",",1,token,
                                           sizeof(token));
        if( ret==FALSE ){
            fprint("文件語法錯(cuò)誤:%s 第%行\(zhòng)n",filename,linenum);
            continue;
        }
        ENEMYTEMP_setChar( enemytemp_readlen, E_T_NAME, token);
#endif
		for( i = 0; i < E_T_DATACHARNUM; i ++ ) {
	        ret = getStringFromIndexWithDelim( line,",",i+1,token,
	                                           sizeof(token));
	        if( ret==FALSE ){
	            fprint("文件語法錯(cuò)誤:%s 第%d行\(zhòng)n",filename,linenum);
	            continue;
	        }
	        ENEMYTEMP_setChar( enemytemp_readlen, E_T_NAME + i, token);

		}
#define	ENEMYTEMP_STARTINTNUM		(E_T_DATACHARNUM+1)
        for( i = ENEMYTEMP_STARTINTNUM; i < E_T_DATAINTNUM+ENEMYTEMP_STARTINTNUM; i ++ ) {
            ret = getStringFromIndexWithDelim( line,",",i,token,
                                               sizeof(token));
            if( ret==FALSE ){
                fprint("文件語法錯(cuò)誤:%s 第%d行\(zhòng)n",filename,linenum);
                break;
            }
            if( strlen( token) != 0 ) {
	            ENEMYTEMP_setInt( enemytemp_readlen, i - ENEMYTEMP_STARTINTNUM, atoi( token));
			}
        }
        if( i < E_T_DATAINTNUM+ENEMYTEMP_STARTINTNUM ) continue;


        enemytemp_readlen ++;
}
    }
    fclose(f);

    ENEMYTEMP_enemynum = enemytemp_readlen;

    print( "有效寵物基本狀態(tài)數(shù)是 %d...", ENEMYTEMP_enemynum );

#if 0

    for( i=0; i <ENEMYTEMP_enemynum ; i++ ){
        for( j = 0; j < E_T_DATACHARNUM; j ++ ) {
	        print( "%s ", ENEMYTEMP_getChar( i, j));
        }
        for( j = 0; j < E_T_DATAINTNUM; j ++ ) {
            print( "%d ", ENEMYTEMP_getInt( i, j));
        }
        print( "\n");
    }
#endif
    return TRUE;
}

BOOL ENEMYTEMP_reinitEnemy( void )
{
	freeMemory( ENEMYTEMP_enemy);
	return( ENEMYTEMP_initEnemy( getEnemyBasefile()));
}

int ENEMYTEMP_getEnemyTempArray( int enemyindex)
{
	if( !ENEMY_CHECKINDEX( enemyindex)) return -1;
	return ENEMY_enemy[enemyindex].enemytemparray;
}

int ENEMYTEMP_getEnemyTempArrayFromTempNo( int EnemyTempNo)
{
#ifdef _ENEMYTEMP_OPTIMUM
	if( EnemyTempNo >= 0 && EnemyTempNo < ENEMYTEMP_enemynum )
		return	EnemyTempNo;
#else
	int		i;
	for( i = 0; i < ENEMYTEMP_enemynum; i ++ ) {
		if( ENEMYTEMP_getInt( i, E_T_TEMPNO) == EnemyTempNo) {
			return i;
		}
	}
#endif
	return -1;
}

int ENEMYTEMP_getEnemyTempArrayFromInitnum( int EnemyTempNo)
{
	int		i;
	for( i = 0; i < ENEMYTEMP_enemynum; i ++ ) {
		if( ENEMYTEMP_getInt( i, E_T_INITNUM) == EnemyTempNo) {
			return i;
		}
	}
	return -1;
}

BOOL ENEMY_initEnemy( char* filename )
{
    FILE*   f;
    char    line[256];
    int     linenum=0;
    int     enemy_readlen=0;
	int		i,j;
#ifdef _ENEMY_OPTIMUM
	int		max_enemyid =0;
	char	token[256];
#endif

    f = fopen(filename,"r");

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费在线观看不卡| 成人免费视频视频在线观看免费| 日韩欧美成人一区二区| 99精品欧美一区二区蜜桃免费| 丝袜国产日韩另类美女| 亚洲国产精品成人综合| 欧美一区二区啪啪| 色综合色狠狠天天综合色| 韩国三级电影一区二区| 亚洲第一在线综合网站| 国产精品白丝在线| 精品国产一二三区| 欧美日韩精品福利| 色婷婷综合五月| 丁香婷婷综合激情五月色| 免费成人小视频| 五月婷婷激情综合| 亚洲综合在线电影| 国产精品传媒入口麻豆| 精品国产乱码久久久久久图片| 在线精品观看国产| 99久久伊人精品| 国产精品一区二区在线观看网站| 日韩电影在线一区| 亚洲国产成人av网| 亚洲精品视频免费看| 中文字幕精品一区二区精品绿巨人| 日韩欧美自拍偷拍| 日韩一区二区中文字幕| 欧美一区二区三区四区久久| 在线欧美日韩国产| 91麻豆国产在线观看| 成人爱爱电影网址| caoporm超碰国产精品| 国产成人综合精品三级| 美女精品自拍一二三四| 日本伊人午夜精品| 蜜臀av一区二区| 美女性感视频久久| 男女激情视频一区| 久久精品国内一区二区三区| 秋霞午夜鲁丝一区二区老狼| 蜜桃av噜噜一区| 美腿丝袜在线亚洲一区| 美国十次综合导航| 久久精品国产免费看久久精品| 天堂久久久久va久久久久| 亚洲香蕉伊在人在线观| 亚洲图片欧美色图| 天堂蜜桃一区二区三区| 毛片不卡一区二区| 国内精品国产三级国产a久久| 国产一区二区三区久久悠悠色av| 韩国中文字幕2020精品| 国产传媒日韩欧美成人| av在线这里只有精品| 色成人在线视频| 欧美日韩一区二区电影| 欧美一级二级在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | aaa欧美大片| 日韩精品一区二区三区swag| 国产成人8x视频一区二区| 国内精品写真在线观看| 久久99热这里只有精品| 国内精品伊人久久久久影院对白| 国产成人精品1024| 99久久久久免费精品国产| 欧美性色aⅴ视频一区日韩精品| 欧美日韩综合色| 精品国产乱码久久久久久牛牛| 欧美精品一区二区在线播放| 中文字幕国产一区二区| 一区二区三区日本| 免费高清成人在线| 成人黄色免费短视频| 欧美另类videos死尸| 久久综合久久综合久久综合| 国产精品免费视频观看| 亚洲一区二区三区四区在线观看 | 国产电影精品久久禁18| 91免费视频大全| 欧美一级专区免费大片| 亚洲国产成人在线| 亚洲一区二区在线观看视频 | 在线观看一区不卡| 26uuuu精品一区二区| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产欧美在线| 成人污污视频在线观看| 欧美另类videos死尸| 国产精品私人影院| 日本午夜一本久久久综合| 国产成人精品亚洲日本在线桃色| 91久久精品一区二区| 26uuu成人网一区二区三区| 亚洲一区二区欧美日韩| 国产传媒久久文化传媒| 91精品国产福利| 亚洲人成人一区二区在线观看| 久久99精品视频| 欧美日韩中文字幕一区二区| 欧美国产欧美综合| 蜜臀久久99精品久久久画质超高清| 91美女福利视频| 久久综合精品国产一区二区三区| 亚洲一区二区三区四区的 | 久久99久久精品| 在线一区二区观看| 亚洲国产精品精华液2区45| 日韩在线a电影| 色综合中文字幕| 国产精品日产欧美久久久久| 免费观看一级欧美片| 欧美色涩在线第一页| 中文文精品字幕一区二区| 蜜臀久久99精品久久久久宅男| 欧美亚洲一区二区三区四区| 中文字幕一区日韩精品欧美| 久久99精品久久久久久国产越南| 欧美日韩高清在线| 一级精品视频在线观看宜春院| 国产99久久久精品| 欧美r级电影在线观看| 人人精品人人爱| 在线成人免费视频| 亚洲成年人影院| 欧美日韩国产高清一区二区三区 | www国产精品av| 免费观看30秒视频久久| 欧美精品乱码久久久久久按摩| 亚洲视频免费在线观看| 成人高清伦理免费影院在线观看| 久久蜜桃av一区精品变态类天堂 | 成人黄色电影在线| 中文在线资源观看网站视频免费不卡 | 日韩欧美精品三级| 日本不卡视频在线| 精品国产三级电影在线观看| 美国毛片一区二区| xfplay精品久久| 国产福利不卡视频| 欧美激情一区在线观看| 成人不卡免费av| 亚洲裸体xxx| 欧美天堂一区二区三区| 午夜精品久久久久久久久久 | 26uuu国产电影一区二区| 国产一区美女在线| 久久精品一区二区三区四区| 国产高清亚洲一区| 国产精品久久久爽爽爽麻豆色哟哟| 成人免费视频app| 亚洲免费看黄网站| 7878成人国产在线观看| 久久疯狂做爰流白浆xx| 久久久青草青青国产亚洲免观| 成人性生交大片免费看中文| 亚洲色图制服诱惑 | 懂色av一区二区三区免费观看| 欧美国产日产图区| 在线观看网站黄不卡| 日韩国产在线观看一区| 日韩欧美不卡在线观看视频| 国产传媒日韩欧美成人| 亚洲伦理在线精品| 日韩精品一区二区三区四区| 国产成人精品网址| 亚洲综合一二三区| 欧美不卡123| av电影在线不卡| 亚洲国产另类精品专区| 日韩丝袜情趣美女图片| 国产传媒日韩欧美成人| 一区二区三区小说| 日韩免费看的电影| 91丝袜美女网| 青青草国产成人99久久| 日本一区免费视频| 欧美日韩另类国产亚洲欧美一级| 久久成人免费网站| 国产精品二区一区二区aⅴ污介绍| 欧美少妇一区二区| 国产suv一区二区三区88区| 亚洲综合免费观看高清完整版| 2023国产精品自拍| 色屁屁一区二区| 久久精品国产精品亚洲精品| 亚洲人成伊人成综合网小说| 欧美岛国在线观看| 91福利视频在线| 国产精品一区二区免费不卡| 亚洲成人激情av| 国产精品日韩精品欧美在线| 日韩欧美黄色影院| 欧美性猛交xxxx黑人交| 高清在线不卡av| 日本不卡一二三| 亚洲在线视频免费观看| 国产精品网站在线播放|