因BWiki近期更新,普通用户无法直接访问除重定向、编辑表格外的特殊页面(如最近更改等),进行3次有效编辑后即可恢复。

全站通知:

自定义瞄具

阅读

    

2022-04-01更新

    

最新编辑:Zyszhao

阅读:

  

更新日期:2022-04-01

  

最新编辑:Zyszhao

来自战争雷霆WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
kimoji2333
Zyszhao
丨沫子慕丨

自定义瞄具

从 1.73 版本“Vive la France”开始,「战争雷霆」中地面车辆的默认瞄具可以替换为自定义瞄具。可以通过创建自定义瞄具来还原某个坦克的史实瞄具,而不是在图形编辑器中进行修改。

原始文件

玩家制作的自定义瞄具一例

如何设置自定义瞄具

注意:只有自定义瞄具的作者在制作时遵循本文的全部建议,才能保证该瞄具正确瞄准。

在游戏的根目录中创建名为UserSights的文件夹

在UserSights 文件夹下创建名为all_tanks 的子文件夹。若瞄具仅适用于特定车辆,则在文件夹中创建名为该车辆 ID 的子文件夹。例如:瞄具用于“东风”防空车,所以在 UserSights 文件夹下创建名为 germ_flakpanzer_IV_Ostwind的子文件夹;

将瞄具复制到创建的子文件夹中;

重启游戏客户端;

在车库中选择要更换自定义瞄具的地面载具

打开“游戏选项→主要参数→陆战设置”,然后单击“瞄具界面设置”;

从 “瞄具准星” 菜单中选择瞄具;

单击左侧框中的 “保存”。

一台设备上可储存的不同瞄具数量没有限制,可以在文件夹中创建不同瞄具的集合并在他们之间切换。

瞄具界面预设

更新 2.39 “Dance of Dragons”引入了游戏内瞄具自定义功能,可通过点击式的用户友好界面来定制瞄具。

原始文件

瞄具界面预设菜单

此功能可在特定载具和特定国家所选等级的所有载具上应用预设的瞄具,免于为每辆载具单独创建瞄具的繁琐。与自定义瞄具一样,可以在游戏中的任何载具上使用任何瞄具(甚至可以在 BT-5 上使用 M1艾布拉姆斯 的瞄具)

以下元素是可自定义的:

瞄具准星,可从游戏中已有的准星中选择,也可以根据上述说明下载到UserSights 文件夹中来安装自定义瞄具;

测距仪;

炮塔指向图标;

视野提示框;

火炮就绪指示灯(显示就绪状态和装填时间);

炮弹类型;

如何创建自定义瞄具

瞄具文件以代码块来绘制以下元素:比例尺、标线、可动部件、文本。这些代码块以 .blk 文件的形式呈现,可以使用任何文本编辑器进行编辑。

创建自定义瞄具

按照说明中描述的前两个步骤设置自定义瞄具;

在子文件夹中创建文件

sight_1.blk;

指定该瞄具适配的车辆;

使用任何文本编辑器打开自定义瞄具的 .blk 文件,向其添加以下块:

matchExpClass {
}

在此块内指定可使用该瞄具的车辆类别或特定车辆列表。

车辆类别:

exp_tank— 轻型和中型坦克;
exp_heavy_tank— 重型坦克;
exp_tank_destroyer— 坦克歼击车、反坦克导弹运载车;
exp_SPAA— 自行防空炮、防空导弹;

在代码块中,您可以指定多个车辆类别,也可以将车辆类别与特定车辆组合。例如:

matchExpClass {
  exp_heavy_tank:b = yes
  ussr_object_120:b = yes
}

该瞄具将适用于所有重型坦克和Object 120。

特定坦克的 ID 可以通过在 Wiki 上打开其页面找到。ID 位于其 URL 中:https://wiki.warthunder.com/unit/ussr_object_120

为了保证坦克瞄具的通用性,不建议将瞄具限制在特定的火炮和弹药上。如果某个坦克没有指定的 “ballistics” 块中特定的炮弹,他们的弹道刻度将不会显示。

在创建史实瞄具时,最好将其使用范围限定在合适的车辆 ID 中。

编辑瞄具的 .blk 文件

要编辑此类文件,使用合适的编辑器会更方便。例如,免费的 Visual Studio Code 就包含适用于 blk 文件的扩展(如 Blk 和 BlkTool ,它们可以通过在程序的扩展面板中搜索 “.blk” 来找到)。

