Уважаемые гости и новички, приветствуем Вас на нашем форуме
Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».
Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
Удачи!
Друзья, доброго времени суток! Спешите принять участие в конкурсе квент 2025!
Ждем именно вас!
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
alexeich2019, как вариант попробовать сделать так:
#include "UnionAfx.h"
namespace Gothic_I_Classic {
// Проверить инстанцию "instName" на соответствие классу "className"
// Пример: Проверить_соответствие_классу(A "ITFOAPPLE", A "C_ITEM");
bool Проверить_соответствие_классу(string& instName...
В общем пришлось сравнительно повторить пример.
Первое, на что я обратил внимание - это то, что используемый код не обёрнут в рабочее пространство имён.
Второе - невнимательный копи-паст (лишнее подчёркнуто):
zCLASS_UNION_DEFINITION(oCObjectFactoryEx, oCObjectFactoryEx, 0, 0);
В итоге код...
Melonslise, попробуй убери мессадж бокс из функции таким образом:
void Game_Init()
{
// выход из функции
return;
// твой код...
}
Или работай в оконном режиме.
Есть только такой пример работы с аи-камерой:
// Application.cpp
#include "UnionAfx.h"
namespace Gothic_I_Classic {
void Game_Loop()
{
// переключена ли камера в тестовый режим (true - да, false - нет)
static bool camToggled = false;
// указатель на камеру, движущуюся за...
Cbrhex, какой-то неполный код у вас.
Вот, пожалуйста, так всё прекрасно работает:
Хз, сейчас не удаётся воспроизвести этот момент ни в каких комбинациях. Сборка плагина была всегда по умолчанию в 2012 студии с компилятором от 10-й студии.
Этого я уже не узнаю. Но тогда я делал сборку на SDK 1.0с, а вот в папке system или 1.0b или 1.0с стояла - не помню. Делал в торопях, поэтому мог и не обновиться до 1.0с.
А возможно просто lib файлы для SDK 1.0c были старыми от 1.0b.
В общем, если поставить Union 1.0d и SDK 1.0c, то всё должно...
OsmithREV, добавь в конец своего кода:
zCMenu::inGameMenu = TRUE;
Это разблокирует меню сохранения.
Или как вариант с доп. проверкой на возможность сохранения:
(добавить также в конец кода)
BOOL bSave;
// если разрешено сохраняться
if (gameMan->MenuEnabled(bSave))
// даём эту возможность...
Можно попробовать перехватить функцию через плагин и покрутить в ней разными параметрами:
// Должно повлиять на функцию AI_GotoNpc.
// (только адрес нужен согласно движку)
//0x007947E0 private: int __thiscall oCNpc::RbtGotoFollowPosition(void)
static int __fastcall RbtGotoFollowPosition(oCNpc*...
Виртуальный том DeadGoblinFix_Multi.zip распаковать и поместить в папку "Gothic\Data\"
Умеет работать с 4-мя версиями актуальных движков: G1 Classic, G1 Siquel, G2 Classic, G2 Addon.
Кстати, скелеты тоже попали под отбор (подробнее см. гильдии в коде). А вообще проект был полезен для тестов...
Юнион обязательно должен быть установлен. В нём и будет всё вариться.
А ini - это он имел в виду файл мода. В нём тоже можно прописывать загружаемые библиотеки(плагины).
Но вообще всё круто получается. В vdf можно упаковать и саму либу "DeadGoblinFix.dll" и патч "DeadGoblinFix.patch"...
Че их избегать то? Они не кусаются. :D
Захотел включил, не нравится - выключил.
По движку - если что-то не понятно, как сделать, можно на крайняк в соотв. теме спросить. Уж такие несложные вещи могут и помочь сделать.
И с щёткой и с метлой всё работает. Возможно просто число частиц в сцене зашкаливает, поэтому некоторые частицы не успевают рендериться. Попробуй сделать тест в "чистом поле".
Я считаю, что нужно. Потому что "список рутин" очищается, например, после сохр.->загрузки, или при переходе на другой зен (этого достаточно).
Функции: "Wld_SetObjectRoutine()" и "Wld_SetMobRoutine()" схожи, только первая для воб-объектов, а вторая чисто для интерактивных объектов. И не зря...
Haart, всё просто, вот примеры для быстрого перемещения к объектам:
1) goto waypoint oc_to_guard
Перемещение ГГ в точку. Где "oc_to_guard" - название way/free point точки.
2) goto vob myvob
Перемещение ГГ к объекту. Где "myvob" - название воба.
goto vob myvob 1
goto vob myvob 2
goto vob myvob...
Думаю, что нельзя, ибо он примитивен. У меня сейчас не на чем поэкспериметировать. К тому же не совсем понятна задача. Может как-то иначе можно поступить?
Если тебе надо перенести группу вобов с одного зена на другой, по тем же координатам, то нужно просто у той группы вобов удалить меш уровня...
Haart, ну вот тебе как пример.
Открыл OldWolrd.zen. Набрал объектов в список. Сохранил список. Закрыл полностью программу Spacer 2 для чистоты эксперимента. Загружаю тестовый уровень, в котором нет вобов, которые я добавил в список. Далее делаю всё пошагово как на картинке.
Все вставленные вобы...
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.