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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? char_data.c.bak

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? BAK
?? 第 1 頁 / 共 4 頁
字號:
            ret = getStringFromIndexWithDelim( line, " ", 1, token, sizeof(token));
            if( ret==FALSE ){
                fprint("Syntax Error file:%s line:%d\n",filename,linenum);
                continue;
            }else{
                static struct CHAR_charareakindtbl
                {
                    char*   idstring;
                    CHAR_AREAKIND   kind;
                }CHAR_areakindtbl[]={
                    {"INV",  CHAR_INVAREA,},
                    {"ITM",  CHAR_CANNOTDROPAREA,},
                    {"MAG",  CHAR_CANNOTMAGICAREA,},
                };
                int i;
                for( i=0 ; i<arraysizeof(CHAR_areakindtbl) ; i++ )
                    if( strcmp( token,CHAR_areakindtbl[i].idstring )==0 ){
                        kind = CHAR_areakindtbl[i].kind;
                        break;
                    }
                if( kind == -1 ){
                    print( "\n資料范圍問題: %d...",linenum );
                    continue;
                }
            }

            CHAR_invarea[invreadlen].kind = kind;
            ret = getStringFromIndexWithDelim( line, " ", 2, token, sizeof(token));
            if( ret==FALSE ){
                fprint("哪件秩序錯誤:%s 第%d行\n",filename,linenum);
                continue;
            }else
                CHAR_invarea[invreadlen].floor = atoi( token );

            ret = getStringFromIndexWithDelim( line, " ", 3, token, sizeof(token));
            if( ret ==FALSE){
                fprint("文件秩序錯誤:%s 第%d行:%d\n", filename, linenum);
                continue;
            }else
                getFourIntsFromString( token,&lx,&ly,&rx,&ry );

            if( lx > rx )swap(lx,rx);
            if( ly > ry )swap(ly,ry);

            CHAR_invarea[invreadlen].area.x = lx;
            CHAR_invarea[invreadlen].area.y = ly;
            CHAR_invarea[invreadlen].area.width = rx-lx;
            CHAR_invarea[invreadlen].area.height= ry-ly;
            invreadlen ++;
        }
    }
    fclose(f);
    CHAR_invareanum = invreadlen;
    print( "有效不可戰斗有效數是 %d...", CHAR_invareanum );
#if 0
{
	int		i,j;
    for( i=0; i <CHAR_invareanum ; i++ ) {
		if( CHAR_invarea[i].kind == CHAR_CANNOTMAGICAREA ) {
            print( "fl[%d](%d,%d)-(%d,%d)\n",
               CHAR_invarea[i].floor,
               CHAR_invarea[i].area.x,CHAR_invarea[i].area.y,
               CHAR_invarea[i].area.width,
               CHAR_invarea[i].area.height );
			for( j = 0; j < sizeof( CHAR_invarea[i].work); j ++ ) {
				if( CHAR_invarea[i].work[j] == -1 )break;
				print( "mag[%d] ", CHAR_invarea[i].work[j]);
			}
			print( "\n");
		}
	}
}
#endif
#ifdef DEBUG
    {
        int i;
        for( i=0; i <CHAR_invareanum ; i++ )
            print( "kind(%d) %d(%d,%d)-(%d,%d)\n",
                   CHAR_invarea[i].kind,
                   CHAR_invarea[i].floor,
                   CHAR_invarea[i].area.x,CHAR_invarea[i].area.y,
                   CHAR_invarea[i].area.width,
                   CHAR_invarea[i].area.height );
    }
#endif /*DEBUG*/

    return TRUE;
}

BOOL CHAR_isInvincibleArea( int floor , int x, int y )
{
    int     i;
    for( i=0 ; i<CHAR_invareanum ; i++ )
        if( CHAR_invarea[i].kind == CHAR_INVAREA
            && CHAR_invarea[i].floor == floor
            && CoordinateInRect( &CHAR_invarea[i].area,x,y ) )
            return TRUE;
    return FALSE;
}

BOOL CHAR_isCannotMagicArea( int floor , int x, int y, int magicnum )
{
    int     i;
    for( i=0 ; i<CHAR_invareanum ; i++ ) {
        if( CHAR_invarea[i].kind == CHAR_CANNOTMAGICAREA
            && CHAR_invarea[i].floor == floor
            && CoordinateInRect( &CHAR_invarea[i].area,x,y ) )
        {
            int     j;
            for( j = 0;
                j < sizeof(CHAR_invarea[i].work) &&
                CHAR_invarea[i].work[j] != -1;
                j ++ )
            {
                if( CHAR_invarea[i].work[j] == magicnum ) {
                    return TRUE;
                }
            }
        }
    }
    return FALSE;
}