自定义瞄具中代码块的格式如下:

block_name {
 param_name: type = value

 block_name {
   param_name: type = value
 }
}
block_name— 代码块的名称,必须以拉丁字母或下划线开头,并且由拉丁字母、数字或下划线组成;
param_name— 参数名称,必须以拉丁字母或下划线开头,并且由拉丁字母、数字或下划线组成;
type— 参数类型,必须是以下类型中的一种;

参数类型:

t— 一段文本(参数的值必须用引号 " " 括起来);
r— 一个数值;
i— 一个整数值;
b— yes/no、on/off、true/false、1/0 形式的布尔值;

注:只推荐使用true/false

p2p3p4― 来自 2 / 3 / 4 个值的数据范围;
如果无效的参数类型被指定,例如一个整数型textAlign: i = 1 被指定为textAlign: i = 1,0,游戏将不能读取这样的文件,从而您的更改也不会体现在游戏中。

目前可以在代码中更改以下参数

参数 描述

thousandth:t = "ussr"	规定瞄具千分值1
lineSizeMult:r = 1	线条的缩放倍率
fontSizeMult:r = 1	文本的缩放倍率
drawCentralLineVert:b = yes	是否绘制垂直十字线2
drawCentralLineHorz:b = yes	是否绘制水平十字线3
drawAdditionalLines:b = no	是否绘制默认下坠刻度的附加刻度4
crosshairDistHorSizeMain:p2 = 0.0075, 0.0075	默认下坠刻度的长度5
crosshairDistHorSizeAdditional:p2 = 0.005, 0.003	垂直十字线上附加下坠刻度的长度
crosshairHorVertSize:p2 = 4, 2	水平十字线上的刻度长度
textShift:r = 0.0	带数字的下坠刻度长度变化量6
textAlign:i = 1	下坠刻度旁数字的对齐方式7
textPos:p2 = -0.012, 0.0	下坠刻度旁数字相对于下坠刻度的位置偏移量8
distancePos:p2 = 0.03, 0.0	下坠刻度的位置偏移量
distanceCorrectionPos:p2 = -0.15, -0.15	距离显示器的位置偏移量9
drawDistanceCorrection:b = yes	是否绘制距离显示器
rangefinderHorizontalOffset:r = 5	测距仪的水平偏移量
rangefinderVerticalOffset:r = 15	测距仪的垂直偏移量
rangefinderTextScale:r = 0.7	测距仪文本大小
rangefinderProgressBarColor1:c = 0, 255, 0, 64	测距仪进度条的颜色10
rangefinderProgressBarColor2:c = 255, 255, 255, 64	测距仪进度条背景的颜色
crosshairColor:c = 31, 239, 31, 255	瞄具颜色
crosshairLightColor:c = 255, 30, 30, 255	被照亮的瞄具颜色11
move:b = yes	是否随动装表
drawUpward:b = no	是否镜像刻度
radial:b = no	是否启用径向刻度
circleMode:b = no	是否绘制圆形径向刻度
radialStretch:r = 1.0	径向刻度分布密度
radialAngle:r = 0.0	径向刻度初始角度12
radialRadius:p2 = 0, 0	径向刻度轨迹半径13

脚注
1可用值(1/6000)"ussr",(1/6400)"nato",(1/6283)"real"
23以上两个参数是默认的十字准线
4绘制在垂直十字线上
5第一个值是带数字的刻度长度,第二个值是不带数字的刻度长度; 在启用圆形径向刻度时,第一个值是刻度的粗细,第二个值是刻度的半径
6相对于数字位置
7可用值-1,0,1;即左对齐,居中,右对齐
8-9位置偏移量除非特殊注明外均以屏幕中心为原点,数值格式均为先 x 轴后 y 轴;x 轴正方向向右,y 轴正方向向上
10-11颜色数值格式均为 r,g,b,a;最大值 255
12从 6 点钟开始,以度为单位
13第二个值为 1 时距离单位使用千分比例

图1、图2为修改 lineSizeMult:r = 2 和 fontSizeMult:r = 2 后 IT-1 默认瞄具的刻度厚度和字体大小变化的简单示例

原始文件

图1 (修改前)

原始文件

图2(修改后)


默认瞄具还包含代码块

crosshair_distances

,它决定了下坠刻度的密度。

