• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в оценке работ на конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

Не стесняюсь спросить....

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Есть функция:
Hlp_GetNpc (int instanceName);
Она берет ссылку на нпс.
интересно как эта ссылка выглядит.

Я думаю о том, что бы создать массив ссылок, который будет содержать ссылки на всех NPC.
Для их массовой обработки.
Наверняка кто-то это уже делал и может поделиться кодом или идеей, как это сделать менее чем в 700 строк.)

Как сделать в 700 строк я знаю и сам, но как научил опыт.. если код пишется тяжело и долго, то либо ты чего-то не знаешь либо ты не шевелил извилинами.

Была канеш идея сделать функцию с самовызовом и пытаться по ид найти нпс, но вся роблема в том что ид идут от 100 до 93931 у меня, столько интераций...
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.449
Благодарности
779
Баллы
375
Гм, такая непонятная ерунда: телепортирую НПС на Вейпоинт, после чего у него новый распорядок дня. Однако пока с ним не поговоришь, он будет переться на предыдущий распорядок. Меняю командой B_StartOtherRoutine, пробовал и Npc_ExchangeRoutine - 0 эмоций.
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
GeneralLee,
Я думаю о том, что бы создать массив ссылок, который будет содержать ссылки на всех NPC.
Для их массовой обработки.
Наверняка кто-то это уже делал и может поделиться кодом или идеей, как это сделать менее чем в 700 строк.)
Со структурой файла Npc_Globals не разбирался? В нем ты найдешь ответы на все вопросы.
Есть функция:
Hlp_GetNpc (int instanceName);
Она берет ссылку на нпс.
интересно как эта ссылка выглядит.
self
Хелдар, в таких случаях лучше выкладывать скрипт что и как делаешь. Здесь телепатов и провидцев нет.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
1. Когда у NPC изменяется распорядок: до телепортирования или после?
2. Очистка очереди команд для ИИ (Npc_ClearAIQueue) помогает?
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.449
Благодарности
779
Баллы
375
Хелдар, в таких случаях лучше выкладывать скрипт что и как делаешь. Здесь телепатов и провидцев нет.
Проверю совет Dimus'а, не поможет - выложу целиком. И на будущее учту.
1. Когда у NPC изменяется распорядок: до телепортирования или после?
После, как в оригинальных скриптах.
Очистка очереди команд для ИИ (Npc_ClearAIQueue) помогает?
Проверяю.

Bump: Помогло, вопрос снят. Правда, в оригинале этой строки нет, и мне, несчастному, не дано понять, почему это работает там, но не работало у меня:D В любом случае огромное спасибо.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.337
Благодарности
3.181
Баллы
525
Гм, такая непонятная ерунда: телепортирую НПС на Вейпоинт, после чего у него новый распорядок дня. Однако пока с ним не поговоришь, он будет переться на предыдущий распорядок. Меняю командой B_StartOtherRoutine, пробовал и Npc_ExchangeRoutine - 0 эмоций.

Не знаю, как в Г2. В Г1 для перехода непися к новому распорядку сразу нужен вызов функции AI_ContinueRoutine. Если менять распорядок с помощью функции Npc_ExchangeRoutine, то непись перейдёт к новому распорядку только после исчезновения его из области действия ИИ при удалении от него. Или можно поговорить с ним, после разговора непись сразу переходит к новому распорядку.

Опять же, не знаю, как в Г2, но в Г1 имеется такой баг, что после телепортации не выполняются функции AI_XXX, прописанные после функции AI_Teleport.
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Со структурой файла Npc_Globals не разбирался? В нем ты найдешь ответы на все вопросы.
Знаком... там и приведен пример того что мне надо но это будет в 700 строк (если все это превратить в массив и дописать всех нпс).

Если менять распорядок с помощью функции Npc_ExchangeRoutine, то непись перейдёт к новому распорядку только после исчезновения его из области действия ИИ при удалении от него. Или можно поговорить с ним, после разговора непись сразу переходит к новому распорядку.
У меня переходит сразу же... (меняю в диалоге с другим нпс, а стоящие вокруг в области видимости меняют свой распорядок дня).
Исключая только - стойку стражника, но она ив состояние смерти то косячно переводит. Кстати как перевести в состояние смерти, но что бы стойка завершилась, той же функцией приведенной выше?.

