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

Post Reply 
Threaded Mode | Linear Mode
Master of Puppets 3.07f
» последняя официальная версия от Мастера
Author Message
MOP Offline
Moderators

Posts: 1468
Post: #1486

(27.09.2016 18:54)denspb Wrote:  Баги (для 3.0.2):
1) Bag of artifacts:
   - не пропадает с карты, даже если из него забрать все артефакты
   - UI взаимодействия работает странно, кнопки "перенести всё в/из мешка" переносят не всё (или вовсе ничего). Кнопка "поменять местами" работает корректно.
Сеееейв...
(27.09.2016 18:54)denspb Wrote:  2) Снова проявился (критический) баг, когда в диалоге выбора скилла при Level UP'е диалог закрывается по single click'у на иконке скилла, при этом уровень скилла не увеличивается. В диалоге коммандера всё выбирается как обычно. Похоже на какую-то оптимизацию в винде, которая в какой-то момент включается. Windows 7, SP1. В промежутке когда баг проявился обновления не ставились.
Поставил только ADOM (который скачивается архивом, без установки) и CheatEngine для поиска пары адресов в памяти.
Ну я не знаю... Там код простейший, с использованием timeGetTime, аналогичный HD-шному.
(27.09.2016 19:24)denspb Wrote:  По балансу - играл на 200%, XL+U.
Ассимиляция заметно портит жизнь на этапе "добивания тараканов"
Собственно, так и задумывалось.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
27.09.2016 21:24
Find all posts by this user Quote this message in a reply
denspb Offline

Posts: 70
Post: #1487

(27.09.2016 21:24)MOP Wrote:  
(27.09.2016 18:54)denspb Wrote:  2) Снова проявился (критический) баг, когда в диалоге выбора скилла при Level UP'е диалог закрывается по single click'у на иконке скилла, при этом уровень скилла не увеличивается. В диалоге коммандера всё выбирается как обычно. Похоже на какую-то оптимизацию в винде, которая в какой-то момент включается. Windows 7, SP1. В промежутке когда баг проявился обновления не ставились.
Поставил только ADOM (который скачивается архивом, без установки) и CheatEngine для поиска пары адресов в памяти.
Ну я не знаю... Там код простейший, с использованием timeGetTime, аналогичный HD-шному.
Снести cheat engine не помогло. На 3.0.3 повторяется. На обычных Героях в той же папке - всё работает нормально.
А насколько реально там сделать поддержку клавиатуры (скажем, выбор навыка по Arrow Left / Arrow Right)?
Edit: Right click работает корректно (показывает подсказку). При Left Click'е закрытие происходит на release, и только если на момент press курсор находился внутри иконки одного из навыков (то есть нажать внутри иконки, отвести мышку, отпустить - диалог закрывается, навык не получается. Нажать снаружи, навести внутрь иконки, отпустить - ничего не происходит.
Этот код где-то в исходниках есть? Если да - в каком файлике смотреть (навскидку не нашёл).
(This post was last modified: 28.09.2016 02:53 by denspb.)
28.09.2016 02:39
Find all posts by this user Quote this message in a reply
denspb Offline

Posts: 70
Post: #1488

А морские артефакты должны генерироваться, если на карте нет воды?
28.09.2016 02:59
Find all posts by this user Quote this message in a reply
denspb Offline

Posts: 70
Post: #1489

О! Перезагрузка в этот раз помогла. И я, кажется, знаю в чём дело...
timeGetTime возвращает 32-битное значение в миллисекундах. То разрядности хватает где-то на 50 дней. А если его использовать как знаковый тип - 25 дней.
Баг проявился когда у меня аптайм системы превысил эти самые 25 дней, так что скорее всего код интерпретирует результат как знаковый, и к тому же некорректно обрабатывает отрицательные значения.
(This post was last modified: 28.09.2016 04:23 by denspb.)
28.09.2016 04:21
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #1490

denspb, глянул твой сейв... Уже материться охота: ну откуда опять эти чёртовы заклинания существ? Достали уже вылазить. Где вы их получаете?
О доходе: ну кто бы жаловался на ассимиляцию со Шкатулкой Лафинакии в каждом городе? Sm Колпак Шута - дьявольский чит.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
(This post was last modified: 28.09.2016 10:39 by MOP.)
28.09.2016 10:36
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #1491

