Raised This Month: $51 Target: $400
 12% 

Furien Shop Plugin compile errors


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Shadows Adi
AlliedModders Donor
Join Date: Aug 2019
Location: Romania
Old 12-21-2019 , 12:58   Furien Shop Plugin compile errors
Reply With Quote #1

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...
__________________


Accepting Paid Requests, contact PM.

MVP Of The Round View project on GITHUB / AlliedModders
CSGO REMAKE ~ CSGO MOD [STABLE + SOURCE CODE]
Shadows Adi is offline
iceeedr
Veteran Member
Join Date: Apr 2017
Location: Brazil
Old 12-21-2019 , 13:21   Re: Furien Shop Plugin compile errors
Reply With Quote #2

I didn't pay much attention to the code, but try.

PHP Code:
if(ent == ItemPET[ent
__________________


Quote:
Originally Posted by fysiks View Post
Please stop trying to help. You appear to just be posting random stuff. Wait until you actually understand more about AMX Mod X and how the game works.
https://iceeedr.com.br/
iceeedr is offline
Send a message via Skype™ to iceeedr
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 12-21-2019 , 13:41   Re: Furien Shop Plugin compile errors
Reply With Quote #3

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.
__________________

Last edited by OciXCrom; 12-21-2019 at 13:44.
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Shadows Adi
AlliedModders Donor
Join Date: Aug 2019
Location: Romania
Old 12-23-2019 , 09:23   Re: Furien Shop Plugin compile errors
Reply With Quote #4

Quote:
Originally Posted by iceeedr View Post
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!
__________________


Accepting Paid Requests, contact PM.

MVP Of The Round View project on GITHUB / AlliedModders
CSGO REMAKE ~ CSGO MOD [STABLE + SOURCE CODE]
Shadows Adi is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:07.


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