Новости Большое интервью с HotA Crew - часть 2
  • 1.088
  • 0
HotA Crew о Кронверке и будущих обновлениях (часть 2) Какие герои будут вести армии Кронверка? Герои-воины зовутся Вожди, маги — Старейшины. Их параметры и способности подчеркнут сильные стороны...
Новости Большое интервью с HotA Crew - часть 1
  • 914
  • 0
HotA Crew о Кронверке и будущих обновлениях Важно: весь контент по Кронверку и системе событий находится в разработке, и может ещё поменяться. Итак, следующим городом будет Кронверк. Почему...
С Новым 2025 годом!
  • 2.585
  • 18
Вот и завершается этот год - местами странный, местами крутой, но точно запоминающийся, полный неожиданностей и ярких моментов. Мы благодарны вам за то, что вы были рядом, за все наши совместные...
Новости В Heroes of Might and Magic 3 теперь можно поиграть в веб-браузере
  • 1.364
  • 3
Совсем недавно энтузиасты из России смогли портировать игру HoMM3 в браузер. Причем веб-версия позволяет пройти все сюжетные компании и даже поиграть по сети. Чтобы сыграть в классику необходимо...

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

WoOliN

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

Milaskus

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

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

WoOliN

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

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

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

Milaskus

Постоялец
Участник форума
Регистрация
13 Авг 2020
Сообщения
61
Реакции
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
Сообщения
24.388
Реакции
20.072
Баллы
1.341
Лучшие ответы
775
@Milaskus, убрать permanent с диалога нельзя. Надо чтобы условие не выполнялось и все. На скрине все верно. dia_pedro_aufnahme_noperm станет TRUE и диалог больше не покажется. Вроде все верно
 

Milaskus

Постоялец
Участник форума
Регистрация
13 Авг 2020
Сообщения
61
Реакции
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
Сообщения
24.388
Реакции
20.072
Баллы
1.341
Лучшие ответы
775
@Milaskus, а диалог новый или старый переделанный? Любой новый диалог требует запускать новой игры.
 

Milaskus

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

Liker

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

Kor.Angar

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

Вложения

Сверху Снизу