Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • Не хотите БАН?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок
  • Загляните на рынок

    Там вы можете продать или купить
    Всё что касается игровых серверов

Вопрос

В общем, поставил сборку с чернорашки, сменил карту на напф. Границы карты остались от черно, подскажите, как подрегулировать, а то на островах радиацией коцать начинает уже.

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


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

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

  • 0

16000 радиус напфа

 

//    Координаты центра карты
Ultima_Both_Array_Map_Center    =    (getMarkerPos "center");
//    т.к. карта квадратная, можно брать первую, или вторую координаты в качестве радиуса
Ultima_Both_Integer_Map_Radius    =    (Ultima_Both_Array_Map_Center select 0);

Для Напф данный радиус будет ~10000

Но это радиус!

 

А карта - квадрат(вернее - параллелограмм). => "углы" карты будут пустовать, при спавне. При чем, - достаточно "жирные" углы/

 

Для того, чтобы вычислить более верный  - "допустимый", для спавна радиус, можно пойти двумя путями -

 

1. Прибавить к радиусу, некую фиксированную величину

Ultima_Both_Integer_Map_Radius    =    Ultima_Both_Integer_Map_Radius + 4000;

 

2. Более точно, вычислить "допустимый радиус".

Для этого надо найти длину диагонали параллелограмма карты и поделить ее пополам.

 

Формула поиска длины диагонали -

D=корень(а*а + b*b - 2ab*cos(a));

т.к. косинус угла 90 градусов равен нулю, то результат действия 2ab*cos(a), будет равен нулю.

=> остается

корень(a*a + b*b)

 

т.е.

Ultima_Both_Integer_Map_Radius    =    (Ultima_Both_Integer_Map_Radius * Ultima_Both_Integer_Map_Radius * 2);

*Умножаем на 2, т.к. у нас точно квадрат.

 

Далее выносим из под корня:

 

Ultima_Both_Integer_Map_Radius    =    sqrt(Ultima_Both_Integer_Map_Radius);

*Для Напф получаем допустимый диаметр ~14142, и является длиной диагонали.

 

Делим пополам, для получения радиуса: (~7000).

 

Ultima_Both_Integer_Map_Radius    =    round(Ultima_Both_Integer_Map_Radius / 2);

 

Примечание:

Центры карт немного смещенные, и такое нахождение, верно лишь приблизительно.

Но как факт, можно не парится а накидать простенький скрипт, подходящий для любой карты:

 

_tmp        =    ((getMarkerPos "center") select 0);
dayz_maxpos    =    sqrt(_tmp * _tmp * 2); 

 

Или с глобальными переменными, для последующего их использования где либо:

Ultima_Both_Array_Map_Center    =    getMarkerPos "center";
Ultima_Both_Integer_Map_Radius    =    Ultima_Both_Array_Map_Center select 0;
dayz_maxpos                        =    sqrt(Ultima_Both_Integer_Map_Radius * Ultima_Both_Integer_Map_Radius * 2);

 

P.S. И не путайте радиус карты, с диаметром карты.

Изменено пользователем NoNameUltima (история изменений)

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


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


  • 0

init.sqf
 

dayz_MapArea = 14000; // Default = 10000
dayz_minpos = -1; 
dayz_maxpos = 16000;

Сделай больше и все.

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


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

 

//    Координаты центра карты
Ultima_Both_Array_Map_Center    =    (getMarkerPos "center");
//    т.к. карта квадратная, можно брать первую, или вторую координаты в качестве радиуса
Ultima_Both_Integer_Map_Radius    =    (Ultima_Both_Array_Map_Center select 0);

Для Напф данный радиус будет ~10000

Но это радиус!

 

А карта - квадрат(вернее - параллелограмм). => "углы" карты будут пустовать, при спавне. При чем, - достаточно "жирные" углы/

 

Для того, чтобы вычислить более верный  - "допустимый", для спавна радиус, можно пойти двумя путями -

 

1. Прибавить к радиусу, некую фиксированную величину

Ultima_Both_Integer_Map_Radius    =    Ultima_Both_Integer_Map_Radius + 4000;

 

2. Более точно, вычислить "допустимый радиус".

Для этого надо найти длину диагонали параллелограмма карты и поделить ее пополам.

 

Формула поиска длины диагонали -

D=корень(а*а + b*b - 2ab*cos(a));

т.к. косинус угла 90 градусов равен нулю, то результат действия 2ab*cos(a), будет равен нулю.

=> остается

корень(a*a + b*b)

 

т.е.

Ultima_Both_Integer_Map_Radius    =    (Ultima_Both_Integer_Map_Radius * Ultima_Both_Integer_Map_Radius * 2);

*Умножаем на 2, т.к. у нас точно квадрат.

 

Далее выносим из под корня:

 

Ultima_Both_Integer_Map_Radius    =    sqrt(Ultima_Both_Integer_Map_Radius);

*Для Напф получаем допустимый диаметр ~14142, и является длиной диагонали.

 

Делим пополам, для получения радиуса: (~7000).

 

Ultima_Both_Integer_Map_Radius    =    round(Ultima_Both_Integer_Map_Radius / 2);

 

Примечание:

Центры карт немного смещенные, и такое нахождение, верно лишь приблизительно.

Но как факт, можно не парится а накидать простенький скрипт, подходящий для любой карты:

 

_tmp        =    ((getMarkerPos "center") select 0);
dayz_maxpos    =    sqrt(_tmp * _tmp * 2); 

 

Или с глобальными переменными, для последующего их использования где либо:

Ultima_Both_Array_Map_Center    =    getMarkerPos "center";
Ultima_Both_Integer_Map_Radius    =    Ultima_Both_Array_Map_Center select 0;
dayz_maxpos                        =    sqrt(Ultima_Both_Integer_Map_Radius * Ultima_Both_Integer_Map_Radius * 2);

 

P.S. И не путайте радиус карты, с диаметром карты.

О боже Ультима,да ты проще написать мог,не каждый шарит в том что ты сейчас написал  :biggrin:

Изменено пользователем sanek327 (история изменений)

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


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

В общем, поставил сборку с чернорашки, сменил карту на напф. Границы карты остались от черно, подскажите, как подрегулировать, а то на островах радиацией коцать начинает уже.

с папки DayZ_Epoch_24.Napf (которая идет в архиве серверных файлов) вытащить init.sqf .... dayz_MapArea = 18000; // Default = 10000

 
dayz_minpos = -1000; 
dayz_maxpos = 26000;
Изменено пользователем Grauft (история изменений)

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


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

О боже Ультима,да ты проще написать мог,не каждый шарит в том что ты сейчас написал  :biggrin:

Кому нужно было, тот понял. Не забудь себе репорт кинуть, мне не нравится твоё сообщение.

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


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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить на вопрос...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: BorizzK
      Вобщем тема такая
       
      1я задачка была такая
      Нужно получить координату на плоскости под углом на расстоянии от текущей координаты
      Задачку решил тут
      Код в итоге таков:
       
      например выведем в лог  координаты точки на плоскости на расстоянии 2м и под углом 90 град (справа) от игрока (вызвав функцию PrintCoords, передав ей в качестве параметра переменную содержащую ссылку на перса игрока)
       
      void PrintCoords(PlayerBase player) { float distance = 2; float anglerotation = 90; Print("Coordinates on the plane at distance " + distance + " and at an angle relative to the player: " + anglerotation + ": " + GetCoords(player, distance, anglerotation).ToString()); } vector GetGoords(PlayerBase player, float distance, float anglerotation) { return GetPosFromDistAndAngle(player.GetPosition(), distance, player.GetOrientation()[0] + anglerotation); } vector GetPosFromDistAndAngle(vector pos, float dist, float angle) { angle = Math.NormalizeAngle(angle) * Math.DEG2RAD; pos[0] = pos[0] + (double)(Math.Sin(angle) * dist); //offset X pos[2] = pos[2] + (double)(Math.Cos(angle) * dist); //offset Y return pos; }  
      Это была задачка 1 и она была решена!
       
      далее надо решить более сложную задачу - она будет номер 2
       
      Надо вычислить координату не на плоскости, а вообще в пространстве, взяв в качестве поправок значения pitch и roll (наклон по поперечной и продольной осям) которые получаются из функции  обьект.GetOrientation() - первое значение масива типа вектор которое возвращает функция - угол на плоскости, второе угол в поперечной оси, третье в продольной (вроде так)
       
      те если игрок, да не важно, просто обьект, имеет наклон в поперечной оси 45 градусов (от так как этот слэш /), то точка под углом на плоскости относительно игрока 90град и расстоянии 2м "справа для него будет 'ниже', чем слева"
       
      врбщем -  нам надо получить координату под улом 90град на плоскости, 45град по вертикали и расстоянии 2м от него слева
       
      воот
       
      и тут у меня мозг взорвался (и почему-то захотелось вискаря)
       
      я понимаю что в данном случае нужно отталкиваться от поперечной вертикальной плоскости... но чет не догоняю как........
       
       
    • Автор: BorizzK
      Грамотные мать'и'матеги или геодезисты есть?
       
      Есть целевые координаты и ориентация yaw
       
      Скажем X = 6000, Y = 5000
      И эталонная угловая ориентация 110, 0, 0
       
      Мне нужно получить смещенные в отрицательную сторону координаты, что бы прямая из этих координат с эталонной ориентацией пересекала целевую точку с координатами X и Y, смещение должно зависеть от некой рандомной величины, да не важно - например при по X/Y 500 - startX = 5500, startY = 4500 - но  это для эталонной угловой ориентации 45 градусов
       
      Понимаю что надо считать используя синус/косинус/радиан, но тк дааавно все, что связанно чистой математикой/геометрией из головы выветрилось напрочь, туплю аццке
      Возможно есть и встроенный в enscript вариант...
       
      Сижу чешу репу пялясь на гору цисок которые надо на след неделе вводить в эксплуатацию.... А так хочется доделать свой вариант самолетика перевозящего различные грузы по миру...
       
      сорри за сумбур
    • Автор: volchara
      Как найти координаты в здании, для того чтобы прописать спавн лута ?
    • Автор: Timofey
      Ребята подскажите пожалуйста как определить точные координаты места спавна игрока для вип 
×
×
  • Создать...