Working ( ger ) Flak Panzer I & ( Ussr ) Gaz 72k Codes ( mostly thanks to devenddar )

first of all, huge thanks to @Devenddar for sharing the code for the flank panzer I.

based on this, i decided to make 2 varients of the gaz 72k.

here is the code for the flak panzer I:

entity{
  _template:t="base_flpz_i_ausf_a"
  transform:m=[[0.227077, -0.000894908, 0.973876] [0.00482928, 0.999988, -0.000207135] [-0.973865, 0.00475016, 0.227079] [-76.8724, 21.7734, -109.957]]
  animchar__res:t="flpz_I_ausf_A_char"
  collres__res:t="flpz_I_ausf_A_collision"
  damage_model__blk:t="gamedata/gen/units/tanks/flpz_i_ausf_a.blk"
  dmg_animchar__res:t="flpz_I_ausf_A_dmg_char"
  item__name:t="items/germ_flakpanzer_i_ausf_a"
  killLogName:t="germ_flakpanzer_i_ausf_a"
  skin__template:t="flpz_i_ausf_a_skins"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/flpz_i_ausf_a.blk:VehiclePhys"
  xray_resource__modelName:t="flpz_I_ausf_A"

  "bullet_holes__movingCollisionNodes:array"{}
  "vehicle_seats__seats:shared:array"{
    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="driver"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.25, -0.25, 0]]
      name:t="driver"
      seatComponent:t="isDriver"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="driver"
      seatOwnsEntityControl:b=yes
      nextSeat:t="main_gunner"
      locName:t="vehicle_seats/driver"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="gunner"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.25, -0.5, 0]]
      name:t="main_gunner"
      seatComponent:t="isGunner"
      cameraNodeName:t="bone_camera_gunner"
      attachNode:t="gunner"
      nextSeat:t="driver"
      locName:t="vehicle_seats/gunner"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "turretNames:array"{
        turretNames:t="turret_01"
      }
    }
  }
}

and the Gaz 72k ( V1 )

entity{
  _template:t="base_flpz_i_ausf_a"
  transform:m=[[0.0593743, 0.0109768, 0.998175] [-0.0286396, 0.999546, -0.00928833] [-0.997825, -0.0280359, 0.0596617] [-71.8628, 21.5637, -111.244]]
  animchar__res:t="gaz_mm_72k_char"
  collres__res:t="gaz_mm_72k_collision"
  damage_model__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk"
  dmg_animchar__res:t="gaz_mm_72k_dmg_char"
  item__name:t="items/ussr_gaz_mm_72k"
  killLogName:t="ussr_gaz_mm_72k"
  skin__template:t="gaz_mm_72k_skins"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk:VehiclePhys"
  xray_resource__modelName:t="gaz_mm_72k"

  "bullet_holes__movingCollisionNodes:array"{}
  "vehicle_seats__seats:shared:array"{
    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="driver"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.25, -0.25, 0]]
      name:t="driver"
      seatComponent:t="isDriver"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="driver"
      seatOwnsEntityControl:b=yes
      nextSeat:t="main_gunner"
      locName:t="vehicle_seats/driver"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=yes
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="gunner"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.25, -0.5, 0]]
      name:t="main_gunner"
      seatComponent:t="isGunner"
      cameraNodeName:t="bone_camera_gunner"
      attachNode:t="gunner"
      nextSeat:t="driver"
      locName:t="vehicle_seats/gunner"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "turretNames:array"{
        turretNames:t="turret_01"
      }
    }
  }
}

and here, is a Gaz 72k Code ( V2 ) ( fixed by @Aurora_Pioneer_I )

