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

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

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

MaGoth

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

Вложения

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

RPD

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

ElderGamer


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

Вложения

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

RPD

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

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.
 
Последнее редактирование:
Сверху Снизу