Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Еще 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, этого не достаточно, я хотел поподробнее узнать об этой функции. "Функция задержки реакции монстров", какая реакция, когда задерживается? примеры?
Как называются строки и где они лежат.
Пример:
В Ребалансе 2.1 гарпии,големы,демоны-стреляют какими-то шариками.Ещё некоторые монстры могут исцелять се6я.
Парни помогите, после того как я декомпилирую дат файл мода, у меня вылазит две ошибки, далее я их исправляю все идет норм а после компиляции выдает 63 ошибки, че делаю не так?
Rendal, Ошибки надо править при декомпиляции мода и во время компиляции, ибо это абсолютно разные процессы. Когда, ошибок нет, компиляция и декомпиляция проходит нормально.
Парни помогите, после того как я декомпилирую дат файл мода, у меня вылазит две ошибки, далее я их исправляю все идет норм а после компиляции выдает 63 ошибки, че делаю не так?
Кто может дать точный список всех неиспользуемых полей в классе C_NPC ?
weight для оружия вроде не используется. удалось на него повесить класс тяжести оружия...
есть еще моменты интересные - в зависимости от типа предмета, некоторые легальные поля можно воспринимать как неиспользуемые...
например, range для не-оружия...
ВОПРОСЫ:
1)
пытался найти способ, как добавить новые фразы в игру, но взглянув на класс SVM понял, что все поля забиты, надо найти выход.
вот нашел 1 метод, зацените: создается новый голос, и для него заполняется SVM, если голос ГГ - 15, то можно зарезервировать для него голос, например 115, и у нас будет куча свободных фраз! есть только 1 недостаток - придется сделать ф-ию, которая как-то автоматом выбирает нужный SVM путем смены голоса. например: сменить npc.voice, вывести сообщение, вернуть родной npc.voice...
В этой теме кто-то спрашивал про невидимого жука, вот и пришло время и он мне тоже понадобился... но эта техника слишком накладная, вот и придумал следующую...
Создание спутника ГГ со свойствами:
1) невидимый
2) летающий
3) с огромной скоростью
4) существа его не видят (нейтрален или дружелюбен ко всем)
Ну, как идея? для этой цели отлично подойдет летающий огонек.
ЗЫ: предыд.пост обновил... тема не апается, если редактировать один и тот же пост?
Плюсы:
1) таймер (состояние ZS_Follow)
2) детектор монстров
3) детектор поднятия предмета (не тестировал, но должно получиться)
4) детектор взаимодейтсвия с мобами (не тестировал, но должно получиться)
В этой теме кто-то спрашивал про невидимого жука, вот и пришло время и он мне тоже понадобился... но эта техника слишком накладная, вот и придумал следующую...
Создание спутника ГГ со свойствами:
1) невидимый
2) летающий
3) с огромной скоростью
4) существа его не видят (нейтрален или дружелюбен ко всем)
Ну, как идея? для этой цели отлично подойдет летающий огонек.
ЗЫ: предыд.пост обновил... тема не апается, если редактировать один и тот же пост?
Плюсы:
1) таймер (состояние ZS_Follow)
2) детектор монстров
3) детектор поднятия предмета (не тестировал, но должно получиться)
4) детектор взаимодейтсвия с мобами (не тестировал, но должно получиться)
Минусов нету, хотя есть, но все исправимо, во первых флаг NoFocus - не работает, тоесть он частично работает( не показывает хп и имя нпс) а вот таргет с лука/магии и тп, брать будет, чем будет раздражать, но это можно обойти, не об этом речь.
По поводу скорости передвижения тут ты не прав, а именно зачем делать чтоб нпс ходил за гг, если можно сделать чтобы нпс телепортился функцией ai_teleport или как она там, на вопрос типа: а если нету ближайшего вп скажем так, или он крайне далеко от гг и тп, то все опятьже исправимо, у нас всегда есть Вейпоинт, причем двигающийся это - воб ГГ с именем PC_HERO(имя равно инстанции) тупо телепортируем жука/огонек/пофик что на вейпоинт PC_HERO - такая практика работает, могу дать пример даже.
Минусов нету, хотя есть, но все исправимо, во первых флаг 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;
};
Да без всяких икарусов.
А по поводу новых классов то... Какие же они новые?
Они забиты в двиге, а изза некоторых особенностей парсера мы можем использовать этидополнительные поля, икарусы всякие нужны для более широкого функционала, а мне достаточно и того что выше.
1) невидимый
2) летающий
3) с огромной скоростью
4) существа его не видят (нейтрален или дружелюбен ко всем)
Ну, как идея? для этой цели отлично подойдет летающий огонек.
ЗЫ: предыд.пост обновил... тема не апается, если редактировать один и тот же пост?
Плюсы:
1) таймер (состояние ZS_Follow)
2) детектор монстров
3) детектор поднятия предмета (не тестировал, но должно получиться)
4) детектор взаимодейтсвия с мобами (не тестировал, но должно получиться)
maggi1221,
Я использую в своем разрабатываемом моде, см. подпись. Триггер вызывается всегда в.т.ч. из сохранения и ни разу не сбоил. Впервые я увидел его использование в моде Jaktyl.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.