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

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

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

MaGoth

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

Вложения

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

enil9

Участник форума
Регистрация
25 Май 2014
Сообщения
66
Благодарности
14
Баллы
165
Спасибо, конечно, но не знаю, смогу ли я это реализовать
Как вариант взять за основу https://worldofplayers.ru/threads/38435/
Кто мешает
заменить
if(Wld_GetMobState(hero,"STOVE") == 1) && Npc_HasItems(hero,ItFoMuttonRaw)
PLAYER_MOBSI_PRODUCTION = 10;
AI_ProcessInfos(hero);
return;
};

на
if(Wld_GetMobState(hero,"STOVE") == 1) && ( Npc_HasItems(hero,ItFoMuttonRaw)+
Npc_HasItems(hero,ItFo
ТвойМясс1)+...ост.мясс >0)
PLAYER_MOBSI_PRODUCTION = 10;
AI_ProcessInfos(hero);
return;
};

написать для каждого мясс instance PC_ITFOтвой_мясс(C_Info)
и если нужно добавить виды жаренного твоего мясс
Почему у вас тут и приготовление зелий
Потребление зелий по горячей клавише.
может вы сами мне напишете этот диалог
Тут разобраться то надо в одном скрипте.:D
А как-же попытки реализовать задуманное самостоятельно.
-поиски -тупик -отчаяние - наитие- и наконец ... эврика.
И ты хочешь, чтобы я всего этого тебя лишил ;)
 
Последнее редактирование:

Kreol Nekr

Участник форума
Регистрация
21 Ноя 2014
Сообщения
229
Благодарности
109
Баллы
190
Я не понимаю, почему в этом скрипте все в одной куче написано?! Уж надо бы как то сделать котлеты отдельно а тараканов отдельно. Почему у вас тут и приготовление зелий и жарение мяса?! Я скопировал только часть, которая относится к мясу, изменил названия инстанций на свои, компилировалось все без проблем, но мясо падальщика, которое я добавил не жарится ни на сковороде, ни на костре, ни в котле, ни на алхимическом столе: " И КАК Я ЭТО СДЕЛАЮ" говорит ГГ!

Как вариант взять за основу https://worldofplayers.ru/threads/38435/
Кто мешает
заменить
if(Wld_GetMobState(hero,"STOVE") == 1) && Npc_HasItems(hero,ItFoMuttonRaw)
PLAYER_MOBSI_PRODUCTION = 10;
AI_ProcessInfos(hero);
return;
};

на
if(Wld_GetMobState(hero,"STOVE") == 1) && ( Npc_HasItems(hero,ItFoMuttonRaw)+
Npc_HasItems(hero,ItFo
ТвойМясс1)+...ост.мясс >0)
PLAYER_MOBSI_PRODUCTION = 10;
AI_ProcessInfos(hero);
return;
};

написать для каждого мясс instance PC_ITFOтвой_мясс(C_Info)
и если нужно добавить виды жаренного твоего мясс
У меня написано все так же как и тут! Быть может вы сами мне напишете этот диалог? Я вам инстанции дам. Напишите пожалуйста и скиньте скриптом готовым скажите куда вставить
 
Последнее редактирование модератором:

НастасьСанна

Участник форума
Регистрация
6 Дек 2012
Сообщения
350
Благодарности
521
Баллы
325
Я не понимаю, почему в этом скрипте все в одной куче написано?! Уж надо бы как то сделать котлеты отдельно а тараканов отдельно. Почему у вас тут и приготовление зелий и жарение мяса?! Я скопировал только часть, которая относится к мясу, изменил названия инстанций на свои, компилировалось все без проблем, но мясо падальщика, которое я добавил не жарится ни на сковороде, ни на костре, ни в котле, ни на алхимическом столе: " И КАК Я ЭТО СДЕЛАЮ" говорит ГГ!
Во-первых, на надо катить бочку на автора. Не раньше, чем сами напишете подобный урок. Кроме того, там все правильно, см. описание - использование горячих клавиш лечения еще и для обжарки мяса. Не нравится - добро пожаловать в Спейсер, править все сковородки и плиты во всех ZEN-ах.

Во-вторых, конечно, не работает, т.к. для использования плиты и сковороды нужен кусок обычного сырого мяса, а для алхимического стола - пробирка. А у вас их нет в инвентаре. Обойти без правки ZEN и анимаций можно просто - создавать лишний кусок сырого мяса до начала взаимодействия с плитой и удалять его (уже обжаренный) после.

