AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   [REQ] To add choos team (https://forums.alliedmods.net/showthread.php?t=293245)

eNNkds 01-26-2017 16:05

[REQ] To add choos team
 
hello i need to add a new cvar to this plugin. with cvar to select what team can use it.
Ex: ks_team "0" 0 both / 1 T / 2 CT

PHP Code:

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#include <engine>
#include <fakemeta>
#include <fun>
#include <xs>

#define PLUGIN "KillStreak"
#define VERSION "1.3.4"
#define AUTHOR "cypis"

#define MAX_DIST 8192.0
#define MAX 32

new const maxAmmo[31]={0,52,0,90,1,32,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,32,90,120,90,2,35,90,90,0,100};

new 
sprite_blastcache_trail;

new 
licznik_zabic[MAX+1], bool:radar[2], bool:nalot[MAX+1], bool:predator[MAX+1], bool:nuke[MAX+1], bool:emp[MAX+1], bool:cuav[MAX+1], bool:uav[MAX+1], bool:pack[MAX+1], bool:sentrys[MAX+1];
new 
user_controll[MAX+1], emp_czasowebool:nuke_player[MAX+1];
new 
PobraneOrigin[3], ZmienKilla[2];

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_think("sentry","SentryThink");
    
    
register_touch("predator""*""touchedpredator");
    
register_touch("bomb""*""touchedrocket");

    
register_forward(FM_ClientKill"cmdKill");
    
    
RegisterHam(Ham_TakeDamage"func_breakable""TakeDamage");
    
RegisterHam(Ham_Killed"player""SmiercGracza"1);
    
    
register_event("CurWeapon","CurWeapon","be""1=1");
    
register_event("HLTV""NowaRunda""a""1=0""2=0");
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
    
    
register_cvar("ks_hpsentry""2500");
    
register_cvar("ks_sentry_remove""1");
    
    
register_clcmd("say /ks""uzyj_nagrody");
    
register_clcmd("say /killstreak""uzyj_nagrody");
    
set_task(2.0,"radar_scan",_,_,_,"b");
}

public 
plugin_precache()
{
    
sprite_blast precache_model("sprites/dexplo.spr");
    
cache_trail precache_model("sprites/smoke.spr");
    
    
precache_model("models/p_hegrenade.mdl");
    
precache_model("models/cod_carepackage.mdl");
    
precache_model("models/cod_plane.mdl");
    
precache_model("models/cod_predator.mdl");
    
precache_model("models/sentrygun_mw2.mdl");
    
    
precache_sound("mw/nuke_friend.wav");
    
precache_sound("mw/nuke_enemy.wav");
    
precache_sound("mw/nuke_give.wav");
    
    
precache_sound("mw/jet_fly1.wav");
    
//precache_sound("mw/jet_fly2.wav");
    
    
precache_sound("mw/emp_effect.wav");
    
precache_sound("mw/emp_friend.wav");
    
precache_sound("mw/emp_enemy.wav");
    
precache_sound("mw/emp_give.wav");
    
    
precache_sound("mw/counter_friend.wav");
    
precache_sound("mw/counter_enemy.wav");
    
precache_sound("mw/counter_give.wav");
    
    
precache_sound("mw/air_friend.wav");
    
precache_sound("mw/air_enemy.wav");
    
precache_sound("mw/air_give.wav");
    
    
precache_sound("mw/predator_friend.wav");
    
precache_sound("mw/predator_enemy.wav");
    
precache_sound("mw/predator_give.wav");
    
    
precache_sound("mw/uav_friend.wav");
    
precache_sound("mw/uav_enemy.wav");
    
precache_sound("mw/uav_give.wav");
    
    
precache_sound("mw/carepackage_friend.wav");
    
precache_sound("mw/carepackage_enemy.wav");
    
precache_sound("mw/carepackage_give.wav");
    
    
precache_sound("mw/firemw.wav");
    
precache_sound("mw/plant.wav");
    
precache_sound("mw/sentrygun_starts.wav");
    
precache_sound("mw/sentrygun_stops.wav");
    
precache_sound("mw/sentrygun_gone.wav");
    
precache_sound("mw/sentrygun_friend.wav");
    
precache_sound("mw/sentrygun_enemy.wav");
    
precache_sound("mw/sentrygun_give.wav");
    
    
precache_model("models/computergibs.mdl");
    
/*precache_sound("mw/emergairdrop_friend.wav");
    precache_sound("mw/emergairdrop_enemy.wav");
    precache_sound("mw/emergairdrop_give.wav");*/
}

public 
uzyj_nagrody(id)
{
    new 
menu menu_create("KillStreak:""Nagrody_Handler");
    new 
cb menu_makecallback("Nagrody_Callback");
    
menu_additem(menu"UAV"__cb);
    
menu_additem(menu"Care Package"__cb);
    
menu_additem(menu"Counter-UAV"__cb);
    
menu_additem(menu"Sentry Gun"__cb);
    
menu_additem(menu"Predator Missle"__cb);
    
menu_additem(menu"Airstrike"__cb);
    
menu_additem(menu"EMP"__cb);
    
menu_additem(menu"Nuke"__cb);
    
menu_setprop(menuMPROP_EXITNAME"Wyjdz^n\yKill Streak v1.3.4 by \rCypis");
    
menu_display(idmenu)
}

public 
Nagrody_Callback(idmenuitem)
{
    if(!
uav[id] && item == || !pack[id] && item == || !cuav[id] && item == || !sentrys[id] && item == || !predator[id] && item == || !nalot[id] && item == || !emp[id] && item == || !nuke[id] && item == 7)
        return 
ITEM_DISABLED;
    
    return 
ITEM_ENABLED;
}

public 
Nagrody_Handler(idmenuitem)
{
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
    
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    switch(
item)
    {
        case 
0:{
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
                
CreateUVA(id);
        }
        case 
1:{
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
                
CreatePack(id);
        } 
        case 
2:{
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
                
CreateCUVA(id);
        } 
        case 
3:{
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
                
CreateSentry(id);
        } 
        case 
4:{
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
                
CreatePredator(id);
        } 
        case 
5:{
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe)))
                
CreateNalot(id);
        } 
        case 
6:{
            if(!
emp_czasowe)
                
CreateEmp(id);
        } 
        case 
7CreateNuke(id);
    }        
    return 
PLUGIN_HANDLED;
}

public 
NowaRunda()
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numi++)
    {
        if(
task_exists(players[i]+997))
            
remove_task(players[i]+997);
    }
    
    
remove_entity_name("predator")
    
remove_entity_name("bomb")
    
    if(
get_cvar_num("ks_sentry_remove"))
        
remove_entity_name("sentry")
}

public 
client_putinserver(id){
    
licznik_zabic[id] = 0;
    
user_controll[id] = 0;
    
nalot[id] = false;
    
predator[id] = false;
    
nuke[id] = false;
    
cuav[id] = false;
    
uav[id] = false;
    
emp[id] = false;
    
pack[id] = false;
    
sentrys[id] = false;
}

public 
client_disconnect(id)
{
    new 
ent = -1
    
while((ent find_ent_by_class(ent"sentry")))
    {
        if(
entity_get_int(entEV_INT_iuser2) == id)
            
remove_entity(ent);
    }
    return 
PLUGIN_CONTINUE;
}

public 
SmiercGracza(idattacker)
{    
    if(!
is_user_alive(attacker) || !is_user_connected(attacker))
        return 
HAM_IGNORED;
        
    if(
get_user_team(attacker) != get_user_team(id) && !nuke_player[attacker])
    {
        
licznik_zabic[attacker]++;
        switch(
licznik_zabic[attacker])
        {
            case 
3:
            {
                
uav[attacker] = true;
                
OdgrajDzwieki(attacker"UAV^nWpisz /ks i wybierz zeby go uzyc""uav");
            }
            case 
4:
            {
                switch(
random_num(0,1))
                {
                    case 
0:
                    {
                        
cuav[attacker] = true;
                        
OdgrajDzwieki(attacker"Counter-Uav^nWpisz /ks i wybierz zeby go uzyc""counter");
                    }
                    case 
1:
                    {
                        
pack[attacker] = true;
                        
OdgrajDzwieki(attacker"Care Package^nWpisz /ks i wybierz zeby go uzyc""carepackage");
                    }
                }
            }
            case 
5:
            {
                
predator[attacker] = true;
                
OdgrajDzwieki(attacker"Predator Missible^nWpisz /ks i wybierz zeby go uzyc""predator");
            }
            case 
6:
            {
                
nalot[attacker] = true;
                
OdgrajDzwieki(attacker"Airstreak^nWpisz /ks i wybierz zeby go uzyc""air");
            }
            case 
8:
            {
                
sentrys[attacker] = true;
                
OdgrajDzwieki(attacker"Sentry Gun^nWpisz /ks i wybierz zeby go postawic""sentrygun");
            }
            case 
15:
            {
                
emp[attacker] = true;
                
OdgrajDzwieki(attacker"EMP^nWpisz /ks i wybierz zeby go uzyc""emp");
            }
            case 
20:
            {
                
nuke[attacker] = true;
                
OdgrajDzwieki(attacker"Nuke^nWpisz /ks i wybierz zeby go uzyc""nuke");
            }
        }
    }
    
licznik_zabic[id] = 0;
    
user_controll[id] = 0;
            
    new 
ent find_drop_pack(id"pack")
    if(
is_valid_ent(ent))
    {
        if(
task_exists(2571+ent))
        {
            
remove_task(2571+ent);
            
bartime(id0);
        }
    }
    return 
HAM_IGNORED;
}

public 
OdgrajDzwieki(idszNazwa[], scieszka[])
{
    
set_hudmessage(255255255, -1.00.2506.07.0);
    
ShowSyncHudMsg(idCreateHudSyncObj(), szNazwa);
    
client_cmd(id"spk sound/mw/%s_give.wav"scieszka);
}

