Новости Ремейк "Готики 1" | Трейлер Showcase 2024
  • 2.832
  • 7
Новички, пришло время принять реальность и смириться с судьбой. Чувствуйте себя как дома в Долине Рудников, месте, полном опасностей, преступлений и жадности. Вам предстоит оставаться здесь очень...
Готика 2: Другая история Gothic II: Other Story - Описание мода
  • 20.212
  • 77
Готика 2: Другая история / Other Story - это глобальная модификация для игры «Готика 2: Ночь Ворона». Её цель - сделать игру более нелинейной, с большим количеством вариантов выбора и...
Новости Старт 6го сезона Grim League
  • 3.307
  • 1
4 мая в 18-00 стартует шестой сезон Community лиги по одной из лучших игр в жанре arpg Grim Dawn. Сезон представляет собой глобальную модификацию игры, включающую в себя расширение мира, изменение...
Новости Дата релиза Baldur's Gate III
  • 22.302
  • 1
Наконец-то дождались - "Baldur's Gate III" покидает ранний доступ, и в августе 2023 выходит в полноценный релиз, о чём стало известно на церемонии "The Game Awards 2022". С момента выхода игры в...

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

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.037
Реакции
2.858
Баллы
681
Лучшие ответы
349

Milaskus

Постоялец
Участник форума
Регистрация
13 Авг 2020
Сообщения
52
Реакции
70
Баллы
20
Лучшие ответы
0
А эта переменная задана где-то предварительно?

Обычно их файле Story_Globals.d задают в виде
var int mis_BECOMEKDW;
Нет, искал где переменные миссий находятся. Не нашел, думал что так прокатит. Поищу спасибо за ответ
 

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.037
Реакции
2.858
Баллы
681
Лучшие ответы
349
Поищи по переменной любого существующего квеста.

Искать легче всего так, как показано на скринах ниже
11.jpg 12.jpg 13.jpg

Окно сообщений с результатами поиска находится в левом нижнем углу программы.
 

Milaskus

Постоялец
Участник форума
Регистрация
13 Авг 2020
Сообщения
52
Реакции
70
Баллы
20
Лучшие ответы
0
Научите пожалуйста способу как сделать диалог.
Хочу сделать чтобы гг проходил проверку на GILD_KDW(мага воды) и блокировал(удалял) строку в меню диалога (убирал permanent = TRUE) после ответа. По тексту понятно чтобы не учили маги воды. (я знаю что они и так не учат, просто хочу оставить возможность спросить.) Следовал примеру Педро(у него 3 варианта диалога). И никак не выходит, всегда один вариант, полное отсутствие строки о повышении круга магии из данного примера.. Я не понимаю как работает вариант с Педро. Перебирал разные варианты (сравнения и исключения гильдий, без гильдии), но так и не разобрался.





{
npc = kdf_504_parlan;
nr = 99;
condition = dia_parlan_circle1_condition;
information = dia_parlan_circle1_info;
permanent = TRUE;
description = "Научи меня первому Кругу магии.";
};

var int dia_pedro_aufnahme_noperm; (текст для примера я писал просто dia_kdw_noperm)
func int dia_parlan_circle1_condition()
{
if(Npc_KnowsInfo(hero,dia_parlan_mage) && (other.guild == GIL_KDF) && (Npc_GetTalentSkill(other,NPC_TALENT_MAGE) == 0) && (dia_pedro_aufnahme_noperm == FALSE))
{
return TRUE;
};
};


func void dia_parlan_circle1_info()
{
AI_Output(other,self,"DIA_Parlan_TECH_CIRCLE1_15_00"); //Научи меня первому Кругу магии.
if(b_teachmagiccircle(self,other,1))
{
AI_Output(self,other,"DIA_Parlan_TECH_CIRCLE1_05_01"); //Первый Круг магии позволит тебе использовать руны, созданные тобой.
AI_Output(self,other,"DIA_Parlan_TECH_CIRCLE1_05_02"); //Теперь ты достоин узнать формулы заклинаний для создания собственных рун.
AI_Output(self,other,"DIA_Parlan_TECH_CIRCLE1_05_03"); //Каждый из нас специализируется на своей области магии. Так что хорошо подумай, в какой области хочешь специализироваться ты.
}

if(hero.guild ==GIL_KDW)
{
AI_Output(self,other,"dia_mod_gilkdw_parlan_circle_05_01"); //О Инос, что творит этот Маг..
AI_Output(self,other,"dia_mod_gilkdw_parlan_circle_05_02"); //Ты Маг Воды, как ты можешь просить такое?!
AI_Output(self,other,"dia_mod_gilkdw_parlan_circle_05_03"); //НЕТ! Кругам магии мы МАГИ ОГНЯ, обучаем только Магов Огня!
dia_pedro_aufnahme_noperm = TRUE;
};
};