crosshair_distances{
 distance:p3=200, 0, 0
 distance:p3=400, 4, 0
 distance:p3=600, 0, 0
 distance:p3=800, 8, 0
 distance:p3=1000, 0, 0
 distance:p3=1200, 12, 0
 distance:p3=1400, 0, 0
 distance:p3=1600, 16, 0
 distance:p3=1800, 0, 0
 distance:p3=2000, 20, 0
 distance:p3=2200, 0, 0
 distance:p3=2400, 24, 0
 distance:p3=2600, 0, 0
 distance:p3=2800, 28, 0
}

crosshair_distances

可以通过三种方式进行设置(注意:不能混合使用):

distance:p2 = 2800, 28	2800

是下坠刻度对应的距离,在相应位置绘制刻度;

28

是下坠刻度旁显示的数字,(0不显示);

distance:p3 = 2800, 28, 0.01

第一个值是下坠刻度对应的距离,第二个值是下坠刻度旁的数字(0不显示),第三个值是下坠刻度的长度;

distance { textPos:p2 = 0.042, 0; distance:p3 = 1000, 10, 0.01; }
textPos

是下坠刻度旁文本位置的附加偏移量;

distance:p3 = 200, 0, 0

同上;

水平十字线上的刻度

crosshair_hor_ranges

工作原理同上

crosshair_hor_ranges {
  range:p2 = -32, 32
  range:p2 = -28, 0
  range:p2 = -24, 24
  range:p2 = -20, 0
  range:p2 = -16, 16
  range:p2 = -12, 0
  range:p2 = -8, 8
  range:p2 = -4, 0
  range:p2 = 4, 0
  range:p2 = 8, 8
  range:p2 = 12, 0
  range:p2 = 16, 16
  range:p2 = 20, 0
  range:p2 = 24, 24
  range:p2 = 28, 0
  range:p2 = 32, 32
}

此处提供了一份默认瞄具的文件内容,附注释。

代码

//总体
thousandth:t="ussr"//坐标千分数:ussr(1/6000),nato(1/6400),real(1/6283)
fontSizeMult:r=1//文本的缩放倍率
lineSizeMult:r=1//线条的缩放倍率
drawCentralLineVert:b=true//是否绘制垂直十字线
drawCentralLineHorz:b=true//是否绘制水平十字线 

//适配载具类型
matchExpClass{
exp_tank:b=true
exp_heavy_tank:b=true
exp_tank_destroyer:b=true
exp_SPAA:b=true
}

crosshairColor:c=0,0,0,255//瞄具颜色(所有颜色都按照r,g,b,a格式输入)
crosshairLightColor:c=0,0,0,0//被照亮的瞄具颜色

//测距相关(只包含旧测距仪)
rangefinderUseThousandth:b=false//测距仪位置偏移量是否使用千分值
rangefinderProgressBarColor1:c=0,255,0,64//测距仪进度条颜色
rangefinderProgressBarColor2:c=255,255,255,64//测距仪进度条背景颜色
rangefinderTextScale:r=0.7//测距仪文本大小
rangefinderVerticalOffset:r=0.1//测距仪垂直位置,正方向向上
rangefinderHorizontalOffset:r=5//测距仪水平位置,正方向向右

drawDistanceCorrection:b=true//是否绘制距离显示器
distanceCorrectionPos:p2=-0.26,-0.05//距离显示器位置(所有位置都按照x,y输入)

detectAllyTextScale:r=0.7//侦察文本大小
detectAllyOffset:p2=4,0.05//侦察文本位置

//刻度相关
crosshairHorVertSize:p2=3,2//水平十字线上刻度长度
crosshairDistHorSizeAdditional:p2=0.005,0.003//垂直十字线上附加下坠刻度长度
drawUpward:b=false//下坠刻度朝向
distancePos:p2=0.15,0//下坠刻度位置 
crosshairDistHorSizeMain:p2=0.03,0.02//下坠刻度长度

crosshair_hor_ranges{//绘制水平十字线上的刻度
//range:p2(来自2个值的数据)=-32,32(距离,文本)
 range:p2=-32,32
 range:p2=-28,0
 range:p2=-24,24
 range:p2=-20,0
 range:p2=-16,16
 range:p2=-12,0
 range:p2=-8,8
 range:p2=-4,0
 range:p2=4,0
 range:p2=8,8
 range:p2=12,0
 range:p2=16,16
 range:p2=20,0
 range:p2=24,24
 range:p2=28,0
}

