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

This commit is contained in:
Felix Geyer 2004-08-03 20:11:16 +00:00
parent b25d3a081f
commit 0be7ddcbd9
6 changed files with 399 additions and 265 deletions

View File

@ -57,6 +57,7 @@ public plugin_init()
#else
register_plugin("Admin Base",AMXX_VERSION_STR,"AMXX Dev Team")
#endif
register_dictionary("admin.txt")
register_cvar("amx_mode","1")
register_cvar("amx_password_field","_pw")
register_cvar("amx_default_access","")
@ -133,7 +134,11 @@ loadSettings(szFilename[])
g_aFlags[ g_aNum ] = read_flags( szFlags )
++g_aNum
}
server_print("[AMXX] Loaded %d admin%s from file",g_aNum, (g_aNum == 1) ? "" : "s" )
if (g_aNum == 1)
server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMIN" )
else
server_print("[AMXX] %L", LANG_SERVER, "LOADED_ADMINS", g_aNum )
return 1
}
#endif
@ -148,7 +153,7 @@ public adminSql() {
new Sql:sql = dbi_connect(host,user,pass,db,error,127)
if (sql <= SQL_FAILED) {
server_print("[AMXX] SQL error: can't connect: '%s'",error)
server_print("[AMXX] %L",LANG_SERVER,"SQL_CANT_CON",error)
return PLUGIN_HANDLED
}
@ -158,13 +163,13 @@ public adminSql() {
if (Res == RESULT_FAILED) {
dbi_error(sql,error,127)
server_print("[AMXX] SQL error: can't load admins: '%s'",error)
server_print("[AMXX] %L",LANG_SERVER,"SQL_CANT_LOAD_ADMINS",error)
dbi_free_result(Res)
dbi_close(Sql)
return PLUGIN_HANDLED
}
else if (Res == RESULT_NONE) {
server_print("[AMXX] No admins found.")
server_print("[AMXX] %L",LANG_SERVER,"NO_ADMINS")
dbi_free_result(Res)
dbi_close(Sql)
return PLUGIN_HANDLED
@ -185,7 +190,10 @@ public adminSql() {
++g_aNum
}
server_print("[AMXX] Loaded %d admin%s from database",g_aNum, (g_aNum == 1) ? "" : "s" )
if (g_aNum == 1)
server_print("[AMXX] %L", SERVER_LANG, "SQL_LOADED_ADMIN" )
else
server_print("[AMXX] %L", SERVER_LANG, "SQL_LOADED_ADMINS", g_aNum )
dbi_free_result(Res)
dbi_close(sql)
return PLUGIN_HANDLED
@ -303,13 +311,13 @@ accessUser( id, name[] = "" )
get_cvar_string("amx_password_field",passfield,31)
get_user_info(id,passfield,password,31)
new result = getAccess(id,username,userauthid,userip,password)
if (result & 1) client_cmd(id,"echo ^"* Invalid Password!^"")
if (result & 1) client_cmd(id,"echo ^"* %L^"",id,"INV_PAS")
if (result & 2) {
client_cmd(id,g_cmdLoopback)
return PLUGIN_HANDLED
}
if (result & 4) client_cmd(id,"echo ^"* Password accepted^"")
if (result & 8) client_cmd(id,"echo ^"* Privileges set^"")
if (result & 4) client_cmd(id,"echo ^"* %L^"",id,"PAS_ACC")
if (result & 8) client_cmd(id,"echo ^"* %L^"",id,"PRIV_SET")
return PLUGIN_CONTINUE
}
@ -328,8 +336,11 @@ public client_infochanged(id)
return PLUGIN_CONTINUE
}
public ackSignal(id)
server_cmd("kick #%d ^"You have no entry to the server...^"", get_user_userid(id) )
public ackSignal(id) {
new no_entry[64]
format(no_entry,63,"%L",id,"NO_ENTRY")
server_cmd("kick #%d ^"%L^"", get_user_userid(id), no_entry )
}
public client_authorized(id)
return get_cvar_num( "amx_mode" ) ? accessUser( id ) : PLUGIN_CONTINUE

View File

@ -42,12 +42,13 @@
new g_msgChannel
#define MAX_CLR 10
new g_Colors[MAX_CLR][] = {"white","red","green","blue","yellow","magenta","cyan","orange","ocean","maroon"}
new g_Colors[MAX_CLR][] = {"COL_WHITE","COL_RED","COL_GREEN","COL_BLUE","COL_YELLOW","COL_MAGENTA","COL_CYAN","COL_ORANGE","COL_OCEAN","COL_MAROON"}
new g_Values[MAX_CLR][] = {{255,255,255},{255,0,0},{0,255,0},{0,0,255},{255,255,0},{255,0,255},{0,255,255},{227,96,8},{45,89,116},{103,44,38}}
new Float:g_Pos[4][] = {{0.0,0.0},{0.05,0.55},{-1.0,0.2},{-1.0,0.7}}
new Float:g_Pos[4][] = {{0.0,0.0},{0.05,0.55},{-1.0,0.2},{-1.0,0.7}}
public plugin_init(){
public plugin_init() {
register_plugin("Admin Chat",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("adminchat.txt")
register_clcmd("say","cmdSayChat",ADMIN_CHAT,"@[@|@|@][w|r|g|b|y|m|c]<text> - displays hud message")
register_clcmd("say_team","cmdSayAdmin",0,"@<text> - displays message to admins")
register_concmd("amx_say","cmdSay",ADMIN_CHAT,"<message> - sends message to all players")
@ -57,17 +58,17 @@ public plugin_init(){
register_concmd("amx_csay","cmdTsay",ADMIN_CHAT,"<color> <message> - sends center hud message to all players")
}
public cmdSayChat(id) {
if (!(get_user_flags(id)&ADMIN_CHAT)) return PLUGIN_CONTINUE
new said[6], i=0
public cmdSayChat(id) {
if (!access(id,ADMIN_CHAT)) return PLUGIN_CONTINUE
new said[6], i=0
read_argv(1,said,5)
while (said[i]=='@')
i++
if ( !i || i > 3 ) return PLUGIN_CONTINUE
i++
if ( !i || i > 3 ) return PLUGIN_CONTINUE
new message[192], a = 0
read_args(message,191)
remove_quotes(message)
switch(said[i]){
switch(said[i]){
case 'r': a = 1
case 'g': a = 2
case 'b': a = 3
@ -76,31 +77,32 @@ public cmdSayChat(id) {
case 'c': a = 6
case 'o': a = 7
}
new name[32], authid[32], userid
new name[32], authid[32], userid, color[16]
get_user_authid(id,authid,31)
get_user_name(id,name,31)
userid = get_user_userid(id)
format(color,15,"%L","en",g_Colors[a])
log_amx("Chat: ^"%s<%d><%s><>^" tsay ^"%s^"",name,userid,authid,message[i+1])
log_message("^"%s<%d><%s><>^" triggered ^"amx_tsay^" (text ^"%s^") (color ^"%s^")",
name,userid,authid,message[ i+1 ],g_Colors[a])
name,userid,authid,message[ i+1 ],color)
if (++g_msgChannel>6||g_msgChannel<3)
g_msgChannel = 3
new Float:verpos = g_Pos[i][1] + float(g_msgChannel) / 35.0
set_hudmessage(g_Values[a][0], g_Values[a][1], g_Values[a][2],
g_Pos[i][0], verpos , 0, 6.0, 6.0, 0.5, 0.15, g_msgChannel )
set_hudmessage(g_Values[a][0], g_Values[a][1], g_Values[a][2],
g_Pos[i][0], verpos , 0, 6.0, 6.0, 0.5, 0.15, g_msgChannel )
#if defined SHOW_NAMES
show_hudmessage(0,"%s : %s",name,message[i+1])
#if defined SHOW_NAMES
show_hudmessage(0,"%s : %s",name,message[i+1])
client_print(0,print_notify,"%s : %s",name,message[i+1])
#else
show_hudmessage(0,message[i+1])
show_hudmessage(0,message[i+1])
client_print(0,print_notify,message[i+1])
#endif
return PLUGIN_HANDLED
return PLUGIN_HANDLED
}
public cmdSayAdmin(id) {
public cmdSayAdmin(id) {
new said[2]
read_argv(1,said,1)
if (said[0]!='@') return PLUGIN_CONTINUE
@ -110,20 +112,20 @@ public cmdSayAdmin(id) {
remove_quotes(message)
get_user_authid(id,authid,31)
get_user_name(id,name,31)
userid = get_user_userid(id)
userid = get_user_userid(id)
log_amx("Chat: ^"%s<%d><%s><>^" chat ^"%s^"",name,userid,authid,message[1])
log_message("^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")",name,userid,authid,message[1])
format(message,191,"(ADMINS) %s : %s",name,message[1])
get_players(players,inum)
for(new i=0; i<inum; ++i){
get_players(players,inum)
for (new i=0; i<inum; ++i){
if (players[i] != id && get_user_flags(players[i]) & ADMIN_CHAT)
client_print(players[i],print_chat,message)
}
client_print(id,print_chat,message)
return PLUGIN_HANDLED
}
client_print(id,print_chat,message)
return PLUGIN_HANDLED
}
public cmdChat(id,level,cid){
public cmdChat(id,level,cid) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new message[192], name[32], players[32], inum, authid[32], userid
@ -137,30 +139,30 @@ public cmdChat(id,level,cid){
log_message("^"%s<%d><%s><>^" triggered ^"amx_chat^" (text ^"%s^")",name,userid,authid,message)
format(message,191,"(ADMINS) %s : %s",name,message)
console_print(id,message)
for(new i = 0; i < inum; ++i){
if ( get_user_flags(players[i]) & ADMIN_CHAT )
for (new i = 0; i < inum; ++i) {
if ( access(players[i],ADMIN_CHAT) )
client_print(players[i],print_chat,message)
}
return PLUGIN_HANDLED
}
public cmdSay(id,level,cid){
public cmdSay(id,level,cid) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new message[192], name[32],authid[32], userid
new message[192],name[32],authid[32],userid
read_args(message,191)
remove_quotes(message)
get_user_authid(id,authid,31)
get_user_name(id,name,31)
userid = get_user_userid(id)
client_print(0,print_chat,"(ALL) %s : %s",name,message)
console_print(id,"(ALL) %s : %s",name,message)
log_amx("Chat: ^"%s<%d><%s><>^" say ^"%s^"", name,userid,authid,message)
client_print(0,print_chat,"%L",LANG_PLAYER,"PRINT_LANG",name,message)
console_print(id,"%L",id,"PRINT_LANG",name,message)
log_amx("Chat: ^"%s<%d><%s><>^" say ^"%s^"", name,userid,authid,message)
log_message("^"%s<%d><%s><>^" triggered ^"amx_say^" (text ^"%s^")",name,userid,authid,message)
return PLUGIN_HANDLED
}
public cmdPsay(id,level,cid){
public cmdPsay(id,level,cid) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new name[32]
@ -192,22 +194,30 @@ public cmdPsay(id,level,cid){
return PLUGIN_HANDLED
}
public cmdTsay(id,level,cid){
public cmdTsay(id,level,cid) {
if (!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new cmd[16],color[12], message[192], name[32], authid[32], userid = 0
new cmd[16], color[16], color2[16], message[192], name[32], authid[32], userid = 0
read_argv(0,cmd,15)
new bool:tsay = (tolower(cmd[4]) == 't')
read_args(message,191)
remove_quotes(message)
parse(message,color,11)
parse(message,color,15)
new found = 0,a = 0
for(new i=0;i<MAX_CLR;++i)
if (equal(color,g_Colors[i])) {
a = i
found = 1
break
new lang[3],langnum = get_langsnum()
for (new i=0;i<MAX_CLR;++i) {
for (new j=0;j<langnum;j++) {
get_lang(j,lang)
format(color2,15,"%L",lang,g_Colors[i])
if (equali(color,color2)) {
a = i
found = 1
break
}
}
if (found==1)
break
}
new length = found ? (strlen(color) + 1) : 0
if (++g_msgChannel>6||g_msgChannel<3)
g_msgChannel = 3
@ -227,8 +237,9 @@ public cmdTsay(id,level,cid){
console_print(id,message[length])
#endif
log_amx("Chat: ^"%s<%d><%s><>^" %s ^"%s^"",name,userid,authid,cmd[4],message[length])
log_message("^"%s<%d><%s><>^" triggered ^"%s^" (text ^"%s^") (color ^"%s^")",
name,userid,authid,cmd,message[length],g_Colors[a])
name,userid,authid,cmd,message[length],color2)
return PLUGIN_HANDLED
}

View File

@ -45,6 +45,8 @@ new g_addCvar[] = "amx_cvar add %s"
public plugin_init() {
register_plugin("Admin Commands",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("admincmd.txt")
register_dictionary("common.txt")
register_concmd("amx_kick","cmdKick",ADMIN_KICK,"<name or #userid> [reason]")
register_concmd("amx_ban","cmdBan",ADMIN_BAN,"<name or #userid> <id/ip> <minutes> [reason]")
register_concmd("amx_addban","cmdAddBan",ADMIN_BAN,"<authid or ip> <minutes> [reason]")
@ -94,8 +96,8 @@ public cmdKick(id,level,cid) {
log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")",
name,get_user_userid(id),authid,name2,userid2,authid2,reason)
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)
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)
}
if ( is_user_bot(player) )
server_cmd("kick #%d",userid2)
@ -117,16 +119,16 @@ public cmdUnban(id,level,cid) {
read_argv(1,arg,31)
if (contain(arg,".")!=-1) {
server_cmd("removeip ^"%s^";writeip",arg)
console_print(id,"[AMXX] Ip ^"%s^" removed from ban list", arg )
console_print(id,"[AMXX] %L", id, "IP_REMOVED", arg )
}
else {
server_cmd("removeid ^"%s^";writeid",arg)
console_print(id,"[AMXX] Authid ^"%s^" removed from ban list", arg )
console_print(id,"[AMXX] %L", id, "AUTHID_REMOVED", arg )
}
get_user_name(id,name,31)
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: unban %s",name,arg)
case 1: client_print(0,print_chat,"ADMIN: unban %s",arg)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_UNBAN_2",name,arg)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_UNBAN_1",arg)
}
get_user_authid(id,authid,31)
log_amx("Cmd: ^"%s<%d><%s><>^" unban ^"%s^"",
@ -151,8 +153,8 @@ public cmdAddBan(id,level,cid) {
}
get_user_name(id,name,31)
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: ban %s",name,arg)
case 1: client_print(0,print_chat,"ADMIN: ban %s",arg)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_ADDBAN_2",name,arg)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_ADDBAN_1",arg)
}
get_user_authid(id,authid,31)
log_amx("Cmd: ^"%s<%d><%s><>^" ban ^"%s^" (minutes ^"%s^") (reason ^"%s^")",
@ -169,8 +171,7 @@ public cmdBan(id,level,cid) {
strtolower(mode)
read_argv(3,minutes,7)
read_argv(4,reason,31)
if ( (!equal(mode,"id")) && (!equal(mode,"ip")) )
{
if ( (!equal(mode,"id")) && (!equal(mode,"ip")) ) {
new hcmd[32],hinfo[128],hflag
get_concmd(cid,hcmd,31,hflag,hinfo,127,level)
console_print(id,"Usage: %s %s",hcmd,hinfo)
@ -188,40 +189,53 @@ public cmdBan(id,level,cid) {
log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (mode ^"%s^") (minutes ^"%s^") (reason ^"%s^")",
name,get_user_userid(id),authid, name2,userid2,authid2,mode,minutes,reason)
new temp[64]
if (str_to_num(minutes))
format(temp,63,"for %s min.",minutes)
new temp[64],banned[16],nNum = str_to_num(minutes)
if (nNum)
format(temp,63,"%L",player,"FOR_MIN",minutes)
else
temp = "permanently"
format(temp,63,"%L",player,"PERM")
format(banned,15,"%L",player,"BANNED")
if ( equal(mode,"ip") ){
new address[32]
get_user_ip(player,address,31,1)
if (reason[0])
server_cmd("kick #%d ^"%s (banned %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip",userid2,reason,temp,minutes,address)
server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip",userid2,reason,banned,temp,minutes,address)
else
server_cmd("kick #%d ^"banned %s^";wait;addip ^"%s^" ^"%s^";wait;writeip",userid2,temp,minutes,address)
server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip",userid2,banned,temp,minutes,address)
}
else
{
if (reason[0])
server_cmd("kick #%d ^"%s (banned %s)^";wait;banid ^"%s^" ^"%s^";wait;writeid",userid2,reason,temp,minutes,authid2)
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid ^"%s^" ^"%s^";wait;writeid",userid2,reason,banned,temp,minutes,authid2)
else
server_cmd("kick #%d ^"banned %s^";wait;banid ^"%s^" ^"%s^";wait;writeid",userid2,temp,minutes,authid2)
server_cmd("kick #%d ^"%s %s^";wait;banid ^"%s^" ^"%s^";wait;writeid",userid2,banned,temp,minutes,authid2)
}
new activity = get_cvar_num("amx_show_activity")
if (activity) {
new temp2[64]
if (activity == 1)
temp2 = "ADMIN:"
else
format(temp2,63,"ADMIN %s:",name)
client_print(0,print_chat,"%s ban %s %s",temp2,name2,temp)
}
console_print(id,"[AMXX] Client ^"%s^" banned",name2)
if (activity!=0) {
new players[32],pnum,msg[256],len
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
len = format(msg,255,"%L",players[i],"ADMIN")
strtoupper(msg)
if (activity==1)
len += copy(msg[len],255-len,":")
else
len += format(msg[len],255-len," %s:",name)
len += format(msg[len],255-len," %L",players[i],"BAN")
len += format(msg[len],255-len," %s ",name2)
if (nNum)
format(msg[len],255-len,"%L",players[i],"FOR_MIN",minutes)
else
format(msg[len],255-len,"%L",players[i],"PERM")
client_print(players[i],print_chat,msg)
}
}
console_print(id,"[AMXX] %L",id,"CLIENT_BANNED",name2)
return PLUGIN_HANDLED
}
@ -242,11 +256,11 @@ public cmdSlay(id,level,cid) {
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)
}
console_print(id,"[AMXX] Client ^"%s^" slayed",name2)
console_print(id,"[AMXX] %L",id,"CLIENT_SLAYED",name2)
return PLUGIN_HANDLED
}
@ -269,11 +283,11 @@ public cmdSlap(id,level,cid) {
name,get_user_userid(id),authid, damage,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,damage)
case 1: client_print(0,print_chat,"ADMIN: slap %s with %d damage",name2,damage)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAP_2",name,name2,damage)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_SLAP_1",name2,damage)
}
console_print(id,"[AMXX] Client ^"%s^" slaped with %d damage",name2,damage)
console_print(id,"[AMXX] %L",id,"CLIENT_SLAPED",name2,damage)
return PLUGIN_HANDLED
}
@ -287,15 +301,15 @@ public cmdMap(id,level,cid) {
new arg[32]
new arglen = read_argv(1,arg,31)
if ( !is_map_valid(arg) ){
console_print(id,"[AMXX] Map with that name not found or map is invalid")
console_print(id,"[AMXX] %L",id,"MAP_NOT_FOUND")
return PLUGIN_HANDLED
}
new authid[32],name[32]
get_user_authid(id,authid,31)
get_user_name(id,name,31)
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: changelevel %s",name,arg)
case 1: client_print(0,print_chat,"ADMIN: changelevel %s",arg)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_MAP_2",name,arg)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_MAP_1",arg)
}
log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name,get_user_userid(id),authid, arg)
message_begin(MSG_ALL, SVC_INTERMISSION)
@ -322,25 +336,25 @@ public cmdCvar(id,level,cid) {
if ( g_cvarRconNum < MAXRCONCVARS )
copy( g_cvarRcon[ g_cvarRconNum++ ] , 31, arg2 )
else
console_print(id,"[AMXX] Can't add more cvars for rcon access!")
console_print(id,"[AMXX] %L",id,"NO_MORE_CVARS")
}
return PLUGIN_HANDLED
}
if (!cvar_exists(arg)){
console_print(id,"[AMXX] Unknown cvar: %s",arg)
console_print(id,"[AMXX] %L",id,"UNKNOWN_CVAR",arg)
return PLUGIN_HANDLED
}
if ( onlyRcon(arg) && !(get_user_flags(id) & ADMIN_RCON)){
console_print(id,"[AMXX] You have no access to that cvar")
console_print(id,"[AMXX] %L",id,"CVAR_NO_ACC")
return PLUGIN_HANDLED
}
else if (equal(arg,"sv_password") && !(get_user_flags(id) & ADMIN_PASSWORD)){
console_print(id,"[AMXX] You have no access to that cvar")
console_print(id,"[AMXX] %L",id,"CVAR_NO_ACC")
return PLUGIN_HANDLED
}
if (read_argc() < 3){
get_cvar_string(arg,arg2,63)
console_print(id,"[AMXX] Cvar ^"%s^" is ^"%s^"",arg,arg2)
console_print(id,"[AMXX] %L",id,"CVAR_IS",arg,arg2)
return PLUGIN_HANDLED
}
new authid[32],name[32]
@ -349,20 +363,28 @@ public cmdCvar(id,level,cid) {
log_amx("Cmd: ^"%s<%d><%s><>^" set cvar (name ^"%s^") (value ^"%s^")",
name,get_user_userid(id),authid, arg,arg2)
set_cvar_string(arg,arg2)
new activity = get_cvar_num("amx_show_activity")
if (activity) {
new temp[64]
if (activity == 1)
temp = "ADMIN:"
else
format(temp,63,"ADMIN %s:",name)
if (equal(arg,"rcon_password") || equal(arg,"sv_password"))
copy(arg2,63,"*** PROTECTED ***")
client_print(0,print_chat,"%s set cvar %s to ^"%s^"",temp,arg,arg2)
}
if (activity!=0) {
new players[32],pnum,admin[64],cvar_val[64],len
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
len = format(admin,255,"%L",players[i],"ADMIN")
strtoupper(admin)
if (activity == 1)
len += copy(admin[len],255-len,":")
else
len += format(admin[len],255-len," %s:",name)
if (equal(arg,"rcon_password") || equal(arg,"sv_password"))
format(cvar_val,63,"*** %L ***",players[i],"PROTECTED")
else
copy(cvar_val,63,arg2)
client_print(players[i],print_chat,"%L",players[i],"SET_CVAR_TO",admin,arg,arg2)
}
}
console_print(id,"[AMXX] Cvar ^"%s^" changed to ^"%s^"",arg,arg2)
console_print(id,"[AMXX] %L",id,"CVAR_CHANGED",arg,arg2)
return PLUGIN_HANDLED
}
@ -371,6 +393,13 @@ public cmdPlugins(id,level,cid) {
return PLUGIN_HANDLED
new name[32],version[32],author[32],filename[32],status[32]
new Lname[32],Lversion[32],Lauthor[32],Lfile[32],Lstatus[32]
format(Lname,31,"%L",id,"NAME")
format(Lversion,31,"%L",id,"VERSION")
format(Lauthor,31,"%L",id,"AUTHOR")
format(Lfile,31,"%L",id,"FILE")
format(Lstatus,31,"%L",id,"STATUS")
/*
new motd_body[MOTD_LEN],state[4]
@ -394,16 +423,16 @@ public cmdPlugins(id,level,cid) {
*/
new num = get_pluginsnum()
new running = 0
console_print(id,"Currently loaded plugins:")
console_print(id,"%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s","name","version","author","file","status")
for (new i=0;i<num;i++)
{
console_print(id,"%L:",id,"LOADED_PLUGINS")
console_print(id,"%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s",Lname,Lversion,Lauthor,Lfile,Lstatus)
for (new i=0;i<num;i++) {
get_plugin(i,filename,31,name,31,version,31,author,31,status,31)
console_print(id,"%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s",name,version,author,filename,status)
if (equal(status,"running"))
running++
}
console_print(id,"%d plugins, %d running",num,running)
console_print(id,"%L",id,"PLUGINS_RUN",num,running)
return PLUGIN_HANDLED
}
@ -413,6 +442,11 @@ public cmdModules(id,level,cid) {
return PLUGIN_HANDLED
new name[32],version[32],author[32],status,sStatus[16]
new Lname[32],Lversion[32],Lauthor[32]
format(Lname,31,"%L",id,"NAME")
format(Lversion,31,"%L",id,"VERSION")
format(Lauthor,31,"%L",id,"AUTHOR")
/*
new motd_body[MOTD_LEN],state[4]
@ -432,10 +466,9 @@ public cmdModules(id,level,cid) {
show_motd(id,motd_body,"Currently loaded modules:")
*/
new num = get_modulesnum()
console_print(id,"Currently loaded modules:")
console_print(id,"%-23.22s %-8.7s %-20.19s","name","version","author")
for (new i=0;i<num;i++)
{
console_print(id,"%L:",id,"LOADED_MODULES")
console_print(id,"%-23.22s %-8.7s %-20.19s",Lname,Lversion,Lauthor)
for (new i=0;i<num;i++) {
get_module(i,name,31,author,31,version,31,status)
switch (status) {
case module_loaded: copy(sStatus,15,"running")
@ -443,7 +476,7 @@ public cmdModules(id,level,cid) {
}
console_print(id,"%-23.22s %-8.7s %-20.19s",name,version,author)
}
console_print(id,"%d modules",num)
console_print(id,"%L",id,"NUM_MODULES",num)
return PLUGIN_HANDLED
}
@ -454,7 +487,7 @@ public cmdCfg(id,level,cid) {
new arg[128]
read_argv(1,arg,127)
if (!file_exists(arg)){
console_print(id,"[AMXX] File ^"%s^" not found",arg)
console_print(id,"[AMXX] %L",id,"FILE_NOT_FOUND",arg)
return PLUGIN_HANDLED
}
new authid[32],name[32]
@ -466,16 +499,18 @@ public cmdCfg(id,level,cid) {
server_cmd("exec %s",arg)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: execute config %s",name,arg)
case 1: client_print(0,print_chat,"ADMIN: execute config %s",arg)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_CONF_2",name,arg)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_CONF_1",arg)
}
return PLUGIN_HANDLED
}
public cmdLBack() {
new paused[16]
format(paused,15,"%L",g_pauseCon,g_Paused ? "UNPAUSED" : "PAUSED")
set_cvar_float("pausable",g_pausAble)
console_print(g_pauseCon,"[AMXX] Server %s", g_Paused ? "unpaused" : "paused")
console_print(g_pauseCon,"[AMXX] Server %s", paused)
if (g_Paused) g_Paused = false
else g_Paused = true
return PLUGIN_HANDLED
@ -490,20 +525,33 @@ public cmdPause(id,level,cid) {
g_pausAble = get_cvar_float("pausable")
if (!slayer) slayer = find_player("h")
if (!slayer){
console_print(id,"[AMXX] Server was unable to pause the game. Real players on server are needed")
console_print(id,"[AMXX] %L",id,"UNABLE_PAUSE")
return PLUGIN_HANDLED
}
set_cvar_float("pausable",1.0)
client_cmd(slayer,"pause;pauseAck")
log_amx("Cmd: ^"%s<%d><%s><>^" %s server",
name,get_user_userid(id),authid, g_Paused ? "unpause" : "pause" )
console_print(id,"[AMXX] Server proceed %s", g_Paused ? "unpausing" : "pausing")
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: %s server",name,g_Paused ? "unpause" : "pause")
case 1: client_print(0,print_chat,"ADMIN: %s server",g_Paused ? "unpause" : "pause")
new pausing[16]
format(pausing,15,"%L",id,g_Paused ? "unpausing" : "pausing")
console_print(id,"[AMXX] %L", id, pausing)
new activity = get_cvar_num("amx_show_activity")
if (activity!=0) {
new players[32],pnum,msg[128],len
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
len = format(msg,127,"%L",players[i],"ADMIN")
strtoupper(msg)
if (activity==1)
len += copy(msg[len],127-len,":")
else
len += format(msg[len],127-len," %s:",name)
format(msg[len],127-len,"%L",players[i],g_Paused ? "UNPAUSE" : "PAUSE" )
client_print(players[i],print_chat,"%s server",msg)
}
}
g_pauseCon = id
return PLUGIN_HANDLED
}
@ -517,7 +565,7 @@ public cmdRcon(id,level,cid) {
get_user_name(id,name,31)
log_amx("Cmd: ^"%s<%d><%s><>^" server console (cmdline ^"%s^")",
name,get_user_userid(id),authid, arg)
console_print(id,"[AMXX] Commmand line ^"%s^" sent to server console",arg)
console_print(id,"[AMXX] %L",id,"COM_SENT_SERVER",arg)
server_cmd(arg)
return PLUGIN_HANDLED
}
@ -526,20 +574,27 @@ public cmdWho(id,level,cid) {
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED
new players[32], inum, authid[32],name[32], flags, sflags[32]
new players[32], inum, cl_on_server[64], authid[32], name[32], flags, sflags[32]
new lImm[16],lRes[16],lAccess[16],lYes[16],lNo[16]
format(lImm,15,"%L",id,"IMMU")
format(lRes,15,"%L",id,"RESERV")
format(lAccess,15,"%L",id,"ACCESS")
format(lYes,15,"%L",id,"YES")
format(lNo,15,"%L",id,"YES")
get_players(players,inum)
console_print(id,"^nClients on server:^n # %-16.15s %-12s %-8s %-4.3s %-4.3s %s",
"nick","authid","userid","imm","res","access")
format(cl_on_server,63,"%L",id,"CLIENTS_ON_SERVER")
console_print(id,"^n%s:^n # %-16.15s %-12s %-8s %-4.3s %-4.3s %s",
cl_on_server,"nick","authid","userid",lImm,lRes,lAccess)
for (new a = 0; a < inum; ++a) {
get_user_authid(players[a],authid,31)
get_user_name(players[a],name,31)
flags = get_user_flags(players[a])
get_flags(flags,sflags,31)
console_print(id,"%2d %-16.15s %-12s %-8d %-4.3s %-4.3s %s", players[a],name,authid,
get_user_userid(players[a]),(flags&ADMIN_IMMUNITY)?"yes":"no",
(flags&ADMIN_RESERVATION)?"yes":"no",sflags)
get_user_userid(players[a]),(flags&ADMIN_IMMUNITY)?lYes:lNo,
(flags&ADMIN_RESERVATION)?lYes:lNo,sflags)
}
console_print(id,"Total %d",inum)
console_print(id,"%L",id,"TOTAL_NUM",inum)
get_user_authid(id,authid,31)
get_user_name(id,name,31)
log_amx("Cmd: ^"%s<%d><%s><>^" ask for players list",name,get_user_userid(id),authid)
@ -565,29 +620,30 @@ public cmdLeave(id,level,cid) {
else
ltags[ltagsnum++][0] = 0
}
new nick[32], ires, pnum = get_maxplayers() + 1, count = 0
new nick[32], ires, pnum = get_maxplayers() + 1, count = 0, lReason[128]
for (new b=1;b<pnum;++b){
if (!is_user_connected(b)&&!is_user_connecting(b)) continue
get_user_name(b,nick,31)
ires = hasTag(nick,ltags,ltagsnum)
if (ires!=-1){
console_print(id,"[AMXX] Skipping ^"%s^" (matching ^"%s^")",nick,ltags[ires])
console_print(id,"[AMXX] %L",id,"SKIP_MATCH",nick,ltags[ires])
continue
}
if (get_user_flags(b)&ADMIN_IMMUNITY){
console_print(id,"[AMXX] Skipping ^"%s^" (immunity)",nick)
console_print(id,"[AMXX] %L",id,"SKIP_IMM",nick)
continue
}
console_print(id,"[AMXX] Kicking ^"%s^"",nick)
console_print(id,"[AMXX] %L",id,"KICK_PL",nick)
if (is_user_bot(b))
server_cmd("kick #%d",get_user_userid(b))
else
{
server_cmd("kick #%d ^"You have been dropped because admin has left only specified group of clients^"",get_user_userid(b))
format(lReason,127,"%L",b,"YOU_DROPPED")
server_cmd("kick #%d ^"%s^"",get_user_userid(b),lReason)
}
count++
}
console_print(id,"[AMXX] Kicked %d clients",count)
console_print(id,"[AMXX] %L",id,"KICKED_CLIENTS",count)
new authid[32],name[32]
get_user_authid(id,authid,31)
get_user_name(id,name,31)
@ -595,8 +651,8 @@ public cmdLeave(id,level,cid) {
name,get_user_userid(id),authid,ltags[0],ltags[1],ltags[2],ltags[3] )
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: leave %s %s %s %s",name,ltags[0],ltags[1],ltags[2],ltags[3])
case 1: client_print(0,print_chat,"ADMIN: leave %s %s %s %s",ltags[0],ltags[1],ltags[2],ltags[3])
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_LEAVE_2",name,ltags[0],ltags[1],ltags[2],ltags[3])
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_LEAVE_1",ltags[0],ltags[1],ltags[2],ltags[3])
}
return PLUGIN_HANDLED
@ -625,11 +681,11 @@ public cmdNick(id,level,cid) {
name,get_user_userid(id),authid,arg2,name2,get_user_userid(player),authid2 )
switch (get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"ADMIN %s: change nick of %s to ^"%s^"",name,name2,arg2)
case 1: client_print(0,print_chat,"ADMIN: change nick of %s to ^"%s^"",name2,arg2)
case 2: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_NICK_2",name,name2,arg2)
case 1: client_print(0,print_chat,"%L",LANG_PLAYER,"ADMIN_NICK_1",name2,arg2)
}
console_print(id,"[AMXX] Changed nick of %s to ^"%s^"",name2,arg2)
console_print(id,"[AMXX] %L",id,"CHANGED_NICK",name2,arg2)
return PLUGIN_HANDLED
}

View File

@ -36,12 +36,9 @@
#define HELPAMOUNT 10 // Number of commands per page
new g_typeHelp[] = "Type 'amx_help' in the console to see available commands"
new g_timeInfo1[] = "Time Left: %d:%02d min. Next Map: %s"
new g_timeInfo2[] = "No Time Limit. Next Map: %s"
public plugin_init() {
register_plugin("Admin Help",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("adminhelp.txt")
register_concmd("amx_help","cmdHelp",0,"<page> [nr of cmds (only for server)] - displays this help")
}
@ -64,7 +61,7 @@ public cmdHelp(id,level,cid) {
if (start >= clcmdsnum)
start = clcmdsnum - 1
console_print(id,"^n----- AMX Mod X Help: Commands -----")
console_print(id,"^n----- %L -----",id,"HELP_COMS")
new info[128], cmd[32], eflags
new end = start + lHelpAmount // HELPAMOUNT
@ -75,27 +72,27 @@ public cmdHelp(id,level,cid) {
get_concmd(i,cmd,31,eflags,info,127,flags,id)
console_print(id,"%3d: %s %s",i+1,cmd,info)
}
console_print(id,"----- Entries %d - %d of %d -----",start+1,end,clcmdsnum)
console_print(id,"----- %L -----",id,"ENTRIES",start+1,end,clcmdsnum)
if (end < clcmdsnum)
console_print(id,"----- Use 'amx_help %d' for more -----",end+1)
console_print(id,"----- %L -----",id,"USE_MORE",end+1)
else
console_print(id,"----- Use 'amx_help 1' for begin -----")
console_print(id,"----- %L -----",id,"USE_BEGIN")
return PLUGIN_HANDLED
}
public dispInfo(id){
client_print(id,print_chat, g_typeHelp )
public dispInfo(id) {
client_print(id,print_chat,"%L",id,"TYPE_HELP")
new nextmap[32]
get_cvar_string("amx_nextmap",nextmap,31)
if (get_cvar_float("mp_timelimit")){
new timeleft = get_timeleft()
if (timeleft > 0){
client_print(id,print_chat, g_timeInfo1 , timeleft / 60, timeleft % 60,nextmap)
client_print(id,print_chat, "%L" , id, "TIME_INFO_1", timeleft / 60, timeleft % 60,nextmap)
}
}
client_print(id,print_chat, g_timeInfo2 ,nextmap)
client_print(id,print_chat,"%L",id,"TIME_INFO_2",nextmap)
}
setHelp(id)

View File

@ -40,9 +40,9 @@
new g_cmdLoopback[16]
public plugin_init()
{
public plugin_init() {
register_plugin("Slots Reservation",AMXX_VERSION_STR,"AMXX Dev Team")
register_dictionary("adminslots.txt")
register_cvar("amx_reservation","1")
format( g_cmdLoopback, 15, "amxres%c%c%c%c" ,
@ -51,16 +51,18 @@ public plugin_init()
register_clcmd( g_cmdLoopback, "ackSignal" )
}
public ackSignal(id)
server_cmd("kick #%d ^"Dropped due to slot reservation^"", get_user_userid(id) )
public ackSignal(id) {
new lReason[64]
format(lReason,63,"%L",id,"DROPPED_RES")
server_cmd("kick #%d ^"%s^"", get_user_userid(id), lReason )
}
public client_authorized(id)
{
public client_authorized(id) {
new maxplayers = get_maxplayers()
new players = get_playersnum( 1 )
new limit = maxplayers - get_cvar_num( "amx_reservation" )
new limit = maxplayers - get_cvar_num("amx_reservation")
if ( (get_user_flags(id) & ADMIN_RESERVATION) || (players <= limit) )
if ( access(id,ADMIN_RESERVATION) || (players <= limit) )
{
#if defined HIDE_RESERVED_SLOTS
setVisibleSlots( players , maxplayers, limit )
@ -76,9 +78,9 @@ public client_authorized(id)
#if defined HIDE_RESERVED_SLOTS
public client_disconnect(id)
{
new maxplayers = get_maxplayers( )
new maxplayers = get_maxplayers()
setVisibleSlots( get_playersnum(1) - 1 , maxplayers ,
maxplayers - get_cvar_num( "amx_reservation" ) )
maxplayers - get_cvar_num("amx_reservation") )
return PLUGIN_CONTINUE
}

View File

@ -44,23 +44,20 @@ new g_coloredMenus
new g_voteCaller
new g_Execute[256]
new g_execLen
new g_alredyVoting[]= "There is already one voting..."
new g_notAllowed[] = "Voting not allowed at this time"
new g_votingStarted[] = "Voting has started..."
new g_playerTag[] = "PLAYER"
new g_adminTag[] = "ADMIN"
new bool:g_execResult
new Float:g_voteRatio
public plugin_init() {
register_plugin("Admin Votes",AMXX_VERSION_STR,"AMXX Dev Team")
register_menucmd(register_menuid("Change map to ") ,MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("Choose map: ") ,MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4,"voteCount")
register_menucmd(register_menuid("Kick ") ,MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("Ban ") ,MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("Vote: ") ,MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("The result: ") ,MENU_KEY_1|MENU_KEY_2,"actionResult")
register_dictionary("adminvote.txt")
register_dictionary("common.txt")
register_menucmd(register_menuid("Change map to "),MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("Choose map: "),MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4,"voteCount")
register_menucmd(register_menuid("Kick "),MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("Ban "),MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("Vote: "),MENU_KEY_1|MENU_KEY_2,"voteCount")
register_menucmd(register_menuid("The result: "),MENU_KEY_1|MENU_KEY_2,"actionResult")
register_concmd("amx_votemap","cmdVoteMap",ADMIN_VOTE,"<map> [map] [map] [map]")
register_concmd("amx_votekick","cmdVoteKickBan",ADMIN_VOTE,"<name or #userid>")
register_concmd("amx_voteban","cmdVoteKickBan",ADMIN_VOTE,"<name or #userid>")
@ -69,7 +66,7 @@ public plugin_init() {
g_coloredMenus = colored_menus()
}
public cmdCancelVote(id,level,cid){
public cmdCancelVote(id,level,cid) {
if (!cmd_access(id,level,cid,0))
return PLUGIN_HANDLED
if ( task_exists( 99889988 , 1 ) ) {
@ -77,40 +74,42 @@ public cmdCancelVote(id,level,cid){
get_user_authid(id,authid,31)
get_user_name(id,name,31)
log_amx("Vote: ^"%s<%d><%s><>^" cancel vote session", name,get_user_userid(id),authid)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%s %s: cancel vote", (get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag, name)
case 1: client_print(0,print_chat,"%s: cancel vote", (get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag)
new players[32],pnum,lTag[16],activity = get_cvar_num("amx_show_activity")
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
format(lTag,15,"%L",players[i],is_user_admin(id) ? "ADMIN" : "PLAYER")
strtoupper(lTag)
switch (activity) {
case 2: client_print(players[i],print_chat,"%L", LANG_PLAYER, "ADMIN_CANC_VOTE_2", lTag, name)
case 1: client_print(players[i],print_chat,"%L", LANG_PLAYER, "ADMIN_CANC_VOTE_1", lTag)
}
}
console_print(id, "Voting canceled" )
client_print(0,print_chat,"Voting canceled")
console_print(id, "%L", id, "VOTING_CANC" )
client_print(0,print_chat,"%L",LANG_PALYER,"VOTING_CANC")
remove_task( 99889988 , 1 )
set_cvar_float( "amx_last_voting" , get_gametime() )
}
else
console_print(id, "There is no voting to cancel or the vote session can't be canceled with that command" )
console_print(id, "%L", id, "NO_VOTE_CANC" )
return PLUGIN_HANDLED
}
public delayedExec(cmd[])
server_cmd(cmd)
new g_resultRef[] = "Result refused"
new g_resultAcpt[] = "Result accepted"
new g_votingFailed[] = "Voting failed"
new g_votingSuccess[] = "Voting successful"
public autoRefuse(){
log_amx("Vote: %s" , g_resultRef)
public autoRefuse() {
log_amx("Vote: %s" , "Result refused")
client_print(0,print_chat,g_resultRef )
}
public actionResult(id,key) {
remove_task( 4545454 )
switch(key){
switch (key){
case 0: {
set_task(2.0,"delayedExec",0,g_Execute,g_execLen)
log_amx("Vote: %s",g_resultAcpt)
client_print(0,print_chat,g_resultAcpt )
log_amx("Vote: %L","en","RES_ACCEPTED")
client_print(0,print_chat,"%L",LANG_PLAYER,"RES_ACCEPTED")
}
case 1: autoRefuse()
}
@ -120,63 +119,79 @@ public actionResult(id,key) {
public checkVotes() {
new best = 0
if ( !g_yesNoVote ) {
for(new a = 0; a < 4; ++a)
for (new a = 0; a < 4; ++a)
if (g_voteCount[a] > g_voteCount[best])
best = a
}
new votesNum = g_voteCount[0] + g_voteCount[1] + g_voteCount[2] + g_voteCount[3]
new iRatio = votesNum ? floatround( g_voteRatio * float( votesNum ) ,floatround_ceil) : 1
new iResult = g_voteCount[best]
if ( iResult < iRatio ){
if (g_yesNoVote)
client_print(0,print_chat,"%s (yes ^"%d^") (no ^"%d^") (needed ^"%d^")",g_votingFailed, g_voteCount[0], g_voteCount[1] , iRatio )
else
client_print(0,print_chat,"%s (got ^"%d^") (needed ^"%d^")",g_votingFailed,iResult , iRatio )
log_amx("Vote: %s (got ^"%d^") (needed ^"%d^")",g_votingFailed,iResult , iRatio )
new players[32],pnum,i
get_players(players,pnum,"c")
if ( iResult < iRatio ) {
new lVotingFailed[32]
for (i=0;i<pnum;i++) {
format(lVotingFailed,31,"%L",players[i],"VOTING_FAILED")
if (g_yesNoVote)
client_print(0,print_chat,"%L",players[i],"VOTING_RES_1",
lVotingFailed,g_voteCount[0],g_voteCount[1],iRatio)
else
client_print(0,print_chat,"%L",players[i],"VOTING_RES_2",lVotingFailed,iResult,iRatio )
}
log_amx("Vote: %s (got ^"%d^") (needed ^"%d^")",g_votingFailed,iResult,iRatio)
return PLUGIN_CONTINUE
}
g_execLen = format(g_Execute,255,g_Answer,g_optionName[best]) + 1
if (g_execResult){
g_execResult = false
if ( is_user_connected(g_voteCaller) ) {
new menuBody[512]
new len = format(menuBody,511,g_coloredMenus ? "\yThe result: \w%s^n^n" : "The result: %s^n^n", g_Execute )
len += copy( menuBody[len] ,511 - len, g_coloredMenus ? "\yDo you want to continue?^n\w" : "Do you want to continue?^n" )
copy( menuBody[len] ,511 - len, "^n1. Yes^n2. No")
show_menu( g_voteCaller ,0x03 ,menuBody, 10 )
new menuBody[512],lTheResult[32],lYes[16],lNo[16]
format(lTheResult,31,"%L",g_voteCaller,"THE_RESULT")
format(lYes,15,"%L",g_voteCaller,"YES")
format(lNo,15,"%L",g_voteCaller,"NO")
ucfirst(lYes)
ucfirst(lNo)
new len = format(menuBody,511,g_coloredMenus ? "\y%s: \w%s^n^n" : "%s: %s^n^n", lTheResult, g_Execute )
len += copy( menuBody[len] ,511 - len, g_coloredMenus ? "\y%L^n\w" : "%L^n", g_voteCaller, "WANT_CONTINUE" )
format( menuBody[len] ,511 - len, "^n1. %s^n2. %s",lYes,lNo)
show_menu( g_voteCaller ,0x03 ,menuBody, 10, "The result: " )
set_task(10.0,"autoRefuse",4545454)
}
else
set_task(2.0,"delayedExec",0,g_Execute,g_execLen)
}
client_print(0,print_chat,"%s (got ^"%d^") (needed ^"%d^"). The result: %s", g_votingSuccess, iResult , iRatio , g_Execute )
new lVotingSuccess[32]
for (i=0;i<pnum;i++) {
format(lVotingSuccess,31,"%L",players[i],"VOTING_SUCCESS")
ient_print(0,print_chat,"%L",players[i],"VOTING_RES_3",lVotingSuccess,iResult,iRatio,g_Execute)
}
log_amx("Vote: %s (got ^"%d^") (needed ^"%d^") (result ^"%s^")", g_votingSuccess, iResult , iRatio , g_Execute )
return PLUGIN_CONTINUE
}
public voteCount(id,key){
public voteCount(id,key) {
if ( get_cvar_num("amx_vote_answers") ) {
new name[32]
get_user_name(id,name,31)
if (g_yesNoVote)
client_print(0,print_chat,"%s voted %s",name,key ? "against" : "for" )
client_print(0,print_chat,"%L",LANG_PLAYER,key ? "VOTED_AGAINST" : "VOTED_FOR",name)
else
client_print(0,print_chat,"%s voted for option #%d",name,key+1)
client_print(0,print_chat,"%L",LANG_PLAYER,"VOTED_FOR_OPT",name,key+1)
}
++g_voteCount[key]
return PLUGIN_HANDLED
}
public cmdVoteMap(id,level,cid) {
public cmdVoteMap(id,level,cid) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new Float:voting = get_cvar_float("amx_last_voting")
if (voting > get_gametime()){
console_print(id, g_alredyVoting )
if (voting > get_gametime()) {
console_print(id, "%L", id, "ALREADY_VOTING")
return PLUGIN_HANDLED
}
if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()) {
console_print(id, g_notAllowed )
console_print(id, "%L", id, "VOTING_NOT_ALLOW")
return PLUGIN_HANDLED
}
new argc = read_argc()
@ -186,20 +201,22 @@ public cmdVoteMap(id,level,cid) {
g_optionName[1][0] = 0
g_optionName[2][0] = 0
g_optionName[3][0] = 0
for(new i = 1; i < argc; ++i){
for (new i = 1; i < argc; ++i) {
read_argv(i,g_optionName[g_validMaps],31)
if (is_map_valid(g_optionName[g_validMaps]))
g_validMaps++;
}
if (g_validMaps == 0) {
console_print(id,"Given %s not valid",(argc==2)?"map is":"maps are")
new lMaps[16]
format(lMaps,15,"%L",id,(argc==2)?"MAP_IS":"MAPS_ARE")
console_print(id,"%L",id,"GIVEN_NOT_VALID")
return PLUGIN_HANDLED
}
new menu_msg[256]
new keys = 0
if (g_validMaps > 1){
if (g_validMaps > 1) {
keys = MENU_KEY_0
copy(menu_msg,255,g_coloredMenus ? "\yChoose map: \w^n^n" : "Choose map: ^n^n")
copy(menu_msg,255,g_coloredMenus ? "\y%L: \w^n^n" : "%L: ^n^n",LANG_SERVER,"CHOOSE_MAP")
new temp[128]
for(new a = 0; a < g_validMaps; ++a){
format(temp,127,"%d. %s^n",a+1,g_optionName[a])
@ -209,9 +226,15 @@ public cmdVoteMap(id,level,cid) {
add(menu_msg,255,"^n0. None")
g_yesNoVote = 0
}
else{
format(menu_msg,255,g_coloredMenus ? "\yChange map to %s?\w^n^n1. Yes^n2. No"
: "Change map to %s?^n^n1. Yes^n2. No",g_optionName[0])
else {
new lChangeMap[32],lYes[16],lNo[16]
format(lChangeMap,31,"%L",LANG_SERVER,"CHANGE_MAP_TO")
format(lYes,15,"%L",LANG_SERVER,"YES")
format(lNo,15,"%L",LANG_SERVER,"NO")
ucfirst(lYes)
ucfirst(lNo)
format(menu_msg,255,g_coloredMenus ? "\y%s %s?\w^n^n1. %s^n2. %s"
: "%s %s?^n^n1. %s^n2. %s",lChangeMap,g_optionName[0],lYes,lNo)
keys = MENU_KEY_1|MENU_KEY_2
g_yesNoVote = 1
}
@ -224,23 +247,32 @@ public cmdVoteMap(id,level,cid) {
else
log_amx("Vote: ^"%s<%d><%s><>^" vote maps (map#1 ^"%s^") (map#2 ^"%s^") (map#3 ^"%s^") (map#4 ^"%s^")",
name,get_user_userid(id),authid,g_optionName[0],g_optionName[1],g_optionName[2],g_optionName[3])
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%s %s: vote map(s)",name,
(get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag)
case 1: client_print(0,print_chat,"%s: vote map(s)",
(get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag)
new lTag[16],activity = get_cvar_num("amx_show_activity")
if (activity>0) {
new players[32],pnum
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
format(lTag,15,"%L",players[i],is_user_admin(id)?"ADMIN":"PLAYER")
strtoupper(lTag)
switch (activity) {
case 2: client_print(players[i],print_chat,"%L",
players[i],"ADMIN_VOTE_MAP_2",lTag,name)
case 1: client_print(players[i],print_chat,"%L",
players[i],"ADMIN_VOTE_MAP_1",lTag)
}
}
}
g_execResult = true
new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
set_cvar_float("amx_last_voting", get_gametime() + vote_time )
g_voteRatio = get_cvar_float("amx_votemap_ratio")
g_Answer = "changelevel %s"
show_menu(0,keys,menu_msg,floatround(vote_time))
show_menu(0,keys,menu_msg,floatround(vote_time),(g_validMaps > 1)?"Choose map: ":"Change map to ")
set_task(vote_time,"checkVotes" , 99889988 )
g_voteCaller = id
console_print(id, g_votingStarted )
console_print(id, "%L", id, "VOTING_STARTED")
g_voteCount = { 0,0, 0,0 }
return PLUGIN_HANDLED
}
@ -250,18 +282,18 @@ public cmdVote(id,level,cid) {
return PLUGIN_HANDLED
new Float:voting = get_cvar_float("amx_last_voting")
if (voting > get_gametime()){
console_print(id, g_alredyVoting )
console_print(id, "%L", id, "ALREADY_VOTING")
return PLUGIN_HANDLED
}
if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()) {
console_print(id, g_notAllowed )
console_print(id, "%L", id, "VOTING_NOT_ALLOW")
return PLUGIN_HANDLED
}
new quest[48]
read_argv(1,quest,47)
if ((contain(quest,"sv_password")!=-1)||(contain(quest,"rcon_password")!=-1)||
(contain(quest,"kick")!=-1)||(contain(quest,"addip")!=-1)||(contain(quest,"ban")!=-1)){
console_print(id,"Voting for that has been forbidden")
console_print(id,"%L",id,"VOTING_FORBIDDEN")
return PLUGIN_HANDLED
}
read_argv(2,g_optionName[0],31)
@ -273,41 +305,49 @@ public cmdVote(id,level,cid) {
log_amx("Vote: ^"%s<%d><%s><>^" vote custom (question ^"%s^") (option#1 ^"%s^") (option#2 ^"%s^")",
name,get_user_userid(id),authid,quest,g_optionName[0],g_optionName[1])
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%s %s: vote custom",
(get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag,name )
case 1: client_print(0,print_chat,"%s: vote custom",
(get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag)
new activity = get_cvar_num("amx_show_activity")
if (activity>0) {
new players[32],pnum,lTag[16]
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
format(lTag,"%L",players[i],is_user_admin(id)?"ADMIN":"PLAYER")
strtoupper(lTag)
switch (activity) {
case 2: client_print(players[i],print_chat,"%L","ADMIN_VOTE_CUS_2",lTag,name)
case 1: client_print(players[i],print_chat,"%L","ADMIN_VOTE_CUS_1",lTag)
}
}
}
new menu_msg[256]
new menu_msg[256],lVote[16]
format(lVote,15,"%L",LANG_SERVER,"VOTE")
new keys = MENU_KEY_1|MENU_KEY_2
format(menu_msg,255, g_coloredMenus ? "\yVote: %s\w^n^n1. %s^n2. %s"
: "Vote: %s^n^n1. %s^n2. %s",quest,g_optionName[0],g_optionName[1])
format(menu_msg,255, g_coloredMenus ? "\y%s: %s\w^n^n1. %s^n2. %s"
: "%s: %s^n^n1. %s^n2. %s",lVote,quest,g_optionName[0],g_optionName[1])
g_execResult = false
new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
set_cvar_float("amx_last_voting", get_gametime() + vote_time )
g_voteRatio = get_cvar_float("amx_vote_ratio")
format(g_Answer,127,"%s - %%s",quest)
show_menu(0,keys,menu_msg,floatround(vote_time))
set_task(vote_time,"checkVotes" , 99889988 )
show_menu(0,keys,menu_msg,floatround(vote_time),"Vote: ")
set_task(vote_time,"checkVotes" , 99889988 )
g_voteCaller = id
console_print(id, g_votingStarted )
g_voteCount ={ 0,0,0,0}
g_yesNoVote = 0
return PLUGIN_HANDLED
}
console_print(id, "%L", id, "VOTING_STARTED")
g_voteCount = {0,0,0,0}
g_yesNoVote = 0
return PLUGIN_HANDLED
}
public cmdVoteKickBan(id,level,cid) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new Float:voting = get_cvar_float("amx_last_voting")
if (voting > get_gametime()){
console_print(id, g_alredyVoting )
console_print(id, "%L", id, "ALREADY_VOTING")
return PLUGIN_HANDLED
}
if (voting && voting + get_cvar_float("amx_vote_delay") > get_gametime()) {
console_print(id, g_notAllowed )
console_print(id, "%L", id, "VOTING_NOT_ALLOW")
return PLUGIN_HANDLED
}
new cmd[32]
@ -317,18 +357,26 @@ public cmdVoteKickBan(id,level,cid) {
read_argv(1,arg,31)
new player = cmd_target(id,arg,1)
if (!player) return PLUGIN_HANDLED
if (voteban && is_user_bot(player)) {
if (voteban && is_user_bot(player)) {
new imname[32]
get_user_name(player,imname,31)
console_print(id,"That action can't be performed on bot ^"%s^"",imname)
console_print(id,"%L",id,"ACTION_PERFORMED",imname)
return PLUGIN_HANDLED
}
new keys = MENU_KEY_1|MENU_KEY_2
new menu_msg[256]
new menu_msg[256],lYes[16],lNo[16],lKickBan[16]
format(lYes,15,"%L",LANG_SERVER,"YES")
format(lNo,15,"%L",LANG_SERVER,"NO")
format(lKickBan,15,"%L",LANG_SERVER,voteban?"BAN":"KICK")
ucfirst(lYes)
ucfirst(lNo)
ucfirst(lKickBan)
get_user_name(player,arg,31)
format(menu_msg,255,g_coloredMenus ? "\y%s %s?\w^n^n1. Yes^n2. No"
: "%s %s?^n^n1. Yes^n2. No", voteban ? "Ban" : "Kick", arg)
format(menu_msg,255,g_coloredMenus ?
"\y%s %s?\w^n^n1. %s^n2. %s" :
"%s %s?^n^n1. %s^n2. %s",
lKickBan, arg, lYes, lNo)
g_yesNoVote = 1
if (voteban)
get_user_authid(player,g_optionName[0],31)
@ -340,22 +388,31 @@ public cmdVoteKickBan(id,level,cid) {
log_amx("Vote: ^"%s<%d><%s><>^" vote %s (target ^"%s^")",
name,get_user_userid(id),authid,voteban ? "ban" : "kick",arg)
switch(get_cvar_num("amx_show_activity")) {
case 2: client_print(0,print_chat,"%s %s: vote %s for %s",
(get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag,name,voteban ? "ban" : "kick",arg )
case 1: client_print(0,print_chat,"%s: vote %s for %s",
(get_user_flags(id) & ADMIN_USER) ? g_playerTag : g_adminTag,voteban ? "ban" : "kick",arg)
new activity = get_cvar_num("amx_show_activity")
if (activity>0) {
new players[32],pnum,lTag[16]
get_players(players,pnum,"c")
for (new i=0;i<pnum;i++) {
format(lTag,15,"%L",players[i],is_user_admin(id)?"ADMIN":"USER"
format(lKickBan,"%L",players[i],voteban?"BAN":"KICK")
switch (activity) {
case 2: client_print(players[i],print_chat,"%L",
players[i],"ADMIN_VOTE_FOR_2",lTag,name,lKickBan,arg)
case 1: client_print(players[i],print_chat,"%s: vote %s for %s",
players[i],"ADMIN_VOTE_FOR_1",lTag,lKickBan,arg)
}
}
}
g_execResult = true
new Float:vote_time = get_cvar_float("amx_vote_time") + 2.0
set_cvar_float("amx_last_voting", get_gametime() + vote_time )
g_voteRatio = get_cvar_float(voteban ? "amx_voteban_ratio" : "amx_votekick_ratio")
g_Answer = voteban ? "banid 30.0 %s kick" : "kick #%s"
show_menu(0,keys,menu_msg,floatround(vote_time))
show_menu(0,keys,menu_msg,floatround(vote_time),voteban?"Ban ":"Kick ")
set_task(vote_time,"checkVotes" , 99889988 )
g_voteCaller = id
console_print(id, g_votingStarted )
console_print(id, "%L", id, "VOTING_STARTED")
g_voteCount = {0,0,0,0}
return PLUGIN_HANDLED
}