Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Это снова вы, и это снова я - MEG@VOLT, какаяя радость.
А значит нас всех снова скоро ожидают технические работы на форуме.
Очередные работы запланированы на начало марта, 7-9 числа.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
теперь наверное надо как то прикрутить парсер скриптовой функции что бы уже на уровне скриптов расписать тонкую обработку под свои нужны
func int C_MobInter_UseWithItem(var string sceme, var int useWithItem)
{
return useWithItem;
};
MobInter содержит «вшитую» проверку на предмет необходимый герою для взаимодействия с Mob'ом. Данный плагин «отвязывает» проверку на WithItem , осуществляя перехват функции разрешающий взаимодействие с объектом в новой общей Condition функции вызываемой из скриптов.
Спасибо ElderGamer за...
вообщем тут надо как то строчки zstring сравнивать.
_this->useWithItem и FocusHero->useWithItem
если совпадают то возвращать 0.
какая функция сравнивает строчки я не знаю :-(
//0x0071DB40 public: virtual int __thiscall oCMobInter::GetUseWithItem(void)
int __fastcall...
там есть здравые моменты. на мой взгляд Готика 2 писалась быстро и многие вещие были реализованы так как они реализованы в Готики 2 из соображение сделать побыстрее, потопорнее. в то время как с крипты Г1 и сиквела проработаны на более детальном уровне. ну это мне так показалось :-)
тогда на...
если на проект потрачено значительное кол-вл времени то проще отказаться от UseWithItem вынеся вставки фейковых предметов в слоты руки:
для НПС в zs_ , что бы в конце/начале их тут же удалять:)
для героя в ConditionFunc
я к такому выводу пришёл просматривая скрипты сиквела :)
***
сначала...
это всё надо будет прописывать в новом кондишионе. то есть учитывать требования для героя и прочих НПС и вставлять им заготовки.
или в zs_
func void ZS_....()
{
....
Npc_RemoveInvItems(self,ItMi_fake,Npc_HasItems(self,ItMi_fake));
Npc_RemoveFromSlot(self,"ZS_RIGHTHAND",0)...
ElderGamer а ты не пробовал на движке Г1 использовать AI_CallScriptдля вывода текста на экран например при записи в журнал ? я помню что у тебя в коде как то хитро ставилось в очередь AI такие вещи :-)
// func void NPC_CloseInventory(var c_npc);
функция закрывает инвентарь. мне эта функция понадобилась для закрытия инвентаря когда герой употребялет "Северный Тёмный". Применять вы её можете там где инвентарь мешает, например при игре на лютни, использование метлы и так далее
если герой...
Замена торговца
func void NPC_SetTrader(var c_npc newnpc)
Может решать такие задачи как:
создание общего ассортимента для нескольких торговцев
использования клона НПС для торговли (нельзя будет ограбить)
пример использования
функцию добавил в плагин. плагин обновил в первом сообщение.
p.s...
// Ставит вызов функции funcName в AI очередь
// и при ее вызове помещает значения slf & oth
// в глобальные self & other (соотвественно)
func void AI_CallScript(var string funcName, var C_Npc slf, var C_Npc oth)
ставим в очередь проигрывания звука о повышение уровня. B_GivePlayerXP...
// Если функция определена в скриптах, то она будет вызываться каждый кадр
func event GameLoop()
// А эта функция будет вызвана при входе в игровое меню
func event GameInit()
да. ты можешь "обнулить" значения useWithItem объектов. но при этмо тебе придётся на скриптах вставлять предметы в руку героя у некоторых объектов, например щипцы в рунном столе.
для примера внутри GameLoop изменяет UseWithItem и ConditionFunc
далее идёт проверка в кондишион чего...
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.