Перейти к контенту

Редактирование движка 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
Ссылка на комментарий

@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 пользователей

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