И нет, я не буду писать готовый скрипт.
 

Kreol Nekr

Участник форума
Регистрация
21 Ноя 2014
Сообщения
229
Благодарности
109
Баллы
190
Во-первых, на надо катить бочку на автора. Не раньше, чем сами напишете подобный урок. Кроме того, там все правильно, см. описание - использование горячих клавиш лечения еще и для обжарки мяса. Не нравится - добро пожаловать в Спейсер, править все сковородки и плиты во всех ZEN-ах.

Во-вторых, конечно, не работает, т.к. для использования плиты и сковороды нужен кусок обычного сырого мяса, а для алхимического стола - пробирка. А у вас их нет в инвентаре. Обойти без правки ZEN и анимаций можно просто - создавать лишний кусок сырого мяса до начала взаимодействия с плитой и удалять его (уже обжаренный) после.

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

neromont


Модостроитель
Регистрация
12 Мар 2011
Сообщения
675
Благодарности
662
Баллы
245
Подскажите пожалуйста в чем разница между PrintScreen и AI_PrintScreen?
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
PrintScreen и AI_PrintScreen
Насколько я понимаю, AI_PrintScreen может встраиваться в AI-очередь и выводить надпись на экран в соответствии с этой очередью, например, после проигрывания определённой анимации.
 

xxxoc

Участник форума
Регистрация
12 Май 2011
Сообщения
27
Благодарности
5
Баллы
155
Наверное вопрос из ряда фантастики..
Возможно ли автоматически в определенное игровое время телепортировать героя в другую локацию? Допустим, 12:00 игровых суток - героя телепортит в другую локацию.
 

hell9999

Участник форума
Регистрация
12 Апр 2008
Сообщения
2.049
Благодарности
1.168
Баллы
340
Наверное вопрос из ряда фантастики..
Возможно ли автоматически в определенное игровое время телепортировать героя в другую локацию? Допустим, 12:00 игровых суток - героя телепортит в другую локацию.
Собственно, тут всего лишь нужен будет глобальный триггер, который будет вести отсчет времени, по окончанию которого телепортировать ГГ на определенный вейпойнт, который можно расположить чуть выше точки перехода на другую локацию. ГГ с нее упадет прямо в точку перехода. При желании момент телепортации и смены окружения можно замаскировать черным экраном (который можно реализовать проигрыванием нужного видеофайла или пфх эффекта с чернотой на весь экран).
По глобальному триггеру есть урок тут-же на сайте. Все остальное - дело техники.
 

Python 155

Участник форума
Регистрация
14 Апр 2013
Сообщения
42
Благодарности
1
Баллы
165
Здравствуйте, подскажите пожалуйста. После декомпиляции МР 2.0 внесении изменений и повторной его компиляции в игре перестает расходоваться выносливость, при отравлении убывает. Пробовал на SNC 1.1 декомпилировал, ничего не менял, снова компилировал собирал та же история, выносливость в боевке перестает убывать, у обоих видов оружия. В чем может быть проблема???
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.860
Благодарности
6.740
Баллы
1.625

Python 155

Участник форума
Регистрация
14 Апр 2013
Сообщения
42
Благодарности
1
Баллы
165
А как то решить эту проблему можно???
 

Beowulf

Участник форума
Регистрация
21 Ноя 2010
Сообщения
1.940
Благодарности
1.454
Баллы
465
Так ты распиши, что за изменения сделал? Мы же не знаем, что ты конкретно намудрил:)
 

Python 155

Участник форума
Регистрация
14 Апр 2013
Сообщения
42
Благодарности
1
Баллы
165
Выносливости изменения не касались, я полагаю это проблемы декомпиляции/компиляции. Я на СНК 1.1 просто декомпилировал, ничего не изменял снова компилировал собрал и та же проблема, выносливость в бою не тратится. При отравлении вроде расходуется, правда верно или нет я не знаю. И хотелось бы знать как исправить или хотя бы где посмотреть что могло закосячиться???

Подскажите какой файл скриптов отвечает за выносливость и как он должен выглядеть для SNC в идеале????
 
