• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

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

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 577
Последнее редактирование модератором:

RPD

Участник форума
Регистрация
13 Ноя 2023
Сообщения
118
Благодарности
3
Баллы
40
В мод-фиксе у меня призванные создания ведут активный поиск атакующих ГГ неписей с помощью периодического вызова функции Wld_DetectNpc. Но можно ли её использовать вообще без указания инстанции, состояния или гильдии непися, которого нужно обнаружить, я не знаю. Нужно пробовать.
Нет проблем с использованием ее без указания параметров - функция это предусматривает. У меня скорее проблема, что я не совсем представляю как вызывать функцию периодически (когда и каким образом)
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.408
Благодарности
3.237
Баллы
525
Посмотри файл скрипта во вложении.
 

Вложения

  • ZS_MM_SummonedByPC.d.txt
    24,6 KB · Просмотры: 24

RPD

Участник форума
Регистрация
13 Ноя 2023
Сообщения
118
Благодарности
3
Баллы
40
Посмотри файл скрипта во вложении.
Я решил сделать проще:

Daedalus:
    if(Npc_IsPlayer(other) == true)
    {
        var C_NPC scavenger; scavenger = Hlp_GetNpc(BogdanScavenger);
        var C_NPC keiler; keiler = Hlp_GetNpc(BogdanKeiler);
       
        PrintScreen(ConcatStrings("check ",self.name),1,-1,FONT_Screen,3);
        if(Hlp_IsValidNpc(scavenger) && (Npc_GetDistToNpc(scavenger,other) <= 500))
        {
            PrintScreen("c zsmmattack! ",1,-1,FONT_Screen,3);
            Npc_ClearAIQueue(scavenger);
            Npc_SetTarget(scavenger,self);
            B_ClearPerceptions(scavenger);
            AI_StartState(scavenger,ZS_MM_Attack,0,"");
        };
        if(Hlp_IsValidNpc(keiler) && (Npc_GetDistToNpc(keiler,other) <= 500))
        {
            PrintScreen("c zsmmattack!",1,-1,FONT_Screen,3);
            Npc_ClearAIQueue(keiler);
            Npc_SetTarget(keiler,self);
            B_ClearPerceptions(keiler);
            AI_StartState(keiler,ZS_MM_Attack,0,"");
        };
    };
Внедрил данный код в loop zs_mm_attack, zsattack и zs_mm_threaten.
 
Последнее редактирование:

RPD

Участник форума
Регистрация
13 Ноя 2023
Сообщения
118
Благодарности
3
Баллы
40
Вопрос, каким образом вызывать функцию показа текста на листе бумаги без использования самого предмета или букстенда? Просто вызвать посреди каких-либо скриптов в диалогах например?

Upd:
Вызывается почему -то везде, но не в диалогах. Причем я пробовал вызывать ее как просто в info, так и в выборках. Никак не хочет
 
Последнее редактирование:

RPD

Участник форума
Регистрация
13 Ноя 2023
Сообщения
118
Благодарности
3
Баллы
40
Смена цвета текста, дополнительное диалоговое окно в архолосе - это все реализовано с внедрением новых зависимостей непосредтсвенно код движка или ничего сверхестественного проделано не было? Мне, как пользователю, просто инстересно могу ли я это использовать у себя в поректах, есть ли сходники, может плагин какой?
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Здраствуйте, я хочу создать зелье для того, чтобы лесное зверьё перестало быть агрессивным к ГГ. Подскажите, есть какой-то атрибут отвечающий за это?
 

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
872
Благодарности
501
Баллы
245
Здраствуйте, я хочу создать зелье для того, чтобы лесное зверьё перестало быть агрессивным к ГГ. Подскажите, есть какой-то атрибут отвечающий за это?
За реагирование зверья на врагов отвечает B_MM_AssessEnemy.
Если тебе нужно,чтобы все зверье не игнорировало на ГГ то, как вариант в инстанции зелья пропиши переменную,типа:
Код:
instance ItPo_xxx(C_Item)
{
    name = NAME_Trank;
    mainflag = ITEM_KAT_POTIONS;
    flags = 0;
    visual = "xxx.3ds";
    material = MAT_GLAS;
    on_state[0] = Use_xxx;
    scemeName = "POTIONFAST";
    description = name;
};

func void Use_xxx()
{
    if(Npc_IsPlayer(self))
    {
        usexxx = true;
    };
};
а в B_MM_AssessEnemy сразу сверху
Код:
if(Npc_IsPlayer(other) && usexxx == true)
    {
        return;
    };
не забыв прописать переменную в сториглоб.
 

MW 7


Модостроитель
Регистрация
26 Мар 2004
Сообщения
2.003
Благодарности
973
Баллы
295
func c_item Npc_GetInvItem
func c_npc Hlp_GetNpc

а есть аналогичная функции для c_info ?
 

Oxbow

Участник форума
Регистрация
22 Дек 2017
Сообщения
266
Благодарности
33
Баллы
200
Подскажите как можно сделать в Готике, чтобы НПС агрессировал на открытие сундука, но после диалога игнорировал (типо разрешает) открытие сундука?

И еще подскажите, как сделать затемнение экрана? Есть такая возможность?
 
Последнее редактирование:

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
457
Благодарности
276
Баллы
230
И еще подскажите, как сделать затемнение экрана?
Скрипты в "System\Autorun\".
Тест - F10 в игре.

Подскажите как можно сделать в Готике, чтобы НПС агрессировал на открытие сундука, но после диалога игнорировал (типо разрешает) открытие сундука?
Изучаем: Vam_tutor.chm -> Уроки скриптологии, часть 2 -> 5. Функции обработки восприятий людей -> Функция реакции людей на использование МОB's -> func void B_AssessUseMob().
Заходим в свои скрипты: "...Scripts\Content\AI\Human\B_Human\B_AssessUseMob.d"
включаем голову и меняем условия на своё усмотрение.
 

Вложения

  • DarkScreenTest_Game.d
    232 байт · Просмотры: 5
  • DarkScreenTest_VFX.d
    754 байт · Просмотры: 3
Последнее редактирование:

DanilaDNL

Участник форума
Регистрация
4 Янв 2022
Сообщения
2
Благодарности
0
Баллы
35
Господа, а есть какая-нибудь функция возведения в степень?
Не нашел нигде эту информацию в доках и никто как будто никогда не спрашивал.
Может это запретный вопрос?)
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.879
Благодарности
6.761
Баллы
1.625
DanilaDNL, прям стандартная, из дедалуса, без расширений типа икаруса, лего, ниндзи и юниона? такой функции нет.
 
Сверху Снизу