📄 configfile.c
字号:
/* */
snprintf(entry,sizeof(entry), "%s/%s",config.topdir,config.storechar);
strcpysafe(config.storechar, sizeof(config.storechar), entry);
#endif
}
/*
* 禾奶件正□午赝濠卅滇树 毛 匀化医 毛允月楮醒
* 娄醒
* to void* 袄毛医 允月禾奶件正
* type CTYPE to及滇毛瑁户月
* value double to卞医 允月袄
* 忒曰袄
* 卅仄
*/
void substitutePointerFromType( void* to , CTYPE type ,double value)
{
switch( type ){
case CHAR:
*(char*)to = (char)value;
break;
case SHORT:
*(short*)to = (short)value;
break;
case INT:
*(int*)to = (int)value;
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;
}
#ifdef _DEL_DROP_GOLD
unsigned 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_CF
int 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;
}
int getNewplayergivegold( void )
{
if(config.newplayergivegold > 1000000)
return 1000000;
else if(config.newplayergivegold < 0)
return 0;
else
return config.newplayergivegold;
}
int getRidePetLevel( void )
{
if(config.ridepetlevel > 0 )
return config.ridepetlevel;
else
return -1;
}
#ifdef _VIP_SERVER
int getNewplayergivevip( void )
{
return config.newplayerpetvip < 0?0:config.newplayerpetvip;
}
#endif
#endif
#ifdef _UNLAW_WARP_FLOOR
int getUnlawwarpfloor( unsigned int index )
{
if(config.unlawwarpfloor[index] > 0 )
return config.unlawwarpfloor[index];
else
return -1;
}
#endif
#ifdef _WATCH_FLOOR
int getWatchFloor( unsigned int index )
{
if(config.watchfloor[index] > 0 )
return config.watchfloor[index];
else
return -1;
}
char* getWatchFloorCF( void )
{
return (config.watchfloor[0]>0)? "是":"否";
}
#endif
#ifdef _BATTLE_FLOOR
int getBattleFloor( unsigned int index )
{
if(config.battlefloor[index] > 0 )
return config.battlefloor[index];
else
return -1;
}
char* getBattleFloorCF( void )
{
return (config.battlefloor[0]>0)? "是":"否";
}
#endif
#ifdef _USER_EXP_CF
char* getEXPfile( void )
{
return config.expfile;
}
#endif
#ifdef _UNREG_NEMA
char* getUnregname( int index )
{
return config.unregname[index];
}
#endif
#ifdef _TRANS_LEVEL_CF
int getChartrans( void )
{
if(config.chartrans>6)
config.chartrans=6;
return config.chartrans;
}
int getPettrans( void )
{
if(config.pettrans>2)
return 2;
else if(config.pettrans<-1)
return -1;
return config.pettrans;
}
int getYBLevel( void )
{
if(config.yblevel>config.maxlevel)
config.yblevel=config.maxlevel;
return config.yblevel;
}
int getMaxLevel( void )
{
return config.maxlevel;
}
#endif
#ifdef _POINT
char* getPoint( void )
{
return (config.point>0)? "是":"否";
}
int getTransPoint( int index )
{
return config.transpoint[index];
}
#endif
#ifdef _PET_UP
char* getPetup( void )
{
return (config.petup>0)? "是":"否";
}
#endif
#ifdef _LOOP_ANNOUNCE
char* getLoopAnnouncePath( void )
{
return config.loopannouncepath;
}
int loadLoopAnnounce( void )
{
FILE* fp;
int i = 0;
config.loopannouncemax=0;
fp = fopen(config.loopannouncepath, "r");
if (fp == NULL)
{
print("无法打开文件\n");
return FALSE;
}
while(1){
char line[1024];
if (fgets(line, sizeof(line), fp) == NULL) break;
chop(line);
if( line[0] == '#' )
continue;
for( i=0; i<10; i++ ){
if( line[i] == '#' ){
line[i] = '\0';
break;
}
}
//*************************************
strcpy(config.loopannounce[config.loopannouncemax],line);
config.loopannouncemax++;
}
fclose(fp);
return TRUE;
}
int getLoopAnnounceTime( void )
{
return (config.loopannouncetime<0)?-1:config.loopannouncetime;
}
int getLoopAnnounceMax( void )
{
return (config.loopannouncemax>0)?config.loopannouncemax:0;
}
char* getLoopAnnounce( int index )
{
return config.loopannounce[index];
}
#endif
#ifdef _SKILLUPPOINT_CF
int getSkup( void )
{
return (config.skup>0)?config.skup:0;
}
#endif
#ifdef _RIDELEVEL
int getRideLevel( void )
{
return config.ridelevel;
}
#endif
#ifdef _REVLEVEL
char* getRevLevel( void )
{
return (config.revlevel>0)?"是":"否";
}
#endif
#ifdef _NEW_PLAYER_RIDE
char* getPlayerRide( void )
{
if(config.npride>2)
return "配套送虎加雷";
else if(config.npride==2)
return "配套送雷";
else if(config.npride==1)
return "配套送虎";
else
return "不送配套骑
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -