/* This plugin enables weapon restriction votes in Counter-Strike. * Must be loaded AFTER plugin_CS. */ /* $Id: plugin_vote_restrict.sma,v 1.0 2001/04/06 yensid $ */ /* Should be compatible to new plugin_CS now. Untested! [WING] Black Knight */ #include <core> #include <console> #include <string> #include <admin> #include <adminlib> /* Change this to whatever ratio of players need to vote for a setting to change it. */ #define RESTRICT_VOTE_RATIO 50 #define ACCESS_VOTE_RESTRICT 1 #define MAX_MENU_CHOICES 10 #define MAX_MENUS 10 new STRING_VERSION[MAX_DATA_LENGTH] = "2.50.0"; public HandleRestrictVote(WinningOption,HLWeapon,VoteCount,UserCount) { new strNumber[MAX_NUMBER_LENGTH]; new Text[MAX_TEXT_LENGTH]; new Weapon[MAX_DATA_LENGTH]; new Menu[MAX_MENUS]; new MenuSelect[MAX_MENU_CHOICES]; new Ratio = RESTRICT_VOTE_RATIO; new Cmd[MAX_DATA_LENGTH]; convert_string(HLWeapon,Weapon,MAX_DATA_LENGTH); if (WinningOption == 1) { if (VoteCount >= Ratio*UserCount/100) { strbreak(Weapon, Menu, MenuSelect, MAX_TEXT_LENGTH); snprintf(Cmd, MAX_DATA_LENGTH, "%s %s", Menu, MenuSelect); plugin_exec("admin_restrict",Cmd); snprintf(Text, MAX_TEXT_LENGTH, "Weapon %s will be restricted due to vote.", Weapon); say(Text); } else { numtostr(Ratio*UserCount/100,strNumber); snprintf(Text, MAX_TEXT_LENGTH, "Winning vote was to restrict, but not enough votes for restriction (needed %s).", strNumber); say(Text); } } else { if (VoteCount >= Ratio*UserCount/100) { strbreak(Weapon, Menu, MenuSelect, MAX_TEXT_LENGTH); snprintf(Cmd, MAX_DATA_LENGTH, "%s %s", Menu, MenuSelect); plugin_exec("admin_unrestrict",Cmd); snprintf(Text, MAX_TEXT_LENGTH, "Weapon %s will be enabled due to vote.", Weapon); say(Text); } else { numtostr(Ratio*UserCount/100,strNumber); snprintf(Text, MAX_TEXT_LENGTH, "Winning vote was to enable, but not enough votes to change setting (needed %s).", strNumber); say(Text); } } } public admin_vote_restrict(HLCommand,HLData,HLUserName,UserIndex) { new Command[MAX_COMMAND_LENGTH]; new Data[MAX_DATA_LENGTH]; new User[MAX_NAME_LENGTH]; new Menu[MAX_MENUS]; new Weapon[MAX_MENU_CHOICES]; new Text[MAX_TEXT_LENGTH]; new Msg[MAX_DATA_LENGTH]; convert_string(HLCommand,Command,MAX_COMMAND_LENGTH); convert_string(HLData,Data,MAX_DATA_LENGTH); convert_string(HLUserName,User,MAX_NAME_LENGTH); log_command(User,Command,Data); strbreak(Data,Menu,Weapon,MAX_TEXT_LENGTH); new MenuNum=strtonum(Menu); new WeaponNum=strtonum(Weapon); if (vote_allowed()!=1) { selfmessage( "Vote not allowed at this time."); return PLUGIN_HANDLED; } if(MenuNum==1 && WeaponNum ==1) strcpy(Text,"USP",MAX_TEXT_LENGTH); else if(MenuNum==1 && WeaponNum ==2) strcpy(Text,"Glock",MAX_TEXT_LENGTH); else if(MenuNum==1 && WeaponNum ==3) strcpy(Text,"DE",MAX_TEXT_LENGTH); else if(MenuNum==1 && WeaponNum ==4) strcpy(Text,"P228",MAX_TEXT_LENGTH); else if(MenuNum==1 && WeaponNum ==5) strcpy(Text,"Dual Berettas",MAX_TEXT_LENGTH); else if(MenuNum==1 && WeaponNum==6) strcpy(Text,"Five-Seven",MAX_TEXT_LENGTH); else if(MenuNum==2 && WeaponNum ==1) strcpy(Text,"Super90",MAX_TEXT_LENGTH); else if(MenuNum==2 && WeaponNum ==2) strcpy(Text,"XM1014",MAX_TEXT_LENGTH); else if(MenuNum==3 && WeaponNum ==1) strcpy(Text,"MP5",MAX_TEXT_LENGTH); else if(MenuNum==3 && WeaponNum ==2) strcpy(Text,"TMP",MAX_TEXT_LENGTH); else if(MenuNum==3 && WeaponNum ==3) strcpy(Text,"P90",MAX_TEXT_LENGTH); else if(MenuNum==3 && WeaponNum ==4) strcpy(Text,"Mac10",MAX_TEXT_LENGTH); else if(MenuNum==3 && WeaponNum ==5) strcpy(Text,"UMP",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==1) strcpy(Text,"AK-47",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==2) strcpy(Text,"Sig 552",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==3) strcpy(Text,"M4A1",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==4) strcpy(Text,"Aug",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==5) strcpy(Text,"Scout",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==6) strcpy(Text,"AWM/P",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==7) strcpy(Text,"G3/SG1",MAX_TEXT_LENGTH); else if(MenuNum==4 && WeaponNum ==8) strcpy(Text,"Sig 550",MAX_TEXT_LENGTH); else if(MenuNum==5 && WeaponNum ==1) strcpy(Text,"Para",MAX_TEXT_LENGTH); else if(MenuNum==8 && WeaponNum ==1) strcpy(Text,"Kevlar",MAX_TEXT_LENGTH); else if(MenuNum==8 && WeaponNum ==2) strcpy(Text,"Helmet",MAX_TEXT_LENGTH); else if(MenuNum==8 && WeaponNum ==3) strcpy(Text,"Flashbang",MAX_TEXT_LENGTH); else if(MenuNum==8 && WeaponNum ==4) strcpy(Text,"HE Grenade",MAX_TEXT_LENGTH); else if(MenuNum==8 && WeaponNum ==5) strcpy(Text,"Smoke Grenade",MAX_TEXT_LENGTH); else if(MenuNum==8 && WeaponNum ==7) strcpy(Text,"Nightvision",MAX_TEXT_LENGTH); if (Weapon[0]!=NULL_CHAR) { snprintf(Msg, MAX_TEXT_LENGTH, "Restrict Weapon %i %i: %s?", MenuNum, WeaponNum, Text); vote(Msg,"Yes","No","HandleRestrictVote",Data); } else { selfmessage("Unparseable weapon: "); selfmessage(Data); } return PLUGIN_HANDLED; } public plugin_init() { plugin_registerinfo("Restrict Vote Plugin","Enables votes on restricting weapons.",STRING_VERSION); plugin_registercmd("admin_vote_restrict","admin_vote_restrict",ACCESS_VOTE_RESTRICT,"admin_vote_restrict <menu> <weapon> : Starts a vote to enable/restrict weapons."); return PLUGIN_CONTINUE; }