|
|
06.08.2005, 16:23
|
#646
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
Графическую оболочку не нашёл. Где??
|
это уже весьма неактуальная версия. Сейчас лучше юзать ярлыки или дожидаться release-версию оболочки от DimaD. 2SATANIZMatik:
При компиляции декомпиляционного тоже ошибка. Story\LOG_ENTRIES\LOG_CONSTANS_HOSHI.D (line 24)..
|
К твоему сведению, в оригинальных скриптах, которые ты взял из каталога игры 100 % уже есть ошибки. И их все нужно исправить. А иначе компилировать не удастся. То есть увидев в логе сообщение об ошибке, берешь любой нормальный текстовый редактор, и исправляешь указаннй файл, в данном случае это
Story\LOG_ENTRIES\LOG_CONSTANS_HOSHI.D (line 24)..
|
|
|
|
06.08.2005, 22:30
|
#650
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
Где это в Готике есть? =)
|
На могилах. В смысле, когда могила попадает в фокус - высвечивается такая надпись. =)
|
|
|
07.08.2005, 17:01
|
#653
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
Чем эти виды копиляции различны?
|
Они различны тем, что обрабатывают файлы, находящиеся в разных каталогах. При простой компиляции - из каталога content, а при компиляции декомпилированныйх скриптов - из каталога decompiled.
1. Провожу компиляцию src. (1). Выдаёт допустим ошибка text.d 24 line. 2. Провожу компиляцию декомпиляционного. (2) Выдаёт такую же ошибку.. Я исправляю ошибку. В первом случае у меня уже выдаёт другую ошибку. А в (2) опять та же ошибка! Хотя при компиляции (1) этой ошибки уже не замечается.
|
Ну правильно. Ты исправляешь ошибку в каталоге content, а в каталоге decompiled она так и остается.
1-ый я так понял компилирует gothic.src для чего он?
|
В этом файле находится список файлов, которые компилятор должен обработать.
|
|
|
07.08.2005, 17:22
|
#654
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
Я в шоке. Как мне компиляцию сделать то? Люди хелп!!!
|
Имхо, тебе лучше акелловские скрипты выслать, там 30-40 ошибок, меньше исравлять будет ;D
|
|
|
07.08.2005, 17:41
|
#655
|
|
Re: Скриптинг в Готике
2Borisoff: Ну так вышлите. =) Но лучше без ошибок сразу. 2Alexus_G:
В этом файле находится список файлов, которые компилятор должен обработать.
|
Тоесть чтобы сделать мод надо ещё и Готик src компилировать? Готик.дат и Оу.бин недостаточно? А если просто для личного пользования то не надо?
|
|
|
07.08.2005, 17:59
|
#656
|
|
Re: Скриптинг в Готике
2SATANIZMatik:
Тоесть чтобы сделать мод надо ещё и Готик src компилировать?
|
? Что ты имеешь ввиду? В gothic.src указаны файлы для компиляции. Т.е. если какой-то файл есть в папке content или _decompiled, но в gothic.src он не указан, то в компиляцию он включаться не будет!
|
|
|
08.08.2005, 12:03
|
#663
|
 |
|
 |
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
 |
|
 |
|
Re: Скриптинг в Готике
2SATANIZMatik: Да видели их все. Это просто тестовые модели. Есть еще Testmodel_Aiya и прочие. Делалось для проверки разрабами.
|
|
|
08.08.2005, 23:34
|
#665
|
 |
|
 |
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
 |
|
 |