(28.09.2016 02:39)denspb Wrote:  Этот код где-то в исходниках есть? Если да - в каком файлике смотреть (навскидку не нашёл).
Так и называется - DoubleClick.txt.
(28.09.2016 02:59)denspb Wrote:  А морские артефакты должны генерироваться, если на карте нет воды?
Если не запрещены в настройках.
(28.09.2016 04:21)denspb Wrote:  О! Перезагрузка в этот раз помогла. И я, кажется, знаю в чём дело...
timeGetTime возвращает 32-битное значение в миллисекундах. То разрядности хватает где-то на 50 дней. А если его использовать как знаковый тип - 25 дней.
Баг проявился когда у меня аптайм системы превысил эти самые 25 дней, так что скорее всего код интерпретирует результат как знаковый, и к тому же некорректно обрабатывает отрицательные значения.
Глянь, можно ли это исправить JNC вместо JGE.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
28.09.2016 11:02
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2812
Post: #1492

(28.09.2016 10:36)MOP Wrote:  denspb, глянул твой сейв... Уже материться охота: ну откуда опять эти чёртовы заклинания существ? Достали уже вылазить. Где вы их получаете?
Может грамотность что-то неучитывает и передает эти заклинания?

upd: кстати, а может и из ящиков пандоры, когда выдаются например все заклинания *n уровня


game bug fixes extended.dll || My Plugins || My GitHub
28.09.2016 11:06
Visit this user's website Find all posts by this user Quote this message in a reply
denspb Offline

Posts: 70
Post: #1493

(28.09.2016 10:36)MOP Wrote:  denspb, глянул твой сейв... Уже материться охота: ну откуда опять эти чёртовы заклинания существ? Достали уже вылазить. Где вы их получаете?
Играл с запретом DD/Fly, но снял галочку "запретить получение заклинаний от артефактов". Получил в ящике Пандоры (ящик был странный, в нём явно изначально предполагались все заклинания воздуха, но был и DD).

(28.09.2016 10:36)MOP Wrote:  О доходе: ну кто бы жаловался на ассимиляцию со Шкатулкой Лафинакии в каждом городе? Sm Колпак Шута - дьявольский чит.
Ну, как я сказал, это когда удаётся найти его и ещё пару артефактов на +2/+3 удачи. К тому времени обычно разведанная часть карты зачищена, и встаёт выбор - поход за артефактами, или охрана городов (на 8XM12 слишком много проходов, сгенерировались телепорты на 4 выхода, и компы лезли постоянно).
Challenge.

(28.09.2016 11:02)MOP Wrote:  Так и называется - DoubleClick.txt.
(28.09.2016 02:59)denspb Wrote:  А морские артефакты должны генерироваться, если на карте нет воды?
Если не запрещены в настройках.
Посмотри пожалуйста, корректно ли обрабатывается Компас (не пересекается ли с каким-то ещё артефактом) - я запрещал морские артефакты, но, кажется, на карте с тем сейвом его встречал (не помню, подобрал ли, и если да, то не продал ли).
(This post was last modified: 28.09.2016 11:40 by denspb.)
28.09.2016 11:37
Find all posts by this user Quote this message in a reply
MOP Offline
Moderators

Posts: 1468
Post: #1494

В сейве с Мешком та бодяга, что в структуре героя хранится неверное кол-во артефактов в рюкзаке, больше, чем на самом деле. В какой-то операции по передаче артефактов это значение, видимо, не обновилось/испортилось.
(28.09.2016 11:37)denspb Wrote:  Играл с запретом DD/Fly, но снял галочку "запретить получение заклинаний от артефактов". Получил в ящике Пандоры (ящик был странный, в нём явно изначально предполагались все заклинания воздуха, но был и DD).
Ох уж беда с этими Пандорками...
(28.09.2016 11:37)denspb Wrote:  Посмотри пожалуйста, корректно ли обрабатывается Компас (не пересекается ли с каким-то ещё артефактом) - я запрещал морские артефакты, но, кажется, на карте с тем сейвом его встречал (не помню, подобрал ли, и если да, то не продал ли).
Компас обрабатывается вместе со всеми артефактами единым циклом. Отдельно обрабатываются лишь артефакты командиров, Лампада, Каска Шахтёра и Лопата Кладоискателя. Может, Компас попадается из-за того, что он - перенумерованный Грааль? Хотя Iv говорил, что и запрещённый Свадебный Костюм когда-то попался...


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery
28.09.2016 13:14
Find all posts by this user Quote this message in a reply
denspb Offline

