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

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

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

MaGoth

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

Вложения

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

maggi1221

Участник форума
Регистрация
7 Окт 2010
Сообщения
218
Благодарности
4
Баллы
165
Еще 1 вопрос: у меня функция Wld_DetectNpc не работает если 1 параметр этой функций является ГГ.

func int Wld_DetectNpc(var C_NPC npc, var int instanceNpc, var func aiState, var int guild);

Wld_DetectNpc(hero, -1, NOFUNC, -1) всегда возвращает 0.
Верно ли то, что эта функция не работает на ГГ? или я что-то не так делаю? ах да, перед вызовом этой функции была использована функция Npc_PerceiveAll(self).

MaGoth, этого не достаточно, я хотел поподробнее узнать об этой функции.
"Функция задержки реакции монстров", какая реакция, когда задерживается? примеры?
 

Fase

Участник форума
Регистрация
12 Янв 2011
Сообщения
208
Благодарности
3
Баллы
170
Как называются строки и где они лежат.
Пример:
В Ребалансе 2.1 гарпии,големы,демоны-стреляют какими-то шариками.Ещё некоторые монстры могут исцелять се6я.
 

Rendal

Участник форума
Регистрация
14 Дек 2010
Сообщения
240
Благодарности
2
Баллы
200
Парни помогите, после того как я декомпилирую дат файл мода, у меня вылазит две ошибки, далее я их исправляю все идет норм а после компиляции выдает 63 ошибки, че делаю не так?
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Rendal, Ошибки надо править при декомпиляции мода и во время компиляции, ибо это абсолютно разные процессы. Когда, ошибок нет, компиляция и декомпиляция проходит нормально.
 

Rendal

Участник форума
Регистрация
14 Дек 2010
Сообщения
240
Благодарности
2
Баллы
200
Ух, ну ладно, предется править 63 ошибки, эх=(
 

Bjorn++

Участник форума
Регистрация
28 Июн 2011
Сообщения
1.063
Благодарности
46
Баллы
235
Парни помогите, после того как я декомпилирую дат файл мода, у меня вылазит две ошибки, далее я их исправляю все идет норм а после компиляции выдает 63 ошибки, че делаю не так?
А что за мод ты декомпликтировал?
 

maggi1221

Участник форума
Регистрация
7 Окт 2010
Сообщения
218
Благодарности
4
Баллы
165
Кто может дать точный список всех неиспользуемых полей в классе C_NPC ?

weight для оружия вроде не используется. удалось на него повесить класс тяжести оружия...
есть еще моменты интересные - в зависимости от типа предмета, некоторые легальные поля можно воспринимать как неиспользуемые...
например, range для не-оружия...

ВОПРОСЫ:

1)
пытался найти способ, как добавить новые фразы в игру, но взглянув на класс SVM понял, что все поля забиты, надо найти выход.
вот нашел 1 метод, зацените: создается новый голос, и для него заполняется SVM, если голос ГГ - 15, то можно зарезервировать для него голос, например 115, и у нас будет куча свободных фраз! есть только 1 недостаток - придется сделать ф-ию, которая как-то автоматом выбирает нужный SVM путем смены голоса. например: сменить npc.voice, вывести сообщение, вернуть родной npc.voice...
 

maggi1221

Участник форума
Регистрация
7 Окт 2010
Сообщения
218
Благодарности
4
Баллы
165
В этой теме кто-то спрашивал про невидимого жука, вот и пришло время и он мне тоже понадобился... но эта техника слишком накладная, вот и придумал следующую...

Создание спутника ГГ со свойствами:

1) невидимый
2) летающий
3) с огромной скоростью
4) существа его не видят (нейтрален или дружелюбен ко всем)

Ну, как идея? для этой цели отлично подойдет летающий огонек.

ЗЫ: предыд.пост обновил... тема не апается, если редактировать один и тот же пост?

Плюсы:

1) таймер (состояние ZS_Follow)
2) детектор монстров
3) детектор поднятия предмета (не тестировал, но должно получиться)
4) детектор взаимодейтсвия с мобами (не тестировал, но должно получиться)

Минусы:


1) Возможное застревание (выход - телепортация, если огонек застрял далеко?)
2) ???
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
В этой теме кто-то спрашивал про невидимого жука, вот и пришло время и он мне тоже понадобился... но эта техника слишком накладная, вот и придумал следующую...

Создание спутника ГГ со свойствами:

1) невидимый
2) летающий
3) с огромной скоростью
4) существа его не видят (нейтрален или дружелюбен ко всем)

Ну, как идея? для этой цели отлично подойдет летающий огонек.

ЗЫ: предыд.пост обновил... тема не апается, если редактировать один и тот же пост?

Плюсы:

1) таймер (состояние ZS_Follow)
2) детектор монстров
3) детектор поднятия предмета (не тестировал, но должно получиться)
4) детектор взаимодейтсвия с мобами (не тестировал, но должно получиться)

Минусы:


1) Возможное застревание (выход - телепортация, если огонек застрял далеко?)
2) ???
Минусов нету, хотя есть, но все исправимо, во первых флаг NoFocus - не работает, тоесть он частично работает( не показывает хп и имя нпс) а вот таргет с лука/магии и тп, брать будет, чем будет раздражать, но это можно обойти, не об этом речь.
По поводу скорости передвижения тут ты не прав, а именно зачем делать чтоб нпс ходил за гг, если можно сделать чтобы нпс телепортился функцией ai_teleport или как она там, на вопрос типа: а если нету ближайшего вп скажем так, или он крайне далеко от гг и тп, то все опятьже исправимо, у нас всегда есть Вейпоинт, причем двигающийся это - воб ГГ с именем PC_HERO(имя равно инстанции) тупо телепортируем жука/огонек/пофик что на вейпоинт PC_HERO - такая практика работает, могу дать пример даже.

