PDA

Просмотр полной версии : Вопрос у Гуру по созданию плагинов


VitaminPSG
26.06.2014, 23:28
Добрый день, решил написать скрипт для ведения боя. Но т.к. с 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
29.06.2014, 16:37
Собственно эту часть я сделал. Теперь вопрос, как вернуть string из DLL?

Добавлено через 21 час 38 минут
Уже не актуально.