ну так и попробуй OnParticleCreate похукать. они же создаются в тумане(пруф ниже).(синие зеленые коробки это dota_particle_fow_debug 1. синий = не видно, в тумане. зеленый = видно, не в тумане). вместе с каким-нибудь OnParticleUpdate. коорды партиклей лежат в контрол поинте 0
// Control Points 0 (vecOrigin) and 1 (vecStart) are defined when dispatching from the server. Be aware of this when choosing which CPs to use in your system.
[Particles] Creating collection: particles/ui_mouseactions/range_finder_generic_aoe.vpcf
[Particles] Child: particles/ui_mouseactions/range_finder_line.vpcf
[Particles] Child: particles/ui_mouseactions/range_finder_d.vpcf
[Particles] Child: particles/ui_mouseactions/range_finder_d_glow.vpcf
[Particles] Child: particles/ui_mouseactions/range_finder_aoe.vpcf
[Particles] Child: particles/ui_mouseactions/range_finder_aoe_glow.vpcf
[Particles] Creating collection: particles/ui_mouseactions/clicked_basemove.vpcf
[Particles] Child: particles/ui_mouseactions/clicked_arrow_trail.vpcf
[Particles] Child: particles/ui_mouseactions/clicked_rings.vpcf
[Particles] Child: particles/ui_mouseactions/clicked_rings_c.vpcf
[Particles] Creating collection: particles/units/heroes/hero_silencer/silencer_curse_cast.vpcf
[Particles] Child: particles/units/heroes/hero_silencer/silencer_curse_cast_energy.vpcf
[Particles] Child: particles/units/heroes/hero_silencer/silencer_curse_cast_flash.vpcf
[Particles] Child: particles/units/heroes/hero_silencer/silencer_curse_cast_flares.vpcf
[Particles] Creating collection: particles/units/heroes/hero_silencer/silencer_curse_aoe.vpcf
[Particles] Child: particles/units/heroes/hero_silencer/silencer_curse_cast_ring_rope.vpcf
[Particles] Child: particles/units/heroes/hero_silencer/silencer_curse_cast_ring_glow.vpcf
[Particles] Child: particles/units/heroes/hero_silencer/silencer_curse_cast_ring_glow_b.vpcf
альтернативно можешь в сторону нетчана копать(ну тип очевидно что все это тебе с сервака прилетает).
DebugString: "client loopback:1[0]: (218 bits/28 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_CREATE"
DebugString: "index: 368"
DebugString: "create_particle {"
DebugString: "particle_name_index: 5189642778699925318"
DebugString: "attach_type: 2"
DebugString: "entity_handle: 2982080"
DebugString: "apply_voice_ban_rules: false"
DebugString: "}"
DebugString: "}"
DebugString: "client loopback:1[0]: (314 bits/40 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_UPDATE_ENT"
DebugString: "index: 368"
DebugString: "update_particle_ent {"
DebugString: "control_point: 0"
DebugString: "entity_handle: 2982080"
DebugString: "attach_type: 5"
DebugString: "attachment: 2"
DebugString: "fallback_position {"
DebugString: "x: 1275.47534"
DebugString: "y: 249.312103"
DebugString: "z: 128"
DebugString: "}"
DebugString: "include_wearables: true"
DebugString: "}"
DebugString: "}"
DebugString: "client loopback:1[0]: (226 bits/29 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_UPDATE"
DebugString: "index: 368"
DebugString: "update_particle {"
DebugString: "control_point: 1"
DebugString: "position {"
DebugString: "x: 0.796548426"
DebugString: "y: 0.6045748"
DebugString: "z: 0"
DebugString: "}"
DebugString: "}"
DebugString: "}"
DebugString: "client loopback:1[0]: (58 bits/8 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_RELEASE"
DebugString: "index: 368"
DebugString: "}"
DebugString: "client loopback:1[0]: (258 bits/33 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_CREATE"
DebugString: "index: 369"
DebugString: "create_particle {"
DebugString: "particle_name_index: 9777761664553108662"
DebugString: "attach_type: 2"
DebugString: "entity_handle: 16777215"
DebugString: "entity_handle_for_modifiers: 2982080"
DebugString: "apply_voice_ban_rules: false"
DebugString: "}"
DebugString: "}"
DebugString: "client loopback:1[0]: (226 bits/29 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_UPDATE"
DebugString: "index: 369"
DebugString: "update_particle {"
DebugString: "control_point: 0"
DebugString: "position {"
DebugString: "x: 1593.74072"
DebugString: "y: 490.873352"
DebugString: "z: 128"
DebugString: "}"
DebugString: "}"
DebugString: "}"
DebugString: "client loopback:1[0]: (226 bits/29 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_UPDATE"
DebugString: "index: 369"
DebugString: "update_particle {"
DebugString: "control_point: 1"
DebugString: "position {"
DebugString: "x: 425"
DebugString: "y: 0"
DebugString: "z: 0"
DebugString: "}"
DebugString: "}"
DebugString: "}"
DebugString: "client loopback:1[0]: (58 bits/8 bytes):"
DebugString: "CUserMsg_ParticleManager [145]"
DebugString: "{"
DebugString: "type: GAME_PARTICLE_MANAGER_EVENT_RELEASE"
DebugString: "index: 369"
DebugString: "}"