Server Banner

BBya World

Объявление

Мы переехали на новый форум: forum.bbyaworld.com

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » BBya World » Геймплей » Сетка зон влияния кланов


Сетка зон влияния кланов

Сообщений 41 страница 60 из 108

1

Сабж.

Бресс и Драсс, нужна помощь:

- я хочу нанести сетку в виде сот на динмапу, это будут "зоны влияния" кланов;
- сетку я создам сам и всё оформлю;
- но мне её надо как-то планировать, подготовить локально;

- для этого мне нужен какой-нибудь файлик (например, фотошоп, корел или ещё что-нибудь посовременнее и проще) или онлайн сервис;
- мне нужна координатная сетка с центром отсчёта в центре :)
- всё как обычно: по оси "Х" от "0" вправо циферки будут увеличиваться, влево уменьшаться, а по оси "Y" вверх увеличиваться, вниз уменьшаться;
- по сути, это будет координатная плоскость, которая будет олицетворять координаты и плоскость нашего мира;
- она должна быть пролинована достаточно крупно и каждая клетка должна соответствовать каждому блоку в нашем игровом мире (эта плоскость должна масштабироваться скролом как динмапа, т.к. она будет достаточно большой и увеличиваться с размером карты);
- в идеале, чтобы координаты каждой конкретной клетки показывались как в фотошопе и том же кореле при наведении мышки на соответствующую координату, а в низу экрана просто показывается положение мышки (которое соответствовало бы координатам в игровом мире);

- я бы наложил на такую координатную плоскость соты нужного мне размера, пометил бы их "S00001", "S00002" и т.д.;
- а наводя на углы мышку, я бы просто смотрел нужные мне координаты для работы с динмапой;

- при увеличении карты, я бы просто дорисовывал бы соты и продолжал бы работать с новыми объектами :)

Вот такая вот задачка :)

Есть идеи? :)

41

StPlotnik написал(а):

Я отметил линию блоков с координатой 0, я планировал что угол будет ровно на этой линии, чтобы избежать хоть какого либо смещения.

Это абсолютно не важно, главное чтобы у соседних регионов точка совпала с этой

42

Bress Oster написал(а):

Это абсолютно не важно, главное чтобы у соседних регионов точка совпала с этой

StPlotnik написал(а):

Ну если тебе это не принципиально, то можно тогда на таком варианте остановиться

43

LastLife
Да что это за мод то? :С

44

LastLife написал(а):

Ну, я могу предложить запилить несложный скрипт, который будет сам будет управлять персонажем и проводить нужные действия..
Вот такая мини-демонстрация Ссылка
Думаю понятно, что телепорт идёт не по заданным точкам, а по смещению, который записан в скрипте

Ок, идея хорошая, но:

- этот скрипт должен работать на маке;
- он достаточно сложный, чтобы сделать всё = нужно время, чтобы всё продумать и закодить;
- скрипт я тоже могу замутить = тогда вам это делать не нужно;

= в идеале мне нужен не столько скрипт автоматизирующий действия человека, сколько программа, выдающая координаты углов для нужной фигуры по заданному названию-шифру: есть идеи? :)

Фишка в том, что неплохо было бы иметь возможность получать готовые координаты углов для заданного сектора/шестиугольника по схожему с этим алгоритму...

45

VELVET написал(а):

- этот скрипт должен работать на маке;
- он достаточно сложный, чтобы сделать всё = нужно время, чтобы всё продумать и закодить;
- скрипт я тоже могу замутить = тогда вам это делать не нужно;

- Скрипт работает на маке, ибо это всего лишь мод для майна
- Он очень простой. Тот что я показал, написал буквально за 15 минут
- В твоём варианте происходит последовательное нажатие клавиш на клавиатуре, в моём отправка данных непосредственно в майн, не нужны вызовы чата и прочая лишняя работа.. (Скриптование в этом моде достаточно обширное, можно хоть заставить персонажа бегать кругами при этом выкрикивая нынешную погоду в игре.)

VELVET написал(а):

= в идеале мне нужен не столько скрипт автоматизирующий действия человека, сколько программа, выдающая координаты углов для нужной фигуры по заданному названию-шифру: есть идеи? :)

Тут я не совсем понял, что есть заданные название-шифр

Отредактировано LastLife (27-03-2014 13:00:56)

46

LastLife написал(а):

Тут я не совсем понял, что есть заданные название-шифр

В названии-шифре каждого сектора (например, "NW_0025-002 (Клан-владелец)"), каждой зоны, есть вся необходимая информация информация: где находится этот сектор, принадлежность сектора, по цифровому коду можно вычислить координаты углов.
Кроме того, такая систематизация позволяет добавлять новые сектора без каких-либо проблем или изменений в системе.

LastLife написал(а):

- Скрипт работает на маке, ибо это всего лишь мод для майна
- Он очень простой. Тот что я показал, написал буквально за 15 минут
- В твоём варианте происходит последовательное нажатие клавиш на клавиатуре, в моём отправка данных непосредственно в майн, не нужны вызовы чата и прочая лишняя работа..

