|
发表于 2007-1-18 09:56:59
|
显示全部楼层
来自 中国–广东–深圳
回复: 发布一个 投票刀子竞技场 插件要的顶!
Post by CGstorm
需要权限吗?支持原创!!顶!为什么不发源码?
原贴地址http://forums.alliedmods.net/showthread.php?p=170215
- /****************************************************
- * AMX Mod X Script for Counter-Strike 1.6 *
- * by "SilverTide" *
- * Knives Only *
- * Version 0.1a *
- * Email = miketomasello@gmail.com *
- * http://warcraft3server.com *
- * *
- * 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 /voteknivesonly *
- * [ 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 /voteknivesonly", "cmdvote", ADMIN_VOTE, "- 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, "Knives Only has been turned off." );
- show_hudmessage ( 0, "Knives Only has been turned off." );
- } 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, "*A vote has already been cast.*" );
- return PLUGIN_HANDLED;
- }
- if ( voting && voting + get_cvar_float ( "amx_vote_delay" ) > get_gametime() ) {
- client_print ( id, print_chat, "*Please wait for a short while before you are able to vote again.*" );
- 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 has started the Vote for knivesonly", 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, "*A vote has already been cast.*" );
- return PLUGIN_HANDLED;
- }
- if ( voting && voting + get_cvar_float( "amx_vote_delay" ) > get_gametime () ) {
- client_print ( id, print_chat, "*Please wait for a short while before you are able to vote again.*" );
- 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, "*Voting has started.*" );
- 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 voted %s", name, key ? "against knives only" : "for knives only" );
- }
- ++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, "* Knives Only Mode has been voted on. (On ^"%d^") (Off ^"%d^"). *", choice[0], choice[1] );
- } else {
- server_cmd ( "amx_knivesonly 0" );
- client_print ( 0, print_chat, "* Knives Only Mode has been voted off. (On ^"%d^") (Off ^"%d^"). *", choice[0], choice[1] );
- }
- return PLUGIN_CONTINUE;
- }
复制代码 |
|