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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Вопросы по скриптингу

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 573
Последнее редактирование модератором:

CERBERBOSS

Участник форума
Регистрация
3 Дек 2009
Сообщения
1.200
Благодарности
583
Баллы
280
clumb, опробовал твой скрипт в г1 (чисто из спортивного интереса)
условности испытания:
1. сменил визуал нпс, броню, оружие, пакет стали - ибо не портировал их из г2a;
2. убрал записи в журнал и условие if (Pir1 == LOG_RUNNING) - квестовой привязки у меня нет, кстати, на запись в журнал сурсер в одном месте матюкнулся;
3. нпс вызвал марвином после разговора с Диего.
Все нормально работает. Вот скрипты.
 

Вложения

  • Левассер.zip
    2,5 KB · Просмотры: 81

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
Я решил эту проблему, оказалось что скрипт не был добавлен в решение (хотя это странно, я ведь его перед этим добавлял).
 

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Где можно прочитать, как создать скриптовую модификацию, не заменяя оригинальные файлы Gothic.DAT и OU.bin. Все уроки перечитал, везде одно - замените оригинальные файлы. Разве нельзя как-нибудь через mod?
 

clumb

Участник форума
Регистрация
21 Июн 2010
Сообщения
302
Благодарности
13
Баллы
180
neromont,
В принципе можно: для этого нужно создать папку WORK в ней папку DATA в ней SCRIPTS в ней папку _COMPILED и папку CONTENT. В папку CONTENT надо создать папку CUTSCENE. А соурсере путь в Готике (1 или 2, какая нужна) прописать путь к твоей папке ( в которой лежит WORK). Пример в архиве.
 

Вложения

  • скриншот1.zip
    75,8 KB · Просмотры: 88

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
neromont,
  1. Компилируешь свой готовый проект, скомпилированные файлы будут находится в каталоге проектов программы Сурсер (если не выставлял ранее перенаправление на их создание в каталогах игры, с заменой файлов оригинала).
  2. Создаешь новый каталог на винте "new" например, в нем создаешь структуру папок сообразную каталогу Scripts оригинала игры, его содержимое:
    ..\_work\data\Scripts\_compiled (сюда кидаем GOTHIC.DAT, впрочем как и все остальные .DAT-файлы проекта если они есть)
    ..\_work\data\Scripts\Content\Cutscene (сюда кидаем оушник OU.BIN)
  3. Читаем тутор по работе с GothicVDFS, создание мод файла:
    https://worldofplayers.ru/node/559
  4. Пишем инишку к готовому моду, она должна быть одноименной MOD-файлу.
  5. Кидаем инишку в каталог:
    ..\Gothic II\System
    а мод файл в каталог:
    ..\Gothic II\Data\modvdf
  6. Все, тестируем в игре как мод.


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

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Можно тупо проверками через Wld_IsTime
Это как?

Возможно, кому-нибудь пригодится написанная мной функция, которая вычисляет время с точностью до минуты. Функция протестирована, работает быстро (600 вызовов функции в секунду не дали никаких намеков на падение производительности).
 

Вложения

  • B_GetTime.d.txt
    8,7 KB · Просмотры: 177

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Myxomop,
Циклами, конечно, проще, но (как мне кажется) менее удобно.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
449
Благодарности
266
Баллы
230
HeDeDe, очень много проверок, зато производительность скорей всего выше чем у этой реализации:
 

Вложения

  • Time.txt
    3,2 KB · Просмотры: 165

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
HeDeDe,
Циклами, конечно, проще, но (как мне кажется) менее удобно.
одним циклическим триггером ты убиваешь кучу зайцев в скриптах и можешь в любой момент играться с вызовом функций (любых!) в игре. Контролировать время, состояние, расстояние и т.д.
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
Re: Не стесняюсь спросить....

Столкнулся с такой проблемой: непись выполняет распорядок не на том вайпонте который прописан в скриптах, а на соседнем (курит стоя).
Знает кто что за касяк?
Еще также не получается сделать чтобы непись выполнял распорядок - "ремонт хижины". Смотрел пираньевские зены там вообще не понятно на FP или WP выполняется распорядок. И кстати может кто знает где можно посмотреть список всех распорядков и на каких точках они выполняются.
Да и еще вопрос. Вставил непися но он появляется не в той точке как прописано в Startup'е, а в той где выполяется распорядок примерно с 13 до 16. Изначально время 8.
Помогите бедному человеку всю ночь просидел.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Re: Не стесняюсь спросить....

Столкнулся с такой проблемой: непись выполняет распорядок не на том вайпонте который прописан в скриптах, а на соседнем (курит стоя).
Знает кто что за касяк?
Еще также не получается сделать чтобы непись выполнял распорядок - "ремонт хижины". Смотрел пираньевские зены там вообще не понятно на FP или WP выполняется распорядок. И кстати может кто знает где можно посмотреть список всех распорядков и на каких точках они выполняются.
Да и еще вопрос. Вставил непися но он появляется не в той точке как прописано в Startup'е, а в той где выполяется распорядок примерно с 13 до 16. Изначально время 8.
Помогите бедному человеку всю ночь просидел.
Скрипты в студию
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
1) Распорядок:
FUNC VOID Rtn_Start_5418()
{
TA_Practice_Sword (07,30,21,15,"GB_BERGHOF_23");
TA_Smoke_Joint (21,15,00,00,"GB_BERGUNTER_63");
TA_Sit_Chair (00,00,07,30,"GB_OBERHOF_46");
};

