[Tutorial] Система динамических чекпоинтов
#4

  • избавляемся от #define MAX_CHECKPOINTS 2
  • во всех циклах ломимся в sizeof(dynamicCp)
  • сам массив объявляем так new dynamicCp[][CHECKPOINTINFO] = {...};, компилятор сам определит его размер
Преимущество: нам теперь не нужно держать в голове информацию о том что необходимо ещё и где-то константу менять, просто добавляем новый чекпоинт в массив и компилируем скрипт.
Недостаток: при загрузке массива из стороннего источника, нам все равно придется жестко указать размер данного массива, но опять же только в одном месте.

Quote:
Originally Posted by White_116
View Post
Для определения расстояния используй лучше GetPlayerDistanceFromPoint(), быстрее будет.
А ещё быстрее будет использовать IsPlayerInRangeOfPoint
pawn Code:
if (GetPlayerDistanceFromPoint(j, x0, y0, z0) <= dist) {
if (IsPlayerInRangeOfPoint(j, dist, x0, y0, z0)) {
pawn Code:
if (GetPlayerDistanceFromPoint(j, dynamicCp[id][e_cpX], dynamicCp[id][e_cpY], dynamicCp[id][e_cpZ]) > dist) {
if (!IsPlayerInRangeOfPoint(j, dist, dynamicCp[id][e_cpX], dynamicCp[id][e_cpY], dynamicCp[id][e_cpZ])) {
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)