#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#define NEV "Kes Mod"
#define VERZIO "1.0"
#define KESZITO "I3u[R]n"
new raketaszam[33]
new raketa_bumm_sprite
new bool:raketakes[33]
new bool:gyorskes[33]
new Float:kiloves_ido[33]
public plugin_init(){
register_plugin(NEV,VERZIO,KESZITO)
register_event("CurWeapon", "CurWeapon", "be", "2!0")
RegisterHam(Ham_Spawn,"player","eledes")
register_forward(FM_CmdStart,"indulas")
register_clcmd("say /kes","kesmenu")
register_touch("Raketa","*","Raketa_Bumm")
}
public eledes(id){
if(raketakes[id]){
raketaszam[id]=3
}
if(is_user_alive(id)){
set_task(1.0,"hptoltes",0)
}
return PLUGIN_HANDLED
}
public hptoltes(id){
if(get_user_health(id)>=100){
return PLUGIN_CONTINUE
}
if(get_user_health(id)<100){
set_user_health(id,get_user_health(id)+1)
set_task(1.0,"hptoltes",0)
}
return PLUGIN_CONTINUE
}
public kesmenu(id){
new menu = menu_create("\yKes Menu","kes_handler")
menu_additem(menu,"\rRaketa Kes","1",0)
menu_additem(menu,"\rGyors Kes","2",0)
menu_display(id,menu)
}
public menu_handler(id,menu,item){
if(item==MENU_EXIT){
menu_destroy(menu)
return PLUGIN_HANDLED
}
new adat[6],nev[64]
new jog,visszahiv
menu_item_getinfo(menu,item,jog,adat,charsmax(adat),nev,charsmax(nev),visszahiv)
new key=str_to_num(adat)
switch(key){
case 1:{
raketakes[id]=true
}
case 2:{
gyorskes[id]=true
set_user_maxspeed(id,900.0)
}
}
return PLUGIN_HANDLED
}
public client_connect(id){
raketakes[id]=false
gyorskes[id]=false
}
public indulas(id,uc_handle,idattacker){
new fegyver = get_user_weapon(idattacker)
if(!is_user_alive(id)){
return FMRES_IGNORED
}
new gomb=get_uc(uc_handle,UC_Buttons)
if((gomb&IN_ATTACK)){
if((fegyver==CSW_KNIFE)){
if(raketakes[id]){
if(kiloves_ido[id]+2.0>get_gametime()){
client_print(id,print_center,"2 Masodpercenkent tudsz kiloni raketat!")
return PLUGIN_CONTINUE
}
if(is_user_alive(id))
{
kiloves_ido[id] = get_gametime()
new Float:Origin[3],Float:vAngle[3],Float:Velocity[3]
entity_get_vector(id,EV_VEC_v_angle,vAngle)
entity_get_vector(id,EV_VEC_origin,Origin)
new Entity=create_entity("info_target")
entity_set_string(Entity,EV_SZ_classname,"Raketa")
entity_set_model(Entity,"models/rpgrocket.mdl")
vAngle[0]*=-1.0
entity_set_origin(Entity,Origin)
entity_set_vector(Entity,EV_VEC_angles,vAngle)
entity_set_int(Entity,EV_INT_effects,2)
entity_set_int(Entity,EV_INT_solid,SOLID_BBOX)
entity_set_int(Entity,EV_INT_movetype,MOVETYPE_FLY)
entity_set_edict(Entity,EV_ENT_owner,id)
VelocityByAim(id,500,Velocity)
entity_set_vector(Entity,EV_VEC_velocity,Velocity)
}
return PLUGIN_CONTINUE
}
}
}
return PLUGIN_CONTINUE
}
public plugin_precache(){
precache_model("models/rpgrocket.mdl")
raketa_bumm_sprite = precache_model("sprites/dexplo.spr")
}
public Raketa_bumm(ent)
{
if(!is_valid_ent(ent)){
return
}
new tamado=entity_get_edict(ent,EV_ENT_owner)
new Float:fOrigin[3],iOrigin[3]
entity_get_vector(ent,EV_VEC_origin,fOrigin)
iOrigin[0]=floatround(fOrigin[0])
iOrigin[1]=floatround(fOrigin[1])
iOrigin[2]=floatround(fOrigin[2])
message_begin(MSG_BROADCAST,SVC_TEMPENTITY,iOrigin)
write_byte(TE_EXPLOSION)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
write_short(raketa_bumm_sprite)
write_byte(20)
write_byte(30)
write_byte(10)
message_end()
new entlist[33]
new numfound=find_sphere_class(ent,"player",230.0,entlist,32)
for (new i=0;i<numfound;i++){
new pid=entlist[i]
if(!is_user_alive(pid)||get_user_team(tamado)==get_user_team(pid)){
continue
}
ExecuteHam(Ham_TakeDamage,pid,ent,tamado,10.0,1)
}
remove_entity(ent)
}
public CurWeapon(id)
{
new fegyver = get_user_weapon(id)
if(gyorskes[id]){
if((fegyver==CSW_KNIFE)){
set_user_maxspeed(id,900.0)
}
}
return PLUGIN_CONTINUE
}