Код из Startup'а
Wld_InsertNpc (MIL_5418_Kirger, "GB_BERGHOF_23");

Рядом с WP GB_BERGUNTER_63 находится WP GB_BERGUNTER_61.

2) Распорядок:
FUNC VOID Rtn_Start_5258()
{
TA_Repair_Hut (04,30,08,00,"MT_SW_JAGDLAGER_70");
TA_Stand_Eating (08,00,12,00,"MT_SW_JAGDLAGER_80");
TA_Repair_Hut (12,00,16,00,"MT_SW_JAGDLAGER_70");
TA_Stand_Eating (16,00,20,00,"MT_SW_JAGDLAGER_80");
TA_Repair_Hut (20,00,01,30,"MT_SW_JAGDLAGER_70");
TA_Sleep (01,30,04,30,"MT_SW_JAGDLAGER_84");
};

3)Распорядок:
FUNC VOID Rtn_Start_5405 ()
{
TA_Stand_ArmsCrossed (08,00,13,00,"GB_BERGUNTER_02");
TA_Smalltalk (13,00,16,00,"GB_OBERHOF_01");
TA_Stand_ArmsCrossed (16,00,19,00,"GB_BERGUNTER_02");
TA_Sit_Throne (19,00,23,00,"GB_BERGUNTER_29");
TA_Sleep (23,00,08,00,"GB_BERGUNTER_36");
};

Код из Startup'а
Wld_InsertNpc (MIL_5405_Uolles,"GB_BERGUNTER_02");

Непись вставляется на WP GB_OBERHOF_01.


Примерно так. Надеюсь все понятно.
 

xterm

Участник форума
Регистрация
25 Июн 2009
Сообщения
5.178
Благодарности
16
Баллы
400
daily_routine =
не увидел.
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
Уважаемый xtrem читайте внимательнее посты: неписи выполняют заявленный распорядок. Проблема в другом.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
1
непись выполняет распорядок не на том вайпонте который прописан в скриптах, а на соседнем (курит стоя)
ответ
Сделай ему FreePoint с именем STAND и непись будет стоять на этом FP
2
не получается сделать чтобы непись выполнял распорядок - "ремонт хижины"
овтет
в TA_Repair_Hut прописано следующее: AI_UseMob(self,"REPAIR",1);
попробуй возле хижины поставить zCVob-oCMOB-oCMobinter со следующими параметрами(
picture.php
) и чтоб синяя часть была повернута в сторону хижины.
3
он появляется не в той точке как прописано в Startup'е, а в той где выполяется распорядок примерно с 13 до 16. Изначально время 8.
ответ
возле WP GB_OBERHOF_01 есть FP STAND ? Если есть то перенеси его к WP GB_BERGUNTER_02 и он будет караулить там где нада. а возле WP GB_OBERHOF_01 поставь FP SMALLTALK
ну вроде все должно работать
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
1) Помогло, хотя он похоже не фри пойнте стоит, а на вай понте . Эт не важно главное все в порядке.
2)Я так и не понял что за параметры и что за синяя часть. Но спасибо за помощь обшарил пираньевский зен и нашел нужный моб. Он просто не визуализируется поэтому я его не увидел раньше.
3) С этим сложнее ведь у меня так и сделано. Так что осталась только этот косяк... Может есть другие мысли.*???*
 

Вложения

  • exemple_01.JPG
    exemple_01.JPG
    199,9 KB · Просмотры: 230
  • exemple_02.JPG
    exemple_02.JPG
    196,8 KB · Просмотры: 221
  • Skrin_12.JPG
    Skrin_12.JPG
    145,5 KB · Просмотры: 219

Bjorn++

Участник форума
Регистрация
28 Июн 2011
Сообщения
1.063
Благодарности
46
Баллы
235
Привет всем, у меня следующий вопрос... Как сделать что бы определенный нпс дойдя до нужного вейпойта исчез? То есть например идет нпс и тут дойдя до определенного мета (вейпойта) исчезает. Пожалуйста подскажите*flowers*
 

Midlight

Участник форума
Регистрация
8 Июн 2011
Сообщения
155
Благодарности
1
Баллы
185
Толик95, попробуй в спейсере разместить oCTriggerScript, отредактируй зону, в скриптах пропиши исчезновение НПСа (при входе в зону, он телепортнется).
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625
Ilot
3)
к WP GB_BERGUNTER_02 поставь за место FP FP_STAND_GVARDBERG_02 просто FP STAND
также во втором скрине...
 
Сверху Снизу