/*================================================================================
-----------------------------------
-*- [BB] New Classes -*-
-----------------------------------
~~~~~~~~~~~~~~~
- Description -
~~~~~~~~~~~~~~~
This plugin adds the bonus zombie classes into Base Builder.
All classes have been balanced, but feel free to edit them if
you are not satisfied.
================================================================================*/
#include <amxmodx>
#include <fakemeta>
#include <basebuilder>
#include <hamsandwich>
#include <fun>
#include <xs>
/*================================================================================
[Plugin Customization]
=================================================================================*/
// Chainsaw Attributes
new const zclass3_name[] = { "Chainsaw Maniac" }
new const zclass3_info[] = { "HP+ DMG+" }
new const zclass3_model[] = { "bb_chainsaw" }
new const zclass3_clawmodel[] = { "v_sawww" }
const zclass3_health = 5000
const zclass3_speed = 260
const Float:zclass3_gravity = 0.85
const zclass3_admin = ADMIN_ALL
const zclass3_credits = 0
#define CHAINSAW_DAMAGE 2.5
// Banshee Attributes
new const zclass4_name[] = { "Predator" }
new const zclass4_info[] = { "Semiclip + Invizibilitate" }
new const zclass4_model[] = { "zmhelladmn" }
new const zclass4_clawmodel[] = { "v_predator123" }
const zclass4_health = 3500
const zclass4_speed = 280
const Float:zclass4_gravity = 0.85
const zclass4_admin = ADMIN_ALL
const zclass4_credits = 0
#define BANSHEE_RENDERAMT 90
// Charger Attributes
new const zclass5_name[] = { "Alive Tree" }
new const zclass5_info[] = { "HP++ Speed- Charge" }
new const zclass5_model[] = { "treee" }
new const zclass5_clawmodel[] = { "v_tree_h" }
const zclass5_health = 6500
const zclass5_speed = 210
const Float:zclass5_gravity = 0.9
const zclass5_admin = ADMIN_ALL
const zclass5_credits = 0
// Lycan Attributes
new const zclass6_name[] = { "Wolf Zombie" }
new const zclass6_info[] = { "Gravity + Speed + Hp -" }
new const zclass6_model[] = { "bb_woolf" }
new const zclass6_clawmodel[] = { "v_woolf" }
const zclass6_health = 3500
const zclass6_speed = 370
const Float:zclass6_gravity = 0.5
const zclass6_admin = ADMIN_ALL
const zclass6_credits = 0
// Regenerator Attributes
new const zclass7_name[] = { "Ultimate Zombie" }
new const zclass7_info[] = { "Regeneration + Speed + Hp + Gravity" }
new const zclass7_model[] = { "bb_regennn" }
new const zclass7_clawmodel[] = { "v_regennn" }
const zclass7_health = 10000
const zclass7_speed = 360
const Float:zclass7_gravity = 0.4
const zclass7_admin = ADMIN_IMMUNITY
const zclass7_credits = 0
//Every 2 seconds, regenerates 2.5% max health
#define REGENERATION_DELAY 2.5
#define HEAL_ALGORITHM (get_user_health(id) + (zclass7_health * 0.025))
// Knockback Attributes
new const zclass8_name[] = { "Assasin Assistent" }
new const zclass8_info[] = { "Knockback + Speed" }
new const zclass8_model[] = { "bb_knoc" }
new const zclass8_clawmodel[] = { "v_knoc" }
const zclass8_health = 4300
const zclass8_speed = 310
const Float:zclass8_gravity = 0.75
const zclass8_admin = ADMIN_ALL
const zclass8_credits = 0
/*============================================================================*/
new bool:g_isSolid[33]
new bool:g_isSemiClip[33]
new g_iPlayers[32], g_iNum, g_iPlayer
new g_zclass_saw
new g_zclass_banshee
new g_zclass_charger
new g_zclass_lycan
new g_zclass_regenerator
new g_zclass_knockback
#define SOUND_DELAY 3.0
new Float: g_fSoundDelay[33]
new Float: g_fRegenDelay[33]
#define PAINSHOCK 108
#define IP_SERVER_LICENTIAT "93.114.82.56"
#define g_ChainsawRev "basebuilder/zombie/chainsaw_rev2.wav"
#define g_BansheeScream "basebuilder/zombie/banshee_scream3.wav"
#define g_ChargerRoar "basebuilder/zombie/charger_roar2.wav"
#define g_LycanAttack "basebuilder/zombie/wolf_attack1.wav"
#define g_LycanHowl "basebuilder/zombie/wolf_spawn1.wav"
// Zombie Classes MUST be registered on plugin_precache
#define VERSION "6.8"
public plugin_precache()
{
register_plugin("BB Classes", VERSION, "Tirant + e t n a d")
register_cvar("bb_credit_classes", VERSION, FCVAR_SPONLY|FCVAR_SERVER)
set_cvar_string("bb_credit_classes", VERSION)
precache_sound(g_ChainsawRev)
precache_sound(g_BansheeScream)
precache_sound(g_ChargerRoar)
precache_sound(g_LycanAttack)
precache_sound(g_LycanHowl)
// Register all classes
g_zclass_saw = bb_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, 0.0, zclass3_admin, zclass3_credits)
g_zclass_banshee = bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_admin, zclass4_credits)
g_zclass_charger = bb_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, 0.0, zclass5_admin, zclass5_credits)
g_zclass_lycan = bb_register_zombie_class(zclass6_name, zclass6_info, zclass6_model, zclass6_clawmodel, zclass6_health, zclass6_speed, zclass6_gravity, 0.0, zclass6_admin, zclass6_credits)
g_zclass_regenerator = bb_register_zombie_class(zclass7_name, zclass7_info, zclass7_model, zclass7_clawmodel, zclass7_health, zclass7_speed, zclass7_gravity, 0.0, zclass7_admin, zclass7_credits)
g_zclass_knockback = bb_register_zombie_class(zclass8_name, zclass8_info, zclass8_model, zclass8_clawmodel, zclass8_health, zclass8_speed, zclass8_gravity, 0.0, zclass8_admin, zclass8_credits)
}
public plugin_init()
{
RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage")
RegisterHam(Ham_TakeDamage, "player", "ham_TakeDamage_Post", 1)
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");
register_forward(FM_PlayerPostThink, "fw_PlayerPostThink");
register_forward(FM_AddToFullPack, "fw_addToFullPack", 1)
register_forward(FM_EmitSound, "fw_EmitSound")
}
public ham_TakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
if (!pev_valid(victim) || !is_user_connected(attacker))
return HAM_IGNORED
if (zp_get_user_zombie_class(attacker) == g_zclass_saw)
damage*=CHAINSAW_DAMAGE
SetHamParamFloat(4, damage)
return HAM_HANDLED
}
public ham_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return ;
if (bb_is_user_zombie(id) && zp_get_user_zombie_class(id) == g_zclass_banshee)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, BANSHEE_RENDERAMT)
else
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 90)
}
public fw_PlayerPreThink(id)
{
if (!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if (zp_get_user_zombie_class(id) == g_zclass_regenerator && bb_is_user_zombie(id))
{
static Float: fGameTime;
fGameTime = get_gametime();
if (g_fRegenDelay[id] < fGameTime)
{
g_fRegenDelay[id] = fGameTime + REGENERATION_DELAY;
new iHealth = floatround(HEAL_ALGORITHM);
iHealth = clamp(iHealth, 0, zclass7_health);
set_user_health(id, iHealth);
}
}
get_players(g_iPlayers, g_iNum, "a")
static i
for (i = 0; i < g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if (!g_isSemiClip[g_iPlayer])
g_isSolid[g_iPlayer] = true
else
g_isSolid[g_iPlayer] = false
}
if (g_isSolid[id])
for (i = 0; i < g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if (!g_isSolid[g_iPlayer] || g_iPlayer == id || !bb_is_user_zombie(id) || zp_get_user_zombie_class(id) != g_zclass_banshee)
continue
if (get_user_team(g_iPlayer) != get_user_team(id))
continue
set_pev(g_iPlayer, pev_solid, SOLID_NOT)
g_isSemiClip[g_iPlayer] = true
}
return FMRES_IGNORED
}
public fw_PlayerPostThink(id)
{
if (!is_user_alive(id))
return FMRES_IGNORED
get_players(g_iPlayers, g_iNum, "a")
static i
for (i = 0; i < g_iNum; i++)
{
g_iPlayer = g_iPlayers[i]
if (g_isSemiClip[g_iPlayer])
{
set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
g_isSemiClip[g_iPlayer] = false
}
}
return FMRES_IGNORED
}
public fw_addToFullPack(es, e, ent, host, hostflags, player, pSet)
{
if ( !player )
return FMRES_SUPERCEDE;
if(player)
{
if (!is_user_alive(host) || !g_isSolid[host])
return FMRES_IGNORED
if (get_user_team(ent) != get_user_team(host))
return FMRES_IGNORED
set_es(es, ES_Solid, SOLID_NOT)
}
return FMRES_IGNORED
}
public fw_EmitSound(id,channel,const sample[],Float:volume,Float:attn,flags,pitch)
{
if (!is_user_connected(id) || !bb_is_user_zombie(id) || bb_is_build_phase() || bb_is_prep_phase())
return FMRES_IGNORED;
if ((g_fSoundDelay[id] + SOUND_DELAY) < get_gametime())
{
if (equal(sample[8], "kni", 3))
{
if (equal(sample[14], "sla", 3) || equal(sample[14], "hit", 3) || equal(sample[14], "sta", 3)) // slash
{
if (zp_get_user_zombie_class(id) == g_zclass_saw)
{
emit_sound(id,CHAN_ITEM,g_ChainsawRev,volume,attn,flags,pitch)
g_fSoundDelay[id] = get_gametime()
return FMRES_SUPERCEDE;
}
else if (zp_get_user_zombie_class(id) == g_zclass_banshee)
{
emit_sound(id,CHAN_ITEM,g_BansheeScream,volume,attn,flags,pitch)
g_fSoundDelay[id] = get_gametime()
return FMRES_SUPERCEDE;
}
else if (zp_get_user_zombie_class(id) == g_zclass_charger)
{
emit_sound(id,CHAN_ITEM,g_ChargerRoar,volume,attn,flags,pitch)
g_fSoundDelay[id] = get_gametime()
static Float: velocity[3];
velocity_by_aim(id, 400, velocity);
set_pev(id, pev_velocity, velocity);
return FMRES_SUPERCEDE;
}
else if (zp_get_user_zombie_class(id) == g_zclass_lycan)
{
emit_sound(id,CHAN_ITEM,g_LycanAttack,volume,attn,flags,pitch)
g_fSoundDelay[id] = get_gametime()
return FMRES_SUPERCEDE;
}
}
}
}
//else
//g_fSoundDelay[id] = get_gametime()
return FMRES_IGNORED
}
public bb_zombie_class_set(id, class)
{
if (!is_user_alive(id))
return ;
if (class == g_zclass_lycan && !bb_is_build_phase())
emit_sound(id,CHAN_STATIC,g_LycanHowl,VOL_NORM,ATTN_NORM,0,PITCH_NORM)
return ;
}
public ham_TakeDamage_Post(victim, inflictor, attacker, Float:damage, bits)
{
if(bb_get_user_zombie_class(victim) == g_zclass_knockback && bb_is_user_zombie(victim))
{
set_pdata_float(victim, PAINSHOCK, 1.0, 5)
}
}
Plugin XP
Descriere : : Acest plugin original de la polonezi ... dar l-am tradus eu ... cu greu , dar am reusit , e un plugin foarte interesant , pe fiecare frag faci xp , cu pct de xp cumperi puteri , acestea sunt salvate , in chat apare rangul in format [Rang] cu verde iar din 1000 in 1000 pct de experienta faci level up
Autor : : Nu mai stiu exact ... un polonez oricum

+ e t n a d translate
Sma :
| Afiseaza codul
Trivia Bot for Alive People
Descriere : : Acesta este un plugin care pune intrebari iar daca castigi vei fi recompensat cu cate un frag ! Merge si la oamenii in viata !
Autor : : Alka
| Afiseaza codul
BaseBuilder + Claim
Descriere : : Acesta este pluginul de baza al BaseBuilder-ului doar ca are CLAIM pentru toti jucatorii . Posibil sa mai aibe cateva modificari gen meniul sa nu mai fie alb ci galben , in orice caz legate de aspect , subtitrare + imbunatatire
Autor : : Tirant + e t n a d (modificari minore , adica claimul ... fix pix )
SMA :
| Afiseaza codul
Lasermine + model schimbat
Descriere : : Acesta e pluginul de laser cu model schimbat
Autor : : ARUKARI
SMA :
| Afiseaza codul
Rase Human New
Descriere : : Acest plugin este unul de rase pentru Human , anume 5 rase cu skinuri diferite , si cu skinuri de maini diferite , dar nu in ultimul rand si puteri diferite (gravity , speed , damage , invizibility , vip cu toate atributiile)
Autor : : sPuF? aka Askhanar
| Ascunde codul
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#pragma semicolon 1
#define FLASH_SPEED 350.0 // viteza care o are Flash
#define HULK_GRAVITY 0.75 // gravitatea setata lui hulk ( 1.0 = 800 )
#define PREDATOR_MULTIPLY 1.8 // damage facut inmultit cu 1.5 sau cat pui.
#define ELF_INVISIBILITY 76 // ( 0 - 255 ) 2.55 este aproximativ 1% deci 76 vine cam 30% vizibil
#define PLUGIN "Plugin Nou"
#define VERSION "1.0"
new const Models[ 6 ][ ] =
{
"", //Null
"kaili", //Flash
"grafff", //Hulk
"termi", //Predator
"elfzoor", //Elf
"vip_skin_aaa" //Vip
};
new const kModels[ 6 ][ ] =
{
"", //Null
"models/v_flasher.mdl", //Flash
"models/v_grafff.mdl", //Hulk
"models/v_termiii.mdl", //Predator
"models/v_elfwow.mdl", //Elf
"models/v_viaiiipi.mdl" //Vip
};
new const MenuName[ ] = " \wRase \rHuman^n";
new const NumeSite[ ] = "\yRase Human";
new bool:UserIsFlash[ 33 ];
new bool:UserIsHulk[ 33 ];
new bool:UserIsPredator[ 33 ];
new bool:UserIsElf[ 33 ];
new bool:UserIsVIp[ 33 ];
new bool:UserChoosed[ 33 ];
public plugin_precache( )
{
new ModelPath[ 64 ];
for( new i = 1; i < 6; i++ )
{
formatex( ModelPath, sizeof ( ModelPath ) -1, "models/player/%s/%s.mdl", Models[ i ], Models[ i ] );
precache_model( ModelPath );
}
for( new i = 1; i < 6; i++ )
{
precache_model( kModels[ i ] );
}
}
public plugin_cfg( ) set_cvar_float( "sv_maxspeed", FLASH_SPEED );
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Askhanar" );
register_clcmd( "say /race", "sayRace" );
RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", true );
RegisterHam( Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", false );
register_event( "CurWeapon", "evCurWeapon", "be", "1=1" );
register_event( "HLTV", "evHookRoundStart", "a", "1=0", "2=0" );
}
public client_connect(id)
{
SetCl_Settings( id , 0 );
UserIsFlash[ id ] = false;
UserIsHulk[ id ] = false;
UserIsPredator[ id ] = false;
UserIsElf[ id ] = false;
UserIsVIp[ id ] = false;
UserChoosed[ id ] = false;
}
public client_disconnect(id)
{
SetCl_Settings( id, 0 );
UserIsFlash[ id ] = false;
UserIsHulk[ id ] = false;
UserIsPredator[ id ] = false;
UserIsElf[ id ] = false;
UserIsVIp[ id ] = false;
UserChoosed[ id ] = false;
}
public sayRace( id )
{
if( UserChoosed[ id ] )
{
client_print( id, print_chat, "* Ti-ai ales deja rasa runda aceasta !" );
return 1;
}
if( cs_get_user_team( id ) == CS_TEAM_CT ) MainMenu( id );
return 0;
}
public Ham_PlayerSpawnPost( id )
{
if( !is_user_alive( id ) || UserChoosed[ id ] ) return HAM_IGNORED;
if( UserChoosed[ id ] )
{
client_print( id, print_chat, "* Ti-ai ales deja rasa runda aceasta !" );
return HAM_IGNORED;
}
ResetUserSettings( id );
if( cs_get_user_team( id ) == CS_TEAM_CT ) MainMenu( id );
cs_reset_user_model( id );
return HAM_IGNORED;
}
public Ham_PlayerTakeDamage( id, iInflictor, iAttacker, Float:flDamage, bitsDamageType )
{
if( !iAttacker || id == iAttacker || !is_user_connected( iAttacker ) || !is_user_connected( id )
|| get_user_team( id ) == get_user_team( iAttacker )
|| !UserIsPredator[ iAttacker ] || !UserIsVIp[ id ] ) return HAM_IGNORED;
SetHamParamFloat( 4, flDamage * PREDATOR_MULTIPLY );
return HAM_IGNORED;
}
public evCurWeapon( id )
{
if( is_user_alive( id ) )
{
if( cs_get_user_team( id ) == CS_TEAM_CT )
{
new clip, ammo, wpnid = get_user_weapon( id, clip, ammo );
if( wpnid == CSW_KNIFE )
{
if( UserIsFlash[ id ] )
{
entity_set_string( id, EV_SZ_viewmodel, kModels[ 1 ] );
}
else if( UserIsHulk[ id ] )
{
entity_set_string( id, EV_SZ_viewmodel, kModels[ 2 ] );
}
else if( UserIsPredator[ id ] )
{
entity_set_string( id, EV_SZ_viewmodel, kModels[ 3 ] );
}
else if( UserIsElf[ id ] )
{
entity_set_string( id, EV_SZ_viewmodel, kModels[ 4 ] );
}
else if( UserIsVIp[ id ] )
{
entity_set_string( id, EV_SZ_viewmodel, kModels[ 5 ] );
}
}
}
}
return 0;
}
public evHookRoundStart( )
{
new iPlayers[ 32 ];
new iPlayersNum;
get_players( iPlayers, iPlayersNum, "ch" );
for( new i = 0 ; i < iPlayersNum ; i++ )
{
UserChoosed[ iPlayers[ i ] ] = false;
}
}
public client_PreThink( id )
{
if( is_user_alive( id ) && is_user_connected( id ) && cs_get_user_team( id ) == CS_TEAM_CT )
{
if( UserIsFlash[ id ] || UserIsVIp[ id ] )
{
set_user_maxspeed( id, FLASH_SPEED );
}
}
}
public MainMenu( id )
{
new menu = menu_create( MenuName, "MainMenuHandler" );
menu_additem( menu, "SpeeD QueeN \r[\yViteza Mare \w+ \yM4a1 \w+ \yDeagle\r]", "1", 0 );
menu_additem( menu, "GraFFeR Boy \r[\yGravitatie \w+ \yAk47 \w+ \yDeagle\r]", "2", 0 );
menu_additem( menu, "TerminaToR \r[\yDamage Ridicat \w+ \yM249 \w+ \yUsp\r]", "3", 0 );
menu_additem( menu, "ELF \r[\yInvizibilitate \w+ \yM4a1 \w+ \yUsp\r]^n", "4", 0 );
menu_additem( menu, "\rV\wi\rp \w[\rGravitatie \y+ \rViteza \y+ \rInvizibilitate \y+ \rDamage Dublu \y+ \rALL WEAPONS\w]", "5", 0 );
menu_setprop( menu, MPROP_EXITNAME, NumeSite );
menu_display( id, menu, 0 );
}
/*=======================================================================================s=P=u=f=?*/
public MainMenuHandler( id, menu, item )
{
if( item == MENU_EXIT )
{
set_task( 0.1, "MainMenu", id );
return 1;
}
if( cs_get_user_team( id ) != CS_TEAM_CT ) return 1;
new data[ 6 ], iName[ 64 ];
new iaccess, callback;
menu_item_getinfo( menu, item, iaccess, data, 5, iName, sizeof ( iName ) -1, callback );
new key = str_to_num( data );
switch( key )
{
case 1:
{
UserChoosed[ id ] = true;
ResetUserSettings( id );
GiveUserPower( id, 1 );
cs_set_user_model( id, Models[ 1 ] );
give_item(id, "weapon_m4a1");
cs_set_user_bpammo ( id, CSW_M4A1, 999);
give_item(id, "weapon_deagle");
cs_set_user_bpammo ( id, CSW_DEAGLE, 999);
engclient_cmd( id, "weapon_knife" );
return 1;
}
case 2:
{
UserChoosed[ id ] = true;
ResetUserSettings( id );
GiveUserPower( id, 2 );
cs_set_user_model( id, Models[ 2 ] );
give_item(id, "weapon_ak47");
cs_set_user_bpammo ( id, CSW_AK47, 999);
give_item(id, "weapon_deagle");
cs_set_user_bpammo ( id, CSW_DEAGLE, 999);
engclient_cmd( id, "weapon_knife" );
return 1;
}
case 3:
{
UserChoosed[ id ] = true;
ResetUserSettings( id );
GiveUserPower( id, 3 );
cs_set_user_model( id, Models[ 3 ] );
give_item(id, "weapon_m249");
cs_set_user_bpammo ( id, CSW_M249, 999);
give_item(id, "weapon_usp");
cs_set_user_bpammo ( id, CSW_USP, 999);
engclient_cmd( id, "weapon_knife" );
return 1;
}
case 4:
{
UserChoosed[ id ] = true;
ResetUserSettings( id );
GiveUserPower( id, 4 );
cs_set_user_model( id, Models[ 4 ] );
give_item(id, "weapon_m4a1");
cs_set_user_bpammo ( id, CSW_M4A1, 999);
give_item(id, "weapon_usp");
cs_set_user_bpammo ( id, CSW_USP, 999);
engclient_cmd( id, "weapon_knife" );
return 1;
}
case 5:
{
if( UserIsVip( id ) )
{
UserChoosed[ id ] = true;
ResetUserSettings( id );
GiveUserPower( id, 5 );
cs_set_user_model( id, Models[ 5 ] );
give_item(id, "weapon_ak47");
cs_set_user_bpammo ( id, CSW_AK47, 999);
give_item(id, "weapon_deagle");
cs_set_user_bpammo ( id, CSW_DEAGLE, 999);
give_item(id, "weapon_m249");
cs_set_user_bpammo ( id, CSW_M249, 999);
give_item(id, "weapon_m4a1");
cs_set_user_bpammo ( id, CSW_M4A1, 999);
give_item(id, "weapon_usp");
cs_set_user_bpammo ( id, CSW_USP, 999);
engclient_cmd( id, "weapon_knife" );
return 1;
}
else
{
MainMenu( id );
return 1;
}
}
}
return 0;
}
public GiveUserPower( id, const Class )
{
switch( Class )
{
case 1:
{
//slow hacking ?
SetCl_Settings( id, 1 );
set_user_maxspeed( id, FLASH_SPEED );
UserIsFlash[ id ] = true;
return 1;
}
case 2:
{
set_user_gravity( id, HULK_GRAVITY );
UserIsHulk[ id ] = true;
return 1;
}
case 3:
{
UserIsPredator[ id ] = true;
return 1;
}
case 4:
{
set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, ELF_INVISIBILITY );
UserIsElf[ id ] = true;
return 1;
}
case 5:
{
//Il facem Flash
SetCl_Settings( id, 1 );
set_user_maxspeed( id, FLASH_SPEED );
//Il facem Hulk
set_user_gravity( id, HULK_GRAVITY );
//Il facem Predator
//Il facem Elf
set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, ELF_INVISIBILITY );
UserIsVIp[ id ] = true;
return 1;
}
}
return 0;
}
public ResetUserSettings( id )
{
if( UserIsFlash[ id ] ) set_user_maxspeed( id, 255.0 );
if( UserIsHulk[ id ] ) set_user_gravity( id, 1.0 );
if( UserIsElf[ id ] ) set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 );
if( UserIsVIp[ id ] )
{
set_user_maxspeed( id, 255.0 );
set_user_gravity( id, 1.0 );
set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 );
}
SetCl_Settings( id, 0 );
UserIsFlash[ id ] = false;
UserIsHulk[ id ] = false;
UserIsPredator[ id ] = false;
UserIsElf[ id ] = false;
UserIsVIp[ id ] = false;
}
public SetCl_Settings( id, const OnOff )
{
if( OnOff > 0 )
{
client_cmd( id, "cl_backspeed %.1f", FLASH_SPEED );
client_cmd( id, "cl_forwardspeed %.1f", FLASH_SPEED );
client_cmd( id, "cl_sidespeed %.1f", FLASH_SPEED );
return 1;
}
client_cmd( id, "cl_backspeed 400" );
client_cmd( id, "cl_forwardspeed 400" );
client_cmd( id, "cl_sidespeed 400" );
return 0;
}
stock bool:UserIsVip( id )
{
if( get_user_flags( id ) & read_flags( "a" ) )
return true;
return false;
}