//uav
public CreateUVA(id)
{
    static 
CzasUav[2];
    new 
team get_user_team(id) == 101;
    
uav[id] = false;
    
radar[team] = true;
    
    new 
numplayers[32];
    
get_players(playersnum"gh")
    for(new 
0numa++)
    {
        new 
players[a]
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/uav_enemy.wav")
        else
            
client_cmd(i"spk sound/mw/uav_friend.wav")
    }
    
print_info(id"UAV");
    
radar_scan()
    
    if(
task_exists(7354+team))
    {
        new 
times = (CzasUav[team]-get_systime())+60
        change_task
(7354+teamfloat(times));
        
CzasUav[team] = CzasUav[team]+times;
    }
    else
    {
        new 
data[1];
        
data[0] = team;
        
set_task(60.0"deluav"7354+teamdata1);
        
CzasUav[team] = get_systime()+60;
    }
}

public 
deluav(data[1])
{
    
radar[data[0]] = false;
}

public 
radar_scan()
{
    new 
numplayers[32];
    
get_players(playersnum"gh")
    for(new 
i=0i<numi++)
    {
        new 
id players[i];
        if(!
is_user_alive(id) || !radar[get_user_team(id) == 101])
            continue;
        
        if(!
emp_czasowe)
            
radar_continue(id)
        else if(
get_user_team(id) == get_user_team(emp_czasowe))
            
radar_continue(id)
    }
}

radar_continue(id)
{
    new 
numplayers[32], PlayerCoords[3]
    
get_players(playersnum"gh")
    for(new 
a=0a<numa++)
    {
        new 
players[a]       
        if(!
is_user_alive(i) || get_user_team(i) == get_user_team(id)) 
            continue;
        
        
get_user_origin(iPlayerCoords)
        
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HostagePos"), {0,0,0}, id)
        
write_byte(id)
        
write_byte(i)           
        
write_coord(PlayerCoords[0])
        
write_coord(PlayerCoords[1])
        
write_coord(PlayerCoords[2])
        
message_end()
        
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HostageK"), {0,0,0}, id)
        
write_byte(i)
        
message_end()
    }    
}

//airpack
public CreatePack(id)
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/carepackage_enemy.wav");
        else
            
client_cmd(i"spk sound/mw/carepackage_friend.wav");
    }
    
print_info(id"Care Package");
    
CreatePlane(id)
    
pack[id] = false
    set_task
(1.0"CarePack"id+742)
}

public 
CarePack(taskid)
{
    new 
id = (taskid 742)
    
    
PobraneOrigin[2] += 150
    new 
Float:LocVecs[3];
    
IVecFVec(PobraneOriginLocVecs);
    
create_ent(id"pack""models/cod_carepackage.mdl"16LocVecs);
}

public 
pickup_pack(info[2])
{
    new 
id info[0];
    new 
ent info[1];
    
    if(!
is_user_connected(id) || !is_user_alive(id))
        return;
    
    new 
weapons[32], weaponsnum;
    
get_user_weapons(idweaponsweaponsnum);
    for(new 
i=0i<weaponsnumi++)
        if(
maxAmmo[weapons[i]] > 0)
            
cs_set_user_bpammo(idweapons[i], maxAmmo[weapons[i]]);
        
    
give_item(id"weapon_hegrenade");
    
give_item(id"weapon_flashbang");
    
give_item(id"weapon_flashbang");            
    
give_item(id"weapon_smokegrenade");
        
    switch(
random(5))    
    {
        case 
0:
        {
            
uav[id] = true;
            
client_cmd(id"spk sound/mw/uav_give.wav");
        }
        case 
1:
        {
            
cuav[id] = true;
            
client_cmd(id"spk sound/mw/counter_give.wav");
        }
        case 
2:
        {
            
predator[id] = true;
            
client_cmd(id"spk sound/mw/predator_give.wav");
        }
        case 
3:
        {
            
nalot[id] = true;
            
client_cmd(id"spk sound/mw/air_give.wav");
        }
        case 
4:
        {
            
sentrys[id] = true;
            
client_cmd(id"spk sound/mw/sentrygun_give.wav");
        }
        case 
5:
        {
            
emp[id] = true;
            
client_cmd(id"spk sound/mw/emp_give.wav");
        }
    }        
    
remove_entity(ent);
}

public 
client_PreThink(id)
{    
    if(!
is_user_alive(id))
        return 
PLUGIN_CONTINUE;                
    if(
user_controll[id])
    {
        new 
ent2 user_controll[id];
        if(
is_valid_ent(ent2))
        {
            new 
Float:Velocity[3], Float:Angle[3];
            
velocity_by_aim(id500Velocity);
            
entity_get_vector(idEV_VEC_v_angleAngle);
            
            
entity_set_vector(ent2EV_VEC_velocityVelocity);
            
entity_set_vector(ent2EV_VEC_anglesAngle);
        }
        else
            
attach_view(idid);
    }
    static 
ent_id[MAX+1];
    new 
ent find_drop_pack(id"pack");
    if(
is_valid_ent(ent))
    {
        if(!
task_exists(2571+ent))
        {
            
ent_id[id] = ent;
            
bartime(id3)    
        
            new 
info[2];
            
info[0] = id;
            
info[1] = ent;
            
set_task(3.0"pickup_pack"2571+entinfo2);
        }
    }
    else
    {
        if(
task_exists(2571+ent_id[id]))
        {
            
remove_task(2571+ent_id[id]);
            
bartime(id0);
            
ent_id[id] = 0;
        }
    }
    return 
PLUGIN_CONTINUE;
}

//counter-uva
public CreateCUVA(id)
{
    
cuav[id] = false;
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/counter_enemy.wav");
        else
            
client_cmd(i"spk sound/mw/counter_friend.wav");
    }
    
radar[get_user_team(id) == 110] = false;
    
print_info(id"Counter-UAV");
}

//emp
public CreateEmp(id)
{
    
client_cmd(0"spk sound/mw/emp_effect.wav");
    
emp[id] = false;
    new 
numplayers[32];
    
get_players(playersnum"gh")
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(id) != get_user_team(i))
        {
            if(
is_user_alive(i))
            {
                
Display_Fade(i,1<<12,1<<12,1<<16,255255,0,166);
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HideWeapon"), _i);
                
write_byte((1<<0)|(1<<3)|(1<<5));
                
message_end();
            }
            
client_cmd(i"spk sound/mw/emp_enemy.wav");
        }
        else
            
client_cmd(i"spk sound/mw/emp_friend.wav");
    }
    
print_info(id"EMP""e");
    
emp_czasowe id;
    
set_task(90.0,"del_emp");
}

public 
del_emp()
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(emp_czasowe) != get_user_team(i))
        {
            if(
is_user_alive(i))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HideWeapon"), _i); 
                
write_byte(0);
                
message_end();
            }
        }
    }
    
emp_czasowe 0;
}

public 
CurWeapon(id)
{
    if(
get_user_team(id) != get_user_team(emp_czasowe) && emp_czasowe)
    {
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HideWeapon"), _id); 
        
write_byte(0x29); //(1<<0)|(1<<3)|(1<<5)
        
message_end(); 
    }
}

//nuke
public CreateNuke(id)
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
is_user_alive(i))
            
Display_Fade(i,(10<<12),(10<<12),(1<<16),2554242,171);
        
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/nuke_enemy.wav");
        else
            
client_cmd(i"spk sound/mw/nuke_friend.wav");
    }
    
print_info(id"Nuke""e");
    
set_task(10.0,"shakehud");
    
set_task(13.5,"del_nuke"id);
    
nuke[id] = false;
}

public 
shakehud()
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
is_user_alive(i))
        {
            
Display_Fade(i,(3<<12),(3<<12),(1<<16),2558542,215);
            
message_begin(MSG_ONEget_user_msgid("ScreenShake"), {0,0,0}, i);
            
write_short(255<<12);
            
write_short(4<<12);
            
write_short(255<<12);
            
message_end();
        }
    }
}

public 
del_nuke(id)
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
is_user_alive(i))
        {
            if(
get_user_team(id) != get_user_team(i))
            {
                
cs_set_user_armor(i0CS_ARMOR_NONE);
                
UTIL_Kill(idifloat(get_user_health(i)), DMG_BULLET)
            }
            else
                
user_silentkill(i);
        }
    }
    
nuke_player[id] = false;
    
licznik_zabic[id] = 0;
}

//nalot
public CreateNalot(id)
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/air_enemy.wav");
        else
            
client_cmd(i"spk sound/mw/air_friend.wav");
    }
    
print_info(id"Airstrike");
    
set_task(1.0"CreateBombs"id+997__"a"3);
    
CreatePlane(id);
    
nalot[id] = false;
}

public 
CreateBombs(taskid)
{    
    new 
id = (taskid-997);
    
    new 
radlocation[3];
    
PobraneOrigin[0] += random_num(-300,300);
    
PobraneOrigin[1] += random_num(-300,300);
    
PobraneOrigin[2] += 50;
    
    for(new 
i=0i<15i++) 
    {
        
radlocation[0] = PobraneOrigin[0]+1*random_num(-150,150); 
        
radlocation[1] = PobraneOrigin[1]+1*random_num(-150,150); 
        
radlocation[2] = PobraneOrigin[2]; 
        
        new 
Float:LocVec[3]; 
        
IVecFVec(radlocationLocVec); 
        
create_ent(id"bomb""models/p_hegrenade.mdl"210LocVec);
    }
}  