entity{
  _template:t="germ_flak_36_sdkfz_6_2"
  transform:m=[[0.999552, 0.0296967, 0.00369366] [-0.0297819, 0.999227, 0.0256722] [-0.00292842, -0.0257707, 0.999664] [-404.392, 23.8303, -741.482]]
  animchar__res:t="gaz_mm_72k_char"
  collres__res:t="gaz_mm_72k_collision"
  damage_model__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk"
  dmg_animchar__res:t="gaz_mm_72k_dmg_char"
  item__name:t="items/ussr_gaz_mm_72k"
  killLogName:t="ussr_gaz_mm_72k"
  skin__template:t="gaz_mm_72k_skins"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk:VehiclePhys"
  xray_resource__modelName:t="gaz_mm_72k"

  "turret_control__turretInfo:shared:array"{
    "turret_control__turretInfo:object"{
      salt:i=1
      gun:t="as_42_metropolitana_turret_01_20mm_breda_20_65_m35+base_37mm_flak36+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      turretName:t="turret_01"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
    }
  }

  "vehicle_seats__seats:shared:array"{
    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="driver"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0, -0.4, 0.05]]
      name:t="driver"
      seatComponent:t="isDriver"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="driver"
      seatOwnsEntityControl:b=yes
      nextSeat:t="main_gunner"
      locName:t="vehicle_seats/driver"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="gunner"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.15, -0.2, 0]]
      cameraOffset:p3=-2.2, 0.6, 0
      name:t="main_gunner"
      seatComponent:t="isGunner"
      cameraNodeName:t="bone_camera_gunner"
      cameraType:t="machinegunner_cockpit"
      attachNode:t="gunner"
      nextSeat:t="driver"
      locName:t="vehicle_seats/gunner"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "turretNames:array"{
        turretNames:t="turret_01"
      }
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="commander"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0, -0.4, -0.05]]
      cameraOffset:p3=-5, 0.29, 0
      name:t="commander"
      seatComponent:t="isDriver"
      cameraType:t="machinegunner_cockpit"
      attachNode:t="commander"
      locName:t="vehicle_seats/commander"
      ignoreAttachNodeRotation:b=yes
      maxPosWithOpenHatch:r=0.4
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="loader"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.1, -0.2, 0]]
      seatComponent:t="isPassenger"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="loader"
      locName:t="vehicle_seats/loader"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "loaderTurretNames:array"{
        loaderTurretNames:t="turret_01"
      }
    }
  }
}
Old code for tweaking
entity{
  _template:t="germ_flak_36_sdkfz_6_2"
  transform:m=[[0.989103, 0.0395602, -0.141813] [-0.032181, 0.998025, 0.0539566] [0.143668, -0.0488049, 0.988422] [-67.3795, 21.5492, -95.4671]]
  animchar__res:t="gaz_mm_72k_char"
  collres__res:t="gaz_mm_72k_collision"
  damage_model__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk"
  dmg_animchar__res:t="gaz_mm_72k_dmg_char"
  item__name:t="items/ussr_gaz_mm_72k"
  killLogName:t="ussr_gaz_mm_72k"
  skin__template:t="gaz_mm_72k_skins"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk:VehiclePhys"
  xray_resource__modelName:t="gaz_mm_72k"
}

Differences between the V1 gaz, and v2 gaz, are that the V1 mostly works like the panzer I ( as are exactely a copy ) designed to be balanced between each other and works exactely the same. but with different skins, and damage models.

the v2 on the other hand, is somewhat more " complex ".
the main differences between the V1, is that the gun works differently, ( and is somewhat more op lol ), it requires 4 soldiers instead of 2, and the cameras are slighlty different. ( and yes. a reskin of the flak truck. cuz i’m not really good like devender. )

but still. i decided to upload them if someone out there needs a fast AA working vehicle for Germany / USSR.
and works perfectly.

:warning: Known issues and work in progress ::warning:

the V1 gaz variant has the drive in a different animation. i’m still trying to figure out how to change the position and the camera. ( despite mr deven gave me codes and stuff. i’m … not really good at these )

7 Likes

Nice work!
By the way, I don’t know if you have encountered any random mod crashes. I really can’t figure out the cause of these crashes. Therefore, although these codes are good, I can’t add them to my mod (until they are repaired)

does it also crash in empty/fresh mods? or mods that you have previously created/tweaked ?

( and/or, it crashes only with these vehicles ? )

No, it’s not a problem with your code. They work well in most mods
It’s just that these anti-aircraft guns sometimes make mistakes in one of my mods. It’s very strange

1 Like

guess could be the current instability.

i then reccomend you to PM privately one of the mod or devs and send your raw files plus bug reports to them.

it might help :smiley:

1 Like

3rd person - Gaz 72 aa

entity{
  _template:t="germ_flak_36_sdkfz_6_2"
  transform:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [911.076, 7.50106, 325.961]]
  animchar__res:t="gaz_mm_72k_char"
  collres__res:t="gaz_mm_72k_collision"
  damage_model__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk"
  dmg_animchar__res:t="gaz_mm_72k_dmg_char"
  item__name:t="items/ussr_gaz_mm_72k"
  killLogName:t="ussr_gaz_mm_72k"
  skin__template:t="gaz_mm_72k_skins"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk:VehiclePhys"
  xray_resource__modelName:t="gaz_mm_72k"

  "turret_control__turretInfo:shared:array"{
    "turret_control__turretInfo:object"{
      salt:i=1
      gun:t="as_42_metropolitana_turret_01_20mm_breda_20_65_m35+base_37mm_flak36+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      turretName:t="turret_01"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
    }
  }

  "vehicle_seats__seats:shared:array"{
    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="driver"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.25, -0.5, 0]]
      name:t="driver"
      seatComponent:t="isDriver"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="driver"
      seatOwnsEntityControl:b=yes
      nextSeat:t="main_gunner"
      locName:t="vehicle_seats/driver"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="gunner"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.25, -0.5, 0]]
      cameraOffset:p3=-2.2, 0.6, 0
      name:t="main_gunner"
      seatComponent:t="isGunner"
      cameraNodeName:t="bone_camera_gunner"
      cameraType:t="machinegunner_cockpit"
      attachNode:t="gunner"
      nextSeat:t="driver"
      locName:t="vehicle_seats/gunner"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "turretNames:array"{
        turretNames:t="turret_01"
      }
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="commander"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0, -0.5, 0.1]]
      cameraOffset:p3=-5, 0.29, 0
      name:t="commander"
      seatComponent:t="isDriver"
      cameraType:t="machinegunner_cockpit"
      attachNode:t="commander"
      locName:t="vehicle_seats/commander"
      ignoreAttachNodeRotation:b=yes
      maxPosWithOpenHatch:r=0.4
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="loader"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0, -0, 0]]
      seatComponent:t="isPassenger"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="loader"
      locName:t="vehicle_seats/loader"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "loaderTurretNames:array"{
        loaderTurretNames:t="turret_01"
      }
    }
  }
}

Based on Tommy’s Flak 36 version, fixing the problem of wrong sound effect

Fixed!

2 Likes

hey, great work!

i’ll update it accordingly.

i had no idea what to do despite being days on it.

helps me to create further vehicles from this code as well now that i somewhat understand it, thanks!.

2 Likes

It’s my pleasure to help every mod maker :laughing:
A little change, I’ve set locations of gunner and loader more properly now:

entity{
  _template:t="germ_flak_36_sdkfz_6_2"
  transform:m=[[0.999552, 0.0296967, 0.00369366] [-0.0297819, 0.999227, 0.0256722] [-0.00292842, -0.0257707, 0.999664] [-404.392, 23.8303, -741.482]]
  animchar__res:t="gaz_mm_72k_char"
  collres__res:t="gaz_mm_72k_collision"
  damage_model__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk"
  dmg_animchar__res:t="gaz_mm_72k_dmg_char"
  item__name:t="items/ussr_gaz_mm_72k"
  killLogName:t="ussr_gaz_mm_72k"
  skin__template:t="gaz_mm_72k_skins"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/gaz_mm_72k.blk:VehiclePhys"
  xray_resource__modelName:t="gaz_mm_72k"

  "turret_control__turretInfo:shared:array"{
    "turret_control__turretInfo:object"{
      salt:i=1
      gun:t="as_42_metropolitana_turret_01_20mm_breda_20_65_m35+base_37mm_flak36+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      turretName:t="turret_01"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
    }
  }

  "vehicle_seats__seats:shared:array"{
    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="driver"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0, -0.4, 0.05]]
      name:t="driver"
      seatComponent:t="isDriver"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="driver"
      seatOwnsEntityControl:b=yes
      nextSeat:t="main_gunner"
      locName:t="vehicle_seats/driver"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="gunner"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.15, -0.2, 0]]
      cameraOffset:p3=-2.2, 0.6, 0
      name:t="main_gunner"
      seatComponent:t="isGunner"
      cameraNodeName:t="bone_camera_gunner"
      cameraType:t="machinegunner_cockpit"
      attachNode:t="gunner"
      nextSeat:t="driver"
      locName:t="vehicle_seats/gunner"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "turretNames:array"{
        turretNames:t="turret_01"
      }
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="commander"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0, -0.4, -0.05]]
      cameraOffset:p3=-5, 0.29, 0
      name:t="commander"
      seatComponent:t="isDriver"
      cameraType:t="machinegunner_cockpit"
      attachNode:t="commander"
      locName:t="vehicle_seats/commander"
      ignoreAttachNodeRotation:b=yes
      maxPosWithOpenHatch:r=0.4
      shouldHideOwner:b=no
    }

    "vehicle_seats__seats:object"{
      receiveDamageFromDMPart:t="loader"
      attachTm:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [-0.1, -0.2, 0]]
      seatComponent:t="isPassenger"
      cameraNodeName:t="bone_camera_driver"
      attachNode:t="loader"
      locName:t="vehicle_seats/loader"
      ignoreAttachNodeRotation:b=yes
      shouldHideOwner:b=no

      "loaderTurretNames:array"{
        loaderTurretNames:t="turret_01"
      }
    }
  }
}
1 Like