updated to use the multi-lingual system | better code style

This commit is contained in:
Felix Geyer 2004-08-06 18:40:41 +00:00
parent 80a32b6d08
commit a8dab8993e
6 changed files with 562 additions and 578 deletions

View File

@ -53,35 +53,37 @@ new g_clcmdNum
new g_coloredMenus
public plugin_init()
{
public plugin_init() {
register_plugin("Players Menu",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("plmenu.txt")
register_dictionary("common.txt")
register_clcmd("amx_kickmenu","cmdKickMenu",ADMIN_KICK,"- displays kick menu")
register_clcmd("amx_banmenu","cmdBanMenu",ADMIN_BAN,"- displays ban menu")
register_clcmd("amx_slapmenu","cmdSlapMenu",ADMIN_SLAY,"- displays slap/slay menu")
register_clcmd("amx_teammenu","cmdTeamMenu",ADMIN_LEVEL_A,"- displays team menu")
register_clcmd("amx_clcmdmenu","cmdClcmdMenu",ADMIN_LEVEL_A,"- displays client cmds menu")
register_clcmd("amx_slapmenu","cmdSlapMenu",ADMIN_SLAY,"- displays slap/slay menu")
register_clcmd("amx_teammenu","cmdTeamMenu",ADMIN_LEVEL_A,"- displays team menu")
register_clcmd("amx_clcmdmenu","cmdClcmdMenu",ADMIN_LEVEL_A,"- displays client cmds menu")
register_menucmd(register_menuid("Ban Menu"),1023,"actionBanMenu")
register_menucmd(register_menuid("Kick Menu"),1023,"actionKickMenu")
register_menucmd(register_menuid("Slap/Slay Menu"),1023,"actionSlapMenu")
register_menucmd(register_menuid("Team Menu"),1023,"actionTeamMenu")
register_menucmd(register_menuid("Client Cmds Menu"),1023,"actionClcmdMenu")
register_menucmd(register_menuid("Client Cmds Menu"),1023,"actionClcmdMenu")
g_coloredMenus = colored_menus()
new clcmds_ini_file[64];
get_configsdir(clcmds_ini_file, 63);
format(clcmds_ini_file, 63, "%s/clcmds.ini", clcmds_ini_file);
new clcmds_ini_file[64]
get_configsdir(clcmds_ini_file, 63)
format(clcmds_ini_file, 63, "%s/clcmds.ini", clcmds_ini_file)
load_settings(clcmds_ini_file)
}
/* Ban menu */
public actionBanMenu(id,key)
{
switch(key){
case 7:{
public actionBanMenu(id,key) {
switch (key) {
case 7: {
++g_menuOption[id]
g_menuOption[id] %= 3
@ -93,9 +95,9 @@ public actionBanMenu(id,key)
displayBanMenu(id,g_menuPosition[id])
}
case 8: displayBanMenu(id,++g_menuPosition[id])
case 9: displayBanMenu(id,--g_menuPosition[id])
default:{
case 8: displayBanMenu(id,++g_menuPosition[id])
case 9: displayBanMenu(id,--g_menuPosition[id])
default: {
new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
new name[32], name2[32], authid[32],authid2[32]
@ -104,34 +106,32 @@ public actionBanMenu(id,key)
get_user_authid(player,authid2,31)
get_user_name(id,name,31)
new userid2 = get_user_userid(player)
log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^")",
name,get_user_userid(id),authid, name2,userid2,authid2, g_menuSettings[id] )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: ban %s",name,name2)
case 1: client_print(0,print_chat,"ADMIN: ban %s",name2)
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_BAN_2",name,name2)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_BAN_1",name2)
}
if (equal("4294967295",authid2)){ /* lan */
if (equal("4294967295",authid2)) { /* lan */
new ipa[32]
get_user_ip(player,ipa,31,1)
server_cmd("addip %d %s;writeip",g_menuSettings[id],ipa)
}
else
server_cmd("banid %d #%d kick;writeid",g_menuSettings[id],userid2)
server_exec()
displayBanMenu(id,g_menuPosition[id])
}
}
return PLUGIN_HANDLED
}
displayBanMenu(id,pos){
displayBanMenu(id,pos) {
if (pos < 0) return
get_players(g_menuPlayers[id],g_menuPlayersNum[id])
@ -146,88 +146,81 @@ displayBanMenu(id,pos){
start = pos = g_menuPosition[id] = 0
new len = format(menuBody,511, g_coloredMenus ?
"\yBan Menu\R%d/%d^n\w^n" : "Ban Menu %d/%d^n^n",
pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
"\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n",
id,"BAN_MENU",pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
new end = start + 7
new keys = MENU_KEY_0|MENU_KEY_8
if (end > g_menuPlayersNum[id])
end = g_menuPlayersNum[id]
for(new a = start; a < end; ++a)
{
for (new a = start; a < end; ++a) {
i = g_menuPlayers[id][a]
get_user_name(i,name,31)
if ( is_user_bot(i) || (get_user_flags(i)&ADMIN_IMMUNITY) )
{
if ( is_user_bot(i) || access(i,ADMIN_IMMUNITY) ) {
++b
if ( g_coloredMenus )
len += format(menuBody[len],511-len,"\d%d. %s^n\w",b,name)
else
len += format(menuBody[len],511-len,"#. %s^n",name)
}
else
{
else {
keys |= (1<<b)
len += format(menuBody[len],511-len,"%d. %s^n",++b,name)
}
}
if ( g_menuSettings[id] )
len += format(menuBody[len],511-len,"^n8. Ban for %d minutes^n" , g_menuSettings[id] )
len += format(menuBody[len],511-len,"^n8. %L^n", id, "BAN_FOR_MIN", g_menuSettings[id] )
else
len += format(menuBody[len],511-len,"^n8. Ban permanently^n" )
if (end != g_menuPlayersNum[id])
{
format(menuBody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
len += format(menuBody[len],511-len,"^n8. %L^n", id, "BAN_PERM" )
if (end != g_menuPlayersNum[id]) {
format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menuBody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menuBody)
else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menuBody,-1,"Ban Menu")
}
public cmdBanMenu(id,level,cid)
{
if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
public cmdBanMenu(id,level,cid) {
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
g_menuOption[id] = 1
g_menuSettings[id] = 5
displayBanMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}
/* Slap/Slay */
public actionSlapMenu(id,key)
{
switch(key){
case 7:{
public actionSlapMenu(id,key) {
switch (key) {
case 7: {
++g_menuOption[id]
g_menuOption[id] %= 4
switch(g_menuOption[id]){
case 1: g_menuSettings[id] = 0
case 2: g_menuSettings[id] = 1
case 3: g_menuSettings[id] = 5
switch (g_menuOption[id]) {
case 1: g_menuSettings[id] = 0
case 2: g_menuSettings[id] = 1
case 3: g_menuSettings[id] = 5
}
displaySlapMenu(id,g_menuPosition[id])
}
case 8: displaySlapMenu(id,++g_menuPosition[id])
case 9: displaySlapMenu(id,--g_menuPosition[id])
default:{
case 8: displaySlapMenu(id,++g_menuPosition[id])
case 9: displaySlapMenu(id,--g_menuPosition[id])
default: {
new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
new name2[32]
get_user_name(player,name2,31)
if (!is_user_alive(player))
{
client_print(id,print_chat,"That action can't be performed on dead client ^"%s^"",name2)
if (!is_user_alive(player)) {
client_print(id,print_chat,"%L",id,"CANT_PERF_DEAD",name2)
displaySlapMenu(id,g_menuPosition[id])
return PLUGIN_HANDLED
}
@ -241,17 +234,17 @@ public actionSlapMenu(id,key)
if ( g_menuOption[id] ) {
log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"",
name,get_user_userid(id),authid, g_menuSettings[id], name2,get_user_userid(player),authid2 )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: slap %s with %d damage",name,name2,g_menuSettings[id])
case 1: client_print(0,print_chat,"ADMIN: slap %s with %d damage",name2,g_menuSettings[id])
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAP_2",name,name2,g_menuSettings[id])
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAP_1",name2,g_menuSettings[id])
}
}
else {
log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"",
name,get_user_userid(id),authid, name2,get_user_userid(player),authid2 )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: slay %s",name,name2)
case 1: client_print(0,print_chat,"ADMIN: slay %s",name2)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAY_2",name,name2)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAY_1",name2)
}
}
@ -267,79 +260,74 @@ public actionSlapMenu(id,key)
}
displaySlapMenu(id,pos){
displaySlapMenu(id,pos) {
if (pos < 0) return
get_players(g_menuPlayers[id],g_menuPlayersNum[id])
new menuBody[512]
new b = 0
new i
new name[32], team[4]
new start = pos * 7
if (start >= g_menuPlayersNum[id])
start = pos = g_menuPosition[id] = 0
new len = format(menuBody,511, g_coloredMenus ?
"\ySlap/Slay Menu\R%d/%d^n\w^n" : "Slap/Slay Menu %d/%d^n^n" ,
pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
"\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n",
id,"SLAP_SLAY_MENU",pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
new end = start + 7
new keys = MENU_KEY_0|MENU_KEY_8
if (end > g_menuPlayersNum[id])
end = g_menuPlayersNum[id]
for(new a = start; a < end; ++a)
{
for (new a = start; a < end; ++a) {
i = g_menuPlayers[id][a]
get_user_name(i,name,31)
get_user_team(i,team,3)
if ( !is_user_alive(i) || (get_user_flags(i)&ADMIN_IMMUNITY) )
{
if ( !is_user_alive(i) || access(i,ADMIN_IMMUNITY) ) {
++b
if ( g_coloredMenus )
len += format(menuBody[len],511-len,"\d%d. %s\R%s^n\w", b,name,team)
else
len += format(menuBody[len],511-len,"#. %s %s^n",name,team)
}
else
{
keys |= (1<<b)
len += format(menuBody[len],511-len, g_coloredMenus ?
"%d. %s\y\R%s^n\w" : "%d. %s %s^n",++b,name,team)
}
}
if ( g_menuOption[id] )
len += format(menuBody[len],511-len,"^n8. Slap with %d damage^n",g_menuSettings[id] )
if ( g_menuOption[id] )
len += format(menuBody[len],511-len,"^n8. %L^n",id,"SLAP_WITH_DMG",g_menuSettings[id] )
else
len += format(menuBody[len],511-len,"^n8. Slay^n")
if (end != g_menuPlayersNum[id])
{
format(menuBody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
len += format(menuBody[len],511-len,"^n8. %L^n",id,"SLAY")
if (end != g_menuPlayersNum[id]) {
format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menuBody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menuBody)
else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menuBody,-1,"Slap/Slay Menu")
}
public cmdSlapMenu(id,level,cid)
{
if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
g_menuOption[id] = 0
g_menuSettings[id] = 0
displaySlapMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}
@ -347,27 +335,27 @@ public cmdSlapMenu(id,level,cid)
public actionKickMenu(id,key)
{
switch(key){
case 8: displayKickMenu(id,++g_menuPosition[id])
case 9: displayKickMenu(id,--g_menuPosition[id])
default:{
switch (key) {
case 8: displayKickMenu(id,++g_menuPosition[id])
case 9: displayKickMenu(id,--g_menuPosition[id])
default: {
new player = g_menuPlayers[id][g_menuPosition[id] * 8 + key]
new authid[32],authid2[32], name[32], name2[32]
get_user_authid(id,authid,31)
get_user_authid(player,authid2,31)
get_user_name(id,name,31)
get_user_name(player,name2,31)
new userid2 = get_user_userid(player)
log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^"",
name,get_user_userid(id),authid, name2,userid2,authid2 )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: kick %s",name,name2)
case 1: client_print(0,print_chat,"ADMIN: kick %s",name2)
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_KICK_2",name,name2)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_KICK_1",name2)
}
server_cmd("kick #%d",userid2)
server_exec()
@ -377,39 +365,35 @@ public actionKickMenu(id,key)
return PLUGIN_HANDLED
}
displayKickMenu(id,pos){
displayKickMenu(id,pos) {
if (pos < 0) return
get_players(g_menuPlayers[id],g_menuPlayersNum[id])
new menuBody[512]
new b = 0
new i
new name[32]
new start = pos * 8
if (start >= g_menuPlayersNum[id])
start = pos = g_menuPosition[id] = 0
new len = format(menuBody,511, g_coloredMenus ?
"\yKick Menu\R%d/%d^n\w^n" : "Kick Menu %d/%d^n^n",
pos+1,( g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0 )) )
"\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n",
id,"KICK_MENU",pos+1,( g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0 )) )
new end = start + 8
new keys = MENU_KEY_0
if (end > g_menuPlayersNum[id])
end = g_menuPlayersNum[id]
for(new a = start; a < end; ++a)
{
for (new a = start; a < end; ++a) {
i = g_menuPlayers[id][a]
get_user_name(i,name,31)
if ( get_user_flags(i) & ADMIN_IMMUNITY )
{
if ( access(i,ADMIN_IMMUNITY) ) {
++b
if ( g_coloredMenus )
len += format(menuBody[len],511-len,"\d%d. %s^n\w",b,name)
@ -417,58 +401,54 @@ displayKickMenu(id,pos){
len += format(menuBody[len],511-len,"#. %s^n",name)
}
else
{
else {
keys |= (1<<b)
len += format(menuBody[len],511-len,"%d. %s^n",++b,name)
}
}
if (end != g_menuPlayersNum[id])
{
format(menuBody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
if (end != g_menuPlayersNum[id]) {
format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menuBody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menuBody)
else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menuBody,-1,"Kick Menu")
}
public cmdKickMenu(id,level,cid)
{
public cmdKickMenu(id,level,cid) {
if (cmd_access(id,level,cid,1))
displayKickMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}
/* Team menu */
public actionTeamMenu(id,key)
{
switch(key){
case 7:{
public actionTeamMenu(id,key) {
switch (key) {
case 7:{
g_menuOption[id] = 1 - g_menuOption[id]
displayTeamMenu(id,g_menuPosition[id])
}
case 8: displayTeamMenu(id,++g_menuPosition[id])
case 9: displayTeamMenu(id,--g_menuPosition[id])
default:{
case 8: displayTeamMenu(id,++g_menuPosition[id])
case 9: displayTeamMenu(id,--g_menuPosition[id])
default: {
new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
new authid[32],authid2[32], name[32], name2[32]
get_user_name(player,name2,31)
get_user_authid(id,authid,31)
get_user_authid(player,authid2,31)
get_user_name(id,name,31)
log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")",
name,get_user_userid(id),authid, name2,get_user_userid(player),authid2, g_menuOption[id] ? "TERRORIST" : "CT" )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: transfer %s to %s",name,name2,g_menuOption[id] ? "TERRORIST" : "CT" )
case 1: client_print(0,print_chat,"ADMIN: transfer %s to %s",name2,g_menuOption[id] ? "TERRORIST" : "CT" )
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%L",id,"ADMIN_TRANSF_2",name,name2,g_menuOption[id] ? "TERRORIST" : "CT" )
case 1: client_print(0,print_chat,"%L",id,"ADMIN_TRANSF_1",name2,g_menuOption[id] ? "TERRORIST" : "CT" )
}
new limitt = get_cvar_num("mp_limitteams")
set_cvar_num("mp_limitteams",0)
user_kill(player,1)
@ -477,7 +457,7 @@ public actionTeamMenu(id,key)
engclient_cmd(player, "menuselect", "5")
client_cmd(player,"slot1")
set_cvar_num("mp_limitteams",limitt)
displayTeamMenu(id,g_menuPosition[id])
}
}
@ -485,90 +465,83 @@ public actionTeamMenu(id,key)
}
displayTeamMenu(id,pos){
displayTeamMenu(id,pos) {
if (pos < 0) return
get_players(g_menuPlayers[id],g_menuPlayersNum[id])
new menuBody[512]
new b = 0
new i, iteam
new name[32], team[4]
new start = pos * 7
if (start >= g_menuPlayersNum[id])
start = pos = g_menuPosition[id] = 0
new len = format(menuBody,511, g_coloredMenus ?
"\yTeam Menu\R%d/%d^n\w^n" : "Team Menu %d/%d^n^n",
pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
"\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n",
id,"TEAM_MENU",pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
new end = start + 7
new keys = MENU_KEY_0|MENU_KEY_8
if (end > g_menuPlayersNum[id])
end = g_menuPlayersNum[id]
for(new a = start; a < end; ++a)
{
for (new a = start; a < end; ++a) {
i = g_menuPlayers[id][a]
get_user_name(i,name,31)
iteam = get_user_team(i,team,3)
if ( (iteam == (g_menuOption[id] ? 1 : 2)) || (get_user_flags(i)&ADMIN_IMMUNITY) )
{
if ( (iteam == (g_menuOption[id] ? 1 : 2)) || access(i,ADMIN_IMMUNITY) ) {
++b
if ( g_coloredMenus )
len += format(menuBody[len],511-len,"\d%d. %s\R%s^n\w",b,name,team)
else
len += format(menuBody[len],511-len,"#. %s %s^n",name,team)
}
else
{
else {
keys |= (1<<b)
len += format(menuBody[len],511-len, g_coloredMenus ?
"%d. %s\y\R%s^n\w" : "%d. %s %s^n",++b,name,team)
}
}
len += format(menuBody[len],511-len,"^n8. Transfer to %s^n",g_menuOption[id] ? "TERRORIST" : "CT" )
len += format(menuBody[len],511-len,"^n8. %L^n",id,"TRANSF_TO",g_menuOption[id] ? "TERRORIST" : "CT" )
if (end != g_menuPlayersNum[id])
{
format(menuBody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menuBody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menuBody)
else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menuBody,-1,"TEAM_MENU")
}
public cmdTeamMenu(id,level,cid)
{
public cmdTeamMenu(id,level,cid) {
if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
g_menuOption[id] = 0
displayTeamMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}
/* Client cmds menu */
public actionClcmdMenu(id,key)
{
switch(key){
case 7:{
public actionClcmdMenu(id,key) {
switch (key) {
case 7:{
++g_menuOption[id]
g_menuOption[id] %= g_menuSelectNum[id]
displayClcmdMenu(id,g_menuPosition[id])
}
case 8: displayClcmdMenu(id,++g_menuPosition[id])
case 9: displayClcmdMenu(id,--g_menuPosition[id])
default:{
case 8: displayClcmdMenu(id,++g_menuPosition[id])
case 9: displayClcmdMenu(id,--g_menuPosition[id])
default: {
new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
new flags = g_clcmdMisc[g_menuSelect[id][g_menuOption[id]]][1]
if (is_user_connected(player)) {
@ -580,7 +553,7 @@ public actionClcmdMenu(id,key)
replace(command,63,"%userid%",userid)
replace(command,63,"%authid%",authid)
replace(command,63,"%name%",name)
if (flags & 1){
if (flags & 1) {
server_cmd(command)
server_exec()
}
@ -589,118 +562,108 @@ public actionClcmdMenu(id,key)
else if (flags & 4)
client_cmd(player,command)
}
if (flags & 8) displayClcmdMenu(id,g_menuPosition[id])
if (flags & 8) displayClcmdMenu(id,g_menuPosition[id])
}
}
return PLUGIN_HANDLED
}
displayClcmdMenu(id,pos) {
if (pos < 0) return
displayClcmdMenu(id,pos){
if (pos < 0) return
get_players(g_menuPlayers[id],g_menuPlayersNum[id])
new menuBody[512]
new b = 0
new i
new name[32]
new start = pos * 7
if (start >= g_menuPlayersNum[id])
start = pos = g_menuPosition[id] = 0
new len = format(menuBody,511, g_coloredMenus ?
"\yClient Cmds Menu\R%d/%d^n\w^n" : "Client Cmds Menu %d/%d^n^n",
pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
"\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n",
id, "CL_CMD_MENU", pos+1,( g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0 )) )
new end = start + 7
new keys = MENU_KEY_0|MENU_KEY_8
if (end > g_menuPlayersNum[id])
end = g_menuPlayersNum[id]
for(new a = start; a < end; ++a)
{
for (new a = start; a < end; ++a) {
i = g_menuPlayers[id][a]
get_user_name(i,name,31)
if ( !g_menuSelectNum[id] || get_user_flags(i)&ADMIN_IMMUNITY )
{
if ( !g_menuSelectNum[id] || access(i,ADMIN_IMMUNITY) ) {
++b
if ( g_coloredMenus )
len += format(menuBody[len],511-len,"\d%d. %s^n\w",b,name)
else
len += format(menuBody[len],511-len,"#. %s^n",name)
}
else
{
else {
keys |= (1<<b)
len += format(menuBody[len],511-len,"%d. %s^n",++b,name)
}
}
if ( g_menuSelectNum[id] )
len += format(menuBody[len],511-len,"^n8. %s^n", g_clcmdName[g_menuSelect[id][g_menuOption[id]]] )
else
len += format(menuBody[len],511-len,"^n8. No cmds available^n")
len += format(menuBody[len],511-len,"^n8. %L^n",id,"NO_CMDS")
if (end != g_menuPlayersNum[id])
{
format(menuBody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
if (end != g_menuPlayersNum[id]) {
format(menuBody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menuBody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menuBody)
else format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menuBody,-1,"Client Cmds Menu")
}
public cmdClcmdMenu(id,level,cid)
{
if (!cmd_access(id,level,cid,1)) return PLUGIN_HANDLED
public cmdClcmdMenu(id,level,cid) {
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
new flags = get_user_flags(id)
g_menuSelectNum[id] = 0
for(new a = 0; a < g_clcmdNum; ++a)
for (new a = 0; a < g_clcmdNum; ++a)
if (g_clcmdMisc[a][0] & flags)
g_menuSelect[id][g_menuSelectNum[id]++] = a
g_menuOption[id] = 0
displayClcmdMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}
load_settings( szFilename[] )
{
load_settings( szFilename[] ) {
if ( !file_exists ( szFilename ) )
return 0
new text[256], szFlags[32], szAccess[32]
new a, pos = 0
while ( g_clcmdNum < MAX_CLCMDS && read_file (szFilename,pos++,text,255,a) )
{
while ( g_clcmdNum < MAX_CLCMDS && read_file (szFilename,pos++,text,255,a) ) {
if ( text[0] == ';' ) continue
if ( parse( text , g_clcmdName[g_clcmdNum] , 31 ,
g_clcmdCmd[g_clcmdNum] ,63,szFlags,31,szAccess,31 ) > 3 )
{
while ( replace( g_clcmdCmd[ g_clcmdNum ] ,63,"\'","^"") ) {
// do nothing
}
g_clcmdMisc[ g_clcmdNum ][1] = read_flags ( szFlags )
g_clcmdMisc[ g_clcmdNum ][0] = read_flags ( szAccess )
g_clcmdNum++
}
}
return 1
}

View File

@ -149,47 +149,47 @@ new g_WeaponNames[MAXMENUPOS][] = {
}
new g_MenuItem[MAXMENUPOS][] = {
"\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^n",
"\yHandguns^n\w^n%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w^n",
"\yShotguns^n\w^n%d. %s\y\R%s^n\w",
"%d. %s\y\R%s^n\w^n",
"\yShotguns^n\w^n%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w^n",
"\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^n",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w^n",
"\yAssault 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%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w^n",
"\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^n",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^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%L^n\w^n",
"\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^n",
"\yEquipment^n\w^n%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w^n",
"\yAmmunition^n\w^n%d. %s\y\R%s^n\w",
"%d. %s\y\R%s^n\w"
"\yAmmunition^n\w^n%d. %s\y\R%L^n\w",
"%d. %s\y\R%L^n\w"
}
new g_Aliases[MAXMENUPOS][] = {
@ -281,7 +281,7 @@ new g_Aliases2[MAXMENUPOS][] = {
new g_Autobuy[33][AUTOBUYLENGTH + 1]
//new g_Rebuy[33][AUTOBUYLENGTH + 1]
setWeapon( a , action ){
setWeapon( a , action ) {
new b, m = g_Keys[a][0] * 8
if (g_Keys[a][1] != -1) {
b = m + g_Keys[a][1]
@ -298,7 +298,7 @@ setWeapon( a , action ){
g_blockPos[ b ] = action
}
for(new i = 0; i < g_AliasBlockNum; ++i)
for (new i = 0; i < g_AliasBlockNum; ++i)
if ( g_AliasBlock[ i ] == a ){
if ( !action || action == 2 ) {
--g_AliasBlockNum
@ -311,58 +311,58 @@ setWeapon( a , action ){
g_AliasBlock[ g_AliasBlockNum++ ] = a
}
findMenuId( name[] ){
findMenuId( name[] ) {
for(new i = 0; i < 7 ; ++i)
if( equal( name , g_menusNames[i] ) )
return i
return -1
}
findAliasId( name[] ){
findAliasId( name[] ) {
for(new i = 0; i < MAXMENUPOS ; ++i)
if( equal( name , g_Aliases[i] ) )
return i
return -1
}
switchCommand( id, action ){
switchCommand( id, action ) {
new c = read_argc()
if ( c < 3 ){
if ( c < 3 ) {
setc( g_blockPos, 112, action )
console_print( id , "Equipment and weapons have been %srestricted" , action ? "" : "un" )
console_print( id, "%L", id, action ? "EQ_WE_RES" : "EQ_WE_UNRES" )
g_Modified = true
}
else {
new arg[32], a
new bool:found = false
for(new b = 2; b < c; ++b){
for (new b = 2; b < c; ++b) {
read_argv(b,arg,31)
if ( (a = findMenuId( arg )) != -1 ){
if ( (a = findMenuId( arg )) != -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 )
console_print( id , "%s %s been %srestricted" , g_MenuTitle[a], (a<5) ? "have" : "has" , action ? "" : "un" )
console_print( id , "%s %L %L", g_MenuTitle[a], id, (a<5) ? "HAVE_BEEN" : "HAS_BEEN" , action ? "RESTRICTED" : "UNRESTRICTED" )
g_Modified = found = true
}
else if ( (a = findAliasId( arg )) != -1 ){
else if ( (a = findAliasId( arg )) != -1 ) {
g_Modified = found = true
setWeapon( a , action )
console_print( id , "%s has been %srestricted" , g_WeaponNames[a], action ? "" : "un" )
console_print( id , "%s %L %L", g_WeaponNames[a], id, "HAS_BEEN", id, action ? "RESTRICTED" : "UNRESTRICTED " )
}
}
if ( !found )
console_print( id , "Couldn't find such equipment or weapon" )
console_print( id , "%L", id, "NO_EQ_WE" )
}
}
positionBlocked( a ) {
new m = g_Keys[a][0] * 8
new d = ( g_Keys[a][1]==-1) ? 0 : g_blockPos[ m + g_Keys[a][1] ]
d += ( g_Keys[a][2]==-1) ? 0 : g_blockPos[ m + g_Keys[a][2] + 56 ]
d += ( g_Keys[a][2]==-1) ? 0 : g_blockPos[ m + g_Keys[a][2] + 56 ]
return d
}
public cmdRest(id,level,cid){
public cmdRest(id,level,cid) {
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
new cmd[8]
@ -378,140 +378,146 @@ public cmdRest(id,level,cid){
if (start >= MAXMENUPOS) start = MAXMENUPOS - 1
new end = start + 10
if (end > MAXMENUPOS) end = MAXMENUPOS
console_print(id, "^n----- Weapons Restriction: -----")
console_print(id, " %-32.31s %-10.9s %-9.8s","name","value","status")
new lName[16],lValue[16],lStatus[16],lOnOf[16]
format(lName,15,"%L",id,"NAME")
format(lValue,15,"%L",id,"VALUE")
format(lStatus,15,"%L",id,"STATUS")
format(lOnOff,15,"%L",id,positionBlocked(a) ? "ON" : "OFF")
console_print(id, "^n----- %L: -----", id, "WEAP_RES")
console_print(id, " %-32.31s %-10.9s %-9.8s",lName,lValue,lStatus)
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,
g_WeaponNames[a], g_Aliases[a], positionBlocked(a) ? "ON" : "OFF")
g_WeaponNames[a], g_Aliases[a], lOnOff)
}
}
console_print(id,"----- Entries %i - %i of %i -----",start+1,end,MAXMENUPOS)
console_print(id,"----- %L -----",id,"ENTRIES_OF",start+1,end,MAXMENUPOS)
if (end < MAXMENUPOS)
console_print(id,"----- Use 'amx_restrict list %i' for more -----",end+1)
console_print(id,"----- %L -----",id,"USE_MORE",end+1)
else
console_print(id,"----- Use 'amx_restrict list 1' for begin -----")
console_print(id,"----- %L -----",id,"USE_BEGIN")
}
else if ( equali( "save" , cmd ) ) {
if ( saveSettings( g_saveFile ) ){
console_print( id , "Configuration has been saved (file ^"%s^")" , g_saveFile )
console_print( id , "%L", id, "CONF_SAVED", g_saveFile )
g_Modified = false
}
else console_print( id , "Couldn't save configuration (file ^"%s^")" , g_saveFile )
else console_print( id, "%L", id, "COULDNT_SAVE", g_saveFile )
}
else if ( equali( "load" , cmd ) ) {
setc( g_blockPos, 112, 0 ) // Clear current settings
new arg1[64]
if ( read_argv(2, arg1 , 63 ) )
{
if ( read_argv(2, arg1 , 63 ) ) {
new configsdir[32]
get_configsdir(configsdir,31)
format(arg1,63,"%s/%s",configsdir,arg1)
}
if ( loadSettings( arg1 ) ){
console_print( id , "Configuration has been loaded (file ^"%s^")" , arg1 )
if ( loadSettings( arg1 ) ) {
console_print( id, "%L", id, "CONF_LOADED", arg1 )
g_Modified = true
}
else console_print( id , "Couldn't load configuration (file ^"%s^")" , arg1 )
else console_print( id, "%L", id, "COULDNT_LOAD", arg1 )
}
else {
console_print(id,"Usage: amx_restrict <command> [value]")
console_print(id,"Commands:")
console_print(id,"^ton - set restriction on whole equipment")
console_print(id,"^toff - remove restriction from whole equipment")
console_print(id,"^ton <value> [...] - set specified restriction")
console_print(id,"^toff <value> [...] - remove specified restriction")
console_print(id,"^tlist - display list of available equipment and weapons")
console_print(id,"^tsave - save restriction")
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,"Type 'amx_restrict list' for more specified values")
console_print(id,"%L",id,"COM_USAGE")
console_print(id,"%L",id,"COM_COMMANDS")
console_print(id,"%L",id,"COM_ON")
console_print(id,"%L",id,"COM_OFF")
console_print(id,"%L",id,"COM_ON")
console_print(id,"%L",id,"COM_OFF")
console_print(id,"%L",id,"COM_LIST")
console_print(id,"%L",id,"COM_SAVE")
console_print(id,"%L",id,"COM_LOAD")
console_print(id,"%L",id,"COM_VALUES")
console_print(id,"%L",id,"COM_TYPE")
}
return PLUGIN_HANDLED
}
displayMenu(id,pos){
if (pos < 0) return
new menubody[512], start = pos * 7
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 end = start + 7, keys = MENU_KEY_0|MENU_KEY_8, k = 0
if (end > MAXMENUPOS) end = MAXMENUPOS
for(new a = start; a < end; ++a){
keys |= (1<<k)
len += format(menubody[len],511-len,g_MenuItem[a],++k,g_WeaponNames[a],
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 |= MENU_KEY_9
}
else format(menubody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menubody)
displayMenu(id,pos) {
if (pos < 0) return
new menubody[512], start = pos * 7
if (start >= MAXMENUPOS) start = pos = g_Position[id] = 0
new len = format(menubody,511,"\y%L\R%d/5^n\w^n",id,"REST_WEAP",pos+1)
new end = start + 7, keys = MENU_KEY_0|MENU_KEY_8, k = 0
if (end > MAXMENUPOS) end = MAXMENUPOS
for (new a = start; a < end; ++a) {
keys |= (1<<k)
len += format(menubody[len],511-len,g_MenuItem[a],++k,g_WeaponNames[a],
id, positionBlocked(a) ? "ON" : "OFF" )
}
len += format(menubody[len],511-len,"^n8. %L \y\R%s^n\w",id,"SAVE_SET",g_Modified?"*":"")
if (end != MAXMENUPOS) {
format(menubody[len],511-len,"^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menubody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menubody,-1,"Restrict Weapons")
}
public actionMenu(id,key){
switch(key){
case 7: {
if (saveSettings(g_saveFile)){
public actionMenu(id,key) {
switch (key) {
case 7: {
if (saveSettings(g_saveFile)) {
g_Modified = false
client_print(id,print_chat,"* Configuration saved successfully")
client_print(id,print_chat,"* %L",id,"CONF_SAV_SUC")
}
else client_print(id,print_chat,"* Configuration saving failed!!!")
else client_print(id,print_chat,"* %L",id,"CONF_SAV_FAIL")
displayMenu(id,g_Position[id])
}
case 8: displayMenu(id,++g_Position[id])
case 9: displayMenu(id,--g_Position[id])
default: {
setWeapon( g_Position[id] * 7 + key , 2 )
g_Modified = true
displayMenu(id,g_Position[id])
}
}
return PLUGIN_HANDLED
case 8: displayMenu(id,++g_Position[id])
case 9: displayMenu(id,--g_Position[id])
default: {
setWeapon( g_Position[id] * 7 + key , 2 )
g_Modified = true
displayMenu(id,g_Position[id])
}
}
return PLUGIN_HANDLED
}
public client_command( id ){
if ( g_AliasBlockNum ) {
new arg[13]
public client_command( id ) {
if ( g_AliasBlockNum ) {
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 */
return PLUGIN_CONTINUE
new a = 0
new a = 0
do {
if ( equal( g_Aliases[g_AliasBlock[ a ]] , arg ) ||
equal( g_Aliases2[g_AliasBlock[ a ]] , arg ) ) {
client_print(id,print_center,g_Restricted )
return PLUGIN_HANDLED
}
} while( ++a < g_AliasBlockNum )
}
return PLUGIN_CONTINUE
do {
if ( equal( g_Aliases[g_AliasBlock[ a ]] , arg ) ||
equal( g_Aliases2[g_AliasBlock[ a ]] , arg ) )
{
client_print(id,print_center,g_Restricted )
return PLUGIN_HANDLED
}
} 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 ]])
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
}
}
if ( equal( g_Aliases[g_AliasBlock[ a ]] , weapon ) ||
equal( g_Aliases2[g_AliasBlock[ a ]] , weapon ) )
{
return true // blocked
}
}
return false // not blocked
return false // not blocked
}
public blockcommand(id) {
client_print(id,print_center, g_Restricted )
return PLUGIN_HANDLED
client_print(id,print_center, g_Restricted )
return PLUGIN_HANDLED
}
public cmdMenu(id,level,cid){
@ -540,13 +546,13 @@ public menuRifle(id,key) return checkRest(id,4,key)
public menuMachine(id,key) return checkRest(id,5,key)
public menuItem(id,key) return checkRest(id,6,key)
saveSettings(filename[]){
saveSettings(filename[]) {
if (file_exists(filename))
delete_file(filename)
if (!write_file(filename,"; Generated by Restrict Weapons Plugin. Do not modify!^n; value name"))
return 0
new text[64]
for(new a = 0; a < MAXMENUPOS; ++a){
for(new a = 0; a < MAXMENUPOS; ++a) {
if ( positionBlocked( a ) ) {
format(text,63,"%-16.15s ; %s", g_Aliases[a] , g_WeaponNames[a])
write_file(filename,text)
@ -559,7 +565,7 @@ loadSettings(filename[]){
if (!file_exists(filename)) return 0
new text[16]
new a, pos = 0
while (read_file(filename,pos++,text,15, a )){
while (read_file(filename,pos++,text,15, a )) {
if ( text[0] == ';' || !a ) continue // line is a comment
parse( text, text , 15 )
if ( (a = findAliasId( text )) != -1 )
@ -570,125 +576,126 @@ loadSettings(filename[]){
// JGHG
public fn_setautobuy(id) {
// Don't do anything if no items are blocked.
if (!g_AliasBlockNum)
return PLUGIN_CONTINUE
// 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'
// Empty user's autobuy prefs. (unnecessary?)
g_Autobuy[id][0] = '^0'
new argCount = read_argc()
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)
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, " ")
}
// 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...
// 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
//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
}
}
*/
/*
// 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
//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)
// 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]], "")
}
// 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...
// 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
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
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
CheckBlockedItems(items[], blockedItem[AUTOBUYLENGTH + 1]) {
if (g_AliasBlockNum <= 0)
return false
new l_items[AUTOBUYLENGTH + 1]
format(l_items, AUTOBUYLENGTH, items)
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
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 (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)
if (WeaponIsBlocked(parsedItem)) {
format(blockedItem, AUTOBUYLENGTH, parsedItem)
return true // item is blocked, return true
}
}
else
break
} while (aValueWasParsed)
return false // no blocked items found
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
// 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...
// 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
//server_print("Stripped items: ^"%s^"", strippedItems)
engclient_cmd(id, "cl_setautobuy", strippedItems)
return PLUGIN_HANDLED
}
public plugin_init() {
register_plugin("Restrict Weapons",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("restmenu.txt")
register_dictionary("common.txt")
register_clcmd("buyammo1","ammoRest1")
register_clcmd("buyammo2","ammoRest2")
register_clcmd("cl_setautobuy", "fn_setautobuy")
register_clcmd("cl_autobuy", "fn_autobuy")
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("Restrict 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")

View File

@ -45,35 +45,35 @@ new Float:g_xPos
new g_Length
new g_Frequency
public plugin_init(){
public plugin_init() {
register_plugin("Scrolling Message",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("scrollmsg.txt")
register_srvcmd("amx_scrollmsg","setMessage")
}
public showMsg(){
public showMsg() {
new a = g_startPos, i = 0
while( a < g_endPos )
g_displayMsg[i++] = g_scrollMsg[a++]
g_displayMsg[i] = 0
if (g_endPos < g_Length)
g_endPos++
if (g_xPos > 0.35)
g_xPos -= 0.0063
else
{
else {
g_startPos++
g_xPos = 0.35
}
set_hudmessage(200, 100, 0, g_xPos, 0.90, 0, SPEED, SPEED, 0.05, 0.05, 2)
show_hudmessage(0,g_displayMsg)
}
public msgInit(){
public msgInit() {
g_endPos = 1
g_startPos = 0
g_xPos = 0.65
@ -81,9 +81,7 @@ public msgInit(){
client_print(0,print_console,g_scrollMsg)
}
public setMessage(id,level,cid) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
public setMessage() {
remove_task(123) /* remove current messaging */
read_argv(1,g_scrollMsg,380)
new hostname[64]
@ -96,14 +94,14 @@ public setMessage(id,level,cid) {
if (g_Frequency > 0) {
new minimal = floatround((g_Length + 48) * (SPEED + 0.1))
if (g_Frequency < minimal) {
console_print(id,"Minimal frequency for this message is %d seconds",minimal)
server_print("%L",LANG_SERVER,"MIN_FREQ",minimal)
g_Frequency = minimal
}
console_print(id,"Scrolling message displaying frequency: %d:%02d minutes",
server_print("%L",LANG_SERVER,"MSG_FREQ")
g_Frequency/60,g_Frequency%60)
set_task(float(g_Frequency),"msgInit",123,"",0,"b")
}
else
console_print(id,"Scrolling message disabled")
server_print("%L",LANG_SERVER,"MSG_DISABLED")
return PLUGIN_HANDLED
}

View File

@ -45,8 +45,10 @@ new g_menuPosition[33]
new g_fileToSave[64]
new bool:g_modified
public plugin_precache(){
public plugin_precache() {
register_clcmd("amx_statscfgmenu","cmdCfgMenu",ADMIN_CFG,"- displays stats configuration menu")
register_dictionary("statscfg.txt")
register_dictionary("common.txt")
register_concmd("amx_statscfg","cmdCfg",ADMIN_CFG,"- displays help for stats configuration")
}
@ -58,10 +60,10 @@ public plugin_init() {
loadSettings(g_fileToSave)
}
public cmdCfg( id,level,cid ){
public cmdCfg( id,level,cid ) {
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
new cmds[32]
read_argv(1,cmds,31)
new option = equali(cmds, "on" ) ? 1 : 0
@ -69,7 +71,7 @@ public cmdCfg( id,level,cid ){
if ( read_argc() > 2 && option ) {
new var[32], enabled = 0
read_argv( 2 , var , 31 )
for( new a = 0; a < g_menuDataNum; ++a ) {
for ( new a = 0; a < g_menuDataNum; ++a ) {
if ( containi( g_menuDataVar[ a ] , var ) != -1 ) {
g_modified = true
++enabled
@ -84,25 +86,25 @@ public cmdCfg( id,level,cid ){
}
}
if ( enabled )
console_print(id,"Total %d", enabled )
console_print(id,"%L", id, "TOTAL_NUM", enabled )
else
console_print(id,"Couldn't find option(s) with such variable (name ^"%s^")", var )
console_print(id,"%L",id,"NO_OPTION",var )
}
else if ( equali(cmds, "save" ) ) {
if ( saveSettings( g_fileToSave ) ){
g_modified = false
console_print(id,"Stats configuration saved successfully")
console_print(id,"%L",id,"CONF_SAVED")
}
else
console_print(id,"Failed to save stats configuration!!!")
console_print(id,"%L",id,"CONF_FAILED")
}
else if ( equali(cmds, "load" ) ) {
if ( loadSettings( g_fileToSave ) ){
g_modified = false
console_print(id,"Stats configuration loaded successfully")
console_print(id,"%L",id,"CONF_LOADED")
}
else
console_print(id,"Failed to load stats configuration!!!")
console_print(id,"%L",id,"CONF_FAIL_LOAD")
}
else if ( equali(cmds, "list" ) ) {
new arg1[8]
@ -111,87 +113,94 @@ public cmdCfg( id,level,cid ){
if (start >= g_menuDataNum) start = g_menuDataNum - 1
new end = start + 10
if (end > g_menuDataNum) end = g_menuDataNum
console_print(id, "^n----- Stats Configuration: -----")
console_print(id, " %-29.28s %-24.23s %-9.8s","name","variable","status")
new lName[16],lVariable[16],lStatus[16]
format(lName,15,"%L",id,"NAME")
format(lVariable,15,"%L",id,"VARIABLE")
format(lStatus,15,"%L",id,"STATUS")
console_print(id, "^n----- %L: -----",id,"STATS_CONF")
console_print(id, " %-29.28s %-24.23s %-9.8s",lName,lVariable,lStatus)
if ( start != -1 ) {
for(new a = start; a < end; ++a){
new lOnOff[16]
for (new a = start; a < end; ++a) {
format(lOnOff,15,"%L",id,get_xvar_num( g_menuDataId[ a ] ) ? "ON" : "OFF")
console_print(id, "%3d: %-29.28s %-24.23s %-9.8s",a + 1,
g_menuData[a], g_menuDataVar[a], get_xvar_num( g_menuDataId[ a ] ) ? "ON" : "OFF")
g_menuData[a], g_menuDataVar[a], lOnOff)
}
}
console_print(id,"----- Entries %i - %i of %i -----",start+1,end,g_menuDataNum)
console_print(id,"----- %L -----",id,"ENTRIES_OF",start+1,end,g_menuDataNum)
if (end < g_menuDataNum)
console_print(id,"----- Use 'amx_statscfg list %i' for more -----",end+1)
console_print(id,"----- %L -----",id,"USE_MORE",end+1)
else
console_print(id,"----- Use 'amx_statscfg list 1' for begin -----")
console_print(id,"----- %L -----",id,"USE_BEGIN")
}
else if ( equali(cmds, "add" ) && read_argc() > 3 ) {
if ( g_menuDataNum < MAX_MENU_DATA ) {
read_argv(2, g_menuData[g_menuDataNum] , 31 )
read_argv(3, g_menuDataVar[g_menuDataNum] , 31 )
g_menuDataId[g_menuDataNum] = get_xvar_id( g_menuDataVar[g_menuDataNum] )
++g_menuDataNum
}
else console_print(id, "Can't add stats to the list, limit reached!")
if ( g_menuDataNum < MAX_MENU_DATA ) {
read_argv(2, g_menuData[g_menuDataNum] , 31 )
read_argv(3, g_menuDataVar[g_menuDataNum] , 31 )
g_menuDataId[g_menuDataNum] = get_xvar_id( g_menuDataVar[g_menuDataNum] )
++g_menuDataNum
}
else console_print(id, "%L",id,"CANT_ADD")
}
else {
console_print(id,"Usage: amx_statscfg <command> [parameters] ...")
console_print(id,"Commands:")
console_print(id,"^ton <variable> - enable specified option")
console_print(id,"^toff <variable> - disable specified option")
console_print(id,"^tsave - save stats configuration")
console_print(id,"^tload - load stats configuration")
console_print(id,"^tlist [id] - list stats status")
console_print(id,"^tadd <name> <variable> - add stats to the list")
console_print(id,"%L",id,"COM_USAGE")
console_print(id,"%L",id,"COM_COM")
console_print(id,"%L",id,"COM_ON")
console_print(id,"%L",id,"COM_OFF")
console_print(id,"%L",id,"COM_SAVE")
console_print(id,"%L",id,"COM_LOAD")
console_print(id,"%L",id,"COM_LIST")
console_print(id,"%L",id,"COM_ADD")
}
return PLUGIN_HANDLED
}
public cmdCfgMenu(id,level,cid){
public cmdCfgMenu(id,level,cid) {
if (cmd_access(id,level,cid,1))
displayCfgMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}
displayCfgMenu(id,pos){
displayCfgMenu(id,pos) {
if (pos < 0) return
new menu_body[512], start = pos * 7
if (start >= g_menuDataNum) start = pos = g_menuPosition[id] = 0
new len = format(menu_body,511,"\yStats Configuration\R%d/%d^n\w^n",
pos + 1,((g_menuDataNum/7)+((g_menuDataNum%7)?1:0)))
new len = format(menu_body,511,"\y%L\R%d/%d^n\w^n",
id,"STATS_CONF",pos + 1,((g_menuDataNum/7)+((g_menuDataNum%7)?1:0)))
new end = start + 7, keys = MENU_KEY_0|MENU_KEY_8, k = 0
if (end > g_menuDataNum) end = g_menuDataNum
for(new a = start; a < end; ++a){
for (new a = start; a < end; ++a) {
keys |= (1<<k)
len += format(menu_body[len],511-len,"%d. %s\y\R%s^n\w",++k,
g_menuData[a], get_xvar_num( g_menuDataId[ a ] ) ? "ON" : "OFF" )
len += format(menu_body[len],511-len,"%d. %s\y\R%L^n\w",++k,
g_menuData[a], id, get_xvar_num( g_menuDataId[ a ] ) ? "ON" : "OFF" )
}
if ( g_menuDataNum == 0 )
len += format(menu_body[len],511-len,"\dStats plugins are not^ninstalled on this server^n\w")
len += format(menu_body[len],511-len,"^n8. Save configuration\y\R%s^n\w",g_modified ? "*" : "")
if (end != g_menuDataNum){
format(menu_body[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
len += format(menu_body[len],511-len,"\d%L\w",id,"NO_STATS")
len += format(menu_body[len],511-len,"^n8. %L\y\R%s^n\w",id,"SAVE_CONF",g_modified ? "*" : "")
if (end != g_menuDataNum) {
format(menu_body[len],511-len,"^n9. %L...^n0. %s", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else format(menu_body[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
show_menu(id,keys,menu_body)
else format(menu_body[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menu_body,-1,"Stats Configuration")
}
public actionCfgMenu(id,key){
switch(key){
case 7:{
if (saveSettings(g_fileToSave)){
public actionCfgMenu(id,key) {
switch(key) {
case 7: {
if (saveSettings(g_fileToSave)) {
g_modified = false
client_print(id,print_chat,"* Configuration saved successfully")
client_print(id,print_chat,"* %L",id,"CONF_SAVED")
}
else
client_print(id,print_chat,"* Failed to save configuration!!!")
client_print(id,print_chat,"* %L",id,"CONF_FAILED")
displayCfgMenu(id,g_menuPosition[id])
}
case 8: displayCfgMenu(id,++g_menuPosition[id])
case 9: displayCfgMenu(id,--g_menuPosition[id])
default:{
case 8: displayCfgMenu(id,++g_menuPosition[id])
case 9: displayCfgMenu(id,--g_menuPosition[id])
default: {
g_modified = true
new a = g_menuPosition[id] * 7 + key
set_xvar_num( g_menuDataId[ a ] , 1 - get_xvar_num( g_menuDataId[ a ] ) )
@ -201,7 +210,7 @@ public actionCfgMenu(id,key){
return PLUGIN_HANDLED
}
saveSettings(filename[]){
saveSettings(filename[]) {
if (file_exists(filename))
delete_file(filename)
if (!write_file(filename,";Generated by Stats Configuration Plugin. Do not modify!^n;Variable Description"))
@ -216,7 +225,7 @@ saveSettings(filename[]){
return 1
}
loadSettings(filename[]){
loadSettings(filename[]) {
if (!file_exists(filename))
return 0
new text[256], name[32]

View File

@ -45,6 +45,8 @@ new g_coloredMenus
public plugin_init() {
register_plugin("Teleport Menu",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("telemenu.txt")
register_dictionary("common.txt")
register_clcmd("amx_teleportmenu","cmdTelMenu",ADMIN_CFG,"- displays teleport menu")
register_menucmd(register_menuid("Teleport Menu"),1023,"actionTelMenu")
@ -52,7 +54,7 @@ public plugin_init() {
}
public actionTelMenu(id,key) {
switch(key) {
switch (key) {
case 6: {
g_menuOption[id] = 1 - g_menuOption[id]
displayTelMenu(id,g_menuPosition[id])
@ -72,7 +74,7 @@ public actionTelMenu(id,key) {
get_user_name(player,name2,31)
if (!is_user_alive(player)) {
client_print(id,print_chat,"That action can't be performed on dead client ^"%s^"",name2)
client_print(id,print_chat,"%L",id,"CANT_PERF_DEAD",name2)
displayTelMenu(id,g_menuPosition[id])
return PLUGIN_HANDLED
}
@ -95,9 +97,9 @@ public actionTelMenu(id,key) {
log_amx("Cmd: ^"%s<%d><%s><>^" teleport ^"%s<%d><%s><>^"",
name,get_user_userid(id),authid, name2,get_user_userid(player),authid2 )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: teleport %s",name,name2)
case 1: client_print(0,print_chat,"ADMIN: teleport %s",name2)
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_TELEPORT_2",name,name2)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_TELEPORT_1",name2)
}
displayTelMenu(id,g_menuPosition[id])
@ -123,8 +125,8 @@ displayTelMenu(id,pos) {
start = pos = g_menuPosition[id] = 0
new len = format(menuBody,511, g_coloredMenus ?
"\yTeleport Menu\R%d/%d^n\w^n" : "Teleport Menu %d/%d^n^n" ,
pos+1,( g_menuPlayersNum[id] / 6 + ((g_menuPlayersNum[id] % 6) ? 1 : 0 )) )
"\y%L\R%d/%d^n\w^n" : "%L %d/%d^n^n" ,
id, "TELE_MENU", pos+1,( g_menuPlayersNum[id] / 6 + ((g_menuPlayersNum[id] % 6) ? 1 : 0 )) )
new end = start + 6
new keys = MENU_KEY_0|MENU_KEY_8
@ -156,30 +158,30 @@ displayTelMenu(id,pos) {
}
else if ( g_menuOption[id] ) { // -1
if ( g_coloredMenus )
len += format(menuBody[len],511-len,"^n\d7. Current Location^n\w")
len += format(menuBody[len],511-len,"^n\d7. %L^n\w",id,"CUR_LOC")
else
len += format(menuBody[len],511-len,"^n#. Current Location^n")
len += format(menuBody[len],511-len,"^n#. %L^n",id,"CUR_LOC")
}
else { // 0
keys |= MENU_KEY_7
len += format(menuBody[len],511-len,"^n7. Current Location^n")
len += format(menuBody[len],511-len,"^n7. %L^n",id,"CUR_LOC")
}
len += format(menuBody[len],511-len,"8. Save Location^n")
len += format(menuBody[len],511-len,"8. %L^n",id,"SAVE_LOC")
if (end != g_menuPlayersNum[id]) {
format(menuBody[len],511-len,"^n9. More...^n0. %s", pos ? "Back" : "Exit")
format(menuBody[len],511-len,"^n9. %L...^n0. %s", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else
format(menuBody[len],511-len,"^n0. %s", pos ? "Back" : "Exit")
format(menuBody[len],511-len,"^n0. %L", id, pos ? "BACK" : "EXIT")
show_menu(id,keys,menuBody)
show_menu(id,keys,menuBody,-1,"Teleport Menu")
}
public cmdTelMenu(id,level,cid) {
if (cmd_access(id,level,cid,1))
displayTelMenu(id,g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}

View File

@ -41,6 +41,7 @@ new g_Switch
public plugin_init() {
register_plugin("TimeLeft",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("timeleft.txt")
register_cvar("amx_time_voice","1")
register_srvcmd("amx_time_display","setDisplaying")
register_cvar("amx_timeleft","00:00",FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
@ -50,7 +51,7 @@ public plugin_init() {
}
public sayTheTime(id){
if ( get_cvar_num("amx_time_voice") ){
if ( get_cvar_num("amx_time_voice") ) {
new mhours[6], mmins[6], whours[32], wmins[32], wpm[6]
get_time("%H",mhours,5)
get_time("%M",mmins,5)
@ -74,11 +75,11 @@ public sayTheTime(id){
}
new ctime[64]
get_time("%m/%d/%Y - %H:%M:%S",ctime,63)
client_print(0,print_chat, "The time: %s",ctime )
client_print(0,print_chat, "%L: %s",LANG_PLAYER,"THE_TIME",ctime )
return PLUGIN_CONTINUE
}
public sayTimeLeft(id){
public sayTimeLeft(id) {
if (get_cvar_float("mp_timelimit")) {
new a = get_timeleft()
if ( get_cvar_num("amx_time_voice") ) {
@ -86,35 +87,35 @@ public sayTimeLeft(id){
setTimeVoice( svoice , 127 , 0 , a )
client_cmd( id , svoice )
}
client_print(0,print_chat, "Time Left: %d:%02d", (a / 60) , (a % 60) )
client_print(0,print_chat, "%L: %d:%02d", LANG_PLAYER, "TIME_LEFT", (a / 60) , (a % 60) )
}
else
client_print(0,print_chat, "No Time Limit" )
client_print(0,print_chat, "%L",LANG_PLAYER,"NO_T_LIMIT" )
return PLUGIN_CONTINUE
}
setTimeText(text[],len,tmlf){
setTimeText(text[],len,tmlf,id) {
new secs = tmlf % 60
new mins = tmlf / 60
if (secs == 0)
format(text,len,"%d minute%s", mins , (mins > 1) ? "s" : "" )
format(text,len,"%d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE" )
else if (mins == 0)
format(text,len,"%d second%s", secs,(secs > 1) ? "s" : "" )
format(text,len,"%d %L", secs, id, (secs > 1) ? "SECONDS" : "SECOND" )
else
format(text,len,"%d minute%s %d second%s", mins , (mins > 1) ? "s" : "" ,secs ,(secs > 1) ? "s" : "" )
format(text,len,"%d %L %d %L", mins, id, (mins > 1) ? "MINUTES" : "MINUTE", secs, id, (secs > 1) ? "SECONDS" : "SECOND" )
}
setTimeVoice(text[],len,flags,tmlf){
setTimeVoice(text[],len,flags,tmlf) {
new temp[7][32]
new secs = tmlf % 60
new mins = tmlf / 60
for(new a = 0;a < 7;++a)
for (new a = 0;a < 7;++a)
temp[a][0] = 0
if (secs > 0){
num_to_word(secs,temp[4],31)
if (!(flags & 8)) temp[5] = "seconds " /* there is no "second" in default hl */
}
if (mins > 59){
if (mins > 59) {
new hours = mins / 60
num_to_word(hours,temp[0],31)
if (!(flags & 8)) temp[1] = "hours "
@ -128,10 +129,10 @@ setTimeVoice(text[],len,flags,tmlf){
return format(text,len,"spk ^"vox/%s%s%s%s%s%s%s^"", temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6] )
}
findDispFormat(time){
for(new i = 0;g_TimeSet[i][0];++i){
if (g_TimeSet[i][1] & 16){
if (g_TimeSet[i][0] > time){
findDispFormat(time) {
for(new i = 0;g_TimeSet[i][0];++i) {
if (g_TimeSet[i][1] & 16) {
if (g_TimeSet[i][0] > time) {
if (!g_Switch) {
g_CountDown = g_Switch = time
remove_task(8648458)
@ -140,18 +141,18 @@ findDispFormat(time){
return i
}
}
else if (g_TimeSet[i][0] == time){
else if (g_TimeSet[i][0] == time) {
return i
}
}
return -1
}
public setDisplaying(){
public setDisplaying() {
new arg[32], flags[32], num[32]
new argc = read_argc() - 1
new i = 0
while (i < argc && i < 32){
while (i < argc && i < 32) {
read_argv(i+1,arg,31)
parse(arg,flags,31,num,31)
g_TimeSet[i][0] = str_to_num(num)
@ -162,7 +163,7 @@ public setDisplaying(){
return PLUGIN_HANDLED
}
public timeRemain(param[]){
public timeRemain(param[]) {
new gmtm = get_timeleft()
new tmlf = g_Switch ? --g_CountDown : gmtm
new stimel[12]
@ -174,21 +175,25 @@ public timeRemain(param[]){
set_task(0.8,"timeRemain",8648458,"",0,"b")
return
}
if (tmlf > 0 && g_LastTime != tmlf){
if (tmlf > 0 && g_LastTime != tmlf) {
g_LastTime = tmlf
new tm_set = findDispFormat(tmlf)
if ( tm_set != -1){
new flags = g_TimeSet[tm_set][1]
new arg[128]
if (flags & 1){
setTimeText(arg,127,tmlf)
if (flags & 16)
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, 1)
else
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, 1)
show_hudmessage(0,arg)
if (flags & 1) {
new players[32],pnum
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
setTimeText(arg,127,tmlf,players[i])
if (flags & 16)
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 1.1, 0.1, 0.5, 1)
else
set_hudmessage(255, 255, 255, -1.0, 0.85, 0, 0.0, 3.0, 0.0, 0.5, 1)
show_hudmessage(players[i],arg)
}
}
if (flags & 2){
if (flags & 2) {
setTimeVoice(arg,127,flags,tmlf)
client_cmd(0,arg)
}