PDA

Просмотр полной версии : D2ME и D2M не совместимы? Выкручиваемся!


uksav
24.03.2021, 08:32
Я думаю были люди и не мало. У которых возникала досадная ситуация. О которой я расскажу ниже... :read:



Теория



При скачивании клиента с PvPWar и его установке - оказывается. Что мула в игру завести не возможно. Так как если добавить программу D2M (которая собственно состоит из 2-х файлов это "d2m.exe" и "d2m.dll") в директорию игры. И которая позволяет снимать ограничения на запуск клиента. То это да, позволяло запустить клиент - но лишь 1 (через "d2m.exe" разумеется). А при дальнейшей попытке запустить 2-й раз, этот же клиент. Появляется сообщение, такое же, как если запускать оригинальный файл "game.exe", то же 2-й раз. Гласящие о том, что нельзя запустить одновременно 2-е копии игры (как в лицензионном оригинальном клиенте). То есть другими словами. D2M в директории с клиентом PvPWar ведет себя так же, как ведет себя оригинальный исполняемый файл "game.exe". Почему? Это вопрос уже не ко мне, а к хорошим программистам.

Пойдем дальше и попробуем как то решить данную проблему. Идем и качаем клиент 1.13d из другого источника. Например с какого либо популярного торент трекера. Ну например с "rutra****.org", я думаю догадаться не сложно. Устанавливаем собственно. Кидаем в директорию с клиентом, который качали с торент трекера (в дальнейшем просто "альтернативный клиент") 2 файла D2M. Не забываем обязательно добавить из клиента PvPWar файл "patch_D2.mpq". Просто скопировав его в директорию альтернативного клиента. Но с перезаписью, одного поверх другого, лучше это не делать. Лучше предварительно, сделайте на всякий случай, резервную копию файла. Путем переименования файла "Patch_D2.mpq" в альтернативном клиенте. Просто добавив ему знак нижнего подчеркивания. И тогда файл из клиента PvPWar в альтернативный клиент, будет скопирован без диалога о замене. Теперь когда вы сделали замену файла - сундук, инвентарь и куб в альтернативном клиенте, были расширенны, как это и есть в клиенте PvPWar.

D2M - теперь можно расположить в директории альтернативного клиента. Запускаем и видим, что на альтернативном клиенте он работает. К альтернативному клиенту у меня вопросов нет. А вот... Вот, что находится для скачивания на сайте PvPWar? Что это за клиент? Действительно ли настоящая полноценная версия 1.13d? Вот тут меня скребут какие то сомнения. Опять таки, разбираться я не буду. Пускай этим занимаются хорошие программисты. А странности насчет того, что в главном меню, обеих клиентов, написана версия 1.13d. Пока остаются не объясненными администрацией.

D2ME - имеет смысл попробовать запустить на альтернативный клиенте. В качестве полноценного, раз уж на клиенте PvPWar, D2M не работает. Но после нажатия кнопки в D2ME, отвечающей за встраивание программы в память клиента. Альтернативный клиент просто вылетает, даже без ошибки. Из этого можно сделать два вывода:
- На клиенте PvPWar работает D2ME (и "Sting's Hackmap for Diablo II 1.11b v2.24") но не работает D2M.
- На альтернативном клиенте работает D2M но не работает D2ME (и "Sting's Hackmap for Diablo II 1.11b v2.24").
P.S. Беда никогда не приходит сама.:friends: Жесть не правда ли? Ведь версии одинаковые!:pleasantry:
Сам факт вылета клиента можно назвать нормальным. При том, что в окне D2ME "О программе..." четко написано, что подходит только для версии 1.11x. А вот как насчет того, что D2ME работает на клиенте PvPWar? Так значит у нас версия клиента PvPWar 1.13d? Да?:whistle3:



Практика



А теперь выходим из ситуации. Как говорят программисты - кастылище! Ой мама!:blush2: Но на текущий момент, других более удачных вариантов, как это провернуть. От администрации на сайте я не видел.:mda:По этому пишу все сам, что бы больше людей играло в Diablo II на PvPWar. И улыбка на лице админа, никогда не сходила с наших глаз.:declare:
И так, нам потребуется 2 клиента. Создаем папку "Diablo II - pvpwar.ru". В ней еще 3 папки. Это "Client - 1", "Client - 2" и "My". В папке "Client - 1" у нас будет клиент PvPWar. Его будем использовать для основного / ведущего персонажа так, как ему будет открыта вся карта. В папке "Client - 2" у нас будет альтернативный клиент. И в эту директорию альтернативного клиента мы кладем D2M (и "Patch_D2.mpq" если забыли). С этого клиента будем заводить мулов в игру. Встраивание в память этого клиента, папхака D2ME нам не нужно. И наконец 3-я директория "My". В которой размещаем папку с файлами D2ME.

Теперь осталось решить, как это все дело, будет запускаться? Но дело уже за малым. В папке "Client - 1" создаем файл с именем "D2ME.cmd" для запуска D2ME и пишем в нем:
@echo off
cd "..\My\D2ME (firk)"
start d2me.exe
Теперь создаем файл с именем "-direct.cmd" для запуска игры в полно-экранном режиме. С загрузкой русифицированного текста. И пешем в нем:
@echo off
start Game.exe -direct
Теперь создаем файл с именем "-w -direct.cmd" для запуска игры в оконном режиме (очень удобно при работе с мулами). И так же с загрузкой русифицированного текста. И пешем в нем:
@echo off
start Game.exe -w -direct
В папке "Client - 2" создаем файл с именем "-w -direct.cmd". Для запуска игры в оконном режиме и загрузкой русифицированного текста. И пешем в нем:
@echo off
start Game.exe -w -direct
Во 2-м клиенте D2ME не будет работать, а играть в полноэкранном режиме не целесообразно. По этому в директории 2-го клиента, файл запуска будет только 1. Вы так же можете добавить как новые аналогичные *.cmd (командные) файлы. Так и запускать клиенты через ярлыки, просто прописав в их свойствах, аналогичные вещи.

