Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <fakemeta>
- #include <hamsandwich>
- #include <reapi>
- #include <engine>
- #define DEFAULT_FOV 90
- #define BIG_EXPLOSION_VOLUME 2048
- #define NORMAL_GUN_FLASH 256
- #define SCOUT_DAMAGE 75
- #define SCOUT_RANGE_MODIFER 0.98
- #define FEV_NOTHOST (1<<0)
- new g_Event
- new fm_fwd
- public plugin_init()
- {
- register_plugin("Cazapatos", "1.0", "Sugisaki")
- RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_scout", "pfn_Weapon_PrimaryAttackPre")
- //register_forward(FM_UpdateClientData, "FM_UpdateClientData_Post", true)
- RegisterHam(Ham_Spawn, "player", "pfn_PlayerSpawnPost", 1, true)
- RegisterHookChain(RG_CBasePlayer_HasRestrictItem, "pfn_RestItem")
- register_message(get_user_msgid("StatusIcon"), "pfn_StatusIcon")
- }
- public client_connect(id)
- {
- client_cmd(id, "scr_connectmsg ^"Cojedes Best Players^"");
- }
- public pfn_StatusIcon(m, e, id)
- {
- static szIcon[8]
- get_msg_arg_string(2, szIcon, charsmax(szIcon))
- if (equal(szIcon, "buyzone") && get_msg_arg_int(1))
- {
- set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0))
- return PLUGIN_HANDLED;
- }
- return PLUGIN_CONTINUE;
- }
- public pfn_RestItem(id, ItemID:item, ItemRestType:type)
- {
- new bool:block
- if(item == ITEM_SCOUT || item == ITEM_KNIFE)
- {
- block = false
- }
- else
- {
- block = true
- }
- if(block)
- {
- SetHookChainReturn(ATYPE_INTEGER, 1)
- return HC_SUPERCEDE
- }
- return HC_CONTINUE
- }
- public plugin_cfg()
- {
- set_cvar_num("sv_gravity", 150)
- set_cvar_num("sv_airaccelerate", 50)
- set_cvar_num("mp_refill_bpammo_weapons", 3)
- set_cvar_num("mp_roundover", 1)
- }
- public plugin_precache()
- {
- precache_sound("weapons/dryfire_rifle.wav")
- fm_fwd = register_forward(FM_PrecacheEvent, "pfn_PrecacheEvent", 1)
- }
- public pfn_PrecacheEvent(type, ev[])
- {
- if(equal(ev, "events/scout.sc"))
- {
- g_Event = get_orig_retval()
- unregister_forward(FM_PrecacheEvent, fm_fwd, 1)
- }
- }
- public pfn_Weapon_PrimaryAttackPre(ent)
- {
- new id = get_member(ent, m_pPlayer)
- new clip = get_member(ent, m_Weapon_iClip)
- new Float:vecAiming[3], Float:vecSrc[3], Float:vecDir[3], flag
- new pFOV = get_member(id, m_iFOV)
- if(pFOV != DEFAULT_FOV)
- {
- set_member(id, m_bResumeZoom, true)
- set_member(id, m_iLastZoom, pFOV)
- set_member(id, m_iFOV, DEFAULT_FOV)
- }
- if(clip <= 0)
- {
- if(get_member(ent, m_Weapon_fFireOnEmpty))
- {
- emit_sound(id, CHAN_WEAPON, "weapons/dryfire_rifle.wav", 0.8, ATTN_NORM, 0, PITCH_NORM)
- set_member(ent, m_Weapon_flNextPrimaryAttack, 0.2)
- }
- return HAM_SUPERCEDE
- }
- set_member(ent, m_Weapon_iClip, --clip)
- rg_set_animation(id, PLAYER_ATTACK1)
- new Float:PunchAngle[3], Float:angles[3]
- pev(id, pev_angles, angles)
- pev(id, pev_punchangle, PunchAngle)
- new Float:global_Time;
- global_get(glb_time, global_Time)
- set_member(id, m_flEjectBrass, global_Time + 0.56)
- set_member(id, m_iWeaponVolume, BIG_EXPLOSION_VOLUME)
- set_member(id, m_iWeaponFlash, NORMAL_GUN_FLASH)
- ExecuteHam(Ham_Player_GetGunPosition, id, vecSrc)
- global_get(glb_v_forward, vecAiming)
- vecDir = rg_fire_bullets3(id, id, vecSrc, vecAiming, 0.0, 8192.0, 3, BULLET_PLAYER_762MM, SCOUT_DAMAGE, SCOUT_RANGE_MODIFER, true, get_member(id, random_seed));
- flag = FEV_NOTHOST
- playback_event(flag, id, g_Event, 0.0, Float:{0.0,0.0,0.0}, angles, vecDir[0] * PunchAngle[0] * 100, vecDir[0] * PunchAngle[0] * 100, 0, 0, 0, 0)
- PunchAngle[0] -= 2.0
- set_member(ent, m_Weapon_flTimeWeaponIdle, global_Time + 1.8)
- set_pev(id, pev_punchangle, PunchAngle)
- set_member(ent, m_Weapon_flNextPrimaryAttack, 1.25)
- set_member(ent, m_Weapon_flNextSecondaryAttack, 1.25)
- return HAM_SUPERCEDE
- }
- public pfn_PlayerSpawnPost(id)
- {
- if(!is_user_alive(id))
- {
- return
- }
- rg_remove_all_items(id)
- rg_give_item(id, "weapon_scout")
- rg_give_item(id, "weapon_knife")
- rg_set_user_bpammo(id, WEAPON_SCOUT, 90)
- rg_set_user_armor(id, 100, ARMOR_VESTHELM)
- }
- public FM_UpdateClientData_Post(const id, const bool:BO_SendWeapons, const I_CD)
- {
- if(is_user_alive(id))
- if(get_user_weapon(id) == CSW_SCOUT)
- set_cd(I_CD, CD_flNextAttack, halflife_time() + 0.001)
- }
Advertisement
Add Comment
Please, Sign In to add comment