Current time: 22.11.2024, 01:56 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA III
Author Message
igrik Offline
Administrators

Posts: 2819
Post: #451

Ох скоко сборок появилось 96-copy Теперь при каждом обновлении ЭРЫ, каждую сборку теперь нужно будет отлаживать - работы тьма....

Вот яркий пример: если Берсеркер согласится (а для этого есть резонные причины) wog native dialogs в следующем релизе будет отвязывать текстовик, а в замен него будут использоваться JSON файлы такого содержания:
wog options rus.json (Click to View)
Причина - это очень и очень гибкая настрока названий вкладок диалога WoG Опций.
Например, тот же мод Era Scripts теперь не будет заменять весь файл "zsetup00.txt" целиком, а создаст свой файл JSON с частью необходимых ему строк:
wog options ES rus.json (Click to View)
26.10.2020 21:01
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #452

Berserker, при инициализации переменной (any:y) в первом триггере !?GE1; она не переносит своё значение во второй, такой же !?GE1; хотя обычные устаревшие y# это успешно проделывают.
В чём секрет? Или так и задумано?


Карта-мод "Война на Холсте"
26.10.2020 21:23
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #453

SergOz, локальная переменная даже в теории должна быть локальной, то есть личной для конкретного обработчика событий ака триггера. Это его частная приватная память.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
26.10.2020 23:01
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #454

SergOz, ещё не поздно вернуться на родной ЕРМ, ZVSE, и при этом вроде как на ERA3 быть Spiteful
а я... конфет по почте перешлю за этоYes
27.10.2020 02:59
Visit this user's website Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #455

Bes, ни шагу назад!
Хотя больше топчусь на месте
Привычные фишки автоматом тулишь в код, а Эра потом страшно ругается. Аж багровеет. 134
Я уже выучил несколько нехороших выражений на английском из её лексикона.
Но, данное ограничение, наверное, уменьшает количество потенциальных багов, хотя и вносит некоторое неудобство.


Карта-мод "Война на Холсте"
(This post was last modified: 27.10.2020 03:38 by SergOz.)
27.10.2020 03:36
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #456

SergOz, данное ограничение присутствует в любом ЯП. Приведи, пожалуйста, пример, где оно мешает.
Ты смотри. Код от !?XX до следующего !?XX — это просто уникальный обработчик события, никаких не связанный памятью с остальными, кроме глобальных переменных и функций. Если это функция, то у неё есть входные и выходные параметры. Например, функция возведения в квадрат числа. Принимает одно число — возвращает другое. Никто не должен знать, что там в личной локальной памяти у обработчика творится. Никто никогда не даёт никаких гарантий, что y1..y100 будут сохранять свои значения между разными обработчиками. Их предыдущие значения — просто мусор.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
27.10.2020 04:33
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1315
Post: #457

Berserker, "небольшое" неудобство только в отличии новых правил ERM2.
Вот, как я "спалился" вчера.
Я узнаю сложность, выбранную игроком. Потом, в !?GE1, отталкиваясь от этого значения, я с градациями от сложности, редактирую коэффициент получения опыта, ресурсы игрока, статы героев, их армию, вторнавыки, строения в городе и т.д. Получается довольно большой скрипт, который я именую "СЛОЖНОСТЬ" и закрываю, потому что длинные скрипты потом неудобно редактировать. Ресурсы я получал в (wood:y), (merc:y), (ore:y) и т. д. добавлял бонусы (bonusWood:y), (bonusMerc:y), (bonusOre:y)... получал окончательное (endWood:y)... и устанавливал в !!OW:R#/0/(endWood);...
Потом, я захотел во всех Гротах установить охрану и плюшки от сложности. В скрипте "ГРОТЫ" я решил воспользоваться уже ранее вычисленными значениями и со спокойной душой написал: !?GE1; !!CB(x)/(y)/(z):R0/(endWood);... потом запускаю игру и получаю кучу ошибок.
Я понимаю, что можно занести рассчёты в i^endWood^/i^endOre^... но, я же этого не знал, а знал что y# сохраняет значение между одинаковыми !?GE1; как и между другими одинаковыми триггерами, чем я раньше без опасений пользовался.
Но, я за прогресс обеими руками и, несмотря на полученные душевные травмы, "небольшими неудобствами" меня не запугать! 113


Карта-мод "Война на Холсте"
27.10.2020 06:40
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #458

Quote:а знал что y# сохраняет значение между одинаковыми !?GE1;
Это не гарантируется. Бывало, что перед каждым все занулялись, просто это неэффективно, потому мусор и сохраняется.
У тебя всё можно сделать цивилизованнее. В данном случае уровень сложности лучше хранить в глобальной переменной, а множители для ресурсов в константах или глобальном массиве.

Например, начальное дерево = 5 * уровень сложности. 5 вынесем в константу. Да и скрипт Грота может поменяться, равно как и скрипт инициализации. Их нельзя таким неявным грязным способом связывать. Либо функции вызывать с передачей параметров, либо в каждом обработчике свой расчёт.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
27.10.2020 06:56
Find all posts by this user Quote this message in a reply
Night Offline

Posts: 462
Post: #459

