Перейти к содержанию
Авторизация  
Jumper

Защита От Нелегальных Гмов

Рекомендуемые сообщения

1. Заходим

gameserver\head-src\com\l2jfrozen\gameserver\network\clientpackets\EnterWorld.java

 

2. Открываем и перед строками

// Restores custom status
activeChar.restoreCustomStatus();

 

Ставим

// Защита От Нелегальных Гмов
if (Config.ENABLE_GM_LIST)
{
if((activeChar.isGM()) && !(Config.LIST_GM_NAME.contains(activeChar.getName())))
{
activeChar.setAccessLevel(-100);
Util.handleIllegalPlayerAction(activeChar,"Игрок" + activeChar.getName() + " получил БАН! ", IllegalPlayerAction.PUNISH_KICKBAN);
}
}

 

Если же потом в дальнейшей компиляции у вас будет жаловаться на

IllegalPlayerAction

 

то это легко поправимо ставим вот такой вариант кода

// Защита От Нелегальных Гмов
if (Config.ENABLE_GM_LIST)
{
if((activeChar.isGM()) && !(Config.LIST_GM_NAME.contains(activeChar.getName())))
{
activeChar.setAccessLevel(-100);
Util.handleIllegalPlayerAction(activeChar,"Игрок" + activeChar.getName() + " получил БАН! ", Config.DEFAULT_PUNISH);
}
}

 

Но при таком раскладе теперь наша проверка ссылается на Config.DEFAULT_PUNISH

Этот конфиг вшит уже во всех сборках, и действует он как наказание

Его можно настроить в кофиги options.ini и выглядит он так

# Как карать игрока за нелегальные дейтсвия?
# 1 - Сообщить ГМу
# 2 - Кикнуть из игры
# 3 - Кикнуть и забанить
# 4 - Посадить в тюрьму (0 на бесконечно, 300 на 5 минут)
DefaultPunish = 2

 

С этим мы разобрались!

 

3. Идем дальше

gameserver\head-src\com\l2jfrozen\Config.java

 

Итак мы открыли

Config.java

 

Юзаем поиск CTRL+F и ищем следщую строчку

public static int MASTERACCESS_LEVEL;

 

и после нее вставляем

// Защита от нелегальных гмов
public static boolean ENABLE_GM_LIST;
public static String GM_NAME;
public static List LIST_GM_NAME = new FastList();

 

Дальше юзаем еще раз поиск и ищем такую строчку

USERACCESS_LEVEL = Integer.parseInt(AccessSettings.getProperty("UserAccessLevel", "0"));

 

и ставим после нее

// Защита от нелегальных гмов
ENABLE_GM_LIST = Boolean.parseBoolean(AccessSettings.getProperty("EnableGMList", "False"));
GM_NAME = AccessSettings.getProperty("ListGmName", "DoctorQ");
LIST_GM_NAME = new FastList();
for (String name : GM_NAME.split(","))
{
LIST_GM_NAME.add(name);
}

 

сохраняем...

 

4. Добавляем в конфиг сервера access.properties

# Включить/Выключить защиту от нелегальных гмов
EnableGMList = False
# Защита от нелегальных гмов
# все гмы имеющие ники не внесеные в этот список будут забанены
# внимание! указываем без пробелов и запятой в конце
ListGmName = DoctorQ,Jumper

 

Вот и всё, тестим, делимся свои впечатлениями!

 

Также хочу сказать, если у вас ядро не поддерживает наш родной русский язык, то замените в коде все русские слова, использую переводчик, иначе будут проблемы при компиляции

Изменено пользователем Wonder
  • Upvote 6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1.Заходим

gameserver\head-src\com\l2jfrozen\gameserver\network\clientpackets\EnterWorld.java

 

2.Открываем и перед строками

// Restores custom status
activeChar.restoreCustomStatus();

 

Ставим

 

// Защита от нелегальных гмов
if (Config.ENABLE_GM_LIST)
{
if((activeChar.isGM()) && !(Config.LIST_GM_NAME.contains(activeChar.getName())))
{
activeChar.setAccessLevel(-100);
Util.handleIllegalPlayerAction(activeChar,"Игрок " + activeChar.getName() + " получил бан! ", IllegalPlayerAction.PUNISH_KICKBAN);
}
}

 