Последнее редактирование:

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.227
Благодарности
1.910
Баллы
370
Сделал мобси диалог с бочкой в которую гг прячется, он становится невидимым для нпс, пока находится в режиме диалога благодаря aivar(AIV_Invisible). Но нпс стоят у бочки и ждут пока он оттуда вылезет. Вопрос - какую функцию нужно прописать, чтобы после выбора варианта "Спрятаться" все нпс отстали от гг и перестали за ним бегать? (Смотрел и ZS_Uncossios и ZS_Dead , но так и не разобрался в чём дело) помогите плиз:oops:
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
чтобы после выбора варианта "Спрятаться" все нпс отстали от гг и перестали за ним бегать?
Идея глупая, если честно. Я ещё понимаю, если ГГ спрятался, а проходящий мимо непись его не заметил. Но спрятаться в бочке от атакующего непися... :eek:

Чтобы прервать атаку (ZS_Attack) нужно прописать в это состояние исключение, чтобы состояние прерывалось, если цель сидит в бочке. Скорее всего, придётся использовать пассивное восприятие непися. Например, когда ГГ залез в бочку, посылать пассивное восприятие PERC_ASSESSSURPRISE, а в функции-обработчике (ZS_AssessSurprise) прописывать этот случай. Также нужно предотвратить новое нападение на ГГ, прописав исключение в функции восприятия ГГ (B_AssessSC) и восприятия врага (B_AssessEnemy). И этим, возможно, список не исчерпывается. ;)

Если ты рассчитываешь, что достаточно где-то поменять плюс на минус или единицу на двойку, чтобы всё заработало, как тебе хочется, то ты ошибаешься.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.227
Благодарности
1.910
Баллы
370
Спасибо за подсказку , я пропишу в ZS_Attack следующее :
If(Hide == true && Npc_GetDistToNpc(self,other) >= 20000)
[
B_SayOverlay(self,"Hide");
Npc_ClearAIQueue(self);
B_ClearPerception(self);
AI_RemoveWeapon(self);
AI_CountinueRoutine(self);
];
Hide переменная активируемая "Спрятаться" и деактивируемая "закончить" в мобси диалоге...
Такой вариант приемлим? Гг удаётся спрятаться если нпс находится на расстоянии 20 метров(бочки расположил за углами , если учесть что в сл много хижин, то более менее логично, но может расстояние стоит подкорректировать...)
 
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
Такой вариант приемлим?
Не совсем. Проблема 1. Если ГГ залезет в бочку, станет невозможной атака не только ГГ, но и других. Проблема 2. Если ГГ выпьет зелье ускорения, залезет в бочку, то по истечении выдержки времени взаимодействие с бочкой прервётся (баг), а переменная Hide не изменится. Да и вообще, я не зря упомянул посылку пассивного восприятия. Если непись в данный момент выполняет функцию AI_Attack, то ему по барабану, что прописано в циклической части функции, выполнение цикла приостанавливается до окончания выполнения функции AI_Attack.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.227
Благодарности
1.910
Баллы
370
Не совсем. Проблема 1. Если ГГ залезет в бочку то невозможной атака не только ГГ, но и других. Проблема 2. Если ГГ выпьет зелье ускорения, залезет в бочку, то по истечении выдержки времени взаимодействие с бочкой прервётся (баг), а переменная Hide не изменится. Да и вообще, я не зря упомянул посылку пассивного восприятия. Если непись в данный момент выполняет функцию AI_Attack, то ему по барабану, что прописано в циклической части функции, выполнение цикла приостанавливается до окончания выполнения функции AI_Attack.
Действительно, все функции игнорируются, а как активировать пассивное восприятие и где что прописать? (В Assess функциях не очень пока что разобрался...)
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
и где что прописать?
Если ты ждёшь от меня готовое решение, то его у меня нет. Тебе придётся самому разбираться в том, ка это работает. Запускай поиск по проекту по функции Npc_SendPassivePerc. Учти, что пассивные восприятия работают на ограниченном расстоянии. Например, восприятие PERC_ASSESSSURPRISE, которое я упоминал ранее, работает только на расстояниях менее 5м (в оригинале, но это можно изменить).
 

unknown111

Участник форума
Регистрация
5 Фев 2013
Сообщения
1.075
Благодарности
1.586
Баллы
290
а тексты в диалоговом меню выбора (нижнее) можно как-нибудь сдвинуть чуть правее?
 
Сверху Снизу