|
Re: Скриптинг в Готике
2DEDROIT: Строку из zSpy в студию. Без нее на словах понять нереально.
|
|
|
09.08.2005, 01:33
|
#667
|
|
Re: Скриптинг в Готике
2ingvard: Датник, для того, чтобы че нибудь в нем изменить нужно декомпилировать. Едиственная прога, которая выполняет данную функцию - это декомпилятор от Вама. Качай его с яндекса пароль и логин гдето в этой теме уже были, ридми прилагается к декомпилятору. После того, как декомпилируешь датник в папке _decompiled появится очень много разных файлов скриптов - если хочешь видеть изменения в игре, измени что-нибудь в скриптах, а потом проведи компиляцию декомпилировнного датника - в проге есть такая функция. Далее, замени датник и оу.бин игры на твои измененные, начни игру заново и посмотри, что получится. ------------------------------------------------------------------------------------------------ В теме "Уроки скриптологии" можешь скачать туторы Вама - в них описание практически ВСЕХ классов, функций, флагов и т.д., используемых (и не используемых в игре).
Если что не получится - спрашивай.
|
|
|
09.08.2005, 11:21
|
#669
|
|
Re: Скриптинг в Готике
2Killer-XXX: вот такая ошибка 00:30 Fatal:0 U: Par:STORY/Dialoge/Dia_None_668_Sat.d:'Nw_xardas_tower_secret_cave_04 'undeclared name(line 800)...<zError.cpp,#477> А вот скрипт моего непися: instance NONE_666_Ramirez(Npc_Default) { * * *name[0] = "Приспешник "; * * *Mdl_SetVisual(self,"HumanS.mds"); * * *Mdl_SetVisualBody(self,"Zom_Body",0,0,"Zom_Head", 0,DEFAULT,itar_pal_skel); * * *fight_tactic = FAI_HUMAN_MASTER; * * *EquipItem(self,ItMw_Streitaxt2); * * *attribute[ATR_STRENGTH] = 150; * * *attribute[ATR_DEXTERITY] = 150; * * *attribute[ATR_MANA_MAX] = 110; * * *attribute[ATR_MANA] = 110; * * *attribute[ATR_HITPOINTS_MAX] = 200; * * *attribute[ATR_HITPOINTS] = 2000; * * *protection[PROT_BLUNT] = 100; * * *protection[PROT_EDGE] = 100; * * *protection[PROT_POINT] = 100; * * *protection[PROT_FIRE] = 100; * * *protection[PROT_FLY] = 130; * * *protection[PROT_MAGIC] = 150; * * * *daily_routine = Rtn_PreStart_666; * * * *}; * * * *func void Rtn_PreStart_666() * * * *{ * * * *TA_Guard_Passage (8,0,22,0,"NW_FARM1_OUT_01"); * * * *TA_Guard_Passage (22,0,8,0,"NW_FARM1_OUT_01"); * * * *}; Может быть нужно прописать этот веппоинт('Nw_xardas_tower_secret_cave_04) у непися. Должно быть так после разговора с Сетом должен на этом веппоинте повится рамирез?Как это можно сделать?
|
|
|
09.08.2005, 12:05
|
#670
|
|
Re: Скриптинг в Готике
2DEDROIT:
Wld_InsertNPC(NONE_666_Ramirez,NW_XARDAS_TOWER_SEC RET_CAVE_04);
|
Вообще-то имя вайпоинта в функции пишется в кавычках.
|
|
|
09.08.2005, 13:28
|
#671
|
|
Re: Скриптинг в Готике
2Vam: Я поставил ковычки закомпелировалось без ошибок.Начиная новую игру говорю с неписем потом иду туда где должен появится второй непись но его там нет.Иду туда где я его изначально прописал а там стоят 2 одинаковых непися по идее он телепорировался но на тот же веппоинт.ТАк же попытался прописать ему 2 веппоинт instance NONE_666_Ramirez(Npc_Default) { name[0] = "Приспешник "; Mdl_SetVisual(self,"HumanS.mds"); Mdl_SetVisualBody(self,"Zom_Body",0,0,"Zom_Head", 0,DEFAULT,itar_pal_skel); fight_tactic = FAI_HUMAN_MASTER; EquipItem(self,ItMw_Streitaxt2); attribute[ATR_STRENGTH] = 150; attribute[ATR_DEXTERITY] = 150; attribute[ATR_MANA_MAX] = 110; attribute[ATR_MANA] = 110; attribute[ATR_HITPOINTS_MAX] = 200; attribute[ATR_HITPOINTS] = 2000; protection[PROT_BLUNT] = 100; protection[PROT_EDGE] = 100; protection[PROT_POINT] = 100; protection[PROT_FIRE] = 100; protection[PROT_FLY] = 130; protection[PROT_MAGIC] = 150; daily_routine = Rtn_PreStart_666; }; func void Rtn_PreStart_666() { TA_Guard_Passage (8,0,22,0,"NW_FARM1_OUT_01"); TA_Guard_Passage (22,0,8,0,"NW_FARM1_OUT_01"); }; func void Rtn_q_666() { TA_Guard_Passage (8,0,22,0,"NW_XARDAS_TOWER_VALLEY_09"); TA_Guard_Passage (22,0,8,0,"NW_XARDAS_TOWER_VALLEY_09"); }; Но всё равно на 1 веппоинте появляются 2 непися!НПочему то после разговора он не хочет встовать на NW_XARDAS_TOWER_VALLEY_09.После этой функции диалога(func void dia_Set_q_info()) должен появится непись на другом веппоинте
|
|
|
09.08.2005, 13:51
|
#672
|
|
Re: Скриптинг в Готике
2DEDROIT:
Я поставил ковычки закомпелировалось без ошибок.Начиная новую игру говорю с неписем потом иду туда где должен появится второй непись но его там нет.
|
Давай разбираться, как я понял после разговора с НПС он должен переместиться на другой вайпоинт (вызов функции вставки непися с указанием вайпоинта), но у тебя он не перемещается, а в исходной точке появляется второй такой-же. Эсли это так, то твоя ошибка вот в чем: в инстанции НПС прописана функция Rtn_PreStart_666, поэтому, куда бы ты его не вставлял, появляться он будет на точке NW_FARM1_OUT_01. Для того чтобы он появился в точке NW_XARDAS_TOWER_VALLEY_09 есть несколько способов: 1. Нового непися не вставлять а вызвать функцию B_StartOtherRoutine(NONE_666_Ramirez,"q"); и если в Спейсере указана "дорога" от одной точки в другую, то непись пойдет по ней. 2. Моментальное перемещение телепортировать НПС в другую точку, не забыв при этом поменять у него функцию разпорядка дня предыдущей функцией.
|
|
|
09.08.2005, 13:56
|
#673
|
 |