crosshair_distances{//绘制下坠刻度
//distance:p3(来自3个值的数据)=200,0,0(距离,文本,长度)
 distance:p3=200,0,0
 distance:p3=400,4,0
 distance:p3=600,0,0
 distance:p3=800,8,0
 distance:p3=1000,0,0
 distance:p3=1200,12,0
 distance:p3=1400,0,0
 distance:p3=1600,16,0
 distance:p3=1800,0,0
 distance:p3=2000,20,0
 distance:p3=2200,0,0
 distance:p3=2400,24,0
 distance:p3=2600,0,0
 distance:p3=2800,28,0
}

drawLines{//绘制线段
 line{
   line:p4/*来自4个值的数据*/=0,0,0,0/*起点坐标和终点坐标*/
   radialCenter:p2=0,0//旋转轴坐标
   radialAngle:r=0//初始旋转角度
   radialMoveSpeed:r=0//径向移动速度
   move:b=false//是否随动
   moveRadial:b=false//是否径向移动
   thousandth:b=false//是否千分
 }
}

drawCircles {//绘制圆形
 circle{
   segment:p2/*来自2个值的数据*/=0,0/*从6点钟方向开始抹去度数和绘制度数*/
   pos:p2=0,0//圆心坐标
   diameter:r=0.5//半径
   size:r=2//大小
   radialCenter:p2=0,0//旋转轴坐标
   radialAngle:r=0//初始旋转角度
   radialMoveSpeed:r=0//径向移动速度
	 move:b=false//是否随动
   moveRadial:b=false//是否径向移动
   thousandth:b=false//是否千分
 }
}

drawTexts{
 text{
   text:t=""//"文本"
   align:i=1//对齐(-1,0,1)
   pos:p2=0,0//坐标
   size:r=1//大小
   radialCenter:p2=0,0//旋转轴坐标
   radialAngle:r=0//初始旋转角度
   radialMoveSpeed:r=0//径向移动速度
   move:b=false//是否随动
   moveRadial:b=false//是否径向移动
   highlight:b=false//是否能被点亮
   thousandth:b=false//是否千分
 }
}

drawQuads{//绘制四边形(两点重合即为三角形)
 quad{
   tl:p2=-0,0//左上点坐标
   tr:p2=0,0//右上点坐标
   br:p2=0,0//右下点坐标
   bl:p2=-0,0//右上点坐标
   center:p2=0,-90//旋转中心坐标
   radialCenter:p2=0,0//旋转轴坐标
   radialAngle:r=0//初始旋转角度
   radialMoveSpeed:r=0//径向移动速度
   move:b=false//是否随动
   moveRadial:b=false//是否径向移动
   thousandth:b=false//是否千分
 }
}

以上是默认瞄具包含的参数,除此之外,自定义瞄具还提供更多新选项。

特定弹药对应的下坠刻度

默认瞄具会自动根据所选弹药的弹道数据绘制相应的下坠刻度。而下述代码块可以帮助您创建 “永久显示多种特定弹药对应下坠刻度” 的自定义瞄具。

为了绘制这些刻度,需要添加

ballistics

块和

bullet

块,每个块都是不可或缺的。弹药的弹道数据由游戏依照弹药类型和弹速自行计算,需要使用以下两种参数进行声明:

bulletType:t = "apcbc_tank"

— 计算弹道数据所需的弹药类型 ID(见下表)

speed:r = 624.0

— 计算弹道数据所需的出膛速度(见弹药详情卡片)

这些刻度和携带的弹药相关联,如果坦克没有携带符合上述参数的弹药,则不会显示对应的刻度。

包含三种弹药(APFSDS 3BM25,HEATFS 3BK17M,APCBC BR-412D)下坠刻度的 T-55A 坦克瞄具实例如下:

代码

