PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#define PLUGIN "Ghost-beta"
#define VERSION "1.0"
#define AUTHOR "S.M"
#define V_MODEL "models/v_blurred_knife.mdl"
new g_ghost[33]
new g_invis[33]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_CmdStart, "FMCmdStart")
register_event("CurWeapon", "CurWeapon", "be", "1=1")
register_event("ResetHUD", "newround", "b")
RegisterHam(Ham_Spawn, "player", "HamSpawn", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Touch, "armoury_entity", "FwdHamPickupWeapon")
RegisterHam(Ham_Touch, "weaponbox", "FwdHamPickupWeapon")
set_msg_block(get_user_msgid("ShadowIdx"), BLOCK_SET) // remove shadow
}
public plugin_precache()
{
precache_model(V_MODEL)
}
public FMCmdStart(id, uc_handle, randseed) //handle user speed
{
new Float: fmove
new Float: smove
get_uc(uc_handle, UC_ForwardMove, fmove)
get_uc(uc_handle, UC_SideMove, smove)
new Float: maxspeed
pev(id, pev_maxspeed, maxspeed)
new Float: walkspeed = (0.52 * maxspeed)
fmove = floatabs(fmove)
smove = floatabs(smove)
if(fmove <= walkspeed && smove <= walkspeed) //player is walking
{
set_task(0.0, "task_walking", id)
}
else //player is running
{
set_task(0.0, "task_running", id)
}
}
public CurWeapon(id)
{
new weapon = read_data(2)
if(cs_get_user_team(id) == CS_TEAM_T)
{
if(weapon == CSW_KNIFE)
{
new vModel[56]
format(vModel, 55, V_MODEL)
entity_set_string(id, EV_SZ_viewmodel, vModel)
set_user_maxspeed(id, 500.0)
}
else
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
}
public task_walking(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 0)
set_user_footsteps(id, 1)
set_pev(id, pev_viewmodel, 0)
g_invis[id] = 1
}
}
public task_running(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 25)
set_user_footsteps(id, 1)
new vModel[56]
format(vModel, 55, V_MODEL)
entity_set_string(id, EV_SZ_viewmodel, vModel)
g_invis[id] = 0
}
}
public newround(id)
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
set_user_health(id, 50)
set_user_armor(id, 200)
g_ghost[id] = 1
set_task(3.0, "set_speed", id)
}
else
{
set_user_health(id, 100)
set_user_armor(id, 100)
g_ghost[id] = 0
set_user_maxspeed(id, 250.0)
}
}
public set_speed(id)
{
set_user_maxspeed(id, 500.0)
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if(victim != attacker && is_user_connected(attacker))
{
if(cs_get_user_team(attacker) == CS_TEAM_T)
{
/* if(g_invis[attacker] == 1)
{
SetHamParamFloat(4, damage * 0.4)
}
if(g_invis[attacker] == 0)
{
SetHamParamFloat(4, damage * 0.6)
}
*/
if(get_user_weapon(attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 0.5)
return HAM_HANDLED
}
}
}
return HAM_IGNORED
}
public FwdHamPickupWeapon(ent, id)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
return HAM_SUPERCEDE
}
return HAM_IGNORED
}