Итак, вот теперь мы со всем разобрались. Осталось только добавить на счет того, чтобы корректно все работало. Сначала нужно запустить клиент из директории "Client - 1" и лишь затем запускать остальные клиенты из директории "Client - 2". Так, как если сделать не верно и запустить сначала сколь угодно клиентов из директории "Client - 2". А затем попытаться запустить клиент из директории "Client - 1" на котором работает D2ME. То этот клиент увидит, что Д2 уже запущена в процессах и завершит свою работу. По этому запускайте в правильном порядке.

Вы считаете, что это все очень долго и нудно делать?:smoke: Или вы не вникаете в написанное выше?:scratch_one-s_head:Тогда можете скачать готовую сборку, которой я лично пользуюсь по ссылке (https://drive.google.com/u/0/uc?export=download&confirm=fDLg&id=1m-BSkIitQ5hLx0JwcEQE9SAtoRTNexF6). В ней есть два клиента, файлы для запуска, русифицированные файлы игры в папке "data", заменен файл "Patch_D2.mpq" во 2-м клиенте, D2M, D2ME (Настроен под меня, может и вам понравится. Если совсем не разбираетесь в настройках).



Замечания



- Написанное актуально исходя из моих личных наблюдений и жизненного опыта. Основанного при работе с ПО на Windows XP SP3.
- Если у вас возникают ошибки - то большая часть из них описана по ссылке (https://d2.pvpwar.net/faq.html).
- Мапхак D2ME, при своем запуске, автоматически не встраивается в клиент. По этому клиенты игры с не совместимой версией. Не вылетают при его запуске. В окне D2ME, есть список, отображающий уже запущенные клиенты (разных версий). Остается выбирать в память какого из них, будет правильным встроить D2ME. А в память какого - нет, из-за вылета который последует далее.
Но есть другой мапхак "Sting's Hackmap for Diablo II 1.11b v2.24. Доступный для скачивания с сайта PvPWar из раздела файлы (https://d2.pvpwar.net/files.html). Который в отличии от пред идущего. При своем запуске автоматически начинает встраиваться в процесс альтернативного клиента 1.13d (с версией которого он не совместим). На, что альтернативный клиент реагирует просто вылетом. Из-за чего у вас могло сложится впечатление, что этот мапхак еще хуже D2ME. Но это не так - на самом деле они аналогичны. Просто заходим в настройки и отключаем автоматическое встраивание в память клиентов. Теперь выбирать в какой клиент встраивать Sting's Hackmap можно так же, как и в D2ME.
Для новичков и тех у кого иногда возникают ситуации. Что много клиентов уже запустили. И только потом думаете, что в списке клиентов мапхака. Не понятно где PvPWar, а где другие. Какому встраивать в память мапхак? Боясь сделать не правильный выбор с последующим вылетом не поддерживаемого клиента. Я подскажу мелочь. Сначала вы наверняка запускаете клиент от PvPWar. Так, как если запустить несколько альтернативных и лишь затем запускать клиент от PvPWar. Клиент от PvPWar не запуститься. Значит и в списке мапхака он всегда находится первым. Вот в память первого из списка, всегда и встраивайте.
- Не забываем, что у нас изменились пути к исполняемым файлам. И в случае если вы используете Firewall для блокировки программам доступа в интернет. Пути к файлам "Game.exe", обеих клиентов, нужно будет указывать заново.
- Если сами будите качать 2 клиента и делать свою сборку. Подскажу 2 вещи:
А) Файлы "d2video.mpq" в обеих клиентах можно удалить. Для уменьшения занимаемого места на диске клиентами.
Б) Если клиент устанавливаете с помощью мастера установки. Он прописывает директорию игры в реестр. И потом если вы будите заниматься опытами. И директория клиента игры изменится. Могут появится неурядицы. В этом вам (возможно) поможет удаление в реестре последней записи. "HKEY_CURRENT_USER\Software\Battle.net". То есть "Battle.net". Но учтите, что этот вариант "Б", только для опытных пользователей. Так, что...:stop: Затем не забудьте снова добавить в реестр данные из файла "PvPWaR_GATEWAY.reg". Доступного для скачивания с сайта PvPWar из раздела файлы (https://d2.pvpwar.net/files.html). И настроить заново в клиенте горячие клавиши.
- Если вы нашли в теме: неоднозначности, мои заблуждения или попросту говоря ошибки. Пишем смело в тему. Будет у меня время и желание - рассмотрю и исправлю.

Demka
24.03.2021, 15:27
Спасибо

Неваляха
24.03.2021, 16:04
Почему если версии одинаковые, то названия то разные?

uksav
24.03.2021, 16:57
Почему если версии одинаковые, то названия то разные?
Ну я понимаю, что это намек на название "PvPWar" в определенном понимании, конечно. Ну как? Я просто имел ввиду в высказываниях выше, что исполняемый файл, а значит наверняка и 2D движок в библиотеках, если грубо говорить. Имеют одинаковую версию. Ведь моды делаются посредством изменения содержимого *.mpq файлов игры, архивов можно сказать. А не посредством модификации исполняемого файла. Ну если и модифицируют, то для защиты от читеров. На это я уклон в теме и ставил. То есть мапхаки не чувствительны к модам ведь работают как бы с движком игры. А контент в архивах игры и название мода, может быть любым.