Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
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
Neo][
Цитата(1001v @ 29.07.2016, 12:39) *
Только в С89, по-моему.

1001v, в последней версии студии(14) поддержка C99 и то частичная: https://msdn.microsoft.com/en-us/library/hh409293.aspx.

Вообще разрабы компилятора для современного С рекомендует использовать сторонние компиляторы: gcc, intel, etc.
mortan
Где описывается функция подбора предметов с земли? Насколько я понимаю там используется не toBag, ибо поиск ничего не дал) Мне нужно чтобы при попытке подбора предмета проверялось есть ли место под него.
mortan
Для решения своего вопроса я думаю нужно делать логирование свободно места. Теперь другой вопрос - сделал ещё один рюкзак для актора, оригинальный будет играть роль карманов,но есть одна проблема: апдейт содержимого происходит криво - работает только когда переношу в него из внешнего инв. (труп,коробка,переносной контейнер), при переносе из "карманов" (actorbag) вещь попадает в новый инвентарь, но её не видно. Как-то избирательно возникают проблемы)
P.S. много я вопросов задал уже?)Если вопрос не корректен или не правильно поставлен - говорите плиз, буду исправляться.
RayTwitty
Цитата(Neo][ @ 29.07.2016, 10:20) *
попробуй исправить так

Спасибо, помогло.

Цитата(mortan @ 29.07.2016, 22:56) *
апдейт содержимого происходит криво

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

А можно и свое что-то написать, оперируя функциями processing_activate и processing_deactivate.
mortan
Нужно было сразу написать что все вопросы касаются ЗП. Всё же я думаю я где-то накосячил, ибо делал до этого контейнер - там я дописывал новый режим типа mmInventory,тут же всё привязано к обычному инвентарю.
mortan
Так, а вот где идёт подбор предметов с земли знает кто-нибудь?) Смею предположить что предметы просто тупо аттачаться к инвентарю актора, мне же нужно поменять эту вакханалию и организовать подбор предмета куда-либо ещё
RayTwitty
mortan, в ТЧ это в Actor_Feel.cpp.
mortan
RayTwitty, я всё же решил проблему с дрэгдропом, которое было на видео). Правда ещё остаётся проблема с выбрасыванием итема на землю, но думаю решение тоже на поверхности.
-StalkMen-
Сегодня открыл для себя очень полезную весчЪ
Как ускорить компиляцию СДК? ->
Asterix
-StalkMen-, может чуть подробней рассказать пожалуйста? rolleyes.gif
-StalkMen-
Ray,
С++ Builder: как ускорить компиляцию (часть 2)
С++ Builder: как ускорить компиляцию с помощью предкомпилированных заголовков

Я не знаю, что не так со стандартным методом, но этот в РАЗЫ быстрее компилит (если конечно правильно настроен предкомпилированный заголовочник).
Alex Rinic
Про неписей и ружбай

В общем то, известная проблема - в зависимости от настроек
\\creatures\m_stalker.ltx
CODE

;---FIRE DISPERSIONS--------------------------------------------------
disp_walk_stand = 8 ;6
disp_walk_crouch = 4 ;3
disp_run_stand = 14 ;12;8
disp_run_crouch = 6 ;4
disp_stand_stand = 4
disp_stand_crouch = 2
disp_stand_stand_zoom = 1.5 ;1
disp_stand_crouch_zoom = 1.25;1

боты либо совсем кривые, либо просто снайперы, и это очень мало зависит от типа оружия -
при стрельбе практически нет различий, стреляет ли NPC из навороченной винтовки, или же строчит из автомата.
Порывшись, нашёл корень проблем - при стрельбе ботами учитывается только базовое рассеивание оружия, помноженное на умножающий коэфициент патрона.

\\trunk\xr_3da\xrGame\ai\stalker\ai_stalker_fire.cpp
CODE

float CAI_Stalker::GetWeaponAccuracy () const
{
float base = PI/180.f;

//влияние ранга на меткость
base *= m_fRankDisperison;

if (!movement().path_completed()) {
if (movement().movement_type() == eMovementTypeWalk)
if (movement().body_state() == eBodyStateStand)
return (base*m_disp_walk_stand);
else
return (base*m_disp_walk_crouch);
else
if (movement().movement_type() == eMovementTypeRun)
if (movement().body_state() == eBodyStateStand)
return (base*m_disp_run_stand);
else
return (base*m_disp_run_crouch);
}

if (movement().body_state() == eBodyStateStand)
if (zoom_state())
return (base*m_disp_stand_stand);
else
return (base*m_disp_stand_stand_zoom);
else
if (zoom_state())
return (base*m_disp_stand_crouch);
else
return (base*m_disp_stand_crouch_zoom);
}

