[Info] Zombies Mode Modding

Hmmm… When you spawn it then it doesn’t looks damaged. Anyways… It seems that all info about it inside dm_parts__initializeKilled.

  "dm_parts__initializeKilled:list<t>"{
    part:t="gun_barrel"
    part:t="ex_decor_04"
    part:t="ex_armor_turret_l_01"
    part:t="ex_armor_turret_l_02"
    part:t="ex_armor_turret_r_01"
    part:t="ex_armor_turret_r_02"
    part:t="ex_decor_r_01"
    part:t="ex_decor_l_01"
    part:t="ex_decor_r_09"
  }

There also damage decals, but… It contains sooooo many lines. Around 1000.

These properties are changed:

  _group{
    _tags:t="render"

    "damage_decals_decor__shrapnelDecalLocalNormal:list<p3>"{
      item:p3=0.292375, 4.03216e-06, 0.956304
    }

    "damage_decals_decor__projectileHitLocalNormal:list<p3>"{
      item:p3=0.250654, -0.968044, 0.00803057
    }

    "damage_decals_decor__projectileHitCaliber:list<r>"{
      item:r=0.0762
    }

    "damage_decals_decor__shrapnelDecalCollNodeName:list<t>"{
      item:t="ex_armor_body_02"
    }

    "damage_decals_decor__projectileHitLocalPos:list<p3>"{
      item:p3=1.29257, -1.097, 1.50737
    }

    "damage_decals_decor__shrapnelDecalLocalPos:list<p3>"{
      item:p3=-0.131775, -0.141825, 0.0752282
    }

    "damage_decals_decor__projectileHitLocalDir:list<p3>"{
      item:p3=-0.998302, -0.0510127, 0.0281334
    }

    "damage_decals_decor__shrapnelDecalLocalDir:list<p3>"{
      item:p3=0.343383, 0.150422, -0.927072
    }

    "damage_decals_decor__projectileHitDamageType:list<t>"{
      item:t="kinetic_ricochet"
    }

    "damage_decals_decor__projectileHitCollNodeName:list<t>"{
        item:t="body_side"
    }
}

If you need full code then edit these properties in tank and save changes. They’re should be added in scene.blk.

If you nothing edit then yeah. Near spawn of team 1, but in sky. 300-400m.

1 Like

do you have the full blk?

i would like to see it’s code.

maybe i’m missing some other properties.

because i tried to make a jagdpanther with ai stuff,
but it’s not working.

it moves ( achtually, i still have to figure out why it moves in reverse, stops a few seconds, and then moves in traverse again. i guess i’ll just remove the driver ), but it doesn’t shoot unlike the panzer IV J.

zombie_jagdpanther_ai_vehicle_tank{
  _use:t="ai_vehicle_tank_no_objective"
  _use:t="germ_jagdpanther"
  paid_loot__pointsForKill:i=100
  vehicle_seats__restrictToTeam:i=3

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    zombie_ai_vehicle_tank__timeToDestroy:r=900.0
    zombie_ai_vehicle_tank__destroyAtTime:r=0.0
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }
}


germ_jagdpanther{
  _override:b=yes

  "turret_control__turretInfo:shared:array"{

    "turretInfo:object"{
      turretName:t="turret_01"
      gun:t="panzerjager_panther_turret_01_88mm_pak43_ai+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_02"
      gun:t="panzerjager_panther_turret_02_7_92mm_mg34"
      barrelDm:t="gun_barrel_01"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }
  }
}

