mirror of
https://github.com/alliedmodders/amxmodx.git
synced 2024-12-24 13:55:36 +03:00
Removed block from Autobuy and rebuy. Blocked items are stripped from autobuy calls.
This commit is contained in:
parent
aaf8bd7af9
commit
4d01d5625c
@ -83,7 +83,7 @@ new g_AliasBlock[MAXMENUPOS]
|
|||||||
// Second is a key for TERRORIST (all is key are minus one, 1 is 0, 2 is 1 etc.)
|
// Second is a key for TERRORIST (all is key are minus one, 1 is 0, 2 is 1 etc.)
|
||||||
// Third is a key for CT
|
// Third is a key for CT
|
||||||
// Position with -1 doesn't exist
|
// Position with -1 doesn't exist
|
||||||
new g_Keys[MAXMENUPOS][3] = {
|
new g_Keys[MAXMENUPOS][3] = {
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
{1,1,1}, // H&K USP .45 Tactical
|
{1,1,1}, // H&K USP .45 Tactical
|
||||||
{1,0,0}, // Glock18 Select Fire
|
{1,0,0}, // Glock18 Select Fire
|
||||||
@ -150,7 +150,7 @@ new g_Keys[MAXMENUPOS][3] = {
|
|||||||
{6,-1,5}, // Defuse Kit
|
{6,-1,5}, // Defuse Kit
|
||||||
{6,6,6}, // NightVision Goggles
|
{6,6,6}, // NightVision Goggles
|
||||||
{0,5,5}, // Primary weapon ammo
|
{0,5,5}, // Primary weapon ammo
|
||||||
{0,6,6} // Secondary weapon ammo
|
{0,6,6} // Secondary weapon ammo
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,52 +188,52 @@ new g_WeaponNames[MAXMENUPOS][] = {
|
|||||||
"Smoke Grenade",
|
"Smoke Grenade",
|
||||||
"Defuse Kit",
|
"Defuse Kit",
|
||||||
"NightVision Goggles",
|
"NightVision Goggles",
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
"Tactical Shield",
|
"Tactical Shield",
|
||||||
#endif
|
#endif
|
||||||
"Primary weapon ammo",
|
"Primary weapon ammo",
|
||||||
"Secondary weapon ammo"
|
"Secondary weapon ammo"
|
||||||
}
|
}
|
||||||
|
|
||||||
new g_MenuItem[MAXMENUPOS][] = {
|
new g_MenuItem[MAXMENUPOS][] = {
|
||||||
"\yHandguns^n\w^n%d. %s\y\R%s^n\w",
|
"\yHandguns^n\w^n%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
|
|
||||||
"\yShotguns^n\w^n%d. %s\y\R%s^n\w",
|
"\yShotguns^n\w^n%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
|
|
||||||
"\ySub-Machine Guns^n\w^n%d. %s\y\R%s^n\w",
|
"\ySub-Machine Guns^n\w^n%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
|
|
||||||
"\yAssault Rifles^n\w^n%d. %s\y\R%s^n\w",
|
"\yAssault Rifles^n\w^n%d. %s\y\R%s^n\w",
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
#endif
|
#endif
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
|
|
||||||
"\ySniper Rifles^n\w^n%d. %s\y\R%s^n\w",
|
"\ySniper Rifles^n\w^n%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
|
|
||||||
"\yMachine Guns^n\w^n%d. %s\y\R%s^n\w^n",
|
"\yMachine Guns^n\w^n%d. %s\y\R%s^n\w^n",
|
||||||
|
|
||||||
"\yEquipment^n\w^n%d. %s\y\R%s^n\w",
|
"\yEquipment^n\w^n%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
"%d. %s\y\R%s^n\w",
|
"%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
@ -241,9 +241,9 @@ new g_MenuItem[MAXMENUPOS][] = {
|
|||||||
"%d. %s\y\R%s^n\w^n",
|
"%d. %s\y\R%s^n\w^n",
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
"\yAmmunition^n\w^n%d. %s\y\R%s^n\w",
|
"\yAmmunition^n\w^n%d. %s\y\R%s^n\w",
|
||||||
"%d. %s\y\R%s^n\w"
|
"%d. %s\y\R%s^n\w"
|
||||||
}
|
}
|
||||||
|
|
||||||
new g_Aliases[MAXMENUPOS][] = {
|
new g_Aliases[MAXMENUPOS][] = {
|
||||||
"usp",//Pistols
|
"usp",//Pistols
|
||||||
@ -334,46 +334,11 @@ new g_Aliases2[MAXMENUPOS][] = {
|
|||||||
"secammo"
|
"secammo"
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public plugin_init(){
|
|
||||||
register_plugin("Restrict Weapons","0.16","AMXX Dev Team")
|
|
||||||
register_clcmd("buyammo1","ammoRest1")
|
|
||||||
register_clcmd("buyammo2","ammoRest2")
|
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
register_clcmd("cl_setautobuy","blockcommand")
|
#define AUTOBUYLENGTH 511
|
||||||
register_clcmd("cl_autobuy","blockcommand")
|
new g_Autobuy[33][AUTOBUYLENGTH + 1]
|
||||||
register_clcmd("cl_setrebuy","blockcommand")
|
//new g_Rebuy[33][AUTOBUYLENGTH + 1]
|
||||||
register_clcmd("cl_rebuy","blockcommand")
|
|
||||||
#endif
|
#endif
|
||||||
register_clcmd("amx_restmenu","cmdMenu",ADMIN_CFG,"- displays weapons restriction menu")
|
|
||||||
register_menucmd(register_menuid("#Buy", 1 ),511,"menuBuy")
|
|
||||||
register_menucmd(register_menuid("\yRestrict Weapons"),1023,"actionMenu")
|
|
||||||
register_menucmd(register_menuid("BuyPistol", 1 ),511,"menuPistol")
|
|
||||||
register_menucmd(register_menuid("BuyShotgun", 1 ),511,"menuShotgun")
|
|
||||||
register_menucmd(register_menuid("BuySub", 1 ),511,"menuSub")
|
|
||||||
register_menucmd(register_menuid("BuyRifle", 1 ),511,"menuRifle")
|
|
||||||
register_menucmd(register_menuid("BuyMachine", 1 ),511,"menuMachine")
|
|
||||||
register_menucmd(register_menuid("BuyItem", 1 ),511,"menuItem")
|
|
||||||
register_menucmd(-28,511,"menuBuy" )
|
|
||||||
register_menucmd(-29,511,"menuPistol" )
|
|
||||||
register_menucmd(-30,511,"menuShotgun")
|
|
||||||
register_menucmd(-32,511,"menuSub")
|
|
||||||
register_menucmd(-31,511,"menuRifle")
|
|
||||||
register_menucmd(-33,511,"menuMachine")
|
|
||||||
register_menucmd(-34,511,"menuItem")
|
|
||||||
register_concmd("amx_restrict","cmdRest",ADMIN_CFG,"- displays help for weapons restriction")
|
|
||||||
|
|
||||||
new configsDir[64];
|
|
||||||
get_configsdir(configsDir, 63);
|
|
||||||
#if defined MAPSETTINGS
|
|
||||||
new mapname[32]
|
|
||||||
get_mapname(mapname,31)
|
|
||||||
format(g_saveFile,63,"%s/weaprest_%s.ini",configsDir,mapname)
|
|
||||||
#else
|
|
||||||
format(g_saveFile,63,"%s/weaprest.ini",configsDir)
|
|
||||||
#endif
|
|
||||||
loadSettings(g_saveFile)
|
|
||||||
}
|
|
||||||
|
|
||||||
setWeapon( a , action ){
|
setWeapon( a , action ){
|
||||||
new b, m = g_Keys[a][0] * 8
|
new b, m = g_Keys[a][0] * 8
|
||||||
@ -403,7 +368,7 @@ setWeapon( a , action ){
|
|||||||
}
|
}
|
||||||
if ( action && g_AliasBlockNum < MAXMENUPOS )
|
if ( action && g_AliasBlockNum < MAXMENUPOS )
|
||||||
g_AliasBlock[ g_AliasBlockNum++ ] = a
|
g_AliasBlock[ g_AliasBlockNum++ ] = a
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
findMenuId( name[] ){
|
findMenuId( name[] ){
|
||||||
@ -432,7 +397,7 @@ switchCommand( id, action ){
|
|||||||
new bool:found = false
|
new bool:found = false
|
||||||
for(new b = 2; b < c; ++b){
|
for(new b = 2; b < c; ++b){
|
||||||
read_argv(b,arg,31)
|
read_argv(b,arg,31)
|
||||||
if ( (a = findMenuId( arg )) != -1 ){
|
if ( (a = findMenuId( arg )) != -1 ){
|
||||||
c = g_menusSets[a][1]
|
c = g_menusSets[a][1]
|
||||||
for(new i = g_menusSets[a][0]; i < c; ++i)
|
for(new i = g_menusSets[a][0]; i < c; ++i)
|
||||||
setWeapon( i , action )
|
setWeapon( i , action )
|
||||||
@ -457,7 +422,7 @@ positionBlocked( a ) {
|
|||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
|
||||||
public cmdRest(id,level,cid){
|
public cmdRest(id,level,cid){
|
||||||
if (!cmd_access(id,level,cid,1))
|
if (!cmd_access(id,level,cid,1))
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
new cmd[8]
|
new cmd[8]
|
||||||
@ -472,21 +437,21 @@ public cmdRest(id,level,cid){
|
|||||||
if (--start < 0) start = 0
|
if (--start < 0) start = 0
|
||||||
if (start >= MAXMENUPOS) start = MAXMENUPOS - 1
|
if (start >= MAXMENUPOS) start = MAXMENUPOS - 1
|
||||||
new end = start + 10
|
new end = start + 10
|
||||||
if (end > MAXMENUPOS) end = MAXMENUPOS
|
if (end > MAXMENUPOS) end = MAXMENUPOS
|
||||||
console_print(id, "^n----- Weapons Restriction: -----")
|
console_print(id, "^n----- Weapons Restriction: -----")
|
||||||
console_print(id, " %-32.31s %-10.9s %-9.8s","name","value","status")
|
console_print(id, " %-32.31s %-10.9s %-9.8s","name","value","status")
|
||||||
if ( start != -1 ) {
|
if ( start != -1 ) {
|
||||||
for(new a = start; a < end; ++a){
|
for(new a = start; a < end; ++a){
|
||||||
console_print(id, "%3d: %-32.31s %-10.9s %-9.8s",a + 1,
|
console_print(id, "%3d: %-32.31s %-10.9s %-9.8s",a + 1,
|
||||||
g_WeaponNames[a], g_Aliases[a], positionBlocked(a) ? "ON" : "OFF")
|
g_WeaponNames[a], g_Aliases[a], positionBlocked(a) ? "ON" : "OFF")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console_print(id,"----- Entries %i - %i of %i -----",start+1,end,MAXMENUPOS)
|
console_print(id,"----- Entries %i - %i of %i -----",start+1,end,MAXMENUPOS)
|
||||||
if (end < MAXMENUPOS)
|
if (end < MAXMENUPOS)
|
||||||
console_print(id,"----- Use 'amx_restrict list %i' for more -----",end+1)
|
console_print(id,"----- Use 'amx_restrict list %i' for more -----",end+1)
|
||||||
else
|
else
|
||||||
console_print(id,"----- Use 'amx_restrict list 1' for begin -----")
|
console_print(id,"----- Use 'amx_restrict list 1' for begin -----")
|
||||||
}
|
}
|
||||||
else if ( equali( "save" , cmd ) ) {
|
else if ( equali( "save" , cmd ) ) {
|
||||||
if ( saveSettings( g_saveFile ) ){
|
if ( saveSettings( g_saveFile ) ){
|
||||||
console_print( id , "Configuration has been saved (file ^"%s^")" , g_saveFile )
|
console_print( id , "Configuration has been saved (file ^"%s^")" , g_saveFile )
|
||||||
@ -497,12 +462,12 @@ public cmdRest(id,level,cid){
|
|||||||
else if ( equali( "load" , cmd ) ) {
|
else if ( equali( "load" , cmd ) ) {
|
||||||
setc( g_blockPos, 112, 0 ) // Clear current settings
|
setc( g_blockPos, 112, 0 ) // Clear current settings
|
||||||
new arg1[64]
|
new arg1[64]
|
||||||
if ( read_argv(2, arg1 , 63 ) )
|
if ( read_argv(2, arg1 , 63 ) )
|
||||||
{
|
{
|
||||||
new configsdir[32]
|
new configsdir[32]
|
||||||
get_configsdir(configsdir,31)
|
get_configsdir(configsdir,31)
|
||||||
format(arg1,63,"%s/%s",configsdir,arg1)
|
format(arg1,63,"%s/%s",configsdir,arg1)
|
||||||
}
|
}
|
||||||
if ( loadSettings( arg1 ) ){
|
if ( loadSettings( arg1 ) ){
|
||||||
console_print( id , "Configuration has been loaded (file ^"%s^")" , arg1 )
|
console_print( id , "Configuration has been loaded (file ^"%s^")" , arg1 )
|
||||||
g_Modified = true
|
g_Modified = true
|
||||||
@ -512,39 +477,39 @@ public cmdRest(id,level,cid){
|
|||||||
else {
|
else {
|
||||||
console_print(id,"Usage: amx_restrict <command> [value]")
|
console_print(id,"Usage: amx_restrict <command> [value]")
|
||||||
console_print(id,"Commands:")
|
console_print(id,"Commands:")
|
||||||
console_print(id,"^ton - set restriction on whole equipment")
|
console_print(id,"^ton - set restriction on whole equipment")
|
||||||
console_print(id,"^toff - remove restriction from whole equipment")
|
console_print(id,"^toff - remove restriction from whole equipment")
|
||||||
console_print(id,"^ton <value> [...] - set specified restriction")
|
console_print(id,"^ton <value> [...] - set specified restriction")
|
||||||
console_print(id,"^toff <value> [...] - remove specified restriction")
|
console_print(id,"^toff <value> [...] - remove specified restriction")
|
||||||
console_print(id,"^tlist - display list of available equipment and weapons")
|
console_print(id,"^tlist - display list of available equipment and weapons")
|
||||||
console_print(id,"^tsave - save restriction")
|
console_print(id,"^tsave - save restriction")
|
||||||
console_print(id,"^tload [file] - load restriction [from a file]")
|
console_print(id,"^tload [file] - load restriction [from a file]")
|
||||||
console_print(id,"Available values to restrict are:^nammo, equip, pistol, shotgun, sub, rifle, machine")
|
console_print(id,"Available values to restrict are:^nammo, equip, pistol, shotgun, sub, rifle, machine")
|
||||||
console_print(id,"Type 'amx_restrict list' for more specified values")
|
console_print(id,"Type 'amx_restrict list' for more specified values")
|
||||||
}
|
}
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
}
|
}
|
||||||
|
|
||||||
displayMenu(id,pos){
|
displayMenu(id,pos){
|
||||||
if (pos < 0) return
|
if (pos < 0) return
|
||||||
new menubody[512], start = pos * 7
|
new menubody[512], start = pos * 7
|
||||||
if (start >= MAXMENUPOS) start = pos = g_Position[id] = 0
|
if (start >= MAXMENUPOS) start = pos = g_Position[id] = 0
|
||||||
new len = format(menubody,511,"\yRestrict Weapons\R%d/5^n\w^n",pos+1)
|
new len = format(menubody,511,"\yRestrict Weapons\R%d/5^n\w^n",pos+1)
|
||||||
new end = start + 7, keys = (1<<9)|(1<<7), k = 0
|
new end = start + 7, keys = (1<<9)|(1<<7), k = 0
|
||||||
if (end > MAXMENUPOS) end = MAXMENUPOS
|
if (end > MAXMENUPOS) end = MAXMENUPOS
|
||||||
for(new a = start; a < end; ++a){
|
for(new a = start; a < end; ++a){
|
||||||
keys |= (1<<k)
|
keys |= (1<<k)
|
||||||
len += format(menubody[len],511-len,g_MenuItem[a],++k,g_WeaponNames[a],
|
len += format(menubody[len],511-len,g_MenuItem[a],++k,g_WeaponNames[a],
|
||||||
positionBlocked(a) ? "ON" : "OFF" )
|
positionBlocked(a) ? "ON" : "OFF" )
|
||||||
}
|
|
||||||
len += format(menubody[len],511-len,"^n8. Save settings \y\R%s^n\w",g_Modified?"*":"")
|
|
||||||
if (end != MAXMENUPOS){
|
|
||||||
format(menubody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
|
|
||||||
keys |= (1<<8)
|
|
||||||
}
|
}
|
||||||
else format(menubody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
|
len += format(menubody[len],511-len,"^n8. Save settings \y\R%s^n\w",g_Modified?"*":"")
|
||||||
show_menu(id,keys,menubody)
|
if (end != MAXMENUPOS){
|
||||||
}
|
format(menubody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
|
||||||
|
keys |= (1<<8)
|
||||||
|
}
|
||||||
|
else format(menubody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
|
||||||
|
show_menu(id,keys,menubody)
|
||||||
|
}
|
||||||
|
|
||||||
public actionMenu(id,key){
|
public actionMenu(id,key){
|
||||||
switch(key){
|
switch(key){
|
||||||
@ -569,45 +534,65 @@ public actionMenu(id,key){
|
|||||||
|
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
public client_command( id ){
|
public client_command( id ){
|
||||||
if ( g_AliasBlockNum ) {
|
if ( g_AliasBlockNum ) {
|
||||||
new arg[13]
|
new arg[13]
|
||||||
if ( read_argv( 0, arg , 12 ) > 11 ) /* Longest buy command has 11 chars so if command is longer then don't care */
|
|
||||||
return PLUGIN_CONTINUE
|
if ( read_argv( 0, arg , 12 ) > 11 ) /* Longest buy command has 11 chars so if command is longer then don't care */
|
||||||
new a = 0
|
return PLUGIN_CONTINUE
|
||||||
do {
|
|
||||||
if ( equal( g_Aliases[g_AliasBlock[ a ]] , arg ) ||
|
new a = 0
|
||||||
equal( g_Aliases2[g_AliasBlock[ a ]] , arg ) ) {
|
|
||||||
client_print(id,print_center,g_Restricted )
|
do {
|
||||||
return PLUGIN_HANDLED
|
if ( equal( g_Aliases[g_AliasBlock[ a ]] , arg ) ||
|
||||||
}
|
equal( g_Aliases2[g_AliasBlock[ a ]] , arg ) ) {
|
||||||
} while( ++a < g_AliasBlockNum )
|
client_print(id,print_center,g_Restricted )
|
||||||
}
|
return PLUGIN_HANDLED
|
||||||
return PLUGIN_CONTINUE
|
}
|
||||||
|
} while( ++a < g_AliasBlockNum )
|
||||||
|
}
|
||||||
|
return PLUGIN_CONTINUE
|
||||||
|
}
|
||||||
|
|
||||||
|
// JGHG: Send weapon string to this function and it returns true if weapon is blocked or false if not blocked...
|
||||||
|
stock WeaponIsBlocked(weapon[]) {
|
||||||
|
for (new a = 0; a < g_AliasBlockNum; a++) {
|
||||||
|
server_print("%d", a)
|
||||||
|
server_print(weapon)
|
||||||
|
server_print(g_Aliases[g_AliasBlock[ a ]])
|
||||||
|
server_print(g_Aliases2[g_AliasBlock[ a ]])
|
||||||
|
|
||||||
|
if ( equal( g_Aliases[g_AliasBlock[ a ]] , weapon ) ||
|
||||||
|
equal( g_Aliases2[g_AliasBlock[ a ]] , weapon ) ) {
|
||||||
|
return true // blocked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false // not blocked
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined NO_STEAM
|
#if !defined NO_STEAM
|
||||||
public blockcommand(id) {
|
public blockcommand(id) {
|
||||||
client_print(id,print_center, g_Restricted )
|
client_print(id,print_center, g_Restricted )
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public cmdMenu(id,level,cid){
|
public cmdMenu(id,level,cid){
|
||||||
if (cmd_access(id,level,cid,1))
|
if (cmd_access(id,level,cid,1))
|
||||||
displayMenu(id, g_Position[id] = 0 )
|
displayMenu(id, g_Position[id] = 0 )
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
}
|
}
|
||||||
|
|
||||||
checkRest(id,menu,key){
|
checkRest(id,menu,key){
|
||||||
if ( g_blockPos[ (menu * 8 + key) + (get_user_team(id) - 1) * 56 ] ){
|
if ( g_blockPos[ (menu * 8 + key) + (get_user_team(id) - 1) * 56 ] ){
|
||||||
engclient_cmd(id,"menuselect","10")
|
engclient_cmd(id,"menuselect","10")
|
||||||
//client_cmd(id,"slot10")
|
//client_cmd(id,"slot10")
|
||||||
client_print(id,print_center, g_Restricted )
|
client_print(id,print_center, g_Restricted )
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
}
|
}
|
||||||
return PLUGIN_CONTINUE
|
return PLUGIN_CONTINUE
|
||||||
}
|
}
|
||||||
|
|
||||||
public ammoRest1(id) return checkRest(id,0,5)
|
public ammoRest1(id) return checkRest(id,0,5)
|
||||||
public ammoRest2(id) return checkRest(id,0,6)
|
public ammoRest2(id) return checkRest(id,0,6)
|
||||||
@ -619,20 +604,20 @@ public menuRifle(id,key) return checkRest(id,4,key)
|
|||||||
public menuMachine(id,key) return checkRest(id,5,key)
|
public menuMachine(id,key) return checkRest(id,5,key)
|
||||||
public menuItem(id,key) return checkRest(id,6,key)
|
public menuItem(id,key) return checkRest(id,6,key)
|
||||||
|
|
||||||
saveSettings(filename[]){
|
saveSettings(filename[]){
|
||||||
if (file_exists(filename))
|
if (file_exists(filename))
|
||||||
delete_file(filename)
|
delete_file(filename)
|
||||||
if (!write_file(filename,"; Generated by Restrict Weapons Plugin. Do not modify!^n; value name"))
|
if (!write_file(filename,"; Generated by Restrict Weapons Plugin. Do not modify!^n; value name"))
|
||||||
return 0
|
return 0
|
||||||
new text[64]
|
new text[64]
|
||||||
for(new a = 0; a < MAXMENUPOS; ++a){
|
for(new a = 0; a < MAXMENUPOS; ++a){
|
||||||
if ( positionBlocked( a ) ) {
|
if ( positionBlocked( a ) ) {
|
||||||
format(text,63,"%-16.15s ; %s", g_Aliases[a] , g_WeaponNames[a])
|
format(text,63,"%-16.15s ; %s", g_Aliases[a] , g_WeaponNames[a])
|
||||||
write_file(filename,text)
|
write_file(filename,text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
loadSettings(filename[]){
|
loadSettings(filename[]){
|
||||||
if (!file_exists(filename)) return 0
|
if (!file_exists(filename)) return 0
|
||||||
@ -645,4 +630,163 @@ loadSettings(filename[]){
|
|||||||
setWeapon( a , 1 )
|
setWeapon( a , 1 )
|
||||||
}
|
}
|
||||||
return 1
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
// JGHG
|
||||||
|
public fn_setautobuy(id) {
|
||||||
|
// Don't do anything if no items are blocked.
|
||||||
|
if (!g_AliasBlockNum)
|
||||||
|
return PLUGIN_CONTINUE
|
||||||
|
|
||||||
|
// Empty user's autobuy prefs. (unnecessary?)
|
||||||
|
g_Autobuy[id][0] = '^0'
|
||||||
|
|
||||||
|
new argCount = read_argc()
|
||||||
|
|
||||||
|
new arg[128]
|
||||||
|
new autobuyLen = 0
|
||||||
|
for (new i = 1; i < argCount; i++) { // Start at parameter 1; parameter 0 is just "cl_setautobuy"
|
||||||
|
read_argv(i, arg, 127)
|
||||||
|
|
||||||
|
// Add this parameter to user's autobuy prefs
|
||||||
|
autobuyLen += format(g_Autobuy[id][autobuyLen], AUTOBUYLENGTH - autobuyLen, "%s", arg)
|
||||||
|
// If we detect more parameters, add a space
|
||||||
|
if (i + 1 < argCount)
|
||||||
|
autobuyLen += format(g_Autobuy[id][autobuyLen], AUTOBUYLENGTH - autobuyLen, " ")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Strip any blocked items
|
||||||
|
new strippedItems[AUTOBUYLENGTH + 1]
|
||||||
|
if (!StripBlockedItems(g_Autobuy[id], strippedItems))
|
||||||
|
return PLUGIN_CONTINUE // don't touch anything if we didn't strip anything...
|
||||||
|
|
||||||
|
//server_print("Stripped items: ^"%s^"", strippedItems)
|
||||||
|
engclient_cmd(id, "cl_setautobuy", strippedItems)
|
||||||
|
return PLUGIN_HANDLED
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Check g_Autobuy[id] for blocked items.
|
||||||
|
if (g_AliasBlockNum > 0) {
|
||||||
|
new blockedItem[AUTOBUYLENGTH + 1]
|
||||||
|
if (CheckBlockedItems(g_Autobuy[id], blockedItem)) {
|
||||||
|
client_print(id, print_center, "%c%s is blocked!", blockedItem[0] < 'a' || blockedItem[0] > 'z' ? blockedItem[0] : blockedItem[0] - 32, blockedItem[1]) // Tell what item is blocked (if first char is a letter it will be capital)
|
||||||
|
return PLUGIN_HANDLED
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
//return PLUGIN_CONTINUE
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns true if this strips any items, else false.
|
||||||
|
StripBlockedItems(inString[AUTOBUYLENGTH + 1], outString[AUTOBUYLENGTH + 1]) {
|
||||||
|
// First copy string
|
||||||
|
format(outString, AUTOBUYLENGTH, inString)
|
||||||
|
|
||||||
|
// Then strip those that are blocked.
|
||||||
|
for (new i = 0; i < g_AliasBlockNum; i++) {
|
||||||
|
while (contain(outString, g_Aliases[g_AliasBlock[i]]) != -1)
|
||||||
|
replace(outString, AUTOBUYLENGTH, g_Aliases[g_AliasBlock[i]], "")
|
||||||
|
while (contain(outString, g_Aliases2[g_AliasBlock[i]]) != -1)
|
||||||
|
replace(outString, AUTOBUYLENGTH, g_Aliases2[g_AliasBlock[i]], "")
|
||||||
|
}
|
||||||
|
|
||||||
|
// We COULD trim white space from outString here, but I don't think it really is necessary currently...
|
||||||
|
|
||||||
|
if (strlen(outString) < strlen(inString))
|
||||||
|
return true // outstring is shorter: we stripped items, return true
|
||||||
|
|
||||||
|
return false // else end here, return false, no items were stripped
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns true if any of the items in items[] are blocked, else false.
|
||||||
|
stock CheckBlockedItems(items[], blockedItem[AUTOBUYLENGTH + 1]) {
|
||||||
|
if (g_AliasBlockNum <= 0)
|
||||||
|
return false
|
||||||
|
|
||||||
|
new l_items[AUTOBUYLENGTH + 1]
|
||||||
|
format(l_items, AUTOBUYLENGTH, items)
|
||||||
|
|
||||||
|
new aValueWasParsed, parsedItem[128]
|
||||||
|
do {
|
||||||
|
aValueWasParsed = parse(l_items, parsedItem, 127)
|
||||||
|
if (strlen(parsedItem) == 0)
|
||||||
|
return false // no more items
|
||||||
|
|
||||||
|
if (aValueWasParsed) {
|
||||||
|
replace(l_items, AUTOBUYLENGTH, parsedItem, "") // Remove first parameter
|
||||||
|
|
||||||
|
if (WeaponIsBlocked(parsedItem)) {
|
||||||
|
format(blockedItem, AUTOBUYLENGTH, parsedItem)
|
||||||
|
return true // item is blocked, return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
break
|
||||||
|
}
|
||||||
|
while (aValueWasParsed)
|
||||||
|
|
||||||
|
return false // no blocked items found
|
||||||
|
}
|
||||||
|
|
||||||
|
public fn_autobuy(id) {
|
||||||
|
// Don't do anything if no items are blocked.
|
||||||
|
if (!g_AliasBlockNum)
|
||||||
|
return PLUGIN_CONTINUE
|
||||||
|
|
||||||
|
// Strip any blocked items
|
||||||
|
new strippedItems[AUTOBUYLENGTH + 1]
|
||||||
|
if (!StripBlockedItems(g_Autobuy[id], strippedItems))
|
||||||
|
return PLUGIN_CONTINUE // don't touch anything if we didn't strip anything...
|
||||||
|
|
||||||
|
//server_print("Stripped items: ^"%s^"", strippedItems)
|
||||||
|
engclient_cmd(id, "cl_setautobuy", strippedItems)
|
||||||
|
return PLUGIN_HANDLED
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public fn_setrebuy(id) {
|
||||||
|
}
|
||||||
|
public fn_rebuy(id) {
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
public plugin_init() {
|
||||||
|
register_plugin("Restrict Weapons","0.16","AMXX Dev Team")
|
||||||
|
register_clcmd("buyammo1","ammoRest1")
|
||||||
|
register_clcmd("buyammo2","ammoRest2")
|
||||||
|
#if !defined NO_STEAM
|
||||||
|
register_clcmd("cl_setautobuy", "fn_setautobuy")
|
||||||
|
register_clcmd("cl_autobuy", "fn_autobuy")
|
||||||
|
//register_clcmd("cl_setrebuy", "fn_setrebuy")
|
||||||
|
//register_clcmd("cl_rebuy", "fn_rebuy")
|
||||||
|
#endif
|
||||||
|
register_clcmd("amx_restmenu","cmdMenu",ADMIN_CFG,"- displays weapons restriction menu")
|
||||||
|
register_menucmd(register_menuid("#Buy", 1 ),511,"menuBuy")
|
||||||
|
register_menucmd(register_menuid("\yRestrict Weapons"),1023,"actionMenu")
|
||||||
|
register_menucmd(register_menuid("BuyPistol", 1 ),511,"menuPistol")
|
||||||
|
register_menucmd(register_menuid("BuyShotgun", 1 ),511,"menuShotgun")
|
||||||
|
register_menucmd(register_menuid("BuySub", 1 ),511,"menuSub")
|
||||||
|
register_menucmd(register_menuid("BuyRifle", 1 ),511,"menuRifle")
|
||||||
|
register_menucmd(register_menuid("BuyMachine", 1 ),511,"menuMachine")
|
||||||
|
register_menucmd(register_menuid("BuyItem", 1 ),511,"menuItem")
|
||||||
|
register_menucmd(-28,511,"menuBuy" )
|
||||||
|
register_menucmd(-29,511,"menuPistol" )
|
||||||
|
register_menucmd(-30,511,"menuShotgun")
|
||||||
|
register_menucmd(-32,511,"menuSub")
|
||||||
|
register_menucmd(-31,511,"menuRifle")
|
||||||
|
register_menucmd(-33,511,"menuMachine")
|
||||||
|
register_menucmd(-34,511,"menuItem")
|
||||||
|
register_concmd("amx_restrict","cmdRest",ADMIN_CFG,"- displays help for weapons restriction")
|
||||||
|
|
||||||
|
new configsDir[64];
|
||||||
|
get_configsdir(configsDir, 63);
|
||||||
|
#if defined MAPSETTINGS
|
||||||
|
new mapname[32]
|
||||||
|
get_mapname(mapname,31)
|
||||||
|
format(g_saveFile,63,"%s/weaprest_%s.ini",configsDir,mapname)
|
||||||
|
#else
|
||||||
|
format(g_saveFile,63,"%s/weaprest.ini",configsDir)
|
||||||
|
#endif
|
||||||
|
loadSettings(g_saveFile)
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user