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

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

    Ссылка на конкурсную тему - тык

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

MaGoth

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

Вложения

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

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
этот даблпостинг не всчет.
А по поводу барьера, ты сам сказал что он работает как триггер, т.е. откликается на OnTuch. Стандартными средствами ни как, может икарусы че могут - не знаю.
в интро PB каким то образом добились корректной работы барьера, странно что они его переделали....
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565
в интро PB каким то образом добились корректной работы барьера, странно что они его переделали....
если я правильно понял, и ты про видео, которое в начале игры, дык это все делалось в 3DSMax'е, и там уж точно не было ни какого барьера, и тем более движковых функций игры.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
если я правильно понял, и ты про видео, которое в начале игры, дык это все делалось в 3DSMax'е, и там уж точно не было ни какого барьера, и тем более движковых функций игры.
Хм, мне почему то казалось, что все действия в интро произведены через скрипт сцены. В ресурсах игры есть готовая модель подъемника которая идеально работает и скрипт сцена с отправлением (вот только анимации содержащиеся в ней были вырезаны T_FallDnCliff и T_Gasp)....
 

HeDeDe

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

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
Столкнулся с проблемой, все сделал как описано здесь, в Startup прописал:
func void B_CYCLE1_FUNCTION()
{
if(hero.attribute[ATR_HITPOINTS_MAX] >= 0)
{
Wld_SendTrigger("CYCLE1");
return;
};
B_GetTime
Wld_SendTrigger("CYCLE1");
};
Но почему то не работает, хотя сама функция B_GetTime работает корректно и прописана B_Function. В триггере вроде все правильно прописано.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
B_GetTime а дальше?
B_GetTime(); прописано так, но дело не в этом....вызов функции почему то игнорируется....
Может в опциях триггера стоит что то отключить, или переставить Return?
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
Атрибут максимального хп никак не может быть равным 0, поэтому я и поставил больше или равно. И после B_GetTime(); идет функция Wld_SendTrigger, сама функция B_GetTime прописана в другом файле а именно , где находятся другие функции такие как B_Printguildcondition и тому подобные
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565
Атрибут максимального хп никак не может быть равным 0, поэтому я и поставил больше или равно. И после B_GetTime(); идет функция Wld_SendTrigger, сама функция B_GetTime прописана в другом файле а именно , где находятся другие функции такие как B_Printguildcondition и тому подобные
Ладно, когла ты прописал
B_GetTime
Wld_SendTrigger("CYCLE1");
};
у тебя сурсер не заругался?
Просто по всем законам логики, физики и программирования, это грубая ошибка. Должно быть B_GetTime();
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
Ладно, когла ты прописал

у тебя сурсер не заругался?
Просто по всем законам логики, физики и программирования, это грубая ошибка. Должно быть B_GetTime();
У меня так и написано, я просто в первом своем посте недописал ();
Понять не могу почему триггер не работает в инитах миров функция также прописана. Думаю, что если бы скрины были обновлены, то сам бы разобрался...
 
Последнее редактирование:

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565
Ок, а если другими способами вызвать триггер. Не помню через марвин можно или нет, а вот через диалог, просто вызвать триггер. Будет ли он обрабатывать что ему положено?
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Атрибут максимального хп никак не может быть равным 0, поэтому я и поставил больше или равно.
Цитирую еще раз себя:
if(hero.attribute[ATR_HITPOINTS_MAX] == 0) //Проверка, находится ли ГГ в мире, иначе сразу вызов триггера без продолжения выполнения функции.
{
Wld_SendTrigger("CYCLE_TRIGGER"); //Вызов триггера для зацикливания всей функции.
return; //Выход из функции.
};

Ну и поиграем в радугу :D
Может, если ГГ еще не загружен в игру, триггер работает в холостую и зацикливается на первом ретурне. В твоем случае он ВСЕГДА выходит на первом ретурне, т.к. условие выхода соблюдается даже если ГГ в игре.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370
Ок, а если другими способами вызвать триггер. Не помню через марвин можно или нет, а вот через диалог, вызвать триггер. Будет ли он обрабатывать что ему положено?
Проверю. Если он не заработает, то видимо придется в зене править параметры, хотя я старался внимательно делать. Там все нужные параметры поставлены на True
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565
Че-то странно, вроде прибирался в разделе...
Ладно, сейчас этот вопрос решим, перенесу посты в вопросы по скриптам, а темку закину в уроки.
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.170
Благодарности
6.150
Баллы
1.565

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.226
Благодарности
1.907
Баллы
370

dbash

Участник форума
Регистрация
10 Янв 2010
Сообщения
223
Благодарности
89
Баллы
190
Доброго времени суток. Встал вопрос: есть ли скрипт для расчета критического урона в бою? Или это только в движке? Вообще формула повреждения правке поддается?
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.235
Благодарности
2.575
Баллы
455
Доброго времени суток. Встал вопрос: есть ли скрипт для расчета критического урона в бою? Или это только в движке? Вообще формула повреждения правке поддается?
Вероятность критического урона задается уровнем умения оружия в скриптах, а остальное в движке, но с помощью расширителя скриптов Ikarus можно внести свои правки. См. здесь.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Можно ли запретить NPC самим начинать диалог с ГГ, находящимся в облике овцы? Сейчас слишком многие персонажи делают это, например:
Лестер, Малет, Грег в Хоринисе, Педро, Бастер, Бронко, Ли, Мика, Секоб, Текла, Пабло, Борка, Мо, Ларес, Аттила, Джеспер и т.д.
Особенно нелепо это выглядит, когда с овцы начинают требовать заплатить штраф, например:
лорды Андрэ и Хаген, Гаронд, Ли и Парлан.
Хотя есть и такие NPC, кто должен начинать диалог, но почему-то игнорирует ГГ в облике овцы, например:
Лобарт и Онар.
Сейчас мне приходится вставлять в диалоги кучу проверок вида (hero.guild != GIL_SHEEP), возможно, надо что-то изменить в восприятиях AssessPlayer и/или AssessTalk?
 
Последнее редактирование:
Сверху Снизу