AERIE Team
http://forums.aerie.ru/

JoinParty в IWD2
http://forums.aerie.ru/viewtopic.php?f=37&t=3088
Страница 1 из 1

Автор:  DreamZzz [ 14 май 2009, 12:43 ]
Заголовок сообщения:  JoinParty в IWD2

У кого-нибудь получалось присоединить npc в iwd2? По команде JoinParty() присоединяется, но он остается npc. Т.е. он не реагирует на команды, посылаемые Player2. При попытке сохранения игры с таким npc в пати происходит вылет. Возможно через ChangeStat надо какой-то флаг поменять... Должно же быть какое-то решение.

Автор:  Ardanis [ 14 май 2009, 14:39 ]
Заголовок сообщения:  Re: JoinParty в IWD2

Возможно, что в ИВД JoinParty() не изменяет значение EnemyAlly реакции (0x384). Если дело в этом, то добавление ChangeEnemyAlly(O:Object*,I:Value*EA) должно выправить дело. Хотя наверняка не знаю.

Автор:  DreamZzz [ 14 май 2009, 14:51 ]
Заголовок сообщения:  Re: JoinParty в IWD2

Пробовал и перед JoinParty выставлять EnemyAlly в значение PC, пробовал после. Пробовал конвертнуть CHR в CRE, создать в игре и заджойнить в пати, не помогает. Теоретически где-то что-то должно быть, что связывает Player2 с конкретным персонажем, но найти пока не получается.

Автор:  Глориана [ 16 май 2009, 23:00 ]
Заголовок сообщения:  Re: JoinParty в IWD2

Я тоже пробовала. Мне кажется, в ИВД это жестко прошито. И ничего с этим не сделаешь.
Но,
Хотя бы посмотрите посты Kulyok. Для работы диалогов нужно создать новую партию. То есть реальное работоспособное присоединение НПСей практически не возможно. Почему написала практически? Потому-что на каждый лом есть своя кувалда. Кто его знает, мож кто и сломает))

Автор:  DreamZzz [ 16 май 2009, 23:18 ]
Заголовок сообщения:  Re: JoinParty в IWD2

В общем, выяснил следующее. Если созданному персонажу сделать JoinParty(), то у него испорчена панель быстрого доступа. Если же добавить этого же персонажа в пати из файла по кнопочке "C", потом сделать ему LeaveParty() и после JoinParty(), то все нормально, панель быстрого доступа есть, игра сохраняется. При этом персонажи по структуре CRE 2.2 абсолютно одинаковые, сравнивал побайтно. Скорее всего момент именно в панели быстрого доступа. Единственный теоретический способ повлиять на эту панель, который я нашел, это эффект (опкод) номер 144:Disable Button. Однако воспользоваться им не получилось. Создал спелл, добавил в него эффекты отключающие все кнопки, добавил в LISTINNT.2DA. Попробовал применить на персонажа, ноль реакции. Может кто поопытнее попробует этот эффект применить? Или другой способ есть повлиять на панель быстрого доступа?
Цитата:
Для работы диалогов нужно создать новую партию.

Ничего подобного. В iwg2 диалоги персонажей работают. И между собой общаются прекрасно и Имоэн после первого отдыха разговор начинает.

Автор:  Ardanis [ 17 май 2009, 01:42 ]
Заголовок сообщения:  Re: JoinParty в IWD2

DreamZzz писал(а):
Если же добавить этого же персонажа в пати из файла по кнопочке "C", потом сделать ему LeaveParty() и после JoinParty(), то все нормально, панель быстрого доступа есть, игра сохраняется. При этом персонажи по структуре CRE 2.2 абсолютно одинаковые, сравнивал побайтно.
Т.е. файл самого перса от C->LeaveParty()->JoinParty() не изменился, так?
Остается сейв .gam, в нем среди прочего хранится инфа о партийцах. Возможно, что для нормальной работы там должно быть упоминание о персе, соответственно если ее потереть, то придется заново добавлять через меню, и наоборот. Сам проверить эту мысль не могу, т.к. ивд2 под рукой нет.

Автор:  DreamZzz [ 17 май 2009, 02:12 ]
Заголовок сообщения:  Re: JoinParty в IWD2

В том то и дело, что не получается проверить, в чем конкретно дело, так как игра при сохранении такого чара вылетает по assert, не успевает даже в temp сохранить. Хорошо бы это дело дебаггером посмотреть, на что он по assert-у ругается.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/