地狱之门吧 关注:17,353贴子:170,710
  • 7回复贴,共1

(求助)喷火难题!求教如何修改喷火器,折腾几个小时要崩溃了

取消只看楼主收藏回复

起因是看到t34和kv8有车载喷火器,一个在车体机枪位,一个在同轴机枪位,都不占用主炮位,就很科学。而三德子的喷火三号居然要占用主炮位,喷的还没t34远,就离谱
本人十几年战人系列玩家了,本着自己动手丰衣足食的原则,就想手搓一个三德子的架空攻坚坦克。考虑到对面kv8的吨位,德子这边就把改造实验对象定为5号豹豹大小姐辣
然后就是令人崩溃的几小时折磨


IP属地:陕西1楼2023-05-22 17:05回复
    首先我拿着to34的定义文件看了看,嗯,车体栏引用的是ATO-42喷火器,看起来和车载机枪一个路子啊,直接把喷火器装豹豹身上试试看
    结果……一边像机枪一样哒哒哒地开火,一边没有任何子弹飞出,可小地图上又有弹道在飞翔是什么鬼
    然后我先后试了完整引用to34的车载喷火代码,在另一个文件中(电脑不在手边忘了文件名了)把to34关于车体喷火定义等部分的内容放进豹豹等等,结果都不能正常工作。猜测喷火器的火焰粒子效果是额外的一套东西,网上查了半天几乎没人提这一块。


    IP属地:陕西2楼2023-05-22 17:07
    收起回复
      于是我又转头打起了车长机枪位的主意,虽然地们不能手动把单兵喷火器放上去,但在背包里添加单兵喷火器并设置为使用,新刷的就可以正常使用了,而且卖相看起来还不错?
      然而40M的距离着实不适合车载,你肯定会说改Range不就行了,错聊!射程拉长火焰会飞到一半凭空消失!加快速度也一样!
      又反复研究了半天,对比单兵喷火器和ATO-42喷火器,除了速度快了一点(45到60),定义了个坦克上才用的到的foresight,就没区别了啊(单兵还有个射程40的tag,没找见出处,删了也没发现啥区别),为啥ATO-42喷80火焰就显示正常咧?
      又猜测莫非是重力gravity?源文件0.65,改大点,好嘛只是影响抛物线,枪口都冲天上去了,火焰还是飞不到大于40M的地方。


      IP属地:陕西3楼2023-05-22 17:08
      回复
        所以肯定在哪里有定义火焰特效的持续时间,和上述的射程、重力、速度共同结合,才能改变火焰喷射器的功能。
        有哪位神通老哥知道在哪里修改吗?这厢跪谢了
        如果能解答一下喷火坦克的修改方法,就更功德无量了


        IP属地:陕西4楼2023-05-22 17:09
        回复
          哈哈哈哈,感谢热心老哥的点拨,花了点时间终于摸索出来了!分享给大家!
          这里以本人的5号豹豹为例,讲一下车载火焰喷射器的修改方法
          首先,在-vehicle.pak\-vehicle\germany\tank_medium\panzer5g,找到panzer5g.def,每个载具的核心资料都写在这个def中。
          首先开头{props字段,对比KV8和ot34少了个"flame"词条,这是火焰配舍弃的类型(感谢@michaelmoody老哥的点拨),在末尾加空格补上,就成了
          {props"medium" "vision_lev04" "muzzle_85mm_93mm_sides""shield" "smoke" "nvw""detect_tank_heavy" "flame"}


          IP属地:陕西9楼2023-05-22 22:43
          回复
            然后来到{Weaponry字段,第一个place "gun"是载具的主炮,往下是附加武器位,{type"coaxial"}是同轴,{type "hull"}是车体,foresight表示它们在模型上对应的物理位置,这个非常重要。
            KV8的同轴位火焰喷射器是这么写的
            {place"flamer1" ;flamer1位置定义
            {type"coaxial_flamer"} ;同轴火焰
            {weapon"ato_41_flame_thrower" filled} ;喷火器型号
            {foresight"foresight7"} ;位置编号
            {gunner"gunner"} ;归谁操作
            {charger"charger"}
            {basic}
            {ai_in_manual}
            }
            那么5G保留foresight位置编号,其余直接抄过来就是:
            {place"flamer1"
            {type"coaxial_flamer"}
            {weapon"ato_41_flame_thrower" filled}
            {foresight"foresight5"} ;注意保持点位,别全抄了
            {gunner"gunner"}
            {charger"charger"}
            {basic}
            {ai_in_manual}
            }


            IP属地:陕西10楼2023-05-22 22:45
            回复
              但到这里你去测试依然是不正常的,还需要在另一个地方给坦克挂上相关定义。在gamelogic/set/interaction_entity/找到tank-specifics.inc,搜索kv8 可以找到如下描述
              {"kv8 tank"
              ("kv_sound")
              {on"add_weapon_sound" overload ;应该是武器声音
              ("DT")
              }
              {onspawn
              {add_view"flamer_fire_tank" "flame" "foresight7"} 添加坦克喷火器,7号位置
              }
              {onoperatable on
              {viewstart "fire"} ;疑似粒子动画开始?
              }
              {onoperatable off
              {viewstop "fire"} ;疑似粒子动画结束?
              }
              {on"_explosion"
              {spawn"fuel_die"} ;可能是殉爆类型?
              {blastwavec4 5 r0 4 r1 15} ;冲击波?没懂,经对照和ot34一样
              {fireradius 5 time 15 heating 10} ;火焰半径?燃烧时间?heating不知道该怎么理解,击中目标后的燃烧速度?
              }
              ("flame_weapon"args flamer1 60 7 40) ;重点,flamer1必须对应def中的武器位,60表示射程,7表示foresight点位,40是火焰的飞行速度
              }
              于是乎,同文件定位到4号G型,在下面添加对应定义后就是这样了
              {"panzer5g tank"
              ("pz5_sound")
              {on"add_weapon_sound" overload
              ("MG34")
              }
              {on"commander_hatch_open" overload
              {ani_wind"open" end}
              {ani_play"mgun_aa" +1.0 resume}
              }
              {on"commander_hatch_close" overload
              {ani_play"open" -1.0 resume}
              {ani_play"mgun_aa" -1.0 resume}
              }
              {onspawn
              {add_view"flamer_fire_tank" "flame" "foresight5"} ;注意,def中4g的同轴武器在5号位
              }
              {onoperatable on
              {viewstart "fire"}
              }
              {onoperatable off
              {viewstop "fire"}
              }
              {on"_explosion"
              {spawn"fuel_die"}
              {blastwavec4 5 r0 4 r1 15}
              {fireradius 5 time 15 heating 10}
              }
              ("flame_weapon"args flamer1 60 5 40) ;这里flamer1 要和def中对应武器位的{place相同才行,且中间的数字要换成新载具的对应foresight位置


              IP属地:陕西11楼2023-05-22 22:47
              回复
                至此,豹豹的同轴喷火器就可以正常生效咯!


                IP属地:陕西12楼2023-05-22 23:30
                回复