Bump:
Bump:

Bump:
Минусов нету, хотя есть, но все исправимо, во первых флаг NoFocus - не работает, тоесть он частично работает( не показывает хп и имя нпс) а вот таргет с лука/магии и тп, брать будет, чем будет раздражать, но это можно обойти, не об этом речь.
По поводу скорости передвижения тут ты не прав, а именно зачем делать чтоб нпс ходил за гг, если можно сделать чтобы нпс телепортился функцией ai_teleport или как она там, на вопрос типа: а если нету ближайшего вп скажем так, или он крайне далеко от гг и тп, то все опятьже исправимо, у нас всегда есть Вейпоинт, причем двигающийся это - воб ГГ с именем PC_HERO(имя равно инстанции) тупо телепортируем жука/огонек/пофик что на вейпоинт PC_HERO - такая практика работает, могу дать пример даже.

Код:
instance Global_Cycler(C_Npc)
{
	name[0] = "Хелпер"; 
	guild = GIL_MEATBUG;
	aivar[AIV_MM_REAL_ID] = ID_MEATBUG;
	level = 0;
	flags = NPC_FLAG_IMMORTAL;
	attribute[ATR_HITPOINTS_MAX] = 40;
	attribute[ATR_HITPOINTS] = 40;
	Mdl_SetVisual(self,"Meatbug.mds");
	Mdl_SetVisualBody(self,"Mbg_Body",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
	senses = SENSE_HEAR | SENSE_SEE | SENSE_SMELL;
	senses_range = PERC_DIST_MONSTER_ACTIVE_MAX;
	start_aistate = ZS_Cycler; //наше главное состояние в котром жук постоянно висит
	aivar[AIV_MM_WuselStart] = OnlyRoutine;
};


//собсно функция состояния

func void ZS_Cycler() 
{
//	Эти поля для классов zCVob и oCNpc их выкладывали гдето на форуме.
    var zCVob vob; vob = Hlp_GetNpc(self);
	var oCNpc npc; npc = Hlp_GetNpc(self);
	npc.npcType = 0;
 	vob.bitfield[0] = vob.bitfield[0] & ~ZCVOB_BITFIELD0_SHOWVISUAL& ~ZCVOB_BITFIELD0_COLLDETECTIONDYNAMIC& ~ZCVOB_BITFIELD0_CASTDYNSHADOW;

};

func int ZS_Cycler_Loop()
{
//если расстояние от жука до гг больше 200
    if(Npc_GetDistToNpc(self, hero) > 200) 
	{
		телепортируем жука к гг
        AI_Teleport(self,"PC_Hero");
    };
    return 1;
};
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Да без всяких икарусов.
А по поводу новых классов то... Какие же они новые?
Они забиты в двиге, а изза некоторых особенностей парсера мы можем использовать этидополнительные поля, икарусы всякие нужны для более широкого функционала, а мне достаточно и того что выше.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
maggi1221,
Создание спутника ГГ со свойствами:

1) невидимый
2) летающий
3) с огромной скоростью
4) существа его не видят (нейтрален или дружелюбен ко всем)

Ну, как идея? для этой цели отлично подойдет летающий огонек.

ЗЫ: предыд.пост обновил... тема не апается, если редактировать один и тот же пост?

Плюсы:

1) таймер (состояние ZS_Follow)
2) детектор монстров
3) детектор поднятия предмета (не тестировал, но должно получиться)
4) детектор взаимодейтсвия с мобами (не тестировал, но должно получиться)
чем не устраивает Создание скриптовой зацикленной функции при помощи Trigger-Script (ZEN)?
Частоту обработки устанавливаешь сам, все состояния можно отслеживать через hero.
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Нуу, в скрипте жука я также само могу установить частоту обработки, причем в любой нужный момент ее можно сменить.
 

maggi1221

Участник форума
Регистрация
7 Окт 2010
Сообщения
218
Благодарности
4
Баллы
165
Dimmel, а как насчет детекторов нпц, предметов, итд?
 

maggi1221

Участник форума
Регистрация
7 Окт 2010
Сообщения
218
Благодарности
4
Баллы
165
кто на практике использовал этот метод?
интересует: не было ли глюков, когда триггер не вызывался? (при каких условиях)
 

Myxomop

Почетный форумчанин
Регистрация
28 Май 2005
Сообщения
3.239
Благодарности
2.581
Баллы
455
maggi1221,
Я использую в своем разрабатываемом моде, см. подпись. Триггер вызывается всегда в.т.ч. из сохранения и ни разу не сбоил. Впервые я увидел его использование в моде Jaktyl.
 

Dimmell

Участник форума
Регистрация
23 Ноя 2008
Сообщения
2.899
Благодарности
111
Баллы
285
maggi1221,
кто на практике использовал этот метод?
интересует: не было ли глюков, когда триггер не вызывался? (при каких условиях)
используется и работает в РебалансеV2 и Slash'n Craft. И никаких проблем с ним нет.
 

maggi1221

Участник форума
Регистрация
7 Окт 2010
Сообщения
218
Благодарности
4
Баллы
165
супер, жаль что этот триггер нужно во все миры запихивать((
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
Детектить нпс, предметы и тд вроде как низя.. хотя хз я не пробовал с hero работать...
 
Сверху Снизу