So how can do that when you shoot lightning, on the end origin would be a blast radius?
This is my code:
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
new g_Beam
new g_Explode
public plugin_precache()
{
g_Beam = precache_model("sprites/laserbeam.spr")
g_Explode = precache_model("sprites/zerogxplode-big2.spr")
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("laser", "lasershoot")
}
public lasershoot(id)
{
if(task_exists(id))
{
remove_task(id)
}
new originEnd[3]
new origin[3]
get_user_origin(id,origin,0)
get_user_origin(id,originEnd,3)
new EntId, Bodypart
get_user_aiming(id,EntId,Bodypart)
if(is_user_connected(EntId))
{
new VictimOrigin[3]
get_user_origin(id,VictimOrigin,0)
if(Bodypart == HIT_HEAD)
{
if(get_user_health(id) > 50)
{
set_user_health(EntId,get_user_health(EntId)-50)
}
else
{
set_user_health(EntId,0)
message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0,0,0}, 0);
write_byte(id);
write_byte(EntId);
write_byte(0);
write_string("1");
message_end();
}
}
else
{
if(get_user_health(id) > 10)
{
ExecuteHamB(Ham_TakeDamage, id, inflictor, attacker, Float:damage, damagebits);
}
else
{
set_user_health(EntId,0)
message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0,0,0}, 0);
write_byte(id);
write_byte(EntId);
write_byte(0);
write_string("");
message_end();
}
}
}
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_BEAMPOINTS)
// this is where the beginning of the beam is
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]) // z
// this is where the end of the beam is
write_coord(originEnd[0]) // x
write_coord(originEnd[1]) // y
write_coord(originEnd[2]) // z
// this is the sprite index, as we got in plugin_precache)
write_short(g_Beam)
// this is the starting frame, it's generally best to leave this at 1
write_byte(1)
// frame rate in 0.1s
write_byte(20)
// how long it lasts in 0.1 seconds (10 for 1 second)
write_byte(7)
// line width in 0.1s
write_byte(15)
// amplitude (how much it goes off the line)
write_byte(15)
// r, g, b
write_byte(255)
write_byte(10)
write_byte(5)
// brightness
write_byte(255)
// scroll speed
write_byte(100)
message_end()
}