Hello all,
I got some help from here and I've completed it. if you have an editor like Sivan's Map Builder and if you want to save your level as .wmb while engine is open, you can use this code.

Note: That code works with only models&terrain. Map entities, path, attached etc. are not supported.

Code:
//////////////////////////////
// save as wmb (18/01/2012)
//////////////////////////////
// Created by Emre SASMAZ 
// pantharay@gmail.com
// blog.pantharay.com
// sayha.pantharay.com
//////////////////////////////
#include <stdio.h>

//$$w hex code
char bufferforwad[12] = {0x57, 0x41, 0x44, 0x37, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00};
//expalette.pcx hexcode
char bufferforpalette[954] =
{
	0x0A, 0x05, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x12, 0x00, 0x48, 0x00, 0x48, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 
	0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 
	0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 
	0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0xCF, 0xD3, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 
	0x1F, 0x1F, 0x1F, 0x2F, 0x2F, 0x2F, 0x3F, 0x3F, 0x3F, 0x4B, 0x4B, 0x4B, 0x5B, 0x5B, 0x5B, 0x6B, 
	0x6B, 0x6B, 0x7B, 0x7B, 0x7B, 0x8B, 0x8B, 0x8B, 0x9B, 0x9B, 0x9B, 0xAB, 0xAB, 0xAB, 0xBB, 0xBB, 
	0xBB, 0xCB, 0xCB, 0xCB, 0xDB, 0xDB, 0xDB, 0xEB, 0xEB, 0xEB, 0x0F, 0x0B, 0x07, 0x17, 0x0F, 0x0B, 
	0x1F, 0x17, 0x0B, 0x27, 0x1B, 0x0F, 0x2F, 0x23, 0x13, 0x37, 0x2B, 0x17, 0x3F, 0x2F, 0x17, 0x4B, 
	0x37, 0x1B, 0x53, 0x3B, 0x1B, 0x5B, 0x43, 0x1F, 0x63, 0x4B, 0x1F, 0x6B, 0x53, 0x1F, 0x73, 0x57, 
	0x1F, 0x7B, 0x5F, 0x23, 0x83, 0x67, 0x23, 0x8F, 0x6F, 0x23, 0x0B, 0x0B, 0x0F, 0x13, 0x13, 0x1B, 
	0x1B, 0x1B, 0x27, 0x27, 0x27, 0x33, 0x2F, 0x2F, 0x3F, 0x37, 0x37, 0x4B, 0x3F, 0x3F, 0x57, 0x47, 
	0x47, 0x67, 0x4F, 0x4F, 0x73, 0x5B, 0x5B, 0x7F, 0x63, 0x63, 0x8B, 0x6B, 0x6B, 0x97, 0x73, 0x73, 
	0xA3, 0x7B, 0x7B, 0xAF, 0x83, 0x83, 0xBB, 0x8B, 0x8B, 0xCB, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 
	0x0B, 0x0B, 0x00, 0x13, 0x13, 0x00, 0x1B, 0x1B, 0x00, 0x23, 0x23, 0x00, 0x2B, 0x2B, 0x07, 0x2F, 
	0x2F, 0x07, 0x37, 0x37, 0x07, 0x3F, 0x3F, 0x07, 0x47, 0x47, 0x07, 0x4B, 0x4B, 0x0B, 0x53, 0x53, 
	0x0B, 0x5B, 0x5B, 0x0B, 0x63, 0x63, 0x0B, 0x6B, 0x6B, 0x0F, 0x07, 0x00, 0x00, 0x0F, 0x00, 0x00, 
	0x17, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x27, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x37, 0x00, 0x00, 0x3F, 
	0x00, 0x00, 0x47, 0x00, 0x00, 0x4F, 0x00, 0x00, 0x57, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x67, 0x00, 
	0x00, 0x6F, 0x00, 0x00, 0x77, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x13, 0x13, 0x00, 0x1B, 0x1B, 0x00, 
	0x23, 0x23, 0x00, 0x2F, 0x2B, 0x00, 0x37, 0x2F, 0x00, 0x43, 0x37, 0x00, 0x4B, 0x3B, 0x07, 0x57, 
	0x43, 0x07, 0x5F, 0x47, 0x07, 0x6B, 0x4B, 0x0B, 0x77, 0x53, 0x0F, 0x83, 0x57, 0x13, 0x8B, 0x5B, 
	0x13, 0x97, 0x5F, 0x1B, 0xA3, 0x63, 0x1F, 0xAF, 0x67, 0x23, 0x23, 0x13, 0x07, 0x2F, 0x17, 0x0B, 
	0x3B, 0x1F, 0x0F, 0x4B, 0x23, 0x13, 0x57, 0x2B, 0x17, 0x63, 0x2F, 0x1F, 0x73, 0x37, 0x23, 0x7F, 
	0x3B, 0x2B, 0x8F, 0x43, 0x33, 0x9F, 0x4F, 0x33, 0xAF, 0x63, 0x2F, 0xBF, 0x77, 0x2F, 0xCF, 0x8F, 
	0x2B, 0xDF, 0xAB, 0x27, 0xEF, 0xCB, 0x1F, 0xFF, 0xF3, 0x1B, 0x0B, 0x07, 0x00, 0x1B, 0x13, 0x00, 
	0x2B, 0x23, 0x0F, 0x37, 0x2B, 0x13, 0x47, 0x33, 0x1B, 0x53, 0x37, 0x23, 0x63, 0x3F, 0x2B, 0x6F, 
	0x47, 0x33, 0x7F, 0x53, 0x3F, 0x8B, 0x5F, 0x47, 0x9B, 0x6B, 0x53, 0xA7, 0x7B, 0x5F, 0xB7, 0x87, 
	0x6B, 0xC3, 0x93, 0x7B, 0xD3, 0xA3, 0x8B, 0xE3, 0xB3, 0x97, 0xAB, 0x8B, 0xA3, 0x9F, 0x7F, 0x97, 
	0x93, 0x73, 0x87, 0x8B, 0x67, 0x7B, 0x7F, 0x5B, 0x6F, 0x77, 0x53, 0x63, 0x6B, 0x4B, 0x57, 0x5F, 
	0x3F, 0x4B, 0x57, 0x37, 0x43, 0x4B, 0x2F, 0x37, 0x43, 0x27, 0x2F, 0x37, 0x1F, 0x23, 0x2B, 0x17, 
	0x1B, 0x23, 0x13, 0x13, 0x17, 0x0B, 0x0B, 0x0F, 0x07, 0x07, 0xBB, 0x73, 0x9F, 0xAF, 0x6B, 0x8F, 
	0xA3, 0x5F, 0x83, 0x97, 0x57, 0x77, 0x8B, 0x4F, 0x6B, 0x7F, 0x4B, 0x5F, 0x73, 0x43, 0x53, 0x6B, 
	0x3B, 0x4B, 0x5F, 0x33, 0x3F, 0x53, 0x2B, 0x37, 0x47, 0x23, 0x2B, 0x3B, 0x1F, 0x23, 0x2F, 0x17, 
	0x1B, 0x23, 0x13, 0x13, 0x17, 0x0B, 0x0B, 0x0F, 0x07, 0x07, 0xDB, 0xC3, 0xBB, 0xCB, 0xB3, 0xA7, 
	0xBF, 0xA3, 0x9B, 0xAF, 0x97, 0x8B, 0xA3, 0x87, 0x7B, 0x97, 0x7B, 0x6F, 0x87, 0x6F, 0x5F, 0x7B, 
	0x63, 0x53, 0x6B, 0x57, 0x47, 0x5F, 0x4B, 0x3B, 0x53, 0x3F, 0x33, 0x43, 0x33, 0x27, 0x37, 0x2B, 
	0x1F, 0x27, 0x1F, 0x17, 0x1B, 0x13, 0x0F, 0x0F, 0x0B, 0x07, 0x6F, 0x83, 0x7B, 0x67, 0x7B, 0x6F, 
	0x5F, 0x73, 0x67, 0x57, 0x6B, 0x5F, 0x4F, 0x63, 0x57, 0x47, 0x5B, 0x4F, 0x3F, 0x53, 0x47, 0x37, 
	0x4B, 0x3F, 0x2F, 0x43, 0x37, 0x2B, 0x3B, 0x2F, 0x23, 0x33, 0x27, 0x1F, 0x2B, 0x1F, 0x17, 0x23, 
	0x17, 0x0F, 0x1B, 0x13, 0x0B, 0x13, 0x0B, 0x07, 0x0B, 0x07, 0xFF, 0xF3, 0x1B, 0xEF, 0xDF, 0x17, 
	0xDB, 0xCB, 0x13, 0xCB, 0xB7, 0x0F, 0xBB, 0xA7, 0x0F, 0xAB, 0x97, 0x0B, 0x9B, 0x83, 0x07, 0x8B, 
	0x73, 0x07, 0x7B, 0x63, 0x07, 0x6B, 0x53, 0x00, 0x5B, 0x47, 0x00, 0x4B, 0x37, 0x00, 0x3B, 0x2B, 
	0x00, 0x2B, 0x1F, 0x00, 0x1B, 0x0F, 0x00, 0x0B, 0x07, 0x00, 0x00, 0x00, 0xFF, 0x0B, 0x0B, 0xEF, 
	0x13, 0x13, 0xDF, 0x1B, 0x1B, 0xCF, 0x23, 0x23, 0xBF, 0x2B, 0x2B, 0xAF, 0x2F, 0x2F, 0x9F, 0x2F, 
	0x2F, 0x8F, 0x2F, 0x2F, 0x7F, 0x2F, 0x2F, 0x6F, 0x2F, 0x2F, 0x5F, 0x2B, 0x2B, 0x4F, 0x23, 0x23, 
	0x3F, 0x1B, 0x1B, 0x2F, 0x13, 0x13, 0x1F, 0x0B, 0x0B, 0x0F, 0x2B, 0x00, 0x00, 0x3B, 0x00, 0x00, 
	0x4B, 0x07, 0x00, 0x5F, 0x07, 0x00, 0x6F, 0x0F, 0x00, 0x7F, 0x17, 0x07, 0x93, 0x1F, 0x07, 0xA3, 
	0x27, 0x0B, 0xB7, 0x33, 0x0F, 0xC3, 0x4B, 0x1B, 0xCF, 0x63, 0x2B, 0xDB, 0x7F, 0x3B, 0xE3, 0x97, 
	0x4F, 0xE7, 0xAB, 0x5F, 0xEF, 0xBF, 0x77, 0xF7, 0xD3, 0x8B, 0xA7, 0x7B, 0x3B, 0xB7, 0x9B, 0x37, 
	0xC7, 0xC3, 0x37, 0xE7, 0xE3, 0x57, 0x7F, 0xBF, 0xFF, 0xAB, 0xE7, 0xFF, 0xD7, 0xFF, 0xFF, 0x67, 
	0x00, 0x00, 0x8B, 0x00, 0x00, 0xB3, 0x00, 0x00, 0xD7, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xF3, 
	0x93, 0xFF, 0xF7, 0xC7, 0xFF, 0xFF, 0xFF, 0x9F, 0x5B, 0x53
} ;