public 
CreatePlane(id)
{
    new 
Float:Origin[3], Float:Angle[3], Float:Velocity[3], ent;
    
    
get_user_origin(idPobraneOrigin3);
    
    
velocity_by_aim(id1000Velocity);
    
entity_get_vector(idEV_VEC_originOrigin);
    
entity_get_vector(idEV_VEC_v_angleAngle);
    
    
Angle[0] = Velocity[2] = 0.0;
    
Origin[2] += 200.0;
    
    
create_ent(id"samolot""models/cod_plane.mdl"28Originent);
    
    
entity_set_vector(entEV_VEC_velocityVelocity);
    
entity_set_vector(entEV_VEC_anglesAngle);
    
    
emit_sound(entCHAN_ITEM"mw/jet_fly1.wav"1.0ATTN_NORM0PITCH_NORM);
    
set_task(4.5"del_plane"ent+5731);
}

public 
del_plane(taskid)
    
remove_entity(taskid-5731);

public 
touchedrocket(entid)
{
    if(!
is_valid_ent(ent))
        return 
PLUGIN_CONTINUE;
    
    
bombs_explode(ent100.0150.0);
    return 
PLUGIN_CONTINUE;
}

//predator
public CreatePredator(id)
{
    new 
numplayers[32];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/predator_enemy.wav");
        else
            
client_cmd(i"spk sound/mw/predator_friend.wav");
    }
    
print_info(id"Predator Missle");

    new 
Float:Origin[3], Float:Angle[3], Float:Velocity[3], ent;
    
    
velocity_by_aim(id700Velocity);
    
entity_get_vector(idEV_VEC_originOrigin);
    
entity_get_vector(idEV_VEC_v_angleAngle);
    
    
Angle[0] *= -1.0;
    
    
create_ent(id"predator""models/cod_predator.mdl"25Originent);
    
    
entity_set_vector(entEV_VEC_velocityVelocity);
    
entity_set_vector(entEV_VEC_anglesAngle);
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
    
write_byte(TE_BEAMFOLLOW);
    
write_short(ent);
    
write_short(cache_trail);
    
write_byte(10);
    
write_byte(5);
    
write_byte(205);
    
write_byte(237);
    
write_byte(163);
    
write_byte(200);
    
message_end();
    
    
predator[id] = false;
    
    
attach_view(ident);
    
user_controll[id] = ent;


public 
touchedpredator(entid)
{
    if(!
is_valid_ent(ent))
        return 
PLUGIN_CONTINUE;
    
    new 
owner entity_get_edict(entEV_ENT_owner);
    
bombs_explode(ent220.0400.0);
    
attach_view(ownerowner);
    
user_controll[owner] = 0;
    return 
PLUGIN_CONTINUE;
}

//sentry gun
public CreateSentry(id
{
    if(!(
entity_get_int(idEV_INT_flags) & FL_ONGROUND)) 
        return;

    new 
entlist[3];
    if(
find_sphere_class(id"func_bomb_target"650.0entlist2))
    {
        
client_print(idprint_chat"[KillStrike] Jestes zbyt blisko BS'A.");
        return;
    }
    if(
find_sphere_class(id"func_buyzone"650.0entlist2))
    {
        
client_print(idprint_chat"[KillStrike] Jestes zbyt blisko Respa.");
        return;
    }
    new 
numplayers[32], Float:Origin[3];
    
get_players(playersnum"gh");
    for(new 
0numa++)
    {
        new 
players[a];
        if(
get_user_team(id) != get_user_team(i))
            
client_cmd(i"spk sound/mw/sentrygun_enemy.wav");
        else
            
client_cmd(i"spk sound/mw/sentrygun_friend.wav");
    }
    
print_info(id"Sentry Gun");
    
    
entity_get_vector(idEV_VEC_originOrigin);
    
Origin[2] += 45.0;
    
    new 
health[12], ent create_entity("func_breakable");
    
get_cvar_string("ks_hpsentry",healthcharsmax(health));
    
    
DispatchKeyValue(ent"health"health);
    
DispatchKeyValue(ent"material""6");
    
    
entity_set_string(entEV_SZ_classname"sentry");
    
entity_set_model(ent"models/sentrygun_mw2.mdl");
    
    
entity_set_float(entEV_FL_takedamageDAMAGE_YES);
    
    
entity_set_size(entFloat:{-16.0, -16.00.0}, Float:{16.016.048.0});
    
    
entity_set_origin(entOrigin);
    
entity_set_int(entEV_INT_solidSOLID_SLIDEBOX);
    
entity_set_int(entEV_INT_movetypeMOVETYPE_TOSS);
    
entity_set_int(entEV_INT_iuser2id);
    
entity_set_vector(entEV_VEC_anglesFloat:{0.00.00.0});
    
entity_set_byte(entEV_BYTE_controller2127);

    
entity_set_float(entEV_FL_nextthinkget_gametime()+1.0);
    
    
sentrys[id] = false;
    
emit_sound(entCHAN_ITEM"mw/plant.wav"1.0ATTN_NORM0PITCH_NORM);
}

public 
SentryThink(ent)
{
    if(!
is_valid_ent(ent)) 
        return 
PLUGIN_CONTINUE;
    
    new 
Float:SentryOrigin[3], Float:closestOrigin[3];
    
entity_get_vector(entEV_VEC_originSentryOrigin);

    new 
id entity_get_int(entEV_INT_iuser2);
    new 
target entity_get_edict(entEV_ENT_euser1);
    new 
firemods entity_get_int(entEV_INT_iuser1);
    
    if(
firemods)
    { 
        if(
/*ExecuteHam(Ham_FVisible, target, ent)*/fm_is_ent_visible(targetent) && is_user_alive(target)) 
        {
            if(
UTIL_In_FOV(target,ent))
            {
                goto 
fireoff;
            }
            
            new 
Float:TargetOrigin[3];
            
entity_get_vector(targetEV_VEC_originTargetOrigin);
                
            
emit_sound(entCHAN_AUTO"mw/firemw.wav"1.0ATTN_NORM0PITCH_NORM);
            
sentry_turntotarget(entSentryOriginTargetOrigin);
                
            new 
Float:hitRatio random_float(0.01.0) - 0.2;
            if(
hitRatio <= 0.0)
            {
                
UTIL_Kill(idtargetrandom_float(5.035.0), DMG_BULLET1);
                
                
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
                
write_byte(TE_TRACER);
                
write_coord(floatround(SentryOrigin[0]));
                
write_coord(floatround(SentryOrigin[1]));
                
write_coord(floatround(SentryOrigin[2]));
                
write_coord(floatround(TargetOrigin[0]));
                
write_coord(floatround(TargetOrigin[1]));
                
write_coord(floatround(TargetOrigin[2]));
                
message_end();
            }
            
entity_set_float(entEV_FL_nextthinkget_gametime()+0.1);
            return 
PLUGIN_CONTINUE;
        }
        else
        {
fireoff:
            
firemods 0;
            
entity_set_int(entEV_INT_iuser10);
            
entity_set_edict(entEV_ENT_euser10);
            
emit_sound(entCHAN_AUTO"mw/sentrygun_stops.wav"1.0ATTN_NORM0PITCH_NORM);
            
            
entity_set_float(entEV_FL_nextthinkget_gametime()+1.0);
            return 
PLUGIN_CONTINUE;
        }
    }

    new 
closestTarget getClosestPlayer(ent)
    if(
closestTarget)
    {
        
emit_sound(entCHAN_AUTO"mw/sentrygun_starts.wav"1.0ATTN_NORM0PITCH_NORM);
        
entity_get_vector(closestTargetEV_VEC_originclosestOrigin);
        
sentry_turntotarget(entSentryOriginclosestOrigin);
        
        
entity_set_int(entEV_INT_iuser11);
        
entity_set_edict(entEV_ENT_euser1closestTarget);
        
        
entity_set_float(entEV_FL_nextthinkget_gametime()+1.0);
        return 
PLUGIN_CONTINUE;
    }

    if(!
firemods)
    {
        new 
controler1 entity_get_byte(entEV_BYTE_controller1)+1;
        if(
controler1 255)
            
controler1 0;
        
entity_set_byte(entEV_BYTE_controller1controler1);
        
        new 
controler2 entity_get_byte(entEV_BYTE_controller2);
        if(
controler2 127 || controler2 127)
            
entity_set_byte(entEV_BYTE_controller2127);
            
        
entity_set_float(entEV_FL_nextthinkget_gametime()+0.05);
    }
    return 
PLUGIN_CONTINUE
}

public 
sentry_turntotarget(entFloat:sentryOrigin[3], Float:closestOrigin[3]) 
{
    new 
newTripFloat:newAngle floatatan(((closestOrigin[1]-sentryOrigin[1])/(closestOrigin[0]-sentryOrigin[0])), radian) * 57.2957795;

    if(
closestOrigin[0] < sentryOrigin[0])
        
newAngle += 180.0;
    if(
newAngle 0.0)
        
newAngle += 360.0;
    
    
sentryOrigin[2] += 35.0
    
if(closestOrigin[2] > sentryOrigin[2])
        
newTrip 0;
    if(
closestOrigin[2] < sentryOrigin[2])
        
newTrip 255;
    if(
closestOrigin[2] == sentryOrigin[2])
        
newTrip 127;
        
    
entity_set_byte(entEV_BYTE_controller1,floatround(newAngle*0.70833));
    
entity_set_byte(entEV_BYTE_controller2newTrip);
    
entity_set_byte(entEV_BYTE_controller3entity_get_byte(entEV_BYTE_controller3)+20>2550entity_get_byte(entEV_BYTE_controller3)+20);
}

public 
TakeDamage(entidinflictorattackerFloat:damagedamagebits)
{
    if(!
is_user_alive(attacker))
        return 
HAM_IGNORED;
    
    new 
classname[32];
    
entity_get_string(entEV_SZ_classnameclassname31);
    
    if(
equal(classname"sentry")) 
    {
        new 
id entity_get_int(entEV_INT_iuser2);
        if(
get_user_team(attacker) == get_user_team(id))
            return 
HAM_SUPERCEDE;

        if(
damage >= entity_get_float(entEV_FL_health))
        {
            new 
Float:Origin[3];
            
entity_get_vector(entEV_VEC_originOrigin);    
            new 
entlist[33];
            new 
numfound find_sphere_class(ent"player"190.0entlist32);
            
            for(new 
i=0numfoundi++)
            {        
                new 
pid entlist[i];
                
                if(!
is_user_alive(pid) || get_user_team(id) == get_user_team(pid))
                    continue;
                
UTIL_Kill(idpid70.0, (1<<24));
            }
            
client_cmd(id"spk sound/mw/sentrygun_gone.wav");
            
//Sprite_Blast(Origin);
            //remove_entity(ent); //jak to dam to cresh serwer bo odrazu usuwa sentry guna :O
            
set_task(1.0"del_sentry"ent); //jak tego nie dam to sentry jest jako byt i strzela
        
}
    }
    return 
HAM_IGNORED;
}

public 
del_sentry(ent)
    
remove_entity(ent);

//wybuch
bombs_explode(entFloat:zadajeFloat:promien)
{
    if(!
is_valid_ent(ent)) 
        return;
    
    new 
attacker entity_get_edict(entEV_ENT_owner);
    
    new 
Float:entOrigin[3], Float:fDamageFloat:Origin[3];
    
entity_get_vector(entEV_VEC_originentOrigin);
    
entOrigin[2] += 1.0;
    
    new 
entlist[33];
    new 
numfound find_sphere_class(ent"player"promienentlist32);    
    for(new 
i=0numfoundi++)
    {        
        new 
victim entlist[i];        
        if(!
is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim))
            continue;
            
        
entity_get_vector(victimEV_VEC_originOrigin);
        
fDamage zadaje floatmul(zadajefloatdiv(get_distance_f(OriginentOrigin), promien));
        
fDamage *= estimate_take_hurt(entOriginvictim0);
        if(
fDamage>0.0)
            
UTIL_Kill(attackervictimfDamageDMG_BULLET);
    }
    
Sprite_Blast(entOrigin);
    
remove_entity(ent);
}

