Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
Xottab_DUTY
Цитата(K.D. @ 14.08.2017, 16:02) *
Цитата(saas @ 14.08.2017, 00:13) *
со всеми ясеневскими хаками

А какие там хаки? Насколько я помню, отличие сталкирского луабинда от "номерных" версий в том, что он основан на каком-то промежуточном коммите. Ясенев там только конфигурировал. Соответственно, на ближайшую "номерную" версию переход можно совершить без проблем. Дальше уже меняется сам луабинд (типа убрали functor и т.д.).

Так там же ещё свой аллокатор памяти от GSC.
Молния в вакууме
Цитата(K.D. @ 14.08.2017, 13:02) *
Цитата(saas @ 14.08.2017, 00:13) *
со всеми ясеневскими хаками

А какие там хаки? Насколько я помню, отличие сталкирского луабинда от "номерных" версий в том, что он основан на каком-то промежуточном коммите. Ясенев там только конфигурировал. Соответственно, на ближайшую "номерную" версию переход можно совершить без проблем. Дальше уже меняется сам луабинд (типа убрали functor и т.д.).

В ТЧ, насколько я знаю, он был почти оригинальный. В ЧН к нему, как уже сказали выше, прикрутили возможность устанавливать свою функцию выделения/освобождения памяти. Для X-Ray 2 это обязательно, стандартные new/delete там использовать нельзя, у каждого модуля своя куча, чтобы не приходилось синхронизировать потоки для выделения/освобождения памяти.
Tron
Цитата(Forser @ 13.08.2017, 22:11) *
Вот такой вопрос по оптимизации:

Код
BOOL CActor::renderable_ShadowGenerate    ()
{
    if(m_holder)
        return FALSE;
    
    return inherited::renderable_ShadowGenerate();
}

В этом случае, как мне кажется, лучше проверять внутри функции m_holder, т.к. это переменная и к ней доступ лучше получать внутри класса.

Код
void CActor::RenderText                (LPCSTR Text, Fvector dpos, float* pdup, u32 color)
{
    if (!g_Alive()) return;
    
...
}
В этом случае, как мне кажется лучше проверять g_Alive() перед вызовом функции.

Так или нет?

А то, что это указатель, и он может быть равен 0, тебя не смущает?


Это как раз проверка на валидность указателя
ForserX
Цитата(Tron @ 14.08.2017, 13:59) *
Это как раз проверка на валидность указателя

А почему перед вызовом не проверить?

Цитата(K.D. @ 14.08.2017, 13:02) *
Лучше потрать время на профилирование и посмотри, где действительно нужно переделать.

Тратил, большая затрата по тестам вышла на рендер. Но с dx у меня знаний - никаких.
Winsor
Уважаемые... Наверное, многие сталкивались с необходимостью изменить аи-сетку. Собственно при работе с уже существующим спавном - помогает universal_acdc -update. А что делать со скриптовым create()? Вариант - переснимать координаты - не подходит, ибо когда таких объектов 100 - это еще реально. А вот когда 9000 - это жестоко. Кто нибудь пытался облегчить решение этой проблемы со стороны движка?
abramcumner
Цитата(Winsor @ 14.08.2017, 15:41) *
А что делать со скриптовым create()?

выкинуть вертекс_иды из create() и считать их внутри функции по координатам.
macron
Цитата(Zagolski @ 06.08.2017, 16:57) *
тч-ное UI тормозит, не без этого.

Кому интересно, можете провести эксперимент. Запустить какой-нибудь счетчик fps типа фрапса. Запустить ТЧ (без вертикальной синхронизации, чтобы полный fps показывало). Зайти в меню загрузки или опций, потом обратно в главное. Fps на первый раз должен остаться прежним. Потом снова в загрузку или опции и обратно. С каждым заходом fps будет падать...
Borovos
Hello,

Is there a leaked code source for old build as 1935?

Thanks
Tron
Цитата
А почему перед вызовом не проверить?

Потому как из контекста непонятно, внутренний ли это указатель. И неизвестно может ли он изменяться
Молния в вакууме
Borovos, no.
Tron
Цитата(Borovos @ 14.08.2017, 18:54) *
Hello,