ballistics {
  bullet {
    bulletType:t = "apds_fs_tungsten_small_core_tank"
    speed:r = 1430.0

    drawAdditionalLines:b = no
    drawDistanceCorrection:b = yes
    distanceCorrectionPos:p2 = -0.15, -0.15
    drawUpward:b = yes // возможность рисовать шкалу отраженной вверх как на советских прицелах   например ТШ2Б-41
    distancePos:p2 = 0.03, 0.0 // смещение шкалы относительно центра
    textAlign:i = 1
    textPos:p2 = -0.012, 0.0
    textShift:r = 0.0 
    crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
    crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

    crosshair_distances {
      distance:p3 = 200, 0, 0 // + и - риски
      distance:p3 = 400, 0, 0
      distance:p3 = 600, 0, 0
      distance:p3 = 800, 0, 0
      distance:p3 = 1000, 10, 0.01
      distance:p3 = 1200, 0, 0
      distance:p3 = 1400, 0, 0
      distance:p3 = 1600, 0, 0
      distance:p3 = 1800, 0, 0
      distance:p3 = 2000, 20, 0.01
    }
  }
 
  bullet {
    bulletType:t = "heat_fs_tank"
    speed:r = 1085.0

    drawAdditionalLines:b = no // рисовать риски на центральной линии

    drawDistanceCorrection:b = no
    distanceCorrectionPos:p2 = -0.09, -0.05

    distancePos:p2 = -0.02, 0.0 //смещение шкалы
    textPos:p2 = 0.02, 0.0
    textShift:r = 0.0 //смещение текста
    textAlign:i = 2 //положение текста относительно рисок
    crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
    crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

    crosshair_distances {
      distance:p3 = 200, 0, 0
      distance:p3 = 300, 0, 0
      distance:p3 = 400, 0, 0
      distance:p3 = 500, 5, -0.01
      distance:p3 = 600, 0, 0
      distance:p3 = 700, 0, 0
      distance:p3 = 800, 0, 0
      distance:p3 = 900, 0, 0
      distance:p3 = 1000, 10, -0.01
      distance:p3 = 1100, 0, 0
      distance:p3 = 1200, 0, 0
      distance:p3 = 1300, 0, 0
      distance:p3 = 1400, 0, 0
      distance:p3 = 1500, 15, -0.01
      distance:p3 = 1600, 0, 0
      distance:p3 = 1700, 0, 0
      distance:p3 = 1800, 0, 0
      distance:p3 = 1900, 0, 0
      distance:p3 = 2000, 20, 0
    }
  }

  bullet {
    bulletType:t = "apcbc_tank"
    speed:r = 887.0

    drawAdditionalLines:b = no // рисовать риски на центральной линии

    drawDistanceCorrection:b = no
    distanceCorrectionPos:p2 = -0.09, -0.05

    distancePos:p2 = -0.07, 0.0 //смещение шкалы
    textPos:p2 = 0.02, 0.0
    textShift:r = 0.0 //смещение текста
    textAlign:i = 2 //положение текста относительно рисок
    crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
    crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

    crosshair_distances {
      distance:p3 = 200, 0, 0
      distance:p3 = 300, 0, 0
      distance:p3 = 400, 0, 0
      distance:p3 = 500, 5, -0.01
      distance:p3 = 600, 0, 0
      distance:p3 = 700, 0, 0
      distance:p3 = 800, 0, 0
      distance:p3 = 900, 0, 0
      distance:p3 = 1000, 10, -0.01
      distance:p3 = 1100, 0, 0
      distance:p3 = 1200, 0, 0
      distance:p3 = 1300, 0, 0
      distance:p3 = 1400, 0, 0
      distance:p3 = 1500, 15, -0.01
      distance:p3 = 1600, 0, 0
      distance:p3 = 1700, 0, 0
      distance:p3 = 1800, 0, 0
      distance:p3 = 1900, 0, 0
      distance:p3 = 2000, 20, 0
    }
  }
}

原始文件

T-55A 坦克瞄具游戏内效果

bullet 块中的参数:

参数 描述

bulletType:t = "apds_fs_tungsten_small_core_tank"	弹药类型
speed:r = 1430.0	出膛速度
drawAdditionalLines:b = no	是否在垂直十字线上绘制该下坠刻度的附加刻度
drawDistanceCorrection:b = yes	是否绘制距离显示器(并非测距仪)
distanceCorrectionPos:p2 = -0.15, -0.15	距离显示器的位置偏移量
distancePos:p2 = 0.03, 0.0	下坠刻度相对于瞄具中心的偏移量
textAlign:i = 1	下坠刻度旁数字的对齐方式(-1,0,1 即 靠左,居中,靠右)
textPos:p2 = -0.012, 0.0	下坠刻度旁数字相对于下坠刻度的位置偏移量
textShift:r = 0.0	附带数字的下坠刻度相对于数字位置的长度变化量
crosshairDistHorSizeMain:p2 = 0.0075, 0.0075	下坠刻度的长度
crosshairDistHorSizeAdditional:p2 = 0.005, 0.003	垂直十字线上附加刻度的长度

同轴机枪的下坠刻度也可以用一个bullet块来绘制,输入以下两个参数即可。

triggerGroup:t = "coaxial"(mandatory)
speed:r = 815.0

