|
|
28.08.2005, 20:49
|
#844
|
|
Re: Скриптинг в Готике
2TSYLin:
Какой скрипт отвечает за смену анимации вбою, после 30, 60 процентами владения?
Поюзай скрипт Story\B_Story\B_AddFightSkill.d
А конкретно следующие функции (на примере одноручника) Npc_SetTalentSkill (slf, NPC_TALENT_1H, 0); *- *слабак! Npc_SetTalentSkill (slf, NPC_TALENT_1H, 1); *- *Боец! Npc_SetTalentSkill (slf, NPC_TALENT_1H, 2); *- *Мастер!
Поясняю, существует три уровня на каждый вид оружия. Функция Npc_SetTalentSkill устанавливает уровень, которым владеет Непись.
Удачи! ;)
|
|
|
29.08.2005, 17:21
|
#847
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2SATANIZMatik: Так у тебя все та же ошибка?
Код:
Fatal:-1 U: * PAR: STORY\NPC_GLOBALS.D: Unknown identifier : NONE_8000_Name
Если да, повторяю 1002 раз: удали нахрен все, что ты прописывал в STORY\NPC_GLOBALS.D ::)
|
|
|
31.08.2005, 12:43
|
#849
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
Можно сделать так чтобы Компилятор не обращал на них внимания?
|
Зачем? Ошибки они и в Африке ошибки, какой смысл в подобных оптимизациях? ::) Добавление от 08/31/05, в 11:45:06 2SATANIZMatik:
И объясните мне как сделать свой файл modvdf и чтобы он запускался через ГотикСтартер.
|
1. Делаешь файл .mod с помощью GothicVDFS, и кладешь его в data/modvdf/ 2. Делаешь файл .ini (пример - system/GothicGame.ini) и суешь его в system/
|
|
|
31.08.2005, 14:08
|
#850
|
|
Re: Скриптинг в Готике
2TycoooN: Но ведь этот файл Ини надо заполнять. ЧТо именно? И как ГотикВдфс запаковать. Поподробнее. ЧТо-то я пытался чушь какая-то получилась. Допустим у меня вот лежит всё в папке C:\DEC\1\_WORK\DATA Я должен прогой выбрать папку 1 и нажать куда vdf положить?
Зачем? Ошибки они и в Африке ошибки, какой смысл в подобных оптимизациях?
|
И что мне делать все Диалоги править из-за фигни? Готика же работает и с этими ошибками.
|
|
|
31.08.2005, 14:31
|
#853
|
|
|
|
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
|
|
|
|
Re: Скриптинг в Готике
2SATANIZMatik: Почитай тут, делал со скринами, может понятнее станет.
|
|
|
31.08.2005, 17:20
|
#855
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
И что мне делать все Диалоги править из-за фигни? Готика же работает и с этими ошибками.
|
У тебя много ошибок или вниманий? Внимания можно не исправлять, но когда сам пишешь скрипты их лучше не допускать. Ошибок же много быть не должно, в Готике 1 разных версий их не больше десятка, макс. число Готика 2 + аддон - 33 штуки, если понимаешь о чем речь, то всё исправление занимает минут 15-30. Вообще-то с ошибками разобраться стоит, чтобы самому не допускать в будущем.
|
|
|
31.08.2005, 18:16
|
#857
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
А высчитывать линии на которой ошибка долго. =)
|
Да, понимаю, твои трудности, но практически в любом текстовом редакторе есть переход на строку по её номеру - тут и считать ничего не надо.
|
|
|
01.09.2005, 23:23
|
#863
|
|
|
|
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
|
|
|
|
Re: Скриптинг в Готике
2TSYLin: Хех, это просто. Можно сделать 2мя вариантами: 1. Либо описать вручную на каждого чела, а именно в NPC_Globals.d получить через Hlp_GetNpc 'челов' в переменные C_Npc, а потом после диалога делать TSYLin.aivar[AIV_PARTYMEMBER] = TRUE; KillerXXX.aivar[AIV_PARTYMEMBER] = TRUE; 2. Либо сделать глобальную функцию, как при зачистке каньона, в этой ф-и так же получить через Hlp_GetNpc 'челов' в переменные C_Npc, потом так же как и в первом варианте присваиваешь. А в самом диалоге просто вызовешь эту функцию.
З.Ы. Иногда есть некоторые глюки, когда 'получаешь челов' в скрипте Npc_Globals.d, то потом в твоем скрипте не работают, тогда 'получай' прямо в твоем скрипте.
|
|
|
02.09.2005, 15:46
|
#864
|
|
Re: Скриптинг в Готике
2Killer-XXX: Я попробывал в самом конце прописать допустим чтобы,я сопровождал хагена в конце диалога написал PAL_200_Hagen.aivar[AIV_PARTYMEMBER] = TRUE; Но почему после окончания диалога он за мной не идёт! Если можешь,можешь описать что и где прописывать на моём примере. Заранее благодарен! Скажи я правиль тя понял,нужно хагена прописать в NPC_Globals.d тоесть прописываю Hagen = Hlp_GetNpc(PAL_200_Hagen); и потом в конце диалог прописыаю PAL_200_Hagen.aivar[AIV_PARTYMEMBER] = TRUE; Так?? Скажи а как его потом отсоединить PAL_200_Hagen.aivar[AIV_PARTYMEMBER] = FALSe; Если так,то как его отсоединить на определённо месте??
Добавление от 09/02/05, в 15:06:15 Спосибо всем получилось!Надо быдо действительно прописать какого нибудь чела в NPC_Globals.d я допустим прописал ингмара.А потом после разговора с хагеном прописал Pal_201_Ingmar.aivar[AIV_PARTYMEMBER] = TRUE; B_StartOtherRoutine(Pal_201_Ingmar,"FollowBigfarm" ); И потом прописал в скрипте ингмара вот это: func void rtn_FollowBigfarm_201() { TA_Follow_Player(8, 0, 22, 0, "NW_FARM1_out_01"); TA_Follow_Player(22, 0, 8, 0, "NW_FARM1_out_01"); }; И после разговора ингмар следует за мной.Мая ошибка была в том что я вместо TA_Follow_Player прописал чтобы чел стоял на веппоинте.Так что с этим я разобрался. есть ещё один вопрос,как сделать чтобы у чела появился диалог,только после того как мы пришли на определённый веппоинт!Как его оставить в любом месте я знаю,но как сделать чтобы появился диалог допустим"вот мы и пришли",точне как диалог сделать я знаю,только не знаю какое условие нужно прописать,чтобы этот диалог появился в определённом месте??
|
|
|
02.09.2005, 17:33
|
#865
|
|
Re: Скриптинг в Готике
2DEDROIT:
но как сделать чтобы появился диалог допустим"вот мы и пришли",точне как диалог сделать я знаю,только не знаю какое условие нужно прописать,чтобы этот диалог появился в определённом месте??
|
Поставь на диалог условие, что НПС член партии ГГ и расстояние от него до определенного вайпоинта меньше требуемого... и всё. ;D
|
|
|
02.09.2005, 18:40
|
#866
|
|
Re: Скриптинг в Готике
2Vam: спосибо!Я чё то зглупил!Нужно было просто в условии допустим написать if(Npc_GetDistToWP(self,"FARM1") < 6000) ,потом после диалога,прописать это Pal_201_Ingmar.aivar[AIV_PARTYMEMBER] = FALSE; B_StartOtherRoutine(Pal_201_Ingmar,"FARM1"); И вскрипте непися прописать func void rtn_FARM1_201() { TA_Stand_WP(8, 0, 22, 0, "NW_FARM1_out_01"); TA_Stand_WP(22, 0, 8, 0, "NW_FARM1_out_01"); }; Вот и всё не доходя,до фермы лобарта непись останавливается и дальше не идёт!Чё то я сглупил!Ну всёравно спосибо Ваму!!
|
|
|
02.09.2005, 21:57
|
#867
|
|
|
|
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
|
|
|
|
Re: Скриптинг в Готике
2DEDROIT:
Hagen = Hlp_GetNpc(PAL_200_Hagen); и потом в конце диалог прописыаю PAL_200_Hagen.aivar[AIV_PARTYMEMBER] = TRUE; Так??
|
Не совсем, можно и так, но если ты делаешь переменную для НПС то и юзай ее. Hagen.aivar[AIV_PARTYMEMBER] = TRUE;
B_StartOtherRoutine(Pal_201_Ingmar,"FARM1");
|
Я пользуюсь ф-ей Npc_ExchangeRoutine(self,"Follow"); Но разницы, кажется, нету.
|
|
|
03.09.2005, 14:59
|
#868
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Killer-XXX:
Но разницы, кажется, нету.
|
Есть. B_StartOtherRoutine надежнее:
Код:
func void B_StartOtherRoutine(var c_npc slf,var string newRoutine){ AI_Standup(slf); if(Hlp_GetInstanceID(self) != Hlp_GetInstanceID(slf)) { if(Hlp_IsValidNpc(slf) && !Npc_IsDead(slf)) { Npc_ExchangeRoutine(slf,newRoutine); AI_ContinueRoutine(slf); }; } else { Npc_ExchangeRoutine(slf,newRoutine); };};
|
|
|
04.09.2005, 16:12
|
#871
|
|
Re: Скриптинг в Готике
2Finsternis:
С: zCPar_DataStack :: Push() : stack overflow!!! Это как я понял переполнение стека. Ошибка появилась, когда я описал 188 новых переменных типа C_NPC. Без этого нельзя, а как ошибку исправить не знаю, в моей практике такого еще не было (имею в виду переполнение стека)!
|
Стек под переменные в экзешниках Готик задан размером 64кб, этого в принципе достаточно для реализации любых функций. Где ты описал 188 новых переменных типа C_NPC и каким образом?
|
|
|
05.09.2005, 09:55
|
#876
|
|
Re: Скриптинг в Готике
2Finsternis:
NPC_ID_UP.aivar[ATT_HITPOINTS_MAX] +=100;
|
А какое значение имеет индекс ATT_HITPOINTS_MAX, ты случайно не перешел за границы массива?
|
|
|
05.09.2005, 18:58
|
#878
|
|
Re: Скриптинг в Готике
Я тут тест-модик для себя стряпаю и вот такой вопрос... Когда я удаляю ненужных мне НПС я наталкиваюсь на разного рода ошибки... Оно и понятно - НПС прописан, а его самого нет. Удаляю я этот файл, где про НПС написано, следом другая ошибка, ссылающаяся на какую-нибудь ф-цию, которая была упомянута в только что удаленном мной файле... и так далее... Какой-то замкнутый круг получается :( Исправлял я ошибки часа 4, надоело... Кто-нибудь, подскажите, какие файлы можно смело удалять, а какие надо оставить? Г2 Конечно можно файлы и не удалять, а все так оставить, но уж больно много весит... :( Хотя это и тренировочный мод, но все же ::)
|
|
|
05.09.2005, 20:08
|
#880
|
|
Re: Скриптинг в Готике
2Vam: Этот индекс описан разрабами (максимальная жизнь). Здесь все правильно, я просто не помню помню по памяти, как он пишется (то ли AT_HITPOINTS_MAX или ATT_HITPOINTS_MAX или еще как нибудь). Не здесь моя ошибка. Ну да ладно, я нашел альтернативный алгоритм. Но для его осуществления мне нужно знать ответ на следующие вопросы: 1) Можно ли вносить изменения в файл где описана функция ZS_MM_ALLscheduler(), например вставить свою функцию. 2) Как в массив Aivar добавить новый индекс, например, AIV_MM_FirstUPGrade, т.е. чтобы у каждого монстра появилось свойство Self.Aivar[AIV_MM_FirstUPGrade], и соответственно его можно было изменять, например вот так: if (Self.Aivar[AIV_MM_FirstUPGrade] == False) { * * *// функции и команды ... * * *Self.Aivar[AIV_MM_FirstUPGrade] = True; }; И вообще, можно ли это сделать без изменения Экзешника.
Заранее огромнейшее спасибо за ответ! 2DEDROIT: Прости, я просто по памяти не помню, из нет-кафе. Если не получается, всегда смотри туторы ВАМа, я всю инфу беру из них.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 16:44. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|