typedef struct tagCHAR_appearposition
{
    int     floor;
    int     x,y;
}CHAR_appearposition;
CHAR_appearposition*    CHAR_appear;
int                     CHAR_appearnum;

BOOL CHAR_initAppearPosition( char* filename )
{
    FILE*   f;
    char    line[256];
    int     linenum=0;
    int     appearreadlen=0;

    f = fopen(filename,"r");
    if( f == NULL ){
        errorprint;
        return FALSE;
    }

    CHAR_appearnum=0;
    while( fgets( line, sizeof( line ), f ) ){
        linenum ++;
        if( line[0] == '#' )continue;        /* comment */
        if( line[0] == '\n' )continue;       /* none    */
        chomp( line );

        CHAR_appearnum++;
    }

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

    CHAR_appear = allocateMemory( sizeof(CHAR_appearposition)
                                   * CHAR_appearnum );
    if( CHAR_appear == NULL ){
        fprint( "Can't allocate Memory %d\n" ,
                sizeof(CHAR_appearposition)*CHAR_appearnum);
        fclose( f );
        return FALSE;
    }
{
    int     i;
    for( i = 0; i < CHAR_appearnum; i ++ ) {
        CHAR_appear[i].floor = 0;
        CHAR_appear[i].x = 0;
        CHAR_appear[i].y = 0;

    }
}
    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' , ' ' );
        deleteSequentChar( line, " " );
        if( line[0] == ' ' )continue;

        {
            char    token[256];
            int     ret;

            /*  夫午勾戶及玄□弁件毛葦月    */
            ret = getStringFromIndexWithDelim( line," ",1,token,
                                               sizeof(token));
            if( ret==FALSE ){
                fprint("Syntax Error file:%s line:%d\n",filename,linenum);
                continue;
            }
            CHAR_appear[appearreadlen].floor = atoi(token);
            ret = getStringFromIndexWithDelim( line," ",2,token,
                                               sizeof(token));
            if( ret==FALSE ){
                fprint("Syntax Error file:%s line:%d\n",filename,linenum);
                continue;
            }

            CHAR_appear[appearreadlen].x = atoi( token );

            ret = getStringFromIndexWithDelim( line," ",3,token,
                                               sizeof(token));
            if( ret ==FALSE){
                fprint("Syntax Error file:%s line:%d\n",filename,linenum);
                continue;
            }

            CHAR_appear[appearreadlen].y = atoi( token );

            appearreadlen ++;
        }
    }
    fclose(f);

    CHAR_appearnum = appearreadlen;

    print( "有效顯示位置范圍數是 %d..", CHAR_appearnum );
#ifdef DEBUG

    {
        int i;
        for( i=0; i <CHAR_appearnum ; i++ )
            print( "Appear fl[%d] x[%d] y[%d]\n",
                   CHAR_appear[i].floor,
                   CHAR_appear[i].x,
                   CHAR_appear[i].y );
    }
#endif
    return TRUE;
}

BOOL CHAR_isAppearPosition( int floor, int *x, int *y)
{
    int i;
    for( i = 0; i < CHAR_appearnum; i ++ ) {
        if( CHAR_appear[i].floor == floor ) {
            *x = CHAR_appear[i].x;
            *y = CHAR_appear[i].y;
            return( TRUE);
        }
    }
    return( FALSE);
}

BOOL CHAR_isCannotDropArea( int floor , int x, int y )
{
    int     i;
    for( i=0 ; i<CHAR_invareanum ; i++ )
        if( CHAR_invarea[i].kind == CHAR_CANNOTDROPAREA
            && CHAR_invarea[i].floor == floor
            && CoordinateInRect( &CHAR_invarea[i].area,x,y ) )
            return TRUE;
    return FALSE;
}

typedef struct tagEldersPosition
{
    int     floor;
    int     x;
    int     y;
}EldersPosition;

