Показать сообщение отдельно
Старый 26.06.2014, 23:28   #1
Новичок
 
Регистрация: 18.05.2013
Сообщений: 13
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
VitaminPSG пока неопределено
По умолчанию Вопрос у Гуру по созданию плагинов

Добрый день, решил написать скрипт для ведения боя. Но т.к. с Delphi я знаком косвенно натолкнулся на кучу проблем. Мне необходимо класс, с 1 полем и несколькими методами. Код в JAVA
Код:
public class Table {
	HashMap<Integer, NPC> listNPC;

	public Table() {
		// Создаем объект хранящий класс NPC
		listNPC = new HashMap<Integer, NPC>();
	}

	/**
	 * Удаляем из списка NPC
	 */
	public void destroyNPC(int objectID) {
		listNPC.remove(objectID);
	}

	/**
	 * Возвращает ближайешло NPC
	 */
	public NPC getNearestNPC(int x, int y, int z) {
		NPC nearestNPC = null;
		int distantion = Integer.MAX_VALUE;
		for (Integer key : listNPC.keySet()) {
			int curDist = listNPC.get(key).getDistantion(x, y, z);
			if (curDist < distantion) {
				distantion = curDist;
				nearestNPC = listNPC.get(key);
			}
		}
		return nearestNPC;
	}

	/**
	 * Количестов наших NPC
	 */
	public int getCountNPC() {

		return listNPC.size();
	}

	/**
	 * Добавляем в список NPC

	 */

	public void addNPC(String buff) {
		NPC npc = new NPC(buff);
		listNPC.put(npc.id, npc);
	}
/**
 * 
 * Сам класс NPC
 *
 */
	public class NPC {
		//Поля
		int objectID;
		int id;
		int x;
		int y;
		int z;

		//Методы
		
		/**
		 * Конструктор, заполняет поля
		 */
		public NPC(String buff) {
			// Код
		}

		/**
		 * Метод возвращает дистанцию до текущего NPC
		 */
		public int getDistantion(int x, int y, int z) {
			// КОД
			return 0;
		}

	}
}
Вопросы:
1) Есть ли в Delphi аналог HashMap.
2) Как если это будет плагин сделать его многопоточным, что бы он работал во всех запущенных соединениях
3) Можно ли в плагине хранить мои данные
Если есть другие способы, буду рад их узнать.
Спасибо
VitaminPSG вне форума   Ответить с цитированием