Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаВы прям головоломками говорите. А как же тогда получить оригинальное сообщение. Значит если в esi ID элемента, то оригинальная строка где-то в другом месте? Получается esi мы не можем использовать, будем получать вылет.
|
Re: Как создать плагин для HD модаВо-первых, никто не отменял NO_EXEC_DEFAULT. Во-вторых, нужно понимать, что значит запись mov reg, [value].
mov reg, [value] <=> c->reg = *(type*)value; mov esi, dword_006A74C4[esi*8] <=> mov esi, [esi*8+6A74C4h] <=> c->esi = *(type*)(c->esi * 8 + 0x6A74C4); Теперь должно быть понятнее, что происходит. А так как речь о строке, type - это char*. Пробуйте экспериментировать. |
Re: Как создать плагин для HD модаВот так сделал:
Плюс вернул NO_EXEC_DEFAULT. Сумма грейда в золоте выводится, но при этом портится оригинальное сообщение и заменяется различными символами. Также если нажать по соседней кнопке удаления отряда ПКМ, то получаю вылет. |
Re: Как создать плагин для HD модаПробуйте *(char**)(c->esi * 8 + 0x6A74C4); А NO_EXEC_DEFAULT используется с адресом возврата. Т.к. мы пропускаем только первую команду, то адресом возврата будет адрес следующей (той, на которую Вы ставили хук в самом начале).
Вылет при клике по кнопке удаления потому, что NO_EXEC_DEFAULT должен быть только при выполнении условия. А после условия напишите EXEC_DEFAULT. |
Re: Как создать плагин для HD модаЕсть, работает.
А как теперь узнать, требует ли улучшенное существо драгоценных ресурсов к золоту для грейда, чтобы не перечислять всех существ 7-го уровня через ифы? Или просто на уровень проверить? Требования по золоту считаю так:
Хотя, наверное, id + 1 для грейда не лучший варинт. Может быть можно иначе, там через функцию, но я не знаю как. |
Re: Как создать плагин для HD модаЦитата: Да, не лучший. Например, есть Conflux Функцию получения грейда можете посмотреть в недавних плагинах. Цитата: Никак по-другому. Нужно отнимать каждый ресурс и не выводить нулевую разность. |
Re: Как создать плагин для HD модаAlexSpl писал(а): Вроде, сделал:
AlexSpl писал(а): А как через o_CreatureInfo по id получить уровень существа? |
Re: Как создать плагин для HD модаЦитата: Есть поле level. Остальные смотрите в структуре _CreatureInfo_. |
Re: Как создать плагин для HD модаМожет и не понадобится. Буду отнимать каждый ресурс и не выводить нулевую разность.
Такой вопрос. В нашей строке, которую мы дописываем к оригинальному сообщению можно прописывать Золото: столько-то; Кристаллов: столько-то. И вот под англ и рус язык нужно прописывать отдельно и проверять еще ресурсы на язык. Но можно сделать проще. В игре эти названия ресурсов уже есть и подтягиваються в игру из текстовика на нужном языке в зависмоти от языка текстовиков. Так вот вопрос: как получить вот эти общие названия ресурсов. Чтобы если плагин подключен под англ версию игры выводилось Gold:, а если под русскую Золото: ? PS: Просто, например, в структуре _CreatureInfo_ есть _char_* name_single и _char_* name_plural, а в структуре _Resources_ только _int_, то есть кол-во (значения) ресурсов. Названий нет. Можно ли их все же как-то получить или нужно будет в любом случае тянуть их из RESTYPES.TXT ? |
Re: Как создать плагин для HD модаЭто уже обсуждалось в теме не один раз, только, конечно, не для ресурса RESTYPES.TXT Определяем указатель по типу
и получаем строчку через GetString() (например, o_GENRLTXT_TXT->GetString(45)). Вот уже если это не работает, получаем строку по указателю. Тоже были примеры в теме:
Но так для смешанных текстовиков со столбцами обычно. Если текстовик - набор строк, то, скорее всего, будет работать GetString(). |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1