⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configfile.c

📁 石器时代8.0服务端完整源代码。可以直接编译
💻 C
📖 第 1 页 / 共 5 页
字号:
        break;    case DOUBLE:        *(double*)to = (double)value;        break;    }}/*------------------------------------------------------------ * 涩烂白央奶伙毛  戈 * 娄醒 *      filename            白央奶伙   * 忒曰袄 *      TRUE(1)     岳   *      FALSE(0)    撩      -> 白央奶伙及左□皿件卞撩  仄凶 ------------------------------------------------------------*/BOOL readconfigfile( char* filename ){    FILE* f=NULL;    char linebuf[256];                  /* 域垫  心  戈田永白央 */    int linenum=0;                      /* 垫醒毛醒尹月 */    char    realopenfilename[256];      /*    端卞open 允月白央奶伙  */    char    hostname[128];    /*  石旦玄  毛菲户月    */    if( gethostname( hostname, sizeof(hostname) ) != -1 ){        char*   initdot;        initdot = index( hostname, '.' );        if( initdot != NULL )            *initdot = '\0';        snprintf( realopenfilename, sizeof(realopenfilename),                  "%s.%s" , filename, hostname);        /* 白央奶伙及左□皿件 */        f=fopen( realopenfilename, "r" );        if( f == NULL )            print( "Can't open %s.  use %s instead\n", realopenfilename,                   filename );    }    if( f == NULL ){        f=fopen( filename , "r" );          /* 白央奶伙及左□皿件 */        if( f == NULL ){            print( "Can't open %s\n", filename );            return FALSE;        }    }    /* 域垫勿勾  心  戈 */    while( fgets( linebuf , sizeof( linebuf ), f ) ){        char firstToken[256];       /*1    及  侬  */        int i;                      /*伙□皿  醒*/        int ret;                    /*伉正□件戊□玉*/        linenum ++;        deleteWhiteSpace(linebuf);          /* remove whitespace    */        if( linebuf[0] == '#' )continue;        /* comment */        if( linebuf[0] == '\n' )continue;       /* none    */        chomp( linebuf );                    /* remove tail newline  */        /* delim "=" 匹  赓(1)及玄□弁件毛  月*/        ret = getStringFromIndexWithDelim( linebuf , "=",  1, firstToken,                                           sizeof(firstToken) );        if( ret == FALSE ){            print( "Find error at %s in line %d. Ignore\n",                     filename , linenum);            continue;        }        /* readconf 及扔奶术匹伙□皿 */        for( i = 0 ; i < arraysizeof( readconf ) ; i ++ ){            if( strcmp( readconf[i].name ,firstToken ) == 0 ){                /* match */                char secondToken[256];      /*2    及  侬  */                /* delim "=" 匹2    及玄□弁件毛  月*/                ret = getStringFromIndexWithDelim( linebuf , "=" , 2                                                   , secondToken ,                                                   sizeof(secondToken) );                /* NULL  侬井升丹井毛譬屯月 */                if( ret == FALSE ){                    print( "Find error at %s in line %d. Ignore",                           filename , linenum);                    break;                }                /*NULL分匀凶日医  仄卅中*/                if( readconf[i].charvalue != NULL )                    strcpysafe( readconf[i].charvalue                                ,readconf[i].charsize, secondToken);                /*NULL分匀凶日医  仄卅中*/                if( readconf[i].value != NULL ) {                    if( strcmp( "ON" ,secondToken ) == 0 ) {                        /*ON分匀凶日1毛  木月*/                        substitutePointerFromType( readconf[i].value,                                                   readconf[i].valuetype,                                                   1.0);                    }else if( strcmp( "OFF" ,secondToken ) == 0 ) {                        /*OFF分匀凶日1毛  木月*/                        substitutePointerFromType( readconf[i].value,                                                   readconf[i].valuetype,                                                   1.0);                    }else {                        strtolchecknum(secondToken,                                       (int*)readconf[i].value,                                       10, readconf[i].valuetype);					}				}                break;            }        }    }    fclose( f );    lastConfig();    return TRUE;}//ttom add this becaus the second had this function /*------------------------------------------------------------ * 巨件戊□玉平□毛涩烂允月 * 娄醒 *  卅仄 * 忒曰袄 *  unsigned int 平□毛忒允------------------------------------------------------------*/unsigned int setEncodeKey( void ){   JENCODE_KEY = config.encodekey;   return JENCODE_KEY;}/*------------------------------------------------------------* 失市它件玄扔□田□卞踏五  戈田永白央及扔奶术毛涩烂允月* 娄醒*  卅仄* 忒曰袄*  unsigned int 平□毛忒允------------------------------------------------------------*/unsigned int setAcWBSize( void ){    AC_WBSIZE = config.acwbsize;    return AC_WBSIZE;}unsigned int getAcwriteSize( void ){    return config.acwritesize;}unsigned int getErrUserDownFlg( void ){    return config.ErrUserDownFlg;}        //tom end#ifdef _M_SERVERchar* getmservername(void){	return config.msname;}void setmservername( char *msname){	sprintf( config.msname, "%s", msname);}unsigned int getmserverport(void){	return config.msport;}void setmserverport( int port){	config.msport = port;}#endif#ifdef _NPCSERVER_NEWchar *getnpcserveraddr(void){	return config.nsaddress;}unsigned int getnpcserverport(void){	return config.nsport;}void NS_setAddressAndPort( char *address, int nport){	sprintf( config.nsaddress, "%s", address);	config.nsport = nport;}#endif#ifdef _MUSEUMint   getMuseum( void ){    return config.museum;}#endif#ifdef _DEL_DROP_GOLDunsigned int getGolddeletetime( void ){    if( config.Golddeletetime > 0 )		return config.Golddeletetime;	else		return config.Itemdeletetime;}void setIGolddeletetime( unsigned int interval ){	config.Golddeletetime = interval;}#endif#ifdef _NEW_PLAYER_CFint getNewplayertrans( void ){  if(config.newplayertrans > 7)		return 7;	else if(config.newplayertrans >= 0)		return config.newplayertrans;	else		return 0;}int getNewplayerlv( void ){  if(config.newplayerlv > 160)		return 160;	else if(config.newplayerlv >0)		return config.newplayerlv;	else		return 0;}int getNewplayerpetlv( void ){  if(config.newplayerpetlv > 160)		return 160;	else if(config.newplayerpetlv > 0)		return config.newplayerpetlv;	else		return 0;}int getNewplayergivepet( unsigned int index ){  if(config.newplayergivepet[index] > 0 )		return config.newplayergivepet[index];	else		return -1;}int getNewplayergiveitem( unsigned int index ){  if(config.newplayergiveitem[index] > 0 )		return config.newplayergiveitem[index];	else		return -1;}void setNewplayergivepet( unsigned int index ,unsigned int interval){	config.newplayergivepet[index] = interval;}unsigned int getNewplayergivegold( void ){  if(config.newplayergivegold > 1000000)		return 1000000;	else if(config.newplayergivegold >= 0)		return config.newplayergivegold;	else		return 0;}#endif#ifdef _UNLAW_WARP_FLOORint getUnlawwarpfloor( unsigned int index ){  if(config.unlawwarpfloor[index] > 0 )		return config.unlawwarpfloor[index];	else		return -1;}#endif#ifdef _ANGEL_SUMMONextern int mission_num;BOOL LoadMissionList( ){	FILE* fp;	int i = 0;	mission_num = 0;	fp = fopen("./data/mission.txt", "r");	if (fp == NULL)	{		print("任务文件打开错误\n");		return FALSE;	}		memset( missionlist, 0, sizeof(missionlist));	while(1){		char	line[1024], level[64];		char	token[1024];		int		mindex;		if (fgets(line, sizeof(line), fp) == NULL)	break;		print("\n %s ", line);		chop(line);		// 以#为注解*******		if( line[0] == '#' )			continue;		for( i=0; i<strlen(line); i++ ){            if( line[i] == '#' ){			    line[i] = '\0';		        break;			}		}		//*************************************		//格式 #任务编号,必要等级,任务说明,奖品ID,限制时间(小时)				getStringFromIndexWithDelim(line, ",", 1, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		mindex = atoi( token);		if( mindex <= 0 || mindex >= MAXMISSION) 			break;		missionlist[mindex].id = mindex;		getStringFromIndexWithDelim(line, ",", 2, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		missionlist[mindex].level = atoi( token);		getStringFromIndexWithDelim(line, ",", 3, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		strcpy( missionlist[mindex].eventflag, token);		getStringFromIndexWithDelim(line, ",", 4, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		strcpy( missionlist[mindex].detail, token);		//getStringFromIndexWithDelim(line, ",", 4, token, sizeof(token));		//if (strcmp(token, "") == 0)	break;		//strcpy( missionlist[mindex].bonus, token);		getStringFromIndexWithDelim(line, ",", 5, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		missionlist[mindex].limittime = atoi( token);		/*print("\nMISSION[%d] lv:%d ef:%s detail:%s limit:%d ", mindex,			missionlist[mindex].level, missionlist[mindex].eventflag,			missionlist[mindex].detail, missionlist[mindex].limittime );		*/		mission_num++;		//if (mission_num > MAXMISSION)	break;	}	fclose(fp);	return TRUE;}BOOL LoadMissionCleanList( ){	// 格式... 使者,勇者,任务,奖赏	FILE* fp;	int	listindex =0;	int i = 0;	memset( missiontable, 0, sizeof(missiontable));	fp = fopen("./data/missionclean.txt", "r");	if (fp == NULL)	{		print("清除任务文件打开错误\n");		return FALSE;	}	while(1){		char	line[1024], angelinfo[128], heroinfo[128];		char	token[1024];				if (fgets(line, sizeof(line), fp) == NULL)	break;		print("\n %s ", line);		chop(line);		// 以#为注解*******		if( line[0] == '#' )			continue;		for( i=0; i<strlen(line); i++ ){            if( line[i] == '#' ){			    line[i] = '\0';		        break;			}		}				getStringFromIndexWithDelim(line, ",", 1, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		strcpy( missiontable[listindex].angelinfo, token);		getStringFromIndexWithDelim(line, ",", 2, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		strcpy( missiontable[listindex].heroinfo, token);		getStringFromIndexWithDelim(line, ",", 3, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		missiontable[listindex].mission = atoi( token);				getStringFromIndexWithDelim(line, ",", 4, token, sizeof(token));		//if (strcmp(token, "") == 0)	break;		missiontable[listindex].flag = atoi( token);		getStringFromIndexWithDelim(line, ",", 5, token, sizeof(token));		if (strcmp(token, "") == 0)	break;		missiontable[listindex].time = atoi( token);		print("\nMISSIONCLEAN[%d] %s %s %d %d %d", listindex,			missiontable[listindex].angelinfo,			missiontable[listindex].heroinfo,			missiontable[listindex].mission,			missiontable[listindex].flag,			missiontable[listindex].time );		listindex++;		if ( listindex >= MAXMISSIONTABLE)	break;	}	fclose(fp);	return TRUE;}#endif#ifdef _JOBDAILYextern  DailyFileType dailyfile[MAXDAILYLIST];BOOL LoadJobdailyfile(void){	char	line[20000];	char	token[16384];	int		listindex =0;	int     i;	FILE* fp;	fp = fopen("./data/jobdaily.txt", "r");	if (fp == NULL)	{		print("日常工作文件打开错误\n");		return FALSE;	}	memset( dailyfile, 0, sizeof(dailyfile));	while(1){				line[0]='\0';			if (fgets(line, sizeof(line), fp) == NULL)	break;		//print("\n %s ", line);		chop(line);		// #为注解		if( 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -