Все посты %s в %S - AMK Team
Перейти к контенту

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


Rolan

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

43 минуты назад, AndreySol сказал:

UIDesc = xr_new<CUIScrollView>();

UIDesc - CScrollView - располагает элементы друг под другом.

 

45 минут назад, AndreySol сказал:

TryAddWpnInfo (pInvItem->object().cNameSect());

TryAddArtefactInfo (pInvItem->object().cNameSect());

CUIStatic* pItem = xr_new<CUIStatic>();
UIDesc->AddWindow (pItem, true);

Сначала добавляются параметры оружия, если можно, потом параметры артефакта, потом описание. Они все располагаются друг под другом.

 

Учет предмета, на котором кликнули, внутри TryAddWpnInfo и TryAddArtefactInfo. Смещение внутри CUIScrollView.

Разное количество индикаторов внутри CUIWpnParams и CUIArtefactParams.

 

Поделиться этим сообщением


Ссылка на сообщение
2 часа назад, AndreySol сказал:

Подскажите, в какой именно ф-ции ? Смотрел там уже ранее, не увидел. Здравой логикой понимаю(или надеюсь ?), что метод смещения должен быть универсален и не зависеть от того, что добавлено - т.е. в коде класса CUIScrollView не должно быть каких-то прямых проверок, что добавлено что-то связанное именно с CUIWpnParams или CUIArtefactParams ?

Да, все так и есть - никаких проверок на CUIWpnParams или CUIArtefactParams. Просто перебор всех добавленных элементов и расстановка. Метод void CUIScrollView::RecalcSize()

    if(GetVertFlip()){
        for(WINDOW_LIST::reverse_iterator it = m_pad->GetChildWndList().rbegin(); m_pad->GetChildWndList().rend() != it; ++it)
        {
            (*it)->SetWndPos        (item_pos);
            item_pos.y                += (*it)->GetWndSize().y;
            item_pos.y                += m_vertInterval;
            ...
        }

Что-то ты не так скопипастил или в xml не тот размер прописал. Как написал @dsh, надо обязательно вызвать AddWindow для твоего индикатора, только тогда он добавится именно в список и сдвинет остальные элементы.

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

Поделиться этим сообщением


Ссылка на сообщение
7 часов назад, BeTep36 сказал:

Ради скрипта из огсе скрывающего кости(обажаю облепливать оружие до степени фундервафли)

А тебе реально 64 стандартных костей на оружии не хватает или ты про запас хочешь?

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

Поделиться этим сообщением


Ссылка на сообщение
55 минут назад, AndreySol сказал:

как из движковой ф-ции в скрипты вернуть как результат работы этой ф-ции луашную таблицу? Если можно, пример кода...

А что в луашной таблице-то? :)

По идее


xr_vector<int> return_lua_table() { return {1,2,3,4,5}; }

должен автоматом возвращать луашную таблицу.

Поделиться этим сообщением


Ссылка на сообщение

Тогда так:

luabind::object return_lua_table()
{
  luabind::object result;
  result[1][1] = float;
  result[1][2] = string;
  result[1][3] = float;
  ...
  return result;
}
Изменено пользователем abramcumner
  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@Graff46, классические приложения. Ведь сталкер это классика.

 

А зачем тебе локальные макеты? Что просто не запустишь vs_community.exe?

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

Поделиться этим сообщением


Ссылка на сообщение
42 минуты назад, Graff46 сказал:

Меня смущает С\С++, в Сталкере вроде С# используется ещё...

Да, для редактора погоды. Но С# сейчас в студии ставится по умолчанию.

 

Еще сразу скачай/установи английскую локализацию. Будет на порядок проще разбираться.

Изменено пользователем abramcumner
  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
6 часов назад, Graff46 сказал:

Редактор погоды в Сталкере?

Ага. Запускать вроде с ключом -editor. Можно настраивать параметры погоды и сразу же видеть изменения.

 

Цитата

На сколько сложно добавить в Сталкер новый встроенный язык?

Ну один уже добавлен. Делай по аналогии и добавишь.

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

Поделиться этим сообщением


Ссылка на сообщение
7 минут назад, Graff46 сказал:

Это на каком движке? ЗП?

ЧН и ЗП.

 

С луа не так все просто, используется  технология биндлуа и буст, а так я обратил внимание на 2 встраиваемых языка это скварелл и гинти...

А что луабинд? Для скварелл и гинти он не нужен, там какие-нибудь свои библиотеки биндинга к с++.

Поделиться этим сообщением


Ссылка на сообщение

@Graff46, да. Еще разобраться с коллбеками и скриптовыми клиентскими/серверными классами.

Поделиться этим сообщением


Ссылка на сообщение
1 минуту назад, Graff46 сказал:

Я помню луахелп, игра не стоит свеч.

Это тебе решать :) Посмотрел библиотеки биндинга для squirell, очень похожи на луабинд, возможно правки экспорта будут состоять из замены def на deffun и добавлении скобочек.

 

Везде пишут, что луа быстрый, но я тестировал циклами луа и пара статеек на хабахабре с тестами луа, где он показывает очень низкие результаты, вот я и задумался о новом языке...

Луа и луаджит разные вещи. Ну и низкие результаты на каких операциях и по сравнению с чем.

 

Ну напиши тестовую программку с вызовом луа/сквирелл/гинти/другой_встраиваемый_язык и замерь скорость.

Поделиться этим сообщением


Ссылка на сообщение

Ну ты хотя бы внутри цикла напиши a += i и результат выведи. Просто чтобы знать, что цикл реально выполнялся :)

Что насчет луаджит?

Поделиться этим сообщением


Ссылка на сообщение
В 5/6/2018 в 14:04, Graff46 сказал:

Сегодня вечером приеду в город и попробую.

Не замерял сквирелл/гинти/луаджит с b и print(b)?

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, dsh сказал:

И что тут сделать, кроме как не делать таких шейпов?

Проверять границу при добалении мобам в рестрикторы и не добавлять? :)

Поделиться этим сообщением


Ссылка на сообщение

В описании якобы все плюшки из хрей-экстеншенс перенесены.

Перенесена большая часть правок оригинального OGSE и Xray Extensions, а так же из

X-Ray Engine by Alpet & KD

 Надо уточнять у авторов на гитхабе.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, krop сказал:

Не, ну ты серьёзно?

Ты синими овалами не все обвел. const справа от CanTrade() тоже надо было обвести. Тогда бы все вопросы снялись.

Поделиться этим сообщением


Ссылка на сообщение
2 часа назад, AndreySol сказал:

А на кой это в for оборачивать ?

Абсолютно не зачем. Можно спокойно заменить на два цикла: по m_ruck и по m_belt. Или добавить UpdateDropItem/s, которая принимает TIItemContainer, тогда будет просто два вызова функции.

Поделиться этим сообщением


Ссылка на сообщение
4 часа назад, Zander_driver сказал:

А магазинное питание переносить в движок, кто-то когда-то пробовал, или я первый буду?

Ты имеешь ввиду, проверить при перезарядке, есть ли в магазине патроны и, если есть, заспавнить пачку патронов, а магазин обнулить?

Наверное первый.

  • Нравится 1
  • Сомнительно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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