ок, это действительно поможет сделать всё быстрее :)

47

VELVET написал(а):

В названии-шифре каждого сектора (например, "NW_0025-002 (Клан-владелец)"), каждой зоны, есть вся необходимая информация информация:

Кстати по поводу шифра, то что ты привел на картинке тут и в расчетах под ней, ты уверен что, то что ты там показал все как должно быть?

Почему NE_0001-0003 и SW_0001-0001 так различаются в последней цифре, он же равно удалены от центра. EE_0002-0000 и WW_0000-0000 кстати тоже

VELVET написал(а):

Для этого нам нужно найти координаты центра 325-го шестиугольника по следующей формуле:
"Коррдината центра Х" = (325 / 2) х (50 х 2) - 50;
"Координата центра Y" = (5 / 2) х (50 х 2) - 50;

Это формула будет использоваться для определения координат всех шестиугольник вне зависимости сторон света?

Отредактировано StPlotnik (27-03-2014 16:58:02)

48

StPlotnik написал(а):

Кстати по поводу шифра, то что ты привел на картинке тут и в расчетах под ней, ты уверен что там ты показа все как должно быть?

Я уверен, но могу ошибаться - для этого и выложил на обсуждение :)

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

StPlotnik написал(а):

Почему NE_0001-0003 и SW_0001-0001 так различаются в последней цифре, он же равно удалены от центра. EE_0002-0000 и WW_0000-0000 кстати тоже

Видимо, ошибся в NE и WW: сложно всё это - чуть сложнее, чем просто координатная плоскость, но по сути это таже самая плоскость...

Первые четыре цифры - это аля координата Х...
Последние четыре цифры - это аля координата Y...

У фигур на осях одна из координат обязательно = 0, указание стороны света чётко соответствует или северу, или югу, или западу, или востоку.

При вычислении места расположения фигуры на координатной плоскости, учитываются не только фигуры, которые друг за дружкой идут, но и те, что как бы между ними, но на 1 единицу выше или ниже по другой оси...
Это видно на примере фигур с обозначением SW и EE...
Эта особенность вытекает только из-за формы фигуры и попытки подогнать их под привычную нам систему координат, где всё чётко и последовательно...

StPlotnik написал(а):

Это формула будет использоваться для определения координат всех шестиугольник вне зависимости сторон света?

Надеюсь, что да...

Единственный нюанс - это последнее арифметическое действие, где мы вычитаем 50: эта корректировка нужна только для вычисления координат в нечётных рядах...

На самом деле, есть ещё один нюанс: формула-то подойдёт для поиска координат в любой из "сторон света", но только у найденных координат будут отличаться знаки "+" и "-" перед числом, в зависимости от того, в какой из "сторон света" мы ищем координаты...

+ ещё один нюанс: мне кажется, что эта формула подразумевает чёткую последовательность действий при поиске координат - сначала смотрится расположение фигуры по оси "Х", только потом по оси "Y"...

49

Тогда вот мои поправки
Формула для расчета центра:
(X*25)*2
(Y*25)*3

!!!!

http://i.imgur.com/Q2c4rGx.jpg

50

StPlotnik написал(а):

Тогда вот мои поправки

Извини, немного не уловил суть поправок:

- На картинке нет кардинальных изменений - просто исправлены ошибки и добавлены новые примеры?

За формулу расчёта координат центра спасибо :)

Как бы нам теперь использовать её для расчёта каждой из координат, например, начиная с верхней и по часовой стрелке, с учётом "стороны света"?? :)

51

VELVET написал(а):

Как бы нам теперь использовать её для расчёта каждой из координат, например, начиная с верхней и по часовой стрелке, с учётом "стороны света"??

A = 0x+0, 0y+50
B = 0x+50, 0y+25
C = 0x+50, 0y-25
D = 0x+0, 0y-50
E = 0x-50, 0y+25
F = 0x-50, 0y-25

VELVET написал(а):

с учётом "стороны света"

для этого в названиях присутствуют минусы

52

Спасибо :)

Минусы в названиях - няша ))

53

Кстати, тебе же не обязательно самому всю карту разрисовывать, у LastLife готов макрос, его просто доработать с учетом формул и мы вдвоем сможет быстрее сделать XD

P.S. Няша — дно высохшего озера, заполненное тиной и грязью, болотистая местность на севере Европейской части России

54

StPlotnik написал(а):

мы вдвоем сможет быстрее сделать XD

У нас нет плагина Пермишнс, и к сожалению, я не могу пока просто так раздавать админки даже с учётом этого...

StPlotnik написал(а):

у LastLife готов макрос, его просто доработать с учетом формул

Готов дальше рассмотреть этот вопрос :)
Например, эту работу можно сделать на локальном серваке и таких же настройках динмапы, и затем просто залить БД динмапы на наш сервер с этими изменениями...

Настройки динмапы могу передать ))

55

Ща пишу свой вариант составления данной гексо-карты, он в нескольких аспектах отличается от твоей, но, на мой взгляд выглядит и читается простыми смертными людьми гораздо лучше, чем то, что выложено картинкой у вас

56

Вполне нормальный вариант,

