然后就是完整添加友军飞机的环节!!!
需要修改模型model.dat,贴图shader.dat,友军实体friend.dat,坐标库move.dat
如果想要复制前作的飞机模型和贴图可以直接去前作models和textures文件夹里复制粘贴
model.dat里复制粘贴一段生成敌方飞机的代码:
struct model =
{
string name = "p40"; friend.dat中调用的名字
struct mesh =
{
stringname = "plane";
string mesh_lod_high = "resource\\models\\blabla.x"; 这里改成你要的模型文件路径
stringmesh_lod_medium = "none"; 中分辨率模型,可以写none,也可以直接用高分辨率的模型
stringmesh_lod_low = "none"; 低分辨率,同上
stringshader = "p40"; 贴图用shader.dat中对应的名字
vec3pos = (0.0, 0.0, 0.0);
vec3ang = (0.0, 0.0, 0.0);
intlod = 1;
int visible = 1;
};
struct mesh =
{
stringname = "prop";
string mesh_lod_high = "resource\\models\\a_prop.x";
stringmesh_lod_medium = "none";
stringmesh_lod_low = "none";
stringshader = "plane_prop";
vec3pos = (0.0, 0.0, 0.0);
vec3ang = (0.0, 0.0, 0.0);
intlod = 1;
int visible = 1;
struct mesh_action =
{
stringname = "prop_spin";
stringtype = "MESH_ACTION_ANG_OFFSET";
intactive = 1;
vec3vec1 = (0.0, 0.0, 10.0);
};
};
};
在shader.dat中同样复制粘贴一段敌军飞机的贴图代码:
struct shader =
{
stringname = "p40"; 贴图名,model.dat中会调用
string type = "standard";
structrenderstate =
{
stringtype = "ALPHABLENDENABLE";
intvalue = 0;
};
structtexturestate =
{
intstage = 0;
stringtype = "MINFILTER";
stringstrvalue = "LINEAR";
};
structtexturestate =
{
intstage = 0;
stringtype = "MAGFILTER";
stringstrvalue = "LINEAR";
};
structtexture =
{
stringtexture = "resource\\textures\\blabla.bmp"; 贴图路径
intstage = 0;
};
struct material =
{
vec3ambient = (0.3, 0.3, 0.3);
floatambient_a = 1.0;
vec3diffuse = (0.8, 0.8, 0.8);
floatdiffuse_a = 1.0;
vec3emissive = (0.2, 0.2, 0.2);
floatemissive_a = 1.0;
vec3specular = (0.8, 0.8, 0.8);
floatspecular_a = 1.0;
floatpower = 0.3;
};
};
随后复制enemy.dat一个敌军飞机的代码粘贴到friend.dat:
struct friend =
{
stringname = "p40"; 实体名称
stringtype = "ENT_TYPE_FRIEND_PLANE"; 这里要把类别改成这个友军飞机!!!
string model = "p40"; 调用的模型名称
stringsound = "audio\\p_ftr.wav"; 使用的声音(应该可以照搬敌军飞机)
stringweapon_primary = "friend_plane_machine_gun";这个武器名可以直接用,因为制作组没删干净
string impact_entity = "plane_exp_air";
stringimpact_water = "plane_exp_water";
stringimpact_land = "plane_exp_land";
floatspeed = 9.4; 速度
floatdamage = 16.0; 撞击伤害
floatlife = 26.0; 生命值
floatbsphere = 15.0;
intcollide = 1;
vec3fireVec = (0.0, 0.0, 0.0);
floatfireAng = 45.0;
floatfireDist = 500.0;
floathitPercent = 0.5;
};
最后最后在你想要添加友军飞机的关卡里添加这段:
event_add_entity: 0.0 friend p40 fs2_fr3
为什么要用fs2_fr3呢?制作组删除了所有的路径文件,但是只保留了这唯一一个,而且move.dat中已经保留了定这个路径的定义(估计是留一条后路??)
路径使用诸如FrPa01a的路径会崩溃,因为没在move.dat中定义(***为什么有两个路径的种类)
测试下来我发现无论用的什么路径,飞机总会在原点(0,0,0)生成然后漫无目的地乱飞

但是至少,你的军队有人会开飞机了