\\trunk\xr_3da\xrGame\WeaponDispersion.cpp
CODE

//текущая дисперсия (в радианах) оружия с учетом используемого патрона
float CWeapon::GetFireDispersion (float cartridge_k)
{
//учет базовой дисперсии, состояние оружия и влияение патрона
float fire_disp = fireDispersionBase*cartridge_k*GetConditionDispersionFactor();

//вычислить дисперсию, вносимую самим стрелком
const CInventoryOwner* pOwner = smart_cast<const CInventoryOwner*>(H_Parent());
VERIFY (pOwner);

float parent_disp = pOwner->GetWeaponAccuracy();
fire_disp += parent_disp;

return fire_disp;
}


При всём этом безобразии просто накрутить разброс автоматического оружия раз в пять - десять тоже не вариант,
игрок просто лишится возможности нормально попадать.
В других движках, например refractor 2.0a, используемом в battlefield 2142 есть возможность прописать рассеивание для
каждой отдельной единицы оружия для ботов отдельно
CODE

rem *** AutoSentryGun Machine Gun ***
weaponTemplate.create EU_SentryGunWeapon
weaponTemplate.indirect 0
weaponTemplate.minRange 0.0
weaponTemplate.maxRange 110.0
weaponTemplate.setStrength Infantry 20.0
weaponTemplate.setStrength LightArmour 0.5
weaponTemplate.setStrength HeavyArmour 0.0
weaponTemplate.setStrength NavalArmour 0.0
weaponTemplate.setStrength Helicopter 2.0
weaponTemplate.setStrength AirPlane 1.0
weaponTemplate.setSoundSphereRadius 120.0
weaponTemplate.allowedDeviation 1.0 <<------------------------ вот так например, и это будет работать
weaponTemplate.setFiresThroughTransparent 1


Как можно было бы реализовать подобное в сталкере ?
В оригинальном движке параметр GetWeaponAccuracy вызывается при стрельбе/ударе лапой/пуске ракеты -
при любом типе нанесения урона, и при этом проверяется конфиг, содержащий наименование класса существа.
Для актёра это - [actor] , для собаки - [m_dog_normal] , для бармена, например, это будет - [m_barman] .
Одновременно с этим вызывается fire_disp оружия, даже если оружие - собственная лапа(просто тогда базовая дисперсия равна нулю).
Собственно можно было бы добавить параметр вроде AI_allowedDeviation в конфиг оружия, а также возможность движку считывать этот параметр,
в случае же отсутствия этого параметра(или неприменимом/невалидном значении) - возвращается единица в виде значения с плавающей запятой(float).
Если проще - то если например AI_allowedDeviation = 0.45678 или AI_allowedDeviation = 2.34 - читаем, иначе ставим единичку.
Далее - смотрим, управляется ли объект игроком, или ИИ - и если управляется игроком, то тогда AI_allowedDeviation просто не используется.
{
Как вариант - в конфиге живого существа считывается параметр, например
CODE

;species of monster
species = actor

(способ не очень хорош для кооператива, либо если делается сборка с возможностью
управлять сразу несколькими персонажами, как в небезызвестной сборке со старой версией Припяти)
}
Если же объект контролируется ИИ, то используется дополнительная формула, например что-то вроде этого
CODE

if (parent().controller() == CAI_stalker) {
parent_disp *= AI_allowedDeviation;
}
fire_disp += parent_disp;