Сохраням

 

3. Далее Открываем

gameserver\head-src\com\l2jfrozen\Config.java

 

Ищем такую строчку

 

USERACCESS_LEVEL = Integer.parseInt(AccessSettings.getProperty("UserAccessLevel", "0"));

 

После нее добавляем

 

//Защита от нелегальных гмов
ENABLE_GM_LIST = Boolean.parseBoolean(AccessSettings.getProperty("EnableGMList", "False"));
GM_NAME = AccessSettings.getProperty("ListGmName", "DoctorQ");
LIST_GM_NAME = new FastList<String>();
for (String name : GM_NAME.split(","))
{
LIST_GM_NAME.add(name);
}

 

Сохраняем

 

4. Добавляем в конфиг сервера access.properties

# Включить/Выключить защиту от нелегальных гмов
EnableGMList = False

# Защита от нелегальных гмов
# все гмы имеющие ники не внесеные в этот список будут забанены
# внимание! указываем без пробелов и запятой в конце
ListGmName = DoctorQ,Jumper

 

Все готово, радуемся)

ОЧень полезно спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ОЧень полезно спасибо

 

только начал в ядре лазить, может еще что выдерну)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а такую фигню мона сделать что не ник чара,а ИД чара?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а такую фигню мона сделать что не ник чара,а ИД чара?

 

зачем вам ид) принцип работы такой, заходит игрок с правами админа под ник 2425(например), но его нету в списке этом, его автоматом банит сразу, навечно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Упустил момент

Администрация исправьте

 

исправьте 3 пункт на это

 

 

3. Далее Открываем

gameserver\head-src\com\l2jfrozen\Config.java

 

Ищем такую строчку

public static int MASTERACCESS_TITLE_COLOR

 

После нее добавляем

 

// Защита от нелегальных гмов
public static boolean ENABLE_GM_LIST;
public static String GM_NAME;
public static List<String> LIST_GM_NAME = new FastList<String>();

 

Далее Ищем такую строчку

 

USERACCESS_LEVEL = Integer.parseInt(AccessSettings.getProperty("UserAccessLevel", "0"));

 

После нее добавляем

// Защита от нелегальных гмов
ENABLE_GM_LIST = Boolean.parseBoolean(AccessSettings.getProperty("EnableGMList", "False"));
GM_NAME = AccessSettings.getProperty("ListGmName", "DoctorQ");
LIST_GM_NAME = new FastList<String>();
for (String name : GM_NAME.split(","))
{
LIST_GM_NAME.add(name);
}

 

Сохраняем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столько бреда в коде я давно не видел. Jumper, каков смысл публикавать подобное не понимая принципов языка не котором оно написано?

 

я смотрю вы профи у нас, так предъявите свои творения, не надо оскорблять труд других

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

только начал в ядре лазить, может еще что выдерну)

Fr3d ты читать умеешь? У тебя со зрением нормально? зачем так критично относится к человеку

Изменено пользователем kick

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Столько бреда в коде я давно не видел. Jumper, каков смысл публикавать подобное не понимая принципов языка не котором оно написано?

Умей уважать других и их труд! Ибо ты ....

Если почитать то все понятно тут...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

есть несколько неточностей + лучше использовать Id, т.к. equals у стрингов регистрозависимый: пропишите ник с маленькой буквы и будет ваш гм в бане сидеть.

Нет смысла хранить стрингу GM_NAME в статик переменной, она у вас должна создаваться в момент парсинга конфига и потом собираться мусорщиком.

Вроде как handleIllegalPlayerAction умеет банить игрока при передаче правильного параметра наказания.

Проверку на активность системы можно совместить с проверкой на гм, хотя компилятор сделает это за вас.

Советую не использовать FastList - ArrayList будет попроще, и + вы определяете его 2 раза и первый раз без указания типа.

Изменено пользователем xblx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Код кривой до ужаса. Пришлось переписывать. В любом случае спасибо за идею реализации.

 

P.S. EnterWorld.java не самое подходящее место для проверки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...