Posts: 70
Post: #1495

О, ещё раз случилось: 3.0.3, морские артефакты запрещены, компас на карте.
.
28.09.2016 20:04
Find all posts by this user Quote this message in a reply
tttt Offline

Posts: 53
Post: #1496

MOP' c df2 Wrote:Да тут тоже не будет никаких проблем. Достаточно будет в плагине указать путь к файлу настроек и вызвать функцию, причём в любой момент игры. Типа: LoadMonstersSetup "MoP_Maps/MyMonSetup.mop".

Касательно возможностей. Вот накарябал простейший рабочий пример:
include '..\WERD\header.asm'

_MapInstruction
    Message MyString, Type_Msg_MES, Pic_MoP, Pic_Древо_Знаний

_RightMouseClickOnAdvMap
    Message "Big Brother is watching you!", Type_Msg_MES, Pic_Art, ART_Глаз_Наблюдателя

_LeftMouseClickOnAdvMap
    .if [MyData] <> 0; если сообщение до этого не было показано
    DisableClick
    Set MyData, 0; больше не показывать
    Message "Уху-ху-ху! Сейчас я сделаю Дьяволов непобедимыми!", Type_Msg_MES, Pic_MoP, Pic_Бродячий_Волшебник
    Set MyVar, 666
    SetMonParam CR_Дьявол, Здоровье, 1000000,\
    CR_Дьявол, Атака, [MyVar],\
    CR_Дьявол, Защита, 1000
    .endif

_RightMouseClickOnAdvMap
    Message "Back to School...", Type_Msg_MES, Pic_Art, ART_Диплом_Магистра, Pic_MoP, Pic_Big_Книга_Мудрости_Астих_ду_Нила
    ret; завершить обработку кода данного триггера для данного плагина

_RightMouseClickOnAdvMap
; это сообщение не будет показано, так как триггер завершился
    Message "Kill` Em All!", Type_Msg_MES, Pic_Art, ART_Клинок_Армагеддона

END_CODE

; DATA
MyString db 'Hello, World', 0

SAVE_DATA:
MyData dd 1; инициализирована для первого показа сообщения
END_SAVE_DATA:

; Global Variables
Dword MyVar


Что здесь к чему.
- Любой WERD-плагин прежде всего начинается с заголовка include '..\WERD\header.asm', иначе это не плагин. Файл header.asm - это каркас DLL.
- Далее идут триггеры, обозначенные как _MapInstruction, _RightMouseClickOnAdvMap, _LeftMouseClickOnAdvMap и т. д. Если мнемоника триггера не нравится, пользователь может её переопределить в начале текста. Например, любитель ERM может написать "!?CM fix _RightMouseClickOnAdvMap" - и всё, пользоваться ради бога знакомой ему мнемоникой !?CM. При этом старая мнемоника никуда не денется.
Триггеры располагаются в произвольном порядке и могут повторяться.
- После каждого триггера идут команды. В образце представлены Message (показ сообщения), DisableClick (отключить стандартную реакцию при клике), Set (установка переменной), SetMonParam (установить параметр монстра).
- Если триггер завершить командой ret, то другие аналогичные триггеры в этом плагине не сработают.
- END_CODE - конец секции кода. Обязательная строка.
- ; DATA - вообще-то это комментарий, но он написан для указания того, что после кода идут инициализированные пользователем данные плагина - строки, таблицы, что угодно. Впрочем, как видим, строки можно пропускать в функцию и непосредственно.
- SAVE_DATA, END_SAVE_DATA - между двумя этими метками располагаются данные, которые требуется сохранить в игре для данного плагина. Если ничего не надо - можно убрать. Секция сохранения специально располагается между данными и глобальными переменными, чтобы можно было сохранить и то, и другое.
- ; Global Variables - тоже комментарий, указующий на то, что в конце плагина идут глобальные переменные.