panzerjager_panther_turret_01_88mm_pak43_ai{
  _use:t="panzerjager_panther_turret_01_88mm_pak43"
  turret__allowShootingFromBroken:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

… or maybe not all tanks are suited to have AIs.

but, thanks for the damaged parts and neat features of damage decors :slight_smile:

1 Like

Turret doesn’t look unique.

pzkpfw_iv_ausf_j_turret_01_75mm_kwk40_l48_zombie_ai{
  _use:t="pzkpfw_iv_ausf_j_turret_01_75mm_kwk40_l48"
  turret__allowShootingFromBroken:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

But yeah. Here is full file…
germ_pzkpfw_iv_ausf_j_zombie.blkx.txt (41.4 KB)
And this:

zombie_ai_vehicle_tank{
  _use:t="ai_vehicle_tank_no_objective"
  _use:t="germ_pzkpfw_IV_ausf_J_zombie"
  paid_loot__pointsForKill:i=100
  vehicle_seats__restrictToTeam:i=3

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    zombie_ai_vehicle_tank__timeToDestroy:r=900.0
    zombie_ai_vehicle_tank__destroyAtTime:r=0.0
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }
}
1 Like

interesting.

it appears the code does not work for all tank weapons as of yet.


pzkpfw_iv_ausf_j_turret_01_75mm_kwk40_l48_zombie_ai{
  _use:t="pzkpfw_iv_ausf_j_turret_01_75mm_kwk40_l48"
  turret__allowShootingFromBroken:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}
panzerjager_panther_turret_01_88mm_pak43_ai{
  _use:t="panzerjager_panther_turret_01_88mm_pak43"
  turret__allowShootingFromBroken:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

maybe it needs to be on a new template.

EDIT:

yes.

despite many attempts into making a panther G with AI gunner, it didn’t worked.

additional " strange " things that i noticed, is that even if i remove the driver, the panzer IV will still move.

and with those codes, if the tank gets destroyed, the chassy will disappear.

ai_aircraft_crew_ger{
  _override:b=yes
  "zombie:tag"{
  }

  "zombie_no_award:tag"{
  }
}

germ_pzkpfw_IV_ausf_J_AI{
  _use:t="base_pzkpfw_iv_ausf_j"
  _use:t="germ_pzkpfw_IV_ausf_J_common_vehicle_sound"
  item__iconOffset:p2=0.1, 0.15
  item__iconScale:r=1.4
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
  gunner_cam_limit__useCockpitDir:b=yes
  armorThicknessHull:p3=80.0, 30.0, 20.0
  armorThicknessTurret:p3=50.0, 30.0, 30.0

  "dm_parts__initializeKilled:list<t>"{
    part:t="gun_barrel"
    part:t="ex_decor_04"
    part:t="ex_armor_turret_l_01"
    part:t="ex_armor_turret_l_02"
    part:t="ex_armor_turret_r_01"
    part:t="ex_armor_turret_r_02"
    part:t="ex_decor_r_01"
    part:t="ex_decor_l_01"
    part:t="ex_decor_r_09"
  }

  "disableDMParts:list<t>"{
    part:t="ex_armor_04"
    part:t="ex_armor_body_r_01"
    part:t="ex_armor_body_r_02"
    part:t="ex_armor_body_r_03"
    part:t="ex_armor_body_r_05"
    part:t="ex_armor_body_l_01"
    part:t="ex_armor_body_l_02"
    part:t="ex_armor_body_l_03"
    part:t="track_r_01"
    part:t="track_l_01"
  }

  "animchar__objTexReplace:object"{
    "ger_camo_dunkelgelb*":t="ger_camo_dark_grey*"
  }

  "turrets__initAmmoDistribution:array"{

    "ammo:object"{
      slot:i=0
      fill:b=yes
    }

    "ammo:object"{
      slot:i=5
      count:i=7
    }
  }

  "turret_control__turretInfo:shared:array"{

    "turretInfo:object"{
      turretName:t="turret_01"
      gun:t="pzkpfw_iv_ausf_j_turret_01_75mm_kwk40_l48_zombie_ai+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_02"
      gun:t="pzkpfw_iv_ausf_j_turret_02_7_92mm_mg34"
      barrelDm:t="gun_barrel_01"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_03"
      gun:t="pzkpfw_iv_ausf_j_turret_03_7_92mm_mg34"
      barrelDm:t="gun_barrel_02"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_04"
      needsAssignedGunner:b=no
      turretGroup:t="smoke"
      gun:t="pzkpfw_iv_ausf_j_turret_04_91mm_germ_smoke_mortar_launcher"
      salt:i=1
    }
  }

  "vehicle_seats__effectors:array"{
  }

  "vehicle_seats__seats:shared:array"{

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="gunner"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="germ_pzkpfw_IV_ausf_J_gunner_cockpit"
      directTurretControl:b=yes

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

    "seats:object"{
      name:t="commander"
      locName:t="vehicle_seats/commander"
      attachNode:t="bone_turret_01"
      shouldHideOwner:b=yes
      hatchRotationAxis:p3=1.8, 0.0, 0.0
      maxPosWithOpenHatch:r=0.6
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[0.945513, -0.325564, -0.0] [0.325564, 0.945513, 0.0] [0.0, -0.0, 1.0] [-0.15, -0.6, 0.07]]
      seatComponent:t="isDriver"
      receiveDamageFromDMPart:t="commander"
      cockpitTemplate:t="germ_pzkpfw_IV_ausf_J_commander_cockpit"
      cameraNodeName:t="bone_turret"
      isHatchControlInversed:b=yes

      "hatchNodes:array"{
        node:t="hatch_10"
      }

      "hatchTurretNames:array"{
        turret:t="turret_03"
      }

      "effectors:object"{

        "l.hand:object"{
          rel_tm:m=[[0.97117, 0.237519, 0.020345] [0.0889659, -0.440294, 0.893435] [0.221165, -0.865868, -0.448731] [0.0157318, 0.0978909, -0.0356903]]
          node:t="bone_mg_aa"
        }

        "r.hand:object"{
          rel_tm:m=[[0.457892, 0.365741, -0.810288] [-0.0172946, -0.907617, -0.419446] [-0.888839, 0.206074, -0.409265] [-0.229507, 0.231809, 0.0531616]]
          node:t="bone_mg_aa"
        }

        "l.foot:object"{
          rel_tm:m=[[0.0580978, -0.998205, -0.0145364] [0.985102, 0.0596839, -0.161282] [0.16186, -0.00494957, 0.986801] [-0.108994, -0.703663, -0.106209]]
          node:t="bone_turret_01"
        }

        "r.foot:object"{
          rel_tm:m=[[0.0380384, -0.999241, 0.00848966] [0.998773, 0.0382875, 0.0314126] [-0.0317138, 0.00728441, 0.99947] [-0.107773, -0.709267, 0.0740204]]
          node:t="bone_turret_01"
        }
      }
    }

    "seats:object"{
      locName:t="vehicle_seats/loader"
      attachNode:t="loader"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isPassenger"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="loader"
      cameraNodeName:t="bone_camera_driver"

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

    "seats:object"{
      locName:t="vehicle_seats/radioman"
      attachNode:t="machine_gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isPassenger"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machine_gunner"
    }
  }

  "attach_decorators__entities:list<eid>"{
  }

  "attach_decorators__templates:array"{

    "templates:object"{
      relativeTm:m=[[-0.0397046, 0.0454239, 0.998744] [0.967918, -0.251643, 0.0499252] [0.253322, 0.967741, -0.0339445] [2.76668, 0.972928, 0.175631]]
      template:t="sandbag_single_a_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.081971, -0.153297, 0.985157] [-0.996855, 0.00849219, 0.084274] [-0.0212712, -0.988288, -0.152036] [-1.83018, 1.7214, 0.417252]]
      template:t="sandbag_single_b_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.895648, -0.444415, -0.0393434] [-0.0748249, -0.0626309, -0.995828] [0.43985, 0.894302, -0.0893016] [2.54849, 1.02297, -0.694606]]
      template:t="sandbag_single_c_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[-0.111425, 0.0469708, -0.992893] [-0.986354, -0.13076, 0.104539] [-0.12486, 0.990557, 0.060867] [-1.90656, 1.57031, -0.116939]]
      template:t="sandbag_single_c_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[-0.0242969, 0.0301522, -0.99997] [-0.822296, 0.569102, 0.0371379] [0.569719, 0.822443, 0.0109577] [2.30269, 1.13923, 0.595828]]
      template:t="sandbag_single_d_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.999203, 0.0216646, 0.0396109] [0.0398049, -0.00840105, -0.999206] [-0.0213138, 0.999898, -0.00925717] [-1.74838, 1.69718, -0.987704]]
      template:t="tank_decor_box_01_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.999898, -1.32487e-05, -0.00263915] [-0.00263822, 0.0298302, -0.999728] [9.19911e-05, 0.999905, 0.0298331] [-1.71437, 1.68709, 0.994935]]
      template:t="tank_decor_box_01_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[-0.00899908, -0.984255, 0.176703] [-0.999205, 0.0176307, 0.0473065] [-0.049663, -0.176088, -0.983386] [-1.92053, 1.48771, 1.38156]]
      template:t="jerrycan"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[-0.0272856, -0.935949, -0.351771] [0.998021, -0.0467129, 0.0468484] [-0.0602505, -0.349653, 0.935096] [-1.76068, 1.48194, -1.40904]]
      template:t="jerrycan"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.0133902, -0.501274, -0.000135187] [0.501274, 0.0133862, -0.000170138] [0.000173672, -0.000130378, 0.501073] [-0.832581, 0.969506, -1.44889]]
      template:t="wooden_plank_b_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.00802108, -0.501514, -0.00013519] [0.501514, 0.0080189, -0.0001731] [0.000175217, -0.000132064, 0.501123] [1.54306, 0.989046, 1.42528]]
      template:t="wooden_plank_b_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.00845192, -0.501394, 0.000187221] [0.501275, 0.00845121, 0.00782867] [-0.00782971, 5.51534e-05, 0.500845] [1.43285, 1.02978, -1.46294]]
      template:t="wooden_plank_c_decor"
      nodeName:t="root"
    }

    "templates:object"{
      relativeTm:m=[[0.00606502, -0.501254, -0.000181364] [0.501448, 0.00605729, 0.00982283] [-0.00980991, -0.000299887, 0.500932] [-0.705231, 1.04167, 1.40337]]
      template:t="wooden_plank_c_decor"
      nodeName:t="root"
    }
  }
}

zombie_panther_g_ai_vehicle_tank{
  _use:t="ai_vehicle_tank_no_objective"
  _use:t="germ_pzkpfw_V_ausf_g_panther"
  paid_loot__pointsForKill:i=100
  vehicle_seats__restrictToTeam:i=3

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=0
    zombie_ai_vehicle_tank__timeToDestroy:r=0.0
    zombie_ai_vehicle_tank__destroyAtTime:r=0.0
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }
}

germ_pzkpfw_V_ausf_g_panther{
  _override:b=yes

  "animchar__objTexReplace:object"{
    "ger_camo_dunkelgelb*":t="ger_camo_dark_grey*"
  }

  "turret_control__turretInfo:shared:array"{

    "turretInfo:object"{
      turretName:t="turret_01"
      gun:t="pzkpfw_v_ausf_g_panther_turret_01_75mm_kwk42_ai+turret_with_several_types_of_shells+main_turret"
      barrelDm:t="gun_barrel"
      breechDm:t="cannon_breech"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_02"
      gun:t="pzkpfw_v_ausf_g_panther_turret_02_7_92mm_mg34"
      barrelDm:t="gun_barrel_01"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }

    "turretInfo:object"{
      turretName:t="turret_03"
      gun:t="pzkpfw_v_ausf_g_panther_turret_03_7_92mm_mg34"
      barrelDm:t="gun_barrel_02"
      verDriveDm:t="drive_turret_v"
      horDriveDm:t="drive_turret_h"
      salt:i=1
    }
  }
}

pzkpfw_v_ausf_g_panther_turret_01_75mm_kwk42_ai{
  _use:t="pzkpfw_v_ausf_g_panther_turret_01_75mm_kwk42"
  turret__allowShootingFromBroken:b=no

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=80.0
  }
}


zombie_pzv_ai_vehicle_tank{
  _use:t="ai_vehicle_tank_no_objective"
  _use:t="germ_pzkpfw_IV_ausf_J_AI"
  paid_loot__pointsForKill:i=100
  vehicle_seats__restrictToTeam:i=3

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=0
    zombie_ai_vehicle_tank__timeToDestroy:r=0.0
    zombie_ai_vehicle_tank__destroyAtTime:r=0.0
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }
}

guess we’ll have to manually tweak and replicate more panzer IVs intol different animchars and phys of other vehicles.

1 Like

Hey just want to know is the gamemod “survive” can work with AI soldier with guns?

Probably yes. Zombies with guns looks similar to default enlisted soldiers.

It doesn’t seem to make a difference.

I can only guess which property does what, i bumped

kép

To 3000, assuming it means the ai gets attracted to danger (in this case human entites?) within a 3000m radius.

Same with this:

kép

Assuming it means that the AI will follow the player within a 3000m radius even if not in line of sight.

EDIT:

Note to everyone: editing the BEH tree value seems to have solved the problem about distance.

nzombie_ai_without_bullet_reaction{
  _override:b=yes
  _use:t="beh_tree_regular_check"
  _use:t="agent_dangers_hit_reaction"
  _use:t="get_reaction_offender_ai"
  _use:t="corridor_walker"
  _use:t="walker_agent_danger_calc"
  _use:t="affected_by_attract_position"
  _use:t="obstacle_avoider"
  _use:t="door_obstacle_handler"
  _use:t="destructable_obstacle_handler"
  _use:t="stuck_detector"
  stuck_detector_debug__enabled:b=no
  walker_agent__velViscosity:r=0.3
  walker_agent__velFactor:r=1.0
  walker_agent__aimViscosity:r=0.5
  walker_agent__aimSpeed:r=1050.0
  _tracked:t="walker_agent__targetEid"
  walker_agent__targetPos:p3=0.0, 0.0, 0.0
  walker_agent__standShootLocalPos:p3=0.0, 1.2, 0.0
  agent_dangers__blindDistance:r=3000.0
  agent_dangers_calc__dangerMeterMult:r=1.0
  beh_tree__node:t="nzombie_attacker"
  beh_tree__refs__wander:t="sub.nAttackPriorityTarget"
  beh_tree__refs__attack:t="sub.attackPlayerOpportunistic"
  beh_tree__debug:b=no
  beh_tree__enabled:b=yes
  beh_tree__blackboard__enemyRadius:r=5000.0 //key value not 100% sure.
  obstacle_avoider__avoidsDamageZones:b=no
  agent_dangers__maxDangerDist:r=3000.0
  agent_dangers__frustumAngle:r=40.0
  agent_dangers__projectileDist:r=4.0
  agent_dangers__decrease:r=5.0
  agent_dangers__timeFromDetection:r=3.0
  agent_dangers__hmapTraceOffset:p3=0.0, -0.1, 0.0
  agent_dangers__nextDangersCheckTime:r=0.0
  agent_dangers__nextDangersTraceTime:r=0.0
  agent_dangers__dangerIncrease:r=5.0
  agent_dangers__dangerOutIncrease:r=0.0
  agent_dangers__maxDangerDistMult:r=0.3
  agent_dangers__standShootPos:p3=0.0, 0.0, 0.0
  agent_dangers__standShootDir:p3=0.0, 0.0, 0.0
  agent_dangers__rayMatId:i=-1
  agent_dangers__rayMat:t="aimRay"

  "walker_agent__targetEid:eid"{
  }

  "beh_tree__debugState:t"{
    _tags:t="dev"
    value:t=""
  }

  "beh_tree:BehaviourTree"{
    _tags:t="server"
  }

  agent_dangers{
    _tags:t="server"
  }
}

EDIT 2: No it did not.

2 Likes

Where do i put this quote in entities?

dp_42_beltfed {
_override:b=yes
gun_spread__maxDeltaAngle:r=0.44
gun_deviation__movementDevInc:p2=12.24,33.6
}

dp_42_beltfed_gun {
_override:b=yes
gun__reloadTime:r=5.2
gun__altReloadTime:r=4.0
gun__magnification:r=1.0
gun__recoilAmount:r=0.0115
gun__kineticDamageMult:r=2
gun_deviation__maxDeviation:r=0.01
gun__visualRecoilMult:r=4.0
}

Example for new gun:

tokyo_arsenal_model_1927_zombie_gun{
  _use:t="tokyo_arsenal_model_1927_gun"
  _use:t="gun_with_initial_ammo"
  _use:t="paid_loot_ressuply"
  item__template:t="tokyo_arsenal_model_1927_zombie_gun_item"
  item__weapTemplate:t="tokyo_arsenal_model_1927_zombie_gun"
  paid_loot__ressuplyCost:i=180
}
tokyo_arsenal_model_1927_zombie_gun_item{
  _use:t="item_gun"
  _use:t="tokyo_arsenal_model_1927_zombie_gun"
  collres__res:t="tokyo_arsenal_model_1927_collision"

  _group{
    _tags:t="server"

    "gun__initialAmmoHoldersCount:list<i>"{
      item:i=4
    }
  }
}
2 Likes

dp_42_beltfed_zombie_gun{
_use:t=“dp_42_beltfed_gun”
_use:t=“gun_with_initial_ammo”
_use:t=“paid_loot_ressuply”
item__template:t=“dp_42_beltfed_zombie_gun_item”
item__weapTemplate:t=“tokyo_arsenal_model_1927_zombie_gun”
paid_loot__ressuplyCost:i=400
}

dp_42_beltfed_gun_zombie_gun_item{
_use:t=“item_gun”
_use:t=“dp_42_beltfed_gun_zombie_gun”
collres__res:t=“dp_42_beltfed_gun_collision”

_group{
_tags:t=“server”

"gun__initialAmmoHoldersCount:list<i>"{
  item:i=4
}

}
}

I did it quite like this… basically replaced all the names of your code correctly with the dp_42_beltfed but somehow it still doesnt work properly…

because collres was different:

Here is the full code:

dp_42_beltfed_zombie_gun{
  _use:t="dp_42_beltfed_gun"
  _use:t="gun_with_initial_ammo"
  _use:t="paid_loot_ressuply"
  item__template:t="dp_42_beltfed_zombie_gun_item"
  item__weapTemplate:t="dp_42_beltfed_zombie_gun"
  paid_loot__ressuplyCost:i=180
}
dp_42_beltfed_zombie_gun_item{
  _use:t="item_gun"
  _use:t="dp_42_beltfed_zombie_gun"
  collres__res:t="dp_1942_collision"

  _group{
    _tags:t="server"

    "gun__initialAmmoHoldersCount:list<i>"{
      item:i=4
    }
  }
}

Don’t forget to add
kép
to make it buyable. Define resupply cost in entities.blk

2 Likes

It worked! Thank you!

Another question if you dont mind:

With anim__char you can replace the appearance of a gun.

Example: If i take ppsh(stick) and put pps 42 into the ppshs anim__char, it will still be the ppsh with all animations and stats, but with the appearance of an pps 42.

It works if you do it in the editor and copy it, but as soon as you pick it up, it turns into the ppsh again, so i guess i have to write something in entities.blk again… but how does the anim__char code work there? What do i have to do?

I did this before on my Ural map:

entity{
  _template:t="mkb_42_h_gun_item+item_in_world"
  transform:m=[[0.765899, 0.00752191, 0.642919] [-0.622519, 0.258819, 0.738569] [-0.160844, -0.965897, 0.202912] [325.305, 139.37, 824.279]]
  item__name:t="Sturmgewehr 43(F)"

  "customProps:object"{
    "initialComponents:object"{
      gun__shotFreq:r=10.833
      item__name:t="Sturmgewehr 43(F)"
      gun__altReloadTime:r=1.6
      gun__reloadTime:r=2.4
      animchar__res:t="vstg_1_5_char"
      item__userstats__pickupName:t="Sturmgewehr 43(F)"
    }
  }
}

Basically an mkb42 with vstg skin

This worked before fine

3 Likes

I took the exact same code in the entities.blk, but the mkb_42_h is still the same… somehow it doesnt work…

You can’t change animations, because they’re part of animchar that you currently time can’t edit.

1 Like

To describe easier:

I just want a ppsh (stick) with the look of an pps 42. Is that not possible?

Stats for pps 42, but model from ppsh (box)? It’s possible.

It’s code for scene. Should work and it will change weapon model after pickup. Also maybe better to edit animchar__res in entity code. I mean something like it:

entity{
  _template:t="mkb_42_h_gun_item+item_in_world"
  transform:m=[[0.765899, 0.00752191, 0.642919] [-0.622519, 0.258819, 0.738569] [-0.160844, -0.965897, 0.202912] [325.305, 139.37, 824.279]]
  item__name:t="Sturmgewehr 43(F)"
  animchar__res:t="vstg_1_5_char"

  "customProps:object"{
    "initialComponents:object"{
      ...code...
  }
}

For you it probably will be:

entity{
  _template:t="ppsh_41_box_gun_item+item_in_world"
  transform:m=[[0.765899, 0.00752191, 0.642919] [-0.622519, 0.258819, 0.738569] [-0.160844, -0.965897, 0.202912] [325.305, 139.37, 824.279]]
  item__name:t="items/pps_42"
  animchar__res:t="pps_42_char"

  "customProps:object"{
    "initialComponents:object"{
      gun__locName:t="PPS_42"
      item__name:t="items/pps_42"
      animchar__res:t="pps_42_char"
      item__userstats__pickupName:t="items/pps_42"
    }
  }
}

But maybe better to do all this code in entities.blk.

Here code:

ppsh_41_box{
  _override:b=yes

  gun__locName:t="PPS_42"
  item__name:t="items/pps_42"
  animchar__res:t="pps_42_char"
}

Or another way: add new entity.

pps_42_changed{
  _use:t="ppsh_41_box"
  
  gun__locName:t="PPS_42"
  item__name:t="items/pps_42"
  animchar__res:t="pps_42_char"
}

Should work.

3 Likes

It worked… thank you. I am not the best at coding, designing maps is more of my type :slight_smile: Thanks!

1 Like

May i ask one last think (i hope i am not annoying yet)

With an update, some guns got a newer appearance,
May i ask for the code to replace the animchar__res to get back the old looks of these guns:

  • ppsh
  • mosin m38
  • ppd 3438
  • mg42
  • kar98k

These old ones as an example
Ppsh_old_new_4037ca5a1b5e023911d767af18eb327b-1
Kar_old_new_88cb5d86d1dbf5fa1a2e5cc98362196b
MG_old_new_87a9e70bd9ad47c69ad028dd3fccb2a4

1 Like

Old animchar is ppsh_41_char.

It’s mg_42_handheld_char.

It’s mauser_98k_char.


About others… I don’t know.

2 Likes