1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. this
    Исправление отображения подсказки на иконке «Щит-Мечи» Некоторые сборки клиентской части фришек онлайн-игры PerfectWorld грешат отсутствием подсказки на иконке «щит/мечи», при наведении на неё курсора «мышки». Ситуация, сама по себе, для процесса игры не особо значимая, однако, гости моего приватного сервера несколько раз сетовали на эту косметическую «недоделанность», в сравнении с клиентом от MAIL.RU. В данной мини-информашке я покажу, как исправить эту ситуацию. Необходимые нам ресурсы находятся в файле interfaces.pck, для обоих типов игровых клиентов (старого и нового: dtf-xml). Начнём со старого формата интерфейса (dtf/stf/htf). Распаковываем файл interfaces.pck, затем находим файл map.htf (это файл подсказок для элементов диалогового окна), и ищем в нём строку "Chk_SwitchSafety". Скорее всего, её в файле не окажется :). Вставляем новой строкой следующий текст (как есть): "Chk_SwitchSafety" "^ffcb4aЩит^ffffff:Мирный режим (напасть на игрока можно лишь удерживая нажатой кнопку Ctrl) \r^ffcb4aМеч^ffffff:Свободный режим (можно свободно напасть на игрока)\r^00ffffЩелкните мышью для детальной настройки \r^ffcb4aУбийство игрока (PK) может быть совершено персонажем минимум 30 уровня" Сохраняем файл, упаковываем interfaces.pck, копируем в клиент, запускаем, проверяем результат. Я лично проверил около 9 сборок, везде результат удовлетворительный. Теперь займёмся новым форматом (xml). Распаковываем файл interfaces.pck. Затем, в каталоге version01 находим файл map.xml (это файл разметки диалогового окна). В нём ищем строку, начинающуюся с тэга <CHECK Name="Chk_SwitchSafety". Сразу после этой строки, перед тэгом <Resource> вставляем следующий тэг (как есть): <Hint String="^ffcb4aЩит^ffffff: Мирный режим (напасть на игрока можно лишь удерживая нажатой кнопку Ctrl)\r^ffcb4aМеч^ffffff: Свободный режим (можно свободно напасть на игрока)\r^00ffffЩелкните мышью для детальной настройки\r^ffcb4aУбийство игрока (PK) может быть совершено персонажем минимум 30 уровня"/> Сохраняем файл, упаковываем interfaces.pck, копируем в клиент, запускаем, проверяем результат. Надеюсь, кому-нибудь пригодится :) p.s. сама строка всегда лежит в файле ingame.stf (в любом типе клиента, в том числе и руоф-) под id 823. В руоф-клиенте всё работает, а вот причина, по которой фришный клиент (даже сконвертированный из руоф-) её оттуда не отображает, мне была неинтересна, возможно дело в сервере. p.p.s если где-то уже было, прошу извинить за "недогугливание". © this
    Автор темы: this, 30 апр 2018, ответов - 0, в разделе: PW Документация
  2. this
  3. this
  4. this
  5. this
    В процессе привязывания русскоязычного клиента к так называемому "серверу 449", имеющему version=515, столкнулся с проблемой несоответствия нумерации руофовских патчей европейским. Некоторые раздумья и подсовывание кучи руофовских файлов *.sup патчеру (начиная с версии 331) навели на мысль, что не так уж критично точное соответствие сигнатур на сервере и клиенте. Иными словами, если сервер "проглотил" содержимое клиентского каталога data, то нет никаких препятствий для подключения этим клиентом к серверу. Чтобы обойти на клиенте проверку сигнатуры достаточно выполнить следующее: найти последовательность байт 0x83, 0xc4, 0x08, 0x85, 0xc0, 0x0f, 0x94, 0x44, 0x24, ??, 0xe8 и выше этой последовательности на 13 байт изменить код 0x50 (push eax) на 0x51 (push ecx). Байт в позиции ?? меняется от версии к версии, поэтому обозначен вопросительными знаками. p.s. В целях ручного патча достаточно удобно использование редактора hiew, который позволяет использовать в сигнатурах поиска маски, нажатием Alt+? p.p.s. Прошу извинить, если подобная тема уже где-то была. Да, и конечно же, патч поможет лишь в том случае, если формат структур на сервере и клиенте одинаков, и однозначно не удастся запустить текущий руофовский клиент с сервером 449/515 :)
    Автор темы: this, 5 окт 2014, ответов - 1, в разделе: FW Клиент
  6. this
    Столкнулся с необходимостью войти руофовским клиентом на персонажа, который входит в один из кланов. Клиент, естественно, выдаёт ошибку с предложением релога. Долго разбираться времени не было, в результате определённых манипуляций была найдена функция по адресу 0x460100, при замене в которой цепочки [VA:0x460118] 0x8b, 0x4c, 0x24, 0x08, 0x51 (mov ecx, dword ptr [esp][8]; push ecx) на 0x6A, 0x01, 0x90, 0x90, 0x90 (push 1; nop(3)) даёт возможность клиенту нормально загрузиться, правда кроме логотипа клана, названия, уровня, и возможности удалить клан ничего не работает. Лично мне для удаления клана было достаточно, но возможно у кого-то появится желание "копнуть" глубже, для отображения списка членов клана, и т.д. p.s. В оригинале (клиент 101) в стек идёт не 1 а 0, но видимо где-то дальше производятся дополнительные манипуляции и проверки...
    Автор темы: this, 24 авг 2014, ответов - 5, в разделе: PW Клиент
  7. this
  8. this
  9. this
  10. this
  11. this