STRING* temp_str="#25";
var wmb_handle;
#define ifiselse(var) if(is(you,var)){str_cat(temp_str,"1");}else{str_cat(temp_str,"0");}
#define skipline file_asc_write (wmb_handle, 13);file_asc_write (wmb_handle, 10)
#define obrackets file_str_write (wmb_handle,"{")
#define cbrackets file_str_write (wmb_handle,"}")
long	entflags[32];
void flags_startup()
{

	entflags[1]=0;
	entflags[2]=0;
	entflags[3]=0;
	entflags[4]=0;
	entflags[5]=0;
	entflags[6]=POLYGON;
	entflags[7]=0;//Local
	entflags[8]=0;
	entflags[9]=CAST;
	entflags[10]=METAL;
	entflags[11]=BRIGHT;
	entflags[12]=NOFOG;
	entflags[13]=0;
	entflags[14]=SHADOW;
	entflags[15]=UNLIT;
	entflags[16]=NOFILTER;
	entflags[17]=0;//Flare
	entflags[18]=ZNEAR;
	entflags[19]=SPOTLIGHT;
	entflags[20]=OVERLAY;
	entflags[21]=0;
	entflags[22]=TRANSLUCENT;
	entflags[23]=PASSABLE;
	entflags[24]=INVISIBLE;
	entflags[25]=FLAG8;
	entflags[26]=FLAG7;
	entflags[27]=FLAG6;
	entflags[28]=FLAG5;
	entflags[29]=FLAG4;
	entflags[30]=FLAG3;
	entflags[31]=FLAG2;
	entflags[32]=FLAG1;

}

