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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? object.c

?? 最新主流石器時(shí)代源代碼,包含諸多目前流行功能代碼.
?? C
字號(hào):
#include "version.h"#include <sys/stat.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <dirent.h>#include "common.h"#include "object.h"#include "char_base.h"#include "char.h"#include "item.h"#include "buf.h"#include "readmap.h"#include "pet.h"static Object *obj;static int objnum;#ifndef _SIMPLIFY_ITEMSTRINGstatic int Restored = FALSE;#endifBOOL initObjectArray( int num ){    int     i;    objnum = num;    obj = allocateMemory( sizeof( Object ) * objnum );    if( obj == NULL ) return FALSE;    for( i = 0 ; i < objnum ; i ++ ){        memset( &obj[i], 0 , sizeof( Object ));        obj[i].type = OBJTYPE_NOUSE;    }    return TRUE;}BOOL endObjectArray( void ){    freeMemory( obj );    return TRUE;}INLINE int _initObjectOne( char *file, int line, Object* ob ){    static int allocobjnum = 0;    int i;    BOOL    first;    i = allocobjnum;    first = TRUE;    while( 1 ) {        if( !first && i >= allocobjnum ) {            fprint( "Can't allocate an object\n" );            return -1;        }        if( obj[i].type == OBJTYPE_NOUSE ) {            if( MAP_addNewObj( ob->floor ,ob->x, ob->y, i ) == 1 ){                memcpy( &obj[i] , ob , sizeof( Object ) );                allocobjnum = ( i+1 >= objnum) ? 0:i+1;                return i;            }else{                allocobjnum = ( i+1 >= objnum) ? 0:i+1;                fprint( "MAP_addNewObj error\n" );                return -1;            }        }else {            if( ++i >= objnum ) {                i = 0;                first = FALSE;            }        }    }    fprint( "Can't allocate an object\n" );    return -1;}void endObjectOne( int index ){    if(objnum <= index || index < 0 )return;    if( MAP_removeObj(obj[index].floor,obj[index].x, obj[index].y,                      index) == FALSE){        //fprint( "REMOVE OBJ ERROR  floor:%d  x:%d  y:%d\n",obj[index].floor,obj[index].x, obj[index].y );    }    obj[index].type = OBJTYPE_NOUSE;}BOOL CHECKOBJECT( int index ){    if( 0<=index && index<objnum )return TRUE;    return FALSE;}BOOL CHECKOBJECTUSE( int index ){    if( CHECKOBJECT(index) == FALSE )return FALSE;    if( obj[index].type == OBJTYPE_NOUSE )return FALSE;    return TRUE;}INLINE int OBJECT_getType( int index ){    return obj[index].type;}#ifdef _NPCSERVER_NEWINLINE int OBJECT_getNpcIndex( int index ){    return obj[index].npcsindex;}INLINE char* OBJECT_getName( int index ){    return obj[index].objname;}//imagenumINLINE int OBJECT_getNpcImage( int index ){    return obj[index].imagenum;}INLINE int OBJECT_getNpcdir( int index ){    return obj[index].dir;}#endifINLINE int OBJECT_getchartype( int index ){    return obj[index].chartype;}INLINE void OBJECT_setchartype( int index, int flg){    obj[index].chartype = flg;}INLINE int OBJECT_setType( int index, int newvalue ){    int     old;    old = obj[index].type;    obj[index].type = newvalue;    return old;}INLINE int OBJECT_getFloor( int index ){    return obj[index].floor;}INLINE int OBJECT_setFloor( int index, int newvalue ){    int     old;    old = obj[index].floor;    obj[index].floor = newvalue;    return old;}INLINE int OBJECT_getX( int index ){    return obj[index].x;}INLINE int OBJECT_setX( int index, int newvalue ){    int     old;    old = obj[index].x;    obj[index].x = newvalue;    return old;}INLINE int OBJECT_getY( int index ){    return obj[index].y;}INLINE int OBJECT_setY( int index, int newvalue ){    int     old;    old = obj[index].y;    obj[index].y = newvalue;    return old;}#ifdef _DEL_DROP_GOLDINLINE int OBJECT_getTime( int index ){    return obj[index].time;}INLINE int OBJECT_setTime( int index, int newvalue ){    int     old;    old = obj[index].time;    obj[index].time = newvalue;    return old;}#endif/*------------------------------------------------------------ * index 毛  月 * 婁醒 *  index      int     奶件犯永弁旦 * 忒曰襖 *  int ------------------------------------------------------------*/INLINE int OBJECT_getIndex( int index ){    return obj[index].index;}/*------------------------------------------------------------ * y 毛澀爛允月 * 婁醒 *  index      int     奶件犯永弁旦 *  newvalue    int     蕙仄中襖 * 忒曰襖 *  int 檣及襖 ------------------------------------------------------------*/INLINE int OBJECT_setIndex( int index, int newvalue ){    int     old;    old = obj[index].index;    obj[index].index = newvalue;    return old;}/*------------------------------------------------------------ * 左皮斥尼弁玄及    醒毛菲戶(hù)月 * 婁醒 *  卅仄 * 忒曰襖 *  int ------------------------------------------------------------*/INLINE int OBJECT_getNum( void ){    return objnum;}/*------------------------------------------------------------ *  左皮斥尼弁玄厭瞻  及丟件田毛蟈  婁醒卞  勻化 *  左皮斥尼弁玄厭瞻  毛綜曰請(qǐng)仄化}瓚  允月[ * * 婁醒 *  type    OBJTYPE     左皮斥尼弁玄及正奶皿 *  index   int         公木冗木及    匹及index *  x       int         x甄   *  y       int         y甄   *  floor   int         floorid * 忒曰襖 *   int  喃曰癲化木兇index, 撩  及凜反} -1 ------------------------------------------------------------*/int initObjectFromObjectMember(    OBJTYPE type, int index, int x, int y , int floor ){    Object  obj;    obj.type = type;    obj.index = index;    obj.x = x;    obj.y = y;    obj.floor = floor;    return initObjectOne( &obj );}int searchObjectFromCharaIndex( int index ){    int i;    for( i = 0 ; i < objnum ; i ++ )        if( obj[i].type == OBJTYPE_CHARA && obj[i].index == index )            return i;    return -1;}#define ITEMGOLDSTOREFILENAME   "itemgold"#define STOREITEMID         "ITEM"#define STOREGOLDID         "GOLD"#define	STORECHARID			"CHAR"#ifndef _SIMPLIFY_ITEMSTRINGstatic BOOL checkObjectStoreFile( char* line, Object* one, char** stringstart){    char    token[16];    int     ret;    int     i;    ret = getStringFromIndexWithDelim(line,"|" ,1 , token, sizeof( token ) );    if( ret == FALSE )return FALSE;    if( strcmp( token , STOREITEMID ) == 0 )        one->type = OBJTYPE_ITEM;    else if( strcmp( token , STOREGOLDID ) == 0 )        one->type = OBJTYPE_GOLD;	else if( strcmp( token, STORECHARID) == 0 )		one->type = OBJTYPE_CHARA;    for(  i = 2 ; i < 5 ; i ++ ){        char    first[64];        char    second[64];        ret = getStringFromIndexWithDelim(line,"|" ,i,                                          token,sizeof( token ));        if( ret == FALSE )return FALSE;        ret = getStringFromIndexWithDelim(token,"=" ,1, first,sizeof( first ));        if( ret == FALSE )return FALSE;        ret = getStringFromIndexWithDelim(token,"=" ,2, second,sizeof( second ));        if( ret == FALSE )return FALSE;        if( strcmp( first , "x" ) == 0 )            one->x = atoi( second );        else if( strcmp( first , "y" ) == 0 )            one->y = atoi( second );        else if( strcmp( first , "floor" ) == 0 )            one->floor = atoi( second );    }    {        char*   findex = nindex( line , '|' , 4);        *stringstart = findex + 1;    }    return TRUE;}BOOL storeObjects( char* dirname ){    int i;    FILE*   igfile;    char    igfilename[256];		if( Restored == TRUE ){    	snprintf( igfilename ,sizeof( igfilename ) ,"%s/%s" ,dirname ,              ITEMGOLDSTOREFILENAME );	}else{    	snprintf( igfilename ,sizeof( igfilename ) ,"%s/%s_extra" ,dirname ,              ITEMGOLDSTOREFILENAME );                print( "\n---- Saving didn't do  with gmsv. ----- \n");                print( "---- It is because gmsv stopped before reading . ----- \n");                print( "---- It is kept with a name of (%s) just in case. ----- \n", igfilename );	}    igfile = fopen( igfilename , "w" );    if( igfile == NULL ){        print( "\n\n---- ERR:can not open (%s) for backup items. ----- \n\n", igfilename );    	return FALSE;    }    print( "Store Objects ...");    for( i = 0 ; i < objnum ; i ++ ){        switch( obj[i].type ){        case OBJTYPE_ITEM:        {            fprintf( igfile , STOREITEMID "|x=%d|y=%d|floor=%d|%s\n" ,                     obj[i].x , obj[i].y ,obj[i].floor,                     ITEM_makeStringFromItemIndex( obj[i].index,0 ) );            break;        }        case OBJTYPE_GOLD:        {            fprintf( igfile , STOREGOLDID  "|x=%d|y=%d|floor=%d|%d\n" ,                     obj[i].x , obj[i].y ,obj[i].floor, obj[i].index );            break;        }        case OBJTYPE_CHARA:        {        	int	petindex = obj[i].index;        	if( CHAR_CHECKINDEX( petindex) ) {	        	if( CHAR_getInt( obj[i].index, CHAR_WHICHTYPE) == CHAR_TYPEPET){		            fprintf( igfile , STORECHARID "|x=%d|y=%d|floor=%d|%s\n" ,		                     obj[i].x , obj[i].y ,obj[i].floor,		                     CHAR_makePetStringFromPetIndex( obj[i].index ) );				}        	}        	break;        }        default:            break;        }    }    fclose( igfile );    print( "done\n");system( "./itemda.pl" );    print( "item backup end\n");    return TRUE;}#endifint detectStoreFile( char*  filename ){    FILE*   f;    char    buffer[10];    f = fopen ( filename ,"r" );    if( f == NULL )return 3;    if( fgets( buffer, sizeof( buffer ),  f ) == NULL ){        fclose(f);        return 3;    }    if( strncmp(buffer,STOREITEMID,sizeof(STOREITEMID) ) == 0 ||        strncmp(buffer,STOREGOLDID,sizeof(STOREGOLDID) ) == 0   ){        fclose(f);        return 2;    }    fclose(f);    return 3;}#ifndef _SIMPLIFY_ITEMSTRINGBOOL restoreObjects( char* dirname ){    char    igfilename[512];    FILE*   file;    char    line[2048];    snprintf( igfilename, sizeof(igfilename), "%s/%s", dirname, ITEMGOLDSTOREFILENAME );    file = fopen( igfilename , "r" );    if( file == NULL ){		Restored = TRUE;    	return FALSE;    }    while(  fgets( line, sizeof( line ), file ) != NULL ){        Object  one;        char    *string;        chomp( line );        if( checkObjectStoreFile( line, &one ,&string ) == FALSE )            continue;        switch( one.type ){        case OBJTYPE_ITEM:        {            ITEM_Item   itmone;            BOOL ret;            int     objindex;            ret = ITEM_makeExistItemsFromStringToArg( string, &itmone, 0 );            if( ret == TRUE ){                one.index = ITEM_initExistItemsOne( &itmone );                if( one.index == -1 )   break;                objindex = initObjectOne( &one );                ITEM_setWorkInt(one.index,ITEM_WORKCHARAINDEX,-1);                ITEM_setWorkInt(one.index,ITEM_WORKOBJINDEX,objindex);            }            break;        }        case OBJTYPE_GOLD:            one.index = atoi( string );            initObjectOne( &one );            break;		case OBJTYPE_CHARA:		{			Char	ch;			int		ret;			ret = CHAR_makePetFromStringToArg(string,&ch, -1);			if( ret ) {			    Object object;			    int objindex;		        int petindex = PET_initCharOneArray( &ch );		        if( petindex < 0 ) {		        	print( "寵物制作失敗。\n");		        }			    object.type = OBJTYPE_CHARA;			    object.index = petindex;			    object.x = ch.data[CHAR_X];			    object.y = ch.data[CHAR_Y];			    object.floor = ch.data[CHAR_FLOOR];			    objindex = initObjectOne( &object );				if( objindex == -1 ) {	                CHAR_endCharOneArray( petindex );				}else {				    CHAR_setWorkInt( petindex,CHAR_WORKOBJINDEX,objindex );				}			}			break;        }        default:            break;        }    }    fclose( file );	Restored = TRUE;    return TRUE;}#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区视频在线播放| 久久精品av麻豆的观看方式| 日韩亚洲欧美一区| 国产成人免费视频网站高清观看视频 | 欧美日韩一级二级三级| 国精品**一区二区三区在线蜜桃| 亚洲欧美一区二区三区极速播放| 欧美一区二区三区四区五区| 色屁屁一区二区| 粉嫩绯色av一区二区在线观看| 亚洲大片免费看| 中文字幕一区在线观看| 久久欧美一区二区| 欧美大片一区二区三区| 日韩欧美另类在线| 日韩美女在线视频| 欧美一区中文字幕| 欧美福利视频一区| 精品视频免费看| 色狠狠一区二区| 91福利资源站| 欧美日韩dvd在线观看| 欧美视频一区二区| 色综合天天性综合| 91视频.com| 在线亚洲一区二区| 欧美在线一区二区三区| 欧洲一区二区三区在线| 欧美另类变人与禽xxxxx| 日韩一区二区在线看| 精品国产免费视频| 日本一区二区三区四区| 亚洲日本在线视频观看| 一区二区三区不卡视频| 国产一区二区三区美女| 欧美日韩免费一区二区三区视频| 精品国产凹凸成av人网站| 日韩精品一区二区三区在线观看| 9191国产精品| 久久久精品天堂| 一区二区三区小说| 美女被吸乳得到大胸91| 国产成人av在线影院| 欧美图片一区二区三区| 日韩欧美激情一区| 国产精品免费aⅴ片在线观看| 91精品国产欧美日韩| 国产网红主播福利一区二区| 亚洲日本成人在线观看| 日韩高清不卡一区| 色婷婷亚洲精品| 日本一区二区在线不卡| 日韩电影在线观看网站| 91在线免费播放| 精品成人私密视频| 亚洲午夜一二三区视频| 国产91丝袜在线播放| 成人午夜在线免费| 在线免费观看不卡av| 日韩精品自拍偷拍| 亚洲欧美一区二区三区孕妇| 蜜臀av一区二区| 欧美日韩电影一区| 国产精品久久久久7777按摩 | 久久精品亚洲精品国产欧美kt∨| 日本美女一区二区| 中文字幕在线免费不卡| 极品销魂美女一区二区三区| 在线播放中文一区| 亚洲小说欧美激情另类| 成人毛片在线观看| 欧美一二三区精品| 久久99精品久久久久| 久久精品欧美日韩| 国产精品99久久久久久似苏梦涵| 日韩女优视频免费观看| 蜜臀久久99精品久久久久久9| 精品国产一区久久| 狠狠久久亚洲欧美| 国产嫩草影院久久久久| 国产成人亚洲综合a∨婷婷图片| 久久综合久久鬼色中文字| 香蕉av福利精品导航| 日韩欧美自拍偷拍| 国产在线国偷精品产拍免费yy | 国内精品伊人久久久久av影院| 中文字幕高清不卡| 91极品视觉盛宴| 香蕉乱码成人久久天堂爱免费| 欧美日韩在线免费视频| 另类小说一区二区三区| 国产精品乱人伦| 欧美丝袜自拍制服另类| 热久久免费视频| 亚洲激情自拍视频| 精品久久国产字幕高潮| 成人av电影在线观看| 午夜视频一区在线观看| 久久久久亚洲综合| 色综合一个色综合亚洲| 国产在线精品免费| 亚洲一区国产视频| 久久综合九色欧美综合狠狠| 欧美在线观看一二区| 国产精品亚洲人在线观看| 日韩电影免费在线观看网站| 一区二区三区四区视频精品免费 | 日韩精品中文字幕一区| jvid福利写真一区二区三区| 亚洲一区二区三区国产| 综合中文字幕亚洲| 精品国产91久久久久久久妲己| 欧美日韩国产综合一区二区| 91美女视频网站| 欧洲激情一区二区| 亚洲国产视频网站| 国内久久精品视频| 亚洲丶国产丶欧美一区二区三区| 国产婷婷色一区二区三区四区 | 欧美日本在线播放| 欧美福利视频一区| 在线观看免费一区| 精品国产一区二区三区久久影院 | 一区二区三区欧美视频| 国产精品久久久久久久久久久免费看| 日韩免费一区二区三区在线播放| 99久久亚洲一区二区三区青草| 成人午夜视频在线观看| 免费高清不卡av| 亚洲综合久久久| 亚洲免费资源在线播放| 中文字幕在线一区| 最新日韩在线视频| 日韩一区二区三区免费看 | 日韩电影免费在线| 日韩av不卡一区二区| 日韩黄色小视频| 国产一区二三区好的| 99精品在线观看视频| 欧美日韩国产一二三| 精品久久一二三区| 国产欧美综合在线观看第十页 | 99re这里只有精品6| 色欧美日韩亚洲| 欧美一级欧美一级在线播放| 欧洲精品一区二区| 精品福利一区二区三区免费视频| 久久综合色播五月| 亚洲国产精品成人综合| 亚洲精选视频在线| 久久狠狠亚洲综合| 成人综合在线观看| 欧美大片日本大片免费观看| 久久久久国产精品人| 午夜不卡av免费| 色呦呦国产精品| 国产精品三级在线观看| 亚洲超丰满肉感bbw| 在线观看网站黄不卡| 国产精品久久久久久亚洲伦| 国产盗摄精品一区二区三区在线| 欧美一级一级性生活免费录像| 亚洲r级在线视频| 91精品国产高清一区二区三区蜜臀| 午夜久久福利影院| 国产精品亚洲综合一区在线观看| 欧美性生交片4| 亚洲三级小视频| 成人久久18免费网站麻豆| 日韩欧美一二三四区| 午夜视黄欧洲亚洲| 成人高清av在线| 中文字幕乱码亚洲精品一区| 激情欧美一区二区| 911精品国产一区二区在线| 国产欧美视频在线观看| 国产麻豆精品视频| 欧美不卡视频一区| 日韩av网站免费在线| 91精品国产综合久久香蕉的特点 | 337p亚洲精品色噜噜噜| 亚洲欧美视频一区| 麻豆精品在线视频| 欧美第一区第二区| 精品一区二区免费看| 中文字幕一区av| 欧美日韩国产美女| 久久超级碰视频| 日韩欧美电影一二三| 99热这里都是精品| 一区二区三区在线观看网站| 7777精品伊人久久久大香线蕉 | 国产一区日韩二区欧美三区| 中文字幕免费不卡| 99久久99久久久精品齐齐| 亚洲欧美视频一区| 欧美一区二区福利在线| 国产91精品精华液一区二区三区| 中文一区二区在线观看| 在线观看国产日韩|