Example #1
0
BOOL NPC_WarpManInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE - 1024 * 20];
	char buff2[256];
	char buf[1024];
	int fl,x,y;
		
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("WarpMan:GetArgStrErr");
		return FALSE;
	}
   	CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPEWARPMAN );
#ifdef _NEW_WARPMAN
	if( strstr( npcarg,"NEWWARPMAN") )      {
			//timeman 功能
			CHAR_setWorkInt( meindex, NPC_TIME_MODE, 1);
			if(NPC_Util_GetStrFromStrWithDelim( npcarg, "NEWTIME", buff2, sizeof( buff2)) != NULL ){
				CHAR_setInt( meindex, CHAR_LOOPINTERVAL, 60*1000);
			}
#ifdef _TREASURE_BOX
			CHAR_setWorkInt( meindex, NPC_TIME_EVENTMODE, NPC_EVENTMODE_NONE);
			if(NPC_Util_GetStrFromStrWithDelim( npcarg, "TREASURE_BOX", buff2, sizeof( buff2)) != NULL ){
				if( strstr( buff2, "ON") != NULL ){
					CHAR_setWorkInt( meindex, NPC_TIME_EVENTMODE, NPC_EVENTMODE_EVENT);
					CHAR_setWorkInt( meindex, NPC_TIME_EVENTTIME, NowTime.tv_sec);
					if(NPC_Util_GetStrFromStrWithDelim( npcarg, "TREASURE_ONBBI", buff2, sizeof( buff2)) != NULL )
						CHAR_setWorkInt( meindex, NPC_TIME_EVENONBBI, atoi( buff2));
					if(NPC_Util_GetStrFromStrWithDelim( npcarg, "TREASURE_OFFDBBI", buff2, sizeof( buff2)) != NULL )
						CHAR_setWorkInt( meindex, NPC_TIME_EVENOFFDBBI, atoi( buff2));
					CHAR_setWorkInt( meindex, NPC_TIME_EVENTNUM, 0 );
				}
			}

#endif
			return TRUE;
	}else{
#endif
		if(NPC_Util_GetStrFromStrWithDelim( npcarg, "WARP", buf, sizeof( buf))==NULL){
			char filename[256];
			 if( NPC_Util_CheckAssignArgFile( meindex, filename) != NULL )
				 print("\n Warpman Err -> file:%s", filename);
			return FALSE;
		}
		getStringFromIndexWithDelim(buf,",",1,buff2,sizeof(buff2));
		fl=atoi(buff2);
		getStringFromIndexWithDelim(buf,",",2,buff2,sizeof(buff2));
		x=atoi(buff2);
		getStringFromIndexWithDelim(buf,",",3,buff2,sizeof(buff2));
		y=atoi(buff2);
		if( MAP_IsValidCoordinate( fl,x,y )== FALSE ){
			char filename[256];
			NPC_Util_CheckAssignArgFile( meindex, filename);
			print( "\nWarp NPC: filename:%s\n 3.Invalid warpman ERR %d %d %d" , filename, fl , x , y );
			return FALSE;
		}
#ifdef _NEW_WARPMAN
	}
