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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в оценке работ на конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

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

MaGoth

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

Вложения

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

Feuermagier


Модостроитель
Регистрация
13 Апр 2008
Сообщения
932
Благодарности
130
Баллы
225
Je00Ka
C:\Program Files\Akella Games\Gothic II\_work\data\Music\NewWorld положи сюда то что во вложении к посту (ток сначала разархивируй). У тебя отсутствует один из файлов музыкальной библиотеки.
 

Вложения

  • Gamestart.rar
    1,3 KB · Просмотры: 138

Je00Ka

Участник форума
Регистрация
16 Авг 2008
Сообщения
65
Благодарности
0
Баллы
160
Честно говоря не знаю куда писать...
У меня проблема такого характера:
В папке System два стартера и все мод, а мне нужен обычный.
 

vmazz

Участник форума
Регистрация
18 Дек 2008
Сообщения
218
Благодарности
1
Баллы
165
Jr13San не путай человека! Сказал же что ZS_Cook и т.д. это расписание и не имеет никакого отношения к ГГ ! :mad:
HeDeDe вот правильно понимает ситуацию *flowers*
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Вот решил проэкспериментировать с кучей клонов ;)
Создаю 1 инстанцию NPC и вставляю 5 NPC в StartUP'e - все одинаковые, т.е. берутся из одной инстанции и все размещаются на одном вейпоинте.
Далее пишу, чтобы все 5 шт. двигались к ГГ, а двигается только один. Остальные тупо стоят, ждут когда ГГ к ним подойдёт, чтобы люлей ему навешать;)...
Вопрос в том, как заставить кучу клонов идти к ГГ?(причём нужно сделать так, чтобы было рационально, а не так, чтобы писать 5 отдельных инстанций). Кто знает, пишите, буду рад.
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Jr13San
попробуй так:

Код:
var int npc1;
var int npc2;

Wld_InsertNpc(the_npc,"WAYPOINT");
npc1 = Hlp_GetInstanceId(the_npc);
Wld_InsertNpc(the_npc,"WAYPOINT");
npc2 = Hlp_GetInstanceId(the_npc);


А затем обращайся к npc через функцию Hlp_GetNpc(npc1);

Не знаю как сработает, сам не пробовал.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Hlp_GetNpc(npc1);
npc1 - не подойдёт как int, нужно instanceName.
Да и такими темпами мне переменных то не хватит. Их там много нужно(порядка 40).

Здесь прикол в том, что инстанция одна и та же. И движёк её обрабатывает так - если NPC1 идёт к дугому NPC2. То посланная инфа копиям NPC1_n игнорируется. Мне кажется так. Здесь нужно придумывать какую-то хитрость...

Ах, да... Я тут как-то пользовался динамическим изменением свойств. Я думаю, может динамически поменять id у NPC и тогда, возможно движёк обработает это дело как мне надо? HeDeDe, как ты думаешь?
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Jr13San
Hlp_GetNpc(npc1);
npc1 - не подойдёт как int, нужно instanceName.
instanceName как раз переменная типа int

Ах, да... Я тут как-то пользовался динамическим изменением свойств. Я думаю, может динамически поменять id у NPC и тогда, возможно движёк обработает это дело как мне надо? HeDeDe, как ты думаешь?
Не думаю…

Есть идея: управлять NPC не на прямую, а через функции распорядка дня:
идентифицировать NPC через aivar'ы (хотя нет, лучше через self.id), управлять — через переменные.
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Я думаю попробовать через void Npc_ExchangeRoutine (c_npc self, string routineName); - поменять у НПС self распорядок дня routineName.

Но могут возникнуть баги из за этих клонов, при сохрнении. Чесно говоря - не знаю. Если только написать заведомо нужные условия(if, else, elseif и т.д.) в распорядке дня...

А на счёт того примера (что с переменными) - на мой взгляд, можно было бы просто написать 1 prototype и много инстанций.
Но я всё таки попробую с распорядком дня...
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Но я всё таки попробую с распорядком дня...
попробуй еще с реакцией на ГГ и восприятиями. Клоны обычно не вызывают багов при сохранении (вызов штук 20 одинаковых призванных, хотя не исключаю и возможность глюков), и атакуют они всех врагов в пределах видимости (осязания, обоняния).
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Dimmell
Может ты меня не правильно понял, но мне нужно как-то научиться управлять толпой клонов-идиотов! И причём сделать это всё как можно с меньшими затратами как памяти, так и ресурсов... Может проблема за углом, а я ищу её далеко в небе, а может и не зауглом и в небе, а в земле или в море... Так что сказать точно нельзя...
Я хочу сделать так, чтобы было не глупо с точки зрения программирования. И удобно с точки зрения пользования...

