Questions about bomb gamemode (destruction)

i ve got 2 questions regarding bombsites
how to create a working bombsite?
can i make bombsites be reusable after grup reactivation? (i mean if bomb site was activated then destroyed then actived again)

For that you need to use objective entity with bomb_site in name (for example bomb_site_zone_chained_box). It’s like invasion capture point. Just need edit a bit more properties:

  • capzone__mustBeCapturedByTeam & capzone__plantingTeam set team that will plant bomb.

  • capzone__bombTemplate set object that team will try to destroy. It should have bomb_site in name. After that any rendinst or maybe other object. Example how it should looks like: bomb_site+bomb_site_radar_hardware_animchar_05_without_antenna.

  • capzone__timeToPlant & capzone__timeToDefuse and capzone__timeToExplosion about time.

  • If you added few capture points on sector then need to turn on capzone__checkAllZonesInGroup. Else one captured point will means captured sector.

Probably no, because object disappears. You try to create something like confrontation, but with bomb sites?

im trying to create search and destroy mod a round based gamemode like in csgo
thats why i would like to to reuse bombsites but if i can’t i will probably copy map 4 times with 5 bombsides on each site then i will never run out of objectictives in best of 9

gorup 1 basicly on spawns there will be bidirectional capzones on capture they will
group 2 move grayzone
group 2 acvtivate boombsites
group 2 activate bidirectional zone with no cap by domination
and winning (activating spawns again) will be done by destroying one of bombsites or eliminateing oponents

the only problem is tradeing since if players kill each other at the same time non on the teams will be able to capture bidirectional zone to activate spawns
can any zone auto cap itself so i can force group activation after some time passes? or is there other way to activate groups when all players are dead
i guess the best option is to add aditional bombsite on spawn which will blow up after 3min ensuring group activation but maybe there is a more convinient option

Sadly, but you probably can’t reuse it.

Probably it will be the best solution. You can also kill all players the map immediately using the battle area (you can edit gray zone damage and time). But I dunno. You still can try use same map/area. For that you can try to put many bomb_site_zone on same position.

You can try to use this:

entity{
  _template:t="group_switch_timer"
  group_switch_timer__time:r=7200
  group_switch_timer__deactivateGroup:t="aircraft_spawn_on_carrier"
  group_switch_timer__activateGroup:t="aircraft_spawn_in_air"
}

I mean add group_switch_timer postfix to your bomb site. But add it in scene.blk. Or in entities.blk. In editor it automatically self-destroy because of group_switch_timer__time. It’s by default = 0.

1 Like

i created in scene.blk this

entity{
  _template:t="zone_bidirectional_two_chains_box+group_switch_timer"
  transform:m=[[1, 0, 0] [0, 1, 0] [0, 0, 1] [708.722, 10.4268, -548.159]]
    groupName:t="g1"
  group_switch_timer__time:r=20
  group_switch_timer__deactivateGroup:t="g1"
  group_switch_timer__activateGroup:t="g2"
}

but the problem is that it counts time from first player connection and later it destroys entity
how can we edit das file to count from group activation and don"t destroy entity and then make game use our new file?

group_switch_timer.das

require ecs
require strings
require game.es.capzones_common

[es(tag=server, no_order)]
def group_switch_timer(info : UpdateStageInfoAct;
                       eid : EntityId;
                       group_switch_timer__time : float;
                       group_switch_timer__deactivateGroup : string;
                       group_switch_timer__activateGroup : string)
  query() <| $ [es] (firstPlayerConnectionTime : float)
    if firstPlayerConnectionTime >= 0. && info.curTime > firstPlayerConnectionTime + group_switch_timer__time
      if !empty(group_switch_timer__deactivateGroup)
        deactivate_group(group_switch_timer__deactivateGroup)
      if !empty(group_switch_timer__activateGroup)
        activate_group(group_switch_timer__activateGroup)
      destroyEntity(eid)

image
this must be usefull for this

Well… I forgot what I want to suggest before. Probably better just use

Or any another capture point.

Because you can use it as timer. Cap time and e.t.c. and no need to add group_switch_timer as postfix template. And it can be activated after capturing point/destroying bomb site. Not when it was created on the map.

How do I see your gamemode?

  1. (group z1) Each team has 20-60 sec. So you can probably hide one team 3 soldier who will capture point.

  2. (group z1 → z1t1) If team 1 successfully destroys bomb site then next sector will contain capture point with little cap time and can be captured only by team 1 (it just gives score; team 1 should have less score than scoreCap).

  3. (group z1 → z1b1 or group z1t1 → group z1b1) If team 1 captured this point or team 2 wins round then each playable team dies because of instakill in battle area (team 2 doesn’t lose score after respawn).

  4. (group z1b1 → z2). Same in 1.

Team 3 should have unique battle area or don’t have it. Sectors zxb1 move battle area to another area, zx and zxt1 use default battle area position. Using entities.blk you can edit respawn time.

I don’t know. Probably currently time we can’t add/edit scripts.

cant really make sense out of this

but i also encountered another problem atacking team looses if they dont plant within 100secounds after the round start i have no idea how to achive that :confused:

i might scrap this project since i really dont have any elegant way to deal with scoring

Maybe you accidently activated time in bomb site objective properties (capzone__timer)? Or set so low score for team (team__score)?

Ment that if atackers dont plant within 100s it"s a round win for defenders.
Atackers winning condition is bomb explotion and defenders is denying plant for 100s or defusal. Ofcourse there is also team elimination. But if bomb was planted defenders still need to defuse after they kill all oponents to win. I must figure out which winning conditions are posible to implement and which i can exclude to still make it fair for both atackers and defenders. It would be amazing if i could introduce a script for that but as you said it"s imposible right now. I think i should move on to other projects due to all complications. I don"t wanna spoil too much but i figured how to make interactive spawns which will spawn you close to temmates but away from enemies. It’s what will allow me to create gamemodes like team deatchmach, and domination. If i mod domination capzone to have group i will be able to create king of the hill gamemode ass well. (Now i know that group switch timer destroys entity aftter time so i can make map with one objective that switches place every 3 minutes)

so is it possble to edit time that players need to wait before spawning?

Yeah. Using entities.blk you can edit respawner__respTime property in enlisted_player entity. If you need make force respawn then edit respawner__respawnWhenInactiveTimeout. If you want edit penality from suicide then try change squads__respawnPenalityTimeThreshold.