/*
Credits:
GHW_Chronic for sizing help
knekter for some code
v3x for misc help
Sizes:
0 = Small
1 = Large
Fordította: BBk - Death of Legend
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define keys (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<9)
new bool:haslaser[33] = false
new sprite, red, green , blue , crosshairs
public plugin_init()
{
register_plugin("Laser Sight","1.2","Mr. Jiggafly")
register_clcmd("say /buyls","showMenu")
register_clcmd("say_team /buyls","showMenu")
register_cvar("amx_laser_cost","200")
register_cvar("amx_laser_size","0")
register_menucmd(register_menuid("showmenu"),1023,"give_ls")
register_event("DeathMsg","hook_death","a")
set_task(60.0,"advertise")
}
public plugin_precache()
{
sprite = precache_model("sprites/zbeam4.spr")
}
public client_putinserver(id)
{
haslaser[id] = false
}
public client_disconnect(id)
{
haslaser[id] = false
}
public showMenu(id)
{
new menu[256]
new len = format(menu, 255, "\rLaseriranyzek Bolt^n")
len += format(menu[len], 255 - len, "\y1.\w Piros lezert szeretnek!^n")
len += format(menu[len], 255 - len, "\y2.\w Zold lezert szeretnek!^n")
len += format(menu[len], 255 - len, "\y3.\w Kek lezert szeretnek!^n")
len += format(menu[len], 255 - len, "\y4.\w Feher lezert szeretnek!^n^n")
len += format(menu[len], 255 - len, "\y0.\w Nem szeretnek lezert!^n")
show_menu(id,keys,menu,-1,"showmenu")
}
public give_ls(id,key)
{
new money = cs_get_user_money(id)
new price = get_cvar_num("amx_laser_cost")
new crosshairs = get_cvar_num("amx_laser_crosshairs")
if(money >= price)
{
switch(key)
{
case 0:
{
haslaser[id] = true
red = 255
blue = 0
green = 0
}
case 1:
{
haslaser[id] = true
red = 0
blue = 0
green = 255
}
case 2:
{
haslaser[id] = true
red = 0
blue = 255
green = 0
}
case 3:
{
haslaser[id] = true
red = 255
blue = 255
green = 255
}
case 4:
{
return PLUGIN_HANDLED
}
}
cs_set_user_money(id,money - price,1)
}
else
{
client_print(id,print_chat,"[AMXX] Nincs eleg penzed a lezerhez.")
return PLUGIN_HANDLED
}
return PLUGIN_HANDLED
}
public client_PreThink(id)
{
new size = get_cvar_num("amx_laser_size")
if(haslaser[id] == true && size == 0)
{
new porigin[3], horigin[3];
get_user_origin(id, porigin, 2);
get_user_origin(id, horigin, 3);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(0); // TE_BEAMPOINTS
write_coord(horigin[0] + 1) // Start X
write_coord(horigin[1] + 0) // Start Y
write_coord(horigin[2] + 0) // Start Z
write_coord(horigin[0] - 1) // End X
write_coord(horigin[1] - 0) // End Y
write_coord(horigin[2] - 0) // End Z
write_short(sprite) // Sprite
write_byte(1) // Start frame
write_byte(10) // Frame rate
write_byte(1) // Life
write_byte(5) // Line width
write_byte(0) // Noise
write_byte(red) // Red
write_byte(green) // Green
write_byte(blue) // Blue
write_byte(150) // Brightness
write_byte(10) // Scroll speed
message_end()
}
if(haslaser[id] == true && size == 1)
{
new porigin[3], horigin[3];
get_user_origin(id, porigin, 2);
get_user_origin(id, horigin, 3);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(0); // TE_BEAMPOINTS
write_coord(porigin[0]) // Start X
write_coord(porigin[1]) // Start Y
write_coord(porigin[2]) // Start Z
write_coord(horigin[0]) // End X
write_coord(horigin[1]) // End Y
write_coord(horigin[2]) // End Z
write_short(sprite) // Sprite
write_byte(1) // Start frame
write_byte(10) // Frame rate
write_byte(1) // Life
write_byte(5) // Line width
write_byte(0) // Noise
write_byte(red) // Red
write_byte(green) // Green
write_byte(blue) // Blue
write_byte(150) // Brightness
write_byte(10) // Scroll speed
message_end()
}
return PLUGIN_HANDLED
}
public advertise()
{
new price = get_cvar_num("amx_laser_cost")
client_print(0,print_chat,"[AMXX] Lezeriranyzek Vasarolhato! Vasarlashoz ird be /buyls. Ara: $%d",price)
}
public hook_death(id)
{
haslaser[read_data(2)] = false
}