PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
// Define player models
#define CMDL "models/player/CMDL/CMDL.mdl"
// Define T player models
#define CMDLT "models/player/CMDL/CMDLT.mdl"
#define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) )
#define AUTO_TEAM_JOIN_DELAY 0.1
#define TEAM_SELECT_VGUI_MENU_ID 2
// Create arrays that will hold location to weapon models
new VIEW_MODELKNIFE[] = "models/CRYSMOD/c_v_knife.mdl"
new VIEW_MODELAUG[] = "models/CRYSMOD/c_v_aug.mdl"
new VIEW_MODELUSP[] = "models/CRYSMOD/c_v_usp.mdl"
new PLAYER_MODELAUG[] = "models/CRYSMOD/c_p_aug.mdl"
new MsgSync
new Crysis; // Holder for Crisis player id
new iRand; // The random player id
public plugin_cfg()
{
register_message(get_user_msgid("StatusIcon") , "Message_StatusIcon")
}
// Precache models and sounds for alter use
public plugin_precache()
{
console_cmd(0, "mp_autoteambalance 0")
MsgSync = CreateHudSyncObj();
precache_model(CMDL)
precache_model(CMDLT)
precache_model(VIEW_MODELKNIFE);
precache_model(VIEW_MODELAUG);
precache_model(VIEW_MODELUSP);
precache_model(PLAYER_MODELAUG);
precache_sound("boost.wav");
}
public plugin_init()
{
register_plugin("Someting","0.1","usaexelent"); // Register plugin info
register_event( "CurWeapon", "Event_CurWeapon", "be", "1=1" ); // Register curweapon
register_event("HLTV", "GetCrysis", "a", "1=0", "2=0") //Register new round
RegisterHam(Ham_Spawn, "player", "Player_Spawn_Post", 1); //Register spawn
RegisterHam(Ham_Killed, "player", "Player_Death", 1) //0 = before death 1 = after
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")
}
public Event_CurWeapon( id )
{
if( Crysis == id && is_user_alive( id ) )
{
switch( read_data(2) )
{
case CSW_KNIFE:
{
set_pev( id, pev_viewmodel2, VIEW_MODELKNIFE); // set models
set_user_rendering(id, kRenderFxGlowShell, 2, 1, 1, kRenderTransTexture, 50) // set visibility
set_user_maxspeed(id, -1)
}
case CSW_USP:
{
set_pev( id, pev_viewmodel2, VIEW_MODELUSP); // set models
set_user_rendering(id)
set_user_maxspeed(id, -1)
}
case CSW_AUG:
{
set_pev( id, pev_viewmodel2, VIEW_MODELAUG); // set models
set_pev( id, pev_weaponmodel2, PLAYER_MODELAUG ); // set models
set_user_rendering(id)
set_user_maxspeed(id, -1)
}
default:
{
set_user_rendering(id);
}
}
}
}
public GetCrysis( )
{
Crysis = 0
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum, "h" );
iRand = iPlayers[ random( iNum ) ]; // Get random player
Crysis = iRand; // Set the randplayer to be crisis :)
client_print(iRand, print_chat, "You are Crisis now!");
cs_set_user_team(iRand, CS_TEAM_CT)
for(new i=1;i < iNum;i++)
{
if(iRand != i)
cs_set_user_team(i, CS_TEAM_T)
}
}
public Player_Spawn_Post(id)
{
cs_reset_user_model(id)
if(Crysis == id)
{
set_user_health(id, ( get_user_health(id)+35 ) );
cs_set_user_armor(id, 200, CS_ARMOR_VESTHELM);
set_user_gravity(id,Float:0.9);
set_user_maxspeed(id, -1);
strip_user_weapons(id);
give_item(id,"item_longjump");
give_item(id,"weapon_aug");
give_item(id,"weapon_knife");
give_item(id,"weapon_usp");
cs_set_user_bpammo(id, CSW_AUG, 200);
cs_set_user_bpammo(id, CSW_USP, 75);
client_cmd(id, "spk ^"sound/boost.wav^"");
if (cs_get_user_team(id) == CS_TEAM_CT) {
cs_set_user_model(id, "CMDL")
}
}
set_task(0.1, "ShowCrisis", id, _, _, "b")
}
public player_death(id, killer, gib) // callback for Ham_Killed hook
{
if(Crysis == id) // if "crysis" died, clear his flag
{
Crysis = 0
}
}
public client_disconnect(id)
{
if(Crysis == id)
{
GetCrysis()
}
}
public Message_StatusIcon(iMsgId, MSG_DEST, id)
{
static szIcon[5]
get_msg_arg_string(2, szIcon, 4)
if( szIcon[0] == 'b' && szIcon[2] == 'y' && szIcon[3] == 'z' )
{
if( get_msg_arg_int(1) && cs_get_user_team(id) == 2)
{
fm_cs_set_user_nobuy(id)
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public ShowCrisis(id)
{
if(Crysis == 0)
{
set_hudmessage(255, 0, 0, -1.0, 0.07, 0, 6.0, 12.0)
ShowSyncHudMsg(id, MsgSync, "Crisis dar nepasirinktas")
}
else
{
new imname[32];
get_user_name(Crysis,imname,31);
set_hudmessage(255, 0, 0, -1.0, 0.07, 0, 6.0, 12.0)
ShowSyncHudMsg(id, MsgSync, "Crisis yra %s", imname)
}
}
public message_show_menu(msgid, dest, id)
{
static team_select[] = "#Team_Select"
static menu_text_code[sizeof team_select]
get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
if (!equal(menu_text_code, team_select))
return PLUGIN_CONTINUE
set_force_team_join_task(id, msgid)
return PLUGIN_HANDLED
}
public message_vgui_menu(msgid, dest, id)
{
if( get_user_team( id ) != 1 && get_user_team( id ) != 2 )
return PLUGIN_CONTINUE;
if (get_msg_arg_int(1) != TEAM_SELECT_VGUI_MENU_ID )
return PLUGIN_CONTINUE
set_force_team_join_task(id, msgid)
return PLUGIN_HANDLED
}
set_force_team_join_task(id, menu_msgid) {
static param_menu_msgid[2]
param_menu_msgid[0] = menu_msgid
set_task(AUTO_TEAM_JOIN_DELAY, "task_force_team_join", id, param_menu_msgid, sizeof param_menu_msgid)
}
public task_force_team_join(menu_msgid[], id) {
if (get_user_team(id))
return
force_team_join(id, menu_msgid[0], "1", "1")
}
stock force_team_join(id, menu_msgid, /* const */ team[] = "5", /* const */ class[] = "0") {
static jointeam[] = "jointeam"
if (class[0] == '0') {
engclient_cmd(id, jointeam, team)
return
}
static msg_block, joinclass[] = "joinclass"
msg_block = get_msg_block(menu_msgid)
set_msg_block(menu_msgid, BLOCK_SET)
engclient_cmd(id, jointeam, team)
engclient_cmd(id, joinclass, class)
set_msg_block(menu_msgid, msg_block)
}
all i want to do is that when you enter the server you can choose a team and later the command would be blocked