igrik,
Quote:Причина - это очень и очень гибкая настрока названий вкладок диалога WoG Опций.
Выглядит здорово.
Ещё реализовать бы доп.вкладку в текущий вид, чуть потеснив существующие вкладки, как вариант. Сейчас всё фактически занято и если использовать сторонний мод/скрипт, которому необходимо строка в WoG-меню, то выглядит не очень прилично это дело:
Может вторую страницу сделать, если есть такая возможность? Раз уж в рамках Era 3 такие глобальные обновления везде к лучшему, то и тут нужно как-то расширить возможности. Мне кажется многим мододелам хотелось бы иметь кусочек личных галочек в меню от своего мода...
(This post was last modified: 27.10.2020 13:25 by Night.)
27.10.2020 13:24
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #460

нужно новое окно. А это нынешнее упирается в ограничитель горизонтальных закладок, даже реализовав прокрутку для каждой страницы
выход - вертикальные закладки, где всегда можно внедрить кнопки пролистывания доп.закладок, как это в основном реализуют в мировой практике
27.10.2020 13:30
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #461

В настоящее время не получится - сам движок WoG не позволяет сделать новые вкладки. Ну вот совершенно никак. Там жёстко всё пришито к 8 вкладкам. Если бы это было просто сделать - я бы уже это сделал. А чтобы сделать новые вкладки, нужно переписать весь код, который отвечает за инициализацию и создание стуктуры диалога WoG Опций. И это уже по части Берсеркера ...
27.10.2020 13:36
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #462

(27.10.2020 13:36)igrik Wrote:  А чтобы сделать новые вкладки, нужно переписать весь код, который отвечает за инициализацию и создание стуктуры диалога WoG Опций.

1. Можно растащить окна опций вверх (надпись "Опции ВоГ-ификации" неплохо влезает в свободное место рядом с кнопками) с помощью патча функции создания борландского диалога в zvslib1.dll (там портянище та ещё, но сделать можно).

2. Можно перевести диалог целиком на !!DL и написать dll-обработчик диалога (решение из MoP).

3. Можно портировать диалог из WoG 3.59, где он целиком посажен на lua.

4. Можно вообще удалить старый диалог и на его месте вызывать абсолютно новый, совместимый с данными старого.

5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.

6. Почистить наконец-то вог-опции от мусорных опций, некоторые опции можно объединить, некоторые сделать неопциональными...

В общем, всё в руках моддеров. 20
27.10.2020 15:12
Find all posts by this user Quote this message in a reply
Panda Away
Moderators

Posts: 1005
Post: #463

(27.10.2020 15:12)XEPOMAHT Wrote:  5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.

6. Почистить наконец-то вог-опции от мусорных опций, некоторые опции можно объединить, некоторые сделать неопциональными...

Прям мои мысли прочёл )) Давно хотел подкинуть эту идею, но потом подумал, что моддерам виднее, что и как.


Тот, кто просыпается рано - жаворонок, поздно - сова. А тот, кто плохо спит и ходит с черными кругами под глазами - панда!
27.10.2020 15:24
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #464

XEPOMAHT, +1
27.10.2020 15:25
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #465

(27.10.2020 15:12)XEPOMAHT Wrote:  1. Можно растащить окна опций вверх (надпись "Опции ВоГ-ификации" неплохо влезает в свободное место рядом с кнопками) с помощью патча функции создания борландского диалога в zvslib1.dll (там портянище та ещё, но сделать можно).

2. Можно перевести диалог целиком на !!DL и написать dll-обработчик диалога (решение из MoP).

3. Можно портировать диалог из WoG 3.59, где он целиком посажен на lua.

4. Можно вообще удалить старый диалог и на его месте вызывать абсолютно новый, совместимый с данными старого.

5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.

6. Почистить наконец-то вог-опции от мусорных опций, некоторые опции можно объединить, некоторые сделать неопциональными...
XEPOMAHT, ты видимо не до конца понимаешь как сейчас сделан диалог WoG Опций в WND.

Графическая часть диалога полностью написана с нуля (это и есть тобой и указанный п.2). Вообще каждый диалог, который реализован в WND, написан с нуля и zvslib1.dll вообще в них - выпелен к чертям.
А это значит, что пункт 1 ты описал по не знанию.
3. В топку. Уже реализовано по п.2. Нахрена тогда я его переписывал?
4. Диалог как раз таки абсолютно новый. А вы их путаете, потому что сдалал я его визуально точь-в-точь как оригинальный воговский.
5. Да я хоть щас добавлю эту кнопку - толку то.... Кто будет заниматься заполнением структуры? Правильно - о чём я и говорю. Нужно писать заново обработчик.
6. Всё в руках сообщества, но с увереностью тебе скажу, что появится масса вопросов: А куда делось? Я хочу вернуть. Как вернуть? и т.п. Вот когда выйдет WoG Scripts 2 (на ERM 2), тогда и поговорим. Хотя я и так в нём планирую выпилить процентов 30% хлама.

Теперь, самое главное - я ещё раз повторяю, что нужно переписать обработчик создания и заполнения опций. Все данные для диалога я беру из уже готовой структуры. Вот кто по твоему создаёт эту структуру? Правильно - сам WoG, а не zvslib1.dll. В вэб-программированиии это называется бэкенд. Вот когда бэкенд будет переписан, я адаптирую фронтенд диалога (саму визуальную часть) как пожелаете, хоть "вверх-ногами", потому что п.2 уже мной сделан на 100%. Но сделан он не на DL, а на "внутреннем SOD" функционале.

Вот открой файл "wogsetup.cpp" и хорошенько изучи его - вот его и нужно переписать для создания нового окна ВОГ опций. Ты думаешь в 3.59 он сильно переписан (предложение п.3)? Очень и очень сомневаюсь.
27.10.2020 15:36
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group