Gracz wybiera klasę batman i naciśnij V i oślepiony cely TT team dzięki wiele
KOD SMA:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#define AUTHOR "Matlaku"
#define PLUGIN "DR MENU"
#define EDIT "Chron"
#define VIP ADMIN_LEVEL_A
#define MAX_PLAYERS 32
#define SMOKE_SCALE 30
#define SMOKE_FRAMERATE 12
#define SMOKE_GROUND_OFFSET 6
static const DR[ ] = "^1[CS-FORCE]"
new HellBoyKnife[33] = 0
new Rychlost[33] = 0
new NeviditelnostHraca[33] = 0
new g_MaxClients
new g_player_class[33]
new player_bh[33]
new g_spriteid_steam1
new g_eventid_createsmoke
new const g_Sound[] = "sound/misc/spiderman.mp3"
new const c_Sound[] = "sound/misc/AliG.mp3"
new const b_Sound[] = "sound/misc/hellbo.mp3"
new const e_Sound[] = "sound/misc/jab.mp3"
new const r_Sound[] = "sound/misc/rikku1.mp3"
new const h_Sound[] = "sound/misc/robot1.mp3"
new const g_sound_explosion[] = "weapons/sg_explode.wav"
new const g_classname_grenade[] = "grenade"
new const Float:g_sign[4][2] = {{1.0, 1.0}, {1.0, -1.0}, {-1.0, -1.0}, {-1.0, 1.0}}
public plugin_init()
{
register_plugin("DR MENU", "1.3.5", "Matlaku")
register_forward(FM_EmitSound, "forward_emitsound")
register_forward(FM_PlaybackEvent, "forward_playbackevent")
RegisterHam(Ham_Spawn,"player","player_spawn" ,1);
register_forward(FM_PlayerPreThink, "bunnyhop");
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
RegisterHam(Ham_TakeDamage, "player", "DMG", false);
new iEnt = create_entity("info_target")
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1)
register_event("CurWeapon", "Speed", "be", "1=1")
g_MaxClients = get_maxplayers()
g_spriteid_steam1 = engfunc(EngFunc_PrecacheModel, "sprites/steam1.spr")
g_eventid_createsmoke = engfunc(EngFunc_PrecacheEvent, 1, "events/createsmoke.sc")
}
public player_spawn(id)
{
player_bh[id] = 0
if( is_user_alive(id) && cs_get_user_team(id) & CS_TEAM_CT )
set_task(0.1,"human_menu",id);
}
public plugin_precache()
{
precache_model("models/ProGame/hb.mdl")
precache_model("models/ProGame/spiderman.mdl")
precache_model("models/ProGame/jabjab.mdl")
precache_model("models/ProGame/alig.mdl")
precache_model("models/ProGame/Rikku.mdl")
precache_model("models/ProGame/robocop.mdl")
precache_generic(g_Sound)
precache_generic(c_Sound)
precache_generic(b_Sound)
precache_generic(e_Sound)
precache_generic(r_Sound)
precache_generic(h_Sound)
}
public human_menu(id)
{
new menu = menu_create("\yVyber si postavu ", "human_menu_handler")
menu_additem(menu, "HellBoy \r(Velmi silny)", "1", 0)
menu_additem(menu, "Spiderman \r(super skoky)", "2", 0)
menu_additem(menu, "Jab Jab \r(Rychlost)", "3", 0)
menu_additem(menu, "Ali-G \r(BunnyHop)", "4", 0)
menu_additem(menu, "Riku \r(Neviditelnost) \y[VIP]", "5", 0)
menu_additem(menu, "Robocop \r(Teleport) \y[VIP]", "6", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL, MPROP_NUMBER_COLOR, "\r" )
menu_display(id, menu, 0)
}
public human_menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 1:
{
if(is_user_alive(id))
{
{
HellBoyKnife[id] = 1
g_player_class[id] = 1
cs_set_user_model(id,"hb")
set_user_health(id, 300)
set_user_armor(id, 300)
set_user_gravity(id, 1.00)
ChatColor(id, "%s !gVybral si si postavu: !tHelBoy", DR);
client_cmd(id,"mp3 play %s",b_Sound)
}
}
else
{
ChatColor(id, "%s !gMusis !ybyt !tnazive", DR);
}
}
case 2:
{
if(is_user_alive(id))
{
{
g_player_class[id] = 2
cs_set_user_model(id,"spiderman")
set_user_health(id, 100)
set_user_armor(id, 100)
set_user_gravity(id, 0.50)
ChatColor(id, "%s !gVybral si si postavu: !tSpiderman", DR);
client_cmd(id,"mp3 play %s",g_Sound)
}
}
else
{
ChatColor(id, "%s !gMusis !ybyt !tnazive", DR);
}
}
case 3:
{
if(is_user_alive(id))
{
{
Rychlost[id] = 1
g_player_class[id] = 3
cs_set_user_model(id,"jabjab")
set_user_health(id, 100)
set_user_armor(id, 100)
set_user_gravity(id, 1.00)
set_user_maxspeed(id, 500.0)
ChatColor(id, "%s !gVybral si si postavu: !tJab Jab", DR);
client_cmd(id,"mp3 play %s",e_Sound)
}
}
else
{
ChatColor(id, "%s !gMusis !ybyt !tnazive", DR);
}
}
case 4:
{
if(is_user_alive(id))
{
{
player_bh[id] = 1
cs_set_user_model(id,"alig")
set_user_health(id, 100)
set_user_armor(id, 100)
set_user_gravity(id, 1.00)
ChatColor(id, "%s !gVybral si si postavu: !tAli-G", DR);
client_cmd(id,"mp3 play %s",c_Sound)
}
}
else
{
ChatColor(id, "%s !gMusis !ybyt !tnazive", DR);
}
}
case 5:
{
if(get_user_flags(id) && VIP)
{
if(is_user_alive(id))
{
{
g_player_class[id] = 5
cs_set_user_model(id,"Rikku")
set_user_health(id, 150)
set_user_armor(id, 150)
set_user_gravity(id, 1.00)
set_task(0.1,"Neviditelnost",id)
ChatColor(id, "%s !gVybral si si postavu !tRikku", DR);
client_cmd(id,"mp3 play %s",r_Sound)
}
}
else
{
ChatColor(id, "%s !gMusis !ybyt !tnazive", DR);
}
}
else
{
ChatColor(id, "%s Tato postava je len pre !gVIP !thracov!y!", DR);
}
}
case 6:
{
if(get_user_flags(id) && VIP)
{
if(is_user_alive(id))
{
{
g_player_class[id] = 6
cs_set_user_model(id,"robocop")
set_user_health(id, 10)
set_user_armor(id, 10)
set_user_gravity(id, 1.00)
give_item(id, "weapon_smokegrenade")
ChatColor(id, "%s !gVybral si si postavu !tRobocop", DR);
client_cmd(id,"mp3 play %s",h_Sound)
}
}
else
{
ChatColor(id, "%s !gMusis !ybyt !tnazive", DR);
}
}
else
{
ChatColor(id, "%s Tato postava je len pre !gEXTRAVIP !thracov!y!", DR);
}
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public Neviditelnost( iEnt )
{
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 0.1)
new iPlayers[MAX_PLAYERS], iNum, id, Float:fVecVelocity[3], iSpeed
get_players(iPlayers, iNum, "ae", "CT")
new iInvisibility
for(new i; i<iNum; i++)
{
id = iPlayers[i]
if( get_user_weapon(id) == CSW_KNIFE )
{
entity_get_vector(id, EV_VEC_velocity, fVecVelocity)
iSpeed = floatround( vector_length(fVecVelocity) )
if( iSpeed < 250 )
{
iInvisibility = iSpeed - (250 - iSpeed) / 3
if( iInvisibility < 0 )
{
iInvisibility = 0
}
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, iInvisibility)
}
else
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
}
}
else
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
}
}
}
public forward_emitsound(ent, channel, const sound[]) {
if (!equal(sound, g_sound_explosion) || !is_grenade(ent))
return FMRES_IGNORED
static id, Float:origin[3]
id = pev(ent, pev_owner)
pev(ent, pev_origin, origin)
engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, g_sound_explosion, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
engfunc(EngFunc_RemoveEntity, ent)
origin[2] += SMOKE_GROUND_OFFSET
create_smoke(origin)
if (is_user_alive(id)) {
static Float:mins[3], hull
pev(id, pev_mins, mins)
origin[2] -= mins[2] + SMOKE_GROUND_OFFSET
hull = pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN
if (is_hull_vacant(origin, hull))
engfunc(EngFunc_SetOrigin, id, origin)
else { // close to a solid object, trying to find a vacant spot
static Float:vec[3]
vec[2] = origin[2]
for (new i; i < sizeof g_sign; ++i) {
vec[0] = origin[0] - mins[0] * g_sign[i][0]
vec[1] = origin[1] - mins[1] * g_sign[i][1]
if (is_hull_vacant(vec, hull)) {
engfunc(EngFunc_SetOrigin, id, vec)
break
}
}
}
}
return FMRES_SUPERCEDE
}
public forward_playbackevent(flags, invoker, eventindex) {
// we do not need a large amount of smoke
if (eventindex == g_eventid_createsmoke)
return FMRES_SUPERCEDE
return FMRES_IGNORED
}
bool:is_grenade(ent) {
if (!pev_valid(ent))
return false
static classname[sizeof g_classname_grenade + 1]
pev(ent, pev_classname, classname, sizeof g_classname_grenade)
if (equal(classname, g_classname_grenade))
return true
return false
}
create_smoke(const Float:origin[3]) {
// engfunc because origin are float
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
write_byte(TE_SMOKE)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
write_short(g_spriteid_steam1)
write_byte(SMOKE_SCALE)
write_byte(SMOKE_FRAMERATE)
message_end()
}
stock bool:is_hull_vacant(const Float:origin[3], hull) {
new tr = 0
engfunc(EngFunc_TraceHull, origin, origin, 0, hull, 0, tr)
if (!get_tr2(tr, TR_StartSolid) && !get_tr2(tr, TR_AllSolid) && get_tr2(tr, TR_InOpen))
return true
return false
}
public bunnyhop(id)
{
if(!player_bh[id])
return PLUGIN_CONTINUE
if (pev(id, pev_button) & IN_JUMP) {
new flags = pev(id, pev_flags)
if (flags & FL_WATERJUMP)
return FMRES_IGNORED;
if ( pev(id, pev_waterlevel) >= 2 )
return FMRES_IGNORED;
if ( !(flags & FL_ONGROUND) )
return FMRES_IGNORED;
new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] += 250.0;
set_pev(id, pev_velocity, velocity);
set_pev(id, pev_gaitsequence, 6);
}
return FMRES_IGNORED;
}
public Spawn(id)
{
if (is_user_alive(id))
{
HellBoyKnife[id] = 0
Rychlost[id] = 0
if(!NeviditelnostHraca[id])
{
if( cs_get_user_team(id) == CS_TEAM_CT )
{
set_user_gravity(id, 1.00)
set_user_footsteps(id, 0)
}
else
{
set_user_footsteps(id, 0)
}
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
}
}
}
public Speed(id)
{
if(Rychlost[id])
{
set_user_maxspeed(id, 350.0)
}
}
public DMG(id, iInflictor, iAttacker, Float:flDamage, iBits)
{
if( !(iBits & DMG_FALL) )
{
if( 1 <= iAttacker <= g_MaxClients )
{
if( id != iAttacker )
{
if( get_user_weapon(iAttacker) == CSW_KNIFE && HellBoyKnife[iAttacker] && cs_get_user_team(iAttacker) == CS_TEAM_CT)
{
SetHamParamFloat(4, (flDamage * 2));
}
}
}
}
}
stock ChatColor(const id, const input[], any:...) {
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )
replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )
if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}


Dodatki SourceMod