instance dia_pedro_aufnahme(C_INFO)
{
npc = nov_600_pedro;
condition = dia_pedro_aufnahme_condition;
information = dia_pedro_aufnahme_info;
permanent = TRUE;
description = "Я хочу стать послушником.";
};


var int dia_pedro_aufnahme_noperm;

func int dia_pedro_aufnahme_condition()
{
if(Npc_KnowsInfo(hero,dia_pedro_rules) && (dia_pedro_aufnahme_noperm == FALSE))
{
return TRUE;
};
};

func void b_dia_pedro_aufnahme_choice()
{
Info_ClearChoices(dia_pedro_aufnahme);
Info_AddChoice(dia_pedro_aufnahme,"Я еще немного подумаю над этим.",dia_pedro_aufnahme_no);
Info_AddChoice(dia_pedro_aufnahme,"Да, я хочу посвятить свою жизнь служению Инносу.",dia_pedro_aufnahme_yes);
};

func void dia_pedro_aufnahme_info()
{
AI_Output(other,self,"DIA_Pedro_AUFNAHME_15_00"); //Я хочу стать послушником.
Npc_PerceiveAll(self); Эту строку подставлял роли не сыграло..
if(hero.guild != GIL_NONE)
{
AI_Output(self,other,"DIA_Pedro_AUFNAHME_09_01"); //Ты уже выбрал свой путь. Путь магии закрыт для тебя.
dia_pedro_aufnahme_noperm = TRUE;
}
else if(Npc_KnowsInfo(other,dia_addon_pedro_statuette))
{
AI_Output(self,other,"DIA_Addon_Pedro_AUFNAHME_09_02"); //Твое решение окончательно? Пути назад для тебя уже не будет.
b_dia_pedro_aufnahme_choice();
}
else if((hero.guild == GIL_NONE) && (Npc_HasItems(hero,itmi_gold) >= SUMME_KLOSTER) && Wld_DetectNpc(self,follow_sheep,NOFUNC,-1) && (Npc_GetDistToNpc(self,other) < 1000))
{
AI_Output(self,hero,"DIA_Pedro_AUFNAHME_09_03"); //Я вижу, ты принес необходимое приношение. Если ты действительно желаешь этого, ты можешь стать послушником.
AI_Output(self,hero,"DIA_Pedro_AUFNAHME_09_04"); //Однако, если ты примешь это решение, пути назад не будет - хорошо подумай, твой ли это путь!
b_dia_pedro_aufnahme_choice();
}
else
{
AI_Output(self,other,"DIA_Pedro_AUFNAHME_09_02"); //Ты не принес необходимое приношение.
};
};
 

Liker

Демиург
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
21 Фев 2016
Сообщения
21.833
Реакции
17.374
Баллы
1.291
Лучшие ответы
739
@Milaskus, убрать permanent с диалога нельзя. Надо чтобы условие не выполнялось и все. На скрине все верно. dia_pedro_aufnahme_noperm станет TRUE и диалог больше не покажется. Вроде все верно
 

Milaskus

Постоялец
Участник форума
Регистрация
13 Авг 2020
Сообщения
52
Реакции
70
Баллы
20
Лучшие ответы
0
@Milaskus, убрать permanent с диалога нельзя. Надо чтобы условие не выполнялось и все. На скрине все верно. dia_pedro_aufnahme_noperm станет TRUE и диалог больше не покажется. Вроде все верно
Тут хотел чтобы он вначале текст проговорил. А получается что нет самого варианта диалога изначально. Вот пример из вступления в Ги МВ.

instance DIA_MOD_SATURAS_GILKDW_JOIN(C_INFO)
{
npc = kdw_1400_addon_saturas_nw;
nr = 700;
condition = dia_mod_saturas_gilkdw_join_condition;
information = dia_mod_saturas_gilkdw_join_info;
permanent = TRUE;
description = "Я могу стать Магом Воды?";
};





var int DIA_MOD_SATURAS_GILKDW_join_noperm;
func int dia_mod_saturas_gilkdw_join_condition()
{
if((MIS_BECOMEKDW == LOG_Running) && (DIA_MOD_SATURAS_GILKDW_join_noperm == FALSE) && (other.guild == GIL_NONE))
{
return TRUE;
};
};



