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

Server Guard

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

На aCis 334 не работает. Выбивает:

QuestManager: Reloading scripts.
java.lang.ClassNotFoundException: custom.ServerGuard.ServerGuard
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at com.l2jserver.script.java.MemoryClassLoader.findClass(MemoryClassLoader.java:79)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at com.l2jserver.script.java.MemoryClassLoader.load(MemoryClassLoader.java:56)
        at com.l2jserver.script.java.JavaScriptEngine.parseMain(JavaScriptEngine.java:186)
        at com.l2jserver.script.java.JavaScriptEngine.parse(JavaScriptEngine.java:176)
        at com.l2jserver.script.java.JavaScriptEngine.eval(JavaScriptEngine.java:115)
        at com.l2jserver.script.java.JavaScriptEngine.eval(JavaScriptEngine.java:122)
        at net.sf.l2j.gameserver.scripting.L2ScriptEngineManager.executeScript(L2ScriptEngineManager.java:307)
        at net.sf.l2j.gameserver.scripting.L2ScriptEngineManager.executeScript(L2ScriptEngineManager.java:267)
        at net.sf.l2j.gameserver.scripting.L2ScriptEngineManager.executeScriptList(L2ScriptEngineManager.java:167)
        at net.sf.l2j.gameserver.instancemanager.QuestManager.reloadAllQuests(QuestManager.java:154)
        at net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAdmin.useAdminCommand(AdminAdmin.java:269)
        at net.sf.l2j.gameserver.network.clientpackets.RequestBypassToServer.runImpl(RequestBypassToServer.java:92)
        at net.sf.l2j.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:63)
        at net.sf.l2j.gameserver.network.L2GameClient.run(L2GameClient.java:875)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)Failed executing script: D:\Servers\Lineage2\aCis\gameserver\.\data\scripts\custom\ServerGuard\ServerGuard.java. See ServerGuard.java.error.log for details.QuestManager: Loaded 369 scripts.

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


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

 

На aCis 334 не работает. Выбивает:

путь должен быть таким \data\scripts\ServerGuard\ServerGuard.java.

У вас data\scripts\custom\ServerGuard\ServerGuard.java

Улавливаете суть?

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


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

путь должен быть таким \data\scripts\ServerGuard\ServerGuard.java.

У вас data\scripts\custom\ServerGuard\ServerGuard.java

Улавливаете суть?

А как его заставить работать из папки custom?

Стандартные методы ошибку выбили.

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


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

А как его заставить работать из папки custom?

Стандартные методы ошибку выбили.

package custom.ServerGuard;

  • Upvote 1

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


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

готов ли он для

HF5 овероподобных?

в чем проблема?  2 минуты и новый скрипт готов

п.с скрипт для пользователей с исходным кодом ядра ( для датапака переделайте сами 8) )

package l2r.gameserver.Utils;


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import l2r.gameserver.Config;
import l2r.gameserver.ThreadPoolManager;
import l2r.gameserver.model.GameObjectsStorage;
import l2r.gameserver.model.Player;
import l2r.gameserver.model.items.ItemInstance;
import l2r.gameserver.scripts.Functions;
import l2r.gameserver.utils.AutoBan;


public class CheckItemCount extends Functions 
{
	private static final Logger _log = LoggerFactory.getLogger(CheckItemCount.class);
	
	private static CheckItemCount _instance;
	public static CheckItemCount getInstance()
	{ 
		return _instance;
	}
	
	public static void init()
	{
		_instance = new CheckItemCount();
		_instance.load();
	}
	
	private void load() 
	{
		ThreadPoolManager.getInstance().schedule(new CheckCount(), (Config.RESTART_SEARCH_TIME * 1000) * 60);
	}
	
	public class CheckCount implements Runnable
	{
		public CheckCount()
		{
		}
        @Override
		public void run()
		{
			for(Player player : GameObjectsStorage.getAllPlayersForIterate())
			{
			if (!player.isGM())
			{
					ItemInstance item;
				for (int[] element : Config.ITEM_ID_AND_MAX_COUNT)
				{
					item = player.getInventory().getItemByItemId(element[0]);
					if ((item != null) && (item.getCount() >= element[1]))
					{
						if (Config.BANNED_OR_REMOVE)
						{
							player.setAccessLevel(-100); // Без временный бан на плеера
							AutoBan.Banned(player, 999999, "Cheater detected! Player: " + player + " превышено максимальное количество итема :" + item.getName()  + " Количество: " + item.getCount() + "  - Player: " + player + " BANNED!!!", "REBELLION");
							_log.warn("Player: " + player + " CheckItemCount " + "Item: " + item.getName() + " Count: " + item.getCount() + "  - Player: " + player + " BANNED!!!");
							player.kick(); // Выбрасываем игрока из мира
						}
						else
						{
							_log.warn("CheckItemCount: " + "Player: " + player + " Remove Item: " + item.getName() + " Count: " + item.getCount());
							removeItem(player, element[0], item.getCount());
						}
					}
				}
			}
			}
			ThreadPoolManager.getInstance().schedule(new CheckCount(), (Config.RESTART_SEARCH_TIME * 1000) * 60);
		}
	}
}

GameServer.java загрузка

		if(Config.ENABLE_CHECK_ITEM_COUNT)
		CheckItemCount.init();

для особо ленивых:

Config.java

	// проверка количества предметов
	public static boolean ENABLE_CHECK_ITEM_COUNT;
	public static  int RESTART_SEARCH_TIME;
	public static boolean BANNED_OR_REMOVE;
	public static List<int[]> ITEM_ID_AND_MAX_COUNT;
	
	public static void loadBanSettings()
	{
		ExProperties BanSettings = load(BAN_FILE);
		
		ENABLE_CHECK_ITEM_COUNT = BanSettings.getProperty("EnableCheckItemConunt", false);
		BANNED_OR_REMOVE = BanSettings.getProperty("BannedOrRemove", false);
		RESTART_SEARCH_TIME = BanSettings.getProperty("RestartSearchTime", 80);
		
		ITEM_ID_AND_MAX_COUNT = new ArrayList<>();
	    String[] propertySplit = BanSettings.getProperty("ItemIdAndMaxCount", "57,999999999999999999").split(";");
	    for (String reward : propertySplit)
	    {
	            String[] rewardSplit = reward.split(",");
	            if (rewardSplit.length != 2)
	            {}
	            else
	            {
	            	try
	            	{
	            		ITEM_ID_AND_MAX_COUNT.add(new int[]
	            				{
	            					Integer.parseInt(rewardSplit[0]),
	            					Integer.parseInt(rewardSplit[1])
	            				});
	                    }
	                    catch (NumberFormatException ignored)
	                    {
	
	                    }
	            	}
	    }
	}
# ****************************************
# Проверка количества итемов у персонажей
# ****************************************

# Включить проверку
EnableCheckItemConunt = false

# Автозапуск проверки каждых RestartSearchTime минут
RestartSearchTime = 10

# Итемы для проверки id,макс количество;id,макс количество
ItemIdAndMaxCount = 57,9000000000;4037,99999999

# true - бан   
# false - удаление и лог в гс
BannedOrRemove = false
Изменено пользователем 4ipolino
  • Upvote 2

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


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

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

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

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

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

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

Войти

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

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

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

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

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