Is there a leaked code source for old build as 1935?

Thanks

No, only final source code
Borovos
Ok, so for restoring the pseudodog_psi_effector as example, the programmer have to write it from zero, or use functions from others monsters as controller.

Thanks.
ForserX
Цитата(Tron @ 14.08.2017, 19:25) *
Цитата
А почему перед вызовом не проверить?

Потому как из контекста непонятно, внутренний ли это указатель. И неизвестно может ли он изменяться

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

Цитата(Borovos @ 14.08.2017, 19:45) *
Ok, so for restoring the pseudodog_psi_effector as example, the programmer have to write it from zero, or use functions from others monsters as controller.

It's his personal choice.

Цитата(Tron @ 14.08.2017, 19:26) *
No, only final source code

Кх-м, там же были слиты какие-то два билда.
User_X.A.R26
Borovos, there are only two versions that are close to builds: stk-src-tags.7z\tags\shadow of chernobyl\SS-10jan07\ - ~2945, stk-src-tags.7z\tags\shadow of chernobyl\SS-28feb07-RC1\ - ~2939
Winsor
Цитата(abramcumner @ 14.08.2017, 16:09) *
Цитата(Winsor @ 14.08.2017, 15:41) *
А что делать со скриптовым create()?

выкинуть вертекс_иды из create() и считать их внутри функции по координатам.

Подскажите пожалуйста, какой функцией движка это можно сделать, и как быть с определением карты, на которой происходит спавн (т.е. на разных уровнях могут быть повторяющиеся координаты)?
Насколько я понимаю - для глобальной сетки строиться граф, который в плоском виде представляет собой парные диапазоны level_vertex(start,end)-game-vertex(start,end) Что я имею в виду - для кордона, например (0,100)-(0,100), для свалки (101,200)-(0,100) и так далее. Если не прав - подскажите, где можно прочитать более подробно о организации координат в сталкере.
Borovos
Цитата(User_X.A.R26 @ 15.08.2017, 03:43) *
Borovos, there are only two versions that are close to builds: stk-src-tags.7z\tags\shadow of chernobyl\SS-10jan07\ - ~2945, stk-src-tags.7z\tags\shadow of chernobyl\SS-28feb07-RC1\ - ~2939


Good, there is "pseudodog_state_growling" files in SS-10janv07 with psi attack here, it should be a base of work.
I have to install build 2945 & check the creature file.

Thanks
abramcumner
Цитата(Winsor @ 15.08.2017, 09:08) *
Подскажите пожалуйста, какой функцией движка это можно сделать, и как быть с определением карты, на которой происходит спавн (т.е. на разных уровнях могут быть повторяющиеся координаты)?

Можно передавать имя локации/ид локации. Или передавать глобальные координаты. Готовой функции естественно нет.

Если СДК используется, то можно скриптовый спавн делать по вейпоинтам, которые расставлять в ЛЕ. Тогда вертексы будет пересчитывать храи.

Цитата
Насколько я понимаю - для глобальной сетки строиться граф, который в плоском виде представляет собой парные диапазоны level_vertex(start,end)-game-vertex(start,end) Что я имею в виду - для кордона, например (0,100)-(0,100), для свалки (101,200)-(0,100) и так далее. Если не прав - подскажите, где можно прочитать более подробно о организации координат в сталкере.

Да, все правильно. Левел-вертексы на любой локации от 0 и до числа, зависящего от размера локации. Гейм-вертексы уникальны, ну и сохранены в геймграфе в виде диапазонов. так-то геймграф именно граф с вершинами и ребрами.
Winsor
Цитата(abramcumner @ 15.08.2017, 13:19) *
Можно передавать имя локации/ид локации. Или передавать глобальные координаты. Готовой функции естественно нет.

Интересует алгоритм, по которому имея id локации и координаты на данной локации высчитать для этих координат геймвертекс.
Цитата(abramcumner @ 15.08.2017, 13:19) *
Да, все правильно. Левел-вертексы на любой локации от 0 и до числа, зависящего от размера локации. Гейм-вертексы уникальны, ну и сохранены в геймграфе в виде диапазонов. так-то геймграф именно граф с вершинами и ребрами.