|
 |
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
 |
|
 |
|
Re: Скриптинг в Готике
2SATANIZMatik: Слышали. Прога писанная на яве, немного упощает синтаксис, допустим ты пишешь: > Привет. А получается: AI_Output(other,self,"DIA_Bodo_Hallo_15_00"); //Привет. Естественно выше надо будет писать к какому НПС, голос, и прочее.
|
|
|
09.08.2005, 14:39
|
#676
|
|
Re: Скриптинг в Готике
2DEDROIT:
Но я не понемаю,что непися в игру не надо вставлять а просто потом вызвать этой функцией.Но как это сделать! Можешь немного по подробней обьяснить!Ты ещё написал что есть второй способ чтобы непись моментально телепортировался.А как это сделать
|
Я же немного хотел помочь, но самому то думать всё равно нужно! ;) 1. В диалоге вместо функции вставки нового непися вызываем вот это B_StartOtherRoutine(NONE_666_Ramirez,"q"); и непись должен идти в новую точку. 2. В диалоге вместо функции вставки нового непися вызываем вот это AI_Teleport(NONE_666_Ramirez,"NW_XARDAS_TOWER_VAL LEY_09"); B_StartOtherRoutine(NONE_666_Ramirez,"q"); и непись моментально переносится в новую точку.
|
|
|
09.08.2005, 14:59
|
#677
|
|
Re: Скриптинг в Готике
2Vam: попытался сделать вторым способом вместо Wld_InsertNPC(NONE_666_Ramirez,"NW_XARDAS_TOWER_VA LLEY_09");поставил этов кнце диалога AI_Teleport(NONE_666_Ramirez,"NW_XARDAS_TOWER_VALL EY_09"); B_StartOtherRoutine(NONE_666_Ramirez,"q"); Но он у меня та и стоит на 1 веппоинте.Может нужно что-нибудь у самог непися прописать instance NONE_666_Ramirez(Npc_Default) { name[0] = "Приспешник Лорда Иннубиса "; Mdl_SetVisual(self,"HumanS.mds"); Mdl_SetVisualBody(self,"Zom_Body",0,0,"Zom_Head", 0,DEFAULT,itar_pal_skel); fight_tactic = FAI_HUMAN_MASTER; EquipItem(self,ItMw_Streitaxt2); attribute[ATR_STRENGTH] = 150; attribute[ATR_DEXTERITY] = 150; attribute[ATR_MANA_MAX] = 110; attribute[ATR_MANA] = 110; attribute[ATR_HITPOINTS_MAX] = 200; attribute[ATR_HITPOINTS] = 2000; protection[PROT_BLUNT] = 100; protection[PROT_EDGE] = 100; protection[PROT_POINT] = 100; protection[PROT_FIRE] = 100; protection[PROT_FLY] = 130; protection[PROT_MAGIC] = 150; daily_routine = Rtn_PreStart_666; }; func void Rtn_PreStart_666() { TA_Guard_Passage (8,0,22,0,"NW_FARM1_OUT_01"); TA_Guard_Passage (22,0,8,0,"NW_FARM1_OUT_01"); }; Что я делаю не правильно?
|
|
|
09.08.2005, 15:25
|
#678
|
 |
