|
|
Prin acest anunt va atrag atentia asupra pluginului amx_showip pentru amxmodx. Unele variante vechi ale lui contin comanda amx_ipban, care nu verifica daca jucatorul e admin sau nu cand executa comanda. Deci oricine o poate executa si bana toti jucatorii de pe serverul dumneavoastra. Rog pe toti creatorii de addon-uri sa includa varianta aceasta a pluginului in cazul in care continte comanda amx_ipban.
* Show IP AMX MOD X Plugin * Author : SAMURAI * Downloaded from http://extreamcs.com/forum * Version 0.2 * from 0.1 to 0.2 -> - fixed str_to_num * - lineup console * - t args * * Without ipban * Commands : amx_showip (dysplay all players on server and them ip's) */
#include <amxmodx>
// file to read descriptions from new ipdesc[32] = "addons/amx/ipdesc.ini"
public amx_showip(id){ new userip[16] new name[64] new players[32],inum new buffor[3000] new header[50] new temp[150]
new arg[1] new team
read_args(arg,1) team=str_to_num(arg)
switch(team){ case 1: { header="Lista IP - Terroristi" get_players(players,inum,"e","TERRORIST" } case 2: { header="Lista IP - Counter-Teroristi" get_players(players,inum,"e","CT" } default:{ header="IP List" get_players(players,inum) } } // client_print(id,print_console,"%s",header)
format(buffor,100,"%-25.24s %-16.15s %s","Name","IP","Description^n____________________________________^n"
for(new i = 0; i < inum; ++i) { temp="" get_user_ip(players[i],userip,16,1) get_user_name(players[i],name,64) if (strlen(name)>20) { copy(name,17,name) add(name,64,"..." } new IPD[32] findip(userip,IPD) format(temp,150,"%-25.24s %-16.15s %s^n",name,userip,IPD) add(buffor,3000,temp) client_print(id,print_console,"%-32.31s %-16.15s %s",name,userip,IPD) } show_motd(id,buffor,header) return PLUGIN_CONTINUE }
public getdesc(sip[16],sdesc[32]){ if (file_exists(ipdesc)) { new data[128] new stextsize = 0 new line = 0 new ip[16] new desc[32] while((line=read_file(ipdesc,line,data,192,stextsize))!=0) { /*while*/ if (contain(data,"//" == -1) {/*skip comments*/ parse(data,ip,16,desc,32) if (equal(sip,ip)) { sdesc=desc return 1 } } /*skip comments*/ } /*while*/ } else log_message("IP Descriptions file not found!" sdesc="" return 0 }
public findip(sip[16],sdesc[32]){ new ipsubnet[16] new RValue=0 new uip[16] new ippart1[12] new ippart2[12] new ippart3[12] new ippart4[12]
/*Calculating subnet*/ copy(uip, 16, sip) while(replace(uip, 16, ".", " " ){} parse(uip, ippart1,12,ippart2,12,ippart3,12,ippart4,12) ipsubnet="" add(ipsubnet,16,ippart1) add(ipsubnet,16,"." add(ipsubnet,16,ippart2) add(ipsubnet,16,"." add(ipsubnet,16,ippart3) /*Calculating subnet*/
RValue = getdesc(sip , sdesc); if (RValue==0) RValue = getdesc(ipsubnet , sdesc) return RValue }
public client_connect(id){ new userip[16] new name[32] new IPD[32] get_user_ip(id,userip,16,1) get_user_name(id,name,32) findip(userip, IPD) //server_cmd("say [AMXX] %s (%s , %s) se connecteaza",name,userip,IPD) client_print(0,print_chat,"[AMXX] %s (%s,%s) se connecteaza",name,userip,IPD); return PLUGIN_CONTINUE }
public plugin_init() { register_plugin("Show IP","0.2","SAMURAI" register_clcmd("amx_showip","amx_showip" return PLUGIN_CONTINUE }
|
|