у меня прописано:
Npc_ClearAIQueue(BAU_93013_GUARD01);
B_ClearPerceptions(BAU_93013_GUARD01);
B_KillNpc(BAU_93013_GUARD01);

но охранник не валяется а стоит буд-то на страже (он в области видимости когда происходит диалог, но за стеной)
 

unknown111

Участник форума
Регистрация
5 Фев 2013
Сообщения
1.072
Благодарности
1.581
Баллы
290
как можно и можно ли выяснить имя материала который используется для дождя? (не текстуры, а материала)
он же должен быть... =(
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.337
Благодарности
3.181
Баллы
525
у меня прописано:
Npc_ClearAIQueue(BAU_93013_GUARD01);
B_ClearPerceptions(BAU_93013_GUARD01);
B_KillNpc(BAU_93013_GUARD01);

но охранник не валяется а стоит буд-то на страже (он в области видимости когда происходит диалог, но за стеной)

А полоска здоровья у него обнуляется? Если да, попробуй заставить его принудительно перейти в горизонтальное состояние через проигрывание анимации

AI_PlayAni (c_npc n0, string s0); - для НПС n0 проигрывается файл анимации s0 (имя файла s0 обязательно пишется заглавными буквами).

Название фазы анимации не помню. Можешь посмотреть сам: в режиме Марвина нажми G и дай себя убить. Нужна переходная фаза анимации типа T_XXX_2_XXX.

как можно и можно ли выяснить имя материала который используется для дождя? (не текстуры, а материала)
он же должен быть... =(

Если не путаю, дождь реализован через эффект частиц. Если так, то материала дождя, как такового, не существует.
 

Shevchenko

Участник форума
Регистрация
26 Ноя 2010
Сообщения
391
Благодарности
0
Баллы
180
Пытаюсь внедрить с игру новую броню, посредством изменения скрипта файла ASC и скрипта самого доспеха магов огня. В итоге в игре появляется не затекстуренная роба послушника, но с прописанными в скрипте мной статистиками. Надеюсь на вашу помощь, дорогие софорумчане *flowers*
 

Yelawolf

★★★★★★★★★
Супермодератор
Регистрация
27 Дек 2011
Сообщения
1.415
Благодарности
471
Баллы
355
Shevchenko, есть отличный урок от ГотикМастера как внедрить правильно новую текстуру на старый меш.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.802
Баллы
995
Shevchenko,
В итоге в игре появляется не затекстуренная роба послушника, но с прописанными в скрипте мной статистиками.
1. Декомпилировать требуемый файл брони *.MDM Сурсером в *.ASC-шки.
2. Переконвертить текстурку(и) прописанную в этом асцшнике, в формат *.TGA
3. Перерисовать текстурку в Шопе, Гимпе и прочих граф-редах..

4. Далее, кидаем исходники файлов в каталоги игры:
*.ASC файл модели брони:
..\Gothic II\_work\data\Anims

*.TGA файл текстурки брони:
..\Gothic II\_work\data\Textures

5. И всех папок _compiled этих каталогов, удяляем скомпилипрованные игрой ресурсы имеющие отношение к вашей броне.

6. В скриптах прописываем новую инстанцию модели брони используя свой асцшник.
Герою в рюкзак суем инстанцию брони для его быстрого тестирования.
Сохраняем все и компилируем датник и оушник.
7. удаляем все дампы (*.DMP-файлы) в каталоге:
..\Gothic II\

Запускаем мод/игру как "Новая игра", тестируем...

Зы, Важно: для всех работ с этими ресурсами требуется полная установка ГМДК с распаковкой всех файлов.
 

unknown111

Участник форума
Регистрация
5 Фев 2013
Сообщения
1.072
Благодарности
1.581
Баллы
290
Если не путаю, дождь реализован через эффект частиц. Если так, то материала дождя, как такового, не существует.

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

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.337
Благодарности
3.181
Баллы
525
а можно чуть по подробнее о этой системе частиц ;)

Здесь есть хороший тутор по системе частиц. Но распотрошив скрипты Г1, я пока не нашёл там эффекта дождя. Куча всякой всячины есть, даже падающий снег, а дождь где-то спрятался. Может, он реализован на уровне движка. *???*
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Добавил в мод 3 объекта сразу.
У каждого объекта текстура в формате .tga
все уложил в правильные папки.

Планировал скомпилировать игрой tex файлы текстур т.к. ГоМан идет в отказ и не хочет преобразовывать текстуры не кратные... ну вы поняли.

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

Выхожу из игры, в папке _Compiled как и расчитывал получил tex файлы.
Добавил в мод, запускаю мод.

Все эти шлемы используют текстуру второго шлема))
Подумал глюк.. перезапустил игру. Снова тоже самое.