RayTwitty
Alex Rinic, что-то не понял, проблема в том, что оружие при стрельбе у неписей не учитывает собственную дисперсию? Но ведь она учитывается в CWeapon::GetFireDispersion.
Alex Rinic
RayTwitty, да дело не в учёте собственной дисперсии оружия (она как раз учитывается), а в том, что NPC не должны стрелять одинаково точно со снайперской винтовки и дробовика, например. У игрока разница в точности заметна сразу(когда вы целитесь в игре через прицел, для вас играет роль, точность оружия 0.01 или 0.04 миллирадиан), у ИИ же из-за того, что несколько по-иному считается результирущий разброс, практически нет разницы - либо бот стреляет как олимпиец, либо мажет даже из гаусс-винтовки, в зависимости от параметров FIRE DISPERSIONS (а это очень заметно - например поставить ИИ снайпера с гауссом против пулемётчика с ПКМ, при условии одинаковых параметров FIRE DISPERSIONS - пулемётчик выиграет без вариантов, хотя так быть по идее не должно - суть в том, чтобы увеличить/уменьшить только для ботов - рассеивание некоторых отдельных видов оружия).
mortan
Привет, не подскажите где игра берёт координаты для выбрасывания предметов?)Проблема что при выбрасывании итема из переносного хранилища итем спавнится в месте спавна самого хранилища а не рядом с ним. Т.е. если выбросить хранилище и поднять - местоположение для будущих дропов сменится.
NanoBot-AMK
Для точного выбрасывания итемов используй метод drop_item_and_teleport(game_object*, vector), а то метод item_drop выкидывает предмет куда-то на север.

ЗЫ
И ещё, при телепортации предмет получает скорость 4 м/с в направлении на север (0,0,1), так что в некоторых случаях надо эту скорость гасить в режиме фастапдейт, т.е. тем же апдейтом когда появится физ. оболочка.
mortan
NanoBot-AMK, спасибо,но этот метод вроде скриптовой,а мне нужно в самом движке)Я вроде нашёл его,попробую применить.
mortan
А как можно погасить скорость?Я вот сделал небольшой костыль для момента GE_OWNERSHIP_REJECT:
Код
Fvector pos;
pos = actor->Position();
pos.x = pos.x + 1.0F;
iitem->ChangePosition(pos);

Но как писал товарищ выше происходит отправление итема в свободный полёт)
John_Wick
Привет всем ребят помогите при компиляции xrScriptEngine множество ошибок