|
 |
|
A.G.F.C.
Регистрация: 02.09.2005
Сообщений: 6
|
|
 |
|
 |
|
Re: Скриптинг в Готике
Извините, что вмешиваюсь, но:
У NPC, которому устанавливается распорядок дня функцией типа RTN_***, обязательно должен быть ID.
Это, конечно, не аксиома, потому что я не проверял это лично. Но, судя по скриптам пираний, у всех NPC, у которых в описании стоит функция RTN_***, стоит ID.
В общем, логика такая: В твоем коде у instance твоего непися нет ID. То есть, конкретно, нет строки типа "ID = 666;" Отсюда - движок игры не знает, куда "привязывать" функцию Rtn_PreStart_666 - ведь ID = 666 ты нигде не указал!
Поставь ID и попробуй сразу функцию B_StartOtherRoutine(). Если сработает она, сработает и телепорт.
Еще, на всякий случай, проверь, нет ли в скриптах других NPC с таким же ID (=666).
|
|
|
09.08.2005, 16:04
|
#680
|
 |
|
 |
|
A.G.F.C.
Регистрация: 02.09.2005
Сообщений: 6
|
|
 |
|
 |
|
Re: Скриптинг в Готике
Нет вскриптах нет ID=666;
|
Попробуй все-таки поставь. Сразу после строки "name[0] ... " Напиши [pre]ID = 666;[/pre]
Но он же встаёт у меня на веппоинт NW_FARM1_OUT_01,почему же тогда телепортироваться нехочет!
|
Не знаю пока насчет телепорта, может кто более знающий подскажет. То, что он встает на вейпойнт, есть "заслуга" функции Wld_InsertNPC(), которая пользуется не ID непися, которого у тебя нет, а именем его instance, которое есть - NONE_666_Ramirez. А функции типа RTN_*** для "привязки" нужен ID, чтобы понять, к какому неписю она относится. Соответственно, и функции B_StartOtherRoutine, кроме имени instance ( NONE_666_Ramirez)тоже нужен ID, ведь вторым параметром у нее стоит имя функции - без кода. В нашем случае - "q". Логика такая - функция находит описание instance с именем NONE_666_Ramirez. В нем должны быть указаны следующие вещи: 1) ID непися (в нашем случае - 666) 2) функция с именем "rtn_q_666". Если ее нет, то B_StartOtherRoutine не сработает. Если она есть, то B_StartOtherRoutine "заставляет" непися идти до указанной в rtn-функции точки (вейпойнта). з.ы. И еще есть подозрение, что AI_Teleport срабатывает только в связке с B_StartOtherRoutine - так, как указал Vam выше.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 04:37. Часовой пояс GMT +4.
|
|
|
|
 |
|
 |
|
|
|
|
|
|
|
|
|