diff --git a/src/dma/context/mod.rs b/src/dma/context/mod.rs index 7e9623a..4514925 100755 --- a/src/dma/context/mod.rs +++ b/src/dma/context/mod.rs @@ -7,7 +7,7 @@ use num_traits::FromPrimitive; use crate::{structs::Vec3, enums::TeamID}; -use super::cs2dumper; +use super::{cs2dumper, threaddata::CsData}; pub struct DmaCtx { pub process: IntoProcessInstanceArcBox<'static>, @@ -146,7 +146,12 @@ impl DmaCtx { Ok(is_controller) } - pub fn get_c4_holder(&mut self, pawns: Vec<Address>, entity_list: Address) -> Option<Address> { + pub fn get_c4_holder(&mut self, pawns: Vec<Address>, entity_list: Address, csdata: &CsData) -> Option<Address> { + + if csdata.bomb_dropped || csdata.bomb_planted { + return None; + } + // (pawn, wep_services, wep_count, wep_base) let mut data_vec: Vec<(Address, u64, i32, u64)> = pawns .into_iter() diff --git a/src/dma/mod.rs b/src/dma/mod.rs index 72d8746..c735538 100755 --- a/src/dma/mod.rs +++ b/src/dma/mod.rs @@ -79,7 +79,7 @@ pub async fn run(radar_data: ArcRwlockRadarData, connector: Connector, pcileech_ pawns.push(data.local_pawn.into()); - data.bomb_holder = ctx.get_c4_holder(pawns, data.entity_list.into()); + data.bomb_holder = ctx.get_c4_holder(pawns, data.entity_list.into(), &data); data.recheck_bomb_holder = false; }