Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику wolf1987 ::: Спасибо сказали: 4
Дата поста: В теме: За сообщение: Спасибо сказали:
2.8.2015, 19:14 Защита Counter Strike Сервера
I to block "Anonymous Proxy" used this plugin.

Код:

/* AMX Mod X - Player Location Plugin
*
* CVars:
* amx_loc_kick_mode 0 - Auto kick mode
* (0 = off, 1 = kick players whose country code is amx_loc_kick_code, 2 = kick players whose country code is **NOT** amx_loc_kick_code)
*
* amx_loc_kick_code "" - GeoIP *TWO* dgit code
*
* amx_loc_access 2 - Players who can access amx_showloc (0 = disabled, 1 = All players, 2 = Admin only)
*
*/

#include <amxmodx>
#include <amxmisc>
#include <geoip>

public plugin_init() {
register_plugin("Player Location", "0.7b", "008DEADinHK (anson_wongy)")

register_cvar("amx_loc_kick_mode", "1")
register_cvar("amx_loc_kick_code", "A1")
register_cvar("amx_loc_access", "2")

new showloc_access[2]
get_cvar_string("amx_loc_access", showloc_access, 1)

if (!equali(showloc_access, "0")) {
if (!equali(showloc_access, "1")) {
register_concmd("amx_showloc", "show_playerlocation", ADMIN_RCON, "<target> - @ALL, @CT, @T, playername")
} else if (!equali(showloc_access, "2")) {
register_concmd("amx_showloc", "show_playerlocation", -1, "<target> - @ALL, @CT, @T, playername")
}
}
}

public kickplayer(id) {
new Reason[64]
format(Reason, 63, "Player from your country/area isnt allowed to join this server.")
server_cmd("kick #%d ^"%s^"", get_user_userid(id), Reason)
}

public client_authorized(id) {
new kick_mode[2]
get_cvar_string("amx_loc_kick_mode", kick_mode, 1)

if (!equali(kick_mode, "0")) {
new playerip[16], geoip_code[3], kick_code[3]
get_user_ip(id, playerip, 15, 1)
if (!equali(playerip, "127.0.0.1")) {
geoip_code2(playerip, geoip_code)
get_cvar_string("amx_loc_kick_code", kick_code, 2)
if (equali(kick_mode, "1")) {
if (equali(geoip_code[0], kick_code[0])) {
kickplayer(id)
}
} else if (equali(kick_mode, "2")) {
if (!equali(geoip_code[0], kick_code[0])) {
kickplayer(id)
}
}
}
}
return PLUGIN_HANDLED
}

public show_playerlocation(id, level, cid) {
if (!cmd_access(id,level,cid,1))
return PLUGIN_HANDLED

new Arg1[24]
read_argv(1, Arg1, 23)

if (equali(Arg1, "")) {
format(Arg1, 24, "@ALL")
}

new playername[32], playerping, playerloss, playerip[16], playerloc[46], playerloccode[3]
if (Arg1[0] == '@')
{
new Team = 0
if (equali(Arg1[1], "CT")) {
Team = 2
} else if (equali(Arg1[1], "T")) {
Team = 1
} else if (equali(Arg1[1], "ALL")) {
Team = 0
} else {
Team = 0
}
new players[32], num, i
get_players(players, num)


console_print(id, "Location info of players: ")
console_print(id, "=================================")
console_print(id, "ID | Name | Ping | Loss | IP | Location | Code")

new playernum
for (i=0; i<num; i++)
{
if (!Team)
{
get_user_name(players[i], playername, 31)
get_user_ip(players[i], playerip, 15, 1)
get_user_ping(players[i], playerping, playerloss)
if (!equali(playerip, "127.0.0.1")) {
geoip_country(playerip, playerloc, 45)
geoip_code2(playerip, playerloccode)
} else {
format(playerloc, 45, "localhost (unknown)")
format(playerloccode, 2, "")
}

console_print(id, "%d | %s | %d | %d | %s | %s | %s", players[i], playername, playerping, playerloss, playerip, playerloc, playerloccode)
playernum++
} else {
if (get_user_team(players[i]) == Team)
{
get_user_name(players[i], playername, 31)
get_user_ip(players[i], playerip, 15, 1)
get_user_ping(players[i], playerping, playerloss)
if (!equali(playerip, "127.0.0.1")) {
geoip_country(playerip, playerloc, 45)
geoip_code2(playerip, playerloccode)
} else {
format(playerloc, 45, "localhost (unknown)")
format(playerloccode, 2, "")
}
console_print(id, "%d | %s | %d | %d | %s | %s | %s", players[i], playername, playerping, playerloss, playerip, playerloc, playerloccode)
playernum++
}
}
}

console_print(id, "=================================")
console_print(id, "Total player listed: %d players", playernum)
console_print(id, "=================================")
} else {
new player = cmd_target(id, Arg1, 2)
if (!player)
{
console_print(id, "Sorry, player %s could not be found or targetted!", Arg1)
return PLUGIN_HANDLED
} else {
get_user_name(player, playername, 31)
get_user_ip(player, playerip, 15, 1)
get_user_ping(player, playerping, playerloss)

if (!equali(playerip, "127.0.0.1")) {
geoip_country(playerip, playerloc, 45)
geoip_code2(playerip, playerloccode)
} else {
format(playerloc, 45, "localhost (unknown)")
format(playerloccode, 2, "")
}

console_print(id, "Here is some info of : %s", playername)
console_print(id, "=================================")
console_print(id, "ID: %d", player)
console_print(id, "Ping: %d", playerping)
console_print(id, "Loss: %d", playerloss)
console_print(id, "IP: %s", playerip)
console_print(id, "Location: %s", playerloc)
console_print(id, "Code: %s", playerloccode)
console_print(id, "=================================")
}
}
return PLUGIN_HANDLED
}


