(20.06.2019 10:51)wessonsm Wrote: [ -> ]daemon_n,
По-моему, просто широкие поля по бокам убраны, а выравнивание текста не изменилось.
А нет, изменилось. Появились пропуски между строчками, если это не изменения в ers-файле.
Может действительно ers-файлы разные?
нет, взято с одного мода.
Я сам который и выравнивал)
Причем это не везде. Где выравнивания были вовсе не сложные, там все относительно норм.
Уверен, теперь будет проще делать.
UPD: Все, смысл дошел. Ограничить бесконечное расширение окна, основываясь на длине и высоте текста.
Ширина месседж-боксов стала фиксированной. Кажется, как-то проводил "исследования" на этот вопрос в другой теме, но не думал, что так просто можно все решить. Одобряю на все 100%

(20.06.2019 10:51)wessonsm Wrote: [ -> ]daemon_n,
Появились пропуски между строчками,
Пропуски появились из-за тех самых выравниваний, которые я делал, чтобы все выглядело однообразно более-менее.
Просто теперь их надо удалить.
(20.06.2019 10:30)daemon_n Wrote: [ -> ]Это же имененный wognativedialogues?
Стало безусловно лучше) Просто мне теперь заново выравнивать все
Это вопрос ко мне)) Да, это измененный
wog native dialogs
Я переписал это окно для лучшей визуальной составляющей. Теперь оно стало более приятно глазу (выравнивания и т.п.) и подчиняется более строгим правилам при создании высоты и ширины.
Отображения к тому же стало очень схожим с оригинальным отображением подсказок в меню WoG опций.
По факту тебе теперь нужно удалить пустые строки переноса и всё.
Выравнивание текста стоит всегда по центру. Так во всех геройских диалогах (без скрола которые). Так же и сообщениях (подсказках) в оригинальном WoG в меню Вог опций
Вот весь код создания размеров окна:
PHP Code:
int x, y, lines;
x = 400; // стандартная (и минимальная) ширина ОКНА диалога
lines = medfont->GetLinesCountInText(text, x -40); // считаем кол-во линий
y = lines *16; // высчитываем высоту только текста
if (y < 80) { // если высота текста слишком маленькая
y = 80; // делаем её минимально допустимой для лучшей визуальности
}
if (lines > 30 ) { // а вот если строк в тексте больше 30 (сликом много)
x += 180; // увеличиваем ширину окна до 580 px
lines = medfont->GetLinesCountInText(text, x -40); // опять высчитываем кол-во строк при ширине = 580
y = lines *16; // опять вычитываем высоту текста (при ширине =580)
}
y += 40; // добавляем отступы по высоте (получаем высоту ОКНА диалога)
if (y > 580) { // если высота ОКНА больше допустимой (вообще 600, но я принял 580)
y = 580; // устанавливаем фиксированную макс.высоту
x += 200; // и увеличиваем ширину текста до 780 px
}
Итог: минимальные размеры окна: 400х80 px
максимальные размеры окна: 780х580 px
В большинстве случаев ширина окна будет 400px. Но если строк (переноса) получается слишком много, то я начинаю увеличивать ширину окна, чтобы весь текст смог влезть по высоте.
(20.06.2019 11:27)igrik Wrote: [ -> ]По факту тебе теперь нужно удалить пустые строки переноса и всё.
Да просто скрипту "ремаджик" тоже досталось)
Вот там , мне кажется, работы будет ого-го
UPD: Хотя в Ру версии все норм. Видимо, я изначально перестарался

Quote:У Алгора так:
!#UN:J3/^/Data/s/BH Settings.dat^;
Ага, это абсолютный путь от корня текущего диска. Относительные пишутся так: Data/s/... или так ./Data/s...
Здравствуйте! В Хоте и у Rosekavalier в SP Plugin есть опция, которая по ALT + пкм показывает длину пути в мувепойнах, которое выбранному герою необходимо пройти до произвольной точки на карте.
Вопрос в следующем. Можно ли в ERA сделать ресивер или хук, который вернет в переменную ERM количество очков перемещения для указанного героя до точки с указанными координатами. Особо важно, чтобы для ИИ героев эта штука тоже работала. Это то, чего мне не хватает для мода на усиление ИИ.
Heromant, вот скрипт из WT вычисляющий длину пути в мувпоинтах
~750 байт приходится на одну ЕРМ команду. Не удивительно, что лимит в 30 МБ пробивает.
Поднял предел до 128 МБ.
(25.06.2019 15:19)Berserker Wrote: [ -> ]~750 байт приходится на одну ЕРМ команду. Не удивительно, что лимит в 30 МБ пробивает.
Поднял предел до 128 МБ.
правильно понимаю, изначальное потребление озу игрой вырастет на +- 100 МБ?
Или будет повышаться по мере необходимости?
daemon_n, нет, так бы не делал. Потребление ОЗУ не изменится вообще. Оригинальный буфер в 30 МБ не используется, а операционная система выделяет физическую память при первом доступе к нему. Новый буфер на 128 МБ выделяется частями (страницами) по мере обращения к адресам в памяти. Проверял в менеджере задач. Поэтому с точки зрения пользователя ничего не изменяется в худшую сторону.
(25.06.2019 18:41)wessonsm Wrote: [ -> ]Вот уж чего жалеть не стоит, так это ОЗУ.
У меня браузер с одной открытой вкладкой ОЗУ съедает больше, чем Герои.
(25.06.2019 19:06)Berserker Wrote: [ -> ]daemon_n, нет, так бы не делал. Потребление ОЗУ не изменится вообще. Оригинальный буфер в 30 МБ не используется, а операционная система выделяет физическую память при первом доступе к нему. Новый буфер на 128 МБ выделяется частями (страницами) по мере обращения к адресам в памяти. Проверял в менеджере задач. Поэтому с точки зрения пользователя ничего не изменяется в худшую сторону.
Я просто проявляю интерес, делая вид, что разбираюсь

Это нормально. Адреса для буфера выделяются сразу. (Скажем, 3000 - 128003000), а реальная физическая память по частям по мере необходимости.
Когда пытался заменять номера функций именами, вылезла ошибка синтаксиса ERM:
"!?FU:"-wrong function index(1-30000)
Баг вылезал при большом количестве скриптов (включил Era Scripts Rus).
ERM при этом полностью останавливался, в erm tracking - ничего, кроме иструкций.
Но... Не могу воспроизвести баг - вчера был, сегодня нет

Оставлю именные функции и буду ждать, когда опять вылезет.
Может кто-то еще сталкивался с подобным.
Я постоянно с этим сталкиваюсь, особенно когда включен "Третий класс"
Я играл с Фениксом, где заменил все функции на именованные. Ни разу не встречал. При работе над 2.8.4 после портирования многих правок из 2.55 встречаю всякое дивное. К этому вопросу нужно будет определённо вернуться.