Гипат.org

Флейм - Как сделать юниту больше 32700 с чем-то жизней? И Усиление..

читер30 - 20 апреля 2013, 13:24
Как сделать юниту больше 32700 с чем-то жизней?
Как сделать так, чтобы невозможно было наложить Увелечение силы на врага, без рун, вообще, сам закл???
читер30 - 01 мая 2013, 14:42
Плиз подскажите, люди!
Valter - 01 мая 2013, 18:08
Ох.. Пост твой видел, но проблема в том, что подсказать не могу ни чего :(
Первый вопрос понятен, но что с ним делать... Саму проблему знаю: Больше EXP - больше HP, до тех пор пока в двоичной системе код отвечающий за здоровье не достигнет over 32000 и не переполнится после чего сбросится на отрицательное число и впоследствии ноль.
( Хм. Двоичный код. Так.. 2 в степени... 2 в 15 степени = 32 768 :cool: )

Вопрос как с этим бороться. Сейчас полистал поиск форума и погуглил эту тему, так как присутствуют смутные воспоминания, что где-то это обсуждалось, решалось и жаже программно ломалось. Не нашел. Впрочем возможно этого никогда и не было, и все это сплошные мои наваждения.



Второй вопрос я не очень понял. Предположу, что требуется запретить накладывать заклинание как вообще, а точнее чтобы оно не производило должного эффекта. ( Возможно опять чтобы под усилкой монстр с over 32000 HP не стал убиваемым с одного тычка)

Тут или скриптом наложить на игрока постоянно обновляющееся слабоумие (что-бы не колдовал вообще, такая безмагическая зона).
Или написать скрипт, следящий не наложено ли усиление и при положительном условии скриптом кастануть на него ослабление (контр заклинание. ага).
Или ломать сам код программы и отключать Усиление как заклинание, что бы оно больше не работало( но нужен скорее именно частный случай на конкретного врага, так что и это не подойдет)


Столько написал, а всё в пустую. Ответа тебе не дал. Извиняй.

PS: Да и писал это больше из-за того чтобы сказать что тебя не игнорят, тут еще кто-то есть. Просто конкретно тут помочь не могут ;)
читер30 - 01 мая 2013, 18:24
Ну спасиб, значит наверно нельзя =)...
Kalessin - 01 мая 2013, 23:33
2Valter
Цитата:
Вопрос как с этим бороться. Сейчас полистал поиск форума и погуглил эту тему, так как присутствуют смутные воспоминания, что где-то это обсуждалось, решалось и жаже программно ломалось. Не нашел. Впрочем возможно этого никогда и не было, и все это сплошные мои наваждения.

Это небезынтересный вопрос. Хотелось бы по возможности увидеть ссылку, если это действительно обсуждалось.
И другой, не менее интересный вопрос: каким образом в сингле, элементалю, охраняющему "черный ход" в мертвый город, сделаны 32000 hp, и невосприимчивость к фейрверку. По датабазе там дожен быть обычный элементаль. Моб? Ехешник?
читер30 - 02 мая 2013, 13:41
не знаю как цитату сделать =)

"""И другой, не менее интересный вопрос: каким образом в сингле, элементалю, охраняющему "черный ход" в мертвый город, сделаны 32000 hp, и невосприимчивость к фейрверку. По датабазе там дожен быть обычный элементаль. Моб? Ехешник?"""

Точно!!! Моб!!! Надо попробовать!!! Спасибо =)!!!
Valter - 02 мая 2013, 14:55
Попробуй. Вчера сам хотел проверить но выяснилось, что Без модов у меня вылетает с ошибкой (надо бекапные файлы ресурсов вернуть, с начала года не запускал) и распакованной датабазы сингла нету, а время 2 часа ночи.
Имя его ElementalEarthF8 попробуй сравнить в игре и датабазе его характеристики и аналогичного элементаля из пещеры.
Интересно а поля Senses Sight/Infra/Senselife и т.д. и Detections Sight/Infra/Senselife и т.д. (отвечают за то как монстр нас, или мы монстра обнаружаем: зрением, слухом, ближайшим колдовством...) у него какие стоят? Может у него поле зрения 0 и он тупо не видит фейерверк?

В самом скрипте элементалю особых свойств не придается. Можно еще изменить в мобе превратив его в скажем Elemental Lava F12 ( да хоть кролика) и посмотреть какие статы у него останутся в игре: мега стена с over 32000 hp или с данными взятыми из датабазы.