CODE
1>------ Сборка начата: проект: xrScriptEngine, Конфигурация: Release Win32 ------
1> script_debugger_threads.cpp
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(91): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(199): warning C4996: 'strlwr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strlwr. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(574): note: см. объявление "strlwr"
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(125): warning C4595: "operator new": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(126): warning C4595: "operator delete": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(127): warning C4595: "operator new[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(128): warning C4595: "operator delete[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\_stl_extensions.h(234): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'
1> script_engine.cpp
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(91): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(199): warning C4996: 'strlwr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strlwr. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(574): note: см. объявление "strlwr"
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(125): warning C4595: "operator new": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(126): warning C4595: "operator delete": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(127): warning C4595: "operator new[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(128): warning C4595: "operator delete[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\_stl_extensions.h(234): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'
1> ScriptEngineScript.cpp
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(91): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(199): warning C4996: 'strlwr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strlwr. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(574): note: см. объявление "strlwr"
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(125): warning C4595: "operator new": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(126): warning C4595: "operator delete": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(127): warning C4595: "operator new[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(128): warning C4595: "operator delete[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\_stl_extensions.h(234): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'
1> script_process.cpp
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(91): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(199): warning C4996: 'strlwr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strlwr. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(574): note: см. объявление "strlwr"
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(125): warning C4595: "operator new": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(126): warning C4595: "operator delete": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(127): warning C4595: "operator new[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(128): warning C4595: "operator delete[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\_stl_extensions.h(234): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'
1> script_stack_tracker.cpp
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(91): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(199): warning C4996: 'strlwr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strlwr. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(574): note: см. объявление "strlwr"
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(125): warning C4595: "operator new": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(126): warning C4595: "operator delete": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(127): warning C4595: "operator new[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(128): warning C4595: "operator delete[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\_stl_extensions.h(234): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'
1> script_thread.cpp
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(91): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>c:\cop\project\xray-16\src\xrcore\_std_extensions.h(199): warning C4996: 'strlwr': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strlwr. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(574): note: см. объявление "strlwr"
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(125): warning C4595: "operator new": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(126): warning C4595: "operator delete": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(127): warning C4595: "operator new[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\xrMemory.h(128): warning C4595: "operator delete[]": не допускается встроенное объявление функций Operator new или Operator delete, не являющихся членами
1>c:\cop\project\xray-16\src\xrcore\_stl_extensions.h(234): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\string.h(568): note: см. объявление "stricmp"
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Спойлер или codebox, не? RT
abramcumner
Цитата(John_Wick @ 17.08.2016, 17:30) *
1>C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): error C2244: luabind::functor<void,int...>::operator (): не удается сопоставить определение функции существующему объявлению
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(26): note: см. объявление "luabind::functor<void,int...>::operator ()"
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: определение
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'void luabind::functor<void,int...>::operator ()(Args &&...) const'
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: существующие объявления
1> C:\COP\Project\xray-16\src\xrScriptEngine/Functor.hpp(30): note: 'TResult luabind::functor<TResult,Policies...>::operator ()(Args &&...) const'

Слишком старая студия?
John_Wick
Visual Studio Professional 2015 без обновления
abramcumner
John_Wick, забавно. Мне кажется, он и не должен собираться. Попробуй в Functor.hpp заменить строки 24-30 на:
Код
template <>
template <typename... Args>
void functor<void>::operator()(Args &&...args) const
{
    auto obj = static_cast<const adl::object *>(this);
    call_function<void>(*obj, std::forward<Args>(args)...);
}
John_Wick
Теперь вот такая ошибка смотрел в эту папку там нету bin\x86\LuaJIT.lib где его взять?

1>------ Сборка начата: проект: luabind, Конфигурация: Release Win32 ------
1>LINK : fatal error LNK1181: не удается открыть входной файл "C:\COP\Project\xray-16\src\Externals\luajit\bin\x86\LuaJIT.lib"
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
RayTwitty
Цитата(mortan @ 16.08.2016, 21:50) *
А как можно погасить скорость?

Дать импульс в противоположную сторону)0
abramcumner
Цитата(John_Wick @ 17.08.2016, 19:48) *
Теперь вот такая ошибка смотрел в эту папку там нету bin\x86\LuaJIT.lib где его взять?

Скачать https://drive.google.com/file/d/0B2mH6ffKfXjCMjRfRTZsVlBtUVE
Winsor
Уважаемые, а кто-то реализовывал перезагрузку xml для UI в реальном времени, например, из консоли?
Буду благодарен за идеи.
mortan
RayTwitty, ну это-то как раз понятно,физику-то не прогуливал)Хоть намекните в каком файле можно подсмотреть метод?)
mortan
еслиб кто подсказал как получить координаты перед лицом актора...
RayTwitty
Цитата(Winsor @ 18.08.2016, 14:00) *
Уважаемые, а кто-то реализовывал перезагрузку xml для UI в реальном времени, например, из консоли?

Посмотри в LA, там при смене худа из опций вроде бы перезагружался.

Цитата(mortan @ 18.08.2016, 14:57) *
Хоть намекните в каком файле можно подсмотреть метод?)

Примеров с пинками в движке чуть более чем 9000.

Цитата(mortan @ 18.08.2016, 16:53) *
еслиб кто подсказал как получить координаты перед лицом актора...

Fvector pos = Device.vCameraPosition.mad(Device.vCameraDirection, 5.f) - точка в 5 метрах по направлению взгляда. Если обнулить Y в Dir, то не будет учитывать наклон камеры вверх-вниз. Писал по памяти для ТЧ.
mortan
RayTwitty, спасибо большое.Не знаешь случайно как исправить
error C2466: невозможно выделить память для массива постоянного нулевого размера?
Такой прикол возникает когда я в функции хочу вызвать ещё один объект через smart_cast.
код
PIItem item = m_pInventory->ItemFromSlot(VEST_SLOT);
if (item)
{
CVest* vest = smart_cast<CVest*>(item);
if (vest)
{
xr_vector<u16>::const_iterator it = vest->m_pocket.begin();
xr_vector<u16>::const_iterator it_e = vest->m_pocket.end();
for (; it != it_e; ++it)
{
CWeaponAmmo* pAmmo = smart_cast<CWeaponAmmo*>(*it);
if (pAmmo && (pAmmo->cNameSect() == ammo_type))
{
res += pAmmo->m_boxCurr;
}
}
}
}

стоит убрать CWeaponAmmo*... - всё компилируется.
abramcumner
Цитата(mortan @ 18.08.2016, 18:00) *
error C2466: невозможно выделить память для массива постоянного нулевого размера?
Такой прикол возникает когда я в функции хочу вызвать ещё один объект через smart_cast.