func void b_dia_mod_saturas_gilkdw_join_choice()
{
Info_ClearChoices(DIA_MOD_SATURAS_GILKDW_JOIN);
Info_AddChoice(DIA_MOD_SATURAS_GILKDW_JOIN,"Мне надо подумать.",dia_mod_saturas_gilkdw_no);
Info_AddChoice(DIA_MOD_SATURAS_GILKDW_JOIN,"Да, я желаю вступить в круг Магов Воды.",dia_mod_saturas_gilkdw_yes);
};





func void dia_mod_saturas_gilkdw_join_info()
{
AI_Output(other,self,"DIA_mod_Saturas_gilkdw_Join_info_15_00"); //Я могу стать Магом Воды?
Npc_PerceiveAll(self);

if(hero.guild != GIL_NONE)
{
AI_Output(self,other,"DIA_mod_Saturas_gilkdw_join_info_14_05"); // Ты являешься членом другой гильдии, и путь Мага Воды для тебя закрыт.
DIA_MOD_SATURAS_GILKDW_join_noperm = TRUE;
}
else if((hero.guild == GIL_NONE) && (mis_addon_lares_ornament2saturas == LOG_RUNNING) && (mis_addon_vatras_wherearemissingpeople == LOG_SUCCESS)) //LOG_RUNNING;
{
AI_Output(self,other,"DIA_mod_Saturas_gilkdw_join_14_00"); // Ты узнал причину пропажи жителей острова?
AI_Output(other,self,"DIA_mod_Saturas_gilkdw_join_15_01"); // Да, я уже доложил Ватрасу.
AI_Output(self,other,"DIA_mod_Saturas_gilkdw_join_14_01"); // Хорошо, ты достаточно помог нам.
AI_Output(self,other,"DIA_mod_Saturas_gilkdw_join_14_02"); // Тперь ты можешь вступить в Маги Воды?
b_dia_mod_saturas_gilkdw_join_choice();
}
else if(hero.guild == GIL_NONE)
{
AI_Output(self,other,"DIA_mod_Saturas_gilkdw_join_14_03"); // Ты узнал причину пропажи жителей острова?
AI_Output(other,self,"DIA_mod_Saturas_gilkdw_join_15_02"); // Еще нет.
AI_Output(self,other,"DIA_mod_Saturas_gilkdw_join_14_04"); // (Разгневан)Тогда не беспокой меня пока не сделаешь то, что должен!!!
AI_StopProcessInfos(self);
};
};

Просто не появляется диалог, "Ты являешься членом другой гильдии, и путь Мага Воды ы являешься членом другой гильдии, и путь Мага Воды " А то что по скрипту все правильно, может и правильно. Результата нет..
 

Liker

Демиург
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
21 Фев 2016
Сообщения
21.833
Реакции
17.374
Баллы
1.291
Лучшие ответы
739
@Milaskus, а диалог новый или старый переделанный? Любой новый диалог требует запускать новой игры.
 

Milaskus

Постоялец
Участник форума
Регистрация
13 Авг 2020
Сообщения
52
Реакции
70
Баллы
20
Лучшие ответы
0
@Milaskus, а диалог новый или старый переделанный? Любой новый диалог требует запускать новой игры.
Диалог новый. каждое изменение проверяю, запуском новой игры после смены скриптов. Когда "G" нажимаешь в игре там написано два варианта гильдии "GUILD" и "GUILDTRUE". до диалога, при выполнении всех условий вступления, когда уже можно вступить. Вызывал CH. Менял гильдию. Оба показателя "Паладин" к примеру. И диалог просто исчезает при общении. Могу видео для наглядности записать.
 

Liker

Демиург
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
21 Фев 2016
Сообщения
21.833
Реакции
17.374
Баллы
1.291
Лучшие ответы
739
@Milaskus, 7 лет занимаюсь готикой, до сих пор не знаю что такое true guild и чем она от guild отличается... Ну мб кто поможет.
 

Kor.Angar

Гвардеец
Команда форума
Редактор раздела
Модостроитель
Тестировщик
 
Участник форума
Регистрация
2 Июн 2019
Сообщения
1.456
Реакции
603
Баллы
250
Лучшие ответы
44
тебе проще сделать под это отдельную новую инстнацию. например вот так
 

Вложения

Сверху Снизу