Не плохо.
Есть ОСП скрипт, я его использовал у себя, только пришлось вносить изменения в эффекты и анимацию.
["grenade", "grenade", [("grenade",0),("grenade", ixmesh_carry),("nothing",imodbit_rusty)], itp_type_thrown |itp_merchandise|itp_remove_item_on_use|itp_crush_through|itp_primary|itp_cant_use_on_horseback ,itcf_throw_stone|itcf_carry_dagger_front_right, 50 , weight(5)|difficulty(0)|spd_rtng(45) | shoot_speed(15) | thrust_damage(1 , blunt)|max_ammo(2)|accuracy(56)|weapon_length(3),imodbits_none,
[(ti_on_missile_hit,
[(store_trigger_param_1,":grenadier"),
(particle_system_burst,"psys_grenade_fire",pos1,20),
(particle_system_burst,"psys_grenade_splash1",pos1,60),
(particle_system_burst,"psys_grenade_splash2",pos1,30),
(particle_system_burst,"psys_grenade_smoke1",pos1,40),
(play_sound,"snd_explosion_bang"),
(try_for_agents,":target"),
(agent_get_position,pos2,":target"),
(get_distance_between_positions,":dist",pos1,pos2),
(try_begin),
(lt,":dist",300),
(store_agent_hit_points,":hp",":target",1),
(store_random_in_range,":dmg",100,180),
(val_sub,":hp",":dmg"),
(agent_set_hit_points,":target",":hp",1),
(agent_deliver_damage_to_agent,":grenadier",":target"),
(agent_set_animation, ":target", "anim_explosing_deaht"),
(try_end),
(try_end)
])
]],
("grenade_fire", psf_billboard_3d|psf_global_emit_dir|psf_always_emit|psf_randomize_rotation|psf_randomize_size, "prt_mesh_smoke_1",
500, 1, 6, -0.1, 7, 7, #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
(0, 0.25), (1, 0), #alpha keys
(0.0, 0.6), (1, 0.5), #red keys
(0.0, 0.2),(1, 0.5), #green keys
(0.0, 0.2), (1, 0.5), #blue keys
(0, 2), (1, 1), #scale keys
(0.1, 0.1, 1), #emit box size
(0, 0, 2.2), #emit velocity
5, #emit dir randomness
100,
0.2,
),
("grenade_splash1", psf_billboard_3d|psf_randomize_size | psf_randomize_rotation, "prt_mesh_smoke_1",
1700, 3, 14, 8, 0, 0, #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
(0.0, 2.0), (1, 0.75), #alpha keys
(0.1, 0.08), (1, 0.12), #red keys
(0.1, 0.07),(1,0.11), #green keys
(0.1, 0.06), (1, 0.1), #blue keys
(0, 1), (0.5, 6), #scale keys
(0.1, 0.1, 3), #emit box size
(0, 0, 0), #emit velocity
30, #emit dir randomness
100,
0,
),
("grenade_splash2", psf_billboard_3d|psf_randomize_size | psf_randomize_rotation, "prt_mesh_mud_1",
1700, 3, 10, 10, 10, 3, #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
(0, 1), (1, 0.2), #alpha keys
(0, 0.2), (1, 0.1), #red keys
(0, 0.2),(1, 0.1), #green keys
(0, 0.2),(1, 0.1), #blue keys
(0, 0.5), (1, 0.1), #scale keys
(2, 2, 2), #emit box size
(0, 0, 0), #emit velocity
25, #emit dir randomness
100,
0,
),
("grenade_smoke1", psf_billboard_3d|psf_randomize_size | psf_randomize_rotation, "prt_mesh_smoke_1",
90, 5, 8, 0.01, 10, 1, #num_particles, life, damping, gravity_strength, turbulance_size, turbulance_strength
(0.2, 0.5), (1.0, 0.0), #alpha keys
(0.0, 0.5), (1.0, 0.3), #red keys
(0.0, 0.5),(1.0, 0.3), #green keys
(0.0, 0.5), (1.0, 0.3), #blue keys
(2, 3), (1, 0.1), #scale keys
(2, 1, 0.5), #emit box size
(0, 0, 0), #emit velocity
0, #emit dir randomness
100,
0,
),
["explosing_deaht", acf_enforce_all|acf_align_with_ground|acf_lock_camera, amf_priority_die|amf_accurate_body|amf_keep|amf_client_prediction,
[1.5, "fall_rider_right", 0, 57, arf_blend_in_16|arf_make_custom_sound, pack2f(0.8, 0.0), (0,0,0), 0.8],
[1.5, "fall_rider_left", 0, 56, arf_blend_in_16|arf_make_custom_sound, pack2f(0.8, 0.0), (0,0,0), 0.8],
[1.7, "fall_rider_right_forward", 0, 68, arf_blend_in_16|arf_make_custom_sound, pack2f(0.8, 0.0), (0,0,0), 0.8]],