Естественно, обработка плагина происходит после WERD, так что он может отменять вносимые ею изменения.
Любые константы тоже можно легко переопределять. Например, написать команду: ART_Глаз_Наблюдателя = EyeOfTheBeholder. Всё, ещё одно имя для артефакта-166.

Что конкретно происходит в этом плагине для игрока - наверное, уже понятно. Но на всякий случай объясню.
На старте карты видим это сообщение:
Image: 8f5b7d3d16eet.jpg
При ПКМ на карте видим эти сообщения:
Image: dca8a6970c61t.jpgImage: b48f5ef4e516t.jpg
При ЛКМ на карте видим всего один раз это сообщение
Image: ac1472651e18t.jpg
после чего Дьяволы получают миллион здоровья, 666 Атаки и 1000 Защиты.
Этого примера мало,напиши пожалуйсто, как средствами
"Framework (среда разработки) WERD-плагинов"
получить это:
(14.09.2016 18:54)igrik Wrote:  
(14.09.2016 16:41)feanor Wrote:  По-моему, ему еще что-то надо будет - если его просто в окно холла вытащить, он будет некликабелен.
Да, будет некликабелен. Но нужно просто расширить 2 свитча
29.09.2016 16:11
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2812
Post: #1497

Да НЕ РАБОТАЮТ граали в MoP.


game bug fixes extended.dll || My Plugins || My GitHub
29.09.2016 17:35
Visit this user's website Find all posts by this user Quote this message in a reply
tttt Offline

Posts: 53
Post: #1498

igrik, Как то можно же им вернуть работоспособность через Framework (среда разработки) WERD-плагинов?
29.09.2016 17:50
Find all posts by this user Quote this message in a reply
XEPOMAHT Online
Moderators

Posts: 2270
Post: #1499

(29.09.2016 17:50)tttt Wrote:  Как то можно же им вернуть работоспособность через Framework (среда разработки) WERD-плагинов?

Старый код граалей затёрт, можно только написать новый. Но это сродни безумию по добавлению новых городов в игру - трудозатраты значительно превышают выгоду от полученного результата, тем более когда граали намеренно были удалены из MoP. Вряд ли кто-то из опытных моддеров возьмётся за написание подобного плагина под MoP за спасибо.
(This post was last modified: 29.09.2016 20:59 by XEPOMAHT.)
29.09.2016 20:57
Find all posts by this user Quote this message in a reply
tttt Offline

Posts: 53
Post: #1500

(29.09.2016 20:57)XEPOMAHT Wrote:  
(29.09.2016 17:50)tttt Wrote:  Как то можно же им вернуть работоспособность через Framework (среда разработки) WERD-плагинов?

Старый код граалей затёрт, можно только написать новый. Но это сродни безумию по добавлению новых городов в игру - трудозатраты значительно превышают выгоду от полученного результата, тем более когда граали намеренно были удалены из MoP. Вряд ли кто-то из опытных моддеров возьмётся за написание подобного плагина под MoP за спасибо.
Сам грааль не нужен, нужно только активировать жилища грааля которое есть - он не безумие так как код активации остался в редакторе карт, само жилище потеряло денежный доход, несмотря на описание, у жилищя грааля осталось только специфическое свойство, зависимое от города. В полне разумно разрешить его строить после капитолия и при условии, что уже построены все другие здания города, при этом он станет доступен игроку не скоро и только одно на игрока, так как капитолий один на игрока, но жилищу грааля не надо разрушаться если его захватят.
Код уже безплатно предлагали под ЕРМ, его только нужно адоптировать под WERD
А тебе слабо его написать?
MOP, Мне бы хоть одно жилище грааля расписал подробно как получил его под WERD, может я бы остальные восемь активировал бы.
29.09.2016 22:10
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