public 
cmdKill()
    return 
FMRES_SUPERCEDE;

public 
message_DeathMsg()
{
    new 
killer get_msg_arg_int(1);
    if(
ZmienKilla[0] & (1<<killer))
    {
        
set_msg_arg_string(4"grenade");
        return 
PLUGIN_CONTINUE;
    }
    if(
ZmienKilla[1] & (1<<killer))
    {
        
set_msg_arg_string(4"m249");
        return 
PLUGIN_CONTINUE;
    }
    return 
PLUGIN_CONTINUE;
}

stock create_ent(idszName[], szModel[], iSolidiMovetypeFloat:fOrigin[3], &ent=-1)
{
    new 
ent1 create_entity("info_target");
    
entity_set_string(ent1EV_SZ_classnameszName);
    
entity_set_model(ent1szModel);
    
entity_set_int(ent1EV_INT_solidiSolid);
    
entity_set_int(ent1EV_INT_movetypeiMovetype);
    
entity_set_edict(ent1EV_ENT_ownerid);
    
entity_set_origin(ent1fOrigin);
    
    if(
ent != -1)
        
ent ent1;
}

stock Sprite_Blast(Float:iOrigin[3])
{
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    
write_byte(TE_EXPLOSION);
    
write_coord(floatround(iOrigin[0]));
    
write_coord(floatround(iOrigin[1])); 
    
write_coord(floatround(iOrigin[2]));
    
write_short(sprite_blast);
    
write_byte(32);
    
write_byte(20); 
    
write_byte(0);
    
message_end();
}

stock Float:estimate_take_hurt(Float:fPoint[3], entignored
{
    new 
Float:fFractionFloat:fOrigin[3], tr;
    
entity_get_vector(entEV_VEC_originfOrigin);
    
engfunc(EngFunc_TraceLinefPointfOriginDONT_IGNORE_MONSTERSignoredtr);
    
get_tr2(trTR_flFractionfFraction);
    if(
fFraction == 1.0 || get_tr2(trTR_pHit) == ent)
        return 
1.0;
    return 
0.6;
}

stock bartime(idnumber)
{
    
message_begin(MSG_ONEget_user_msgid("BarTime"), _id);
    
write_short(number);
    
message_end();    
}

stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
    
message_begin(MSG_ONEget_user_msgid("ScreenFade"),{0,0,0},id);
    
write_short(duration);
    
write_short(holdtime);
    
write_short(fadetype);
    
write_byte(red);
    
write_byte(green);
    
write_byte(blue);
    
write_byte(alpha);
    
message_end();
}