геймвертексы уникальны в пределах диапазона левелвертексов или в пределах всего глобального графа?
ForserX
Цитата(RayTwitty @ 22.01.2016, 17:18) *
LuaXML библиотека парсинга xml-файлов из скриптов (подключается при помощи функции require, которая есть в xrLuaFix)

У вас там оф.сайт умер.
Xottab_DUTY
Получилось починить луабинд под х64... И никакой в нём проблемы не было... А была проблема в .vcxproj... Откуда-то непонятно откуда, в определениях препроцессора звучал WIN32 =\=
laugh.gif
Молния в вакууме
Цитата(saas @ 14.08.2017, 00:57) *
Я использовал версию из исходников r8384, в Debug всё как надо, а в Release версии с ним какая-то аномалия, не работает luabind::detail::is_class_object. Там вроде куда-то пропадает метатаблица.


Как оказалось, этот луабинд(и более старые тоже, кстати) работает как надо только если его собрать с stlport.
Tron
Цитата(Xottab_DUTY @ 16.08.2017, 00:05) *
Получилось починить луабинд под х64... И никакой в нём проблемы не было... А была проблема в .vcxproj... Откуда-то непонятно откуда, в определениях препроцессора звучал WIN32 =\=
laugh.gif

А че лол, то?
1ый ответ
https://stackoverflow.com/questions/6679396...-in-64bit-build
Winsor
Уважаемые, продолжаю мучать Вас вопросами про графы. Разъясните, пожалуйста, такие моменты:
1)game.graph содержит в себе информацию о всех существующих точках графа, каждая из которых имеет координаты (level_vertex,game_vertex)?
2)в этой системе координат какая из величин уникальна в пределах всего графа - level_vertex или game_vertex? Что я имею в виду - каждый level_vertex имеет массив game_vertex-ов, значения которых уникальны в пределах одного level_vertex и могут встречаться в массиве другого level_vertex.
3)может ли быть для одного уровня несколько level_vertex-ов?
4)ну или подскажите урл, где описана система координат сталкера...
Xottab_DUTY
Tron, рано обрадовался biggrin.gif Видимо, WIN32 не имело влияния.. Я до этого собирал в релизной конфигурации, а сейчас собрал в отладочной... В общем, выходит так, что мне какой-то код надо вытащить из-под #ifdef DEBUG, для того чтобы он на х64 заработал.. z_crazy.gif
abramcumner
Цитата(Xottab_DUTY @ 16.08.2017, 14:14) *
Tron, рано обрадовался biggrin.gif Видимо, WIN32 не имело влияния..

Фух... Успокоил после вчерашнего smile.gif
WIN32 всегда под виндой должен стоять, это не признак архитектуры.

Цитата(Winsor @ 16.08.2017, 13:46) *
Уважаемые, продолжаю мучать Вас вопросами про графы. Разъясните, пожалуйста, такие моменты:
1)game.graph содержит в себе информацию о всех существующих точках графа, каждая из которых имеет координаты (level_vertex,game_vertex)?

Нет, гейм.граф только граф гейм.вертексов. Там есть еще 256 точек левел-вертексов для каждого гейм.вертекса. Как я понимаю, чтобы можно было указывать верные левел.вертексы для других локаций.

Цитата
2)в этой системе координат какая из величин уникальна в пределах всего графа - level_vertex или game_vertex? Что я имею в виду - каждый level_vertex имеет массив game_vertex-ов, значения которых уникальны в пределах одного level_vertex и могут встречаться в массиве другого level_vertex.

гейм-вертекс уникален в пределах всего гейм.графа.
А левел-вертексы и левел.граф(аи-сетка) свои для каждого уровня. Есть еще левел.гцт - указывает какие левел-вертексы к какому гейм-вертексу относятся.

Цитата
3)может ли быть для одного уровня несколько level_vertex-ов?

Странный вопрос. На одном уровне порядка миллионов левел-вертексов и несколько десятков гейм-вертексов.

