Пятница, 24.01.2025, 11:29
| RSS
F.O.R.U.M.
Главная | Кое-что по классу patrol - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Кое-что по классу patrol
frontДата: Вторник, 13.10.2009, 16:34 | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 152
Репутация: 229
Статус: Оффлайн
Кое-что по классу patrol, то, что сам понял.

"lua_help: class patrol"
C++ class patrol {
const continue = 1;
const custom = 3;
const dummy = -1;
const nearest = 2;
const next = 4;
const start = 0;
const stop = 0;

patrol (string);
patrol (string, enum PatrolPathManager::EPatrolStartType);
patrol (string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType);
patrol (string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, boolean);
patrol (string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, boolean, number);

function level_vertex_id(number) const;
function point(const patrol*, number);
function flag(number, number) const;
function game_vertex_id(number) const;
function flags(number) const;
function name(number) const;
function index(string) const;
function terminal(number) const;
function count() const;
function get_nearest(const vector&) const;
};

Этот класс отвечает за движение неписей по путям. Информацию о путях берет только из алл.спавна. Переопределить это нельзя без ковыряния в движке, откуда следует невозможность задавать пути извне алл.спавна. Для решения этой задачи надо как-то обойти класс patrol. Для вертолетов это удалось, но с другими НПС это гораздо сложнее

patrol (string) - создает объект класса.

Методы:

count() - возвращает количество точек в пути. Аргументов не требуется.

name(number) - возвращает строку - название заданной точки пути. Аргумент - номер точки, начиная с 0 (pN:name = ... в алл.спавне).
point(const patrol*, number) - возвращает вектор - координаты заданной точки пути. Аргумент - номер точки, начиная с 0 (pN:position = ... в алл.спавне).
game_vertex_id(number) - возвращает число - гейм вертекс заданной точки пути. Аргумент - номер точки, начиная с 0 (pN:game_vertex_id = ... в алл.спавне).
level_vertex_id(number) - возвращает число - левел вертекс заданной точки пути. Аргумент - номер точки, начиная с 0 (pN:level_vertex_id = ... в алл.спавне).
flags(number) - возвращает объект класса flags16 или flags32 (как их отличить не знаю, методы точно такие же) - флаг данной точки пути (pN:flags = ... в алл.спавне). Аргумент - номер точки, начиная с 0. Значение флага можно узнать методом get() класса flags16 (или flags32)
terminal(number) - возвращает логическое значение - true, если из данной точки нет переходов на другие точки и false, если есть (есть ли pN:links = ... в алл.спавне). Аргумент - номер точки, начиная с 0.

flag(number1, number2) - возвращает логическое значение - true, если значение флага в точке number1 равно number2, иначе false. Агрументы: первый - номер точки, второй - число (в оригинальных скриптах почему-то только от 1 до 32). Уверен не до конца.

get_nearest(const vector&) - примеров использования нет, предположительно ищет ближайшую к заданным вектором коордтам точку пути. Не проверял.
index(string) - нет ни примеров использования, ни предположений, что это могло бы значить.

Как обрабатываются связи между точками, до конца не ясно, могу только предположить, что для этого служит одна из этих команд:

patrol (string, enum PatrolPathManager::EPatrolStartType);
patrol (string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType);
patrol (string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, boolean);
patrol (string, enum PatrolPathManager::EPatrolStartType, enum PatrolPathManager::EPatrolRouteType, boolean, number);

Но которая, и что она возвращает, и что требует в качестве аргументов - непонятно.


 
  • Страница 1 из 1
  • 1
Поиск:

Для добавления необходима авторизация

Copyright Front Сайт оптимизирован под браузер Opera © 2025