|
|
23.08.2009, 21:15
|
#2242
|
|
Re: М: Скриптинг в Готике
Cпойлер(щелкните, чтобы прочесть):
func int ZS_Smalltalk_Loop () { if (Npc_IsOnFP (self, "SMALLTALK")) { * * * if (Npc_GetStateTime(self) >= (SmallTalkFreq * 2) ) { Npc_PerceiveAll (self); if (Wld_DetectNpc(self, -1, ZS_Smalltalk, -1)) //other = Nearest Npc (0=Spieler ignorieren!) { if (Npc_GetDistToNpc(self, other) < PERC_DIST_DIALOG) { Npc_SetStateTime (other, SmallTalkFreq ); * * * * * * * * * * * * B_TurnToNpc (self,other); B_Say_Smalltalk(); }; }; * * * * * * Npc_SetStateTime (self, 0); }; } else if (Wld_IsFPAvailable(self,"SMALLTALK")) { AI_GotoFP ** * * * * *(self, "SMALLTALK"); AI_StandUp (self); AI_AlignToFP ** * *(self); }; * * * return LOOP_CONTINUE; };
func void ZS_Smalltalk_End () {
Если я правильно понял то выделенное красным это анимация второго перса. Меня интересует возможность диалога двух NPC с разной анимацией, допустим один курит во время разговора, а другой нет. Не подскажете как сделать такое?
|
|
|
23.08.2009, 21:26
|
#2243
|
 |
|
 |
|
A.G.F.C.
Регистрация: 04.09.2006
Сообщений: 20
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
2Magmatic I: Попробуй написать аналогичную функцию той что привел в спойлере, только для одного из непесей, self или other укажи анишку воскуривания болотника. Сам подобное не тестил, но в принципе работать должно, а там, тебе уже надо будет просто скрипт функции довести до ума, в зависимости от того что требуется получить в итоге. ::)
Добавление от 08/23/09, в 20:37:48 Чуть не забыл, возможно восприятие Непесей придется ковырять, чтобы сделать нормальный временной интервал диалога одного Непеся и курение другого, и взаимодействие этих Нпс. Если конечно сам диалог по интервалам пауз между Нпс, не реализован в двиге. Иначе будет не реалистичная картинка, имхо.
|
|
|
24.08.2009, 14:35
|
#2244
|
|
Re: М: Скриптинг в Готике
У меня вопрос про орков-стрелков (мод Возвращение), как их скорострельность можно изменить? Есть тут идея повозиться с тактикой боя (fight.dat), может кто уже пробывал сам? Как я понял, там все просто, до шесть команд в очереди, получается вроде этого: name[0] = "Черный орк-арбалетчик"; *fight_tactic = FAI_ORC_2; FAI_Orc_2.d
Cпойлер(щелкните, чтобы прочесть):
instance FA_MY_FK_FOCUS_FAR_12(C_FIGHTAI) { *move[0] = MOVE_WAIT_LONGER; *move[1] = MOVE_ATTACK; *move[2] = MOVE_WAIT_LONGER; *move[3] = MOVE_SIDEATTACK; *move[4] = MOVE_WAIT_LONGER; *move[5] = MOVE_TRIPLEATTACK;
я только не знаю, куда точно команды выставлять для дист. боя. Поможете советом или еще чем-нибудь? :) Полный FAI_Orc.d из данного мода единый для всех орков, стрелки как из пулемета стреляют, вот как он выглядит:
Cпойлер(щелкните, чтобы прочесть):
instance FA_ENEMY_PREHIT_12(C_FIGHTAI) { * * *move[0] = MOVE_JUMPBACK; * * *move[1] = MOVE_PARADE; };
instance FA_ENEMY_STORMPREHIT_12(C_FIGHTAI) { * * *move[0] = MOVE_STRAFE; };
instance FA_MY_W_COMBO_12(C_FIGHTAI) { };
instance FA_MY_W_RUNTO_12(C_FIGHTAI) { * * *move[0] = MOVE_TURN; };
instance FA_MY_W_STRAFE_12(C_FIGHTAI) { };
instance FA_MY_W_FOCUS_12(C_FIGHTAI) { * * *move[0] = MOVE_STRAFE; * * *move[1] = MOVE_ATTACK; * * *move[2] = MOVE_SIDEATTACK; * * *move[3] = MOVE_TRIPLEATTACK; * * *move[4] = MOVE_WAIT; * * *move[5] = MOVE_WAIT; };
instance FA_MY_W_NOFOCUS_12(C_FIGHTAI) { * * *move[0] = MOVE_TURN; };
instance FA_MY_G_COMBO_12(C_FIGHTAI) { };
instance FA_MY_G_RUNTO_12(C_FIGHTAI) { * * *move[0] = MOVE_STRAFE; * * *move[1] = MOVE_ATTACK; * * *move[2] = MOVE_SIDEATTACK; * * *move[3] = MOVE_TRIPLEATTACK; };
instance FA_MY_G_STRAFE_12(C_FIGHTAI) { };
instance FA_MY_G_FOCUS_12(C_FIGHTAI) { * * *move[0] = MOVE_RUN; * * *move[1] = MOVE_RUN; * * *move[2] = MOVE_STRAFE; };
instance FA_MY_FK_FOCUS_12(C_FIGHTAI) { * * *move[0] = MOVE_RUN; };
instance FA_MY_G_FK_NOFOCUS_12(C_FIGHTAI) { * * *move[0] = MOVE_TURN; };
instance FA_MY_FK_FOCUS_FAR_12(C_FIGHTAI) { * * *move[0] = MOVE_STRAFE; * * *move[1] = MOVE_ATTACK; * * *move[2] = MOVE_SIDEATTACK; * * *move[3] = MOVE_TRIPLEATTACK; };
instance FA_MY_FK_NOFOCUS_FAR_12(C_FIGHTAI) { * * *move[0] = MOVE_TURN; };
instance FA_MY_FK_FOCUS_MAG_12(C_FIGHTAI) { * * *move[0] = MOVE_STRAFE; * * *move[1] = MOVE_ATTACK; * * *move[2] = MOVE_TRIPLEATTACK; * * *move[3] = MOVE_WAIT_EXT; * * *move[4] = MOVE_WAIT_EXT; * * *move[5] = MOVE_WAIT_EXT; };
instance FA_MY_FK_NOFOCUS_MAG_12(C_FIGHTAI) { * * *move[0] = MOVE_TURN; };
Спасибо.
|
|
|
24.08.2009, 14:50
|
#2245
|
 |
|
 |
|
A.G.F.C.
Регистрация: 04.09.2006
Сообщений: 20
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
2Skaarj: Скорострельнось задается только аниимацией, выпуск стрел зависит только от обработки ехе-шником, через фреймы ани, к кадрам которой они и привязаны. Проще говоря изучи статью по Event_Tag-ам на мод.вог.ру. Станет понятнее о чем я говорю. FAI монстров здесь вообще не причем он отвечает, непосредственно за боевой режим, то как Орк будет сражаться например, тактику боя. Хочешь нормальное ускорения в стрельбе, и саму стрельбу, то создавай новые анимации для орка.*;) То как это реализовано в Возвращении, единственный вариант если нужно сделать стрелка без анишек, но это не есть Гут.
|
|
|
24.08.2009, 22:55
|
#2248
|
|
Re: М: Скриптинг в Готике
2MaGoth:
FAI монстров здесь вообще не причем он отвечает, непосредственно за боевой режим, то как Орк будет сражаться например, тактику боя.
|
Смотрим на крыску FAI_Giant_Rat.d instance FA_MY_W_FOCUS_11(C_FIGHTAI) { * * *move[0] = MOVE_ATTACK; * * *move[1] = MOVE_WAIT; * * *move[2] = MOVE_WAIT; * * *move[3] = MOVE_JUMPBACK; удар, ждать, ждать, отход назад...удар, ждать, ждать, отход назад..удар, ждать, ждать, отход назад.. FAI_Gobbo.d - гоблин instance FA_MY_W_FOCUS_7(C_FIGHTAI) { * * *move[0] = MOVE_ATTACK; * * *move[1] = MOVE_STRAFE; удар, обход...удар, обход...удар, обход... мой пример с орком instance FA_MY_W_FOCUS_12(C_FIGHTAI) { * * *move[4] = MOVE_WAIT; * * *move[4] = MOVE_WAIT; * * *move[1] = MOVE_ATTACK; * * *move[4] = MOVE_WAIT; * * *move[4] = MOVE_WAIT; * * *move[1] = MOVE_ATTACK; ждать, ждать ,выстрел, ждать, ждать ,выстрел... Тактика именно в том, чтобы дать задержку между выстрелами, вопрос прозвучал - команды скрипта будут равнозначно действовать и для оружия ББ? Мне често сказать тестироваться очень лениво, хотел попросить помощи из зала. ;) Добавление от 08/24/09, в 21:59:47 2MaGoth:
Хочешь нормальное ускорения в стрельбе, и саму стрельбу
|
речь об обратном - как замедлить орка с арбалетом. :)
|
|
|
25.08.2009, 08:32
|
#2249
|
 |
|
 |
|
A.G.F.C.
Регистрация: 04.09.2006
Сообщений: 20
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
2Skaarj:
* * move[4] = MOVE_WAIT; * * move[4] = MOVE_WAIT; * * move[4] = MOVE_WAIT; * * move[1] = MOVE_ATTACK; * * move[4] = MOVE_WAIT; * * move[4] = MOVE_WAIT;
|
Попробуй сделать так, чуток медленнее должно быть. *:)
Тактика именно в том, чтобы дать задержку между выстрелами, вопрос прозвучал - команды скрипта будут равнозначно действовать и для оружия ББ? Мне често сказать тестироваться очень лениво, хотел попросить помощи из зала.
речь об обратном - как замедлить орка с арбалетом.
|
Хоть ускорить, *хоть замедлить, все через анимацию. *;)
|
|
|
25.08.2009, 11:14
|
#2251
|
|
Re: М: Скриптинг в Готике
2MaGoth:
Хоть ускорить, хоть замедлить, все через анимацию.
|
Ага, мне все ясно, кроить новую анимацию - это не для меня. :) Я говорил об интервалах между отд. выстрелами, т.е. именно то что и контролирует тактика в скриптах. 2niccolo:
в игре G2-NR все навыки орков отображаются = 0%, хотя в характеристиках прототипов указано
|
Забыли у всех орков прописать навыки на оружие, т.к. нет необходимости смотреть его статистику instance OrcElite_Rest(Mst_Default_OrcElite) B_SetFightSkills(self,100); у всех остальных НПС она есть, т.к. шаблон там единый. Отображение 0% умений не влияет на учителей, т.к. фактически орки имеют мастерсво по 100%.
|
|
|
25.08.2009, 11:41
|
#2252
|
 |
