MCPcopy Create free account
hub / github.com/LaihoE/Python-demoparser / parse_players

Method parse_players

src/lib.rs:326–388  ·  view source on GitHub ↗
(&self, py: Python<'_>)

Source from the content-addressed store, hash-verified

324 }
325
326 pub fn parse_players(&self, py: Python<'_>) -> PyResult<Py<PyAny>> {
327 let parser = Demo::new(
328 self.path.clone(),
329 true,
330 vec![],
331 vec![],
332 vec!["m_iTeamNum".to_string()],
333 "".to_string(),
334 true,
335 false,
336 true,
337 9999999,
338 vec![],
339 );
340 match parser {
341 Err(e) => Err(PyFileNotFoundError::new_err(format!(
342 "Couldnt read demo file. Error: {}",
343 e
344 ))),
345 Ok(mut parser) => {
346 let _: Header = parser.parse_demo_header();
347 let _ = parser.start_parsing(&vec![]);
348 let players = parser.players;
349 let mut py_players = vec![];
350 let ent_manager = &parser.entities[parser.manager_id.unwrap() as usize].1;
351 for (_, player) in players {
352 let team = get_player_team(&parser.entities[player.entity_id as usize].1);
353 let mut hm = player.to_hashmap(py);
354 let team = match team {
355 2 => "T",
356 3 => "CT",
357 _ => "Missing",
358 };
359
360 let rank_id =
361 get_manager_i32_prop(ent_manager, &player, "m_iCompetitiveRanking");
362 let rank_name = rank_id_to_name(rank_id);
363
364 let crosshair_code =
365 get_manager_str_prop(ent_manager, &player, "m_szCrosshairCodes");
366
367 let comp_wins =
368 get_manager_i32_prop(ent_manager, &player, "m_iCompetitiveWins");
369
370 hm.insert("starting_side".to_string(), team.to_string().to_object(py));
371 hm.insert(
372 "crosshair_code".to_string(),
373 crosshair_code.to_string().to_object(py),
374 );
375 hm.insert("rank_name".to_string(), rank_name.to_string().to_object(py));
376 hm.insert("rank_id".to_string(), rank_id.to_object(py));
377 hm.insert("comp_wins".to_string(), comp_wins.to_object(py));
378
379 let dict = pyo3::Python::with_gil(|py| hm.to_object(py));
380 if player.xuid > 76500000000000000 && player.xuid < 76600000000000000 {
381 py_players.push(dict);
382 }
383 }

Callers 5

gen_playersFunction · 0.95
parseFunction · 0.95
parseFunction · 0.95
team_flashbang.pyFile · 0.80

Calls 7

get_player_teamFunction · 0.85
get_manager_i32_propFunction · 0.85
rank_id_to_nameFunction · 0.85
get_manager_str_propFunction · 0.85
parse_demo_headerMethod · 0.80
start_parsingMethod · 0.80
to_hashmapMethod · 0.45

Tested by 1

gen_playersFunction · 0.76