I had a single constant crash, when using "advanced map infos" mod, clicking on the left corner of a warrior tomb (this didn't occur in 2.46, tried). I changed the code to exit if no yellow square and now is going ok.
Strange indeed. I'm checking WoG code, nothing changed there, should be no crashes, but I remember crashes related to object position in Phoenix. I had to set v2/v3/v4 to click coordinates, then substract 1 from v2, than search UN:U to find object of needed type and subtype from specified coordinates. And then I used v2/v3/v4 as canonical coordinates, not original click coordinates.
Make s stable crash savegame for me please. Just for future.
Some objects have multiple square size, so if you code to respond on click-position, then click not on entrance, I get the erm dump thing.
But I think this is normal, even in 3.56 sorcery script, Fnord adds +1 or -1 to position if player clicks left/right (warrior tomb work that way). But this is not always possible; for example, prisons have one red/one yellow square then 2 empty squares, so is impossible to know where the player clicks. So I think must code exit if no yellow square.
Right, I see no perfect solution either. Of course, we can write low level function to find first yellow square, but may be not safe either.
Berserker, не искушай меня, демон...
...
*проходит три часа усиленного реверсинга и скриптописания*
...
Координаты в v2/v3/v4 обновляются на правильные.
#erm #snippet #map #objects #coordinates #yellow
gamecreator, ага, вызвал-таки тебя

Здорово! А что не так с кодом ZVS, он один и тот же для OB и WT при получении объекта? Меня это больше смущает.
Я даже не смотрел туда. OB не центрируется на клетку входа автоматически. Сейчас проверил, WT тоже.
Да, там одна и та же функция взятия адреса объекта из массива клеток карты. Почему вылетает — хз.
Да потому что там мусорное значение в контрольном слове, из него и берётся номер артефакта. Вот игра и вылетает при попытке показать в сообщении несуществующий артефакт.
Или ты меня теперь спросишь почему там мусорное значение? Потому что настоящее значение там не нужно, да ещё и синхронизировать его каждый раз пришлось бы. Вместо этого Герои просто используют функцию 40AF10 для получения клетки с реальным контрольным словом.
Понял, очень доступно, спасибо. Эта функция для любых объектов подходит ведь? Может вынести в команду?
Должна. Можешь выносить (в OB:Y если не жалко: Y?$1/?$2/?$3 - получить координаты входа).
Если мне не изменяет, есть объекты с двумя "входами". Как в этом случае?
Да, не изменяет: Оазис (2), Магический источник (2), Водоем (4!).
Не знаю. Какой-нибудь да вернёт. Проверить можно так: посети один из входов в игре и наведи/ПКМ на клетку без входа. Если скажет то же, что и наведение/ПКМ на посещённой клетке - значит вернёт этот вход.
(да, все эти входы считаются отдельными объектами с т.з. посещения: магический источник или водоём можно посещать несколько раз, я давно уже это заметил)