Левел-вертекс, он же аи-нода, он же квадратик в ЛЕ.
гейм-вертекс, он же граф-поинт, он же флажок в ЛЕ.
Xottab_DUTY
Цитата(abramcumner @ 16.08.2017, 16:25) *
Цитата(Xottab_DUTY @ 16.08.2017, 14:14) *
Tron, рано обрадовался biggrin.gif Видимо, WIN32 не имело влияния..

Фух... Успокоил после вчерашнего smile.gif
WIN32 всегда под виндой должен стоять, это не признак архитектуры.

Да я сам вчера аж переобрадовался, думаю: как оно заработало если не должно было! biggrin.gif

Есть у кого какие подозрения, насчёт того, без какого куска кода не хочет работать? smile.gif
Zagolski
Надо вообще убрать для скриптового спавна все эти lv и gv. Сделать для ф-ции название уровня и координаты x,y,z. Для простого пользователя так будет гораздо проще. Собственно, так и происходит в том же самом LE.
Молния в вакууме
Цитата(Zagolski @ 17.08.2017, 16:42) *
Надо вообще убрать для скриптового спавна все эти lv и gv.

а как же динамические аномалии? Они ведь эту фишку используют.
K.D.
Кто подключал luajit 2.0.x, поделитесь мудростью подключения.
У меня при обновлении заметно и повторяемо снижается фпс по сравнению с 1.1.8. От аллокатора (родной, DL) не зависит. Может, что-то там надо сделать еще? Сам luajit собираю прилагаемым к нему батником отдельно от движка.
x86.
abramcumner
Цитата(K.D. @ 18.08.2017, 14:02) *
Может, что-то там надо сделать еще?

Папку lua рядом с длл положил?
Может jit не запустился? В АПИ вроде были функции для проверки работы джита.
K.D.
Цитата(abramcumner @ 18.08.2017, 16:21) *
Папку lua рядом с длл положил?

Да. Впрочем, от ее наличия или отсутствия ничего не меняется.

Цитата(abramcumner @ 18.08.2017, 16:21) *
Может jit не запустился?

Модуль jit загружается, могу вывести версию в лог - 2.0.5, как полагается.
abramcumner
http://luajit.org/ext_jit.html
А что status, ... = jit.status() возвращает?

Дебажную конфигурацию запускал? Может в логе какие-то ошибки будут.
K.D.
Статус - true. До дебага пока не добрался.
А ты замерял скорость со старым luajit и новым у себя?
abramcumner
Цитата(K.D. @ 18.08.2017, 16:40) *
А ты замерял скорость со старым luajit и новым у себя?

Нет. Визуально без изменений, обещанных х10-х100 ускорения не заметил.
Сегодня позамеряю с цифрами.
K.D.
Может и замедления не заметишь - я сейчас запускаю на старом ноутбуке, тут и со старым-то луатджитом 25 фпс максимум. Сам факт скорее интересен.
Еще один момент - новый luajit вроде как может проигрывать в скорости старому, если в луа запускаются C functions, особенно в циклах. Может, луабинд обновить? У меня старый 0.7 до сих пор.
Xottab_DUTY
K.D., при обновлении LuaBind скорее всего столкнёшься с проблемой, с которой столкнулся OpenXRay. Вкратце, если раньше, на старом 0.7, не синтаксические ошибки в скриптах приводили к тому, что отваливался сам кривой скрипт, то у нас из-за скрипт начал валить весь движок. Опять же, вкратце, Shoker отписал тут об этом. А тут сама issue на OpenXRay, но там и не только по луабинду. Исправить проблему можно исправив скрипты, но совместимости с оригинальным ЗП не будет. Для совместимости надо копать луабинд...
KrivoRuk
Цитата(Xottab_DUTY @ 07.08.2017, 06:54) *
где можно взять собираемые в BCB6 исходники SDK? Чтобы именно скачал (репо например) запустил BCB и собрал.

Цитата(User_X.A.R26 @ 12.08.2017, 22:41) *
могу подкинуть свои ченджсеты из старых репо

