Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))
#define MAX_BUFFER_LENGTH 1024
new bool:g_HasGravity[ 33 ];
public plugin_init()
{
RegisterHam( Ham_Spawn, "player", "ham_spawn", 1 );
register_clcmd( "buy", "block" );
register_clcmd( "say gravity", "buy_gravity" );
register_clcmd( "say /skhelp", "help_cmd" );
}
public block( id )
return PLUGIN_HANDLED;
public client_putinserver( id ) g_HasGravity[ id ] = false;
public buy_gravity( id )
{
if( !is_user_alive( id ) )
return PLUGIN_HANDLED;
if( g_HasGravity[ id ] )
return PLUGIN_HANDLED;
g_HasGravity[ id ] = true;
fm_set_user_gravity( id, 0.25 );
return PLUGIN_CONTINUE;
}
public ham_spawn( id )
{
g_HasGravity[ id ] = false;
fm_set_user_gravity( id );
fm_strip_user_weapons( id );
ham_give_item( id, "weapon_knife" );
ham_give_item( id, "weapon_scout" );
for( new i; i < 4; i++ )
ham_give_item( id, "ammo_762nato" );
return HAM_IGNORED;
}
public help_cmd( id )
{
new motd[ MAX_BUFFER_LENGTH ], len;
len = format( motd, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#87cefa><pre>")
len += format( motd[ len ], MAX_BUFFER_LENGTH-len, "<center><h4><font color=^"blue^"> Commands </font></h4></center>" );
len += format( motd[ len ], MAX_BUFFER_LENGTH-len, "<left><font color=^"red^"><B>.gravity</B> -> <font color=^"white^">sets your gravity to 200</color></left>^n" );
len += format( motd[ len ], MAX_BUFFER_LENGTH-len, "<left><font color=^"red^"><B>.drop</B> -> <font color=^"white^">sets your gravity to 800</color></left>^n" );
show_motd( id, motd, "Help" );
return PLUGIN_CONTINUE;
}
ham_give_item( id, weapon[] )
{
new wEnt = fm_create_entity( weapon );
if( !pev_valid( wEnt ) )
return 0;
set_pev( wEnt, pev_spawnflags, SF_NORESPAWN );
dllfunc( DLLFunc_Spawn, wEnt );
if( !ExecuteHamB( Ham_AddPlayerItem, id, wEnt ) )
{
if( pev_valid( wEnt ) )
set_pev( wEnt, pev_flags, pev( wEnt, pev_flags ) | FL_KILLME );
return 0;
}
ExecuteHamB( Ham_Item_AttachToPlayer, wEnt, id )
return 1;
}
fm_strip_user_weapons( index )
{
new ent = fm_create_entity( "player_weaponstrip" );
if( !pev_valid( ent ) )
return 0;
dllfunc( DLLFunc_Spawn, ent );
dllfunc( DLLFunc_Use, ent, index );
engfunc( EngFunc_RemoveEntity, ent );
return 1;
}
fm_set_user_gravity( index, Float:gravity = 1.0 )
set_pev( index, pev_gravity, gravity );