径向刻度和元素(用于bullet 块中)

参数 描述

radial:b = no	是否启用径向刻度
circleMode:b = no	是否用圆形替代线条绘制径向刻度
move:b = yes	装表后是否随动
radialStretch:r = 1.0	径向密度乘子
radialAngle:r = 0.0	径向刻度的初始角度(从6点钟方向开始,以度为单位)
 radialRadius:p2 = 0, 0	径向刻度半径(第二个值为1时启用千分比例)
drawUpward:b = no	径向刻度方向(启用时为顺时针)
crosshairDistHorSizeMain:p2 = 0.0075, 0.0075	圆形刻度形状(第一个值是刻度的粗细,第二个值是刻度的半径)

绘制元素

使用

drawLines drawTexts drawCirclesdrawQuads

代码块能够绘制“线段、文本、圆、低多边形”这四种元素。您可以通过这些元素的堆叠来创作大型图案以最大限度的自定义瞄具。

径向移动元素

控制“线段、文本、圆、低多边形”这四种元素进行径向移动,需要使用以下四种参数:

参数 描述

moveRadial:b = yes	是否径向移动
radialMoveSpeed:r = 6.04	径向移动速度
radialCenter:p2 = 0.0, 0.0	旋转中心坐标(x,y ;以屏幕中心为原点)
radialAngle:r = 180.0	初始旋转角度(从0开始,以度为单位)

绘制线段

drawLines {
line { line:p4 = 0, -1.0, 0, -0.018; move:b = false; }
line { line:p4 = -50, 30, -50, 40; thousandth:b = true; }
}

绘制线段需要输入其起止点的两组坐标,格式如下例:

line { line:p4 = 0.25, -0.25, 0, -0.0; move:b = false; }

此实例绘制了一条从屏幕右上四分之一点开始,在屏幕中心结束的静止线段,不会随着装表移动。

原始文件

例1 在创建史实瞄具时,方便起见可以启用参数

thousandth:b = true

这将以密位作为单位(禁用时 1密位 ≈ 0.04单位 ),效果如下例:


line { line:p4 = -32, -32, 0, 0; thousandth:b = true; }

此实例绘制了一条向左上方延伸32密位的线段。

原始文件

例2

绘制文本

