Редактирование движка X-Ray - Страница 78 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

Редактирование движка X-Ray


Рекомендуемые сообщения

В движке используется MFC? Просто сейчас ставлю новую студию, и хотелось бы знать, что бы не ставить слишком много (мне MFC не нужен, но может двиг без него не скомплится?)?

нет, не используется

  • Спасибо 1

нет, не используется
Вроде как окошечки компилей используют MFC.


нет
А на чём тогда? Изменено пользователем Dennis_Chikin
  • Полезно 1

abramcumner, я уже разобрался. Работать будет, т.к. в этом же классе делается smart_cast из CObject в CInventoryItem напрямую. Вообще в клиентских классах приведение типов как-то странно используется. Например, в net_Spawn можно увидеть приведение типа к самому себе.

 

 

Нашёл один баг, связанный с записью killer_id и game_death_time в серверные объекты. В существующем варианте она делается через клиентский класс CEntity, то есть только тогда, когда объект в онлайне. Если же серверный коллбек on_death вызывается в оффлайне, то ничего не записывается. Намного лучше было бы дописать такой метод

 

 

void CSE_ALifeCreatureAbstract::on_death(CSE_Abstract *killer)
{	m_game_death_time = alife().time_manager().game_time();
	if (IsGameTypeSingle())	{
		NET_Packet P;
		u_EventGen(P,GE_ASSIGN_KILLER,ID);
		P.w_u16(u16(killer->id));
		u_EventSend			(P);
	}
}

 

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

Изменено пользователем Полтергейст

Тут попросили спросить - в LA перенесли из ЗП апгрейд оружия, но никак не могут допилить до окончательного вида. dezodor спрашивает, может ли кто помочь с допилкой? :) Как я понял, там по LA DC осталось немного - допилить вот этот апгрейд и еще расставить гулаги по локациям. Если кто заинтересован, напишите в ЛС, дам контакты. Естественно, все привилегии члена команды, как я понял включены))

 

 

Если же серверный коллбек on_death вызывается в оффлайне, то ничего не записывается.

Сначала-бы наверное стоит разобраться в ценности кэллбэка на смерть в офф-лайне... Хотя-бы начиная с того, как вообще возможно кого-то в офф-лайне убить ? Не релизнуть, а именно "убить".

  • Согласен 1
  • Полезно 1

Всем доброго.

Решил вот покапать чуток движок. Интересует вопрос: можно ли сделать так, что бы количество слотов на поясе не зависело от костюма, а сам пояс сделать отдельным предметом? И пояс в слот детектора, например. Возможно такое на исходниках? Если да, то можно хоть примерный код? (Начал осваивать С++ три дня назад, пока мало что понимаю). Спасибо.


@UnLoaded, а как же скриптовые схемы логики, дописанные xStream? Там ведь NPC воюют в offline, или я неправильно понимаю?

Конечно, когда объект не загружен, его нельзя убить, но наличие таковой функции повергает меня в сомнения...

@HESH, конечно можно, но это не 2 строчки кода. Я тоже никогда не писал на C++, раньше на php, теперь на ruby. Но вот тоже залез в исходники. Получилось добавить слот под (нож/пистолет), (бинокль/нож/пистолет), слот под рюкзак, отдельные слоты под патроны, иконку в полный рост, как в ТЧ. Как бы там не хаили разработчиков, код вполне читабельный и разобраться можно.

https://yadi.sk/i/cWE8vVEViiWdN

  • Нравится 2

@Shredder, а сам код можно? Или где искать?

Изменено пользователем HESH

отображение в инвентаре смотри в файлах xrGame/ui/UIActorMenu*

хранение предметов смотри в xrGame/Inventory.cpp

  • Спасибо 2

@Tron,

Может я чего то не понял, но разве это не MFC ?

3FsDcZB.png

 

В моём понимании WinAPI (в чистом виде), это всякие CreateWindow и тп.

Изменено пользователем -StalkMen-

 

m_LeftBackground = xr_new();
m_LeftBackground->SetAutoDelete (true);
AttachChild (m_LeftBackground);
xml_init.InitStatic (uiXml, "left_background", 0, m_LeftBackground);

- отвечает за автоматическое выбрасывание предмета из рюкзака при переносе предмета в левую часть экрана (при открытом рюкзаке)?

@-StalkMen-, в WinAPI тоже классы есть. Может это они?

Изменено пользователем HESH

@Tron,

Может я чего то не понял, но разве это не MFC ?

 

3FsDcZB.png

 

В моём понимании WinAPI (в чистом виде), это всякие CreateWindow и тп.

Выходит я ошибся, признаю. Я по-моему собирал его без установленных MFC либ, на основании чего сделал этот вывод.

 

 

Сначала-бы наверное стоит разобраться в ценности кэллбэка на смерть в офф-лайне... Хотя-бы начиная с того, как вообще возможно кого-то в офф-лайне убить ? Не релизнуть, а именно "убить".

Прямо так взять и вызвать on_death у "убиваемого" серверного объекта. Перед этим желательно установить ему здоровье в 0 через update-пакет, но вроде как не обязательно.

Выходит я ошибся, признаю. Я по-моему собирал его без установленных MFC либ, на основании чего сделал этот вывод.

Нет, ты не ошибся, компиляторы не используют MFC. Это скрин из редактора ресурсов. Потом окно окно можно передать в чистую winapi функцию CreateDialog. Изменено пользователем abramcumner
  • Полезно 1

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...