[AGFC: Valley of Gothic] М: Скриптинг в Готике

Страница 58 из 65 « Первая 8485152535455565758 59606162636465
Поиск в этой теме:

Расширенный поиск
Старый 01.04.2010, 11:44   #2281
jr13san

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Есть кто живой?
Ответить с цитированием
Старый 01.04.2010, 13:55   #2282
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от jr13san link=board=gothic&t=1105030050&goto=5683648 date=04/01/10, в 11:44:41
Есть кто живой?
Разумеется, есть. :P Например, модератор, от которого вы только что получили первое устное предупреждение за флуд.
Ответить с цитированием
Старый 01.04.2010, 19:24   #2283
jr13san

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Извините, но просто тут так давно никто не пишет...
Итак. У меня возникла проблемка в создании кое какой скриптовой идеи. Какой именно? А вот какой:
Вобщем мне нужно сделать так, чтобы при блокировке ГГ удара(ближний бой) от врага(NPC, не животное, а человек или тот, от коророго можно защититься блоком), переменная BlockNPC = BlockNPC + 1.
Короче, если ГГ поставил блок и искры посыпались от меча, то BlockNPC = BlockNPC + 1.

Я не нашёл в туторе Vam'a нужных функций для создания этой идеи. И в Готике(1,2) тоже не наблюдаю таких идей. Остаётся слазить в функцию тактики боя...
Кто знает как сделать проще, пишите, буду очень рад.
Ответить с цитированием
Старый 06.04.2010, 13:21   #2284
more

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Хотел бы спросить у знающих людей, что такое instance?
В рамках ООП (а Deadalus является ОО языком), instance может быть либо объектом, либо классом.

Для меня совсем не очевидна работа функций:
Код:
func void Wld_RemoveNpc(var int instanceNpc); func void Wld_InsertNpc(var int instanceNpc, var string spawnPoint);
Смущает вот этот код:
Код:
Info_Bau_2_EXIT.npc = Hlp_GetInstanceID(slf);
Если instance - это класс, то насколько безопасно менять статический член Info_Bau_2_EXIT.npc? Ведь игровой движок не сбрасывает состояние классов в начальное при смене игровой сессии (загрузке новой игры).
Или например, у созданного с помощью Wld_InsertNpc нового объекта npc, как будет выглядеть обращение в членам-данным? Здесь идет обращение к статическим или динамическим данным npc?
Код:
CreateInvItems(npc, ItMi_Plants_Swampherb_01,50);
Ответить с цитированием
Старый 06.04.2010, 13:31   #2285
kraw

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Вопрос содержит и ответ. Если это либо класс, либо объект, и при этом не может быть классом, то чем это является?
Ответить с цитированием
Старый 06.04.2010, 14:01   #2286
more

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Проблема в том, что instance может быть классом.
В некоторых случаях (например, при описании дилогов) удобнее работать с instance как с классом. Даже синтаксис instance этому способствует.
Ответить с цитированием
Старый 06.04.2010, 14:16   #2287
kraw

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

В некоторых случаях удобнее телепортироваться, чем ходить пешком. Но мы, все же, ходим пешком, а не телепортируемся потому, что телепортироваться не умеем.

Возможно в каких-то случаях было бы удобнее с диалогом работать как с классом. Но это, все-таки не класс, а экземпляр класса. И с этим ничего нельзя поделать.
Ответить с цитированием
Старый 12.04.2010, 09:12   #2288
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Хотел бы спросить у знающих людей, что такое instance?
Инстанция - это реальный объект, инициализированный конкретными значениями и производный от класса или прототипа (это тоже объект с предварительной инициализацией, но без самостоятельного применения).
Инициализация всех инстанций и прототипов производится однократно при начале новой игры.
Ответить с цитированием
Старый 12.04.2010, 21:54   #2289
more

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Спасибо, VAM, про прототипы особенно.
Ответить с цитированием
Старый 23.04.2010, 18:08   #2290
zero_123

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Подскажите плиз, как 3ds файлы преобрзовать в max и наоборот?
Заранее спасибо!
Ответить с цитированием
Старый 24.04.2010, 12:13   #2291
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от zero 123 link=board=gothic&t=1105030050&goto=5717952 date=04/23/10, в 18:08:07
Подскажите плиз, как 3ds файлы преобрзовать в max и наоборот?
Заранее спасибо!
С помощью плагина KrxImpExp:
http://krximpexp.sourceforge.net/
Вообще с этими вопросами в тему "Модостроение" писать нужно, а не в тему "Скриптинга".
Отправить личное сообщение для Ответить с цитированием
Старый 03.08.2010, 13:11   #2292
zero_123

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Я создал НПС и решил создать к нему диалог. Скачал программу MirandaDialogCreator v1.2 и не знаю как ее запустить, потомучто она в формате .jar! Закидывал Readme в переводчик, но половина не понятно.