Народ подскажите - имеется ли где описание по настройке сборки сдк в борланде? Пытаюсь собрать АЕ, из исходников ЛА, не выходит.(
aka_sektor
Цитата(KrivoRuk @ 20.08.2017, 01:25) *
имеется ли где описание по настройке сборки сдк в борланде?

Только то что Loxotron писал: https://www.gameru.net/forum/index.php?s=&a...t&p=1620040
ForserX
Так, обсуждение репозиториев в прошлый раз закончилось таким результатом:
Цитата
[SoC]
() Alpet & KD [Архивная ценность]
() xrDev [Архивная ценность]
() CleanXR [Архивная ценность]
() KRoddin
() Lost Alpha old [Архивная ценность]

[CS]
() RedPython [Архивная ценность]
() xrDev [Архивная ценность]
() OpenXRay [Архивная ценность]
() Charsi82 [Архивная ценность]
() Abramcumner

[CoP]
() Im-Dex
() Forser
() OpenXRay
() xrDev [Архивная ценность]
() CoC
() Tron [Архивная ценность]
() Abramcumner
() mrmnwar
() Avo [Архивная ценность]
() vincent-t Старый репозиторий

[2.0]
() Saas

Есть у кого что добавить?
Карлан
Цитата(Zagolski @ 06.08.2017, 17:57) *
Но чтоб тормоза убрать все переделывать не нужно. Начать советую с ui_base.cpp, UIStaticItem.cpp и UICustomItem.cpp, и главное - переписать под базу класс CUIStatic. После этого все полетит.

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

Цитата(Forser @ 21.08.2017, 17:30) *
Есть у кого что добавить?

на тч точно побольше живых репозиториев, чем вот один, можно на гитхабе поискать.
ForserX
Цитата(Карлан @ 22.08.2017, 13:34) *
на тч точно побольше живых репозиториев, чем вот один, можно на гитхабе поискать.

Всё, что нашёл.
Shoкer
Цитата(Winsor @ 03.05.2017, 12:23) *
Уважаемые знающие, столкнулся с багом (который говорят присутствовал еще с оригинала ТЧ) - при одевании на ствол глушителя и прицела - иногда текстура либо глушителя либо прицела может не вырисовываться на худе. при этом флаги аддонов выставляются правильно. лечится повторно снятием/одеванием, например, прицела. Сталкивался ли кто либо с таким багом и как боролись?


Если это ещё актуально, то проблема вроде как возникает когда к одной кости модели привязана геометрия с разными текстурами (несколько материалов на одну кость).

В таком случае начинает тупить в движке проверка на видимость кости (LL_GetBoneVisible() в ЗП) - она возвращает неверные результаты, из-за чего кость не скрывается при одевании аддона.

Не знаю где именно это правится в ТЧ, но в ЗП это можно (кажется) поправить в функции player_hud.cpp - void attachable_hud_item::set_bone_visible()

Надо убрать проверку видимости кости if(bVisibleNow!=bVisibility) и тогда всё вроде-бы работает.

TIGER_VLAD
Цитата(Shoкer @ 25.08.2017, 00:32) *
проблема вроде как возникает когда к одной кости модели привязана геометрия с разными текстурами (несколько материалов на одну кость).

Да все верно. Если например прицел состоит из двух текстур, то при одевании аддона, текстуры будут загружаться поочередно. Сейчас как раз переношу револьвер из Метро на ТЧ - такая же ситуация. Прицел состоит из трех групп, каждая группа использует свою текстуру. Можно просто склеить все текстуры в одну и поправить развертку и все хорошо работает.
Shoкer
Цитата(Zagolski @ 21.07.2017, 12:24) *
Вопросом этим занялся капитально, но не хватает знаний в этой области. Например, по какому принципу реализован подобный прицел у Sin! и Shoker. У кого-то есть какие идеи на этот счет?


Sin! уже всё расписал.

Всё что непосредственно по "двойному рендеру" - https://github.com/ShokerStlk/xray-16-SWM/c...83b6891f53cb2d7 (у меня чудесный английски)

+ Нужны правки Sin!-а по воронам, иначе будут глюки с их телепортацией - https://github.com/ShokerStlk/xray-16-SWM/c...d093e8c297414d7

И черновые шейдеры (для примера) здесь - https://www.dropbox.com/s/31onsxhx6a57xzo/3...haders.rar?dl=0
Шейдеры для своей работы используют новые переменные, экспортированные из движка, но они нужны только чтобы делать "красивые" прицелы с плавными переходами и прочим.

Цитата(Xottab_DUTY @ 18.08.2017, 17:40) *
K.D., при обновлении LuaBind скорее всего столкнёшься с проблемой, с которой столкнулся OpenXRay. Вкратце, если раньше, на старом 0.7, не синтаксические ошибки в скриптах приводили к тому, что отваливался сам кривой скрипт, то у нас из-за скрипт начал валить весь движок... ...Исправить проблему можно исправив скрипты, но совместимости с оригинальным ЗП не будет. Для совместимости надо копать луабинд...


По моему я там ещё тогда все проблемные места поправил и залил. Там, разве что, возможно парочка функций из движка криво экспортируется, но по логу вылета это легко понять и исправить. С оригинальными скриптами новый Luabind работает, просто он по умолчанию не умеет неявно приводить строки к числам (или наоборот) из-за чего некоторые родные скрипты вылетали. Это тоже правил - https://github.com/OpenXRay/luabind-deboost...4cd2e7578b08510
AndreySol
В классе CInventory в ф-ции Slot поставил вывод сообщений в лог:
Код
bool CInventory::Slot(PIItem pIItem, bool bNotActivate)
{
    VERIFY(pIItem);
Msg("CInventory::Slot: before if(!CanPutInSlot(pIItem)) %s - %s[%d]", this->m_pOwner->Name(), *pIItem->object().cName(), pIItem->object().ID());

    if(!CanPutInSlot(pIItem))
    {
        if(m_slots[pIItem->GetSlot()].m_pIItem == pIItem && !bNotActivate )
            Activate(pIItem->GetSlot());

        return false;
    }
Msg("CInventory::Slot: after if(!CanPutInSlot(pIItem)) %s - %s[%d]", this->m_pOwner->Name(), *pIItem->object().cName(), pIItem->object().ID());
..........
При перемещении в слот к примеру броника, в логе следующее:
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Меченый - scientific_outfit1162[1162]
CInventory::Slot: after if(!CanPutInSlot(pIItem)) Меченый - scientific_outfit1162[1162]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Меченый - scientific_outfit1162[1162]
т.е. получается что ф-ция вызывается 2 раза для перемещаемого предмета. Зачем ? Кто нибудь пытался разобраться почему происходит два вызова ф-ции ?
ForserX
Цитата(AndreySol @ 25.08.2017, 15:24) *
При перемещении в слот к примеру броника, в логе следующее:
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Меченый - scientific_outfit1162[1162]
CInventory::Slot: after if(!CanPutInSlot(pIItem)) Меченый - scientific_outfit1162[1162]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Меченый - scientific_outfit1162[1162]
т.е. получается что ф-ция вызывается 2 раза для перемещаемого предмета. Зачем ? Кто нибудь пытался разобраться почему происходит два вызова ф-ции ?

Прогони через дебаггер да посмотри.
RayTwitty
Цитата(AndreySol @ 25.08.2017, 15:24) *
т.е. получается что ф-ция вызывается 2 раза для перемещаемого предмета

Стрелок, лучше б не лез ты туда (с) z_lol1.gif

Там такая задница с этими событиями, я когда разбирал - около недели потратил. Особенно весело с аттачментами.
aka_sektor
Цитата(RayTwitty @ 25.08.2017, 17:39) *
Стрелок, лучше б не лез ты туда (с)

https://coub.com/view/ut1df
ForserX
Цитата(RayTwitty @ 25.08.2017, 17:39) *
Там такая задница с этими событиями

Угу. Но вообще, пускай он глянет. Оно ему ещё пригодится.
AndreySol
Цитата(RayTwitty @ 25.08.2017, 18:39) *
Особенно весело с аттачментами.

Это про то, что под спойлером ?
кусочек лога
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]
CInventory::Slot: before if(!CanPutInSlot(pIItem)) Волк - wpn_ak74u0177[177]


Цитата
я когда разбирал - около недели потратил

Ну а результат ? Переделали в более вменяемое, или оставили как было ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.