I have something to ask, how do we add the tnt block to the map as wallbuy?
by the way here are a few zombie codes I made for those who want to use them:
Spoiler
zombie_blue_bastard{
_use:t="nzombie_base"
_use:t="nzombie_ai_without_bullet_reaction"
_use:t="zombie_rush_zombie_sound"
animchar__res:t="ger_zombie_solder_giant"
collres__res:t="ger_zombie_solder_giant_collision"
entity__recreateToOnDeath:t="zombie_rush_zombie_dead"
team:i=3
rush_zombie__switchToPriorityTargetChance:r=0.1
rush_zombie__attackChance:r=0.025
beh_tree__node:t="nzombie_attacker"
beh_tree__refs__wander:t="sub.nAttackPriorityTarget"
effect__effectOnCreation:t="invisibility_in_smoke"
paid_loot__pointsForKill:i=100
nPhys__animcharScale:r=1.25
paid_loot__pointsPerDamage:r=0.1
hitpoints__hp:r=250.0
hitpoints__maxHp:r=250.0
hitpoints__scaleHp:r=250.0
hitpoints__hpThreshold:r=15.0
hitpoints__hpRecoverySpd:r=0.0
hitpoints__stoppingPowerThreshold:r=5.0
navmesh_phys__maxWalkSpeed:r=4.5
beh_tree__blackboard__enemyRadius:r=3000.0
killLogName:t="Blue bastard"
"nphys__no_obstacle_navigation:tag"{
}
"random_animchar_vars__varNames:list<t>"{
name:t="spine1_rot_x"
name:t="spine_rot_x"
name:t="spine1_rot_z"
name:t="spine_rot_z"
name:t="run_anim_selecror"
}
"random_animchar_vars__varLimits:list<p2>"{
range:p2=-5.0, 5.0
range:p2=-5.0, 5.0
range:p2=-5.0, 5.0
range:p2=-5.0, 5.0
range:p2=1.6, 2.4
}
"actions__actions:array"{
"action:object"{
name:t="stand_melee"
state:t="attack"
actionTime:r=1.0
applyAt:r=0.3
props:t="content/enlisted/gamedata/actions_enlisted/zombie_big_claw.blk"
irq:t="claw_attack"
varName:t="attack_progress"
}
}
"loc_snapshots__scaledTransform:tag"{
}
"deathDrop:array"{
}
"walker_agent__priorityTarget:eid"{
}
_group{
projectile_impulse__cinematicArtistryMult:r=0.1
projectile_impulse__cinematicArtistryMultDead:r=0.0
projectile_impulse__maxVelocity:r=2.0
projectile_impulse__maxOmega:r=3.0
_tags:t="gameClient"
}
_group{
_tags:t="sound"
human_steps_sound__animSpeedMul:r=8.0
human_steps_sound__enemyVolume:r=3.0
human_steps_sound_generator__enableAlways:b=yes
}
_group{
_tags:t="sound"
"human_voice_sound__path:shared:object"{
path:t="events/z/enemy/walker/z_giant/voice_fx"
}
"human_voice_sound__descs:shared:object"{
"death:object"{
name:t="death"
}
"seeDanger:object"{
name:t="seedanger"
}
}
"human_voice_sound__irqs:shared:object"{
"zombie_attack_sound:object"{
name:t="melee/hands"
}
}
"human_voice_sound__oneshots:shared:object"{
"hitCry:object"{
name:t="hit"
}
}
}
_group{
_tags:t="sound"
"human_steps_sound__runVoiceFx:shared:object"{
enemy:t="events/z/enemy/walker/z_giant/voice_fx/run_to_player"
}
}
_group{
_tags:t="sound"
"human_idle_sound__paths:shared:object"{
"idleState:object"{
enemy:t="events/z/enemy/walker/z_giant/voice_fx/idle"
}
}
}
}
Spoiler
zombie_Cowboy{
_use:t="base_zombie_armored_soldier"
killLogName:t="Uber Cowboy"
"human_weap__weapTemplates:object"{
primary:t="winchester_1895_zombie_gun"
secondary:t=""
tertiary:t=""
melee:t=""
grenade:t="grenade_thrower"
}
"human_weap__weapInfo:array"{
"human_weap__weapInfo:object"{
reserveAmmoTemplate:t="mosin_magazine"
numReserveAmmo:i=100
}
"human_weap__weapInfo:object"{}
"human_weap__weapInfo:object"{}
"human_weap__weapInfo:object"{}
"human_weap__weapInfo:object"{
reserveAmmoTemplate:t="explosion_pack_item"
numReserveAmmo:i=3
"additionalReserveAmmoTemplates:array"{
item:t="medkit_item"
}
"additionalNumReserveAmmos:array"{
item:i=1
}
}
}
_group{
_tags:t="server"
"human_weap__template_deps_list:list<t>"{
item:t="winchester_1895_zombie_gun"
item:t="mosin_magazine"
item:t="explosion_pack_item"
item:t="medkit_item"
}
}
"walker_agent__distanceToShootError:shared:array"{
"error:object"{
distance:r=0.0
min:p2=0.0, 0.0
max:p2=0.5, 1.0
maxEnd:p2=0.0, 0.0
}
"error:object"{
distance:r=25.0
min:p2=0.5, 0.8
max:p2=0.5, 1.2
maxEnd:p2=0.5, 0.7
}
"error:object"{
distance:r=50.0
min:p2=0.7, 1.3
max:p2=2.0, 2.0
maxEnd:p2=1.5, 1.8
}
"error:object"{
distance:r=100.0
min:p2=0.6, 1.4
max:p2=2.0, 2.0
maxEnd:p2=2.0, 2.0
}
}
}
winchester_1895_zombie_gun{
_use:t="winchester_1895_gun"
_use:t="gun_with_initial_ammo"
_use:t="paid_loot_ressuply"
item__template:t="winchester_1895_gun_item"
item__weapTemplate:t="winchester_1895_zombie_gun"
paid_loot__ressuplyCost:i=40
gun__kineticDamageMult:r=1.05
}
winchester_1895_zombie_gun{
_use:t="item_gun"
_use:t="winchester_1895_zombie_gun"
collres__res:t="winchester_1895_collision"
_group{
_tags:t="server"
"gun__initialAmmoHoldersCount:list<i>"{
item:i=5
}
}
}
Spoiler
zombie_armored_axe{
_use:t="base_zombie_armored_soldier"
killLogName:t="Uber Axeman"
hitpoints__hp:r=65.0
hitpoints__maxHp:r=65.0
navmesh_phys__maxWalkSpeed:r=10.5
"human_weap__weapTemplates:object"{
melee:t="ger_axe_weapon"
}
"human_weap__weapInfo:array"{
"human_weap__weapInfo:object"{
}
"human_weap__weapInfo:object"{
}
"human_weap__weapInfo:object"{
}
"human_weap__weapInfo:object"{
}
"human_weap__weapInfo:object"{
}
}
_group{
_tags:t="server"
"human_weap__template_deps_list:list<t>"{
item:t="ger_axe_weapon"
}
}
}
I will share the source codes of this map for modders soon, it just needs to be improved a little more.
I think it is provided by devemddar in my development post somewhere. It is provided along with the anti tank and anti personnel mines.
For tnt you create medkit box. Everything is same, but in useful_box__giveItem you use ger_tnt_block (or any other tnt_block). Also it would be good to set satchel_charge_char in animchar__res and items/tnt_block in useful_box__hintFull property. You also can change image. For that you can set tnt_charge_icon in hud_icon__image.
And then nearby with fake medkit box you need to put tnt_block_exploder with +item_in_world+paid_loot_item with postfix templates. Better to set 0 in paid_loot__cost.
For mines… Probably better to make seperate entities. Here is code:
base_antipersonnel_mine_item{
_use:t="tnt_block_exploder"
_use:t="item_gun"
animchar__res:t="satchel_charge_char"
item__template:t="ger_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="ger_antipersonnel_mine+disable_item_drop"
item__name:t="items/antipersonnel_mine"
gun__locName:t="antipersonnel_mine"
}
ger_antipersonnel_mine_item{
_use:t="base_antipersonnel_mine_item"
animchar__res:t="sprengmine_35_char"
item__template:t="ger_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="ger_antipersonnel_mine+disable_item_drop"
}
ussr_antipersonnel_mine_item{
_use:t="base_antipersonnel_mine_item"
animchar__res:t="pomz_2_mine_char"
item__template:t="ussr_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="ussr_antipersonnel_mine+disable_item_drop"
}
usa_antipersonnel_mine_item{
_use:t="base_antipersonnel_mine_item"
animchar__res:t="m2a3_mine_char"
item__template:t="usa_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="usa_antipersonnel_mine+disable_item_drop"
}
uk_antipersonnel_mine_item{
_use:t="base_antipersonnel_mine_item"
animchar__res:t="uk_ap_mine_mk1_char"
item__template:t="uk_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="uk_antipersonnel_mine+disable_item_drop"
}
it_antipersonnel_mine_item{
_use:t="base_antipersonnel_mine_item"
animchar__res:t="ita_vaudagna_b4_mine_char"
item__template:t="it_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="it_antipersonnel_mine+disable_item_drop"
}
jp_antipersonnel_mine_item{
_use:t="base_antipersonnel_mine_item"
animchar__res:t="type_3_mine_char"
item__template:t="jp_antipersonnel_mine+disable_item_drop"
item__weapTemplate:t="jp_antipersonnel_mine+disable_item_drop"
}
base_antitank_mine_item{
_use:t="tnt_block_exploder"
_use:t="item_gun"
animchar__res:t="antitank_mine_char"
item__template:t="ger_antitank_mine+disable_item_drop"
item__weapTemplate:t="ger_antitank_mine+disable_item_drop"
item__name:t="items/antitank_mine"
gun__locName:t="antitank_mine"
}
ger_antitank_mine_item{
_use:t="base_antitank_mine_item"
animchar__res:t="tellermine_35_char"
item__template:t="ger_antitank_mine+disable_item_drop"
item__weapTemplate:t="ger_antitank_mine+disable_item_drop"
}
ussr_antitank_mine_item{
_use:t="base_antitank_mine_item"
animchar__res:t="tm_41_char"
item__template:t="ussr_antitank_mine+disable_item_drop"
item__weapTemplate:t="ussr_antitank_mine+disable_item_drop"
}
usa_antitank_mine_item{
_use:t="base_antitank_mine_item"
animchar__res:t="m1_antitank_mine_char"
item__template:t="usa_antitank_mine+disable_item_drop"
item__weapTemplate:t="usa_antitank_mine+disable_item_drop"
}
uk_antitank_mine_item{
_use:t="base_antitank_mine_item"
animchar__res:t="uk_at_mine_gs_mark_v_char"
item__template:t="uk_antitank_mine+disable_item_drop"
item__weapTemplate:t="uk_antitank_mine+disable_item_drop"
}
it_antitank_mine_item{
_use:t="base_antitank_mine_item"
animchar__res:t="ita_pignone_type_II_at_mine_char"
item__template:t="it_antitank_mine+disable_item_drop"
item__weapTemplate:t="it_antitank_mine+disable_item_drop"
}
jp_antitank_mine_item{
_use:t="base_antitank_mine_item"
animchar__res:t="type_93_mine_char"
item__template:t="jp_antitank_mine+disable_item_drop"
item__weapTemplate:t="jp_antitank_mine+disable_item_drop"
}
Also, feel free to copy the engineer hammer codes from my entities.blk on my google drive. The code should be test_building_tool. Also the entities.blk is well labeled organized that you can find credits at places(cannot label scene.blk since it wont load comments and then its deleted after saving)
1 Like
I made the TNT box and it works without any problems, But I cannot use the Detonator that I will use to detonate the TNT.
TNT blocks do not explode when I shoot at them, how can I fix this? They explode in the normal game
The tnt block and detenator code I made:
Spoiler
entity{
_template:t="tutorial_placed_medic_box_item+placeable_item_in_world+base_ri_building+paid_medkit_box_use+undestroyable_ri_extra"
transform:m=[[-0.208983, 0, 0.977919] [0, 1, 0] [-0.977919, 0, -0.208983] [42.7024, 11.0459, 787.42]]
ri_extra__name:t="dummy_wooden_box_a"
team:i=1
medic_box__isOpen:b=yes
useful_box__maxUseCount:i=99999
builder_info__team:i=1
placeable_item__ownerTeam:i=1
paid_box__ressuplyCost:i=35
useful_box__uiPrice:i=35
useful_box__giveItem:t="ger_tnt_block"
hud_icon__image:t="tnt_charge_icon"
animchar__res:t="satchel_charge_char"
useful_box__hintFull:t="items/tnt_block"
}
entity{
_template:t="tnt_block_exploder+item_in_world+ui_visible+disable_update+paid_loot_item"
transform:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [42.5264, 11.8884, 787.481]]
paid_loot__cost:i=0
}
1 Like
I haven’t touch the tnt part cuz its not needed in my map so… @Devenddar pls help
1 Like
You will need to pickup detonator after drop tnt.
IIRC they don’t explode in game. Well… It’s possible to fix, but I need sometime. Theoretically you will need to edit grid to interactable, but i’m not sure that it will be enough.
1 Like
I tried but unfortunately it didn’t work. Do you think there is a problem with the code?
In the past, TNT blocks exploded when shot at, and I even destroyed some tanks this way.
Because when the soldier who placed the TNT block died, there was no other option to detonate it.
By the way, I don’t know why but North America server is not working, Eastern Europe server is working.
No it never worked. From the release of tnt till now, never worked (except when people blow up the tank with a tank shell and then the tank explosion will blow up the tnt charge and then it blows you up, and of course, you die)
The new update of this mod has been released, it is the biggest update I have made for this mod.
Changes I made with the new update:
NavMesh has been significantly changed
I remade the ammo boxes instead of using premade ones because it broke NavMesh
I added new weapons and placed medkits on the map
I added new zombie types
I added little easter eggs
I couldn’t add the tnt block because I couldn’t properly add the device that would detone it. I need help on this issue, I tried hard but it doesn’t work.
A few screenshots of the changes I made:
Spoiler
Can you share the code with us (here or a group message you can open, since i also would like to know )
@Devenddar can you help?
1 Like
Nope. Because I still haven’t found solution how to not pickup tnt activator exacly after using tnt block (pickup it anytime and be able use it anytime).
1 Like
huh, how about adding the disable drop item tag (that you added to my anti-personnel mines?)
It probably will lock slot.
1 Like
full code :
Spoiler
entity{
_template:t="tutorial_placed_medic_box_item+placeable_item_in_world+base_ri_building+paid_medkit_box_use+undestroyable_ri_extra"
transform:m=[[-0.208983, 0, 0.977919] [0, 1, 0] [-0.977919, 0, -0.208983] [42.7024, 11.0459, 787.42]]
ri_extra__name:t="dummy_wooden_box_a"
team:i=1
medic_box__isOpen:b=yes
useful_box__maxUseCount:i=99999
builder_info__team:i=1
placeable_item__ownerTeam:i=1
paid_box__ressuplyCost:i=35
useful_box__uiPrice:i=35
useful_box__giveItem:t="ger_tnt_block"
hud_icon__image:t="tnt_charge_icon"
animchar__res:t="satchel_charge_char"
useful_box__hintFull:t="items/tnt_block"
}
entity{
_template:t="tnt_block_exploder+item_in_world+ui_visible+disable_update+paid_loot_item"
transform:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [42.5264, 11.8884, 787.481]]
paid_loot__cost:i=0
}
I can buy the tnt block, that’s okay, but I can’t explode it, you can try it on your own map if you want.
How can we make the TNT block explode after shooting at it, just like anti-personnel mines?
2 Likes
Let me think while i am outside.
I have to stop modding for 1 month since its time for yearly exam in my school
But i will share my ideas for people to either use or accomplish for me
Really, i have got an idea about a PVE invasion that uses zombie paratroopers.
Previously, its not possible because you cant disable zombie_spawn_zone with the active:b=no thingy
However, @Devenddar provided me with zombie paratrooper code that uses team 4 spawns (simple_spawner__use_team_spawn:i=4)
Paired with the paratroopers additional height tag set to 0, you actually make zombie spawn act like human spawn
@KRIEGSVERBRECHER i would love to test this theory out but time doesn’t like me doing it. Pls help verify if it works if you have time
1 Like
I took the TNT block and had it exploded without any problems, but now I cannot resupply the TNT block.
This is a very troublesome thing. I couldn’t do it properly. If anyone has made a version that works well, can you please share the code because the code I made doesn’t seem to be working well?
I finally did it
it works properly now The solution is actually very simple. I will share the code soon
Spoiler
The yellow one is the activator, the red one is TNT
The basis of the problem was that the activator did not disappear after doing its job, I solved this
2 Likes
Great, i will add that to my L4D2 kind of map 1 mlnth later if my theory are working
1 Like
code:
Spoiler
entity{
_template:t="tutorial_placed_medic_box_item+placeable_item_in_world+base_ri_building+paid_medkit_box_use+undestroyable_ri_extra"
transform:m=[[-0.310965, 0, 0.950421] [0, 1, 0] [-0.950421, 0, -0.310965] [52.3266, 4.93185, 782.337]]
ri_extra__name:t="dummy_wooden_box_a"
team:i=1
medic_box__isOpen:b=yes
useful_box__maxUseCount:i=99999
builder_info__team:i=1
placeable_item__ownerTeam:i=1
paid_box__ressuplyCost:i=35
useful_box__uiPrice:i=35
useful_box__giveItem:t="ger_tnt_block"
hud_icon__image:t="tnt_charge_icon"
animchar__res:t="satchel_charge_char"
useful_box__hintFull:t="items/tnt_block"
}
entity{
_template:t="tutorial_placed_medic_box_item+placeable_item_in_world+base_ri_building+paid_medkit_box_use+undestroyable_ri_extra"
transform:m=[[-0.310965, 0, 0.950421] [0, 1, 0] [-0.950421, 0, -0.310965] [53.1602, 5.03099, 779.697]]
ri_extra__name:t="dummy_wooden_box_a"
team:i=1
medic_box__isOpen:b=yes
useful_box__maxUseCount:i=99999
builder_info__team:i=1
placeable_item__ownerTeam:i=1
paid_box__ressuplyCost:i=10
useful_box__uiPrice:i=35
useful_box__giveItem:t="tnt_block_exploder"
hud_icon__image:t="tnt_charge_icon"
animchar__res:t="sov_pm_2_char"
useful_box__hintFull:t="items/tnt_block_exploder"
}
The last thing I want to ask is how can I add a fully automatic mode to a semi-automatic weapon? I can have both, I only need to add a fully automatic mode.
I have to do this without changing the animchar
1 Like
Config about it in gun__firingModes property and gun__firingModeNames contains names for each modes. Probably code for you weapon entity will looks like:
"gun__firingModes:array"{
"mode:object"{
modeType:t="automatic"
}
"mode:object"{
modeType:t="burst"
burstSize:i=1
}
}
"gun__firingModeNames:array"{
mode:t="full_auto"
mode:t="semi_auto"
}
1 Like
I did it like this but it didn’t work
I will try the code you gave now.
Spoiler
entity{
_template:t="blaster_germany_gun_item+item_in_world+visibility_traceable_item"
transform:m=[[0.258819, -0.965925, 0] [0.965926, 0.258819, 0] [-0, 0, 1] [52.8383, 5.10904, 780.411]]
useful_box__hintFull:t="Valken-38E"
item__name:t="Valken-38E"
gun__locName:t="Valken-38E"
animchar__res:t="fg_42_with_grenade_launcher_char"
gun__firingModeName:t="semi_auto_4_shots"
gun__overheatPerShot:r=0.01
gun__overheatReduce:r=0.012
gun__overheatReduceOnOverheat:r=0.15
"customProps:object"{
"initialComponents:object"{
gun__overheatReduceOnOverheat:r=0.15
gun__shotFreq:r=9.6
item__name:t="Valken-38E"
gun__kineticDamageMult:r=10.8
gun__altReloadTime:r=3.25
gun__reloadTime:r=3.8
animchar__res:t="fg_42_with_grenade_launcher_char"
item__userstats__pickupName:t="Valken-38E"
gun__overheatReduce:r=0.012
gun__overheatPerShot:r=0.01
}
}
"gun__firingModes:array"{
"gun__firingModes:object"{
burstSize:i=4
modeType:t="burst"
}
"gun__firingModes:object"{
modeType:t="automatic"
}
}
"gun__firingModeNames:array"{
gun__firingModeNames:t="semi_auto_4_shots"
gun__firingModeNames:t="automatic"
}
}
You add it in scene , but not in entities . IIRC it works only in entities else will crash. Also you need all changes inside customProps (except gun__locName and item__name ).
Probably it will be muuuch better if you create seperate entity instead do changes in scene, because these changes make scene a bit more heavier.
1 Like