|
 |
|
A.G.F.C.
Регистрация: 04.09.2006
Сообщений: 20
|
|
 |
|
 |
|
Re: М: Скриптинг в Готике
2Skaarj:
Ага, мне все ясно, кроить новую анимацию - это не для меня. Я говорил об интервалах между отд. выстрелами, т.е. именно то что и контролирует тактика в скриптах.
|
Интервал между выстрелами задается самой анимацией. Если нужен больший интервал, то делаем более медленное воспроизведение анимации для одного выстрела. Если смотреть в файле MDS - анимацию стрельбы, то на одном из фреймов будет висеть генерация стрел через munition, т.е. указывается ехе-шнику какой материал для данного итема генерировать в инвентаре Нпс, для использования в атаке. Это все задается только ехе-шником, и ни как не связано со скриптами, имхо. Для примера, анимации движения Гг:ходьба > бег > быстрый бег. Все реализовано на ани, и стрельба здесь не исключение, быстрый бег в игре, накладывается на Гг как оверлей после употребления зелья ускорения, которое задает ускорение с определенным временем действия - 600 м/сек. ;)
|
|
|
25.08.2009, 16:20
|
#2253
|
|
Re: М: Скриптинг в Готике
2niccolo: Забыли у всех орков прописать навыки на оружие, т.к. нет необходимости смотреть его статистику *B_SetFightSkills(self,25); у всех остальных НПС она есть, т.к. шаблон там единый.
|
B_SetFightSkills(self,25) - для равного навыка владения B_AddFightSkill(self,NPC_TALENT_BOW,10); - для указания отдельного навыка, если надо, чтобы он отличался от других HitChance[NPC_TALENT_1H] = 25; - зачем это нужно тогда? Разве первых двух не хватает? Какие из них приоритетны (можно ли использовать одновременно)? И главное - какие из них влияют на реальные показатели в игре, т.е. не на отображение навыка, а на фактическое его значение, ощутимое в самой игре? Спасибо.
|
|
|
31.08.2009, 00:59
|
#2255
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от Blackdruid link=board=gothic&t=1105030050&goto=5207252 date=08/27/09, в 16:44:58
Э-э! я бы хотел сделать диалог со сковородкой :) в 1-й готике как это можно сделать??? Заранее спасибо!!!
|
Добавление от 08/27/09, в 17:04:58 подходим к сковородке- MOB и говорим : жарить одно мясо,,, жарить всё мясо,,, конЕЦ ;)???
|
Для такого дела есть поучительная статья на вог.ру от Dimmel'а , как раз посвященная твоей жарке, хотя этот пример частный, его можно распространить на все случаи взаимодействия с MOBSI
|
|
|
03.09.2009, 11:22
|
#2256
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от MaGoth link=board=gothic&t=1105030050&goto=5200220 date=08/23/09, в 20:26:30
Чуть не забыл, возможно восприятие Непесей придется ковырять, чтобы сделать нормальный временной интервал диалога одного Непеся и курение другого, и взаимодействие этих Нпс. Если конечно сам диалог по интервалам пауз между Нпс, не реализован в двиге. Иначе будет не реалистичная картинка, имхо.
|
Я в моде "Народ Миненталя" делал диалоги с участием сразу нескольких NPS. Они все действуют асинхронно, и чтобы синхронизировать, нужно в диалоге вставлять функции AI_WaitTillEnd и аккуратно отлаживать. Т. е. нужно, чтобы персонаж дожидался окончания фразы другого персонажа, прежде чем вставить свою.
|
|
|
14.09.2009, 00:43
|
#2259
|
|
Re: М: Скриптинг в Готике
Ну канеш можно, Как например: Заводим переменную var int QuestGold, Установи ей нужное значение, При выборе одной из веток уменьшай/прибавляй, кароче делай что хочешь Далее например так: CreateInvItems(self,ItMi_Gold,QuestGold); B_GiveInvItems(self,other,ItMi_Gold,QuestGold);
|
|
|
27.09.2009, 20:14
|
#2265
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от vmazz link=board=gothic&t=1105030050&goto=5265438 date=09/18/09, в 18:11:19
1Про переменные и константы ты можеш узнать из любой книжки типа "программирование для чайников". 2 Время далога, если нет соответсвующего файла озвучки, высчитывается непосредственно движком и изменить его нельзя.
|
А на каком языке программирования написана Готика 2?
|
|
|
28.09.2009, 00:40
|
#2267
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от MaGoth link=board=gothic&t=1105030050&goto=5286029 date=09/27/09, в 21:49:08
2N1tros: С++
|
Большое спасибо. Как сделать, чтобы 1 пункт диалога исчезал при выборе другого? Которые добавлены не через функцию Info_AddChoice, а как обычные диалоги через instance(нужно чтобы 1 из этих "инстансовых" диалогов исчез).
|
|
|
28.09.2009, 13:04
|
#2269
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от kraw link=board=gothic&t=1105030050&goto=5286834 date=09/28/09, в 10:17:04
Есть куча прекрасных описаний как создавать, в частности, диалоги. Вы их читали?
|
Если вы про статьи с ВоГа, то читал, а другие просто не смог найти. А вы можете поделиться более информативными статьями?
|
|
|
28.09.2009, 13:13
|
#2270
|
|
Re: М: Скриптинг в Готике
Цитата:
Сообщение от N1tros link=board=gothic&t=1105030050&goto=5287045 date=09/28/09, в 12:04:35
|
Если вы про статьи с ВоГа, то читал, а другие просто не смог найти. А вы можете поделиться более информативными статьями?
|
Их вполне достаточно. Если почитать про функцию условия для диалога и взглянуть на описания функций от Vam'a. Ну и начальные занние о программировании.
|
|
|
08.01.2010, 01:54
|
#2274
|
|
Re: М: Скриптинг в Готике
2El Coyote:
Взять из готового мода...самое легкое, в свое время искал в модах, но никто до такого не доходил, в оригинальных скриптах как-то все запутанно, при том заметил, что без введения глав нпс не умеют драться
|
Ты сейчас какую-то ересь ляпнул. Если скрипты, для тебя загадка, то не нужно говорить про остальных. Кури мануалы, там все расписано.
|
|
|
09.02.2010, 23:20
|
#2278
|
|
Re: М: Скриптинг в Готике
2Siderbang:
Так... А почему тогда за убийство монстров дается теперь меньше опыта?
|
Ты сам там чего-то наковырял, теперь спрашиваешь? Опыт вычисляется от уровня монстра.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 04:00. Часовой пояс GMT +4.
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|