drawTexts {
 text {
   text:t = "X" // desired symbol
   align:i = 0 // offset relative to its indicated position
   pos:p2 = 32, 0 // coordinates of the X and Y symbol positions in fractions of the screen
   move:b = no // whether the text will move when a range is entered
   thousandth:b = yes // or in thousands
   size:r = 1.7 // text size
   highlight:b = yes
}

绘制圆

drawCircles {
 circle {
   segment:p2 = 0.0, 360.0; // Sector of a circle
   pos:p2 = 0.0, 90.0; // Position
   diameter:r = 3.0; // Diameter. If thousandth=yes, then in thousandths
   size:r = 2.0; // Line Thickness
   move:b = no;
   thousandth:b = yes;
 }
}

绘制低多边形

使用

drawQuads

代码块可以绘制拥有4个及以下顶点的低多边形。

drawQuads {
 quad {  // Simple fixed quadrangle
   tl:p2 = -10, -10; // Top left top
   tr:p2 = 10, -10; // Top left top
   br:p2 = 10, 10; // Top right bottom
   bl:p2 = -10, 10; // Top left bottom

   thousandth:b = true;
 }

 quad {  // Object that can be moved along the radius
   tl:p2 = -10, -140;
   tr:p2 = 10, -140;
   br:p2 = 0, -96;
   bl:p2 = 0, -96;

   center:p2 = 0, -90; // The center of the figure is needed for correct rotation. By default the geometric center of a shape.

   radialCenter:p2 = 0.0, 0.0;
   radialAngle:r = 0;
   radialMoveSpeed:r = 6.04;

   moveRadial:b = yes;
   thousandth:b = true;
 }
}


弹药类型 ID 以及其游戏内名称

火炮

列表

"apcr_tank"	"Armor-piercing composite rigid shell"
"apds_tank"	"Armor-piercing discarding sabot shell"
"apds_fs_long_tank"	"Armor-piercing fin-stabilized discarding-sabot shell"
"apds_fs_full_body_steel_tank"	"Armor-piercing fin-stabilized discarding-sabot shell"
"apds_fs_tungsten_small_core_tank"	"Armor-piercing fin-stabilized discarding-sabot shell (steel))"
"apds_fs_tungsten_l10_l15_tank"	"Armor-piercing fin-stabilized discarding-sabot shell"
"apbc_tank"	"Armor-piercing blunt-nosed shell"
"ap_large_caliber_tank"	"Armor-piercing blunt-nosed shell" (Used on the AP shell of the T34/M103)
"apc_tank"	"Armor-piercing sharp-nosed shell (with armor-piercing tip))"
"aphe_tank"	"Armor-piercing sharp-nosed high-explosive shell"
"aphebc_tank"	"Armor-piercing blunt-nosed high-explosive shell"
"apcbc_tank"	"Armor-piercing shell with armor-piercing tip and ballistic cap"
"ap_tank"	"Armor-piercing sharp-nosed solid shell"
"heat_tank"	"High-explosive hollow charge shell"
"heat_grenade_tank"	"Anti-tank grenade"
"heat_fs_tank"	"High-explosive non-rotating shell"
"hesh_tank"	"Armor-piercing incendiary shell"
"he_grenade_tank"	"High-explosive grenade"
"he_frag_tank"	"High-explosive shell"
"he_frag_fs_tank"	"High-explosive shell"
"shrapnel_tank"	"Shrapnel"
"atgm_tank"	"Anti-tank guided rocket"
"rocket_tank"	"Unguided rocket"
"smoke_tank"	"Smoke shell"


机枪

列表

名称 弹速 弹药类型

“7_7mm_Type_97_user_machinegun”	730	ap_ball
“7_7mm_Vikkers_user_machinegun”	920	i_t_ball
“7_62mm_DT_user_machinegun”	815	ap_i_ball
“7_62mm_M37_user_machinegun”	853	ap_ball
7_62mm_M73_user_machinegun	853	ap_ball
 7_62mm_M1919A4_user_machinegun	853	ap_ball
7_62mm_PKT_user_machinegun	815	ap_i_ball
7_62mm_SGMT_user_machinegun	815	ap_i_ball
7_62mm_Type74_user_machinegun	853	ap_ball
7_92mm_BESA_user_machinegun	880	ap_i_ball
7_92mm_MG3_user_machinegun	853	ap_ball
7_92mm_MG34_user_machinegun	880	ap_i_ball
7_92mm_MG42_user_machinegun	880	ap_i_ball
8mm_Breda_Mod38_user_machinegun	790	ap_i_t_ball
12_7mm_M2_HB_user_machinegun	887	ap_i_t_ball_M20
14_5mm_KPVT_user_machinegun	1000	ap_i_t_ball

史实准星实例

用户在创建史实自定义瞄具时可以非常接近瞄具在现实中的样子。

下例是意大利 P40 坦克的瞄具

原始文件

现实中 P40 坦克瞄具的照片

原始文件

游戏中 P40 坦克瞄具的实例

另附瞄具内容

代码

it_san_giorgio_x4 {
  crosshairHorVertSize:p2 = 0, 0
  rangefinderProgressBarColor1:c = 0, 255, 0, 64
  rangefinderProgressBarColor2:c = 255, 255, 255, 64
  rangefinderTextScale:r = 0.7
  rangefinderVerticalOffset:r = 15
  rangefinderHorizontalOffset:r = 5
  fontSizeMult:r = 1.25
  lineSizeMult:r = 1.5
  drawCentralLineVert:b = no
  drawCentralLineHorz:b = no
  crosshairDistHorSizeMain:p2 = 0.03, 0.02
  crosshairDistHorSizeAdditional:p2 = 0.005, 0.003
  distanceCorrectionPos:p2 = -0.2, -0.05
  drawDistanceCorrection:b = yes


  ballistics {
    bullet {
      bulletType:t = "apcbc_tank"
      speed:r = 624.0

      drawAdditionalLines:b = no
      drawDistanceCorrection:b = yes
      distanceCorrectionPos:p2 = -0.15, -0.15

      distancePos:p2 = 0.03, 0.0 // смещение шкалы относительно центра
      textAlign:i = 1
      textPos:p2 = -0.012, 0.0
      textShift:r = 0.0 
      crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
      crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

      crosshair_distances {
        distance:p3 = 200, 0, 0 // + и - риски
        distance:p3 = 400, 0, 0
        distance:p3 = 600, 0, 0
        distance:p3 = 800, 0, 0
        distance:p3 = 1000, 10, 0.01
        distance:p3 = 1200, 0, 0
        distance:p3 = 1400, 0, 0
        distance:p3 = 1600, 0, 0
        distance:p3 = 1800, 0, 0
        distance:p3 = 2000, 20, 0.01
      }
    }

    bullet {
      bulletType:t = "he_frag_tank"
      speed:r = 552.0

      drawAdditionalLines:b = no // рисовать риски на центральной линии

      drawDistanceCorrection:b = no
      distanceCorrectionPos:p2 = -0.09, -0.05

      distancePos:p2 = -0.02, 0.0 //смещение шкалы
      textPos:p2 = 0.02, 0.0
      textShift:r = 0.0 //смещение текста
      textAlign:i = 2 //положение текста относительно рисок
      crosshairDistHorSizeMain:p2 = 0.0075, 0.0075
      crosshairDistHorSizeAdditional:p2 = 0.005, 0.003

      crosshair_distances {
        distance:p3 = 200, 0, 0
        distance:p3 = 300, 0, 0
        distance:p3 = 400, 0, 0
        distance:p3 = 500, 5, -0.01
        distance:p3 = 600, 0, 0
        distance:p3 = 700, 0, 0
        distance:p3 = 800, 0, 0
        distance:p3 = 900, 0, 0
        distance:p3 = 1000, 10, -0.01
        distance:p3 = 1100, 0, 0
        distance:p3 = 1200, 0, 0
        distance:p3 = 1300, 0, 0
        distance:p3 = 1400, 0, 0
        distance:p3 = 1500, 15, -0.01
        distance:p3 = 1600, 0, 0
        distance:p3 = 1700, 0, 0
        distance:p3 = 1800, 0, 0
        distance:p3 = 1900, 0, 0
        distance:p3 = 2000, 20, 0
      }
    }
  }

  crosshair_hor_ranges {
    range:p2 = -60, 60
    range:p2 = -50, 0
    range:p2 = -40, 40
    range:p2 = -30, 0
    range:p2 = -20, 20
    range:p2 = 20, 20
    range:p2 = 30, 0
    range:p2 = 40, 40
    range:p2 = 50, 0
    range:p2 = 60, 60
  }

  drawLines {
    // Vertical lines
    line { line:p4 = 0, -1.0, 0, -0.018; move:b = false; }
    line { line:p4 = 0, 0.018, 0,   1.0; move:b = false; }

    // Horizontal lines
    line { line:p4 = -1.0, 0, -0.02, 0; }
    line { line:p4 = 0.02, 0,  1.0, 0; }

    // 
    line { line:p4 = -0.002, 0, -0.01, 0.00; move:b = false; }
    line { line:p4 = 0.002, 0,  0.01, 0.00; move:b = false; }

    line { line:p4 = 0.0, 0.002, 0.0, 0.01; move:b = false; }
    line { line:p4 = 0.0, -0.002, 0.0, -0.01; move:b = false; }

    line { line:p4 = -30, 30, -30, 40; thousandth:b = true; }
    line { line:p4 = -40, 30, -40, 40; thousandth:b = true; }
    line { line:p4 = -50, 30, -50, 40; thousandth:b = true; }

    line { line:p4 = 30, 30, 30, 40; thousandth:b = true; }
    line { line:p4 = 40, 30, 40, 40; thousandth:b = true; }
    line { line:p4 = 50, 30, 50, 40; thousandth:b = true; }

    line { line:p4 = -30, 0, -30, 10; thousandth:b = true; }
    line { line:p4 = -40, 0, -40, 10; thousandth:b = true; }
    line { line:p4 = -50, 0, -50, 10; thousandth:b = true; }

    line { line:p4 = 30, 0, 30, 10; thousandth:b = true; }
    line { line:p4 = 40, 0, 40, 10; thousandth:b = true; }
    line { line:p4 = 50, 0, 50, 10; thousandth:b = true; }
 
    line { line:p4 = 20, 0, 20, 3,5; thousandth:b = true; }
    line { line:p4 = -20, 0, -20, 3,5; thousandth:b = true; }
    line { line:p4 = 60, 0, 60, 5; thousandth:b = true; }
    line { line:p4 = -60, 0, -60, 5; thousandth:b = true; }

    line { line:p4 = 70, 0, 70, 5; thousandth:b = true; }
    line { line:p4 = -70, 0, -70, 5; thousandth:b = true; }
  }
}

本文档的原始版本https://wiki.warthunder.com/cdk/creation_sight 本文档的汉化版本https://3794432.github.io/warthunder_custom_sighting_reticles/