#define MAXELDERS 128
static EldersPosition elders[MAXELDERS]=
{
    { 1006,15,22 },
    { 2006,20,16 },
	{ 3006,21,16 },
    { 4006,14,20 },
	{ 7770, 9,10 },
#ifdef _DELBORNPLACE //Syu ADD 6.0 統一出生於新手村
//	{  815,42,34 },
#endif

};

BOOL CHAR_getInitElderPosition( Char* ch,int hometown)
{
    int     index = 0;
	int		point;
#ifdef _DELBORNPLACE //Syu ADD 6.0 統一出生於新手村
	if( getMuseum() )
		index = hometown;
#else
    if( hometown < 0 || hometown > 3 ) {
    	return FALSE;
    }
	index=hometown;
#endif
    if( index >= arraysizeof( elders ) ){
 		return FALSE;
    }

    ch->data[CHAR_FLOOR] = elders[index].floor;
    ch->data[CHAR_X] = elders[index].x;
    ch->data[CHAR_Y] = elders[index].y;
	ch->data[CHAR_LASTTALKELDER] = index;
	point = ch->data[CHAR_SAVEPOINT];


#ifdef _DELBORNPLACE //Syu ADD 6.0 統一出生於新手村
	if( getMuseum() ) {
		ch->data[CHAR_FLOOR] = 815;
		ch->data[CHAR_X] = 29;
		ch->data[CHAR_Y] = 40;
		ch->data[CHAR_LASTTALKELDER] = 35;
		// point = point |  (1<<35) ;
		point = point |  (1<<hometown) ;
	}
	else {
		point = point |  (1<<hometown) ;
	}
#else
	point = point |  (1<<hometown) ;
#endif

#ifdef _MUSEUM
	if( getMuseum() ) {
		ch->data[CHAR_FLOOR] = 9000;
		ch->data[CHAR_X] = 40;
		ch->data[CHAR_Y] = 40;
	}
#endif

	ch->data[CHAR_SAVEPOINT] = point;

	if( MAP_checkCoordinates( ch->data[CHAR_FLOOR], ch->data[CHAR_X],
									ch->data[CHAR_Y] ) == FALSE ){
		return FALSE;
	}

    return TRUE;
}

/*------------------------------------------------------------
 * 巨伙母□及樺赭毛  月
 * 婁醒
 *  elderindex      int     巨伙母□奶件犯永弁旦
 *  fl              int*    白夫失毛熬仃潸月樺赭
 *  x               int*    x毛熬仃潸月樺赭
 *  y               int*    y毛熬仃潸月樺赭
 * 婁醒
 *  岳    TRUE(1)
 *  撩    FALSE(0)
 ------------------------------------------------------------*/
BOOL CHAR_getElderPosition( int elderindex, int* fl, int* x, int* y )
{
	    if( elderindex<0 || arraysizeof(elders)<=elderindex )return FALSE;

    *fl = elders[elderindex].floor;
    *x  = elders[elderindex].x;
    *y  = elders[elderindex].y;
    return TRUE;
}
/*------------------------------------------------------------
 * 贏  NPC互憤坌及賡渝祭及午五卞}贏    卞踏五仇戈及分[
 * 公及兇戶及奶件正□白尼奶旦
 * 婁醒
 *  index   int 左□田□匹 撩  仄兇日FALSE 毛井尹允
 *  fl      int 匏  及樹  
 *  x       int
 *  y       int
 * NPC及伙□民件井日銀歹木月及分[
 ------------------------------------------------------------*/
BOOL CHAR_ElderSetPosition( int elderindex ,int fl,int x ,int y)
{
    if( elderindex < ELDERINDEXSTART ||
        elderindex >= MAXELDERS ){
        return FALSE;
    }

    elders[elderindex].floor = fl;
    elders[elderindex].x = x;
    elders[elderindex].y = y;
    return TRUE;
}