stock find_drop_pack(id, const class[])
{
    new 
Float:origin[3], classname[32], ent;
    
entity_get_vector(idEV_VEC_originorigin);
    
    while((
ent find_ent_in_sphere(entorigin75.0)) != 0
    {
        
entity_get_string(entEV_SZ_classnameclassname31);
        if(
equali(classname, class))
            return 
ent;
    }
    return 
0;
}

stock print_info(id, const nagroda[], const nazwa[] = "y")
{
    new 
nick[64];
    
get_user_name(idnick63);
    
client_print(0print_chat"%s wezwan%s przez %s"nagrodanazwanick);
}
    
stock UTIL_Kill(atakujacyobrywajacyFloat:damagedamagebitsile=0)
{
    
ZmienKilla[ile] |= (1<<atakujacy);
    
ExecuteHam(Ham_TakeDamageobrywajacyatakujacyatakujacydamagedamagebits);
    
ZmienKilla[ile] &= ~(1<<atakujacy);
}
    
stock getClosestPlayer(ent)
{
    new 
iClosestPlayer 0Float:flClosestDist MAX_DISTFloat:flDistanseFloat:fOrigin[2][3];
    new 
numplayers[32];
    
get_players(playersnum"gh")
    for(new 
0numa++)
    {
        new 
players[a];
        if(!
is_user_connected(i) || !is_user_alive(i) || /*!ExecuteHam(Ham_FVisible, i, ent)*/!fm_is_ent_visible(ient) || get_user_team(i) == get_user_team(entity_get_int(entEV_INT_iuser2)))
            continue;
        
        if(
UTIL_In_FOV(ient))
            continue;
        
        
entity_get_vector(iEV_VEC_originfOrigin[0]);
        
entity_get_vector(entEV_VEC_originfOrigin[1]);
        
        
flDistanse get_distance_f(fOrigin[0], fOrigin[1]);
        
        if(
flDistanse <= flClosestDist)
        {
            
iClosestPlayer i;
            
flClosestDist flDistanse;
        }
    }
    return 
iClosestPlayer;
}

stock bool:UTIL_In_FOV(id,ent)
{
    if((
get_pdata_int(id510) & (1<<16)) && (Find_Angle(ident) > 0.0))
        return 
true;
    return 
false;
}

stock Float:Find_Angle(idtarget)
{
    new 
Float:Origin[3], Float:TargetOrigin[3];
    
pev(id,pev_originOrigin);
    
pev(target,pev_origin,TargetOrigin);
    
    new 
Float:Angles[3], Float:vec2LOS[3];
    
pev(id,pev_anglesAngles);
    
    
xs_vec_sub(TargetOriginOriginvec2LOS);
    
vec2LOS[2] = 0.0;
    
    new 
Float:veclength vector_length(vec2LOS);
    if (
veclength <= 0.0)
        
vec2LOS[0] = vec2LOS[1] = 0.0;
    else
    {
        new 
Float:flLen 1.0 veclength;
        
vec2LOS[0] = vec2LOS[0]*flLen;
        
vec2LOS[1] = vec2LOS[1]*flLen;
    }
    
engfunc(EngFunc_MakeVectorsAngles);
    
    new 
Float:v_forward[3];
    
get_global_vector(GL_v_forwardv_forward);
    
    new 
Float:flDot vec2LOS[0]*v_forward[0]+vec2LOS[1]*v_forward[1];
    if(
flDot 0.5)
        return 
flDot;
    
    return 
0.0;
}

stock bool:fm_is_ent_visible(indexentityignoremonsters 0) {
    new 
Float:start[3], Float:dest[3];
    
pev(indexpev_originstart);
    
pev(indexpev_view_ofsdest);
    
xs_vec_add(startdeststart);

    
pev(entitypev_origindest);
    
engfunc(EngFunc_TraceLinestartdestignoremonstersindex0);

    new 
Float:fraction;
    
get_tr2(0TR_flFractionfraction);
    if (
fraction == 1.0 || get_tr2(0TR_pHit) == entity)
        return 
true;

    return 
false;



edon1337 01-27-2017 08:45

Re: [REQ] To add choos team
 
Cvar : team_use <0|1|2>
PHP Code:

#include <amxmodx> 
#include <cstrike> 
#include <hamsandwich> 
#include <engine> 
#include <fakemeta> 
#include <fun> 
#include <xs> 

#define PLUGIN "KillStreak" 
#define VERSION "1.3.4" 
#define AUTHOR "cypis" 

#define MAX_DIST 8192.0 
#define MAX 32 

new const maxAmmo[31]={0,52,0,90,1,32,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,32,90,120,90,2,35,90,90,0,100}; 

new 
sprite_blastcache_trail

new 
licznik_zabic[MAX+1], bool:radar[2], bool:nalot[MAX+1], bool:predator[MAX+1], bool:nuke[MAX+1], bool:emp[MAX+1], bool:cuav[MAX+1], bool:uav[MAX+1], bool:pack[MAX+1], bool:sentrys[MAX+1]; 
new 
user_controll[MAX+1], emp_czasowebool:nuke_player[MAX+1]; 
new 
PobraneOrigin[3], ZmienKilla[2], team_use;

public 
plugin_init()  

    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_think("sentry","SentryThink"); 
    
    
register_touch("predator""*""touchedpredator"); 
    
register_touch("bomb""*""touchedrocket"); 
    
    
register_forward(FM_ClientKill"cmdKill"); 
    
    
RegisterHam(Ham_TakeDamage"func_breakable""TakeDamage"); 
    
RegisterHam(Ham_Killed"player""SmiercGracza"1); 
    
    
register_event("CurWeapon","CurWeapon","be""1=1"); 
    
register_event("HLTV""NowaRunda""a""1=0""2=0"); 
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg"
    
    
register_cvar("ks_hpsentry""2500"); 
    
register_cvar("ks_sentry_remove""1"); 
    
    
team_use register_cvar("ks_can_use""0"// 0 - both / 1 - T / 2 - CT
    
    
register_clcmd("say /ks""uzyj_nagrody"); 
    
register_clcmd("say /killstreak""uzyj_nagrody"); 
    
set_task(2.0,"radar_scan",_,_,_,"b"); 


public 
plugin_precache() 

    
sprite_blast precache_model("sprites/dexplo.spr"); 
    
cache_trail precache_model("sprites/smoke.spr"); 
    
    
precache_model("models/p_hegrenade.mdl"); 
    
precache_model("models/cod_carepackage.mdl"); 
    
precache_model("models/cod_plane.mdl"); 
    
precache_model("models/cod_predator.mdl"); 
    
precache_model("models/sentrygun_mw2.mdl"); 
    
    
precache_sound("mw/nuke_friend.wav"); 
    
precache_sound("mw/nuke_enemy.wav"); 
    
precache_sound("mw/nuke_give.wav"); 
    
    
precache_sound("mw/jet_fly1.wav"); 
    
//precache_sound("mw/jet_fly2.wav"); 
    
    
precache_sound("mw/emp_effect.wav"); 
    
precache_sound("mw/emp_friend.wav"); 
    
precache_sound("mw/emp_enemy.wav"); 
    
precache_sound("mw/emp_give.wav"); 
    
    
precache_sound("mw/counter_friend.wav"); 
    
precache_sound("mw/counter_enemy.wav"); 
    
precache_sound("mw/counter_give.wav"); 
    
    
precache_sound("mw/air_friend.wav"); 
    
precache_sound("mw/air_enemy.wav"); 
    
precache_sound("mw/air_give.wav"); 
    
    
precache_sound("mw/predator_friend.wav"); 
    
precache_sound("mw/predator_enemy.wav"); 
    
precache_sound("mw/predator_give.wav"); 
    
    
precache_sound("mw/uav_friend.wav"); 
    
precache_sound("mw/uav_enemy.wav"); 
    
precache_sound("mw/uav_give.wav"); 
    
    
precache_sound("mw/carepackage_friend.wav"); 
    
precache_sound("mw/carepackage_enemy.wav"); 
    
precache_sound("mw/carepackage_give.wav"); 
    
    
precache_sound("mw/firemw.wav"); 
    
precache_sound("mw/plant.wav"); 
    
precache_sound("mw/sentrygun_starts.wav"); 
    
precache_sound("mw/sentrygun_stops.wav"); 
    
precache_sound("mw/sentrygun_gone.wav"); 
    
precache_sound("mw/sentrygun_friend.wav"); 
    
precache_sound("mw/sentrygun_enemy.wav"); 
    
precache_sound("mw/sentrygun_give.wav"); 
    
    
precache_model("models/computergibs.mdl"); 
    
/*precache_sound("mw/emergairdrop_friend.wav"); 
    precache_sound("mw/emergairdrop_enemy.wav"); 
    precache_sound("mw/emergairdrop_give.wav");*/ 


public 
uzyj_nagrody(id

    new 
menu menu_create("KillStreak:""Nagrody_Handler"); 
    
    new 
cb menu_makecallback("Nagrody_Callback"); 
    
    
menu_additem(menu"UAV"__cb); 
    
menu_additem(menu"Care Package"__cb); 
    
menu_additem(menu"Counter-UAV"__cb); 
    
menu_additem(menu"Sentry Gun"__cb); 
    
menu_additem(menu"Predator Missle"__cb); 
    
menu_additem(menu"Airstrike"__cb); 
    
menu_additem(menu"EMP"__cb); 
    
menu_additem(menu"Nuke"__cb); 
    
    
menu_setprop(menuMPROP_EXITNAME"Wyjdz^n\yKill Streak v1.3.4 by \rCypis"); 
    
    if(
get_pcvar_num(team_use) == 0) {
        if(
cs_get_user_team(id) != CS_TEAM_SPECTATOR && cs_get_user_team(id) != CS_TEAM_UNASSIGNED)
            
menu_display(idmenu
    }
    
    else if(
get_pcvar_num(team_use) == 1) {
        if(
cs_get_user_team(id) == CS_TEAM_T)
            
menu_display(idmenu)
    }
    
    else if(
get_pcvar_num(team_use) == 2) {
        if(
cs_get_user_team(id) == CS_TEAM_CT)
            
menu_display(idmenu)
    }


public 
Nagrody_Callback(idmenuitem

    if(!
uav[id] && item == || !pack[id] && item == || !cuav[id] && item == || !sentrys[id] && item == || !predator[id] && item == || !nalot[id] && item == || !emp[id] && item == || !nuke[id] && item == 7
        return 
ITEM_DISABLED
    
    return 
ITEM_ENABLED


public 
Nagrody_Handler(idmenuitem

    if(!
is_user_alive(id)) 
        return 
PLUGIN_HANDLED
    
    if(
item == MENU_EXIT
    { 
        
menu_destroy(menu); 
        return 
PLUGIN_HANDLED
    } 
    
    switch(
item
    { 
        case 
0:{ 
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe))) 
                
CreateUVA(id); 
        } 
        case 
1:{ 
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe))) 
                
CreatePack(id); 
        }  
        case 
2:{ 
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe))) 
                
CreateCUVA(id); 
        }  
        case 
3:{ 
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe))) 
                
CreateSentry(id); 
        }  
        case 
4:{ 
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe))) 
                
CreatePredator(id); 
        }  
        case 
5:{ 
            if(!
emp_czasowe || (emp_czasowe && get_user_team(id) == get_user_team(emp_czasowe))) 
                
CreateNalot(id); 
        }  
        case 
6:{ 
            if(!
emp_czasowe
                
CreateEmp(id); 
        }  
        case 
7CreateNuke(id); 
        }         
    return 
PLUGIN_HANDLED


public 
NowaRunda() 

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numi++) 
    { 
        if(
task_exists(players[i]+997)) 
            
remove_task(players[i]+997); 
    } 
    
    
