本帖最后由 大大的咸鱼 于 2022-7-29 17:09 编辑
· 前言
Flan's mod(Flan)是一款历史悠久的Minecraft(MC)枪械/载具模组,也是MC战圈里最著名的两个枪械模组之一。不过与维克多的枪械模组追求更高的武器操作还原度不同,Flan模组著名在百花齐放的内容包。玩家可以通过修改枪械/载具的数据文本来满足自己的客制化需求,或使用官方提供的内容包开发软件ToolBox来制作自己的内容包。鉴于Flan模组本身源自外国,国内相关教程相对稀少,我自己在入坑时也走了不少弯路,故在此制作相关配置数据的解析以帮助有需要的国内Flan内容包制作者以及想要入坑Flan内容制作的新人。
注1:本贴仅包含基于Flan's mod 4.1.10以及Flan's mod Ultimate 1.1的枪械/载具配置数据注解,不包含TB建模转码教程。(PS: 这方面我过段时间应该会开坑)
注2:由于Flan's mod的可用参数基本上是Flan's mod Ultimate的子集,在讲解时先展示Flan的可用参数,然后再补充Flan plus的额外可用参数。
注3:代码中被/**和*/括住的内容为Flan模组作者对该项数据的解释,并非参数的组成部分。
注4:用<>括住的内容为扩展选读内容,包括一些参数的巧用、有可能出现的错误以及简单的运作原理介绍。该部分内容通常被隐藏。
注5:笔者不保证内容的全部准确,如你在使用本贴内容的过程中出现了任何问题笔者概不负责。
注6:如果你发现了任何错误,欢迎指出,我会尽快更新修正并将您添加至鸣谢列表。
特别注意:不推荐直接在压缩包内修改数据,这样做可能会导致修改了数据的武器/载具直接在游戏内消失,是否会出现这样的问题取决于你的压缩软件。推荐先解压后修改数据,如有需要再重新打包。
Flan's mod(Flan)是一款历史悠久的Minecraft(MC)枪械/载具模组,也是MC战圈里最著名的两个枪械模组之一。不过与维克多的枪械模组追求更高的武器操作还原度不同,Flan模组著名在百花齐放的内容包。玩家可以通过修改枪械/载具的数据文本来满足自己的客制化需求,或使用官方提供的内容包开发软件ToolBox来制作自己的内容包。鉴于Flan模组本身源自外国,国内相关教程相对稀少,我自己在入坑时也走了不少弯路,故在此制作相关配置数据的解析以帮助有需要的国内Flan内容包制作者以及想要入坑Flan内容制作的新人。
注1:本贴仅包含基于Flan's mod 4.1.10以及Flan's mod Ultimate 1.1的枪械/载具配置数据注解,不包含TB建模转码教程。(PS: 这方面我过段时间应该会开坑)
注2:由于Flan's mod的可用参数基本上是Flan's mod Ultimate的子集,在讲解时先展示Flan的可用参数,然后再补充Flan plus的额外可用参数。
注3:代码中被/**和*/括住的内容为Flan模组作者对该项数据的解释,并非参数的组成部分。
注4:用<>括住的内容为扩展选读内容,包括一些参数的巧用、有可能出现的错误以及简单的运作原理介绍。该部分内容通常被隐藏。
注5:本人不保证内容的全部准确,如你在使用本贴内容的过程中出现了任何问题本人概不负责。
注6:如果你发现了任何错误,欢迎指出,我会尽快更新修正并将您添加至创作鸣谢列表。
特别注意:不推荐直接在压缩包内修改数据,这样做可能会导致修改了数据的武器/载具直接在游戏内消失,是否会出现这样的问题取决于你的压缩软件。推荐先解压后修改数据,如有需要再重新打包。
· 正文
章节1:有关Flan数据配置文件的简单介绍
注:该章节为新人科普向,有相关基础的人可自行略过。
1.1什么是Flan数据配置文件
Flan数据配置文件就是内容包作者为自己的武器/载具写的数据文件,其中一般包含了武器/载具的数据特征,包括武器伤害、使用弹药、载具血量等,一般为储存在内容包特定路径下的txt文本文件。通过修改配置文件内的数据我们就可以直接改变武器/载具在游戏中的相关表现,从而达到客制化数据的目的。
1.2Flan数据配置文件路径
枪械:内容包包名\guns
弹药:内容包包名\bullets
武器配件:内容包包名\attachments
投掷武器:内容包包名\grenades
头盔/护甲:内容包包名\armorFiles
陆地载具:内容包包名\vehicles
飞行载具:内容包包名\planes
1.3参数的基本形式
参数在数据文件中的基本形式为:参数名 参数
其中参数名不可修改,包括大小写,用于向程序指明参数含义。而参数名后面跟的参数是可以修改的,它指明了该参数的输入值。参数不一定是数字,也可以是提前设置好的字符串或需要引用的文件名。
例1:Damage 8
其中"Damage"为参数名,'8'为参数。
有些参数可能有复数个输入值,这些输入值之间需要用空格隔开。
例2:paintjob Icon_HK416 Skin_HK416 yellow 3
其中"paintjob"为参数名,"Icon_HK416","Skin_HK416","yellow",'3'分别为4个输入参数。
特别注意:由于空格是分隔不同参数用的判断符,因而如果一个参数里面包含了空格字符,那么它就会被程序识别为两个独立的参数从而导致错误。这种情况通常出现在需要引用模型、贴图或声音文件之时,要注意被引用的文件名中不能含有空格,否则就可能会出现上述错误。如果有需要,可以将文件名中的所有的空格删除或者用'_'符来替换所有'空格',就像上面的例2一样。
1.4如何获得指定版本的Flan's mod/Flan's mod Ultimate的全部可用参数
获得一个版本的Flan/FlanPlus mod可用参数的方法一般有两种。一种方法是上网搜索配合对应版本的Flan/FlanPlus mod使用的内容包,然後拆包查看里面对应类型的物品的配置文件所包含的参数代码。这种方法操作难度小,但往往只能获得一个版本的Flan/FlanPlus mod的部分可用参数,这取决于该内容包作者究竟使用了多少种参数代码。另一种方法是去网上下载对应版本的Flan/FlanPlus mod源代码文件,其支持的所有参数就储存在 源码文件夹\src\main\java\com\flansmod\common下的对应文件夹中。关于如何在源代码中辨别这些可用参数,我会在第十二章中讲解。
章节2:枪械配置文件参数解析
1.1Flan's mod所有可用参数
前置:Flan's mod所有可用参数速查:
1. Colour
2. Name
3. ShortName
4. ItemID
5. Model
6. ModelScale
7. Texture
8. Icon
9. paintjob
10. Damage
11. Recoil
12. ShootDelay
13. Mode
14. NumBrustRounds
15. Ammo
16. NumAmmoSlots/NumAmmoItemsInGun/LoadIntoGun
17. CanForceReload
18. ReloadTime
19. ReloadSound
20. ShootSound
21. SoundLength
22. DistortSound
23. IdleSound
24. IdleSoundLength
25. WarmupSound
26. WarmupSoundLength
27. MinigunStartSpeed
28. LoopedSound/SpinSound
29. LoopedSoundLength/SpinSoundLength
30. CooldownSound
31. AllowBarrelAttachments & AllowScopeAttachments & AllowStockAttachments & AllowGripAttachments
32. NumGenericAttachmentSlots
33. AllowAttachments
34. AllowAllAttachments
35. NumBullets
36. Accuracy/Spread
37. BulletSpeed
38. OneHanded
39. CanShootUnderwater
40. UsableByPlayers & UsableByMechas
41. ConsumeGunOnUse
42. DropItemOnShoot
43. FOVZoomLevel
44. ZoomLevel
45. Scope
46. Knockback
47. KnockbackReduction/KnockbackModifier
48. MoveSpeedModifier/Slowness
49. Deployable
50. DeployedModel
51. DeployedTexture
52. StandBackDistance
53. PivotHeight
54. TopViewLimit & BottomViewLimit & SodeViewLimit
55. SecondaryFunction
56. MeleeDamage
57. MeleeTime
58. AddNode
59. MeleeDamagePoint/MeleeDamageOffset
60. shield
61. Description
Flan's mod(基于Flan's mod 4.1.10)所有可用参数:
1. Colour参数,参数的表达形式为:
注解:该参数用于指示显示模型时模型贴图的最大RGB颜色显示范围,默认值为255 255 255,不建议修改
2. Name参数,参数的表达形式为:
注解:该参数指明了枪械的名称,但却并非枪械在游戏中实际显示的名称,可以认为是一个没有任何实际意义的参数。如果有修改枪械在游戏中显示的名字的需要,请参考→章节10:.lang配置文件参数解析(计划更新)。
<你要知道Flan的作者肯定不是傻子,做个没有意义的参数出来自然是出力不讨好的行为。所以既然作者设计了这个参数,那它就肯定要有它的作用。不过这个作用是什么呢?其实这个参数的作用是为了向ToolBox中自动生成.lang文件的程序指明作者想要该枪械在游戏中显示的名字,以便其生成.lang文件。至于更加详细的解释我会在我的TB教学贴中给出(先挖大坑)。>
3. ShortName参数,参数的表达形式为:
注解:该参数指明了游戏系统用于区别枪械的名称,并非枪械在游戏中的显示名称。如果需要修改枪械在游戏中的显示名称请参考→章节10:.lang配置文件参数解析(计划更新)。但如果内容包里的.lang文件中并不含该ShortName的命名转化式或内容包中根本没有.lang文件,那么该枪械在游戏中显示的名字将变为 item.枪械的ShortName.name 的格式,这种请况通常出现在玩家自改ShortName却没有相应地修改.lang文件时。
特别注意:如果ShortName有重名现象可能会导致两个物品在游戏中被显示成一个<因为游戏程序分辨不出来这两个东西,所有东西相互重ShortName名都有可能会导致这种情况>或其他致命错误,一定要注意。
4. ItemID参数,参数的表达形式为:
注解:该参数用于指示枪械在系统中的ID,其主要功能为用于使用游戏内的give指令和调整物品在创造模式物品栏中显示时的顺序。该参数为非必要参数,可以不写参数及参数名,或写成ItemID Your ID,此时游戏系统会自动为该枪械分配ID。
5. Model参数,参数的表达形式为:
注解:该参数指明了该枪所引用的模型文件地址以及模型文件名称。存放模型文件的文件夹地址为.minecraft\Flan\内容包包名\com\flansmod\client\model\模型文件所在文件夹名。
注意1:Flan's mod仅支持.class模型文件(编译后的模型文件)。
注意2:如果两个不同的包中存在名称完全相同的模型母文件夹和模型文件可能会导致引用该模型文件的物品在实际游戏中3D模型无法正常显示。
<直接将一个包中的模型转移到另一个包中并修改配置文件中的模型所在母文件夹名和模型名可能并不能让该模型正常显示(至于原因可能是Flan会对模型路径进行检查以避免直接的模型盗取,在ToolBox中输出的.java模型文件中其实是有指示模型编译输出位置的代码的),但Flan其实是支持跨包引用模型的,即在一个包的配置文件中引用另一个包的模型是可行的,只要填些另一个包中的模型所在母文件夹名和模型名即可。如果不想要另一个包中的其他物品也可以简单地删除另一个包中的所有配置文件,只留下com文件夹(和assets文件夹,如果同时引用了另一个包中的贴图、声音或图标文件)。>
6. ModelScale参数,参数的表达形式为:注解:该参数用于指示3D模型在游戏中显示时的缩放倍数,其默认值为1.0,即没有缩放。
<由于Flan's mod的内容包开发软件ToolBox在建模时的特性,内容包作者在制作精度较高的模型时往往需要将模型本身制作的大一些,然后再利用ModelScale参数将模型在游戏中的显示大小缩小到合适的比例,所以一般建模精度较高的内容包中该参数的值都比较小。>
7. Texture参数,参数的表达形式为:
注解:该参数指明了该枪所引用的贴图文件名称。存放贴图文件的文件夹地址为.minecraft\Flan\内容包包名\assets\flansmod\skins。
注意:Flan's mod仅支持PNG格式的图片文件。
<FLan的贴图文件和模型文件一样支持跨包引用,直接在参数名后填写想要引用的贴图文件的名称即可。>
8.Icon参数,参数的表达形式为:
注解:该参数指明了该枪在物品栏显示时的图标文件名称。存放图标文件的文件夹地址为.minecraft\Flan\内容包包名\assets\flansmod\textures\items。
<该文件同样支持跨包引用,引用方法同上。>
9.paintjob参数,参数的表达形式为:注解:该参数指明了武器皮肤所引用的Icon、贴图文件名。颜料类型包括:"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "gray", "pink", "lime", "yellow", "lightBlue", "magenta", "orange", "white",每个分别对应一种游戏内的颜料。如果该枪械皮肤需要复数种颜料来兑换,不同颜料名+数量之间用空格隔开即可,例如:
<同理皮肤贴图文件支持跨包引用,引用方法同上。>
10. Damage参数,参数的表达形式为:注解:该参数用于指示武器子弹的直接击中伤害,单位为半颗心(Steve一共拥有20个半颗心的血量呢!),该参数的默认值为0.0。
11. Recoil参数,参数的表达形式为:
注解:该参数用于指示枪械在垂直方向上的后坐力,该值越大单发后坐力越大。
12. ShootDelay参数,参数的表达形式为:
注解:该参数用于指示全自动或多连发点射模式下武器发射两颗子弹之间的时间间隔以及半自动武器的最高射速上限,单位为1/20秒。例如该参数填2,那么武器的全自动射速就为20/2发每秒,即600rpm。该参数的默认值为0。
13. Mode参数,参数的表达形式为:
注解:该参数指明了枪械的射击模式,分别为FULLAUTO(全自动模式)、SEMIAUTO(半自动模式)、BURST(多连发点射模式)以及Minigun(加特林模式),参数只能填其中一个,该参数的默认值为FULLAUTO。
14. NumBrustRounds参数,参数的表达形式为:
注解:该参数用于指示枪械在多连发点射模式下一次射出的子弹数,比如M16A4的多连发点射模式是三连发,那么这个参数就填3,KRISS Vector的多连发点射模式为两连发,这个参数就填2。该参数的默认值为3。
15.Ammo参数,参数的表达形式为:注解:这个参数指明了武器可以使用的弹药,参数为所用弹药的ShortName。不过要注意该参数不支持复数个参数输入,如果武器需要支持复数种弹药的使用,那么应该写成如下形式:
而不应该是这种形式:
<Flan支持武器引用投掷类武器作为枪支/发射器弹药,引用格式同上,参数改为投"掷类武器名ShortName"即可。至于Flan为什么要允许武器引用投掷类武器作为弹药,这是因为投掷类武器可以实现一些子弹代码无法实现的效果,比如制造烟雾、延时起爆等等,通常用于如榴弹发射器一类的武器。>
16.NumAmmoSlots/NumAmmoItemsInGun/LoadIntoGun参数,参数的表达形式为:
注解:这三种参数名其实指向的是同一个参数,所以你只需要挑选其中一种使用即可,它表示一把武器的最大可插弹夹数。如果你在配置文件中使用了多个该参数,那么最终游戏中武器的最大可插弹夹数取决于这些参数中的最后一个,例如:
那么最后在游戏中该枪的最大可插弹夹数为5。
如果武器可以挂载复数个弹夹,那么武器将会按照顺序依次消耗每个弹夹中的子弹。该功能一般用于模拟霰弹枪/左轮手枪/转轮榴弹发射器的填装效果。该参数默认值为1。
<这个参数的存在允许了Flan中两种弹药装载的形式。其中第一种形式是比较常见的形式,即将每把武器只插一个弹夹。以M4A1为例,即每个弹夹30发,武器只插一个弹夹。这种装填形式的好处是可以模拟真实的弹夹情况,即子弹不会自动合并。但这种形式也有几个严重的缺点,其一为未打完的弹夹之间无法合并,即使两个弹夹中的剩余子弹数量相同;其二为Flan中用于整理弹夹子弹的机制并不完善,两个剩余20发子弹的弹夹会被合并成一个30发的弹夹,多出来的10发就消失了。另一种形式为武器可插弹夹为30个,每个弹夹只包含一发子弹(其实就是将弹夹模拟成子弹)。这种形式的缺点就是弹药会自动合并,不会出现没打完的弹夹(因为已经算不上是弹夹了),但反过来说也是个优点。同时这种形式还允许武器的一个弹夹中包含不同类型的弹药(比如每5发子弹里面有一发曳光弹)。因而相对来说,我更推荐后者。>
17.CanForceReload参数,参数的表达形式为:注解:该参数指明了是否允许玩家在武器在仍有弹药剩余的情况下按R换弹,该参数默认值为True。
18.ReloadTime参数,参数的表达形式为:
注解:该参数用于指示枪械在游戏中的换弹时长,单位为1/20秒。如果该枪械使用了自定义的换弹动画,那么其换弹动画时长可能是不会随ReloadTime参数而改变的,但是从按下R键到可以进行下次发射的最短时间一定是ReloadTime。
19.ReloadSound参数,参数的表达形式为:
注解:该参数指明了武器在换弹时所播放的声音文件的名称。Flan's mod内容包的声音文件统一都在内容包包名\assets\flansmod\sounds路径下。如果需要修改声音文件,直接将想要替换的文件名改成要被替换的文件名,然后拖入声音文件夹下覆盖即可。如果需要改变原来的声音文件名称或添加新的声音文件,记得去修改内容包包名\assets\flansmod文件夹下的sounds.json文件来进行注册,否则该声音文件并不会被游戏系统识别引用。关于如果修改sounds.json文件,请参考→章节11:sounds.json文件参数解析(计划更新)。
注意:Flan's mod仅支持.ogg格式的声音文件。
20.ShootSound参数,参数的表达形式为:
注解:该参数指明了武器在射击时所播放的声音文件的名称。相关注意事项同上。
21.SoundLength参数,参数的表达形式为:
注解:该参数用于指示播放射击声音文件时的播放时长,单位为1/20秒。
22.DistortSound参数,参数的表达形式为:
注解:该参数指明了是否使游戏内的声音文件产生小幅不同(每次播放时),比如射击时的声音音调时高时低(小幅的),以模拟现实情况。该参数默认值为True,一般只有当该武器的类型为Minigun(加特林)时才将此参数设置为False。
23.IdleSound参数,参数的表达形式为:注解:该参数指明了当武器被拿在手上时会被自动播放的音效文件,有些类似传说级武器自带背景音效的感觉。
24.IdleSoundLength参数,参数的表达形式为:
注解:该参数用于指示播放IdleSound的长度,单位为1/20秒。目前不清楚声音文件在播放到指定长度后是否会循环播放(没有测试过,因为这个功能基本都用不上)。
25.WarmupSound参数,参数的表达形式为:
注解:这个参数主要是为Minigun(加特林)服务的,就是开始长按鼠标时播放的声音,主要用来模拟Minigun的启动声音(枪管刚开始旋转那会儿的声音),同时也决定了Minigun的启动时间,即按下鼠标到真正开始发射弹药所需要的时间。
<该参数也可以用来设定蓄力武器的蓄力时长以及蓄力声音。>
26.WarmupSoundLength参数,参数的表达形式为:
注解:该参数用于指示WarmupSound的播放长度,单位为1/20秒。该参数默认值为20。
27.MinigunStartSpeed参数,参数的表达形式为:
注解:该参数用于指示当Minigun(加特林)开始发射弹药时枪管将会达到的旋转速度,在按住射击键且武器的射击模式被设置为minigun的情况枪管转速从0开始每秒+2直到其大小大于等于该参数的参数值。
28.LoopedSound/SpinSound参数,参数的表达形式为:注解:这个参数也是主要是为Minigun(加特林)服务的,指明了Minigun枪管旋转的声音文件名。该声音文件将在WarmupSound播放完毕后开始循环播放,直至玩家松开射击键为止。
注意:Flan作者的建议如果需要使用LoopedSound/SpinSound的话最好将DistortSound设定为False。
<其实LoopedSound/SpinSound还可以用来播放类似激光枪、镭射枪一类的连续输出型武器的声音,只要将WarmupSound的长度调成0即可。>
29.LoopedSoundLength/SpinSoundLength参数,参数的表达形式为:
注解:该参数用于指示LoopedSound声音文件的长度,单位为1/20秒。该参数默认值为20。
30.CooldownSound参数,参数的表达形式为:
注解:该参数同样是为Minigun(加特林)服务的,它指明了当玩家松开鼠标时将会播放的声音文件的名称,用于模仿Minigun枪管逐渐停止旋转的声音。不过该参数同样可以用于模拟枪管/发射器冷却以及弹壳落地的声音。
31.AllowBarrelAttachments & AllowScopeAttachments & AllowStockAttachments & AllowGripAttachments参数,参数的表达形式为:
注解:这4个参数分别指明了该武器是否允许安装BarrelAttachments(枪管/枪口配件)、AllowScopeAttachments(瞄准镜)、AllowStockAttachments(枪托)、AllowGripAttachments(握把),默认值都为False。如果这些参数的值为True,那么将该武器放到枪械改装台上时就能看到相应的配件槽了。不过该参数并不决定配件在武器上的安装坐标,安装坐标在武器3D模型文件中,是在建模时就设置好的。如果3D模型文件中没有设置某种配件的安装坐标,那么安装坐标就是默认值(0,0,0)。所以如果你单纯地将一把原本没有某种配件槽的武器通过修改该参数来打开相应的配件槽,相关配件可能并不能显示在正确的位置上。
32.NumGenericAttachmentSlots参数,参数的表达形式为:
注解:该参数用于指示武器的可用Generic类型配件(通用型配件)槽数(就是将武器放到枪械改造台后在最左边显示的槽数)。Generic类型配件一般没有3D模型,但是可以像上面的4种配件一样影响武器的性能数据。
33.AllowAttachments参数,参数的表达形式为:注解:该参数指明了所有可以被安装在该枪上的配件的ShortName,支持复数个参数输入,常用于阻止一种武器专用的配件被安装到另一种武器上。比如你给手枪做了个消音器,但是不想让这个消音器被装到步枪上,那么就可以在手枪的该参数后面添加这个消音器的ShortName而步枪的则不添加。
34.AllowAllAttachments参数,参数的表达形式为:
注解:该参数与AllowAttachments相对,如果该参数的参数值为True,那么任何ShortName的配件都可以被安装。不过注意,如果该参数的参数值为True,那么其他内容包里的配件也会被允许安装到该武器上,如果你不想自己包里的枪被装上其他包里的配件,那么你可以把该参数的参数值设置为False并将你的包里的所有配件的ShortName在AllowAttachments参数后列出。
35.NumBullets参数,参数的表达形式为:
注解:该参数用于指示枪械在射击时一次射出的子弹数,默认值为1,通常用于霰弹枪的配置文件。
36.Accuracy/Spread参数,参数的表达形式为:
注解:该参数用于指示枪械发射的子弹在游戏中的散布程度,该参数参数值越大子弹的散射程度就越大,0.0就是没有散射,不过注意,子弹的散布不会受是否瞄准而改变。该参数通常配合NumBullets参数来使用以制造霰弹枪的射击效果,也可用于平衡一些短枪的属性效果,比如手枪或者冲锋枪。该参数的默认值为5.0。
37.BulletSpeed参数,参数的表达形式为:
注解:该参数用于指示子弹在离开武器时的速度,默认值为5.0。目前尚不清楚该参数的单位。
38.OneHanded参数,参数的表达形式为:
注解:该参数指明了武器是否可以被双持,默认值为False。双持的办法是拿起一把可以双持的武器,然后按住蹲下键滑动鼠标滑轮,游戏系统会自动遍历当前物品栏内的所有物品(不包括背包中的物品),并将找到的第一个另一把可双持武器添加到你的左手上。防爆盾也可以被设置成可双持武器。
39.CanShootUnderwater参数,该参数的表达形式为:
注解:该参数指明了该武器是否可以在水下射击。该参数的默认值为True。
40.UsableByPlayers & UsableByMechas参数,参数的表达形式为:注解:该参数指明了该武器是否可以被玩家/机甲使用。这两个参数的默认值均为True。
41.ConsumeGunOnUse参数,参数的表达形式为:
注解:该参数指明了武器在发射后是否会消失,通常用于类似Panzerfaust一类的一次性发射器,默认值为False。
42.DropItemOnShoot
注解:该参数用于指示武器在射击后会掉落的物品的ShortName,而该物品为凭空产生的,并不需要玩家背包中拥有,不过该参数似乎并不支持复数个参数的输入。
43.FOVZoomLevel参数,参数的表达形式为:注解:该参数用于指示武器在瞄准时的放大倍数,默认值为1.5。其实该参数的运作原理就是在瞄准时将MC的“视角”设置变小从而达到放大的效果。不过比较狗的地方是缩小玩家的“视角”并不会将手里的物品放大,所以在瞄准时枪的模型是不会放大的;另外一点就是利用FOVZoomLevel放大时并不会降低玩家的鼠标速度,所以如果你把这个参数设置的比较大,那么放大后你会感到快乐(不过我已经找到了这个bug的修复方法,相关具体操作我会在第13章中讲解)。
44.ZoomLevel参数,参数的表达形式为:注解:该参数用于指示武器在瞄准时的放大倍数,默认值为1.0。不过不同于FOVZoomLevel参数,该参数的放大效果没有过场动画,即点下瞄准键经过瞄准所需要的时间后会突然跳到设定好的放大倍数,且当该参数不为1.0时等瞄准所需要的时间结束后武器模型就会被隐藏。该参数在使用时会降低鼠标的移动速度,且该参数可以和FOVZoomLevel参数一起使用,效果就是会先过渡到FOVZoomLevel设定好的放大倍数,然后再突然跳到FOVZoomLevel*ZoomLevel的放大倍数,武器模型同样会被隐藏。该参数一般会配合下面的Scope参数一起使用来达到类似狙击枪瞄准镜的效果。
45.Scope参数,参数的表达形式为:注解:该参数指明了当武器进入瞄准模式时会显示在屏幕上的图片的文件名,一般会配合ZoomLevel参数使用以达到类似狙击枪瞄准镜的效果。Scope图片文件的储存路径为:内容包包名\assets\flansmod\gui,将想要使用的瞄准镜图片文件放在该文件夹下即可。
46.Knockback参数,参数的表达形式为:注解:该参数用于指示当武器发射时作用在使用者身上的击退效果的大小,默认值为0.0,可以用来模拟大口径武器的后坐力,比如炮狙,开一枪自己被后坐力震得后退几格这样的。(也可以用来模拟超电磁炮发射不是么?[手动狗头])
47.KnockbackReduction/KnockbackModifier参数,参数的表达形式为:
注解:该参数用于指明当玩家将该武器拿在手上时会获得的击退抗性效果的强度,默认值为0.0,即没有击退抗性。如果填1.0就是完全击退抗性,填0.5就是击退效果减少一半。
48. MoveSpeedModifier/Slowness参数,参数的表达形式为:
注解:该参数用于指示当玩家将该武器拿在手上时的会获得的移速加成/减成,其默认值为1.0,即不影响玩家当前的速度。其计算公式为:玩家当前的速度=玩家原来的速度*该参数的参数值。
49. Deployable参数,参数的表达形式为:
注解:该参数指明了武器是否可以被放置,比如架在掩体上的机枪等。
50. DeployedModel参数,参数的表达形式为:
注解:该参数指明了该可放置武器所引用的模型文件地址以及模型文件名称。
51. DeployedTexture参数,参数的表达形式为:
注解:该参数指明了该可放置武器所引用的贴图文件名称。
52. StandBackDistance参数,参数的表达形式为:
注解:该参数用于指示当玩家使用可放置武器时所站的位置距可放置武器被放置的方块的中心点的距离,其默认值为1.5。
53. PivotHeight参数,参数的表达形式为:
注解:该参数用于指示可放置武器的旋转中心点的高度,其默认值为0.375。
54. TopViewLimit & BottomViewLimit & SideViewLimit参数的表达形式为:
注解:这3个参数分别决定了可放置武器的最大射角上限、最大射角下限、最大左右射角,其中最大射角上限的参数值应为负数。这3个参数的默认值分别为-60.0、30.0、45.0。
55. SecondaryFunction参数,参数的表达形式为:
注解:该参数指明了该物品的功能,如果不添加该参数则该物品被判定为“枪械”;如果添加该参数并填写参数值为zoom,则该物品被判定为“望远镜”,不具有射击功能,左键放大;如果添加该参数并填写参数值为melee,则该物品被判定为“近战武器”,左键进行近战攻击;如果添加该参数并填写参数值为custommelee,则该物品被判定为“近战武器”并启用相关的自定义攻击动作参数。
56. MeleeDamage参数,参数的表达形式为:
注解:该参数用于指示当武器类型为“近战武器”时的攻击威力,其默认值为1.0。
57. MeleeTime参数,参数的表达形式为:
注解:该参数用于指示近战武器进行两次攻击的相隔时间,以上为代码作者注解的直接翻译,我个人理解的话更像是完成近战攻击动作所需要的时间,近战攻击的伤害应该是在完成近战攻击动作后施加的。不过鉴于我并没有用过这个参数,所以我也不敢确定其具体效果,如果有人测试过了可以通知我相关结果,我会尽快更新该参数的相关解释并将您添加至创作鸣谢列表。
58. AddNode参数,参数的表达形式为:
注解:该参数用于指示近战武器攻击时的路径,其中前3个参数为路径起始点的x、y、z轴坐标,后3个参数为路径朝向的x、y、z轴角度坐标。从源代码获参的形式来看该参数似乎支持通过类似Ammo(参数讲解中的第15项)参数的形式进行复参数输入,但具体情况不清楚,因为我没用过该参数,同上如果有人知道真实情况可以通知我,我会尽快更新该参数的相关解释并将您添加至创作鸣谢列表。
59. MeleeDamagePoint/MeleeDamageOffset参数,参数的表达形式为:
注解:该参数用于指示自定义近战武器的伤害判定点,3个参数分别为伤害判定点的x、y、z轴坐标。同上没用过,具体情况不清楚,但是估计是在自订的近战动作时间结束后这些点上会被施加设定好的近战伤害,应该和上面一样支持类似Ammo参数形式的复参数输入。当然依旧同上如果有人知道真实情况可以通知我,我会尽快更新该参数的相关解释并将您添加至创作鸣谢列表。
60. shield参数,参数的表达形式为:
注解:该参数用于指示有关盾牌的所有参数,当该参数存在时该物品即被判定为“盾牌”,其中浮点数1为盾牌阻挡的伤害的比值,其默认值为0.0,即不阻挡伤害,玩家收到的伤害=应该造成的伤害*浮点数1;浮点数2、3、4为盾牌中心点的x、y、z轴坐标;浮点数5、6、7为盾牌实体的x、y、z轴长,但具体是边长还是边长的一般就不清楚了,同上知道的可以通知我,我会尽快更新该参数的相关解释并将您添加至创作鸣谢列表。
61. Description参数,参数的表达形式为:
注解:该参数用于指示当玩家将鼠标移动到该物品上时会在出现的显示框中显示的解释文字,通常在物品名下方。
以上即为Flan's mod所支持的所有有关枪械的参数了(如您发现有任何疏漏可以向我反馈,我会尽快更新相关参数并将您添加到创作鸣谢列表。),下面的部分则为Flan's mod plus所支持的所有额外可用参数以及和Flan中的参数形式相同但实际内容有所变化的参数。
首先是Flan's mod Plus(基于Flan's mod Ultimate 1.1)中和Flan中的参数形式相同但实际内容有所变化的参数:
Flan's mod Plus中参数形式相同但实际内容有所变化的参数:
1. Recoil参数,参数的表达形式为:
注解:该参数用于指示武器的垂直后坐力,具体解释见Flan's mod可用参数解释第11项。
区别:该参数在Flan中该参数仅支持整数输入,但在Flan Plus中该参数允许浮点数输入。
2. ShootDelay参数,参数的表达形式为:
注解:该参数用于指示武器进行两次射击时的射击时间间隔,单位为1/20秒,具体解释见Flan's mod可用参数解释第12项。
区别:该参数在Flan中该参数仅支持整数输入,但在Flan Plus中该参数允许浮点数输入。不过注意Flan's mod Plus的作者在这里给的标注中说到“ShootDelay参数已经落伍,使用RPM参数替代之”,其中的RPM参数即为新加的RoundsPerMin参数,将在后面Flan's mod Plus的额外可用参数部分中介绍。
其实这两个参数并没有什么高低级之分,只是描述射速的单位(或者说是描述射速的方法)不同罢了,ShootDelay描述的是两次发射的时间间隔,而RoundsPerMin则为每分钟的发射数。最后返回给游戏系统的其实还是ShootDelay的参数值,只不过如果你用的是RoundsPerMin那么程序会先做个简单的换算 ShootDelay = 1200 / RoundsPerMin 然后返回ShootDelay的值。
3. NumAmmoSlots/NumAmmoItemsInGun/LoadIntoGun参数,参数的表达形式为:
注解:该参数用于指示武器最大可以装载几个弹夹,具体解释见Flan's mod可用参数解释第16项。
区别:其实这个参数在Flan's mod和Flan's mod Ultimate中在功能用法上没有什么区别,单拎出来讲是因为该参数游戏中的其他表现在两者中略有不同。在Flan中,不管武器的最大可挂载弹夹数(该参数的参数值)和进行换弹操作时武器内剩余的弹夹数为几,换弹时间都是一定的;但在Flan Plus中,可挂载复数个弹夹的武器的 换弹时间=设定好的换弹时间/武器最大可挂载弹夹数*(武器最大可挂载弹夹数-换弹时武器内剩余的弹夹数) ,也就是说在Flan Plus中可挂载复数个弹夹的武器的换弹时间与武器所需填装的弹夹数成正比。Flan Plus作者之所以做出这样的改动应该是想要更好地模拟泵动式散弹枪的填装效果,因为如果在换弹时一把8发容量的散弹枪只需填装4发子弹,那么玩家不应该需要填装8发的时间来填装它。不过此举也造成了很多bug,比如任何最大可挂载弹夹数超过1的武器在使用R键换弹时都无法正常播放换弹声音;同时如果你采用了我在<Flan's mod可用参数解释>的选读部分中提到的“用弹夹模拟子弹”的武器弹药策略的话,也会导致武器在Flan Plus中的换弹时间不正常。
之后是Flan's mod Ultimate(基于Flan's mod Ultimate 1.1)的全部额外可用参数:
Flan's mod Ultimate额外可用参数:
1. RandomRecoilRange参数,参数的表达形式为:
注解:该参数用于指示武器的垂直后坐力的随机范围,例如如果Recoil参数的参数值为2.0,该参数的参数值为0.3,那么武器实际的垂直后座力范围会在1.7-2.3之间。该参数的默认值为0.5。
2. DecreaseRecoil参数,参数的表达形式为:
注解:该参数用于指示武器使用者在蹲下时会获得的垂直后坐力减小的效果大小,例如如果Recoil参数的参数值为2.0,RandomRecoilRange的参数值为0.3,该参数的参数值为0.4,那么当玩家蹲下使用该武器时的垂直后坐力范围为1.7-1.9。
3. RecoilYaw参数,参数的表达形式为:
注解:该参数用于指示武器的水平后坐力大小。由于该参数的默认值为0.5且Flan's mod本身并不支持该参数,因而如果直接将一个Flan's mod的原生内容包拖到Flan's mod Plus中可能会导致所有武器都有统一大小的水平后坐力且通过将枪械数据文本中的Recoil参数修改为0后仍然不会消失。
注意:虽然这个参数直译是水平后坐力,但是经实测发现这个参数其实应该叫做“向左的后坐力”,因为在我自己的测试中,该参数填写了正值(RandomRecoilYawRange为0.0)的武器后坐力统一向左,填写了负值的武器后坐力统一向右,所以如果你想要的是“水平后坐力”,那么我推荐你把该参数的参数值填写为0.0然后使用下面的RandomRecoilYawRange参数。
4. RandomRecoilYawRange参数,参数的表达形式为:
注解:该参数与RandomRecoilRange的功能相同,只不过作用对象是武器的水平后坐力罢了。该参数的参数值为0.5。
5. DecreaseRecoilYaw参数,参数的表达形式为:
注解:该参数与DecreaseRecoil的功能相同,只不过作用对象是武器的水平后坐力罢了。不过需要注意的是Flan's mod Plus的作者在该参数上方额外添加了一小段注释说到“该参数的参数值永远不能设定为0,否者会造成大量的问题”,至于这个问题是什么我自闲的蛋疼去试了试,结果发现是蹲下时的水平后坐力变得奇大。在好奇心的驱使下我又去源码里查了查有关这个参数的功能代码,结果发现缘由是DecreaseRecoil和DecreaseRecoilYaw参数的作用原理是不同的,DecreaseRecoil是蹲下后坐力=原来的后坐力-DecreaseRecoil参数值,而DecreaseRecoilYaw的作用原理则是蹲下后坐力=原来的后坐力/DecreaseRecoilYaw参数值,所以注释里解释的作用原理是错误的[我又想骂人了]!顺带一提该参数的默认值为0.5(所以如果你不调该参数的话武器的默认蹲下水平后坐力将是原来后坐力的两倍!)。
6. ShowCrosshair参数,参数的表达形式为:
注解:该参数用于指示当玩家持握该武器时是否显示瞄准十字,其默认值为False,即不显示瞄准十字。
8. FlashModel参数,参数的表达形式为:
注解:该参数指明了当武器射击时的枪口火焰的3D模型的存放路径以及名称。至于3D模型的存放路径位置可参考Flan's mod参数讲解中的第5项。
9. FlashTexture参数,参数的表达形式为:
注解:该参数指明了枪口火焰模型的贴图文件名。至于贴图文件的存放路径位置可参考Flan's mod参数讲解中的第7项。
10. CasingModel参数,参数的表达形式为:
注解:该参数指明了当武器射击时的抛出去的弹壳的模型的存放路径以及名称。至于3D模型的存放路径位置可参考Flan's mod参数讲解中的第5项。
11. CasingTexture参数,参数的表达形式为:
注解:该参数指明了弹壳模型的贴图文件名。至于贴图文件的存放路径位置可参考Flan's mod参数讲解中的第7项。
12. HitTexture参数,参数的表达形式为:
注解:该参数指明了名中效果贴图的名称。默认命中贴图就是你击中目标时出现的那个45°倾斜的十字叉,用于命中提示。修改该参数即可指定特定的命中提示图案。
13. AllowRearm参数,参数的表达形式为:
注解:该参数指明了进行换弹时玩家是否会收到武器中未打完的弹夹,其默认值为True。
14. AllowNumBulletsByBulletType参数,参数的表达形式为:
注解:该参数指明了是否允许弹药决定武器每次发射射出的弹药数,其默认值为False。该参数可以配合下面的AllowSpreadByBullet参数为霰弹枪做出独头弹的效果。
15. AllowSpreadByBullet参数,参数的表达形式为:
注解:该参数指明了是否允许弹药决定武器的散射程度,其默认值为False。
16. CanLockAngle参数,参数的表达形式为:
注解:该参数用于指明类似发射器一类的武器的最大可锁定角度,可以用于制作类似毒刺一类的制导单兵发射器。该参数的默认值为5。
17. MaxRangeLockOn参数,参数的表达形式为:
注解:该参数用于指示发射器一类的武器的最大可锁定距离,其默认值为80。
18. LockOnToDriveables & LockOnToVehicles & LockOnToPlanes & LockOnToMechas & LockOnToPlayers & LockOnToLivings参数,参数的表达形式为:
注解:该参数决定了可锁定武器可以锁定的目标,它们分别为Driveables(可驾驶的)、Vehicles(陆地载具)、Planes(飞行载具)、Mechas(机甲)、Players(玩家)以及Livings(活的)。它们的默认值均为False。
19. LockOnSound参数,参数的表达形式为:
注解:该参数指明了当可锁定武器锁定了目标时会播放的提示音的音效文件的名称。至于音效文件的存放路径位置可参考Flan's mod参数讲解中的第19项。
20. lockOnSoundTime参数,参数的表达形式为:
注解:该参数指明了锁定音效的播放时长,其默认值为0。
21. ItemUseAction参数,参数的表达形式为:
注解:该参数的注释直译是“枪械是否会让玩家进行鞠躬(蹲下)动作”,但根据Flan's mod Ultimate制作者在Forge上的注释来看其功能是指定你在使用该物品时游戏系统认为你正在进行的动作。此项对枪械本身的属性似乎没什么影响,所以也没有必要进行改动。
待更
本章鸣谢列表:
- cybmp3
<第一个评论并表达支持的小伙伴>
- Char12138
<因为这个小伙伴我更新了近战武器相关参数[笑]>
PS:如果你不希望出现在鸣谢名单或希望以其他昵称出现在鸣谢名单的话可以联系我,我会尽快做出修改。
本贴已经不再更新,如果有需要可以参考 Flan's mod Ultimate Stability Edition 官方文档。
· 前言
Flan's mod(Flan)是一款历史悠久的Minecraft(MC)枪械/载具模组,也是MC战圈里最著名的两个枪械模组之一。不过与维克多的枪械模组追求更高的武器操作还原度不同,Flan模组著名在百花齐放的内容包。玩家可以通过修改枪械/载具的数据文本来满足自己的客制化需求,或使用官方提供的内容包开发软件ToolBox来制作自己的内容包。鉴于Flan模组本身源自外国,国内相关教程相对稀少,我自己在入坑时也走了不少弯路,故在此制作相关配置数据的解析以帮助有需要的国内Flan内容包制作者以及想要入坑Flan内容制作的新人。
注1:本贴仅包含基于Flan's mod 4.1.10以及Flan's mod Ultimate 1.1的枪械/载具配置数据注解,不包含TB建模转码教程。(PS: 这方面我过段时间应该会开坑)
注2:由于Flan's mod的可用参数基本上是Flan's mod Ultimate的子集,在讲解时先展示Flan的可用参数,然后再补充Flan plus的额外可用参数。
注3:代码中被/**和*/括住的内容为Flan模组作者对该项数据的解释,并非参数的组成部分。
注4:用<>括住的内容为扩展选读内容,包括一些参数的巧用、有可能出现的错误以及简单的运作原理介绍。该部分内容通常被隐藏。
注5:笔者不保证内容的全部准确,如你在使用本贴内容的过程中出现了任何问题笔者概不负责。
注6:如果你发现了任何错误,欢迎指出,我会尽快更新修正并将您添加至鸣谢列表。
特别注意:不推荐直接在压缩包内修改数据,这样做可能会导致修改了数据的武器/载具直接在游戏内消失,是否会出现这样的问题取决于你的压缩软件。推荐先解压后修改数据,如有需要再重新打包。
2021.12 数据,可能有更多内容
· 前言Flan's mod(Flan)是一款历史悠久的Minecraft(MC)枪械/载具模组,也是MC战圈里最著名的两个枪械模组之一。不过与维克多的枪械模组追求更高的武器操作还原度不同,Flan模组著名在百花齐放的内容包。玩家可以通过修改枪械/载具的数据文本来满足自己的客制化需求,或使用官方提供的内容包开发软件ToolBox来制作自己的内容包。鉴于Flan模组本身源自外国,国内相关教程相对稀少,我自己在入坑时也走了不少弯路,故在此制作相关配置数据的解析以帮助有需要的国内Flan内容包制作者以及想要入坑Flan内容制作的新人。
注1:本贴仅包含基于Flan's mod 4.1.10以及Flan's mod Ultimate 1.1的枪械/载具配置数据注解,不包含TB建模转码教程。(PS: 这方面我过段时间应该会开坑)
注2:由于Flan's mod的可用参数基本上是Flan's mod Ultimate的子集,在讲解时先展示Flan的可用参数,然后再补充Flan plus的额外可用参数。
注3:代码中被/**和*/括住的内容为Flan模组作者对该项数据的解释,并非参数的组成部分。
注4:用<>括住的内容为扩展选读内容,包括一些参数的巧用、有可能出现的错误以及简单的运作原理介绍。该部分内容通常被隐藏。
注5:本人不保证内容的全部准确,如你在使用本贴内容的过程中出现了任何问题本人概不负责。
注6:如果你发现了任何错误,欢迎指出,我会尽快更新修正并将您添加至创作鸣谢列表。
特别注意:不推荐直接在压缩包内修改数据,这样做可能会导致修改了数据的武器/载具直接在游戏内消失,是否会出现这样的问题取决于你的压缩软件。推荐先解压后修改数据,如有需要再重新打包。
· 正文
章节1:有关Flan数据配置文件的简单介绍
注:该章节为新人科普向,有相关基础的人可自行略过。
1.1什么是Flan数据配置文件
Flan数据配置文件就是内容包作者为自己的武器/载具写的数据文件,其中一般包含了武器/载具的数据特征,包括武器伤害、使用弹药、载具血量等,一般为储存在内容包特定路径下的txt文本文件。通过修改配置文件内的数据我们就可以直接改变武器/载具在游戏中的相关表现,从而达到客制化数据的目的。
1.2Flan数据配置文件路径
枪械:内容包包名\guns
弹药:内容包包名\bullets
武器配件:内容包包名\attachments
投掷武器:内容包包名\grenades
头盔/护甲:内容包包名\armorFiles
陆地载具:内容包包名\vehicles
飞行载具:内容包包名\planes
1.3参数的基本形式
参数在数据文件中的基本形式为:参数名 参数
其中参数名不可修改,包括大小写,用于向程序指明参数含义。而参数名后面跟的参数是可以修改的,它指明了该参数的输入值。参数不一定是数字,也可以是提前设置好的字符串或需要引用的文件名。
例1:Damage 8
其中"Damage"为参数名,'8'为参数。
有些参数可能有复数个输入值,这些输入值之间需要用空格隔开。
例2:paintjob Icon_HK416 Skin_HK416 yellow 3
其中"paintjob"为参数名,"Icon_HK416","Skin_HK416","yellow",'3'分别为4个输入参数。
特别注意:由于空格是分隔不同参数用的判断符,因而如果一个参数里面包含了空格字符,那么它就会被程序识别为两个独立的参数从而导致错误。这种情况通常出现在需要引用模型、贴图或声音文件之时,要注意被引用的文件名中不能含有空格,否则就可能会出现上述错误。如果有需要,可以将文件名中的所有的空格删除或者用'_'符来替换所有'空格',就像上面的例2一样。
1.4如何获得指定版本的Flan's mod/Flan's mod Ultimate的全部可用参数
获得一个版本的Flan/FlanPlus mod可用参数的方法一般有两种。一种方法是上网搜索配合对应版本的Flan/FlanPlus mod使用的内容包,然後拆包查看里面对应类型的物品的配置文件所包含的参数代码。这种方法操作难度小,但往往只能获得一个版本的Flan/FlanPlus mod的部分可用参数,这取决于该内容包作者究竟使用了多少种参数代码。另一种方法是去网上下载对应版本的Flan/FlanPlus mod源代码文件,其支持的所有参数就储存在 源码文件夹\src\main\java\com\flansmod\common下的对应文件夹中。关于如何在源代码中辨别这些可用参数,我会在第十二章中讲解。
章节2:枪械配置文件参数解析
1.1Flan's mod所有可用参数
前置:Flan's mod所有可用参数速查:
1. Colour
2. Name
3. ShortName
4. ItemID
5. Model
6. ModelScale
7. Texture
8. Icon
9. paintjob
10. Damage
11. Recoil
12. ShootDelay
13. Mode
14. NumBrustRounds
15. Ammo
16. NumAmmoSlots/NumAmmoItemsInGun/LoadIntoGun
17. CanForceReload
18. ReloadTime
19. ReloadSound
20. ShootSound
21. SoundLength
22. DistortSound
23. IdleSound
24. IdleSoundLength
25. WarmupSound
26. WarmupSoundLength
27. MinigunStartSpeed
28. LoopedSound/SpinSound
29. LoopedSoundLength/SpinSoundLength
30. CooldownSound
31. AllowBarrelAttachments & AllowScopeAttachments & AllowStockAttachments & AllowGripAttachments
32. NumGenericAttachmentSlots
33. AllowAttachments
34. AllowAllAttachments
35. NumBullets
36. Accuracy/Spread
37. BulletSpeed
38. OneHanded
39. CanShootUnderwater
40. UsableByPlayers & UsableByMechas
41. ConsumeGunOnUse
42. DropItemOnShoot
43. FOVZoomLevel
44. ZoomLevel
45. Scope
46. Knockback
47. KnockbackReduction/KnockbackModifier
48. MoveSpeedModifier/Slowness
49. Deployable
50. DeployedModel
51. DeployedTexture
52. StandBackDistance
53. PivotHeight
54. TopViewLimit & BottomViewLimit & SodeViewLimit
55. SecondaryFunction
56. MeleeDamage
57. MeleeTime
58. AddNode
59. MeleeDamagePoint/MeleeDamageOffset
60. shield
61. Description
Flan's mod(基于Flan's mod 4.1.10)所有可用参数:
1. Colour参数,参数的表达形式为:
代码:
- Colour 整数 整数 整数
2. Name参数,参数的表达形式为:
代码:
- Name 枪械名称
<你要知道Flan的作者肯定不是傻子,做个没有意义的参数出来自然是出力不讨好的行为。所以既然作者设计了这个参数,那它就肯定要有它的作用。不过这个作用是什么呢?其实这个参数的作用是为了向ToolBox中自动生成.lang文件的程序指明作者想要该枪械在游戏中显示的名字,以便其生成.lang文件。至于更加详细的解释我会在我的TB教学贴中给出(先挖大坑)。>
3. ShortName参数,参数的表达形式为:
代码:
- ShortName 枪械短名称
特别注意:如果ShortName有重名现象可能会导致两个物品在游戏中被显示成一个<因为游戏程序分辨不出来这两个东西,所有东西相互重ShortName名都有可能会导致这种情况>或其他致命错误,一定要注意。
4. ItemID参数,参数的表达形式为:
代码:
- ItemID 整数
5. Model参数,参数的表达形式为:
代码:
- /** For guns with 3D models */
- Model 3D模型文件所在母文件夹名.3D模型文件名
注意1:Flan's mod仅支持.class模型文件(编译后的模型文件)。
注意2:如果两个不同的包中存在名称完全相同的模型母文件夹和模型文件可能会导致引用该模型文件的物品在实际游戏中3D模型无法正常显示。
<直接将一个包中的模型转移到另一个包中并修改配置文件中的模型所在母文件夹名和模型名可能并不能让该模型正常显示(至于原因可能是Flan会对模型路径进行检查以避免直接的模型盗取,在ToolBox中输出的.java模型文件中其实是有指示模型编译输出位置的代码的),但Flan其实是支持跨包引用模型的,即在一个包的配置文件中引用另一个包的模型是可行的,只要填些另一个包中的模型所在母文件夹名和模型名即可。如果不想要另一个包中的其他物品也可以简单地删除另一个包中的所有配置文件,只留下com文件夹(和assets文件夹,如果同时引用了另一个包中的贴图、声音或图标文件)。>
6. ModelScale参数,参数的表达形式为:
代码:
- /** For making detailed models and scaling down */
- ModelScale 浮点数
<由于Flan's mod的内容包开发软件ToolBox在建模时的特性,内容包作者在制作精度较高的模型时往往需要将模型本身制作的大一些,然后再利用ModelScale参数将模型在游戏中的显示大小缩小到合适的比例,所以一般建模精度较高的内容包中该参数的值都比较小。>
7. Texture参数,参数的表达形式为:
代码:
- Texture 贴图文件名
注意:Flan's mod仅支持PNG格式的图片文件。
<FLan的贴图文件和模型文件一样支持跨包引用,直接在参数名后填写想要引用的贴图文件的名称即可。>
8.Icon参数,参数的表达形式为:
代码:
- Icon 图标文件名
<该文件同样支持跨包引用,引用方法同上。>
9.paintjob参数,参数的表达形式为:
代码:
- /** The list of all available paintjobs for this gun */
- paintjob 该武器皮肤使用的Icon文件名 该武器皮肤使用的贴图文件名 在生存模式下切换为该皮肤所需要的颜料类型 整数(需要的颜料数量)
代码:
- Paintjob Icon_HK416_Desert_Yellow Skin_HK416_Desert_Yellow Yellow 3 red 1 brown 2
<同理皮肤贴图文件支持跨包引用,引用方法同上。>
10. Damage参数,参数的表达形式为:
代码:
- /** Damage inflicted by this gun. Multiplied by the bullet damage. */
- Damage 浮点数
11. Recoil参数,参数的表达形式为:
代码:
- /** The amount to recoil the player's view by when firing a single shot from this gun */
- Recoil 整数
12. ShootDelay参数,参数的表达形式为:
代码:
- /** The delay between shots in ticks (1/20ths of seconds) */
- ShootDelay 整数
13. Mode参数,参数的表达形式为:
代码:
- /** The firing mode of the gun. One of semi-auto, full-auto, minigun or burst */
- Mode FULLAUTO/SEMIAUTO/BURST/Minigun
注解:该参数指明了枪械的射击模式,分别为FULLAUTO(全自动模式)、SEMIAUTO(半自动模式)、BURST(多连发点射模式)以及Minigun(加特林模式),参数只能填其中一个,该参数的默认值为FULLAUTO。
14. NumBrustRounds参数,参数的表达形式为:
代码:
- /** The number of bullets to fire per burst in burst mode */
- NumBurstRounds 整数
15.Ammo参数,参数的表达形式为:
代码:
- /** The list of bullet types that can be used in this gun */
- Ammo 弹药的ShortName
代码:
- Ammo 弹药1ShortName
- Ammo 弹药2ShortName
- ...
而不应该是这种形式:
代码:
- Ammo 弹药1ShortName 弹药2ShortName ...
<Flan支持武器引用投掷类武器作为枪支/发射器弹药,引用格式同上,参数改为投"掷类武器名ShortName"即可。至于Flan为什么要允许武器引用投掷类武器作为弹药,这是因为投掷类武器可以实现一些子弹代码无法实现的效果,比如制造烟雾、延时起爆等等,通常用于如榴弹发射器一类的武器。>
16.NumAmmoSlots/NumAmmoItemsInGun/LoadIntoGun参数,参数的表达形式为:
代码:
- /** Number of ammo items that the gun may hold. Most guns will hold one magazine.
- * Some may hold more, such as Nerf pistols, revolvers or shotguns */
- NumAmmoSlots 整数
- NumAmmoItemsInGun 整数
- LoadIntoGun 整数
代码:
- NumAmmoItemsInGun 7
- NumAmmoSlots 5
如果武器可以挂载复数个弹夹,那么武器将会按照顺序依次消耗每个弹夹中的子弹。该功能一般用于模拟霰弹枪/左轮手枪/转轮榴弹发射器的填装效果。该参数默认值为1。
<这个参数的存在允许了Flan中两种弹药装载的形式。其中第一种形式是比较常见的形式,即将每把武器只插一个弹夹。以M4A1为例,即每个弹夹30发,武器只插一个弹夹。这种装填形式的好处是可以模拟真实的弹夹情况,即子弹不会自动合并。但这种形式也有几个严重的缺点,其一为未打完的弹夹之间无法合并,即使两个弹夹中的剩余子弹数量相同;其二为Flan中用于整理弹夹子弹的机制并不完善,两个剩余20发子弹的弹夹会被合并成一个30发的弹夹,多出来的10发就消失了。另一种形式为武器可插弹夹为30个,每个弹夹只包含一发子弹(其实就是将弹夹模拟成子弹)。这种形式的缺点就是弹药会自动合并,不会出现没打完的弹夹(因为已经算不上是弹夹了),但反过来说也是个优点。同时这种形式还允许武器的一个弹夹中包含不同类型的弹药(比如每5发子弹里面有一发曳光弹)。因而相对来说,我更推荐后者。>
17.CanForceReload参数,参数的表达形式为:
代码:
- /** Whether the player can press the reload key (default R) to reload this gun */
- CanForceReload True/False
18.ReloadTime参数,参数的表达形式为:
代码:
- /** The time (in ticks) it takes to reload this gun */
- ReloadTime 整数
19.ReloadSound参数,参数的表达形式为:
代码:
- /** The sound to play upon reloading */
- ReloadSound 换弹声音文件名
注意:Flan's mod仅支持.ogg格式的声音文件。
20.ShootSound参数,参数的表达形式为:
代码:
- /** The sound played upon shooting */
- ShootSound 射击声音文件名
21.SoundLength参数,参数的表达形式为:
代码:
- /** The length of the sound for looping sounds */
- SoundLength 整数
22.DistortSound参数,参数的表达形式为:
代码:
- /** Whether to distort the sound or not. Generally only set to false for looping sounds */
- DistortSound True/False
23.IdleSound参数,参数的表达形式为:
代码:
- /** The sound to play while holding the weapon in the hand*/
- IdleSound 需要引用的声音文件名
24.IdleSoundLength参数,参数的表达形式为:
代码:
- IdleSoundLength 整数
25.WarmupSound参数,参数的表达形式为:
代码:
- /** Played when the player starts to hold shoot */
- WarmupSound
<该参数也可以用来设定蓄力武器的蓄力时长以及蓄力声音。>
26.WarmupSoundLength参数,参数的表达形式为:
代码:
- WarmupSoundLength 整数
27.MinigunStartSpeed参数,参数的表达形式为:
代码:
- /** The required speed for minigun mode guns to start firing */MinigunStartSpeed 浮点数
28.LoopedSound/SpinSound参数,参数的表达形式为:
代码:
- /** Played in a loop until player stops holding shoot */
- LoopedSound 旋转音效文件名
- SpinSound 旋转音效文件名
注意:Flan作者的建议如果需要使用LoopedSound/SpinSound的话最好将DistortSound设定为False。
<其实LoopedSound/SpinSound还可以用来播放类似激光枪、镭射枪一类的连续输出型武器的声音,只要将WarmupSound的长度调成0即可。>
29.LoopedSoundLength/SpinSoundLength参数,参数的表达形式为:
代码:
- LoopedSoundLength 整数
- SpinSoundLength 整数
30.CooldownSound参数,参数的表达形式为:
代码:
- /** Played when the player stops holding shoot */
- CooldownSound 冷却音效文件名
31.AllowBarrelAttachments & AllowScopeAttachments & AllowStockAttachments & AllowGripAttachments参数,参数的表达形式为:
代码:
- /** Whether each attachment slot is available */
- AllowBarrelAttachments True/False
- AllowScopeAttachments True/False
- AllowStockAttachments True/False
- AllowGripAttachments True/False
32.NumGenericAttachmentSlots参数,参数的表达形式为:
代码:
- /** The number of generic attachment slots there are on this gun */
- NumGenericAttachmentSlots 整数
33.AllowAttachments参数,参数的表达形式为:
代码:
- /** The list of allowed attachments for this gun */
- AllowAttachments 允许安装的配件1的ShortName 允许安装的配件2的ShortName ...
34.AllowAllAttachments参数,参数的表达形式为:
代码:
- /** If this is true, then all attachments are allowed. Otherwise the list is checked */
- AllowAllAttachments True/False
35.NumBullets参数,参数的表达形式为:
代码:
- /** The number of bullet entities created by each shot */
- NumBullets 整数
36.Accuracy/Spread参数,参数的表达形式为:
代码:
- /** The amount that bullets spread out when fired from this gun */
- Accuracy 浮点数
- Spread 浮点数
37.BulletSpeed参数,参数的表达形式为:
代码:
- /** The speed of bullets upon leaving this gun */
- BulletSpeed 浮点数
38.OneHanded参数,参数的表达形式为:
代码:
- /** If true, then this gun can be dual wielded */
- OneHanded True/False
39.CanShootUnderwater参数,该参数的表达形式为:
代码:
- /** Whether this gun can be used underwater */
- CanShootUnderwater True/False
40.UsableByPlayers & UsableByMechas参数,参数的表达形式为:
代码:
- /** Set these to make guns only usable by a certain type of entity */
- UsableByPlayers True/False
- UsableByMechas True/False
41.ConsumeGunOnUse参数,参数的表达形式为:
代码:
- /** For one shot items like a panzerfaust */
- ConsumeGunOnUse True/False
42.DropItemOnShoot
代码:
- /** Item to drop on shooting */
- DropItemOnShoot
43.FOVZoomLevel参数,参数的表达形式为:
代码:
- /** The FOV zoom level of the default scope */
- FOVZoomLevel 浮点数
44.ZoomLevel参数,参数的表达形式为:
代码:
- /** The zoom level of the default scope */
- ZoomLevel 浮点数
45.Scope参数,参数的表达形式为:
代码:
- /** Default scope overlay texture */
- Scope 需要显示的瞄准镜图片文件的名称
46.Knockback参数,参数的表达形式为:
代码:
- /** The amount of knockback to impact upon the player per shot */
- Knockback 浮点数
47.KnockbackReduction/KnockbackModifier参数,参数的表达形式为:
代码:
- /** Gives knockback resistance to the player */
- KnockbackReduction 浮点数
- KnockbackModifier 浮点数
48. MoveSpeedModifier/Slowness参数,参数的表达形式为:
代码:
- /** Speeds up or slows down player movement when this item is held */
- MoveSpeedModifier 浮点数
- Slowness 浮点数
49. Deployable参数,参数的表达形式为:
代码:
- /** If true, then the bullet does not shoot when right clicked, but must instead be placed on the ground */
- Deployable True/False
50. DeployedModel参数,参数的表达形式为:
代码:
- /** The deployable model */
- DeployedModel 3D模型文件所在母文件夹名.3D模型文件名
51. DeployedTexture参数,参数的表达形式为:
代码:
- /** The deployable model's texture*/
- DeployedTexture 贴图文件名
52. StandBackDistance参数,参数的表达形式为:
代码:
- /** Various deployable settings controlling the player view limits and standing position */
- StandBackDistance 浮点数
53. PivotHeight参数,参数的表达形式为:
代码:
- /** Various deployable settings controlling the player view limits and standing position */
- PivotHeight 浮点数
54. TopViewLimit & BottomViewLimit & SideViewLimit参数的表达形式为:
代码:
- /** Various deployable settings controlling the player view limits and standing position */
- TopViewLimit 浮点数
- BottomViewLimit 浮点数
- SideViewLimit 浮点数
55. SecondaryFunction参数,参数的表达形式为:
代码:
- /** The secondary function of this gun. By default, the left mouse button triggers this */
- SecondaryFunction zoom/melee/custommelee
56. MeleeDamage参数,参数的表达形式为:
代码:
- /** The damage inflicted upon punching someone with this gun */
- MeleeDamage 浮点数
57. MeleeTime参数,参数的表达形式为:
代码:
- /** The time delay between custom melee attacks */
- MeleeTime 整数
58. AddNode参数,参数的表达形式为:
代码:
- /** The path the melee weapon takes */
- AddNode 浮点数1 浮点数2 浮点数3 浮点数4 浮点数5 浮点数6
59. MeleeDamagePoint/MeleeDamageOffset参数,参数的表达形式为:
代码:
- /** The points on the melee weapon that damage is actually done from. */
- MeleeDamagePoint 浮点数1 浮点数2 浮点数3
- MeleeDamageOffset 浮点数1 浮点数2 浮点数3
60. shield参数,参数的表达形式为:
代码:
- /** Whether or not this gun has a shield piece */
- shield 浮点数1 浮点数2 浮点数3 浮点数4 浮点数5 浮点数6 浮点数7
61. Description参数,参数的表达形式为:
代码:
- Description 对该物品的描述
以上即为Flan's mod所支持的所有有关枪械的参数了(如您发现有任何疏漏可以向我反馈,我会尽快更新相关参数并将您添加到创作鸣谢列表。),下面的部分则为Flan's mod plus所支持的所有额外可用参数以及和Flan中的参数形式相同但实际内容有所变化的参数。
首先是Flan's mod Plus(基于Flan's mod Ultimate 1.1)中和Flan中的参数形式相同但实际内容有所变化的参数:
Flan's mod Plus中参数形式相同但实际内容有所变化的参数:
1. Recoil参数,参数的表达形式为:
代码:
- /** Base value for Upwards cursor/view recoil */
- Recoil 浮点数
区别:该参数在Flan中该参数仅支持整数输入,但在Flan Plus中该参数允许浮点数输入。
2. ShootDelay参数,参数的表达形式为:
代码:
- /** The delay between shots in ticks (1/20ths of seconds) OUTDATED, USE RPM */
- ShootDelay 浮点数
区别:该参数在Flan中该参数仅支持整数输入,但在Flan Plus中该参数允许浮点数输入。不过注意Flan's mod Plus的作者在这里给的标注中说到“ShootDelay参数已经落伍,使用RPM参数替代之”,其中的RPM参数即为新加的RoundsPerMin参数,将在后面Flan's mod Plus的额外可用参数部分中介绍。
其实这两个参数并没有什么高低级之分,只是描述射速的单位(或者说是描述射速的方法)不同罢了,ShootDelay描述的是两次发射的时间间隔,而RoundsPerMin则为每分钟的发射数。最后返回给游戏系统的其实还是ShootDelay的参数值,只不过如果你用的是RoundsPerMin那么程序会先做个简单的换算 ShootDelay = 1200 / RoundsPerMin 然后返回ShootDelay的值。
3. NumAmmoSlots/NumAmmoItemsInGun/LoadIntoGun参数,参数的表达形式为:
代码:
- /** Number of ammo items that the gun may hold. Most guns will hold one magazine.
- * Some may hold more, such as Nerf pistols, revolvers or shotguns */
- NumAmmoSlots 整数
- NumAmmoItemsInGun 整数
- LoadIntoGun 整数
区别:其实这个参数在Flan's mod和Flan's mod Ultimate中在功能用法上没有什么区别,单拎出来讲是因为该参数游戏中的其他表现在两者中略有不同。在Flan中,不管武器的最大可挂载弹夹数(该参数的参数值)和进行换弹操作时武器内剩余的弹夹数为几,换弹时间都是一定的;但在Flan Plus中,可挂载复数个弹夹的武器的 换弹时间=设定好的换弹时间/武器最大可挂载弹夹数*(武器最大可挂载弹夹数-换弹时武器内剩余的弹夹数) ,也就是说在Flan Plus中可挂载复数个弹夹的武器的换弹时间与武器所需填装的弹夹数成正比。Flan Plus作者之所以做出这样的改动应该是想要更好地模拟泵动式散弹枪的填装效果,因为如果在换弹时一把8发容量的散弹枪只需填装4发子弹,那么玩家不应该需要填装8发的时间来填装它。不过此举也造成了很多bug,比如任何最大可挂载弹夹数超过1的武器在使用R键换弹时都无法正常播放换弹声音;同时如果你采用了我在<Flan's mod可用参数解释>的选读部分中提到的“用弹夹模拟子弹”的武器弹药策略的话,也会导致武器在Flan Plus中的换弹时间不正常。
之后是Flan's mod Ultimate(基于Flan's mod Ultimate 1.1)的全部额外可用参数:
Flan's mod Ultimate额外可用参数:
1. RandomRecoilRange参数,参数的表达形式为:
代码:
- /** Modifier for setting the maximum pitch divergence when randomizing recoil (Recoil 2 + rndRecoil 0.5 == 1.5-2.5 Recoil range) */
- RandomRecoilRange 浮点数
2. DecreaseRecoil参数,参数的表达形式为:
代码:
- /** Modifier for decreasing the final pitch recoil while crouching (Recoil 2 + rndRecoil 0.5 + decreaseRecoil 0.5 == 1.0-2.0 Recoil range) */
- DecreaseRecoil 浮点数
3. RecoilYaw参数,参数的表达形式为:
代码:
- /** Base value for Left/Right cursor/view recoil */
- RecoilYaw 浮点数
注意:虽然这个参数直译是水平后坐力,但是经实测发现这个参数其实应该叫做“向左的后坐力”,因为在我自己的测试中,该参数填写了正值(RandomRecoilYawRange为0.0)的武器后坐力统一向左,填写了负值的武器后坐力统一向右,所以如果你想要的是“水平后坐力”,那么我推荐你把该参数的参数值填写为0.0然后使用下面的RandomRecoilYawRange参数。
4. RandomRecoilYawRange参数,参数的表达形式为:
代码:
- /** Modifier for setting the maximum yaw divergence when randomizing recoil (Recoil 2 + rndRecoil 0.5 == 1.5-2.5 Recoil range) */
- RandomRecoilYawRange 浮点数
5. DecreaseRecoilYaw参数,参数的表达形式为:
代码:
- /** Modifier for decreasing the final yaw recoil while crouching (Recoil 2 + rndRecoil 0.5 + decreaseRecoil 0.5 == 1.0-2.0 Recoil range) */
- //This must never be set to 0, will cause massive issues
- DecreaseRecoilYaw 浮点数
6. ShowCrosshair参数,参数的表达形式为:
代码:
- /** Show the crosshair when holding this weapon */
- ShowCrosshair True/False
8. FlashModel参数,参数的表达形式为:
代码:
- /** For adding a muzzle flash model to render */
- FlashModel 枪口火焰3D模型文件所在母文件夹名.枪口火焰3D模型文件名
9. FlashTexture参数,参数的表达形式为:
代码:
- /** Set a muzzle flash texture */
- FlashTexture 枪口火焰模型的贴图的文件名
10. CasingModel参数,参数的表达形式为:
代码:
- /** For adding a bullet casing model to render */
- CasingModel 弹壳3D模型文件所在母文件夹名.弹壳3D模型文件名
11. CasingTexture参数,参数的表达形式为:
代码:
- /** Set a bullet casing texture */
- CasingTexture 弹壳模型的贴图的文件名
12. HitTexture参数,参数的表达形式为:
代码:
- /** Set a hit marker texture */
- HitTexture 命中贴图的文件名
13. AllowRearm参数,参数的表达形式为:
代码:
- /** Whether the player can receive ammo for this gun from an ammo mag */
- AllowRearm True/False
14. AllowNumBulletsByBulletType参数,参数的表达形式为:
代码:
- /** Allows you to set how many bullet entities are fired per shot via the ammo used */
- AllowNumBulletsByBulletType True/False
15. AllowSpreadByBullet参数,参数的表达形式为:
代码:
- /** If true, spread determined by loaded ammo type */
- AllowSpreadByBullet True/False
16. CanLockAngle参数,参数的表达形式为:
代码:
- //Launcher variables
- CanLockAngle 整数
17. MaxRangeLockOn参数,参数的表达形式为:
代码:
- //Launcher variables
- MaxRangeLockOn 整数
18. LockOnToDriveables & LockOnToVehicles & LockOnToPlanes & LockOnToMechas & LockOnToPlayers & LockOnToLivings参数,参数的表达形式为:
代码:
- /** Determines what the launcher can lock on to */
- LockOnToDriveables True/False
- LockOnToVehicles True/False
- LockOnToPlanes True/False
- LockOnToMechas True/False
- LockOnToPlayers True/False
- LockOnToLivings True/False
19. LockOnSound参数,参数的表达形式为:
代码:
- //Launcher variables
- LockOnSound 锁定音效文件名称
20. lockOnSoundTime参数,参数的表达形式为:
代码:
- lockOnSoundTime 整数
21. ItemUseAction参数,参数的表达形式为:
代码:
- /** Whether Gun makes players to be EnumAction.bow */
- ItemUseAction bow
待更
本章鸣谢列表:
- cybmp3
<第一个评论并表达支持的小伙伴>
- Char12138
<因为这个小伙伴我更新了近战武器相关参数[笑]>
PS:如果你不希望出现在鸣谢名单或希望以其他昵称出现在鸣谢名单的话可以联系我,我会尽快做出修改。
本贴已经不再更新,如果有需要可以参考 Flan's mod Ultimate Stability Edition 官方文档。
FLAN真的是我用的最喜欢的MOD了
本帖最后由 大大的咸鱼 于 2019-11-1 00:50 编辑
我去翻了翻你的主题帖,然后发现宁真的是个大大佬啊,我刚入坑flanmodplus,手臂什么的都不会搞,觉得自己好菜,你能帮帮我吗?[手动狗头]
Stevenlaw 发表于 2019-10-30 23:06
FLAN真的是我用的最喜欢的MOD了
我去翻了翻你的主题帖,然后发现宁真的是个大大佬啊,我刚入坑flanmodplus,手臂什么的都不会搞,觉得自己好菜,你能帮帮我吗?[手动狗头]
楼主会调整近战武器的挥刀动作吗
Char12138 发表于 2019-11-7 20:48
楼主会调整近战武器的挥刀动作吗
我没做过Flan的近战武器,所以不是清楚,不过我可以帮你扒扒源代码(如果你真的有需要的话过两天联系我,这一段时间要期中,不是很有时间),或者你自己懂些英语的话直接翻对应版本的Flan源码文件src\main\java\com\flansmod\client\model下的ModelGun文件就行了(源码文件需要上网下,并不是模组本身),所有可用的模型自定义调节参数都在里面。至于伤害判定点的设定则在本贴所述的武器配置文本中写(这个参数我还没更新,如果你懂英语也可以先去我贴中说的路径下找找相关的文件自己看看)。
哇塞⊙ω⊙感谢大佬楼主整理的材料。学习了。
cybmp3 发表于 2019-11-8 09:39
哇塞⊙ω⊙感谢大佬楼主整理的材料。学习了。
看到你的回复又有更新的动力了呢!能帮到你是最好的了[可爱]
大大的咸鱼 发表于 2019-11-7 22:26
我没做过Flan的近战武器,所以不是清楚,不过我可以帮你扒扒源代码(如果你真的有需要的话过两天联系我, ...
可以留下联系方式吗
挺不错的,可惜发帖有点晚了。。要是早几年应该会有很多人看。虽然说可能腐竹些看去了又整氪金操作,但是总比老是那一样的属性玩起来更得劲
本帖最后由 大大的咸鱼 于 2020-2-10 13:59 编辑
我不习惯留联系方式,不过我会经常看这个小号,所以有需要直接在这找我就行了。
另外看你比较积极,我干脆就帮你扒了扒源码→
定义动作的代码是 meleeAnimation = EnumMeleeAnimation.DEFAULT; 其中EnumMeleeAnimation.后面的内容就是决定动作的,可以使用的参数分别为DEFAULT(默认)、NONE(无)、BLUNT_SWING(直线摆击)、BLUNT_BASH(直线猛击)、STAB_UNDERARM(腋下刺击)、STAB_OVERARM(过肩刺击)(PS: 这些动作我都没用过,所以每一种的动作到底是怎样的我就不知道了,后面的中文参考名是纯粹的根据参数名的英文翻译的),将该代码复制到模型的.java文件中然后编译就行了(比如我想用BLUNT_SWING动作,就把meleeAnimation = EnumMeleeAnimation.BLUNT_SWING;复制到model的.java文件中然后编译就行了)。
同时在武器数据配置文件中我也找到了有关近战武器参数,分别为
1.SecondaryFunction zoom(望远镜)/melee(近战)/custommelee(自定义近战)(决定该物品是否表现为枪械/望远镜/近战武器/使用自定动作的近战武器)
2.UseCustomMelee True/False(决定是否使用自定义近战动作)
3.UseCustomMeleeWhenShoot True/False(在射击时启用近战武器动作)
4.MeleeDamage 浮点数(近战攻击伤害)
5.MeleeTime 整数(完成近战攻击所需要的时间)
6.AddNode 浮点数1 浮点数2 浮点数3 浮点数4 浮点数5 浮点数6(用于添加自定义近战攻击动作节点,参数本身不支持复数个输入,但应该可以通过像Ammo参数那样的形式实现复数个输入,参数值中的前三个确定了当前节点的坐标位置(x、y、z轴坐标),后三个则指示了动作路径的朝向角度(x、y、z轴旋转角度))
7.MeleeDamagePoint/MeleeDamageOffset 浮点数1 浮点数2 浮点数3(用于指明近战伤害被施加的位置坐标(完成近战动作时在这些点上的实体会受到设定好的伤害),三个参数分别为伤害判定点的x、y、z轴坐标,应该也可以通过像Ammo参数那样的形式实现复数个参数的输入)。
更一下,我已经在帖子中更新了配置文件的相关内容,如果不懂还可以查看。
Char12138 发表于 2019-11-10 12:50
可以留下联系方式吗
我不习惯留联系方式,不过我会经常看这个小号,所以有需要直接在这找我就行了。
另外看你比较积极,我干脆就帮你扒了扒源码→
定义动作的代码是 meleeAnimation = EnumMeleeAnimation.DEFAULT; 其中EnumMeleeAnimation.后面的内容就是决定动作的,可以使用的参数分别为DEFAULT(默认)、NONE(无)、BLUNT_SWING(直线摆击)、BLUNT_BASH(直线猛击)、STAB_UNDERARM(腋下刺击)、STAB_OVERARM(过肩刺击)(PS: 这些动作我都没用过,所以每一种的动作到底是怎样的我就不知道了,后面的中文参考名是纯粹的根据参数名的英文翻译的),将该代码复制到模型的.java文件中然后编译就行了(比如我想用BLUNT_SWING动作,就把meleeAnimation = EnumMeleeAnimation.BLUNT_SWING;复制到model的.java文件中然后编译就行了)。
同时在武器数据配置文件中我也找到了有关近战武器参数,分别为
1.SecondaryFunction zoom(望远镜)/melee(近战)/custommelee(自定义近战)(决定该物品是否表现为枪械/望远镜/近战武器/使用自定动作的近战武器)
2.UseCustomMelee True/False(决定是否使用自定义近战动作)
3.UseCustomMeleeWhenShoot True/False(在射击时启用近战武器动作)
4.MeleeDamage 浮点数(近战攻击伤害)
5.MeleeTime 整数(完成近战攻击所需要的时间)
6.AddNode 浮点数1 浮点数2 浮点数3 浮点数4 浮点数5 浮点数6(用于添加自定义近战攻击动作节点,参数本身不支持复数个输入,但应该可以通过像Ammo参数那样的形式实现复数个输入,参数值中的前三个确定了当前节点的坐标位置(x、y、z轴坐标),后三个则指示了动作路径的朝向角度(x、y、z轴旋转角度))
7.MeleeDamagePoint/MeleeDamageOffset 浮点数1 浮点数2 浮点数3(用于指明近战伤害被施加的位置坐标(完成近战动作时在这些点上的实体会受到设定好的伤害),三个参数分别为伤害判定点的x、y、z轴坐标,应该也可以通过像Ammo参数那样的形式实现复数个参数的输入)。
更一下,我已经在帖子中更新了配置文件的相关内容,如果不懂还可以查看。
Twilight_Two 发表于 2019-11-10 23:12
挺不错的,可惜发帖有点晚了。。要是早几年应该会有很多人看。虽然说可能腐竹些看去了又整氪金操作,但是总 ...
哈哈,不是坏事就好[嗯]
楼主你知道如何将别的包里面的枪械模型搬到另外一个包,简单来说就是替换模型,那个服务器枪械不好看我想替换成别的包里面的枪械模型该怎么做
[img][/img]
2901595717 发表于 2019-11-16 02:15
我替换了Class文件和模型贴图文件
最后进了游戏不显示变成了一个物品贴图文件咋整
...
首先你要先确定你替换模型的操作是否是合法的,即你有没有权利替换或者提取一个内容包中的模型。多数情况下一般你不发表,自己魔改着玩玩是没什么问题的,不过有些内容包作者可能会明文禁止任何对自己内容包的改动,记得注意下。
第二点,关于替换模型时出现的问题,我其实在帖子中提到过。在Flan参数解析中的第5项Model参数的隐藏内容中,我涉及了有关替换模型的过程中可能会遇到的问题以及一些解决办法,主要的就是进行跨包引用。不过记得删去模型包中的所有配置文件(其实就是只留com文件夹和assets文件夹),否则会多东西导致你在连接服务器的注册物品检查时不过关(无法连接至服务器),然后修改Model参数、ModelScale参数和Texture参数(复制粘贴过来应该就行的),之后进游戏应该就可以了。
大大的咸鱼 发表于 2019-11-16 15:13
首先你要先确定你替换模型的操作是否是合法的,即你有没有权利替换或者提取一个内容包中的模型。多数情况 ...
我这边替换了模型和贴图并且改了名字,并且复制修改了Model参数、ModelScale参数和Texture参数,但是他还是2D模型,能加个QQ具体教我一下吗,我QQ2901595717
2901595717 发表于 2019-11-16 19:24
我这边替换了模型和贴图并且改了名字,并且复制修改了Model参数、ModelScale参数和Texture参数,但是他还 ...
抱歉我应该在帖子中声明一下我不会随便留下联系方式的,没有想到会有这么多人要联系方式。不过我还是很愿意帮你们解决问题的,即使这个问题的解决方法我已经在教程中详细地说明过了(笑)。
既然你不是很愿意仔细阅读相关内容,那我就干脆把具体每一步怎么做告诉你:
所需材料:服务器的Flan包(包a)以及你想要用于替换的模型所在的内容包(包b)。
操作步骤:
1. 将包b中除assets和com以外的文件夹全部移到别处。
2. 找到a包中你嫌丑的那个物品的配置文件txt,将其中每一个含有Model这个词的参数的后面都修改成→b包的模型母文件夹名称.你想要用的那个模型的名称 这样的形式(你也可以从b包中引用了该模型的那个物品的配置文件中直接复制过来)。
3.对应修改a包中对应配置中所有带Texture这个词的后面的参数(同样可以向上面一样复制过来)。
4. 将b包中引用了该模型的配置文件中的ModelScale后面的参数值复制到a包中的对应配置文件中。
5. 将完成了修改后的a包b包拖入游戏的Flan文件夹中。
6. 打开游戏拿出对应物品查看效果。
楼主 我现在在用1.12.2的flan 用的 现代和二战 里面的坦克均无法发射同轴机枪 请问我该怎么改呢
真的很详细,学习了
zzyyhh2008 发表于 2019-11-17 02:20
楼主 我现在在用1.12.2的flan 用的 现代和二战 里面的坦克均无法发射同轴机枪 请问我该怎么改呢 ...
很抱歉没有扒过1.12.2的源码,自己也没有怎么玩过Flan1.12.2的版本所以可能不是很能帮到你。
不过如果你说的是无法发射同轴机枪,可以检查一下是否填装了弹药以及填装的弹药是否正确。
大大的咸鱼 发表于 2019-11-17 11:27
能帮到你就好[可爱]
顺带一提我自己的枪包也要发预览版了,有兴趣可以去看看哦,链接在帖子里。
...
好嘞哥
大大的咸鱼 发表于 2019-11-16 21:04
抱歉我应该在帖子中声明一下我不会随便留下联系方式的,没有想到会有这么多人要联系方式。不过我还是很愿 ...
我按照这个过程做了,可最后还是2D模型怎么办
2901595717 发表于 2019-11-17 13:11
我按照这个过程做了,可最后还是2D模型怎么办
看你还不成功,我开始怀疑跨包引用是否真的可行,然后我自己又去试了一遍,让一个别的包引用了我做的模型,然后成功了,说明这个东西的确是可以实现的。但是你还是不行,说明你的操作有问题或者这之中存在其他问题,我说几个可能的原因:
1. 未将a包b包解压后再操作。
2. 模型引用路径不是b包中模型母文件夹名。
3. 可能你那个版本的Flan不支持跨包引用。就我测试的结果来看至少Flan 4.1.10和Flan Plus是支持的。
4. Flan文件夹中改过的a包/b包与未改过的a包/b包共存。
大大的咸鱼 发表于 2019-11-17 13:51
看你还不成功,我开始怀疑跨包引用是否真的可行,然后我自己又去试了一遍,让一个别的包引用了我 ...
每次服务器更新模型都有更改,而且有W44的模型,证明模型可以替换,但是我试了很多次都是不行,你能帮我改一下吗QAQ
2901595717 发表于 2019-11-17 14:20
每次服务器更新模型都有更改,而且有W44的模型,证明模型可以替换,但是我试了很多次都是不行,你能帮我 ...
私聊加我小号QQ
没错,我又来了,载具模型怎么搬awa
2901595717 发表于 2019-11-23 12:24
没错,我又来了,载具模型怎么搬awa
一样的道理,模型文件都在同一个文件夹下的
2901595717 发表于 2019-11-23 13:45
搬过来了,但是坦克履带消失了
履带可能会有独立的模型和贴图,就像Flan Plus中枪械有独立的枪口火焰和弹壳模型一样,你需要都搬过来才行
2901595717 发表于 2019-11-23 17:13
那么关于反坦克武器伤害怎么整
具体是哪一类的呢?如果是枪械发射器一类的话就按帖子里的指示来就行了,车载/机载武器需要先找到对应的gun文件夹下的武器然后再按照贴子里的方法改。如果是有爆炸效果的话那么爆炸效果在弹药的配置文件里改,且爆炸范围直接影响伤害,但是具体关系我目前也不是很明确,你可以试试。
大大的咸鱼 发表于 2019-11-23 17:20
具体是哪一类的呢?如果是枪械发射器一类的话就按帖子里的指示来就行了,车载/机载武器需要先找到对应的g ...
我搬载具搬履带过来,总是会出现一堆莫名奇妙的部分,我是把Re什么的下面全复制过来,具体哪一个是履带的模型,求解5555QAQ
本帖最后由 大大的咸鱼 于 2019-11-29 21:31 编辑
一般就是直接英文名了,一个一个照着网上查查就行了。要我去找的话也基本是看名字;如果真要从源头找到可能就要很扒底层代码了会比较麻烦。如果你不嫌麻烦的话我也可以直接告诉你这些东西在源代码里的哪些地方,你可以自己扒一扒试一试。
2901595717 发表于 2019-11-29 21:17
我搬载具搬履带过来,总是会出现一堆莫名奇妙的部分,我是把Re什么的下面全复制过来,具体哪一个是履带的 ...
一般就是直接英文名了,一个一个照着网上查查就行了。要我去找的话也基本是看名字;如果真要从源头找到可能就要很扒底层代码了会比较麻烦。如果你不嫌麻烦的话我也可以直接告诉你这些东西在源代码里的哪些地方,你可以自己扒一扒试一试。
大大的咸鱼 发表于 2019-11-29 21:29
一般就是直接英文名了,一个一个照着网上查查就行了。要我去找的话也基本是看名字;如果真要从源头找到可 ...
//---Standard Vehicle Config for Flans Mod--------
//Created by Minecraft-SMP Toolbox 2.3.0.0
//---Standard-------------------------------------
// Naming
Name leopard21
ShortName leopard21
ItemID Your ID
// Visuals
Model GoG.leopard2
ModelScale 1
Icon Icon_Vehicle_leopard21
// Recipe
//Misc
//------------------------------------------------
//---Driveables-----------------------------------
//Visuals
Model GoG.leopard2
Texture Skin_Vehicle_leopard21
//Movement
MaxThrottle 1.35
MaxNegativeThrottle 0.45
Drag 1.0
//Wheels
NumWheels 4
WheelPosition 0 -55 -8 -25
WheelPosition 1 -55 -8 25
WheelPosition 2 40 -8 25
WheelPosition 3 40 -8 -25
WheelRadius 5.0
WheelSpringStrength 0.5
//Floating
//Ammo
AllowAllAmmo False
AcceptAllAmmo False
AddAmmo 120mm
AddAmmo APFSDS120mm
AddAmmo HEm
//Weapons
Primary Shell
Secondary GUN
ReloadTimeSecondary 100
AddGun -29 30 6 turret PMG
BarrelPosition 0 27 0 97 1.5 0
ShootDelay 2
ShellDelay 155
BulletSpeed 7
//Driver and Passengers
Driver 0 29 0 -360 360 -9 20
DriverAimSpeed 4 4 0
RotatedDriverOffset -12 0 11
Passengers 0
ShootParticlesPrimary largeexplode 0 0 0
ShootParticlesPrimary cloud 1 0 0
ShootParticlesPrimary cloud 1.75 0 0
ShootParticlesPrimary cloud 1.5 0 0
ShootParticlesPrimary cloud 1.25 0 0
ShootParticlesPrimary cloud 0.75 0 0
ShootParticlesPrimary cloud 0.5 0 0
ShootParticlesPrimary cloud 0.25 0 0
ShootParticlesPrimary explode 1.5 0 0
ShootParticlesPrimary largesmoke 0.5 0 0.1
ShootParticlesPrimary largesmoke 0.5 0 -0.1
ShootParticlesPrimary largesmoke 0.5 0.06 0.06
ShootParticlesPrimary largesmoke 0.5 0.06 -0.06
ShootParticlesPrimary largesmoke 0.5 -0.06 0.06
ShootParticlesPrimary largesmoke 0.5 -0.06 -0.06
ShootParticlesPrimary largesmoke 0.5 -0.1 0
ShootParticlesPrimary largesmoke 0.5 0.1 0
ShootParticlesPrimary cloud 0.05 0 0.2
ShootParticlesPrimary cloud 0.05 0 -0.2
ShootParticlesPrimary cloud 0.05 0.13 0.13
ShootParticlesPrimary cloud 0.05 0.13 -0.13
ShootParticlesPrimary cloud 0.05 -0.13 0.13
ShootParticlesPrimary cloud 0.05 -0.13 -0.13
ShootParticlesPrimary cloud 0.05 -0.2 0
ShootParticlesPrimary cloud 0.05 0.2 0
ShootParticlesPrimary flame 0.1 0 0.3
ShootParticlesPrimary flame 0.1 0 -0.3
ShootParticlesPrimary flame 0.1 0.16 0.16
ShootParticlesPrimary flame 0.1 0.16 -0.16
ShootParticlesPrimary flame 0.1 -0.16 0.16
ShootParticlesPrimary flame 0.1 -0.16 -0.16
ShootParticlesPrimary flame 0.1 -0.3 0
ShootParticlesPrimary flame 0.1 0.3 0
ShootParticlesSecondary crit 0.2 0 0
//Inventory Slots
CargoSlots 30
ShellSlots 1
FuelTankSize 2000
//Recipe
AddRecipeParts turret 10 tankTurret
AddRecipeParts frontLeftWheel 10 tankTurret
AddRecipeParts frontRightWheel 10 tankTurret
AddRecipeParts trailer 10 tankTurret
AddDye 5 gray
//Health and Collision
SetupPart core 1250 -80 -1 -30 133 21 60
SetupPart turret 800 -30 20 -23 56 15 46
SetupPart frontLeftWheel 3000 24 20 9 5 16 15
SetupPart frontRightWheel 3000 24 20 -24 5 16 15
SetupPart trailer 3000 29 11 -31 26 10 62
BulletDetection 7
IsExplosionWhenDestroyed true
CollisionDamageEnable true
CollisionDamageThrottle 0.01
CollisionDamageTimes 20
//Misc
CameraDistance 15
//Sounds
StartSound TankIdle
StartSoundLength 20
EngineSound TE
EngineSoundLength 40
ShootSoundPrimary HT
ShootSoundSecondary MG1910
DriverYawBeforePitch true
DriverTraverseSounds true
YawSound DTY
YawSoundLength 28
PitchSound STY
PitchSoundLength 40
ReloadSoundSecondary MG42_ammo
//------------------------------------------------
//---Vehicle--------------------------------------
//Visuals
RotateWheels True
//Movement
TurnLeftSpeed 0.5
TurnRightSpeed 0.5
FourWheelDrive False
//Misc
Tank True
ShootDelay 2
ShellDelay 155
//Sound
TrackLinkLength 8
TrackFrames 3
FlipLinkFix true
RightLinkPoint [-74.5,9,-25.5]
RightLinkPoint [-71.5,12,-25.5]
RightLinkPoint [-66.5,12,-25.5]
RightLinkPoint [53,11.5,-25.5]
RightLinkPoint [56,8.5,-25.5]
RightLinkPoint [56,4.5,-25.5]
RightLinkPoint [53,1.5,-25.5]
RightLinkPoint [36.5,-8.5,-25.5]
RightLinkPoint [-60.5,-8.5,-25.5]
RightLinkPoint [-71.5,0.5,-25.5]
RightLinkPoint [-74.5,3.5,-25.5]
LeftLinkPoint [-74.5,9,25.5]
LeftLinkPoint [-71.5,12,25.5]
LeftLinkPoint [-66.5,12,25.5]
LeftLinkPoint [53,11.5,25.5]
LeftLinkPoint [56,8.5,25.5]
LeftLinkPoint [56,4.5,25.5]
LeftLinkPoint [53,1.5,25.5]
LeftLinkPoint [36.5,-8.5,25.5]
LeftLinkPoint [-60.5,-8.5,25.5]
LeftLinkPoint [-71.5,0.5,25.5]
LeftLinkPoint [-74.5,3.5,25.5]
//------------------------------------------------你看看哪一个是履带
2901595717 发表于 2019-11-29 22:06
//---Standard Vehicle Config for Flans Mod--------
//Created by Minecraft-SMP Toolbox 2.3.0.0

还需要我再帮你些什么么?
本帖最后由 大大的咸鱼 于 2019-11-30 00:25 编辑
我的意思是你自己查一查这里面每个单词的意思基本上就对这些参数的作用懂的差不多了,八成也用不上我来教你了。授人以鱼不如授人以渔,我希望的是教会你的是怎么自己看懂这些代码,而不是直接告诉你它是什么,特别是在这些东西还不算很难的时候。当然如果你一开始的目的就是改两个数据替换几个模型,不想做其它更深入的了,那你大可把你想知道的参数一股脑告诉我,我一次性给你说完你拿着改就行了。
爱问问题是好的,但前提是你有尝试过自己解决问题。
这里不论前提怎样,我还是再手把手帮你翻译一下每一个需要搬的参数的意思:
TrackLinkLength:1. Track,履带 2. Link,链接 3.Length,长度;翻译过来大概就是每一段履带的长度
TrackFrames:1. Track,履带 2. Frames,框架结构;翻译过来大概就是履带的机构类型
FlipLinkFix:1. Flip,翻转 2. Link,链接 3. Fix,固定;翻译过来大概就是履带的连接点相互固定
RightLinkPoint:1. Right,右侧 2. Link,链接 3. Point,点;翻译过来大概就是右侧的履带片连接点
LeftLinkPoint:1. Left,左侧 2. Link,链接 3. Point,点;翻译过来大概就是左侧的履带片连接点
2901595717 发表于 2019-11-29 23:59
我的意思是这里面有哪些要搬过去
我的意思是你自己查一查这里面每个单词的意思基本上就对这些参数的作用懂的差不多了,八成也用不上我来教你了。授人以鱼不如授人以渔,我希望的是教会你的是怎么自己看懂这些代码,而不是直接告诉你它是什么,特别是在这些东西还不算很难的时候。当然如果你一开始的目的就是改两个数据替换几个模型,不想做其它更深入的了,那你大可把你想知道的参数一股脑告诉我,我一次性给你说完你拿着改就行了。
爱问问题是好的,但前提是你有尝试过自己解决问题。
这里不论前提怎样,我还是再手把手帮你翻译一下每一个需要搬的参数的意思:
TrackLinkLength:1. Track,履带 2. Link,链接 3.Length,长度;翻译过来大概就是每一段履带的长度
TrackFrames:1. Track,履带 2. Frames,框架结构;翻译过来大概就是履带的机构类型
FlipLinkFix:1. Flip,翻转 2. Link,链接 3. Fix,固定;翻译过来大概就是履带的连接点相互固定
RightLinkPoint:1. Right,右侧 2. Link,链接 3. Point,点;翻译过来大概就是右侧的履带片连接点
LeftLinkPoint:1. Left,左侧 2. Link,链接 3. Point,点;翻译过来大概就是左侧的履带片连接点
大大的咸鱼 发表于 2019-11-30 00:23
我的意思是你自己查一查这里面每个单词的意思基本上就对这些参数的作用懂的差不多了,八成也用不上我来教 ...
有问题还可以问,不过最好是那些你查了一遍仍然不懂的问题
emmmm,多学习一点知识总是会有用的,虽说不知道能用上不,咱建模还没学,不过至少知道怎么改数据
mikejasondragon 发表于 2019-12-1 00:58
emmmm,多学习一点知识总是会有用的,虽说不知道能用上不,咱建模还没学,不过至少知道怎么改数据 ...
哈哈,感谢资瓷,不过这两天一直忙着更枪包和debug,教学帖的确更的不多(果然还是坑太大让人看着就觉得搞不完,然后就没动力了搞枪包去了23333 PS:当然还是会更下去的,不过应该是一段时间以后了[笑])
楼主我想问一下怎么让枪械开镜时枪械的精准度为0
本帖最后由 大大的咸鱼 于 2019-12-7 18:59 编辑
这个原版的flan、flan plus、flan plus ultimate都是做不到的,开镜时精度为0是我魔改了代码后新添加的功能,需要配合我这个版本的flan使用才行(在我的另一个帖子里)。同时你需要对武器的配置文件进行相应的修改(如果不是我的包),其中Spread/Accuracy参数为不开镜精度,然后添加AimingSpreadConstant参数,开镜的精度就等于Spread/Accuracy * AimingSpreadConstant的值。所以如果你希望开镜精度为0,AimTimeConstant参数填0就行了。
(这个效果在进游戏后的第一次开镜后才会生效)
黑色的滑稽 发表于 2019-12-7 11:51
楼主我想问一下怎么让枪械开镜时枪械的精准度为0
这个原版的flan、flan plus、flan plus ultimate都是做不到的,开镜时精度为0是我魔改了代码后新添加的功能,需要配合我这个版本的flan使用才行(在我的另一个帖子里)。同时你需要对武器的配置文件进行相应的修改(如果不是我的包),其中Spread/Accuracy参数为不开镜精度,然后添加AimingSpreadConstant参数,开镜的精度就等于Spread/Accuracy * AimingSpreadConstant的值。所以如果你希望开镜精度为0,AimTimeConstant参数填0就行了。
(这个效果在进游戏后的第一次开镜后才会生效)
大大的咸鱼 发表于 2019-12-7 13:35
这个原版的flan、flan plus、flan plus ultimate都是做不到的,开镜时精度为0是我魔改了代码后新添加的功 ...
如果我想修改Flan物品的物品名字我该怎么做呢
2901595717 发表于 2019-12-8 00:42
如果我想修改Flan物品的物品名字我该怎么做呢
找到包名\assets\flansmod\lang文件夹下的文件打开,然后公式是这样的item.物品的ShortName.name=你想让物品在游戏中显示的名字
那么Java应该如何转Class文件形式呢
2901595717 发表于 2019-12-14 20:34
那么Java应该如何转Class文件形式呢
需要进行编译,不过我还没出教程,你可以先去看看MCBBS上其他大佬们的教程
→https://www.mcbbs.net/forum.php?mod=viewthread&tid=906820
→https://www.mcbbs.net/forum.php?mod=viewthread&tid=666412
→https://www.mcbbs.net/forum.php?mod=viewthread&tid=648529
大大的咸鱼 发表于 2019-12-14 22:23
需要进行编译,不过我还没出教程,你可以先去看看MCBBS上其他大佬们的教程
→https://www.mcbbs.net/foru ...
我想把Flan**改成左键开镜开右键怎么整