#endif
	return TRUE;
}
BOOL NPC_PetSkillShopInit( int meindex )
{
	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char msg[256];

    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPESTONESHOP );
	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("GetArgStrErr");
		return FALSE;
	}
	if( NPC_Util_GetStrFromStrWithDelim( argstr, "pet_skill", msg, sizeof( msg)) != NULL){
		char buf[256], filename[256];
		int k=1, skillID, skillarray;
		while( getStringFromIndexWithDelim( msg, ",", k, buf, sizeof( buf) ) ){
			k++;
			skillID=atoi(buf);
			skillarray = PETSKILL_getPetskillArray( skillID);
			if( PETSKILL_CHECKINDEX( skillarray) == FALSE ) continue;
			if( PETSKILL_getInt( skillarray, PETSKILL_ILLEGAL) == 1){
				if( NPC_Util_CheckAssignArgFile( meindex, filename) != NULL ){
					print("PetSkillShop illegal skill:[%d-%s] ->file:%s",
						skillID,
						PETSKILL_getChar( skillarray, PETSKILL_NAME),
						filename );
				}
			}
		}
	}else{
		return FALSE;
	}

    return TRUE;
}
BOOL NPC_FreePetSkillShopInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char msg[256];
    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_FREESKILLSHOP );
	CHAR_setWorkInt( meindex, CHAR_WORK_SKILLSELECT, 0);

	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("GetArgStrErr NO arg !!");
		return FALSE;
	}

	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "pet_skill", msg, sizeof( msg)) != NULL){
		char buf[256], filename[256];
		int k=1, skillID, skillarray;
		while( getStringFromIndexWithDelim( msg, ",", k, buf, sizeof( buf) ) ){
			k++;
			skillID=atoi(buf);
			skillarray = PETSKILL_getPetskillArray( skillID);
			if( PETSKILL_CHECKINDEX( skillarray) == FALSE ) continue;
			if( PETSKILL_getInt( skillarray, PETSKILL_ILLEGAL) == 1){
				if( NPC_Util_CheckAssignArgFile( meindex, filename) != NULL ){
						print("\n宠物技能不规范:[%d-%s] ->文件:%s\n",
						skillID,
						PETSKILL_getChar( skillarray, PETSKILL_NAME),
						filename );
				}
			}
		}
	}else{
		return FALSE;
	}

    return TRUE;
}
Example #4
0
char *NPC_Util_GetArgStr(int index, char *argstr, int len)
{
	char filename[128];
	char *cret = NULL;
	if (NPC_Util_CheckAssignArgFile(index, filename) != NULL) {
		if (NPC_Util_MargeStrFromArgFile(filename, argstr, len) != NULL) {
			cret = argstr;
		}
	} else {
		if (CHAR_getChar(index, CHAR_NPCARGUMENT) != NULL) {
			strcpy(argstr, CHAR_getChar(index, CHAR_NPCARGUMENT));
			cret = argstr;
		} else {
			cret = NULL;
		}
	}
	if (cret == NULL)
		print("File:%s\n",
		      NPC_Util_CheckAssignArgFile(index, filename));

	return (cret);
}
Example #5
0
void Check_EnemyWarpMe( int meindex, char *args )
{

	char buf1[256];
	int objindex,index;
	int nfl, nx, ny;
	OBJECT obj;

	memset( buf1, 0, sizeof( buf1));
	if( NPC_Util_GetStrFromStrWithDelim( args, "REPLACEMENT", buf1, sizeof( buf1)) == NULL ) {
		return;
	}
	GetRand_WarpPoint( buf1, &nfl, &nx, &ny );

	if( MAP_IsValidCoordinate( nfl, nx, ny ) == FALSE ){
		char filename[256];
		NPC_Util_CheckAssignArgFile( meindex, filename);
		print( "NPCENEMY REPLACEMENT: %s .Invalid POINT( %d, %d, %d)\n", filename, nfl, nx, ny );
		return;
	}
	{
		int ofl, ox, oy;
		ofl = CHAR_getInt( meindex, CHAR_FLOOR );
		ox = CHAR_getInt( meindex, CHAR_X );
		oy = CHAR_getInt( meindex, CHAR_Y );

		for ( obj=MAP_getTopObj( nfl, nx, ny); obj; obj=NEXT_OBJECT( obj) ) {
			objindex = GET_OBJINDEX( obj);
			if (OBJECT_getType( objindex) != OBJTYPE_CHARA) continue;
			index = OBJECT_getIndex( objindex);
			if( CHAR_getInt( index, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER &&
				CHAR_getWorkInt( index, CHAR_WORKEVENTTYPE) != CHAR_TYPEPET )	{
				CHAR_warpToSpecificPoint( index, ofl, ox, oy);
				CHAR_sendCToArroundCharacter( objindex);
				break;
			}
		}
	}
	objindex = CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX);
	CHAR_warpToSpecificPoint( meindex, nfl, nx, ny);
	CHAR_sendCToArroundCharacter( objindex);
}
Example #6
0
BOOL NPC_NPCEnemyInit( int meindex )
{
	char	argstr1[NPC_UTIL_GETARGSTR_BUFSIZE];
	char *argstr;
	char	buf[64];
	int		tmp, gym;


	if((argstr = NPC_Util_GetArgStr( meindex, argstr1, sizeof( argstr1))) == NULL )	{
		print("Can't GetArgStr !!");
		return FALSE;
	}
	if( NPC_Util_GetStrFromStrWithDelim( argstr, "sktype", buf, sizeof( buf)) != NULL ){
		CHAR_setWorkInt( meindex, CHAR_WORK_BATTLETYPE, atoi( buf));
	}else{
		CHAR_setWorkInt( meindex, CHAR_WORK_BATTLETYPE, 0);
	}

	if( NPC_Util_GetStrFromStrWithDelim( argstr, "enemyno", buf, sizeof( buf)) == NULL ){
		char filename[256];
		NPC_Util_CheckAssignArgFile( meindex, filename);
		print( "NPCEnemy: nothing parameter [enemyno]:\n%s\n", filename);
		return FALSE;
	}else {
		int		i;
		for( i = 0; i < NPC_ENEMY_ENEMYNUMBER; i ++ ) {
			int		curEnemy;
			char	data[128];
			int		ret;
			ret = getStringFromIndexWithDelim( buf,",", i + 1, data, sizeof(data));
			if( ret == FALSE)
				break;
			curEnemy = ENEMY_getEnemyArrayFromId( atoi( data));
			if( !ENEMY_CHECKINDEX( curEnemy) ) {
				char filename[256];
				NPC_Util_CheckAssignArgFile( meindex, filename);
				print( "NPCEnemy: invalid param [enemyno:%d data:%s curEnemy:%d]\nfile:%s\n",i+1, data, curEnemy, filename );
				return FALSE;
			}
		}
	}
	
	if( NPC_Util_GetStrFromStrWithDelim( argstr, "steal", buf, sizeof( buf)) != NULL ) {
		if( NPC_Util_GetStrFromStrWithDelim( argstr, "item", buf, sizeof( buf)) == NULL ) {
			print( "NPCEnemy:有指定steal而沒有指定item,很奇怪\n");
			return FALSE;
		}
	}

	gym = NPC_Util_GetNumFromStrWithDelim( argstr, "gym");

	if( gym > 0 ){
		CHAR_setInt( meindex, CHAR_BASEBASEIMAGENUMBER,
			gymbody[RAND( 0, arraysizeof( gymbody ) - 1)] );
		CHAR_setInt( meindex, CHAR_BASEIMAGENUMBER,
			CHAR_getInt( meindex, CHAR_BASEBASEIMAGENUMBER ) );
		CHAR_setInt( meindex, CHAR_LV, gym );
	}
	tmp = NPC_Util_GetNumFromStrWithDelim( argstr, "dieact");
	if( tmp != 1 ) 
		tmp = 0;
	CHAR_setWorkInt( meindex, CHAR_WORK_DIEACT, tmp);
	if( strstr( argstr, "NEWNPCENEMY") != 0 )	{
		CHAR_setWorkInt( meindex, CHAR_WORK_WARP_FLOOR, 0 );
		CHAR_setWorkInt( meindex, CHAR_WORK_WARP_Y, 0 );
		CHAR_setWorkInt( meindex, CHAR_WORK_WARP_X, 0 );
	}else	{
		if( CHAR_getWorkInt( meindex, CHAR_WORK_DIEACT) == 1 ) {
			char buff1[256];
			if( NPC_Util_GetStrFromStrWithDelim( argstr, "warpfl", buff1, sizeof( buff1) ) == NULL) {
				print( "NPCENEMY: nothing warp_floor %s\n", buff1);
				return FALSE;
			}
			tmp = atoi( buff1);
			CHAR_setWorkInt( meindex, CHAR_WORK_WARP_FLOOR, tmp);
			if( NPC_Util_GetStrFromStrWithDelim( argstr, "warpx", buff1, sizeof( buff1) ) == NULL) {
				print( "NPCENEMY: nothing warp_x\n");
				return FALSE;
			}
			tmp = atoi( buff1);
			CHAR_setWorkInt( meindex, CHAR_WORK_WARP_X, tmp);
			if( NPC_Util_GetStrFromStrWithDelim( argstr, "warpy", buff1, sizeof( buff1) ) == NULL) {
				print( "NPCENEMY: nothing warp_y\n");
				return FALSE;
			}
			tmp = atoi( buff1);
			CHAR_setWorkInt( meindex, CHAR_WORK_WARP_Y, tmp);
			if( MAP_IsValidCoordinate( CHAR_getWorkInt( meindex, CHAR_WORK_WARP_FLOOR),
								CHAR_getWorkInt( meindex, CHAR_WORK_WARP_X),
								CHAR_getWorkInt( meindex, CHAR_WORK_WARP_Y) ) == FALSE ){
				char filename[256];
				NPC_Util_CheckAssignArgFile( meindex, filename);
				print( "NPCENEMY: %s: .\n %s.\nInvalid fl=%d,x=%d,y=%d\n", filename, argstr,
					CHAR_getWorkInt( meindex, CHAR_WORK_WARP_FLOOR),
					CHAR_getWorkInt( meindex, CHAR_WORK_WARP_X),
					CHAR_getWorkInt( meindex, CHAR_WORK_WARP_Y) );
				return FALSE;
			}
		}
	}
	//andy_end
	tmp = NPC_Util_GetNumFromStrWithDelim( argstr, "entype");
	if( tmp != 1 && tmp != 2)
		tmp = 0;
	CHAR_setWorkInt( meindex, CHAR_WORK_ENCOUNTTYPE, tmp);

	tmp = NPC_Util_GetNumFromStrWithDelim( argstr, "onebattle");
	if( tmp != 1 )
		tmp = 0;
	CHAR_setWorkInt( meindex, CHAR_WORK_ONEBATTLE, tmp);

	tmp = NPC_Util_GetNumFromStrWithDelim( argstr, "time");
	if( tmp == -1 )
		tmp = NPC_ENEMY_REVIVALTIMA_DEFAULT;
	CHAR_setWorkInt( meindex, CHAR_WORK_REVIVALTIME, tmp);

	CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPENPCENEMY );
	CHAR_setWorkInt( meindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_ENEMY);
	CHAR_setWorkInt( meindex, CHAR_WORK_BASEIMGBAK,
						CHAR_getInt( meindex, CHAR_BASEIMAGENUMBER));
	return TRUE;
}
Example #7
0
BOOL NPC_WarpInit( int charaindex )
{
	char arg1[NPC_UTIL_GETARGSTR_BUFSIZE];
	char *arg;
    int ret;
    int floor=-1,x=-1,y=-1;
    char    token[128];

#ifdef _RECORD_NPCMAN_ //紀錄
	char evtype[256];
	char evtime[256];
	char argfile[256];

	if( NPC_Util_CheckAssignArgFile( charaindex, argfile) == NULL )
		sprintf( argfile, "NULL");
#endif

	CHAR_setInt( charaindex, CHAR_WHICHTYPE , CHAR_TYPEWARP );
    if((arg = NPC_Util_GetArgStr( charaindex, arg1, sizeof( arg1))) == NULL )	{
		print("\n GetArgStr ERR!!");
		return FALSE;
	}
#ifdef _NEW_WARPPOINT
	if( strstr( arg, "FREEMORE") != NULL )	{
#ifdef _RECORD_NPCMAN_ //紀錄
		sprintf( evtype, "FREE");
		sprintf( evtime, "NULL");
#endif
		CHAR_setWorkInt( charaindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_WARP);
	}else	{
#endif
#ifdef _MAP_WARPPOINT
		return FALSE;
#endif
#ifdef _RECORD_NPCMAN_ //紀錄
		sprintf( evtype, "NONE");
#endif
		ret=getStringFromIndexWithDelim(arg,"|", 1,token,sizeof(token));
		if( ret ) floor = atoi( token );
		ret=getStringFromIndexWithDelim(arg,"|", 2,token,sizeof(token));
		if( ret ) x = atoi( token );
		ret=getStringFromIndexWithDelim(arg,"|", 3,token,sizeof(token));
		if( ret ) y = atoi( token );
		if( MAP_IsValidCoordinate( floor,x,y )== FALSE ){
			NPC_WarpsetNeverMake( charaindex );
			//print( "Warp NPC:Invalid arg:%s\n", arg );
			print( "Warp Npc Err:%d:%d:%d->(%s)\n",
        		CHAR_getInt( charaindex, CHAR_FLOOR ),
        		CHAR_getInt( charaindex, CHAR_X ),
        		CHAR_getInt( charaindex, CHAR_Y ),
        		arg );
			return FALSE;
		}
		ret=getStringFromIndexWithDelim(arg,"|",4,token,sizeof(token));
		if(ret==TRUE){
			int day;
			day=NPC_TimeWarpCheck(charaindex,token,0);
				if(day==0){
#ifdef _RECORD_NPCMAN_ //紀錄
					sprintf( evtime, "N");
#endif
					CHAR_setWorkInt( charaindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_WARP_NIGHT);
				}else if(day==1){
#ifdef _RECORD_NPCMAN_ //紀錄
					sprintf( evtime, "M");
#endif
					CHAR_setWorkInt( charaindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_WARP_MORNING);
				}else if(day==2){
#ifdef _RECORD_NPCMAN_ //紀錄
					sprintf( evtime, "A");
#endif
					CHAR_setWorkInt( charaindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_WARP_NOON);
				}else{
#ifdef _RECORD_NPCMAN_ //紀錄
					sprintf( evtime, "NULL");
#endif
					CHAR_setWorkInt( charaindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_WARP);
				}
		}else{
#ifdef _RECORD_NPCMAN_ //紀錄
					sprintf( evtime, "NULL");
#endif
			CHAR_setWorkInt( charaindex, CHAR_WORKEVENTTYPE, CHAR_EVENT_WARP);
		}
#ifdef _NEW_WARPPOINT
	}
#endif
    CHAR_setFlg( charaindex,CHAR_ISVISIBLE, 0 );
    CHAR_setFlg( charaindex,CHAR_ISOVERED,1 );
    CHAR_setFlg( charaindex,CHAR_ISATTACKED,0 );
    CHAR_setFlg( charaindex,CHAR_ISATTACK,0 );

#ifdef _RECORD_NPCMAN_ //紀錄
	{
		FILE *fp=NULL;
		char filename[256];
		sprintf( filename,"./data/npc/%s", "mapwarp.txt");
		if( (fp = fopen( filename, "a+")) != NULL ) {
			fprintf( fp, "%s:%s:%d,%d,%d:%d,%d,%d:%s\n",
				evtype, evtime,
				CHAR_getInt( charaindex, CHAR_FLOOR),
				CHAR_getInt( charaindex, CHAR_X),
				CHAR_getInt( charaindex, CHAR_Y),
				floor, x, y, argfile );
			fclose( fp);
		}else {
		}
	}
#endif
    return TRUE;
}
Example #8
0
/*#ifdef _JZ_NPCBUF
		CHAR_NPCBUFPOINT = CHAR_WORKEQUITFIRE,   					//NPC arg文件緩存指針
		CHAR_NPCTIMERH32 = CHAR_WORKEQUITTHUNDER,					//NPC 計時器(高32位)
		CHAR_NPCTIMERL32 = CHAR_WORKEQUITICE,							//NPC 計時器(低32位)
		CHAR_NPCFILECTIMEH32 = CHAR_WORKEQUITWEAKEN,			//讀NPC arg文件的時間(高32位)
		CHAR_NPCFILECTIMEL32 = CHAR_WORKEQUITBARRIER,			//讀NPC arg文件的時間(低32位)
		//CHAR_NPCFILECTIME_HOUR = CHAR_WORKEQUITNOCAST,		//讀NPC arg文件時的時鐘
		//CHAR_NPCFILECTIME_MIN = CHAR_WORKEQUITFALLRIDE,		//讀NPC arg文件時的分鐘
#endif*/
char *NPC_Util_GetArgStr( int index, char *argstr, int len)
{
	char	filename[128];
	Char *ch;
	char	*cret = NULL;
	struct stat buff;
	int fd;
	char	opfile[128];
	if( (ch = CHAR_getCharPointer( index)) == NULL ) {
		print("GetArgStr Not get CharPointer\n");
		return NULL;				//獲得NPC結構指針
	}
	if( NPC_Util_CheckAssignArgFile( index, filename) != NULL ) {

		sprintf( opfile, "%s/%s", getNpcdir(),filename);
		if(stat(opfile,&buff)!=0)
		{
			print("NPC緩存機制 stat error:%s\n",strerror( errno ));
			buff.st_size = NPC_UTIL_GETARGSTR_BUFSIZE;
		}else{
			buff.st_size++;
		}
		//if(buff.st_size > len)buff.st_size = len;
		cret = (char *)ch->workint[CHAR_NPCBUFPOINT];												//獲得NPC緩存指針
		if( cret == NULL ) {																								//首先判斷NPC緩存是否已經加載數據
			//未加載緩存,申請內存,並將文件內容讀到緩存中
loadarg:
			cret = allocateMemory((unsigned int)buff.st_size);															//申請內存
			memset( cret, 0,buff.st_size);
			if( cret == NULL ) {																							//判斷申請內存是否成功,如果不成功則採用舊的模式
				//舊的文件即時讀取模式
				//print("NPC BUF OLD LOAD FILE %d\n",buff.st_size);
				if( NPC_Util_MargeStrFromArgFile( opfile, argstr, len) != NULL ) {
					cret = argstr;
				}
			}else{
				//新的NPC緩存模式
				//print("NPC BUF NEW LOAD FILE %d\n",buff.st_size);
				if( NPC_Util_MargeStrFromArgFile( opfile, cret, buff.st_size) != NULL ) {
					//memcpy(cret,argstr,buff.st_size);
					ch->workint[CHAR_NPCBUFPOINT] = (int)cret;
					ch->workint[CHAR_NPCFILECTIMEH32] = (unsigned long)buff.st_mtime;
				}else{
					freeMemory(cret);
					cret = NULL;
				}
			}
		}else
		{
			//print("NPC BUF NEW %d\n",buff.st_size);
			//已加載緩存,判斷是否數據被更改,如果沒被更改直接返回緩存指針,如果更改的話則GOTO到未加載緩存的代碼
			//2個計時器暫時不用
			//if(buff.st_size > NPC_UTIL_GETARGSTR_BUFSIZE)buff.st_size = NPC_UTIL_GETARGSTR_BUFSIZE;
			if((unsigned long)ch->workint[CHAR_NPCFILECTIMEH32] != (unsigned long)buff.st_mtime)
			{
					print("npc updata:%s\n",opfile);
					freeMemory(cret);
					cret = NULL;
					goto loadarg;
			}
			//memcpy(argstr,cret,buff.st_size);
			//cret = argstr;
		}
	}else {
		if( CHAR_getChar( index, CHAR_NPCARGUMENT) != NULL ){
			strcpy( argstr, CHAR_getChar( index, CHAR_NPCARGUMENT));
			cret = argstr;
		}else{
			cret = NULL;
		}
	}
	if( cret == NULL ) print("File:%s\n", NPC_Util_CheckAssignArgFile( index, opfile));

	return( cret);

/*	if( NPC_Util_CheckAssignArgFile( index, filename) != NULL ) {
		if( NPC_Util_MargeStrFromArgFile( filename, argstr, len) != NULL ) {
			cret = argstr;
		}
	}else {
		if( CHAR_getChar( index, CHAR_NPCARGUMENT) != NULL ){
			strcpy( argstr, CHAR_getChar( index, CHAR_NPCARGUMENT));
			cret = argstr;
		}else{
			cret = NULL;
		}
	}
	if( cret == NULL ) print("File:%s\n", NPC_Util_CheckAssignArgFile( index, filename));

	return( cret);*/
}