remove_entity_name("predator"
    
remove_entity_name("bomb"
    
    if(
get_cvar_num("ks_sentry_remove")) 
        
remove_entity_name("sentry"


public 
client_putinserver(id){ 
    
licznik_zabic[id] = 0
    
user_controll[id] = 0
    
nalot[id] = false
    
predator[id] = false
    
nuke[id] = false
    
cuav[id] = false
    
uav[id] = false
    
emp[id] = false
    
pack[id] = false
    
sentrys[id] = false


public 
client_disconnect(id

    new 
ent = -
    
while((ent find_ent_by_class(ent"sentry"))) 
    { 
        if(
entity_get_int(entEV_INT_iuser2) == id
            
remove_entity(ent); 
    } 
    return 
PLUGIN_CONTINUE


public 
SmiercGracza(idattacker
{     
    if(!
is_user_alive(attacker) || !is_user_connected(attacker)) 
        return 
HAM_IGNORED
    
    if(
get_user_team(attacker) != get_user_team(id) && !nuke_player[attacker]) 
    { 
        
licznik_zabic[attacker]++; 
        switch(
licznik_zabic[attacker]) 
        { 
            case 
3
            { 
                
uav[attacker] = true
                
OdgrajDzwieki(attacker"UAV^nWpisz /ks i wybierz zeby go uzyc""uav"); 
            } 
            case 
4
            { 
                switch(
random_num(0,1)) 
                { 
                    case 
0
                    { 
                        
cuav[attacker] = true
                        
OdgrajDzwieki(attacker"Counter-Uav^nWpisz /ks i wybierz zeby go uzyc""counter"); 
                    } 
                    case 
1
                    { 
                        
pack[attacker] = true
                        
OdgrajDzwieki(attacker"Care Package^nWpisz /ks i wybierz zeby go uzyc""carepackage"); 
                    } 
                } 
            } 
            case 
5
            { 
                
predator[attacker] = true
                
OdgrajDzwieki(attacker"Predator Missible^nWpisz /ks i wybierz zeby go uzyc""predator"); 
            } 
            case 
6
            { 
                
nalot[attacker] = true
                
OdgrajDzwieki(attacker"Airstreak^nWpisz /ks i wybierz zeby go uzyc""air"); 
            } 
            case 
8
            { 
                
sentrys[attacker] = true
                
OdgrajDzwieki(attacker"Sentry Gun^nWpisz /ks i wybierz zeby go postawic""sentrygun"); 
            } 
            case 
15
            { 
                
emp[attacker] = true
                
OdgrajDzwieki(attacker"EMP^nWpisz /ks i wybierz zeby go uzyc""emp"); 
            } 
            case 
20
            { 
                
nuke[attacker] = true
                
OdgrajDzwieki(attacker"Nuke^nWpisz /ks i wybierz zeby go uzyc""nuke"); 
            } 
        } 
    } 
    
licznik_zabic[id] = 0
    
user_controll[id] = 0
    
    new 
ent find_drop_pack(id"pack"
    if(
is_valid_ent(ent)) 
    { 
        if(
task_exists(2571+ent)) 
        { 
            
remove_task(2571+ent); 
            
bartime(id0); 
        } 
    } 
    return 
HAM_IGNORED


public 
OdgrajDzwieki(idszNazwa[], scieszka[]) 

    
set_hudmessage(255255255, -1.00.2506.07.0); 
    
ShowSyncHudMsg(idCreateHudSyncObj(), szNazwa); 
    
client_cmd(id"spk sound/mw/%s_give.wav"scieszka); 


//uav 
public CreateUVA(id

    static 
CzasUav[2]; 
    new 
team get_user_team(id) == 101
    
uav[id] = false
    
radar[team] = true
    
    new 
numplayers[32]; 
    
get_players(playersnum"gh"
    for(new 
0numa++) 
    { 
        new 
players[a
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/uav_enemy.wav"
        else 
            
client_cmd(i"spk sound/mw/uav_friend.wav"
    } 
    
print_info(id"UAV"); 
    
radar_scan() 
    
    if(
task_exists(7354+team)) 
    { 
        new 
times = (CzasUav[team]-get_systime())+60 
        change_task
(7354+teamfloat(times)); 
        
CzasUav[team] = CzasUav[team]+times
    } 
    else 
    { 
        new 
data[1]; 
        
data[0] = team
        
set_task(60.0"deluav"7354+teamdata1); 
        
CzasUav[team] = get_systime()+60
    } 


public 
deluav(data[1]) 

    
radar[data[0]] = false


public 
radar_scan() 

    new 
numplayers[32]; 
    
get_players(playersnum"gh"
    for(new 
i=0i<numi++) 
    { 
        new 
id players[i]; 
        if(!
is_user_alive(id) || !radar[get_user_team(id) == 101]) 
            continue; 
        
        if(!
emp_czasowe
            
radar_continue(id
        else if(
get_user_team(id) == get_user_team(emp_czasowe)) 
            
radar_continue(id
    } 


radar_continue(id) { 
    new 
numplayers[32], PlayerCoords[3
    
get_players(playersnum"gh"
    for(new 
a=0a<numa++) { 
        
        new 
players[a]        
        
        if(!
is_user_alive(i) || get_user_team(i) == get_user_team(id))  
            continue; 
        
        
get_user_origin(iPlayerCoords
        
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HostagePos"), {0,0,0}, id
        
write_byte(id
        
write_byte(i)            
        
write_coord(PlayerCoords[0]) 
        
write_coord(PlayerCoords[1]) 
        
write_coord(PlayerCoords[2]) 
        
message_end() 
        
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HostageK"), {0,0,0}, id
        
write_byte(i
        
message_end() 
    }     


//airpack 
public CreatePack(id

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) { 
        new 
players[a]; 
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/carepackage_enemy.wav"); 
        else 
            
client_cmd(i"spk sound/mw/carepackage_friend.wav"); 
    } 
    
print_info(id"Care Package"); 
    
CreatePlane(id
    
pack[id] = false 
    set_task
(1.0"CarePack"id+742


public 
CarePack(taskid

    new 
id = (taskid 742
    
    
PobraneOrigin[2] += 150;  
    new 
Float:LocVecs[3]; 
    
IVecFVec(PobraneOriginLocVecs); 
    
create_ent(id"pack""models/cod_carepackage.mdl"16LocVecs); 


public 
pickup_pack(info[2]) 

    new 
id info[0]; 
    new 
ent info[1]; 
    
    if(!
is_user_connected(id) || !is_user_alive(id)) 
        return; 
    
    new 
weapons[32], weaponsnum
    
get_user_weapons(idweaponsweaponsnum); 
    for(new 
i=0i<weaponsnumi++) 
        if(
maxAmmo[weapons[i]] > 0
        
cs_set_user_bpammo(idweapons[i], maxAmmo[weapons[i]]); 
    
    
give_item(id"weapon_hegrenade"); 
    
give_item(id"weapon_flashbang"); 
    
give_item(id"weapon_flashbang");             
    
give_item(id"weapon_smokegrenade"); 
    
    switch(
random(5))     
    { 
        case 
0
        { 
            
uav[id] = true
            
client_cmd(id"spk sound/mw/uav_give.wav"); 
        } 
        case 
1
        { 
            
cuav[id] = true
            
client_cmd(id"spk sound/mw/counter_give.wav"); 
        } 
        case 
2
        { 
            
predator[id] = true
            
client_cmd(id"spk sound/mw/predator_give.wav"); 
        } 
        case 
3
        { 
            
nalot[id] = true
            
client_cmd(id"spk sound/mw/air_give.wav"); 
        } 
        case 
4
        { 
            
sentrys[id] = true
            
client_cmd(id"spk sound/mw/sentrygun_give.wav"); 
        } 
        case 
5
        { 
            
emp[id] = true
            
client_cmd(id"spk sound/mw/emp_give.wav"); 
        } 
    }         
    
remove_entity(ent); 


public 
client_PreThink(id
{     
    if(!
is_user_alive(id)) 
        return 
PLUGIN_CONTINUE;                 
    if(
user_controll[id]) 
    { 
        new 
ent2 user_controll[id]; 
        if(
is_valid_ent(ent2)) 
        { 
            new 
Float:Velocity[3], Float:Angle[3]; 
            
velocity_by_aim(id500Velocity); 
            
entity_get_vector(idEV_VEC_v_angleAngle); 
            
            
entity_set_vector(ent2EV_VEC_velocityVelocity); 
            
entity_set_vector(ent2EV_VEC_anglesAngle); 
        } 
        else 
            
attach_view(idid); 
    } 
    static 
ent_id[MAX+1]; 
    new 
ent find_drop_pack(id"pack"); 
    if(
is_valid_ent(ent)) 
    { 
        if(!
task_exists(2571+ent)) 
        { 
            
ent_id[id] = ent
            
bartime(id3)     
            
            new 
info[2]; 
            
info[0] = id
            
info[1] = ent
            
set_task(3.0"pickup_pack"2571+entinfo2); 
        } 
    } 
    else 
    { 
        if(
task_exists(2571+ent_id[id])) 
        { 
            
remove_task(2571+ent_id[id]); 
            
bartime(id0); 
            
ent_id[id] = 0
        } 
    } 
    return 
PLUGIN_CONTINUE


//counter-uva 
public CreateCUVA(id

    
cuav[id] = false
    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/counter_enemy.wav"); 
        else 
            
client_cmd(i"spk sound/mw/counter_friend.wav"); 
    } 
    
radar[get_user_team(id) == 110] = false
    
print_info(id"Counter-UAV"); 


//emp 
public CreateEmp(id

    
client_cmd(0"spk sound/mw/emp_effect.wav"); 
    
emp[id] = false
    new 
numplayers[32]; 
    
get_players(playersnum"gh"
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
get_user_team(id) != get_user_team(i)) 
        { 
            if(
is_user_alive(i)) 
            { 
                
Display_Fade(i,1<<12,1<<12,1<<16,255255,0,166); 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HideWeapon"), _i); 
                
write_byte((1<<0)|(1<<3)|(1<<5)); 
                
message_end(); 
            } 
            
client_cmd(i"spk sound/mw/emp_enemy.wav"); 
        } 
        else 
            
client_cmd(i"spk sound/mw/emp_friend.wav"); 
    } 
    
print_info(id"EMP""e"); 
    
emp_czasowe id
    
set_task(90.0,"del_emp"); 


public 
del_emp() 

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
get_user_team(emp_czasowe) != get_user_team(i)) 
        { 
            if(
is_user_alive(i)) 
            { 
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HideWeapon"), _i);  
                
write_byte(0); 
                
message_end(); 
            } 
        } 
    } 
    
emp_czasowe 0


public 
CurWeapon(id

    if(
get_user_team(id) != get_user_team(emp_czasowe) && emp_czasowe
    { 
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("HideWeapon"), _id);  
        
write_byte(0x29); //(1<<0)|(1<<3)|(1<<5) 
        
message_end();  
    } 


//nuke 
public CreateNuke(id

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
is_user_alive(i)) 
            
Display_Fade(i,(10<<12),(10<<12),(1<<16),2554242,171); 
        
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/nuke_enemy.wav"); 
        else 
            
client_cmd(i"spk sound/mw/nuke_friend.wav"); 
    } 
    
print_info(id"Nuke""e"); 
    
set_task(10.0,"shakehud"); 
    
set_task(13.5,"del_nuke"id); 
    
nuke[id] = false


public 
shakehud() 

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
is_user_alive(i)) 
        { 
            
Display_Fade(i,(3<<12),(3<<12),(1<<16),2558542,215); 
            
message_begin(MSG_ONEget_user_msgid("ScreenShake"), {0,0,0}, i); 
            
write_short(255<<12); 
            
write_short(4<<12); 
            
write_short(255<<12); 
            
message_end(); 
        } 
    } 


public 
del_nuke(id

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
is_user_alive(i)) 
        { 
            if(
get_user_team(id) != get_user_team(i)) 
            { 
                
cs_set_user_armor(i0CS_ARMOR_NONE); 
                
UTIL_Kill(idifloat(get_user_health(i)), DMG_BULLET
            } 
            else 
                
user_silentkill(i); 
        } 
    } 
    
nuke_player[id] = false
    
licznik_zabic[id] = 0


//nalot 
public CreateNalot(id

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/air_enemy.wav"); 
        else 
            
client_cmd(i"spk sound/mw/air_friend.wav"); 
    } 
    
print_info(id"Airstrike"); 
    
set_task(1.0"CreateBombs"id+997__"a"3); 
    
CreatePlane(id); 
    
nalot[id] = false


public 
CreateBombs(taskid
{     
    new 
id = (taskid-997); 
    
    new 
radlocation[3]; 
    
PobraneOrigin[0] += random_num(-300,300); 
    
PobraneOrigin[1] += random_num(-300,300); 
    
PobraneOrigin[2] += 50
    
    for(new 
i=0i<15i++)  
    { 
        
radlocation[0] = PobraneOrigin[0]+1*random_num(-150,150);  
        
radlocation[1] = PobraneOrigin[1]+1*random_num(-150,150);  
        
radlocation[2] = PobraneOrigin[2];  
        
        new 
Float:LocVec[3];  
        
IVecFVec(radlocationLocVec);  
        
create_ent(id"bomb""models/p_hegrenade.mdl"210LocVec); 
    } 
}   

public 
CreatePlane(id

    new 
Float:Origin[3], Float:Angle[3], Float:Velocity[3], ent
    
    
get_user_origin(idPobraneOrigin3); 
    
    
velocity_by_aim(id1000Velocity); 
    
entity_get_vector(idEV_VEC_originOrigin); 
    
entity_get_vector(idEV_VEC_v_angleAngle); 
    
    
Angle[0] = Velocity[2] = 0.0
    
Origin[2] += 200.0
    
    
create_ent(id"samolot""models/cod_plane.mdl"28Originent); 
    
    
entity_set_vector(entEV_VEC_velocityVelocity); 
    
entity_set_vector(entEV_VEC_anglesAngle); 
    
    
emit_sound(entCHAN_ITEM"mw/jet_fly1.wav"1.0ATTN_NORM0PITCH_NORM); 
    
set_task(4.5"del_plane"ent+5731); 


public 
del_plane(taskid
    
remove_entity(taskid-5731); 

public 
touchedrocket(entid

    if(!
is_valid_ent(ent)) 
        return 
PLUGIN_CONTINUE
    
    
bombs_explode(ent100.0150.0); 
    return 
PLUGIN_CONTINUE


//predator 
public CreatePredator(id

    new 
numplayers[32]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/predator_enemy.wav"); 
        else 
            
client_cmd(i"spk sound/mw/predator_friend.wav"); 
    } 
    
print_info(id"Predator Missle"); 
    
    new 
Float:Origin[3], Float:Angle[3], Float:Velocity[3], ent
    
    
velocity_by_aim(id700Velocity); 
    
entity_get_vector(idEV_VEC_originOrigin); 
    
entity_get_vector(idEV_VEC_v_angleAngle); 
    
    
Angle[0] *= -1.0
    
    
create_ent(id"predator""models/cod_predator.mdl"25Originent); 
    
    
entity_set_vector(entEV_VEC_velocityVelocity); 
    
entity_set_vector(entEV_VEC_anglesAngle); 
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY); 
    
write_byte(TE_BEAMFOLLOW); 
    
write_short(ent); 
    
write_short(cache_trail); 
    
write_byte(10); 
    
write_byte(5); 
    
write_byte(205); 
    
write_byte(237); 
    
write_byte(163); 
    
write_byte(200); 
    
message_end(); 
    
    
predator[id] = false
    
    
attach_view(ident); 
    
user_controll[id] = ent
}  

public 
touchedpredator(entid

    if(!
is_valid_ent(ent)) 
        return 
PLUGIN_CONTINUE
    
    new 
owner entity_get_edict(entEV_ENT_owner); 
    
bombs_explode(ent220.0400.0); 
    
attach_view(ownerowner); 
    
user_controll[owner] = 0
    return 
PLUGIN_CONTINUE


//sentry gun 
public CreateSentry(id)  

    if(!(
entity_get_int(idEV_INT_flags) & FL_ONGROUND))  
        return; 
    
    new 
entlist[3]; 
    if(
find_sphere_class(id"func_bomb_target"650.0entlist2)) 
    { 
        
client_print(idprint_chat"[KillStrike] Jestes zbyt blisko BS'A."); 
        return; 
    } 
    if(
find_sphere_class(id"func_buyzone"650.0entlist2)) 
    { 
        
client_print(idprint_chat"[KillStrike] Jestes zbyt blisko Respa."); 
        return; 
    } 
    new 
numplayers[32], Float:Origin[3]; 
    
get_players(playersnum"gh"); 
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(
get_user_team(id) != get_user_team(i)) 
            
client_cmd(i"spk sound/mw/sentrygun_enemy.wav"); 
        else 
            
client_cmd(i"spk sound/mw/sentrygun_friend.wav"); 
    } 
    
print_info(id"Sentry Gun"); 
    
    
entity_get_vector(idEV_VEC_originOrigin); 
    
Origin[2] += 45.0
    
    new 
health[12], ent create_entity("func_breakable"); 
    
get_cvar_string("ks_hpsentry",healthcharsmax(health)); 
    
    
DispatchKeyValue(ent"health"health); 
    
DispatchKeyValue(ent"material""6"); 
    
    
entity_set_string(entEV_SZ_classname"sentry"); 
    
entity_set_model(ent"models/sentrygun_mw2.mdl"); 
    
    
entity_set_float(entEV_FL_takedamageDAMAGE_YES); 
    
    
entity_set_size(entFloat:{-16.0, -16.00.0}, Float:{16.016.048.0}); 
    
    
entity_set_origin(entOrigin); 
    
entity_set_int(entEV_INT_solidSOLID_SLIDEBOX); 
    
entity_set_int(entEV_INT_movetypeMOVETYPE_TOSS); 
    
entity_set_int(entEV_INT_iuser2id); 
    
entity_set_vector(entEV_VEC_anglesFloat:{0.00.00.0}); 
    
entity_set_byte(entEV_BYTE_controller2127); 
    
    
entity_set_float(entEV_FL_nextthinkget_gametime()+1.0); 
    
    
sentrys[id] = false
    
emit_sound(entCHAN_ITEM"mw/plant.wav"1.0ATTN_NORM0PITCH_NORM); 


public 
SentryThink(ent

    if(!
is_valid_ent(ent))  
        return 
PLUGIN_CONTINUE
    
    new 
Float:SentryOrigin[3], Float:closestOrigin[3]; 
    
entity_get_vector(entEV_VEC_originSentryOrigin); 
    
    new 
id entity_get_int(entEV_INT_iuser2); 
    new 
target entity_get_edict(entEV_ENT_euser1); 
    new 
firemods entity_get_int(entEV_INT_iuser1); 
    
    if(
firemods
    {  
        if(
/*ExecuteHam(Ham_FVisible, target, ent)*/fm_is_ent_visible(targetent) && is_user_alive(target))  
        { 
            if(
UTIL_In_FOV(target,ent)) 
            { 
                goto 
fireoff
            } 
            
            new 
Float:TargetOrigin[3]; 
            
entity_get_vector(targetEV_VEC_originTargetOrigin); 
            
            
emit_sound(entCHAN_AUTO"mw/firemw.wav"1.0ATTN_NORM0PITCH_NORM); 
            
sentry_turntotarget(entSentryOriginTargetOrigin); 
            
            new 
Float:hitRatio random_float(0.01.0) - 0.2
            if(
hitRatio <= 0.0
            { 
                
UTIL_Kill(idtargetrandom_float(5.035.0), DMG_BULLET1); 
                
                
message_begin(MSG_BROADCASTSVC_TEMPENTITY); 
                
write_byte(TE_TRACER); 
                
write_coord(floatround(SentryOrigin[0])); 
                
write_coord(floatround(SentryOrigin[1])); 
                
write_coord(floatround(SentryOrigin[2])); 
                
write_coord(floatround(TargetOrigin[0])); 
                
write_coord(floatround(TargetOrigin[1])); 
                
write_coord(floatround(TargetOrigin[2])); 
                
message_end(); 
            } 
            
entity_set_float(entEV_FL_nextthinkget_gametime()+0.1); 
            return 
PLUGIN_CONTINUE
        } 
        else 
        { 
            
fireoff
            
firemods 0
            
entity_set_int(entEV_INT_iuser10); 
            
entity_set_edict(entEV_ENT_euser10); 
            
emit_sound(entCHAN_AUTO"mw/sentrygun_stops.wav"1.0ATTN_NORM0PITCH_NORM); 
            
            
entity_set_float(entEV_FL_nextthinkget_gametime()+1.0); 
            return 
PLUGIN_CONTINUE
        } 
    } 
    
    new 
closestTarget getClosestPlayer(ent
    if(
closestTarget
    { 
        
emit_sound(entCHAN_AUTO"mw/sentrygun_starts.wav"1.0ATTN_NORM0PITCH_NORM); 
        
entity_get_vector(closestTargetEV_VEC_originclosestOrigin); 
        
sentry_turntotarget(entSentryOriginclosestOrigin); 
        
        
entity_set_int(entEV_INT_iuser11); 
        
entity_set_edict(entEV_ENT_euser1closestTarget); 
        
        
entity_set_float(entEV_FL_nextthinkget_gametime()+1.0); 
        return 
PLUGIN_CONTINUE
    } 
    
    if(!
firemods
    { 
        new 
controler1 entity_get_byte(entEV_BYTE_controller1)+1
        if(
controler1 255
            
controler1 0
        
entity_set_byte(entEV_BYTE_controller1controler1); 
        
        new 
controler2 entity_get_byte(entEV_BYTE_controller2); 
        if(
controler2 127 || controler2 127
            
entity_set_byte(entEV_BYTE_controller2127); 
        
        
entity_set_float(entEV_FL_nextthinkget_gametime()+0.05); 
    } 
    return 
PLUGIN_CONTINUE 


public 
sentry_turntotarget(entFloat:sentryOrigin[3], Float:closestOrigin[3])  

    new 
newTripFloat:newAngle floatatan(((closestOrigin[1]-sentryOrigin[1])/(closestOrigin[0]-sentryOrigin[0])), radian) * 57.2957795
    
    if(
closestOrigin[0] < sentryOrigin[0]) 
        
newAngle += 180.0
    if(
newAngle 0.0
        
newAngle += 360.0
    
    
sentryOrigin[2] += 35.0 
    
if(closestOrigin[2] > sentryOrigin[2]) 
        
newTrip 0
    if(
closestOrigin[2] < sentryOrigin[2]) 
        
newTrip 255
    if(
closestOrigin[2] == sentryOrigin[2]) 
        
newTrip 127
    
    
entity_set_byte(entEV_BYTE_controller1,floatround(newAngle*0.70833)); 
    
entity_set_byte(entEV_BYTE_controller2newTrip); 
    
entity_set_byte(entEV_BYTE_controller3entity_get_byte(entEV_BYTE_controller3)+20>2550entity_get_byte(entEV_BYTE_controller3)+20); 


public 
TakeDamage(entidinflictorattackerFloat:damagedamagebits

    if(!
is_user_alive(attacker)) 
        return 
HAM_IGNORED
    
    new 
classname[32]; 
    
entity_get_string(entEV_SZ_classnameclassname31); 
    
    if(
equal(classname"sentry"))  
    { 
        new 
id entity_get_int(entEV_INT_iuser2); 
        if(
get_user_team(attacker) == get_user_team(id)) 
            return 
HAM_SUPERCEDE
        
        if(
damage >= entity_get_float(entEV_FL_health)) 
        { 
            new 
Float:Origin[3]; 
            
entity_get_vector(entEV_VEC_originOrigin);     
            new 
entlist[33]; 
            new 
numfound find_sphere_class(ent"player"190.0entlist32); 
            
            for(new 
i=0numfoundi++) 
            {         
                new 
pid entlist[i]; 
                
                if(!
is_user_alive(pid) || get_user_team(id) == get_user_team(pid)) 
                    continue; 
                
UTIL_Kill(idpid70.0, (1<<24)); 
            } 
            
client_cmd(id"spk sound/mw/sentrygun_gone.wav"); 
            
//Sprite_Blast(Origin); 
            //remove_entity(ent); //jak to dam to cresh serwer bo odrazu usuwa sentry guna :O 
            
set_task(1.0"del_sentry"ent); //jak tego nie dam to sentry jest jako byt i strzela 
        

    } 
    return 
HAM_IGNORED


public 
del_sentry(ent
    
remove_entity(ent); 

//wybuch 
bombs_explode(entFloat:zadajeFloat:promien) { 
    if(!
is_valid_ent(ent))  
        return; 
    
    new 
attacker entity_get_edict(entEV_ENT_owner); 
    
    new 
Float:entOrigin[3], Float:fDamageFloat:Origin[3]; 
    
entity_get_vector(entEV_VEC_originentOrigin); 
    
entOrigin[2] += 1.0
    
    new 
entlist[33]; 
    new 
numfound find_sphere_class(ent"player"promienentlist32);     
    for(new 
i=0numfoundi++) 
    {         
        new 
victim entlist[i];         
        if(!
is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim)) 
            continue; 
        
        
entity_get_vector(victimEV_VEC_originOrigin); 
        
fDamage zadaje floatmul(zadajefloatdiv(get_distance_f(OriginentOrigin), promien)); 
        
fDamage *= estimate_take_hurt(entOriginvictim0); 
        if(
fDamage>0.0
            
UTIL_Kill(attackervictimfDamageDMG_BULLET); 
    } 
    
Sprite_Blast(entOrigin); 
    
remove_entity(ent); 


public 
cmdKill() 
    return 
FMRES_SUPERCEDE

public 
message_DeathMsg() 

    new 
killer get_msg_arg_int(1); 
    if(
ZmienKilla[0] & (1<<killer)) 
    { 
        
set_msg_arg_string(4"grenade"); 
        return 
PLUGIN_CONTINUE
    } 
    if(
ZmienKilla[1] & (1<<killer)) 
    { 
        
set_msg_arg_string(4"m249"); 
        return 
PLUGIN_CONTINUE
    } 
    return 
PLUGIN_CONTINUE


stock create_ent(idszName[], szModel[], iSolidiMovetypeFloat:fOrigin[3], &ent=-1

    new 
ent1 create_entity("info_target"); 
    
entity_set_string(ent1EV_SZ_classnameszName); 
    
entity_set_model(ent1szModel); 
    
entity_set_int(ent1EV_INT_solidiSolid); 
    
entity_set_int(ent1EV_INT_movetypeiMovetype); 
    
entity_set_edict(ent1EV_ENT_ownerid); 
    
entity_set_origin(ent1fOrigin); 
    
    if(
ent != -1
        
ent ent1


stock Sprite_Blast(Float:iOrigin[3]) 

    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
    
write_byte(TE_EXPLOSION); 
    
write_coord(floatround(iOrigin[0])); 
    
write_coord(floatround(iOrigin[1]));  
    
write_coord(floatround(iOrigin[2])); 
    
write_short(sprite_blast); 
    
write_byte(32); 
    
write_byte(20);  
    
write_byte(0); 
    
message_end(); 


stock Float:estimate_take_hurt(Float:fPoint[3], entignored)  

    new 
Float:fFractionFloat:fOrigin[3], tr
    
entity_get_vector(entEV_VEC_originfOrigin); 
    
engfunc(EngFunc_TraceLinefPointfOriginDONT_IGNORE_MONSTERSignoredtr); 
    
get_tr2(trTR_flFractionfFraction); 
    if(
fFraction == 1.0 || get_tr2(trTR_pHit) == ent
        return 
1.0
    return 
0.6


stock bartime(idnumber

    
message_begin(MSG_ONEget_user_msgid("BarTime"), _id); 
    
write_short(number); 
    
message_end();     


stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha

    
message_begin(MSG_ONEget_user_msgid("ScreenFade"),{0,0,0},id); 
    
write_short(duration); 
    
write_short(holdtime); 
    
write_short(fadetype); 
    
write_byte(red); 
    
write_byte(green); 
    
write_byte(blue); 
    
write_byte(alpha); 
    
message_end(); 


stock find_drop_pack(id, const class[]) 

    new 
Float:origin[3], classname[32], ent
    
entity_get_vector(idEV_VEC_originorigin); 
    
    while((
ent find_ent_in_sphere(entorigin75.0)) != 0)  
    { 
        
entity_get_string(entEV_SZ_classnameclassname31); 
        if(
equali(classname, class)) 
            return 
ent
    } 
    return 
0


stock print_info(id, const nagroda[], const nazwa[] = "y"

    new 
nick[64]; 
    
get_user_name(idnick63); 
    
client_print(0print_chat"%s wezwan%s przez %s"nagrodanazwanick); 


stock UTIL_Kill(atakujacyobrywajacyFloat:damagedamagebitsile=0

    
ZmienKilla[ile] |= (1<<atakujacy); 
    
ExecuteHam(Ham_TakeDamageobrywajacyatakujacyatakujacydamagedamagebits); 
    
ZmienKilla[ile] &= ~(1<<atakujacy); 


stock getClosestPlayer(ent

    new 
iClosestPlayer 0Float:flClosestDist MAX_DISTFloat:flDistanseFloat:fOrigin[2][3]; 
    new 
numplayers[32]; 
    
get_players(playersnum"gh"
    for(new 
0numa++) 
    { 
        new 
players[a]; 
        if(!
is_user_connected(i) || !is_user_alive(i) || /*!ExecuteHam(Ham_FVisible, i, ent)*/!fm_is_ent_visible(ient) || get_user_team(i) == get_user_team(entity_get_int(entEV_INT_iuser2))) 
            continue; 
        
        if(
UTIL_In_FOV(ient)) 
            continue; 
        
        
entity_get_vector(iEV_VEC_originfOrigin[0]); 
        
entity_get_vector(entEV_VEC_originfOrigin[1]); 
        
        
flDistanse get_distance_f(fOrigin[0], fOrigin[1]); 
        
        if(
flDistanse <= flClosestDist
        { 
            
iClosestPlayer i
            
flClosestDist flDistanse
        } 
    } 
    return 
iClosestPlayer


stock bool:UTIL_In_FOV(id,ent

    if((
get_pdata_int(id510) & (1<<16)) && (Find_Angle(ident) > 0.0)) 
        return 
true
    return 
false


stock Float:Find_Angle(idtarget

    new 
Float:Origin[3], Float:TargetOrigin[3]; 
    
pev(id,pev_originOrigin); 
    
pev(target,pev_origin,TargetOrigin); 
    
    new 
Float:Angles[3], Float:vec2LOS[3]; 
    
pev(id,pev_anglesAngles); 
    
    
xs_vec_sub(TargetOriginOriginvec2LOS); 
    
vec2LOS[2] = 0.0
    
    new 
Float:veclength vector_length(vec2LOS); 
    if (
veclength <= 0.0
        
vec2LOS[0] = vec2LOS[1] = 0.0
    else 
    { 
        new 
Float:flLen 1.0 veclength
        
vec2LOS[0] = vec2LOS[0]*flLen
        
vec2LOS[1] = vec2LOS[1]*flLen
    } 
    
engfunc(EngFunc_MakeVectorsAngles); 
    
    new 
Float:v_forward[3]; 
    
get_global_vector(GL_v_forwardv_forward); 
    
    new 
Float:flDot vec2LOS[0]*v_forward[0]+vec2LOS[1]*v_forward[1]; 
    if(
flDot 0.5
        return 
flDot
    
    return 
0.0


stock bool:fm_is_ent_visible(indexentityignoremonsters 0) { 
    new 
Float:start[3], Float:dest[3]; 
    
pev(indexpev_originstart); 
    
pev(indexpev_view_ofsdest); 
    
xs_vec_add(startdeststart); 
    
    
pev(entitypev_origindest); 
    
engfunc(EngFunc_TraceLinestartdestignoremonstersindex0); 
    
    new 
Float:fraction
    
get_tr2(0TR_flFractionfraction); 
    if (
fraction == 1.0 || get_tr2(0TR_pHit) == entity
        return 
true
    
    return 
false



eNNkds 01-27-2017 15:46

Re: [REQ] To add choos team
 
Thanks! can you delete UAV and Counter uav and EMP?


All times are GMT -4. The time now is 13:36.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.