Если кто знает, подскажите как ее запустить!
Заранее спасибо!
Ответить с цитированием
Старый 03.08.2010, 13:36   #2293
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2zero 123:
Для того, чтобы можно было запустить файл в формате .jar, установите Java Runtime Environment (последняя версия 6 update 21):
http://java.com/ru/download/windows_...&host=java.com
Ответить с цитированием
Старый 09.08.2010, 11:50   #2294
dqdqdq

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Народ помогите плиз!
При компиляции на многих файлах, которые я даже не изменял, выдаётся ошибка "Функция должна возвращать значение".
Из-за ошибок нечего не компилирует!!!!
Как исправить???
Ответить с цитированием
Старый 25.08.2010, 12:12   #2295
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Привет всем! Не знаю, обсуждался ли тут такой вопрос, есть ли какие-либо фиксы или патчи к Spacer 1.41 первой Gothic. Спайсер вылетает раз в пару минут с ошибкой деления на ноль :(  причем вылет бывает даже от резкого поворота камеры :( и при выходе из редактора появляется сообщение Memory Leak :(
Ответить с цитированием
Старый 25.08.2010, 17:31   #2296
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

2JohaNBlack:
Тебе с этими вопросами нужно идти в тему модостроения, а не скриптинга. Здесь обсуждаются только вопросы по скриптам.
Что до самих вопросов, то здесь скачаешь МДК к Г1:
Gothic Mod Kit
Здесь обновление к нему:
Mod-Kit - Spacer Update
И проблем со спейсером не будет.
Отправить личное сообщение для Ответить с цитированием
Старый 26.08.2010, 15:58   #2297
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Здраствуйте. На странице 90 Vmazz писал, как можно из диалога вставить в мир НПС
В Stаrtup`e НЕ прописываешь Wld_InsertNpc.
Далее по окончании диалога вставляешь бандита(Wld_InsertNpc(BND_MY_666, "WP"), и он увидев ГГ нападает на него.
Расписание у НПС прописано, но он не появляется на вэйпойнте :(
Вот кусок диалога:
Cпойлер(щелкните, чтобы прочесть):
func void none_666_johan_whatHere_Info()
{
* * *AI_Output(other,self,"none_666_johan_whatHere_15_ 00"); * * *//Кто ты?
* * *AI_Output(self,other,"none_666_johan_whatHere_06_ 01"); * * *//Меня зовут Йохан.
* * *AI_Output(other,self,"none_666_johan_whatHere_15_ 02"); * * *//Что ты тут делаешь?
* * *AI_Output(self,other,"none_666_johan_whatHere_06_ 03"); * * *//Я готовлюсь к бою.
* * *AI_Output(other,self,"none_666_johan_whatHere_15_ 04"); * * *//Зачем?
* * *AI_Output(self,other,"none_666_johan_whatHere_06_ 05"); * * *//Ниже по тропе стоят два ублюдка из Нового Лагеря. Я собираюсь разделаться с ними!
* * *AI_Output(self,other,"none_666_johan_whatHere_05_ 01"); * * *//А теперь не мешай мне, я должен тренироваться.
* * *Wld_InsertNpc(none_2666_enemy01,"OW_PATH_SPAWN_EN EMY_JOHAN");
* * *Wld_InsertNpc(none_2667_enemy02,"OW_PATH_SPAWN_EN EMY_JOHAN");
* * *AI_StopProcessInfos(self);
* * *
* * *};

Если это важно, это первая Gothic, скрипт пишу в Gothic Sourcer v3.14.
Ответить с цитированием
Старый 26.08.2010, 16:28   #2298
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2JohaNBlack:
Судя по всему, у вас используется нестандартный вэйпойнт, которого нет в мире world.zen. Следовательно, он должен быть добавлен в список вэйпойнтов при редактировании этого мира.
Ответить с цитированием
Старый 26.08.2010, 17:13   #2299
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Dimus: Вэйпойнт я добавил через Спайсер, но этот вопрос уже решен :) попробовал вставить вместо этих двух НПС двух обычных орков и все получилось :)
Теперь новый вопрос. Как можно заставить НПС после его вызова в диалоге идти в определенную точку? Задумка такая - в пещере есть лагерь людей, и после разговора с одним из них недалеко от пещеры появляется группа орков и идет штурмовать пещеру. Орков я вызову на вейпойнт, а как заставить их прийти в точку в пещере?
Ответить с цитированием
Старый 26.08.2010, 18:31   #2300
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2JohaNBlack:
Например, можно отправить орков из этой группы на точку в пещере функцией AI_GotoWP(self,"вэйпойнт"). Разумеется это должны быть "особые" орки, чтобы данное действие коснулось только указанной группы, а не всех остальных орков.
Ответить с цитированием
Старый 26.08.2010, 18:59   #2301
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Dimus:
Cпойлер(щелкните, чтобы прочесть):
func void none_666_johan_whatHere_Info()
{
     AI_Output(other,self,"none_666_johan_whatHere_15_ 00");      //Кто ты?
     AI_Output(self,other,"none_666_johan_whatHere_06_ 01");      //Меня зовут Йохан.
     AI_Output(other,self,"none_666_johan_whatHere_15_ 02");      //Что ты тут делаешь?
     AI_Output(self,other,"none_666_johan_whatHere_06_ 03");      //Я готовлюсь к бою.
     AI_Output(other,self,"none_666_johan_whatHere_15_ 04");      //Зачем?
     AI_Output(self,other,"none_666_johan_whatHere_06_ 05");      //Ниже по тропе стоят два ублюдка из Нового Лагеря. Я собираюсь разделаться с ними!
     AI_Output(self,other,"none_666_johan_whatHere_05_ 01");      //А теперь не мешай мне, я должен тренироваться.
     AI_StopProcessInfos(self);
     Wld_InsertNpc(OrcWarriorJohan,"OW_PATH_SPAWN_ENEM Y_JOHAN");
     Wld_InsertNpc(OrcWarriorJohan,"OW_PATH_SPAWN_ENEM Y_JOHAN");
     AI_GoToWP(OrcWarriorJohan,"OW_PATH_10_JOHAN") ;
     };

Вот скрипт, особых орков сделал, они появляются, но просто стоят на месте появление Ow_path_spawn_enemy_johan :(
Ответить с цитированием
Старый 26.08.2010, 19:29   #2302
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2JohaNBlack:
Вэйпойнт "OW_PATH_10_JOHAN" существует? Один вставленный орк туда идёт?
Ответить с цитированием
Старый 26.08.2010, 19:42   #2303
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Dimus: Вэйпойнт существует, ни один из вставленных орков туда не идет. На OW_PATH_10_JOHAN вставляется сам НПС Йохан, с ним можно поговорить. Вэйнет между OW_PATH_SPAWN_ENEMY_JOHAN и OW_PATH_10_JOHAN создан. Я не знаю, что нужно прописывать у орков в строке start_aistate. Сейчас там написано ZC_Guard. Может быть это влияет? Если туда написать ZC_Orc_WalkAround, то орки начинают ходить между OW_PATH_SPAWN_ENEMY_JOHAN и соседним с ним вэйпойнтом, но на OW_PATH_10_JOHAN все равно не идут.
Ответить с цитированием
Старый 28.08.2010, 22:08   #2304
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Люди помогите!!!!

Как сделать чтобы после определенного диалога какой-то НПС стал мертвым.
Например:
 Вы сдаете кого-нибудь,скажем паладину,а потом после диалога тот,кого вы сдали умер.
Ответить с цитированием
Старый 28.08.2010, 22:53   #2305
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: В диалоге написать B_KillNpc(нужный НПС);
Ответить с цитированием
Старый 29.08.2010, 00:56   #2306
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Спасибо,JohaNBlack ты просто спас меня. Я делаю аддон и просто застрял на этом месте. А скажи:

как заставить ГГ прочитать письмо самому во время диалога.

Добавление от 08/29/10, в 01:16:52
Народ,у меня еще вопрос.

Мне нужно чтобы определенная реплика у НПС появлялась именно когда я выбираю нужный ВАРИАНТ из диалога.

if(Npc_KnowsInfo(other,DIA_Rupert_Offer_Yes))

Не работает. Выдает ошибку: Unknown identifier.
И так все время,но если дело касается ВЫБОРА в диалоге.
Ответить с цитированием
Старый 29.08.2010, 11:29   #2307
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: Насчет письма: B_UseItem(other,ид письма);
А насчет ошибки: проверь, что бы действительно был такой инстанс DIA_Rupert_Offer_Yes.
Ответить с цитированием
Старый 29.08.2010, 15:37   #2308
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Да,но DIA_rupert_Offer_yes это же не сам диалог,а просто вариант ответа.

он же не пишется через инстанс.

Добавление от 08/29/10, в 15:44:05
еще одна проблема:

Как сделать квест?

Имеется в виду наличие его в дневнике.
Ответить с цитированием
Старый 29.08.2010, 15:52   #2309
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: Если вариант диалога, то он должен быть упомянут через func void, пример из первой Готики:
Cпойлер(щелкните, чтобы прочесть):
func void DIA_Snaf_Zutaten_Info()
{
     AI_Output(other,self,"DIA_Snaf_Zutaten_15_00" );      //Что я могу для тебя сделать?
     AI_Output(self,other,"DIA_Snaf_Zutaten_01_01" );      //Ты, должно быть, любишь вкусно поесть. У меня тут новый рецепт: рагу из мясных жуков по снефски с грибами и рисом.
     AI_Output(self,other,"DIA_Snaf_Zutaten_01_02" );      //Ты получишь самую большую порцию, если сможешь принести мне трех жуков и несколько адских грибов... Я думаю, пяти будет достаточно.
     Info_ClearChoices(DIA_Snaf_Zutaten);
     Info_AddChoice(DIA_Snaf_Zutaten,"Ты хочешь, чтобы меня вырвало?",DIA_Snaf_Zutaten_KOTZ);
     Info_AddChoice(DIA_Snaf_Zutaten,"Звучит неплохо.",DIA_Snaf_Zutaten_DoIt);
};

func void DIA_Snaf_Zutaten_KOTZ()
{
     AI_Output(other,self,"DIA_Snaf_Zutaten_KOTZ_15_00 ");      //Ты хочешь, чтобы меня вырвало?
     AI_Output(self,other,"DIA_Snaf_Zutaten_KOTZ_01_01 ");      //Ты не обязан это есть, но, по крайней мере, мог бы попробовать! Приходи, если сможешь раздобыть то, о чем я просил.
     AI_Output(self,other,"DIA_Snaf_Zutaten_KOTZ_01_02 ");      //Я уже отправил одного за припасами, но он так и не вернулся: небось, сбежал в Новый Лагерь.
     Snaf_Zutaten = LOG_RUNNING;
     Log_CreateTopic(CH1_SnafsRecipe,LOG_MISSION);
     Log_SetTopicStatus(CH1_SnafsRecipe,LOG_RUNNIN G);
     B_LogEntry(CH1_SnafsRecipe,"Повар Снаф, живущий во внешнем кольце Старого Лагеря, послал меня раздобыть 3 мясных жука и 5  адских грибов для своего нового рецепта.");
     Info_ClearChoices(DIA_Snaf_Zutaten);
};

func void DIA_Snaf_Zutaten_DoIt()
{
     AI_Output(other,self,"DIA_Snaf_Zutaten_DoIt_15_00 ");      //Звучит неплохо.
     AI_Output(self,other,"DIA_Snaf_Zutaten_DoIt_01_01 ");      //Тогда иди и раздобудь то, о чем я тебя просил.
     AI_Output(self,other,"DIA_Snaf_Zutaten_DoIt_01_02 ");      //Я уже отправил одного за припасами, но он так и не вернулся: небось, сбежал в Новый Лагерь.
     Snaf_Zutaten = LOG_RUNNING;
     Snaf_FreeMBRagout = TRUE;
     Log_CreateTopic(CH1_SnafsRecipe,LOG_MISSION);
     Log_SetTopicStatus(CH1_SnafsRecipe,LOG_RUNNIN G);
     B_LogEntry(CH1_SnafsRecipe,"Повар Снаф, живущий во внешнем кольце Старого Лагеря, послал меня раздобыть 3 мясных жука и 5  адских грибов для своего нового рецепта. Я даже смогу попробовать его варево.");
     Info_ClearChoices(DIA_Snaf_Zutaten);
};
Ответить с цитированием
Старый 29.08.2010, 20:01   #2310
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Оно так и есть. Да. Но когда я в условии пишу:

Cпойлер(щелкните, чтобы прочесть):
instance DIA_Rupert_Killer(C_Info)
{
* * *npc = VLK_458_Rupert;
* * *nr = 4;
* * *condition = DIA_Rupert_Killer_Condition;
* * *information = DIA_Rupert_Killer_Info;
* * *permanent = FALSE;
* * *description = "Что ты здесь делаешь?";
};


func int DIA_Rupert_Killer_Condition()
{
* * *if(Npc_KnowsInfo(other,DIA_Rupert_Murder_Yes))
* * *{ * * *
* * * * * *return TRUE;
* * *};
};

func void DIA_Rupert_Killer_Info()
{
* * *AI_Output(other,self,"DIA_Rupert_Killer_15_19"); * * *//Что ты знаешь про убийство Рамиреза?
* * *AI_Output(self,other,"DIA_Rupert_Killer_03_32"); * * *//Что?! Я ничего н-не знаю... Отстань.
* * *AI_StopProcessInfos(self);
* *
};

Оно мне пишет: Unknown identifier - DIA_RUPERT_KILLER_YES

Так что приходится писать только DIA_RUPERT_KILLER в условии вместо DIA_RUPERT_KILLER_YES

func int у меня реагирует только на сам диалог а не на его вариант выбора.
Ответить с цитированием
Старый 29.08.2010, 20:37   #2311
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: Что-то я не совсем понял.
Оно мне пишет: Unknown identifier - DIA_RUPERT_KILLER_YES

Так что приходится писать только DIA_RUPERT_KILLER в условии вместо DIA_RUPERT_KILLER_YES
А где конкретно ты писал DIA_RUPERT_KILLER_YES?
Приведи пожалуйста тот вариант, в котором тебе ошибку выдает.
Ответить с цитированием
Старый 29.08.2010, 21:23   #2312
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Хорошо типичный вариант.Вот диалог с кассией:

Cпойлер(щелкните, чтобы прочесть):
instance DIA_Cassia_Arto(C_Info)
{
* * *npc = VLK_447_Cassia;
* * *nr = 2;
* * *condition = DIA_Cassia_Arto_Condition;
* * *information = DIA_Cassia_Arto_Info;
* * *permanent = FALSE;
* * *description = "Ты что-то знаешь про Арто?.";
};


func int DIA_Cassia_Arto_Condition()
{
* * *if((Join_Thiefs == TRUE))
* * *{
* * * * * *
* * *return TRUE;
* * *};
};

func void DIA_Cassia_Arto_Info()
{
* * *AI_Output(other,self,"DIA_Cassia_Arto_15_05"); * * *//Ты что-то знаешь про Арто?.
* * *AI_Output(self,other,"DIA_Cassia_Arto_16_11"); * * *//Зачем тебе это?
* * *Info_ClearChoices(DIA_Cassia_Arto);
* * *Info_AddChoice(DIA_Cassia_Arto,"Я хочу найти его.",DIA_Cassia_Arto_Find);
* * *Info_AddChoice(DIA_Cassia_Arto,"Не твое собачье дело.",DIA_Cassia_Arto_Dog);
* * *Info_AddChoice(DIA_Cassia_Arto,"Ты можешь заткнутся и ответить на вопрос?.",DIA_Cassia_Arto_Shut);
};

func void DIA_Cassia_Arto_Shut()
{
* * *AI_Output(other,self,"DIA_Cassia_Arto_Shut_15_06" ); *//Ты можешь заткнутся и ответить на вопрос?
* * *AI_Output(self,other,"DIA_Cassia_Arto_Shut_16_12" ); *//Да как ты смеешь так разговаривать со мной?
* * *AI_Output(self,other,"DIA_Cassia_Arto_Shut_16_13" ); *//Ответа ты не получишь.
* * *Info_ClearChoices(DIA_Cassia_Arto);
* * *Info_AddChoice(DIA_Cassia_Arto,"Да пошла ты в задницу,тварь!",DIA_Cassia_Arto_Shut_french connection uk);
* * *Info_AddChoice(DIA_Cassia_Arto,"Ладно,прости,я сорвался.",DIA_Cassia_Arto_Shut_Well);
};

func void DIA_Cassia_Arto_Find()
{
* * *AI_Output(other,self,"DIA_Cassia_Arto_Find_15_06" ); *//Я хочу найти его.
* * *AI_Output(self,other,"DIA_Cassia_Arto_Find_16_12" ); *//(удивленно) Зачем? Умереть решил?
* * *AI_Output(other,self,"DIA_Cassia_Arto_Find_15_07" ); *//Не совсем. Я найду его и тогда ему,так сказать,(громко) "не поздоровится".
* * *AI_Output(self,other,"DIA_Cassia_Arto_Find_16_13" ); *//ТЫ убьешь Арто?! В это я не верю.
* * *AI_Output(other,self,"DIA_Cassia_Arto_Find_15_08" ); *//Как хочешь. Но скажи мне что ты знаешь.
* * *AI_Output(self,other,"DIA_Cassia_Arto_Find_16_14" ); //Это идиотская затея. Арто - личность загадочная. Я не знаю,где искать его.
* * *AI_Output(self,other,"DIA_Cassia_Arto_Find_16_15" ); *//Попробуй поговорить с Рамирезом.
* * *Info_ClearChoices(DIA_Cassia_Arto);
};


А вот диалог с Рамирезом который должен начатся только при выборе варианта DIA_Cassia_Arto_find (вышеупомянутое)

Cпойлер(щелкните, чтобы прочесть):
instance DIA_Ramirez_Arto(C_Info)
{
* * *npc = VLK_445_Ramirez;
* * *nr = 8;
* * *condition = DIA_Ramirez_Arto_Condition;
* * *information = DIA_Ramirez_Arto_Info;
* * *permanent = FALSE;
* * *description = "Что ты знаешь про Арто?";
};

func int DIA_Ramirez_Arto_Condition()
{
* * *if(Npc_KnowsInfo(other,DIA_Cassia_Arto_Find) && (Join_Thiefs == TRUE))
* * *{
* * * * * *return TRUE;
* * *};
};

func void DIA_Ramirez_Arto_Info()
{
* * *AI_Output(other,self,"DIA_Ramirez_Arto_15_07"); * * *//Что ты знаешь про Арто?.
* * *AI_Output(self,other,"DIA_Ramirez_Arto_16_25"); * * *//C чего ты взял , что я знаю что-то?
* * *AI_Output(other,self,"DIA_Ramirez_Arto_15_08"); * * *//(серьезно) Кассия мне сказала об этом.
* * *AI_Output(self,other,"DIA_Ramirez_Arto_16_26"); //Значит ты был у Кассии. Но почему Я должен тебе помочь?
* * *Info_ClearChoices(DIA_Ramirez_Arto);
* * *Info_AddChoice(DIA_Ramirez_Arto,"Мы должны держатся вместе.",DIA_Ramirez_Arto_Together);
* * *Info_AddChoice(DIA_Ramirez_Arto,"Понятия не имею.",DIA_Ramirez_Arto_Know);
* * *Info_AddChoice(DIA_Ramirez_Arto,"Потому что иначе - я убью тебя!.",DIA_Ramirez_Arto_Kill);
* * *Info_AddChoice(DIA_Ramirez_Arto,"Что ты хочешь за свою информацию?.",DIA_Ramirez_Arto_What);
};

При компиляции мне пишет: Unknown identifier - DIA_CASSIA_ARTO_FIND в диалоге с рамирезом.
Ответить с цитированием
Старый 29.08.2010, 22:58   #2313
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: Попробуй в диалоге с Рамирезом сослаться не на DIA_CASSIA_ARTO_FIND, а на DIA_CASSIA_ARTO, там можно использовать только инстанс.
Ответить с цитированием
Старый 29.08.2010, 23:25   #2314
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Я так и сделал. Просто прикол уже не тот получается.
Если я выбираю вариант в котором убиваю Кассию,у Рамиреза все равно реплика появляется.Это уже не то.Мне это портит все. Даже не знаю что делать.
Ответить с цитированием
Старый 29.08.2010, 23:50   #2315
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: Ну тогда попробуй ввести глобальную переменную, и после фразы Кассии "Попробуй поговорить с Рамирезом" присвой ей значение, например 1, а в диалоге с Рамирезом проверить ее.
Cпойлер(щелкните, чтобы прочесть):
func int DIA_Ramirez_Arto_Condition()
{
* * if (x == 1) && (Join_Thiefs == TRUE))
* * {
* * * * * return TRUE;
* * };
};

например так.
По идее должно сработать.
Вот только как ввести глобальную переменную я не знаю, не нужно было пока :)
Ответить с цитированием
Старый 29.08.2010, 23:52   #2316
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

а ты не знаешь кто может помочь с этим?

Добавление от 08/29/10, в 23:56:59
А так я еще хочу спросить:
1.Как создать квест в плане занесения его в дневник. Чтобы он существовал.
2.как сделать так чтобы например когда на тебя после диалога нападает тот же лорд Хаген, и когда убиваешь его,он просто падал замертво,а не падал раненым.(как бандюки)
Ответить с цитированием
Старый 30.08.2010, 00:12   #2317
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25: Вот, узнал, глобальные переменные вводятся в файле Story_Globals, тип var int, потом в диалоге просто присвоить TRUE или FALSE, и еще в func void DIA_Cassia_Arto_Find() в начале лучше эту переменную обнулить на всякий случай.
Насчет дневника и квеста не знаю, а насчет смерти - вроде нужно менять гильдию, от нее зависит обморок или мгновенная смерть.  Попробуй в диалоге с нужным НПС B_ChangeGuild(НПС,GIL_None), вместо GIL_None можно поставить нужную гильдию, например ту же бандитскую GIL_Bdt. Правда я не знаю, сработает ли это все или нет.
Ответить с цитированием
Старый 30.08.2010, 00:34   #2318
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Что значит обнулить переменную?
Ответить с цитированием
Старый 30.08.2010, 11:18   #2319
JohaNBlack

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2orebaron25:
Cпойлер(щелкните, чтобы прочесть):

func void DIA_Cassia_Arto_Find()
{
* *x = 0;
* * AI_Output(other,self,"DIA_Cassia_Arto_Find_15_06") ; *//Я хочу найти его.
* * AI_Output(self,other,"DIA_Cassia_Arto_Find_16_12") ; *//(удивленно) Зачем? Умереть решил?
* * AI_Output(other,self,"DIA_Cassia_Arto_Find_15_07") ; *//Не совсем. Я найду его и тогда ему,так сказать,(громко) "не поздоровится".
* * AI_Output(self,other,"DIA_Cassia_Arto_Find_16_13") ; *//ТЫ убьешь Арто?! В это я не верю.
* * AI_Output(other,self,"DIA_Cassia_Arto_Find_15_08") ; *//Как хочешь. Но скажи мне что ты знаешь.
* * AI_Output(self,other,"DIA_Cassia_Arto_Find_16_14") ; //Это идиотская затея. Арто - личность загадочная. Я не знаю,где искать его.
* * AI_Output(self,other,"DIA_Cassia_Arto_Find_16_15") ; *//Попробуй поговорить с Рамирезом.
* * x = 1;
* * Info_ClearChoices(DIA_Cassia_Arto);
};


func int DIA_Ramirez_Arto_Condition()
{
* * if (x == 1) && (Join_Thiefs == TRUE))
* * {
* * * * * return TRUE;
* * };
};

Вот это должно сработать, только не забудь эту переменную прописать в Story_Globals.
Ответить с цитированием
Старый 30.08.2010, 11:24   #2320
orebaron25

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Я уже все сделал. Все работает. Можно обойтись и без обнуления переменной. Просто прописать в Story_Globals а дальше в диалоге - и все. Спасибо за советы!!!
Ответить с цитированием
Страница 58 из 65 « Первая 8485152535455565758 59606162636465


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе

Смайлы Вкл.
[IMG] код Вкл.
HTML код Вкл.


Текущее время: 13:39. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2022

Яндекс.Метрика