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

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

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

MaGoth

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

Вложения

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

alexel

Участник форума
Регистрация
28 Апр 2014
Сообщения
12
Благодарности
0
Баллы
165
Хм, подскажите по циклическому триггеру, как сделать нужное действие действовало именно на противнике ?
К примеру что-бы его силу уменьшало или здоровье. С ГГ я разобрался, ничего сложного, а вот с противниками что-то не клеится, через нанесение урона получается откровенно не то что мне нужно.
Может кто подскажет нужную функцию...
 

kraw


Модостроитель
Регистрация
11 Окт 2005
Сообщения
2.095
Благодарности
871
Баллы
295
Так же как и на ГГ. Только брать свойства не от self, а от соотвествующего персонажа.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.321
Благодарности
3.166
Баллы
525
Тут вопрос, видимо, не в том, как повлиять на непися с заранее известным идентификатором, а в том, как повлиять на ЛЮБОГО противника ГГ. Например, ГГ отравил своего противника (любого непися) ядовитой стрелой. У того должен постепенно снижаться уровень жизненной энергии. Как отследить идентификатор отравленного непися, чтобы в функции циклического триггера уменьшать его здоровье?

По-моему, здесь всё далеко не так просто. :confused:
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.321
Благодарности
3.166
Баллы
525
юзать нужно скрипт B_AssessDamage.

Эта функция (или другая, которая назначена обрабатывать восприятие PERC_ASSESSDAMAGE) будет вызвана только после получения повреждения. Вопрос же стоит в том, как это повреждение нанести. ;)
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.102
Благодарности
6.066
Баллы
1.565
Что первое на ум приходит:
циклический скрипт - смотрит кто агрится на ГГ, ему присваевается какой либо init и потом этому иниту делать снижение его хар-к. Давно в скриптах не лазил, функцию счас не напишу. Но другие скриптологи меня поймут.
 

Ilot

Участник форума
Регистрация
17 Сен 2010
Сообщения
798
Благодарности
297
Баллы
245
Эта функция (или другая, которая назначена обрабатывать восприятие PERC_ASSESSDAMAGE) будет вызвана только после получения повреждения. Вопрос же стоит в том, как это повреждение нанести.
А.... похоже я не так понял. Ссылку на непеся можно получить из Npc_Globals. Пример:
Код:
var C_Npc Ardan;
...
Ardan = Hlp_GetNpc(BAU_5000_Ardan);
 

alexel

Участник форума
Регистрация
28 Апр 2014
Сообщения
12
Благодарности
0
Баллы
165
А.... похоже я не так понял. Ссылку на непеся можно получить из Npc_Globals. Пример:
Код:
var C_Npc Ardan;
...
Ardan = Hlp_GetNpc(BAU_5000_Ardan);
Не получилось так, что довольно странно. Даже напрямую пытался подсунуть инстанс нпц, все равно не снимает и не прибавляет ничего) Через повреждение конечно можно сделать, но это совсем не то, некорректно работает.

Что первое на ум приходит:
циклический скрипт - смотрит кто агрится на ГГ, ему присваевается какой либо init и потом этому иниту делать снижение его хар-к. Давно в скриптах не лазил, функцию счас не напишу. Но другие скриптологи меня поймут.
С init'ами я не в теме, можно ссылочку плз)
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Такой вопрос. Допустим ГГ разговаривает с NPC_01. Ответ ГГ выбирается рандомно. В зависимости от выбранного рандомом ответа, должна поменяться гильдия и экипировка у NPC_02. Как подобное реализовать?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.321
Благодарности
3.166
Баллы
525
должна поменяться гильдия и экипировка у NPC_02

Если под экипировкой подразумевается доспех, то я бы порекомендовал использовать непися-дублёра, в инстанции которого будет прописан нужный доспех. То есть после разговора один непись из мира удаляется, другой появляется.
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Если под экипировкой подразумевается доспех, то я бы порекомендовал использовать непися-дублёра, в инстанции которого будет прописан нужный доспех. То есть после разговора один непись из мира удаляется, другой появляется.
Дело в том, что непись должен появиться первый раз - до этого его в игре не будет. Хотя я уже тоже думал про разные скрипты, как самый простой вариант.
 

Хелдар

Участник форума
Регистрация
3 Июл 2012
Сообщения
2.449
Благодарности
779
Баллы
375
Дело в том, что непись должен появиться первый раз - до этого его в игре не будет. Хотя я уже тоже думал про разные скрипты, как самый простой вариант.
Раз в первый раз, то тем более создавай двух разных и подставляй, как тебе надо - Дедушка абсолютно прав:)
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Раз в первый раз, то тем более создавай двух разных и подставляй, как тебе надо - Дедушка абсолютно прав:)
Так и сделал. Гильдия, как таковая, мне там не важна, а вот броня даже очень - непись будет косметического характера.
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Можно ли зациклить эффект?

Имеем

Wld_PlayEffect("FX_EARTHQUAKE",self,self,0,0,0,FALSE);

но эффект временный. Можно ли сделать, чтоб шло повторение?
 

redleha


Модостроитель
Регистрация
26 Фев 2008
Сообщения
735
Благодарности
665
Баллы
245
Можно ли зациклить эффект?

Имеем

Wld_PlayEffect("FX_EARTHQUAKE",self,self,0,0,0,FALSE);

но эффект временный. Можно ли сделать, чтоб шло повторение?

Можно, это всё делается в скриптах PFX.dat и VisualFX.dat . И просто долго, и бесконечно.
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Можно, это всё делается в скриптах PFX.dat и VisualFX.dat . И просто долго, и бесконечно.

Нашел только в VisualFX.dat, в файле VisualFxInst.d

instance FX_EARTHQUAKE(CFX_BASE_PROTO)
{
visname_s = "earthquake.eqk";
userstring[0] = "1000";
userstring[1] = "5";
userstring[2] = "5 5 5";
sfxid = "MFX_EarthQuake";
sfxisambient = 1;
};

Методом научного тыка играюсь, но пока ничего не выходит.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.321
Благодарности
3.166
Баллы
525
Можно ли сделать, чтоб шло повторение?

А циклический триггер не подходит? Кстати, эффект трясения камеры можно включить через сценарии анимаций, например, когда голем бежит. Не знаю подробности твоей задумки, но возможно, этот способ тоже может быть задействован.
 

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
А циклический триггер не подходит? Кстати, эффект трясения камеры можно включить через сценарии анимаций, например, когда голем бежит. Не знаю подробности твоей задумки, но возможно, этот способ тоже может быть задействован.
Циклический триггер не срабатывает. Запись в дневник идет, а трясти не трясет. Это первое, что я попробовал. Задумка в определенный момент устроить землетрясение, до тех пор, пока ГГ не покинет локацию.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Wld_PlayEffect("FX_EARTHQUAKE",self,self,0,0,0,FALSE); - так не сработает.
Wld_PlayEffect("FX_EARTHQUAKE",hero,hero,0,0,0,FALSE); - а вот так может быть.
Да, так сработал, правда 1 раз, но с этой проблемой думаю справлюсь


P.S. Решил задачу размещением еще одного триггера и в triggertarget сделал их зависимыми
 
Последнее редактирование модератором:
Сверху Снизу