void CHAR_setInitValues( Char* ch )
{

#ifndef _PROFESSION_SKILL			// WON ADD 人物職業技能

    static int CHAR_titleindextbl[] ={ 0,1,2,3,4,5,6 };
    int     elderindex;
    int     i;
    BOOL    magician=FALSE;
    BOOL    priest=FALSE;

    elderindex = ch->data[CHAR_LASTTALKELDER];
    if( 0 <= elderindex
        && elderindex < arraysizeof( CHAR_titleindextbl ) )
        ch->indexOfHaveTitle[0] = CHAR_titleindextbl[elderindex];


    for( i=0 ; i<CHAR_SKILLMAXHAVE ; i++ ){
        static struct addIteTbl
        {
            int itemid[2];
        }additemtbl[SKILL_NUM] = {
            {   {  17, -1}   },
            {   {  -1, -1}   },
            {   {  -1, -1}   },
            {   {  17, -1}   },
            {   {  17, -1}   },
            {   {  17, -1}   },
            {   {  17, -1}   },
            {   {  17, -1}   },
            {   {  17, -1}   },
            {   {  17, -1}   },
            {   {  -1, -1}   }, 
            {   {  17, -1}   },
            {   { 601, -1}   },
            {   { 101, -1}   },
            {   { 201, -1}   },
            {   { 300, -1}   },
            {   { 400, -1}   },
            {   { 501, -1}   },
            {   {  17, -1}   },
        };

        if( ch->haveSkill[i].use ){
            int     j;
            int     skindex=ch->haveSkill[i].skill.data[SKILL_IDENTITY];

            for( j=0 ; j<arraysizeof( additemtbl[0].itemid ); j++ )
                CHAR_addItemToChar( ch, additemtbl[skindex].itemid[j] );

            if( skindex == SKILL_MERCHANT )
                ch->data[CHAR_GOLD] = 20;

            if( skindex == SKILL_MAGICIAN )
                magician = TRUE;
            else if( skindex == SKILL_PRIEST )
                priest = TRUE;

        }
    }

    if( magician || priest ) CHAR_addItemToChar( ch, 802 );

#endif
}