Удалил скомпилированные tex файлы. Решив, что надо обрабатывать по 1 шлему, выходить, добавлять файл потом второй и так по очереди а не разом.

После удаления tex файлов (dmp файлы тоже удалил на всякий) На шлем вообще не накладывается текстура, хотя лежит она где надо и называется как надо.
Перезапустил пару раз) Даже компьютер перезагрузил. Текстур Готика теперь вообще не видит в упор.

Что за магия ?))
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
GeneralLee, обычная для новичков причина (сам сталкивался). У этих вобов начначен один и тот же материал (имя) в 3ДМаксе. И наверняка, что типа Карта1.
Решение явно следует из вышесказанного. Дать уникальные имена. Чтобы не запутаться, обычно дают такие же, как название модели.
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
я тоже так подумал, но текстуры там прописаны верно.
Проверял блокнотом.

И не понятно почему теперь текстуры не отображаются вообще (я про эти шлемы)

Не сразу понял о чем ты.. теперь допер)
Но это не объясняет почему нет текстур сейчас..

В 3dMax вообще не получается открыть эти шлемы=\
Другие объекты и каски открываются.. но не они.
 

unknown111

Участник форума
Регистрация
5 Фев 2013
Сообщения
1.072
Благодарности
1.581
Баллы
290
Перезапустил пару раз) Даже компьютер перезагрузил. Текстур Готика теперь вообще не видит в упор.

Что за магия ?))

никакой магии, РэдЛёха все обьяснил... одна и таже текстура может накладываться на разные предметы только если у них материал назван одинаково... ну и если нехватка памяти или текстуры высокого разрешения бывают сбои (1 текстура на месте другой, только при длительной игре)
оттекстурил кучу предметов, было все нормально

Планировал скомпилировать игрой tex файлы текстур т.к. ГоМан идет в отказ и не хочет преобразовывать текстуры не кратные... ну вы поняли.

Я не видел ни одной не кратной текстуры в Готике... с чего ты взял что она их скомпилит? (хотя не пробовал)
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.048
Благодарности
1.163
Баллы
340
я тоже так подумал, но текстуры там прописаны верно.
Проверял блокнотом.

И не понятно почему теперь текстуры не отображаются вообще (я про эти шлемы)

Не сразу понял о чем ты.. теперь допер)
Но это не объясняет почему нет текстур сейчас..

В 3dMax вообще не получается открыть эти шлемы=\
Другие объекты и каски открываются.. но не они.

Открой макс и посмотри имя материала внимательно. Узришь, что собственно имен там два. И один из них стандартный, скорее всего первый. На второй назначена текстура.
Первый материал является общим именем. Он вводится в верхней строке. Но стоит нажать на кнопку мапс, чтобы назначить текстуру, имя материала сменится на Map #4 например. Так вот, если имя материала оставить таким, то игра будет путать материалы, потому что они будут иметь одинаковое имя maps, то есть для движка они будут идентичнымии.
Чтобы это исправить, нужно дважды прописать имя материала и применить его к объекту.
 

GeneralLee

Участник форума
Регистрация
28 Мар 2013
Сообщения
110
Благодарности
0
Баллы
180
Да я понял что он имел в виду но суть проблемы была в другом.
Я не мог понять почему текстура не накладывалась вообще.

Разобрался - надо было удалить не только полученные tex файлы но и mrm получе нные из 3ds файлов. Поэтому текстуры не компилились заново.

За подсказку по решению с наложением РедЛехе конечно спс, но боюсь без возможности открыть объект в 3д максе (пишет что не верный формат для импорта)... это не совет а гвоздь в могилу(

Открой макс и посмотри имя материала внимательно.
В 3dMax вообще не получается открыть эти шлемы=\
Другие объекты и каски открываются.. но не они.
 
Сверху Снизу