С распорядком, а точнее с циклами всё работает, только ограничение у NPC - это дальность действий восприятий...
 

HeDeDe

Участник форума
Регистрация
17 Авг 2009
Сообщения
203
Благодарности
79
Баллы
180
Кстати, кто нибудь знает точное время ZS_ цикла? (одной итерации)
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Кстати, кто нибудь знает точное время ZS_ цикла? (одной итерации)

Не знаю, но очень быстро. И смотря на какой машине тестировать.
Обычный цикл. Как в программировании, только без зацикливания.

Можно конечно подсчитать, но это очень сложно и трудно сделать, но я думаю можно. А зачем тебе это точное время?(если не секрет). Но прикол в том, что время цикла не будет всегда однозначным, т.к. выделение памяти на эНто дело всегда меняется.
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.236
Благодарности
2.575
Баллы
455
Кстати, кто нибудь знает точное время ZS_ цикла? (одной итерации)
Точное время итерации в секундах выставляется через функцию Npc_GetStateTime. Без искусственного тормоза выполняется моментально, т.е. зависит от скорости процессора.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.803
Баллы
995
Jr13San,
Читаем правила форума, доблпостинг запрещен...
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Может ты меня не правильно понял, но мне нужно как-то научиться управлять толпой клонов-идиотов!
Я понял что тебе нечем заняться. :D
Управление толпой клонов-идиотов: создаешь 2 инстанции (нормальный и клон), вставляешь сколько хочешь своих клонов, прописываешь их "напарниками" своего нормального с командой в рутине (типа ZS_MM_Rtn_Summoned) следовать за нормальным и т.д., а нормальному отдаешь свои команды. Толпа дружно двинет за ним по распорядку нормального, будет реагировать на все как нормальный (если все правильно с отношениями между их гильдиями) и т.д. Это так, в общих чертах. :)
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
Jr13San,
Читаем правила форума, доблпостинг запрещен...
Сорри. Я нечаянно.

Я понял что тебе нечем заняться. :D
Может в некоторой степени и так, а вообще это развивает мозги...
Управление толпой клонов-идиотов: создаешь 2 инстанции (нормальный и клон), вставляешь сколько хочешь своих клонов, прописываешь их "напарниками" своего нормального с командой в рутине (типа ZS_MM_Rtn_Summoned) следовать за нормальным и т.д., а нормальному отдаешь свои команды. Толпа дружно двинет за ним по распорядку нормального, будет реагировать на все как нормальный (если все правильно с отношениями между их гильдиями) и т.д. Это так, в общих чертах. :)
Дааа? А если убьют твоего главаря банды идиотов? что тогда? они будут стоять и смотреть на него? или нет?
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Дааа? А если убьют твоего главаря банды идиотов? что тогда? они будут стоять и смотреть на него? или нет?
Дааа??? *lol* А бессмертие прописать слабо? *wink*
 

Jr13San


Модостроитель
Регистрация
1 Апр 2010
Сообщения
435
Благодарности
261
Баллы
230
И ради этого забомбить мозги всем окружающим?
Я по моему никого здесь не заставляю отвечать на мой вопрос. Кому хочется понять проблему и разобраться в этом, тот и отвечает.

Дааа??? *lol* А бессмертие прописать слабо? *wink*
А смысл? А зачем ему нужна толпа? Он один дойдёт и сделает то, что нужно. Нет, твоя идея не подойдёт.
Бессмерные NPC - то те NPC, которые ещё по главным квестам должны существовать...(по моему должно быть так).

Да, я по моему уже написал, что решил проблему(см. выше).
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
Цитата:
Сообщение от kraw
И ради этого забомбить мозги всем окружающим?

Я по моему никого здесь не заставляю отвечать на мой вопрос. Кому хочется понять проблему и разобраться в этом, тот и отвечает.
Ты сам толком не понимаешь свою "проблему", чего ты хочешь и применительно к чему.
Чем конкретнее определена проблема, тем проще найти решение. Причем не одно.
Согласен с kraw - ты просто бомбишь мозги, а не ищешь варианты решения
 
Сверху Снизу