AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Furien Shop Plugin compile errors (https://forums.alliedmods.net/showthread.php?t=320424)

Shadows Adi 12-21-2019 12:58

Furien Shop Plugin compile errors
 
Hello,
I got a furien shop plugin:
PHP Code:

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

#define PLUGIN    "Furien Shop"
#define VERSION    "2.0"
#define AUTHOR "DaNNe."

#define VIP_LEVEL    ADMIN_LEVEL_H

// Pet
#define fm_precache_model(%1)           engfunc(EngFunc_PrecacheModel,%1)
#define fm_precache_sound(%1)           engfunc(EngFunc_PrecacheSound,%1)
#define fm_remove_entity(%1)            engfunc(EngFunc_RemoveEntity, %1)
//#define fm_drop_to_floor(%1)            engfunc(EngFunc_DropToFloor,%1)
#define fm_find_ent_by_class(%1,%2)     engfunc(EngFunc_FindEntityByString, %1, "classname", %2)
#define fm_set_user_gravity(%1,%2)      set_pev(%1,pev_gravity,%2)

#define PET_FLAG                        pev_flTimeStepSound
#define PET_KILLED                      389

static const pet_model[] = "models/stukabat.mdl"
static const pet_sounds[][] = { "bullchicken/bc_die1.wav""bullchicken/bc_die2.wav""bullchicken/bc_die3.wav""bullchicken/bc_idle1.wav""bullchicken/bc_pain3.wav" }
static const 
pet_idle 13
static const pet_run 13
static const pet_die 5
static const Float:pet_idle_speed 0.3
static const Float:pet_run_speed 10.0
static const Float:player_gravity 0.65

// AT4 
#define weapon_at4cs     "weapon_m249"
#define CSW_AT4CS         CSW_M249
#define TASK_CHECKRELOAD 111112
#define TASK_RELOAD 111113

new Float:g_lastfire[33], Float:g_lastaim[33], g_aiming[33],
g_smoke_idg_spr_trailg_spr_expis_reloading[33],
cvar_radiuscvar_maxdamage

new const AT4Model_V[] = "models/FurienShop/v_at4ex.mdl";
new const 
AT4Model_P[] = "models/FurienShop/p_at4ex.mdl";
new const 
AT4Model_W[] = "models/FurienShop/w_at4ex.mdl";
new const 
AT4Rocket[] = "models/FurienShop/s_rocket.mdl";

new const 
AT4Sound[][] = {
    
"weapons/at4-1.wav",
    
"weapons/at4_clipin1.wav",
    
"weapons/at4_clipin2.wav",
    
"weapons/at4_clipin3.wav",
    
"weapons/at4_draw.wav" 
};

// Super Knifes
new SuperKnifeX2_Model[] = "models/FurienShop/v_superknife_x2.mdl";
new 
SuperKnifeX3_Model[] = "models/FurienShop/v_superknife_x3.mdl";
new 
SuperKnifeVIP_Model[] = "models/FurienShop/v_superknife_vip.mdl";

// Natives
native fcs_get_user_credits(id)
native fcs_set_user_credits(idamount)
    
//Furien Detector
new DetectorSprite;
new 
PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
new 
SECONDARY_WEAPONS_BITSUM = (1<<CSW_GLOCK18)|(1<<CSW_USP)|(1<<CSW_P228)|(1<<CSW_DEAGLE)|(1<<CSW_FIVESEVEN)|(1<<CSW_ELITE);

//Bools
new bool:HaveSuperKnifeX2[33], bool:HaveSuperKnifeX3[33], bool:HaveSuperKnifeVip[33], bool:HaveDetector[33], bool:HaveNoFlash[33], bool:HaveAT4[33

//PET
new ItemPET[33], HavePET[33], PETAtSpawn[33]
new 
Float:item_leaptime[33]
new 
bool:g_has_speed[33]

new 
Prefix[] = "[FurienShop]";
new 
Menu;

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR
    
    
register_clcmd("say shop""CmdShop");
    
register_clcmd("say_team shop""CmdShop");
    
register_clcmd("say /shop""CmdShop");
    
register_clcmd("say_team /shop""CmdShop");
    
    
RegisterHam(Ham_Spawn"player""HAM_Spawn_Post");
    
RegisterHam(Ham_TakeDamage"player""HAM_TakeDamage");
    
    
register_event("CurWeapon""EVENT_CurWeapon""be""1=1");
    
register_event("DeathMsg""EVENT_Death""a");
    
register_event("HLTV""HLTV_EVENT_NewRound""a""1=0""2=0");
    
register_message(get_user_msgid("ScreenFade"), "MSG_ScreenFade")
    
    
register_forward(FM_PlayerPreThink"FWD_PreThink");
    
register_forward(FM_Think"FWD_Think");
    
    
register_forward(FM_UpdateClientData"AT4_UpdateClientData_POST"1)
    
register_forward(FM_CmdStart"AT4_CMDStart")
    
register_forward(FM_SetModel"AT4_WorldModel")
    
    
register_think("at4ex_rocket""AT4_Think")
    
register_touch("at4ex_rocket""*""AT4_Touch")
    
    
RegisterHam(Ham_Weapon_Reloadweapon_at4cs"AT4_Reload")
    
RegisterHam(Ham_Item_AddToPlayerweapon_at4cs"AT4_AddToPlayer"1)
    
    
cvar_radius register_cvar("zp_at4cs_radius""300.0")
    
cvar_maxdamage register_cvar("zp_at4cs_maxdamage""70.0")
    
    
register_clcmd("weapon_at4cs""hook_weapon")    
}

public 
plugin_precache() {
    
precache_model(SuperKnifeX2_Model);
    
precache_model(SuperKnifeX3_Model);
    
precache_model(SuperKnifeVIP_Model);
    
precache_model(AT4Model_V)
    
precache_model(AT4Model_P)
    
precache_model(AT4Model_W)
    
precache_model(AT4Rocket)
    
fm_precache_model(pet_model)
    
    
engfunc(EngFunc_PrecacheGeneric"sprites/FurienShop/weapon_at4cs.txt")
    
engfunc(EngFunc_PrecacheGeneric"sprites/FurienShop/at4cs.spr")    
    
    
g_smoke_id precache_model("sprites/FurienShop/rainsplash.spr")
    
g_spr_trail precache_model("sprites/FurienShop/xbeam3.spr")
    
g_spr_exp precache_model("sprites/FurienShop/zerogxplode.spr")
    
DetectorSprite precache_model("sprites/FurienShop/Detector.spr")
    
    new 
i;
    for(
0sizeof pet_soundsi++)
        
fm_precache_sound(pet_sounds)
        
    for(
0sizeof(AT4Sound); i++)
        
engfunc(EngFunc_PrecacheSoundAT4Sound)
    
    
}

public 
plugin_natives() {
    
register_native("get_user_at4""get_user_at4"1)
    
register_native("set_user_at4""set_user_at4"1)
}

public 
HAM_Spawn_Post(id) {
    if(
is_user_connected(id)) {
        
HaveNoFlash[id] = false;
        
HaveDetector[id] = false;
        
HaveAT4[id] = false;
        
HaveSuperKnifeVip[id] = false;
        
set_user_at4(idfalse)
        
drop_primary_weapons(id)
        if(
get_user_team(id) == 2) {
            
HaveSuperKnifeX2[id] = false;
            
HaveSuperKnifeX3[id] = false;
        }
        if(
get_user_team(id) != 2) {
            
kill_pet(id)
            
HavePET[id] = 0        
        
}
        if(
HavePET[id]) {
            
fm_set_user_gravity(idplayer_gravity)
            
fm_set_user_health(idget_user_health(id) + 250)
            
fm_set_user_armor(idget_user_armor(id) + 350)
            
g_has_speed[id] = true
        
}
        else if(
PETAtSpawn[id]) {
            
create_pet(id)
            
PETAtSpawn[id] = 0
            g_has_speed
[id] = true
        
}
    }
}

public 
HAM_TakeDamage(VictimInflictorAttackerFloat:Damage) {
    if(
is_user_connected(Attacker)) {
        if(
get_user_weapon(Attacker) == CSW_KNIFE) {
            if(
HaveSuperKnifeX2[Attacker])
                
SetHamParamFloat(4Damage 2.0)
            if(
HaveSuperKnifeX3[Attacker])
                
SetHamParamFloat(4Damage 3.0)
            if(
HaveSuperKnifeVip[Attacker])
                
SetHamParamFloat(4Damage 3.0)
        }
    }
}

public 
EVENT_CurWeapon(id) {
    if(
get_user_weapon(id) == CSW_KNIFE) {
        if(
HaveSuperKnifeX2[id])
            
set_pev(idpev_viewmodel2SuperKnifeX2_Model)
        if(
HaveSuperKnifeX3[id])
            
set_pev(idpev_viewmodel2SuperKnifeX3_Model)
        if(
HaveSuperKnifeVip[id])
            
set_pev(idpev_viewmodel2SuperKnifeVIP_Model)    
    }
    if(
get_user_weapon(id) == CSW_AT4CS) {
        if(
HaveAT4[id]) {
            
set_pev(idpev_viewmodel2AT4Model_V)
            
set_pev(idpev_weaponmodel2AT4Model_P)
        }
    }
}

public 
HLTV_EVENT_NewRound() {
    new 
entid = -1
    
while((entid fm_find_ent_by_class(entid"zp_bat"))) {
        if(
pev(entid,PET_FLAG) == PET_KILLED)
            
fm_remove_entity(entid)             
    }
    
remove_entity_name("at4ex_rocket")    
}

public 
EVENT_Death() {
    new 
Victim read_data(2)
    
HaveSuperKnifeX2[Victim] = false;
    
HaveSuperKnifeX3[Victim] = false;
    
    if(
HavePET[Victim]) {
        
kill_pet(Victim)
        
HavePET[Victim] = 0
    
}
    
    if(
get_user_team(Victim) == 1)
        
HavePET[Victim] = 0
    
if(g_has_speed[Victim])
        
g_has_speed[Victim] = false
}

public 
MSG_ScreenFade(msgiddestid) {
    if(
HaveNoFlash[id]) {
        static 
data[4]
        
data[0] = get_msg_arg_int(4)
        
data[1] = get_msg_arg_int(5)
        
data[2] = get_msg_arg_int(6)
        
data[3] = get_msg_arg_int(7)
        
        if(
data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199)
            return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_CONTINUE
}

public 
create_pet(id) {
    if(!
is_user_alive(id)) {
        
ColorChat(id"!t%s!g PET-ul iti va aparea runda urmatoare !"Prefix)
        
PETAtSpawn[id] = 1
        
return PLUGIN_HANDLED
    
}      
    else {
        
ItemPET[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString,"info_target"))
        
set_pev(ItemPET[id],pev_classname,"zp_bat")
        
        
engfunc(EngFunc_SetModel,ItemPET[id],pet_model)
        
        new 
Float:origin[3]
        
pev(id,pev_origin,origin)                      
        
        
set_pev(ItemPET[id],pev_origin,origin)
        
set_pev(ItemPET[id],pev_solid,SOLID_TRIGGER)
        
set_pev(ItemPET[id],pev_movetype,MOVETYPE_FLY)
        
set_pev(ItemPET[id],pev_owner,33)
        
set_pev(ItemPET[id],pev_nextthink,1.0)
        
set_pev(ItemPET[id],pev_sequence,0)
        
set_pev(ItemPET[id],pev_gaitsequence,0)
        
set_pev(ItemPET[id],pev_framerate,1.0)
        
        
set_pev(ItemPET[id], pev_renderfxkRenderFxGlowShell)
        
set_pev(ItemPET[id], pev_rendercolorFloat:{0.00.0200.0})
        
        
fm_set_user_gravity(id,player_gravity)
        
        
fm_set_user_health(idget_user_health(id) + 250)
        
fm_set_user_armor(idget_user_armor(id) + 350)
        
        
engfunc(EngFunc_EmitSound,ItemPET[id],CHAN_AUTO,pet_sounds[random_num(0,sizeof pet_sounds 1)],1.01.20PITCH_NORM)              
        
        
HavePET[id] = 1
        g_has_speed
[id] = true
    
}
    return 
PLUGIN_HANDLED
}

public 
kill_pet(id) {
    if(
pev_valid(ItemPET[id])) {
        
set_pev(ItemPET[id],pev_sequence,pet_die)
        
set_pev(ItemPET[id],pev_gaitsequence,pet_die)
        
set_pev(ItemPET[id],pev_framerate,1.0)
        
        
set_pev(ItemPET[id],PET_FLAG,PET_KILLED)
        
        
fm_drop_to_floor(ItemPET[id])
        
        
HavePET[id] = 0
        g_has_speed
[id] = false
    
}      
    
ItemPET[id] = 0
}

public 
FWD_PreThink(id) {
    if(
is_user_connected(id) && is_user_alive(id)) {
        if(
get_user_team(id) == && HaveDetector[id]) {
            static 
TargetBodyWeapon;
            
            
get_user_aiming(idTargetBody);
            
Weapon get_user_weapon(id);
            
            if((
1<<Weapon) & PRIMARY_WEAPONS_BITSUM || (1<<Weapon) & SECONDARY_WEAPONS_BITSUM) {
                static 
Origin[3];
                
get_user_origin(idOrigin3);
                
                
message_begin(MSG_BROADCASTSVC_TEMPENTITY);
                
write_byte(TE_BEAMENTPOINT);
                
write_short(id 0x1000);
                
write_coord(Origin[0]);
                
write_coord(Origin[1]);
                
write_coord(Origin[2]);
                
write_short(DetectorSprite); 
                
write_byte(0);
                
write_byte(10);
                
write_byte(1);
                
write_byte(5);
                
write_byte(0);
                if(
is_user_alive(Target) && get_user_team(Target) == 1) {
                    
write_byte(150);
                    
write_byte(0);
                    
write_byte(0);
                }
                else {
                    
write_byte(0);
                    
write_byte(150);
                    
write_byte(0);
                }
                
write_byte(250);
                
write_byte(25);
                
message_end();
            }        
        }
        if(
allowed_leap(id)) {
            static 
Float:velocity[3]
            
velocity_by_aim(id500velocity)
            
velocity[2] = 300.0
            set_pev
(idpev_velocityvelocity)  
            
item_leaptime[id] = get_gametime()
        }
    }
}

public 
FWD_Think(ent) {
    for(new 
0<= get_maxplayers(); i++) {
        if(
ent == ItemPET[] {
            static 
Float:origin[3]
            static 
Float:origin2[3]
            static 
Float:velocity[3]
            
pev(ent,pev_origin,origin2)
            
get_offset_origin_body(i,Float:{50.0,0.0,0.0},origin)
            
            if(
get_distance_f(origin,origin2) > 300.0)
                
set_pev(ent,pev_origin,origin)
            
            else if(
get_distance_f(origin,origin2) > 80.0) {
                
get_speed_vector(origin2,origin,250.0,velocity)
                
set_pev(ent,pev_velocity,velocity)
                if(
pev(ent,pev_sequence) != pet_run || pev(ent,pev_framerate) != pet_run_speed) {
                    
set_pev(ent,pev_sequence,pet_run)
                    
set_pev(ent,pev_gaitsequence,pet_run)
                    
set_pev(ent,pev_framerate,pet_run_speed)
                }
            }
            
            else if(
get_distance_f(origin,origin2) < 75.0) {
                if(
pev(ent,pev_sequence) != pet_idle || pev(ent,pev_framerate) != pet_idle_speed) {
                    
set_pev(ent,pev_sequence,pet_idle)
                    
set_pev(ent,pev_gaitsequence,pet_idle)
                    
set_pev(ent,pev_framerate,pet_idle_speed)
                }
                
set_pev(ent,pev_velocity,Float:{0.0,0.0,0.0})
            }
            
pev(i,pev_origin,origin)
            
origin[2] = origin2[2]
            
entity_set_aim(ent,origin)                     
            
set_pev(ent,pev_nextthink,1.0)
            break
        }
    }
}

public 
allowed_leap(id) {      
    if(!
HavePET[id])
        return 
false
    
    
if(!(pev(idpev_flags) & FL_ONGROUND) || fm_get_speed(id) < 80)
        return 
false
    
    
static buttons
    buttons 
pev(idpev_button)
    
    if(!
is_user_bot(id) && (!(buttons IN_JUMP) || !(buttons IN_DUCK)))
        return 
false
    
    
if(get_gametime() - item_leaptime[id] < 3)
        return 
false
    
    
return true
}

public 
is_a_player(ent) {
    if(
ent && ent 33)
        return 
true
    
    
return false
}

public 
remove_pet(ent) {
    if(
pev_valid(ent))
        
fm_remove_entity(ent)
}

public 
CmdShop(id) {
    if(!
is_user_alive(id)) {
        
ColorChat(id"!t%s!g Nu poti folosi shopul cat timp esti mort !"Prefix)
        return;
    }
    switch(
get_user_team(id)) {
        case 
1FurienShop(id)
            case 
2AntiFurienShop(id)
        }
}

public 
FurienShop(id) {
    if(
is_user_alive(id) && get_user_team(id) == 1) {
        new 
Title[128]
        
formatex(Titlesizeof(Title)-1"\rCredite: \y%d\r^n\rFurien Shop:"fcs_get_user_credits(id))
        
Menu menu_create(Title"FurienHandler")
        
        if(
HaveSuperKnifeX2[id])
            
menu_additem(Menu"\dSuper Knife [X2]\w - \rAi deja""1"0)
        else {
            if(
fcs_get_user_credits(id) >= 10)
                
menu_additem(Menu"\wSuper Knife\r [X2]\w - \r10 Credite""1"0)
            else 
                
menu_additem(Menu"\dSuper Knife [X2]\w - \r10 Credite""1"0)
        }
        
        if(
HaveSuperKnifeX3[id])
            
menu_additem(Menu"\dSuper Knife [X3]\w - \rAi deja""2"0)
        else {
            if(
fcs_get_user_credits(id) >= 20)
                
menu_additem(Menu"\wSuper Knife\r [X3]\w - \r20 Credite""2"0)
            else 
                
menu_additem(Menu"\dSuper Knife [X3]\w - \r20 Credite""2"0)
        }
        
        if(
get_user_health(id) >= 250
            
menu_additem(Menu"\dHealth [+50]\w -\r Ai viata maxima""3"0)
        else {
            if(
fcs_get_user_credits(id) >= 15)
                
menu_additem(Menu"\wHealth \r[+50]\w - \r15 Credite""3"0)
            else 
                
menu_additem(Menu"\dHealth [+50]\w - \r15 Credite""3"0)
        }
        
        if(
get_user_armor(id) >= 250
            
menu_additem(Menu"\dArmor [+50]\w -\r Ai armura maxima""4"0)
        else {
            if(
fcs_get_user_credits(id) >= 10)
                
menu_additem(Menu"\wArmor \r[+50]\w - \r10 Credite""4"0)
            else 
                
menu_additem(Menu"\dArmor [+50]\w - \r10 Credite""4"0)
        }            
        
        if(
HaveNoFlash[id])
            
menu_additem(Menu"\dNo Flash\w - \rAi deja""5"0)
        else {
            if(
fcs_get_user_credits(id) >= 5)
                
menu_additem(Menu"\wNo Flash - \r5 Credite""5"0)
            else 
                
menu_additem(Menu"\dNo Flash\w - \r5 Credite""5"0)
        }
        
        if(
user_has_weapon(idCSW_HEGRENADE))
            
menu_additem(Menu"\dHe grenade\w - \rAi deja""6"0)
        else {
            if(
fcs_get_user_credits(id) >= 25)
                
menu_additem(Menu"\wHe grenade - \r25 Credite""6"0)
            else 
                
menu_additem(Menu"\dHe grenade\w - \r25 Credite""6"0)
        }
        
        if(
user_has_weapon(idCSW_SMOKEGRENADE))
            
menu_additem(Menu"\dFrost nade\w - \rAi deja""7"0)
        else {
            if(
fcs_get_user_credits(id) >= 30)
                
menu_additem(Menu"\wFrost nade - \r30 Credite""7"0)
            else 
                
menu_additem(Menu"\dFrost nade\w - \r30 Credite""7"0)
        }
        
        if(
get_user_flags(id) & VIP_LEVEL) {
            if(
HaveSuperKnifeVip[id])
                
menu_additem(Menu"\dVip Pack\w - \rAi deja""8"0)
            else {
                if(
fcs_get_user_credits(id) >= 100)
                    
menu_additem(Menu"\wVip Pack - \r100 Credite""8"0)
                else 
                    
menu_additem(Menu"\dVip Pack\w - \r100 Credite""8"0)    
            }
        }
        else 
            
menu_additem(Menu"\dVip Pack\w - \rDoar VIP""8"0)
        
        
menu_setprop(MenuMPROP_EXITMEXIT_ALL);
        
menu_display(idMenu0);
    }
}

public 
FurienHandler(idmenuitem) {
    if(
item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 1) {
        
menu_destroy(menu);
        
        return 
PLUGIN_HANDLED;
    }
    new 
Data[6], Name[64];
    new 
AccessCallBack;
    
menu_item_getinfo(menuitemAccessData,5Name63CallBack);
    new 
Key str_to_num(Data);
    switch(
Key) {
        case 
1: {
            if(
HaveSuperKnifeX2[id]) {
                
ColorChat(id"!t%s!g Ai deja!t SuperKnife [X2]!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 10 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t SuperKnife [X2]!g !"Prefix);
                    return 
1;
                }
                else {
                    
HaveSuperKnifeX2[id] = true;
                    
HaveSuperKnifeX3[id] = false;
                    
HaveSuperKnifeVip[id] = false;
                    
EVENT_CurWeapon(id);
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t SuperKnife [X2]!g !"Prefix);
                }
            }
        }
        case 
2: {
            if(
HaveSuperKnifeX3[id]) {
                
ColorChat(id"!t%s!g Ai deja!t SuperKnife [X3]!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 20 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t SuperKnife [X3]!g !"Prefix);
                    return 
1;
                }
                else {
                    
HaveSuperKnifeX3[id] = true;
                    
EVENT_CurWeapon(id);
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t SuperKnife [X3]!g !"Prefix);
                }
            }
        }
        case 
3: {
            if(
get_user_health(id) >= 250) {
                
ColorChat(id"!t%s!g Ai deja!t 250 health!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 15 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t +50 Health!g !"Prefix);
                    return 
1;
                }
                else {
                    if(
get_user_health(id) + 50 250)
                        
fm_set_user_health(id250)
                    else {
                        
fm_set_user_health(idget_user_health(id) + 50
                        
fcs_set_user_credits(idCredits)
                        
ColorChat(id"!t%s!g Ai cumparat!t +50 Health!g !"Prefix)
                    }
                }
            }
        }
        case 
4: {
            if(
get_user_armor(id) >= 250) {
                
ColorChat(id"!t%s!g Ai deja!t 250 armor!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 10
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t +50 Armor!g !"Prefix);
                    return 
1;
                }
                else {
                    if(
get_user_armor(id) + 50 250)
                        
fm_set_user_armor(id250);
                    else {
                        
fm_set_user_armor(idget_user_armor(id) + 50) ;
                        
fcs_set_user_credits(idCredits);
                        
ColorChat(id"!t%s!g Ai cumparat!t +50 Armor!g !"Prefix);
                    }
                }
            }
        }
        case 
5: {
            if(
HaveNoFlash[id]) {
                
ColorChat(id"!t%s!g Ai deja!t No Flash!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t No Flash!g !"Prefix);
                    return 
1;
                }
                else {
                    
HaveNoFlash[id] = true;
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t No Flash!g !"Prefix);
                }
            }
        }
        case 
6: {
            if(
user_has_weapon(idCSW_HEGRENADE)) {
                
ColorChat(id"!t%s!g Ai deja!t HE Grenade!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 25 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t HE Grenade!g !"Prefix);
                    return 
1;
                }
                else {
                    
fm_give_item(id"weapon_hegrenade");
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t HE Grenade!g !"Prefix);
                }
            }
        }
        case 
7: {
            if(
user_has_weapon(idCSW_SMOKEGRENADE)) {
                
ColorChat(id"!t%s!g Ai deja!t Frost Nade!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 30 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t Frost Nade!g !"Prefix);
                    return 
1;
                }
                else {
                    
fm_give_item(id"weapon_smokegrenade");
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t Frost Nade!g !"Prefix);
                }
            }
        }
        case 
8: {
            if(
get_user_flags(id) & VIP_LEVEL) {
                if(
HaveSuperKnifeVip[id]) {
                    
ColorChat(id"!t%s!g Ai deja!t VIP Pack!g !"Prefix);
                    return 
1;
                }
                else {
                    new 
Credits fcs_get_user_credits(id) - 100
                    
if(Credits 0) {
                        
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t VIP Pac!g !"Prefix);
                        return 
1;
                    }    
                    else {
                        
HaveSuperKnifeVip[id] = true;
                        
HaveSuperKnifeX2[id] = false;
                        
HaveSuperKnifeX3[id] = false;
                        
EVENT_CurWeapon(id);
                        
fm_set_user_armor(id300);
                        
fm_set_user_health(id300);
                        
fcs_set_user_credits(idCredits)
                    }
                }
            }
            else {
                
ColorChat(id"!t%s!g Acest item poate fi cumparat doar de catre!t membrii VIP!g !"Prefix);
                return 
1;
            }
        }
    }
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
AntiFurienShop(id) {
    if(
is_user_alive(id) && get_user_team(id) == 2) {
        new 
Title[128]
        
formatex(Titlesizeof(Title)-1"\rCredite: \y%d\r^n\rAnti-Furien Shop:"fcs_get_user_credits(id))
        
Menu menu_create(Title"AntiFurienHandler")
        
        if(
HaveDetector[id])
            
menu_additem(Menu"\dFurien Detector\w - \rAi deja""1"0)
        else {
            if(
fcs_get_user_credits(id) >= 50
                
menu_additem(Menu"\wFurien Detector - \r50 Credite""1"0)
            else 
                
menu_additem(Menu"\dFurien Detector\w - \r50 Credite""1"0)
        }
        
        if(
cs_get_user_defuse(id))
            
menu_additem(Menu"\dDefuse Kit\w - \rAi deja""2"0)
        else {
            if(
fcs_get_user_credits(id) >= 2)
                
menu_additem(Menu"\wDefuse Kit - \r2 Credite""2"0)
            else 
                
menu_additem(Menu"\dDefuse Kit\w - \r2 Credite""2")
        }
        
        if(
get_user_health(id) >= 250
            
menu_additem(Menu"\dHealth [+50]\w -\r Ai viata maxima""3"0)
        else {
            if(
fcs_get_user_credits(id) >= 15)
                
menu_additem(Menu"\wHealth \r[+50]\w - \r15 Credite""3"0)
            else 
                
menu_additem(Menu"\dHealth [+50]\w - \r15 Credite""3"0)
        }
        
        if(
get_user_armor(id) >= 250
            
menu_additem(Menu"\dArmor [+50]\w -\r Ai armura maxima""4"0)
        else {
            if(
fcs_get_user_credits(id) >= 10)
                
menu_additem(Menu"\wArmor \r[+50]\w - \r10 Credite""4"0)
            else 
                
menu_additem(Menu"\dArmor [+50]\w - \r10 Credite""4"0)
        }            
        
        if(
HaveNoFlash[id])
            
menu_additem(Menu"\dNo Flash\w - \rAi deja""5"0)
        else {
            if(
fcs_get_user_credits(id) >= 5)
                
menu_additem(Menu"\wNo Flash - \r5 Credite""5"0)
            else 
                
menu_additem(Menu"\dNo Flash\w - \r5 Credite""5"0)
        }        
        
        if(
user_has_weapon(idCSW_SMOKEGRENADE))
            
menu_additem(Menu"\dFrost nade\w - \rAi deja""6"0)
        else {
            if(
fcs_get_user_credits(id) >= 30)
                
menu_additem(Menu"\wFrost nade - \r30 Credite""6"0)
            else 
                
menu_additem(Menu"\dFrost nade\w - \r30 Credite""6"0)
        }
        
        if(
HavePET[id])
            
menu_additem(Menu"\dPET\w - \rAi deja""7"0)
        else {
            if(
fcs_get_user_credits(id) >= 30
                
menu_additem(Menu"\wPET - \r30 Credite""7"0)
            else 
                
menu_additem(Menu"\dPET\w - \r30 Credite""7"0)
        }
        
        if(
get_user_flags(id) & VIP_LEVEL) {
            if(
HaveAT4[id])
                
menu_additem(Menu"\dBazooka\w - \rAi deja""8"0)
            else {
                if(
fcs_get_user_credits(id) >= 100)
                    
menu_additem(Menu"\wBazooka - \r100 Credite""8"0)
                else 
                    
menu_additem(Menu"\dBazooka\w - \r100 Credite""8"0)    
            }
        }
        else 
            
menu_additem(Menu"\dBazooka\w - \rDoar VIP""8"0)        
        
        
menu_setprop(MenuMPROP_EXITMEXIT_ALL);
        
menu_display(idMenu0);
    }
}

public 
AntiFurienHandler(idmenuitem) {
    if(
item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
        
menu_destroy(menu);
        
        return 
PLUGIN_HANDLED;
    }
    new 
Data[6], Name[64];
    new 
AccessCallBack;
    
menu_item_getinfo(menuitemAccessData,5Name63CallBack);
    new 
Key str_to_num(Data);
    switch(
Key) {
        case 
1: {
            if(
HaveDetector[id]) {
                
ColorChat(id"!t%s!g Ai deja!t Furien Detector!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 50
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente !tcredite!g pentru cumpara!t Furien Detector!g !"Prefix);
                    return 
1;
                }
                else {
                    
HaveDetector[id] = true;
                    
fcs_set_user_credits(idCredits)
                    
ColorChat(id"!t%s!g Ai cumparat!t Furien Detector!g !"Prefix);
                }
            }
        }
        case 
2: {
            if(
cs_get_user_defuse(id)) {
                
ColorChat(id"!t%s!g Ai deja!t Defuse KIT!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t Defuse KIT!g !"Prefix);
                    return 
1;
                }
                else {
                    
cs_set_user_defuse(id1)
                    
fcs_set_user_credits(idCredits)
                    
ColorChat(id"!t%s!g Ai cumparat!t Defuse KIT!g !"Prefix);
                }
            }
        }
        case 
3: {
            if(
get_user_health(id) >= 250) {
                
ColorChat(id"!t%s!g Ai deja!t 250 health!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 15 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t +50 Health!g !"Prefix);
                    return 
1;
                }
                else {
                    if(
get_user_health(id) + 50 250)
                        
fm_set_user_health(id250)
                    else {
                        
fm_set_user_health(idget_user_health(id) + 50
                        
fcs_set_user_credits(idCredits)
                        
ColorChat(id"!t%s!g Ai cumparat!t +50 Health!g !"Prefix)
                    }
                }
            }
        }
        case 
4: {
            if(
get_user_armor(id) >= 250) {
                
ColorChat(id"!t%s!g Ai deja!t 250 armor!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 10
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t +50 Armor!g !"Prefix);
                    return 
1;
                }
                else {
                    if(
get_user_armor(id) + 50 250)
                        
fm_set_user_armor(id250);
                    else {
                        
fm_set_user_armor(idget_user_armor(id) + 50) ;
                        
fcs_set_user_credits(idCredits);
                        
ColorChat(id"!t%s!g Ai cumparat!t +50 Armor!g !"Prefix);
                    }
                }
            } 
        }
        case 
5: {
            if(
HaveNoFlash[id]) {
                
ColorChat(id"!t%s!g Ai deja!t No Flash!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t No Flash!g !"Prefix);
                    return 
1;
                }
                else {
                    
HaveNoFlash[id] = true;
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t No Flash!g !"Prefix);
                }
            }
        }    
        case 
6: {
            if(
user_has_weapon(idCSW_SMOKEGRENADE)) {
                
ColorChat(id"!t%s!g Ai deja!t Frost Nade!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 30 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t Frost Nade!g !"Prefix);
                    return 
1;
                }
                else {
                    
fm_give_item(id"weapon_smokegrenade");
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t Frost Nade!g !"Prefix);
                }
            }
        }
        case 
7: {
            if(
HavePET[id]) {
                
ColorChat(id"!t%s!g Ai deja un!t PET!g !"Prefix);
                return 
1;
            }
            else {
                new 
Credits fcs_get_user_credits(id) - 30 
                
if(Credits 0) {
                    
ColorChat(id"!t%s!g Nu ai suficiente!t credite!g pentru a cumpara!t PET"Prefix);
                    return 
1;
                }
                else {
                    
create_pet(id)
                    
fcs_set_user_credits(idCredits);
                    
ColorChat(id"!t%s!g Ai cumparat!t PET!g !"Prefix);
                }
            }
        }
        case 
8: {
            if(
get_user_flags(id) & VIP_LEVEL) {
                if(
HaveAT4[id]) {
                    
ColorChat(id"!t%s!g Ai deja!t Bazooka!g !"Prefix);
                    return 
1;
                }
                else {
                    new 
Credits fcs_get_user_credits(id) - 100
                    
if(Credits 0) {
                        
ColorChat(id"!t%s!g Ai deja!t Bazooka!g !"Prefix)
                        return 
1;
                    }
                    else {
                        
set_user_at4(idtrue)
                        
fcs_set_user_credits(idCredits);
                        
ColorChat(id"!t%s!g Ai cumparat!t Bazooka!g !"Prefix);
                    }
                }
            }
            else {
                
ColorChat(id"!t%s!g Acest item poate fi cumparat doar de catre!t membrii VIP!g !"Prefix);
                return 
1;
            }
        }
    }
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
AT4_UpdateClientData_POST(idsendweaponscd_handle) {
    if(
is_user_connected(id) && is_user_alive(id)) {
        if(
get_user_weapon(id) == CSW_AT4CS && HaveAT4[id])
            
set_cd(cd_handleCD_flNextAttackhalflife_time() + 0.001)  
    }
}

public 
AT4_AddToPlayer(entid) {
    if(!
is_valid_ent(ent) || !is_user_alive(id))
        return 
HAM_IGNORED
        
    
if(entity_get_int(entEV_INT_impulse) == 61296) {
        
HaveAT4[id] = true
        entity_set_int
(idEV_INT_impulse0)
        
        return 
HAM_HANDLED
    
}        

    if(
HaveAT4[id]) {
        
message_begin(MSG_ONEget_user_msgid("WeaponList"), _id)
        
write_string("weapon_at4cs");    // WeaponName
        
write_byte(3)                  // PrimaryAmmoID
        
write_byte(1)                  // PrimaryAmmoMaxAmount
        
write_byte(-1)                   // SecondaryAmmoID
        
write_byte(-1)                   // SecondaryAmmoMaxAmount
        
write_byte(0)                    // SlotID (0...N)
        
write_byte(4)                    // NumberInSlot (1...N)
        
write_byte(CSW_AT4CS)            // WeaponID
        
write_byte(0)                   // Flags
        
message_end()
    }
    return 
HAM_HANDLED    
}

public 
AT4_CMDStart(iduc_handleseed) {
    if(
is_user_connected(id) && is_user_alive(id)) {
        if(
get_user_weapon(id) == CSW_AT4CS && HaveAT4[id]) {
            static 
CurButton
            CurButton 
get_uc(uc_handleUC_Buttons)
            if(
CurButton IN_ATTACK) {
                static 
Float:CurTime
                CurTime 
get_gametime()
        
                static 
at4cs
                at4cs 
fm_find_ent_by_owner(-1weapon_at4csid)        
        
                if(
cs_get_weapon_ammo(at4cs) > && !is_reloading[id]) {
                    if(
CurTime 4.5 g_lastfire[id]) {
                        
set_weapon_anim(id1)
                        
emit_sound(idCHAN_WEAPONAT4Sound[0], 1.0ATTN_NORM0PITCH_NORM)
                
                        
create_rocket(id)
                
                        static 
Float:Punch_Angles[3]
                
                        
Punch_Angles[0] = -20.0
                        Punch_Angles
[1] = 0.0
                        Punch_Angles
[2] = 0.0
                
                        set_pev
(idpev_punchanglePunch_Angles)
                        
cs_set_weapon_ammo(at4cscs_get_weapon_ammo(at4cs) - 1)
                
                        if(
cs_get_weapon_ammo(at4cs) <= && !is_reloading[id]) {
                            if(
cs_get_user_bpammo(idCSW_AT4CS) > 0) {
                                
set_task(1.0"at4cs_reload"id)
                            }
                        }
                        if(
cs_get_user_zoom(id))
                            
cs_set_user_zoom(idCS_RESET_ZOOM1)
                
                        
g_lastfire[id] = CurTime
                    
}
                }
                else {
                    if(!
is_reloading[id]) {
                        if(
cs_get_user_bpammo(idCSW_AT4CS) > 0) {
                            if(
CurTime 1.0 g_lastfire[id]) {
                                
at4cs_reload(id)
                                
g_lastfire[id] = CurTime
                            
}
                        }
                    }
                }
            }
            if(
CurButton IN_ATTACK2) {
                static 
Float:CurTime
                CurTime 
get_gametime()
        
                if((
CurTime 0.5 g_lastaim[id]) && !is_reloading[id]) {
                    if(!
g_aiming[id]) {
                        
cs_set_user_zoom(idCS_SET_FIRST_ZOOM1)
                        
g_aiming[id] = 1
                    
}
                    else {
                        
cs_set_user_zoom(idCS_RESET_ZOOM1)
                        
g_aiming[id] = 0
                    
}
                    
g_lastaim[id] = CurTime
                
}
            }
    
            
CurButton &= ~IN_ATTACK
            set_uc
(uc_handleUC_ButtonsCurButton)
    
            
CurButton &= ~IN_RELOAD
            set_uc
(uc_handleUC_ButtonsCurButton)
        } 
    }

    return 
FMRES_HANDLED
}

public 
AT4_WorldModel(ent, const model[]) {
    if(!
is_valid_ent(ent))
        return 
FMRES_IGNORED
    
    
static szClassName[33]
    
entity_get_string(entEV_SZ_classnameszClassNamecharsmax(szClassName))
    
    if(!
equal(szClassName"weaponbox"))
        return 
FMRES_IGNORED
    
    
static iOwner
    iOwner 
entity_get_edict(entEV_ENT_owner)
    
    if(
equal(model"models/w_m249.mdl")) {
        static 
at4cs
        at4cs 
find_ent_by_owner(-1"weapon_m249"ent)
        
        if(!
is_valid_ent(at4cs))
            return 
FMRES_IGNORED;
        
        if(
HaveAT4[iOwner]) {
            
entity_set_int(at4csEV_INT_impulse61296)
            
HaveAT4[iOwner] = false;
            
entity_set_model(entAT4Model_W)
            
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
}

public 
at4cs_reload(id) {
    if(
is_reloading[id])
        return
    
    
is_reloading[id] = 1
    set_weapon_anim
(id3)
    
    
set_task(0.1"checking_reload"id+TASK_CHECKRELOAD__"b")
    
set_task(4.0"reload_complete"id+TASK_RELOAD)
}

public 
checking_reload(id) {
    
id -= TASK_CHECKRELOAD
    
    
if(cs_get_user_zoom(id))
        
cs_set_user_zoom(idCS_RESET_ZOOM1)    
    
    if(
get_user_weapon(id) != CSW_AT4CS || !HaveAT4[id]) {
        
remove_task(id+TASK_CHECKRELOAD)
        
remove_task(id+TASK_RELOAD)
        
        
is_reloading[id] = 0
    
}
}

public 
reload_complete(id) {
    
id -= TASK_RELOAD
    
    
if(!is_reloading[id])
        return
        
    
remove_task(id+TASK_CHECKRELOAD)    
        
    static 
at4cs
    at4cs 
fm_find_ent_by_owner(-1weapon_at4csid)    
    
    
cs_set_weapon_ammo(at4cs1)
    
cs_set_user_bpammo(idCSW_AT4CScs_get_user_bpammo(idCSW_AT4CS) - 1)
    
is_reloading[id] = 0
}

public 
AT4_Reload(ent) {
    static 
id
    id 
pev(entpev_owner)
    
    if(
is_user_connected(id) && is_user_alive(id)) {
        if(
get_user_weapon(id) == CSW_AT4CS && HaveAT4[id]) {
        
            static 
Float:CurTime
            CurTime 
get_gametime()        
        
            if(!
is_reloading[id]) {
                if(
cs_get_user_bpammo(idCSW_AT4CS) > 0) {
                    if(
CurTime 1.0 g_lastfire[id]) {
                        
at4cs_reload(id)
                        
g_lastfire[id] = CurTime
                    
}
                }
            }
        }
    }
    return 
HAM_SUPERCEDE
}

public 
AT4_Think(ent) {
    if(!
pev_valid(ent))
        return

    static 
Float:Origin[3]
    
pev(entpev_originOrigin)
        
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_SPRITE)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_smoke_id
    
write_byte(2
    
write_byte(200)
    
message_end()
    
    if(
pev(entpev_iuser4) == 0) {
        static 
Victim
        Victim 
FindClosesEnemy(ent)
        
        if(
is_user_alive(Victim)) {
            
set_pev(entpev_iuser4Victim)
        }
    } 
    else {
        static 
Victim
        Victim 
pev(entpev_iuser4)
        
        if(
is_user_alive(Victim)) {
            static 
Float:VicOrigin[3]
            
pev(Victimpev_originVicOrigin)
            
            
turn_to_target(entOriginVictimVicOrigin)
            
hook_ent(entVictim500.0)
        } 
        else {
            
set_pev(entpev_iuser40)
        }
    }    
    
set_pev(entpev_nextthinkhalflife_time() + 0.075)
}

public 
AT4_Touch(rockettouch) {
    if(!
pev_valid(rocket))
        return    
        
    if(
is_user_alive(touch) && pev(rocketpev_owner) == touch)
        return
        
    static 
Float:Origin[3]
    
pev(rocketpev_originOrigin)        
        
    
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_spr_exp)    // sprite index
    
write_byte(20)    // scale in 0.1's
    
write_byte(30)    // framerate
    
write_byte(0)    // flags
    
message_end()
    
    static 
owneriVictim
    
    iVictim 
= -1
    owner 
pev(rocketpev_owner)    

    while((
iVictim find_ent_in_sphere(iVictimOriginget_pcvar_float(cvar_radius))) != 0) {
        if((
iVictim 32) && is_user_alive(iVictim) && iVictim != owner) {
            new 
Float:MaxDamageFloat:Damage
            
            MaxDamage 
get_pcvar_float(cvar_maxdamage)
            
Damage random_float(MaxDamage random_float(0.0100.0), MaxDamage random_float(0.0100.0))
            
            
ExecuteHam(Ham_TakeDamageiVictim0owner0DMG_BULLET)
            
            static 
health
            health 
get_user_health(iVictim)
                
            if(
health Damage >= 1) {
                
fm_set_user_health(iVictimhealth floatround(Damage))
            }
            else {
                
death_message(owneriVictim1)
            }            
        }
    }    
    
engfunc(EngFunc_RemoveEntityrocket)
}

public 
create_rocket(id) {
    new 
entFloat:Origin[3], Float:Angles[3], Float:Velocity[3]
    
    
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
engfunc(EngFunc_GetAttachmentid0OriginAngles)
    
pev(idpev_anglesAngles)
    
    
set_pev(entpev_originOrigin)
    
set_pev(entpev_anglesAngles)
    
set_pev(entpev_solid2)
    
set_pev(entpev_movetype5)
    
set_pev(entpev_classname"at4ex_rocket")
    
set_pev(entpev_ownerid)
    
engfunc(EngFunc_SetModelentAT4Rocket)
    
    
set_pev(entpev_mins, {-1.0, -1.0, -1.0})
    
set_pev(entpev_maxs, {1.01.01.0})
    
    
velocity_by_aim(id1750Velocity)
    
set_pev(entpev_velocityVelocity)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW)         // TE id
    
write_short(ent)                 // entity:attachment to follow
    
write_short(g_spr_trail)         // sprite index
    
write_byte(25)                     // life in 0.1's
    
write_byte(2)                     // line width in 0.1's
    
write_byte(255)                    // r
    
write_byte(255)                    // g
    
write_byte(255)                 // b
    
write_byte(200)                    // brightness
    
message_end()    
    
    
set_pev(entpev_iuser40)
    
set_pev(entpev_nextthinkhalflife_time() + 0.1)
}

public 
hook_weapon(id) {
    
engclient_cmd(idweapon_at4cs)
}

public 
get_user_at4(id) {
    return 
HaveAT4[id];
}

public 
set_user_at4(idat4) {
    if(
at4) {
        if(!
HaveAT4[id]) {
            
drop_primary_weapons(id);
            
HaveAT4[id] = true;
            
is_reloading[id] = 0
            g_aiming
[id] = 0
            fm_give_item
(idweapon_at4cs);
            new 
Clip fm_get_user_weapon_entity(idCSW_AT4CS);
            
cs_set_weapon_ammo(Clip1);
            
cs_set_user_bpammo(idCSW_AT4CS50)
        }
    }
    else {
        if(
HaveAT4[id]) {
            
HaveAT4[id] = false;
        }
    }
}

//-------------------------------------------------------------------------//
//=============================| Stocks |=================================//
//-----------------------------------------------------------------------//
stock get_offset_origin_body(ent,const Float:offset[3],Float:origin[3]) {
    if(!
pev_valid(ent))
        return 
0;
    
    new 
Float:angle[3]
    
pev(ent,pev_angles,angle)
    
    
pev(ent,pev_origin,origin)
    
    
origin[0] += floatcos(angle[1],degrees) * offset[0]
    
origin[1] += floatsin(angle[1],degrees) * offset[0]
    
    
origin[1] += floatcos(angle[1],degrees) * offset[1]
    
origin[0] += floatsin(angle[1],degrees) * offset[1]
    
    return 
1;
}

stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speedFloat:new_velocity[3]) {
    
new_velocity[0] = origin2[0] - origin1[0]
    
new_velocity[1] = origin2[1] - origin1[1]
    
new_velocity[2] = origin2[2] - origin1[2]
    new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
    
new_velocity[0] *= num
    new_velocity
[1] *= num
    new_velocity
[2] *= num
    
    
return 1;
}

stock entity_set_aim(ent,const Float:origin2[3],bone=0) {
    if(!
pev_valid(ent))
        return 
0;
    
    static 
Float:origin[3]
    
origin[0] = origin2[0]
    
origin[1] = origin2[1]
    
origin[2] = origin2[2]
    
    static 
Float:ent_origin[3], Float:angles[3]
    
    if(
bone)
        
engfunc(EngFunc_GetBonePosition,ent,bone,ent_origin,angles)
    else
        
pev(ent,pev_origin,ent_origin)
    
    
origin[0] -= ent_origin[0]
    
origin[1] -= ent_origin[1]
    
origin[2] -= ent_origin[2]
    
    static 
Float:v_length
    v_length 
vector_length(origin)
    
    static 
Float:aim_vector[3]
    
aim_vector[0] = origin[0] / v_length
    aim_vector
[1] = origin[1] / v_length
    aim_vector
[2] = origin[2] / v_length
    
    
static Float:new_angles[3]
    
vector_to_angle(aim_vector,new_angles)
    
    
new_angles[0] *= -1
    
    
if(new_angles[1]>180.0new_angles[1] -= 360
    
if(new_angles[1]<-180.0new_angles[1] += 360
    
if(new_angles[1]==180.0 || new_angles[1]==-180.0new_angles[1]=-179.999999
    
    set_pev
(ent,pev_angles,new_angles)
    
set_pev(ent,pev_fixangle,1)
    
    return 
1;
}


stock set_weapon_anim(idanim) {
    
set_pev(idpev_weaponanimanim)

    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM_id)
    
write_byte(anim)
    
write_byte(pev(id,pev_body))
    
message_end()
}

stock death_message(KillerVictimScoreBoard) {
    
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET)
    
ExecuteHamB(Ham_KilledVictimKiller2)
    
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT)
    
    
make_deathmsg(KillerVictim0"")

    if (
ScoreBoard) {
        
message_begin(MSG_BROADCASTget_user_msgid("ScoreInfo"))
        
write_byte(Killer)                         // id
        
write_short(pev(Killerpev_frags))     // frags
        
write_short(cs_get_user_deaths(Killer)) // deaths
        
write_short(0)                             // class?
        
write_short(get_user_team(Killer))         // team
        
message_end()
        
        
message_begin(MSG_BROADCASTget_user_msgid("ScoreInfo"))
        
write_byte(Victim)                             // id
        
write_short(pev(Victimpev_frags))         // frags
        
write_short(cs_get_user_deaths(Victim))     // deaths
        
write_short(0)                                 // class?
        
write_short(get_user_team(Victim))             // team
        
message_end()
    }
}

stock FindClosesEnemy(entid) {
    new 
Float:Dist
    
new Float:maxdistance 300.0
    
new indexid 0    
    
    
for(new 1<= get_maxplayers(); i++){
        if(
is_user_alive(i) && is_valid_ent(i) && can_see_fm(entidi)
        && 
pev(entidpev_owner) != && cs_get_user_team(pev(entidpev_owner)) != cs_get_user_team(i)) {
            
Dist entity_range(entidi)
            if(
Dist <= maxdistance) {
                
maxdistance Dist
                indexid 
i
                
                
return indexid
            
}
        }    
    }    
    return 
0
}

stock bool:can_see_fm(entindex1entindex2) {
    if (!
entindex1 || !entindex2)
        return 
false

    
if (pev_valid(entindex1) && pev_valid(entindex1)) {
        new 
flags pev(entindex1pev_flags)
        if (
flags EF_NODRAW || flags FL_NOTARGET
            return 
false

        
new Float:lookerOrig[3]
        new 
Float:targetBaseOrig[3]
        new 
Float:targetOrig[3]
        new 
Float:temp[3]

        
pev(entindex1pev_originlookerOrig)
        
pev(entindex1pev_view_ofstemp)
        
lookerOrig[0] += temp[0]
        
lookerOrig[1] += temp[1]
        
lookerOrig[2] += temp[2]

        
pev(entindex2pev_origintargetBaseOrig)
        
pev(entindex2pev_view_ofstemp)
        
targetOrig[0] = targetBaseOrig [0] + temp[0]
        
targetOrig[1] = targetBaseOrig [1] + temp[1]
        
targetOrig[2] = targetBaseOrig [2] + temp[2]

        
engfunc(EngFunc_TraceLinelookerOrigtargetOrig0entindex10//  checks the had of seen player
        
if (get_tr2(0TraceResult:TR_InOpen) && get_tr2(0TraceResult:TR_InWater)) {
            return 
false
        

        else  {
            new 
Float:flFraction
            get_tr2
(0TraceResult:TR_flFractionflFraction)
            if (
flFraction == 1.0 || (get_tr2(0TraceResult:TR_pHit) == entindex2)) {
                return 
true
            
}
            else {
                
targetOrig[0] = targetBaseOrig [0]
                
targetOrig[1] = targetBaseOrig [1]
                
targetOrig[2] = targetBaseOrig [2]
                
engfunc(EngFunc_TraceLinelookerOrigtargetOrig0entindex10//  checks the body of seen player
                
get_tr2(0TraceResult:TR_flFractionflFraction)
                if (
flFraction == 1.0 || (get_tr2(0TraceResult:TR_pHit) == entindex2)) {
                    return 
true
                
}
                else {
                    
targetOrig[0] = targetBaseOrig [0]
                    
targetOrig[1] = targetBaseOrig [1]
                    
targetOrig[2] = targetBaseOrig [2] - 17.0
                    engfunc
(EngFunc_TraceLinelookerOrigtargetOrig0entindex10//  checks the legs of seen player
                    
get_tr2(0TraceResult:TR_flFractionflFraction)
                    if (
flFraction == 1.0 || (get_tr2(0TraceResult:TR_pHit) == entindex2)) {
                        return 
true
                    
}
                }
            }
        }
    }
    return 
false
}

stock turn_to_target(entFloat:Ent_Origin[3], targetFloat:Vic_Origin[3])  {
    if(
target)  {
        new 
Float:newAngle[3]
        
entity_get_vector(entEV_VEC_anglesnewAngle)
        new 
Float:Vic_Origin[0] - Ent_Origin[0]
        new 
Float:Vic_Origin[1] - Ent_Origin[1]

        new 
Float:radians floatatan(z/xradian)
        
newAngle[1] = radians * (180 3.14)
        if (
Vic_Origin[0] < Ent_Origin[0])
            
newAngle[1] -= 180.0
        
        entity_set_vector
(entEV_VEC_anglesnewAngle)
    }
}

stock hook_ent(entvictimFloat:speed) {
    static 
Float:fl_Velocity[3]
    static 
Float:VicOrigin[3], Float:EntOrigin[3]

    
pev(entpev_originEntOrigin)
    
pev(victimpev_originVicOrigin)
    
    static 
Float:distance_f
    distance_f 
get_distance_f(EntOriginVicOrigin)

    if (
distance_f 10.0) {
        new 
Float:fl_Time distance_f speed

        fl_Velocity
[0] = (VicOrigin[0] - EntOrigin[0]) / fl_Time
        fl_Velocity
[1] = (VicOrigin[1] - EntOrigin[1]) / fl_Time
        fl_Velocity
[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time
    

    else {
        
fl_Velocity[0] = 0.0
        fl_Velocity
[1] = 0.0
        fl_Velocity
[2] = 0.0
    
}

    
entity_set_vector(entEV_VEC_velocityfl_Velocity)
}

stock drop_primary_weapons(Player) {
    static 
weapons[32], numiweaponid;
    
num 0;
    
get_user_weapons(Playerweaponsnum);
    
    for(
0numi++) {
        
weaponid weapons ;
        
        if(((
1<<weaponid) & PRIMARY_WEAPONS_BITSUM)) {
            static 
wname[32];
            
get_weaponname(weaponidwnamecharsmax(wname));
            
            
engclient_cmd(Player"drop"wname);
        }
    }
}

stock ColorChat(const id, const input[], any:...) {
    new 
count 1players[32];
    static 
msg[191];
    
vformat(msg190input3);
    
    
replace_all(msg190"!g""^4");
    
replace_all(msg190"!y""^1");
    
replace_all(msg190"!t""^3");
    
    if(
idplayers[0] = id;
    else 
get_players(playerscount"ch"); {
        for(new 
0counti++) {
            if(
is_user_connected(players)) {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players);
                
write_byte(players);
                
write_string(msg);
}
}
                
message_end();
            }
        } 

with this errors:
PHP Code:

plugin.sma(357) : error 029invalid expressionassumed zero 

lines with errors:
PHP Code:

357:     for(new 0<= get_maxplayers(); i++) {
        if(
ent == ItemPET[] 

I don't have any idea about this, i think i am using a newer AMXX version...

iceeedr 12-21-2019 13:21

Re: Furien Shop Plugin compile errors
 
I didn't pay much attention to the code, but try.

PHP Code:

if(ent == ItemPET[ent


OciXCrom 12-21-2019 13:41

Re: Furien Shop Plugin compile errors
 
It's missing a closing parenthesis as well. Also, I'm pretty sure it should be "i" instead of "ent", but haven't looked either.

Shadows Adi 12-23-2019 09:23

Re: Furien Shop Plugin compile errors
 
Quote:

Originally Posted by iceeedr (Post 2677633)
I didn't pay much attention to the code, but try.

PHP Code:

if(ent == ItemPET[ent


I saw that, but I forgot about this thread :')
I solved it.
Thank you both!


All times are GMT -4. The time now is 02:42.

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