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

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

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

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

История благодарностей участнику SKAJIbnEJIb6 ::: Спасибо сказали: 12
Дата поста: В теме: За сообщение: Спасибо сказали:
12.1.2014, 21:09 Status Protection

Описание плагина
Запрещает консольную команду status, а точнее скрывает STEAM ID всех игроков, кроме того, кто написал эту команду. Плагин сделал для защиты от долб*****, которые делают подмену STEAM ID, например ставят STEAM ID админа, и им прописывается админка. Если Вы администратор или VIP, то Вам покажет список всех игроков. Установив плагин, не показывайте STEAM ID игроков в ином месте (бан лист, статистика и т.п.). В принципе, если человек захочет узнать STEAM ID админа, он его узнает, но плагин не даст ему воспользоваться самым простым способом.

Установка плагина НЕ ОБЫЧНАЯ! ЧИТАТЬ!
1) Сам плагин ставится как обычно
2) Далее выключаем сервер, качаем и устанавливаем Hex Editor
3) Открываем им файл swds.dll или engine_i686.so(в зависимости от Вашей ОС). Лежат они в корне сервера(если у Вас нет доступа к корню сервера, увы об этом плагине можно забыть). Так же не забудьте сделать резервную копию файла на всякий случай.
4) Видим много цифр и букв как на скрине 1.
5) Открываем поиск. Жмем CTRL+F и в открывшемся окне пишем status как на скрине 2.
6) В данном файле мы найдем несколько слов status, нам нужно то, что стоит после %.2fK и перед god.notarget. Изменяем какую ни будь букву в слове status, например, как показано на скрине 3.
7) Изменили, сохранили, включили серв, написали status в консоле и убедились, что плагин работает ;)

status_protection
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Status Protect"
#define VERSION "1.0"
#define AUTHOR "SKAJIbnEJIb"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("status", "status_handle")
}

public status_handle(id)
{
// server
new hostname[64], server_ip[32], Map[32], ActivePlayers, MaxPlayers
get_cvar_string("hostname", hostname, 63)
get_user_ip(0, server_ip, 31, 0)
get_mapname(Map, 31)
ActivePlayers = get_playersnum()
MaxPlayers = get_maxplayers()

console_print(id, "hostname: %s", hostname)
// console_print(id, "version : ????????") // не знаю как сделать, и вообще нужна ли эта инфа?
console_print(id, "tcp/ip : %s", server_ip)
console_print(id, "map : %s", Map)
console_print(id, "players : %d active (%d max)", ActivePlayers, MaxPlayers)

// players
new Name[32], userid, authid[32], frags, time, ping, loss, player = 1, bool:is_player, users
if (!is_user_admin(id))
{
player = id
is_player = true
}

console_print(id, "^n# name userid uniqueid frag time ping loss adr")
for (new i = player; i <= MaxPlayers; i++)
{
if (is_user_connected(i))
{
users++

get_user_name(i, Name, 31)
userid = get_user_userid(i)
get_user_authid(i, authid, 31)
frags = get_user_frags(i)
time = get_user_time(i)
get_user_ping(i, ping, loss)

console_print(id, "#%-2.1d %s %d %s %d %d:%02d %d %d", i, Name, userid, authid, frags, (time/60), (time%60), ping, loss)

if (is_player)
break
}
}
console_print(id, "%d users", users)

return PLUGIN_HANDLED
}


Скриншоты прикрепляю к сообщению и на всякий случай в архив
Bambuc, intercs, miRror, MYXA, ncux0Zz, Nebo, stefkone, SYBZERO, TheNega, user.gameover.user, XyLiGaN