#if 1
static int EnemyExpTbl[]={
0,			//  0
2,			//  1
4,			//  2
6,			//  3
8,			//  4
10,			//  5
12,			//  6
14,			//  7
16,			//  8
18,			//  9
20,			// 10
26,			// 11
32,			// 12
38,			// 13
44,			// 14
50,			// 15
60,			// 16
70,			// 17
80,			// 18
90,			// 19
100,		// 20
115,		// 21
130,		// 22
145,		// 23

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产电影| 亚洲欧美偷拍三级| 中文字幕亚洲综合久久菠萝蜜| 国产亚洲成aⅴ人片在线观看| 久久久久久久久一| 中文字幕在线一区二区三区| 一区二区成人在线视频| 日韩影院精彩在线| 国产永久精品大片wwwapp| 99精品热视频| 欧美一级日韩免费不卡| 久久久久久久综合日本| 一区二区三区四区国产精品| 91豆麻精品91久久久久久| 欧美成人aa大片| 久久久亚洲精品一区二区三区| 欧美国产精品中文字幕| 天天色 色综合| 国产成人免费视频网站 | 精品国产1区二区| 亚洲欧美自拍偷拍色图| 日本va欧美va精品发布| eeuss鲁片一区二区三区在线看| 色狠狠桃花综合| 国产亚洲欧美色| 蜜臀av一级做a爰片久久| 91片黄在线观看| 久久美女高清视频| 蜜臀av一区二区三区| 91福利视频网站| 日韩美女视频一区二区| 国产曰批免费观看久久久| 欧美日韩在线不卡| 一区二区三区免费在线观看| 不卡在线视频中文字幕| 久久久久久久久久久电影| 奇米精品一区二区三区四区 | aaa亚洲精品| 久久―日本道色综合久久| 日本成人在线网站| 制服丝袜av成人在线看| 亚洲成人av电影在线| 欧美视频在线观看一区| 亚洲影院理伦片| 日本道色综合久久| 亚洲欧美激情视频在线观看一区二区三区 | 成人免费看黄yyy456| 欧美激情一区三区| 成人动漫视频在线| 亚洲欧美日韩一区二区三区在线观看| 国产不卡免费视频| 亚洲视频综合在线| 在线精品国精品国产尤物884a| 亚洲激情欧美激情| 91精品国产一区二区三区香蕉| 视频一区视频二区中文字幕| 欧美一区二区三区在线观看视频 | 国产精品毛片久久久久久久| www.欧美精品一二区| 亚洲最大的成人av| 日韩视频永久免费| 99久久综合99久久综合网站| 伊人夜夜躁av伊人久久| 日韩欧美一区二区久久婷婷| 波多野结衣在线aⅴ中文字幕不卡| 有码一区二区三区| 精品国一区二区三区| 成人精品一区二区三区四区| 亚洲影视在线播放| 国产日韩av一区| 欧美日韩高清一区| 亚洲精品伦理在线| 欧美色中文字幕| 免费观看一级特黄欧美大片| 国产日韩欧美麻豆| 69堂精品视频| 色婷婷狠狠综合| 国产精品一二三四| 秋霞午夜鲁丝一区二区老狼| 亚洲欧美在线观看| 日韩欧美一二三| 91.com视频| 欧美日韩国产综合一区二区| 成人av电影在线网| 国产高清精品久久久久| 美女被吸乳得到大胸91| 天天做天天摸天天爽国产一区| 国产精品理论片在线观看| 精品99999| 精品国产凹凸成av人网站| 在线不卡中文字幕播放| 色丁香久综合在线久综合在线观看| 国产精品一区二区久激情瑜伽| 天堂久久一区二区三区| 亚洲成人你懂的| 亚洲五码中文字幕| 亚洲最色的网站| 亚洲国产另类av| 五月激情综合婷婷| 麻豆国产精品一区二区三区| 日韩福利电影在线观看| 蜜臀久久99精品久久久画质超高清 | 一区二区在线观看视频| 一区二区在线看| 日韩精品欧美精品| 狠狠色狠狠色综合| 国产成人啪午夜精品网站男同| 国产激情一区二区三区四区| 懂色av一区二区三区蜜臀| 白白色亚洲国产精品| 在线观看国产91| 5566中文字幕一区二区电影| 精品欧美久久久| 日本一区二区三级电影在线观看| 最新热久久免费视频| 亚洲午夜久久久久| 国产一区二区电影| 99精品国产热久久91蜜凸| 欧美久久久久久蜜桃| 久久综合av免费| 亚洲免费高清视频在线| 奇米色777欧美一区二区| 成人免费看视频| 欧美一二三四在线| 国产精品免费视频一区| 日韩精品每日更新| 91丨九色丨国产丨porny| 制服丝袜av成人在线看| 一区二区中文字幕在线| 久久精品噜噜噜成人88aⅴ| 日本久久一区二区| 久久免费的精品国产v∧| 亚洲成人动漫一区| 色又黄又爽网站www久久| 精品久久久久香蕉网| 午夜在线电影亚洲一区| 成人免费高清在线| 国产午夜精品福利| 久久99精品久久久| 欧美二区三区的天堂| 一区二区三区中文字幕电影| 国产成人在线视频免费播放| 欧美日韩精品一区二区三区| 亚洲欧洲在线观看av| 日韩西西人体444www| 国产盗摄一区二区| 欧美系列在线观看| 亚洲精品福利视频网站| 成人av在线观| 中文字幕中文字幕中文字幕亚洲无线| 精品一区二区三区影院在线午夜| 欧美在线你懂得| 亚洲国产精品人人做人人爽| 日本道免费精品一区二区三区| 亚洲天堂免费看| 色偷偷久久一区二区三区| 一区二区激情小说| 这里只有精品99re| 免费一级欧美片在线观看| 日韩欧美国产wwwww| 国产精品一品二品| 综合自拍亚洲综合图不卡区| 一本一本久久a久久精品综合麻豆| 国产精品久久久久久久蜜臀| 91啪亚洲精品| 奇米影视7777精品一区二区| 久久久久久久久久久黄色| 北条麻妃国产九九精品视频| 一区二区视频在线看| 欧美二区在线观看| 成人午夜在线免费| 亚洲免费高清视频在线| 欧美电影在线免费观看| 国内精品不卡在线| 亚洲精选在线视频| 26uuu亚洲婷婷狠狠天堂| 9久草视频在线视频精品| 性做久久久久久| 欧美激情一区二区三区| 欧美无砖专区一中文字| 国产麻豆成人精品| 日韩综合小视频| 成人欧美一区二区三区1314| 正在播放亚洲一区| 在线精品视频免费播放| 粉嫩欧美一区二区三区高清影视| 亚洲成年人影院| 亚洲日本护士毛茸茸| 久久婷婷成人综合色| 欧美人牲a欧美精品| 暴力调教一区二区三区| 国产精品一区二区视频| 免费三级欧美电影| 一区二区三区日本| 国产精品对白交换视频| 国产欧美一区二区精品婷婷| 精品裸体舞一区二区三区| 这里只有精品免费| 欧美日韩免费一区二区三区视频 | 99re视频精品|