Это из-за того что *it к CWeaponAmmo* не приводится. smart_cast это обнаружил и вызвал ошибку C2466
mortan
abramcumner, спасибо большое
mortan
скажите,можно ли как-нибудь детектировать зависание и получить лог?Просто только сейчас обнаружил очень серьёзную проблему - игра намертво зависает в момент смерти актора,а вот причину я детектировать не могу.
abramcumner
mortan, собери дебажную конфигурацию и запусти под отладчиком. Скорей всего в момент "зависания" будет банальный Access Violation. В крайнем случае откроешь студию в момент зависания, нажмешь паузу и посмотришь, что за код выполняется.
Shoкer
А разве не в дебажной так нельзя сделать?
Запусти игру либо сразу из студии (если разберёшься), либо уже после запуска присоедини (Attach) студию к процессу игры. В момент зависания жмёшь в студии паузу и видишь в Call Stack последнее место, где застрял код.
mortan
abramcumner, блин,у меня все пути прописаны для релиз сборки онли ))я как ламер провожу тесты на ней.Хотя я уже исправил это зависание,оно с самых первых правок движка,когда я только разбирался ещё.

Shoкer, окей,стоит попробовать. Я просто с таким аспектом как тестирование слабо знаком)
mortan
кто знает где лежит фишка с обновлением быстрых слотов?Я нашёл только ReloadReferences(CInventoryOwner* pActor),закомментил,но всё равно картинка с кол-ом обновляется(Мне нужно переключить подсчёт итемов для слота на другое хранилище.Платформа игры - ЗП

Вопрос снимается - ответ "UpdateQuickSlots()"
Asterix
Соберите мне двиг пожалуйста, а то я не умею sad.gif
https://github.com/OpenXRay/xray-16
mortan
фиксил ли кто-нибудь такой прикол - при переносе ствола с трупа движок пихает его не в тот слот в который ты его переносишь,а в слот по-умолчанию( как при старте игры)?
mortan
сделал своё решение костыльным способом,не знаю правда к чему это может в дальнейшем привести)Интересно?
RayTwitty
Цитата(Ray @ 21.08.2016, 22:00) *
Соберите мне двиг пожалуйста, а то я не умею

Что за детский сад?
Asterix
RayTwitty, ну если руки не заточены под это, то что мне остаётся? dry.gif
abramcumner
Цитата(RayTwitty @ 22.08.2016, 21:12) *
Что за детский сад?

Почему детский сад - последние ревизии OpenXray сломаны и не собираются.
John_Wick, на прошлой странице как раз его собирал. Надо у него спросить, чем дело кончилось.
RayTwitty
Цитата(abramcumner @ 22.08.2016, 21:20) *
Почему детский сад - последние ревизии OpenXray сломаны и не собираются.

Ну а смысл тогда здесь писать? Авторов тут не наблюдается.

А если он вообще не может собрать - то есть инструкция по сборке, по его же ссылке.
abramcumner
Цитата(RayTwitty @ 22.08.2016, 21:30) *
Ну а смысл тогда здесь писать? Авторов тут не наблюдается.
А если он вообще не может собрать - то есть инструкция по сборке, по его же ссылке.

Повторю еще раз, текущая версия OpenXray не собирается, будешь ты следовать инструкции по сборке или нет. Там ошибка в коде.
Для тех, кто просто хотел собрать, это выглядит, как "не могу собрать".
mortan
из open xray отлично собирается brach "master". Правда там нету последних фиксов и собирается он под 2013 студией.Ещё либы и допы старые нужны,правда ссылок уже нету,но их можно самому перекомпилить.
abramcumner
Цитата(mortan @ 22.08.2016, 21:58) *
из open xray отлично собирается brach "master". Правда там нету последних фиксов и собирается он под 2013 студией. Ещё либы и допы старые нужны,правда ссылок уже нету,но их можно самому перекомпилить.

Ты это серьезно пишешь или троллишь? Для тех, кто "просто хотел собрать", это и будет "не могу собрать".
Asterix
Тут такой,извините, глупый вопрос. 64битные компиляторы от KD только на х64 бит поддерживается? Или на х32 можно?
mortan
abramcumner, я никого не хотел обидеть,да и я сам не умею пересобирать проекты под новые версии unsure.gif
abramcumner
Цитата(Ray @ 22.08.2016, 22:10) *
Тут такой,извините, глупый вопрос. 64битные компиляторы от KD только на х64 бит поддерживается? Или на х32 можно?

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