Current time: 25.11.2024, 15:20 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
Valery Offline

Posts: 2196
Post: #1831

+1

Era is for H3 what fire invention was to humanity!

I would never have worked so much for 3.58.

Pouah! Start map, find erm error turn 145, restart map, find error turn 245, restart. 148
(This post was last modified: 25.08.2014 23:29 by Valery.)
25.08.2014 23:23
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #1832

totkotoriy, спасибо за добрый отзыв. В свою очередь хочу передать благодарность ZVS, MoP, Sav-у, Bes-у, SyDr-у, Валерию и ещё доброй д.жине людей, благодаря которым стало возможным сделать то, что было сделано.

Valery, don't even remind that hell! Btw, I used DEE program to upload scripts to existing game at those times Sm


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

Posts: 7107
Post: #1833

По-моему я нашёл ошибку. Пишу
Если верить справке, должно создать массив из 200 целых элементов (они 4-байтовые хоть?) и вернуть индекс в v1. Но v1=-2 и понятно, что никак к массиву не обратиться.
Эра 2.4 (из первого сообщения), новее не нашёл.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
06.09.2014 23:50
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #1834

Возвращается автоматически выделенный ID массива. Автоматические выделенные ID или слоты начинаются с -2 и являются отрицательными числами. Дальше


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

Posts: 7107
Post: #1835

Хмм... действительно, ошибка в другом. Даже не знаю Эра тут виновата или нет, но такого быть не должно. Вот мой код:


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
07.09.2014 01:35
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #1836

Получилось обойти этот загадочный баг вот таким костылём:


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
07.09.2014 13:03
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #1837

Ну и не говоря о том, что в ЕРМ = и ? в FU:P работают исключительно с v-переменными, но это уже проблема Вога, а не Эры.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
07.09.2014 13:25
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #1838

y-переменные затираются раньше, чем выполняется P?[...]. Это известная вещь, исправлена в 3.59.
x1..x16 тоже глобальные, так что ?x1 довольно опасно.



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

Posts: 7107
Post: #1839

Как скопировать строковое значение из массива в массив напрямую? Потому что как-то мало толку от длинных строк если их нельзя получить кроме как через z-переменную.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
08.09.2014 22:31
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #1840

Знаю, но в настоящий момент никак. Ну то бишь нужно написать несложную функцию. Добавлять подстроки с 2.46 стало легко:
Code:
[+] Added new modifier syntax for SN command parameters:
  SN:X$ (without &), SN:M#/$, SN:M#/#/$, SN:W#/$.
  Traditional "d" adds 0 or empty string, d[...] is equivalent to d+.
  d+, d-, d*, d:, d& (string concatenation).
  Example: !!SN:W^Gold^/y1 W^Gold^/d-500 W^Gold^/d*11 W^Gold^/d:10; Gold = y1 -500 * 1.1

Код для копирования длинной строки в другую длинную ниже:

Quote:!?FU(array item to item copy);
; x1 - array 1 ID (source)
; x2 - array 1 index (source)
; x3 - array 2 ID (destination)
; x4 - array 2 index (destination)
!!SN:Mx1/?y1/x2 Ky1/?y2; y1 - source] string address, y2 - string length

!!if&y2=0:;
    !!SN:Mx3/x4/^^; zero length string
!!el:;
    !!VRy3:Sy2 :4 +1; y3 - length of buffer in integers
    !!SN:M-1/y3/0/0; allocate temporal array
    !!VRy4:Sv1; y4 - temporal array
    !!SN:My4/?y5/0; y5 - temporal buffer address
    !!SN:Ky2/y1/y5; copy source string to temporal buffer
    !!VRy6:Sy5+y2; y6 - address of terminating byte
    !!UN:Cy6/1/0; write terminating byte
    что за ерунду я пишу? )
!!en:;


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

Posts: 2819
Post: #1841

ууу. черная магия...


game bug fixes extended.dll || My Plugins || My GitHub
09.09.2014 00:45
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #1842

(09.09.2014 00:31)Berserker Wrote:  команды Эры, принимающие строки, одинаково хорошо переваривают и адреса pchar-ов
О, точно то что надо. Спасибо.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
09.09.2014 01:17
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #1843

igrik, да нет )
Все команды Эры получают параметры в виде 4-байтовых чисел. Для строк это обычно адрес первого символа. Когда ты пишешь z1, команда получает адрес ЕРМ-переменной. Когда ^hello^, строка сперва сохраняется во временном буфере, затем команде передаётся её адрес, после чего буфер освобождается.

!!SN:M(src array)/?y1/(src index); записывает в y1 адрес первого символа строки в указанном массиве
!!SN:M(dst array)/(dst index)/y1; устанавливает новое значение элемента массива. Команде передаётся адрес строки )
Таким образом, длинные строки (> 512 байт) можно копировать между собой и использовать как буфер для накопления:
!!SN:M../../d&^ соединение строк^;


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

Posts: 7107
Post: #1844

Вот ещё баг. Эра не понимает ссылки на переменные типа zx4. Например, вот эта команда не работает:


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
13.09.2014 19:58
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #1845

Ещё мод WoG Rus требует Secondary Skills Scrolling (иначе игра вылетает при открытии окна героя), про это нигде не сказано.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
13.09.2014 20:44
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