пока LastLife еще готовит свою версию схемы, так что можно глянуть что он предложит XD

57

Итак. Предлагаю свой вариант.

Для начала нужно разбить плоскость привычными нам осями x и y
Затем наносим гексо-сетку. Но, т.к. она предстаёт в не совсем привычной фоорме для представления координат, можно допустить смещение каждой второй строчки по оси y вправо, и затем уже отметить центр и провести оси в нашей воорбажаемой гексо-плоскости

Свернутый текст

Красный - центр
Зелёный - ось y
Синий - ось x
http://i.imgur.com/xzSQdV4.png

Теперь, нам нужно пронумеровать их, чтобы при взгляде было сразу понятно что к чему.. С учётом всё того же нашего допускаемого смещения получится вот так вот. (Опускаем отрицательные числа для учёта того представления, которое ранее описывал Велвет)

Свернутый текст

http://i.imgur.com/pbMtq9b.png

Нужно расставить стороны света, делаем

Свернутый текст

http://i.imgur.com/Py0S4vR.png

Итак.. для рассчётов всё готово. По примеру описанному ранее мы легко сможем понять запись NE_0001-0003 , это значит, что нужная нам ячейка находится в зоне NE(I четверь декартовой системы координат), и занимает место в Первой клетке относительно оси x и Третье относительно y . Причём на графике выглядит не вырвиглазно, т.к. находим центр и перемещаемся на 3 вверх и 1 вправо

Свернутый текст

Нули опущены, чтобы текст влез в ячейку
http://i.imgur.com/mzMhtCz.png

Далее возникает вопрос: Как обозначать ячейки, в которых x и/или y принимают 0? Ну тут я вижу два выхода:
1) Заменяем первое значение обозначения (Прикольно сказал :)) на NN, EE, SS, WW для случаев ухода клеток в одну из сторон. В итоге это будет выглядеть не совсем красиво и поэтому этот способ будет немного стрёмно смотреться.
2) (Более крутой) Выбираем 2 стороны света "главными", которым, так сказать, "принадлежат" нули. Например, логично выбрать главными относительно верха-низа Север(N), а относительно право-лево Восток(E). В итоге, т.к. их координаты могут быть нулевыми, спокойно можно допустить название таких ячеек, как NE_88-0 , NE_0-15, в свою же очередь написание SE_88-0 будет недопустимо, т.к. Югу(S) не доступны нули в y координате. На словах звучит страшно, но впринципе, если хорошенько представить всё в голове, то всё будет выглядеть эстетично.

Теперь, определившись с положением в плоскости и обозначением нужно понять, как вычислить координаты центров каждого гекса. Тут идёт сплошная математика и логика. Т.к. в данной системе нету отрицательных нумераций гексов, то придётся определить 8 формул для определения координат центров (4 для x, 4 для y). А именно рассчёт центров для гексов: NE,NW,SW,SE. Плюс ко всему, не забываем о смещении нечётных гексов вправо (Выявлено в самом начале), значит, в каждом гексе с нечётной y-координатой нам нужно добавить смещение вправо в пол-гекса. В итоге 8x2=16 формул для точного определения центров нажих гексов.

Чтож, начинаем с NE:
X=WX+NX*L
Y=WY+NY*L+L/2(Для случаев с нечётным y)
Отсюда:
X,Y - искомые координаты в мире
WX,WY - Координаты центра мира
NX,NY - Номер ячейки
L - Сторона ячейки

Пример:
Центр мира на 598,-1220
Сторона нашего ячейки 100
Искомый центр Ячейка(21,33)
Сразу видно, y - нечётный, значит учтём L/2
X=598+21*100=2698
Y=-1220+33*100+50=2130
В итоге центр Нашего NE_0021-0033 располагается по координатам (2698,2130)

Для остальных сторон света формула будет такой же, но в зависимости от самой стороны NX или NY будет домножаться на -1, по понятным причинам..
Ну вот вроде всё, что я хотел сказать и предложить.
(Переделал)

Ах да, насчёт скриптов... Сделать это не очень трудно, но если нужно, то чуточку придётся подождать.
В итоге, в моём представлении всё должно выглядеть вот так

Свернутый текст

http://i.imgur.com/GNTUBDf.png

Отредактировано LastLife (01-04-2014 20:49:47)

58

Вот это ты там настрочил, может напишешь мне обоснование и ТЗ для диплома?

59

Лол

60

Наконец-то не я один выношу мозг  :D

Искривлённая координатная плоскость - няша!!
Да-да, то самое болото где-то глубоко в Европе ))))))

С расчётами и формулами мало что понял, но чувствую - ты на верном пути, поэтому...

LastLife написал(а):

Ну вот вроде всё, что я хотел сказать и предложить.

Ах да, насчёт скриптов... Сделать это не очень трудно, но если нужно, то чуточку придётся подождать.

Готов ждать и оплатить, например, ББ - нужно будет договориться ближе к делу...

LastLife написал(а):

http://i.imgur.com/GNTUBDf.png

%-)


Вы здесь » BBya World » Геймплей » Сетка зон влияния кланов