/****************************************************
* AMX Mod X Script for Counter-Strike 1.6 *
* by "SilverTide" *
* Knives Only *
* Version 0.1a *
* *
* Credits: *
* Billythekid - I had to use his knifes only *
* plugin as a reference. *
* *
* Admin Commands - *
* amx_knivesonly <1|0> (Default: 0) *
* [ Enables or Disables knives only mode ] *
* *
* Client Commands- *
* say /votekes *
* [ Starts a vote for knives only mode ] *
* *
* *
* PLUGIN DESCRIPTION : ----------------- *
* Users will be forced to use knives *
* only, any other weapons will be *
* removed. *
* *
****************************************************/
#include <amxmodx>
#include <amxmisc>
#include <fun>
new knifeonly = 0;
new choice[2];
new voteknivesonly[] = "\yKnives Only?\w^n^n1. On^n2. Off";
public plugin_init () {
register_plugin ( "Knives Only", "0.1a", "SilverTide" );
register_concmd ( "amx_knivesonly", "cmdknives_only", ADMIN_LEVEL_A, "- Turns on or off Knives Only." );
register_concmd ( "amx_voteknivesonly", "cmdvoteknives_only", ADMIN_VOTE, "- Begins a vote to enable Knives Only." );
register_concmd ( "say /votekes", "cmdvote", ADMIN_ALL, "- Begins a vote to enable Knives Only." );
register_menucmd ( register_menuid("\yKnives Only?"), (1<<0)|(1<<1), "count_votes" );
register_event ( "CurWeapon", "knife", "b" );
}
public cmdknives_only ( id ) {
new arg[2];
read_argv ( 1, arg, 1 );
set_hudmessage ( 200, 100, 0, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, 2 );
if ( equal ( arg, "1" ) ) {
knifeonly = 1;
client_cmd ( id, "weapon_knife" );
console_print ( id, "Knives Only has been turned on." );
show_hudmessage ( 0, "Knives Only has been turned on." );
} else if ( equal ( arg, "0" ) ) {
knifeonly = 0
console_print ( id, "Kes mod kikapcsolva." );
show_hudmessage ( 0, "Kes mod kikapcoslva." );
} else {
if ( knifeonly == 0 ){
console_print ( id, "Usage: amx_knivesonly 1 = 0n 0 = off Currently: OFF" );
}
if ( knifeonly == 1 ){
console_print ( id, "Usage: amx_knivesonly 1 = 0n 0 = off Currently: ON" );
}
}
return PLUGIN_CONTINUE;
}
public knife ( id ) {
if ( knifeonly == 0 ) {
// Do Nothing;
}
if ( knifeonly == 1 ) {
new clip, ammo;
new usersweapon = get_user_weapon ( id, clip, ammo );
if ( usersweapon == CSW_KNIFE ) {
// Do Nothing
} else {
// Bury player and strip of weapons, then return to starting position
new origin[3];
get_user_origin ( id, origin );
origin[2] -= 500;
set_user_origin ( id, origin );
new iwpn, iwpns[32], nwpn[32];
get_user_weapons ( id, iwpns, iwpn );
for ( new a = 0; a < iwpn; ++a ) {
get_weaponname ( iwpns[a], nwpn, 31 );
engclient_cmd ( id, "drop", nwpn );
}
new origin2[3];
get_user_origin ( id, origin2 );
origin2[2] += 500;
set_user_origin ( id, origin2 );
// Select the knife
client_cmd ( id, "weapon_knife" );
}
}
return PLUGIN_CONTINUE;
}
public cmdvote ( id ) {
new Float:voting = get_cvar_float ( "amx_last_voting" );
if ( voting > get_gametime () ) {
client_print ( id, print_chat, "*Knife mod szavazas mar elkezdodott.*" );
return PLUGIN_HANDLED;
}
if ( voting && voting + get_cvar_float ( "amx_vote_delay" ) > get_gametime() ) {
client_print ( id, print_chat, "*Varj par percet mielott szavazol.*" );
return PLUGIN_HANDLED;
}
new menu_msg[256];
new name[32];
format ( menu_msg, 255, voteknivesonly );
new Float:votetime = get_cvar_float("amx_vote_time") + 10.0;
get_user_info ( id, "name", name, 31 );
set_cvar_float ( "amx_last_voting", get_gametime() + votetime );
show_menu ( 0, (1<<0)|(1<<1), menu_msg, floatround ( votetime ) );
set_hudmessage ( 200, 0, 0, 0.05, 0.65, 2, 0.02, 30.0, 0.03, 0.3, 2 );
show_hudmessage ( 0, "%s Elkezdte a Kes mod szavazast", name );
set_task ( votetime, "check_the_votes" );
choice[0] = choice[1] = 0;
return PLUGIN_HANDLED;
}
public cmdvoteknives_only ( id ) {
new Float:voting = get_cvar_float ( "amx_last_voting" );
if ( voting > get_gametime () ) {
client_print ( id, print_chat, "*Knife mod szavazas mar elkezdodott.*" );
return PLUGIN_HANDLED;
}
if ( voting && voting + get_cvar_float( "amx_vote_delay" ) > get_gametime () ) {
client_print ( id, print_chat, "*Varj par percet mielott szavazol.*" );
return PLUGIN_HANDLED;
}
new menu_msg[256];
format ( menu_msg, 255, voteknivesonly );
new Float:votetime = get_cvar_float ( "amx_vote_time" ) + 10.0;
set_cvar_float ( "amx_last_voting", get_gametime() + votetime );
show_menu ( 0, (1<<0)|(1<<1), menu_msg, floatround ( votetime ) );
set_task ( votetime, "check_the_votes" );
client_print ( 0, print_chat, "*Knife mod szavazas elkezdodott.*" );
choice[0] = choice[1] = 0;
return PLUGIN_HANDLED;
}
public count_votes ( id, key ) {
if ( get_cvar_float ( "amx_vote_answers" ) ) {
new name[32];
get_user_name ( id, name, 31 );
client_print ( 0, print_chat, "* %s o %s szavazott", name, key ? "harc kesel" : "csak kes" );
}
++choice[key];
return PLUGIN_HANDLED;
}
public check_the_votes ( id ) {
if ( choice[0] > choice[1] ) {
server_cmd ( "amx_knivesonly 1" );
client_print ( 0, print_chat, "* Kes szavazas plugin bakapcsolva. (On ^"%d^") (Off ^"%d^"). *", choice[0], choice[1] );
} else {
server_cmd ( "amx_knivesonly 0" );
client_print ( 0, print_chat, "* Kes szavazas plugin kikapcsolva. (On ^"%d^") (Off ^"%d^"). *", choice[0], choice[1] );
}
return PLUGIN_CONTINUE;
}