All country codes are listed as following (2 dgits)

A1,"Anonymous Proxy"
A2,"Satellite Provider"
O1,"Other Country"
AD,"Andorra"
AE,"United Arab Emirates"
AF,"Afghanistan"
AG,"Antigua and Barbuda"
AI,"Anguilla"
AL,"Albania"
AM,"Armenia"
AO,"Angola"
AP,"Asia/Pacific Region"
AQ,"Antarctica"
AR,"Argentina"
AS,"American Samoa"
AT,"Austria"
AU,"Australia"
AW,"Aruba"
AX,"Aland Islands"
AZ,"Azerbaijan"
BA,"Bosnia and Herzegovina"
BB,"Barbados"
BD,"Bangladesh"
BE,"Belgium"
BF,"Burkina Faso"
BG,"Bulgaria"
BH,"Bahrain"
BI,"Burundi"
BJ,"Benin"
BL,"Saint Bartelemey"
BM,"Bermuda"
BN,"Brunei Darussalam"
BO,"Bolivia"
BQ,"Bonaire, Saint Eustatius and Saba"
BR,"Brazil"
BS,"Bahamas"
BT,"Bhutan"
BV,"Bouvet Island"
BW,"Botswana"
BY,"Belarus"
BZ,"Belize"
CA,"Canada"
CC,"Cocos (Keeling) Islands"
CD,"Congo, The Democratic Republic of the"
CF,"Central African Republic"
CG,"Congo"
CH,"Switzerland"
CI,"Cote d'Ivoire"
CK,"Cook Islands"
CL,"Chile"
CM,"Cameroon"
CN,"China"
CO,"Colombia"
CR,"Costa Rica"
CU,"Cuba"
CV,"Cape Verde"
CW,"Curacao"
CX,"Christmas Island"
CY,"Cyprus"
CZ,"Czech Republic"
DE,"Germany"
DJ,"Djibouti"
DK,"Denmark"
DM,"Dominica"
DO,"Dominican Republic"
DZ,"Algeria"
EC,"Ecuador"
EE,"Estonia"
EG,"Egypt"
EH,"Western Sahara"
ER,"Eritrea"
ES,"Spain"
ET,"Ethiopia"
EU,"Europe"
FI,"Finland"
FJ,"Fiji"
FK,"Falkland Islands (Malvinas)"
FM,"Micronesia, Federated States of"
FO,"Faroe Islands"
FR,"France"
GA,"Gabon"
GB,"United Kingdom"
GD,"Grenada"
GE,"Georgia"
GF,"French Guiana"
GG,"Guernsey"
GH,"Ghana"
GI,"Gibraltar"
GL,"Greenland"
GM,"Gambia"
GN,"Guinea"
GP,"Guadeloupe"
GQ,"Equatorial Guinea"
GR,"Greece"
GS,"South Georgia and the South Sandwich Islands"
GT,"Guatemala"
GU,"Guam"
GW,"Guinea-Bissau"
GY,"Guyana"
HK,"Hong Kong"
HM,"Heard Island and McDonald Islands"
HN,"Honduras"
HR,"Croatia"
HT,"Haiti"
HU,"Hungary"
ID,"Indonesia"
IE,"Ireland"
IL,"Israel"
IM,"Isle of Man"
IN,"India"
IO,"British Indian Ocean Territory"
IQ,"Iraq"
IR,"Iran, Islamic Republic of"
IS,"Iceland"
IT,"Italy"
JE,"Jersey"
JM,"Jamaica"
JO,"Jordan"
JP,"Japan"
KE,"Kenya"
KG,"Kyrgyzstan"
KH,"Cambodia"
KI,"Kiribati"
KM,"Comoros"
KN,"Saint Kitts and Nevis"
KP,"Korea, Democratic People's Republic of"
KR,"Korea, Republic of"
KW,"Kuwait"
KY,"Cayman Islands"
KZ,"Kazakhstan"
LA,"Lao People's Democratic Republic"
LB,"Lebanon"
LC,"Saint Lucia"
LI,"Liechtenstein"
LK,"Sri Lanka"
LR,"Liberia"
LS,"Lesotho"
LT,"Lithuania"
LU,"Luxembourg"
LV,"Latvia"
LY,"Libyan Arab Jamahiriya"
MA,"Morocco"
MC,"Monaco"
MD,"Moldova, Republic of"
ME,"Montenegro"
MF,"Saint Martin"
MG,"Madagascar"
MH,"Marshall Islands"
MK,"Macedonia"
ML,"Mali"
MM,"Myanmar"
MN,"Mongolia"
MO,"Macao"
MP,"Northern Mariana Islands"
MQ,"Martinique"
MR,"Mauritania"
MS,"Montserrat"
MT,"Malta"
MU,"Mauritius"
MV,"Maldives"
MW,"Malawi"
MX,"Mexico"
MY,"Malaysia"
MZ,"Mozambique"
NA,"Namibia"
NC,"New Caledonia"
NE,"Niger"
NF,"Norfolk Island"
NG,"Nigeria"
NI,"Nicaragua"
NL,"Netherlands"
NO,"Norway"
NP,"Nepal"
NR,"Nauru"
NU,"Niue"
NZ,"New Zealand"
OM,"Oman"
PA,"Panama"
PE,"Peru"
PF,"French Polynesia"
PG,"Papua New Guinea"
PH,"Philippines"
PK,"Pakistan"
PL,"Poland"
PM,"Saint Pierre and Miquelon"
PN,"Pitcairn"
PR,"Puerto Rico"
PS,"Palestinian Territory"
PT,"Portugal"
PW,"Palau"
PY,"Paraguay"
QA,"Qatar"
RE,"Reunion"
RO,"Romania"
RS,"Serbia"
RU,"Russian Federation"
RW,"Rwanda"
SA,"Saudi Arabia"
SB,"Solomon Islands"
SC,"Seychelles"
SD,"Sudan"
SE,"Sweden"
SG,"Singapore"
SH,"Saint Helena"
SI,"Slovenia"
SJ,"Svalbard and Jan Mayen"
SK,"Slovakia"
SL,"Sierra Leone"
SM,"San Marino"
SN,"Senegal"
SO,"Somalia"
SR,"Suriname"
SS,"South Sudan"
ST,"Sao Tome and Principe"
SV,"El Salvador"
SX,"Sint Maarten"
SY,"Syrian Arab Republic"
SZ,"Swaziland"
TC,"Turks and Caicos Islands"
TD,"Chad"
TF,"French Southern Territories"
TG,"Togo"
TH,"Thailand"
TJ,"Tajikistan"
TK,"Tokelau"
TL,"Timor-Leste"
TM,"Turkmenistan"
TN,"Tunisia"
TO,"Tonga"
TR,"Turkey"
TT,"Trinidad and Tobago"
TV,"Tuvalu"
TW,"Taiwan"
TZ,"Tanzania, United Republic of"
UA,"Ukraine"
UG,"Uganda"
UM,"United States Minor Outlying Islands"
US,"United States"
UY,"Uruguay"
UZ,"Uzbekistan"
VA,"Holy See (Vatican City State)"
VC,"Saint Vincent and the Grenadines"
VE,"Venezuela"
VG,"Virgin Islands, British"
VI,"Virgin Islands, U.S."
VN,"Vietnam"
VU,"Vanuatu"
WF,"Wallis and Futuna"
WS,"Samoa"
YE,"Yemen"
YT,"Mayotte"
ZA,"South Africa"
ZM,"Zambia"
ZW,"Zimbabwe"
gtwk
26.1.2015, 12:00 Защита Counter Strike Сервера
I write to thank again the great work they do, you are great people who god bless you. clapping.gif

PS: In the first post should put the fix against banip Fakes corrected by dproto 0.9.475 or higher.
Aikido, Bloo