А там уже делать вывод где его ультра способности прописаны: в Mob-файле или Exeшнике игры.
читер30 - 02 мая 2013, 15:31
Valter, А "Exeшник" это что, и как его редактировать :)?
читер30 - 02 мая 2013, 15:41
Даа!!! Он в мобе! Я через Mob Reversing Tool зырил, у того элементаля долбаного 32000 манны и жизней! Но зрение кажись 8.5 у него... Тогда наверно у него номер игрока такой поставлен, который не реагирует на фейрверк
Valter - 02 мая 2013, 15:46
Файл game.exe Сама игра. В нем в 16-речноом коде зашиты многие параметры (к примеру, что магазин constr_5, который у великого мага обнуляет цену на продажу и покупку) Там-же прописана логика заклинаний, искусственного интеллекта и т.д. (Те-же отключенные заклинания превращения, зачаровывания)
Редактировать можно в бинарном Hex-редакторе, но увы не простым смертным. Кто-то редактируя его и dll к аддону в свое время включил слабоумие в сетевой. Я сам методом тыка как-то менял путь на внутреннею иконку(ярлыка) и путь в реестре игры.
Но если не понимаешь, что 0x12058E означает и на что его надо поменять суваться туда без-толку.
Kalessin - 03 мая 2013, 01:50
В датабазе элементаль с обычными параметрами, и вообще для всех элементалей земли используется один прототип - ElementalEarthF8. Последовательное изменение прототипа, ID и Script variable name ничего не дало, за исключением того, что у элементаля изменилась текстура и видимое имя (менял его на элементаля лавы) Видимые параметры юнита остались прежними. Для чистоты эксперимента зак заходил в мертвый город с одного и того же сохранения, сделанного до первого посещения мертвого города, т.е. каждое посещение зоны было первым. Изучение моба зоны в mrt дало интересный результат. В ключе ID_UNIT_STATS обнаружились те самые 32000 hp, а ключ ID_UNIT_NEED_IMPORT был разрешен (1). После отключения импорта, элементаль стал самым обычным, со стандартными параметрами из базы данных. Так что вывод - параметры юнита берутся из моба. Кроме здоровья там есть немало других параметров, к сожалению неясно каких именно... в mrt они не подписаны. К еще большему сожалению статы юнита нельзя редактировать, а другие редакторы вообще не показывают этот ключ. А как бы это могло разнообразить игру...
Остался неразрешенным только вопрос с фейрверком. Зрение у элементаля стандартное - 8,5, да и остальные параметры не выбиваются из рамок. Откуда не берется информация - моб или база - все равно стоит как вкопанный. Может быть, в мобе есть еще какая-либо независимая настройка, определяющая такое поведение?
Valter - 03 мая 2013, 21:02
Вот и мой черед написать отчет об изучении элементаля. Как известно ключ ID_UNIT_NEED_IMPORT на реакцию к фейерверку отношение не имеет, и я поставил подопытного и точного его клона поближе к входу на зону и стал менять параметры и анализировать их поведение.
Выяснилось:
• "Наш" элементаль атакует только когда нападают непосредственно на него.
• Если на его глазах убить его контрольного клона(номер игрока совпадает), исследуемый останется равнодушен.
• При номере игрока изначально враждебном "наш" элементаль игнорирует все, в то время как клон сразу нападает.
• Если убежать от спровоцированного элементаля (он нас атакует), а затем вернуться на карту он снова будет к нам равнодушен.

И наконец я дошел до поля ID_NID (ID номер юнита) и изменил его значение. Самое интересное что такая гипотеза у меня была одна из первых а до проверки дошел в самую последнюю очередь.
Элементаль стал вести себя в соответствии с обычной логикой игры. И фейерверк на него теперь тоже работает. На радостях назначил его ID (а именно = 1536) троллю в ущелье. Тролль как и следовало ожидать ушел в нирвану.

Потом поругал себя за то, что пропустил такой важный момент в скрипте моб-файла. Все оказалось до банальности просто.

Код:
Script VTriger#0#159
(
  if
  (
  )
  then
  (
    KillScript(  )
    UMClear( EarthEBlock )
    UMRevenge( EarthEBlock )
  )
)

UMClear( Unit : object )
Команда: UMClear - удаляет все директивы самостоятельного поведения юнита: Unit.

Предварительно определив имя переменной по ID объекта
Код:
EarthEBlock = GetObjectByID( "1536" )


Все. Теперь кому надо можно легко создавать таких "отрешенных" монстров игнорирующих фейерверк.

Итак, коллеги. Заседание можно объявить закрытым. Все вопросы нашли свое логическое разрешение. Всем спасибо. Всем до свидания.




PS: все, кроме тех, что поднимались в заголовке темы. Видно придется сойтись на мнении, что это невозможно. Программно игра этого не позволяет.
Kalessin - 04 мая 2013, 01:51
Хех, разгадана еще одна тайна пз :) И правда, сначала надо было заглянуть в скрипт. Таким образом заскриптованный юнит действительно не реагирует на фейрверк. Но и не атакует врагов в пределах видимости. Для создания атакующих юнитов (например охранников чего-либо) тогда нужно заменить в скрипте команду UMRevenge на UMAggression

Код:
Script VTriger#0#159
(
  if
  (
  )
  then
  (
    KillScript(  )
    UMClear( EarthEBlock )
    UMAggression( EarthEBlock )
  )
)


Заскриптованный так, элементаль не реагирует на фейрверк и атакует врагов в поле зрения.
Но, наверное, эта информация уже никому не пригодится...
читер30 - 04 мая 2013, 14:22
Респект вам, челы =)! Я бы сам там копался 1-2 месяца =)!
Часовой пояс: GMT +4:00
Форумы Поселка созданы на базе phpBB2 2.0.4 © phpBB Group