void set_flags(var flag16)
{
	str_cpy(temp_str,"");
	if(flag16>0)
	{
		
		str_cat(temp_str,"0");//-?
		str_cat(temp_str,"0");//-?
		str_cat(temp_str,"0");	
		str_cat(temp_str,"0");//-?
		str_cat(temp_str,"0");//-?
		ifiselse(POLYGON)//6	
		str_cat(temp_str,"0");//LOCAL//7
		str_cat(temp_str,"0");//8
		ifiselse(CAST)//9
		ifiselse(METAL)//10
		ifiselse(BRIGHT)//11
		ifiselse(NOFOG)//12
		str_cat(temp_str,"0");//13
		ifiselse(SHADOW)
		ifiselse(UNLIT)
		ifiselse(NOFILTER)
	}
	
	str_cat(temp_str,"0");//17
	ifiselse(ZNEAR)//18
	ifiselse(SPOTLIGHT)//-?//19
	ifiselse(OVERLAY)//20
	str_cat(temp_str,"0");//17
	ifiselse(TRANSLUCENT)//21
	ifiselse(PASSABLE)//22
	ifiselse(INVISIBLE)//23
	ifiselse(FLAG8)//24
	ifiselse(FLAG7)//25
	ifiselse(FLAG6)//26
	ifiselse(FLAG5)//28
	ifiselse(FLAG4)//29
	ifiselse(FLAG3)//30
	ifiselse(FLAG2)//31
	ifiselse(FLAG1)//32
	file_str_write (wmb_handle,temp_str); skipline;
}
void save_wmb()
{
	//variables
	var num = 0;
	ENTITY* ent;
	char* funcname;
	var yourtype;
	var say=0;
	int i;
	
	//Remove $$m & $$w & expalette.pcx
	remove("export.$$M");
	remove("export.$$w");
	remove("expalette.pcx");
	wait(-0.5);
	
	//Create $$w file (wad7)
	FILE *myfile = fopen("export.$$w", "wb");
	int i=0;
	for(i=0;i<12;i++)
	{
		putc(bufferforwad[i], myfile);
	}
	fclose(myfile);

	//Create expalette.pcx file (wad7)
	FILE *myfile = fopen("expalette.pcx", "wb");
	int i=0;
	for(i=0;i<954;i++)
	{
		putc(bufferforpalette[i], myfile);
	}
	fclose(myfile);
	
	//Create $$m
	wmb_handle = file_open_append("export.$$M");
	file_str_write (wmb_handle,"version 711"); skipline;
	
	//level
	obrackets;file_str_write (wmb_handle," //level"); skipline;
	file_var_write (wmb_handle,0);skipline;
	file_str_write (wmb_handle,"export.$$w"); skipline;
	file_str_write (wmb_handle,"expalette.pcx"); skipline;
	cbrackets;skipline;
	
	//sun
	obrackets;file_str_write (wmb_handle," //sun"); skipline;
	file_var_write (wmb_handle,5);skipline;
	file_var_write (wmb_handle,sun_angle.tilt);skipline;
	file_var_write (wmb_handle,sun_angle.pan);skipline;
	cbrackets;skipline;
	
	

	

	var myflag16=0;
	//entities
	you = ent_next(NULL); 
	while (you)
	{ 
		draw_text("PLEASE WAIT",10,10,COLOR_RED);
		
		obrackets;file_str_write (wmb_handle," //model"); skipline;
		
		
		#ifndef ent_id
			#define ent_id
			yourtype=0;
			/*
			from sdk:
			'wmpio_ModelEntity  * model;	// id == 3 (7, for model-ex)'
			SO CHECK IF EX OR NOT (if has a material or string1-2 or has a action it's 7 else it's 3)
			*/
			
			//if(your.materialtype!=NULL)
			if(your.material!=mat_model&&your.material!=NULL&&your.material!=mat_terrain)
			{
				yourtype+=1;
			}
			//if(your.string1||string2!=NULL)
			if(str_len(your.string1)>0||str_len(your.string2)>0)
			{
				yourtype+=1;
			}	
			
			num = 0;
			say=0;
			//Check Entity has an action or not.
			for(num = 0; engine_gettaskinfo(num,&funcname,&ent); num++)
			{
				if(ent == you)
				{ 
					yourtype+=1;
					break;
				}
			}
			
			//
			if(yourtype>0)
			{
				file_var_write (wmb_handle,7);skipline;//model-ex
			}
			else
			{
				file_var_write (wmb_handle,3);skipline;//model
			}
		#endif
		
		
		//xyz
		file_var_write (wmb_handle,you.x);
		file_var_write (wmb_handle,you.y);
		file_var_write (wmb_handle,you.z);skipline;
		//pan-tilt-roll
		file_var_write (wmb_handle,you.pan);
		file_var_write (wmb_handle,you.tilt);
		file_var_write (wmb_handle,you.roll);skipline;
		//scale
		file_var_write (wmb_handle,you.scale_x);
		file_var_write (wmb_handle,you.scale_y);
		file_var_write (wmb_handle,you.scale_z);skipline;
		//Entitiy file name
		str_for_entfile(temp_str,you); 
		file_str_write (wmb_handle,temp_str); skipline;
		//Ent name
		str_for_entname(temp_str,you); 
		file_str_write (wmb_handle,temp_str); skipline;
		
		num = 0;
		say=0;
		//Get action name of Entity (Thanks to MasterQ32&JustSid for tip)
		for(num = 0; engine_gettaskinfo(num,&funcname,&ent); num++)
		{
			if(ent == you)
			{ 
				file_str_write (wmb_handle,_str(funcname)); skipline;
				say=1;
				break;
			}
			
		}
		//if entity has no action, put ndef
		if(say==0)
		{
			file_str_write (wmb_handle,"ndef"); skipline;
		}
		
		//skills
		file_var_write (wmb_handle,you.skill1);
		file_var_write (wmb_handle,you.skill2);
		file_var_write (wmb_handle,you.skill3);
		file_var_write (wmb_handle,you.skill4);
		file_var_write (wmb_handle,you.skill5);
		file_var_write (wmb_handle,you.skill6);
		file_var_write (wmb_handle,you.skill7);
		file_var_write (wmb_handle,you.skill8);
		
		
		if(yourtype>0)//type==7 
		{
			file_var_write (wmb_handle,you.skill9);
			file_var_write (wmb_handle,you.skill10);
			file_var_write (wmb_handle,you.skill11);
			file_var_write (wmb_handle,you.skill12);
			file_var_write (wmb_handle,you.skill13);
			file_var_write (wmb_handle,you.skill14);
			file_var_write (wmb_handle,you.skill15);
			file_var_write (wmb_handle,you.skill16);
			file_var_write (wmb_handle,you.skill17);
			file_var_write (wmb_handle,you.skill18);
			file_var_write (wmb_handle,you.skill19);
			file_var_write (wmb_handle,you.skill20);
			
		}skipline;
		
		
		//flags
		myflag16=0;
		
		i=0;
		for(i=1;i<17;i++)
		{
			if (is(you,entflags[i]))
			{
				myflag16=1;
			}
		
		}
		
		set_flags(myflag16);
		file_var_write (wmb_handle,your.ambient);skipline;
		
		//Get material name of Entity
		if(your.material!=mat_model&&your.material!=NULL&&your.material!=mat_terrain)
		{	file_var_write (wmb_handle,your.albedo);skipline;
			file_var_write (wmb_handle,0);skipline; //path
			file_var_write (wmb_handle,0);skipline; //attach
			str_cpy(temp_str,_chr(your.material.link.name));
			file_str_write (wmb_handle,temp_str); skipline;
		}
		else
		{
			if(yourtype>0)
			{

				file_var_write (wmb_handle,your.albedo);skipline;
				file_var_write (wmb_handle,0);skipline;//path
				file_var_write (wmb_handle,0);skipline;//attach
				file_str_write (wmb_handle,"ndef"); skipline; // if no material put ndef
			}
		}
		//string1 string2
		if(str_len(your.string1)>0)
		{
			str_cpy(temp_str,_chr(your.string1));
			file_str_write (wmb_handle,temp_str); skipline;
		}	
		if(str_len(your.string2)>0)
		{
			str_cpy(temp_str,_chr(your.string2));
			file_str_write (wmb_handle,temp_str); skipline;
		}
		
		
		cbrackets;skipline;
		you = ent_next(you);
		wait(1);
	}
	file_close(wmb_handle);



	wait(-1);
	
	//build it with default
	exec("%EXE_DIR%\\wwmp2wmb.exe","export.$$M -pal expalette.pcx 
	-az 10 -el 60 
	-sunrgb 100 100 100 
	-ambrgb 100 100 100 
	-noportals 
	-hiprec 
	-writelog 
	-close 
	-nodetail 
	-threads 2 
	-gamma 1.50 
	-phongangle 120  
	-lmambient 50  
	-sizeshaded 236 
	-litres 1.00 
	-litcomp 0.50 
	-litmax 196 
	-litscale 0.50 
	-radsubdiv 64 
	-radbounce 0 
	-bound 56000 
	-fat 64  48  8  
	-narrow 32  32  0 ");
	
	//exec("%EXE_DIR%\\wwmp2wmb.exe","export.$$M -pal palette.pcx -close");
	
}

void on_enter_event()
{
	save_wmb();
}



Last edited by Emre; 01/19/12 23:58. Reason: i corrected the code