mixailwot 0 #482415 Posted May 15, 2020 всё? разработкой больше никто не занимается? Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #482430 Posted May 15, 2020 5 часов назад, mixailwot сказал: всё? Нет. Мне периодически надоедает заниматься одним и тем же. Сейчас другим проектом занялся. Позже вернусь. Наверное. Ну и тем, кто желает сделать физику танку, может попробовать помочь. Потому что у меня в этом проблема, не получается повторить пример. Можно и по-другому сделать, лишь бы работало. Итак, нужен физический движок. Скачиваем тут. Для сборки нужна VisualStudio 2015. Открываем applications\demosSandbox\projects\visualStudio_2015\demosSandbox.sln. Открываем любой файл из demos, чтобы заменить существующий пример, или добавляем свой собственный, как сделано у меня, заодно добавив вызов функции в mainLogic\DemoEntityManager.cpp (DemoEntityManager::SDKDemos DemoEntityManager::m_demosSelection). #include "toolbox_stdafx.h" #include "SkyBox.h" #include "PhysicsUtils.h" #include "TargaToOpenGl.h" #include "dCustomHinge.h" #include "DemoMesh.h" #include "DemoCamera.h" #include "DebugDisplay.h" #include "DemoEntityManager.h" #include "toolbox_stdafx.h" #include "SkyBox.h" #include "DemoMesh.h" #include "DemoEntity.h" #include "DemoCamera.h" #include "PhysicsUtils.h" #include "DebugDisplay.h" #include "TargaToOpenGl.h" #include "DemoEntityManager.h" #include "DemoCameraManager.h" //#include "DemoEntityListener.h" #include "DemoCameraManager.h" #include "dHighResolutionTimer.h" #include "DemoEntityManager.h" #include "HeightFieldPrimitive.h" #include <dCustomJoint.h> #include <dCustomHinge.h> typedef float vec_t; typedef struct vec3_t { union { struct { vec_t m_x, m_y, m_z; }; vec_t v[3]; }; } vec3_t; typedef struct Mat4x4 { union { struct { vec3_t m_front; float w0; vec3_t m_up; float w1; vec3_t m_right; float w2; vec3_t m_posit; float w3; }; vec_t mat[16]; vec_t m[4][4]; }; } Mat4x4; struct wheel_data_s { float radius; BOOL isLeft; BOOL isLeading; Mat4x4 matrix; }; static const wheel_data_s wheel_data_r[] = { {0.511382f, 0, 1, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.840247f, 3.437970f, 1.000000f, }}, /*WD_R0*/ {0.352796f, 0, 1, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.715852f, -3.440844f, 1.000000f, }}, /*WD_R1*/ {0.495185f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566284f, 2.490273f, 1.000000f, }}, /*W_R0*/ {0.491401f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566284f, 1.779711f, 1.000000f, }}, /*W_R1*/ {0.495185f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566284f, 1.051981f, 1.000000f, }}, /*W_R2*/ {0.490210f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566073f, 0.345949f, 1.000000f, }}, /*W_R3*/ {0.495185f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566284f, -0.367665f, 1.000000f, }}, /*W_R4*/ {0.491401f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566179f, -1.073491f, 1.000000f, }}, /*W_R5*/ {0.495185f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566284f, -1.782996f, 1.000000f, }}, /*W_R6*/ {0.491401f, 0, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.536556f, 0.566284f, -2.494514f, 1.000000f, }}, /*W_R7*/ }; static const wheel_data_s wheel_data_l[] = { {0.511382f, 1, 1, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.840247f, 3.437970f, 1.000000f, }}, /*WD_L0*/ {0.352796f, 1, 1, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.715852f, -3.440844f, 1.000000f, }}, /*WD_L1*/ {0.495185f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566284f, 2.490273f, 1.000000f, }}, /*W_L0*/ {0.491377f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566284f, 1.779711f, 1.000000f, }}, /*W_L1*/ {0.495185f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566284f, 1.051981f, 1.000000f, }}, /*W_L2*/ {0.490210f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566073f, 0.345949f, 1.000000f, }}, /*W_L3*/ {0.495185f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566284f, -0.367665f, 1.000000f, }}, /*W_L4*/ {0.491401f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566179f, -1.073491f, 1.000000f, }}, /*W_L5*/ {0.495185f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566284f, -1.782996f, 1.000000f, }}, /*W_L6*/ {0.491401f, 1, 0, {1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, -1.536556f, 0.566284f, -2.494514f, 1.000000f, }}, /*W_L7*/ }; static int Ignore_Material_NewtonOnAABBOverlap(const NewtonJoint* const contact, dFloat timestep, int threadIndex) { return 0; } static NewtonBody * Create_Single_Wheel(DemoEntityManager *scene, const int chassis_material, const wheel_data_s *wheel_data, const dMatrix &matrix) { //NewtonCollision *collision = NewtonCreateChamferCylinder(scene->GetNewton(), wheel_data->radius, 0.5f, 0, NULL); NewtonCollision *collision = NewtonCreateCylinder(scene->GetNewton(), wheel_data->radius, wheel_data->radius, 0.5f, 0, NULL); DemoMesh *geometry = new DemoMesh("primitive", scene->GetShaderCache(), collision, "smilli.tga", "smilli.tga", "smilli.tga"); //dMatrix matrix = dMatrix(wheel_data->matrix.mat); //dMatrix matrix = dRollMatrix(90.0f * dDegreeToRad) * m; //m.m_posit.m_y += susp_data[i].radius + .5f; NewtonBody *tire_body = CreateSimpleSolid(scene, geometry, 150, matrix, collision, chassis_material); //DemoEntity *entity geometry->Release(); NewtonDestroyCollision(collision); return tire_body; } static dVector Vec3_To_Vector(const vec3_t &vec) { return dVector(vec.m_x, vec.m_y, vec.m_z); } static void Create_Wheels(DemoEntityManager *scene, const int chassis_material, NewtonBody *hull_body, const wheel_data_s *wheel_data, const uint32_t count) { //NewtonWorld *world = scene->GetNewton(); //dMatrix main_matrix(wheel_data->matrix.m_posit.v); dMatrix main_matrix(dGetIdentityMatrix()); main_matrix.m_posit = Vec3_To_Vector(wheel_data->matrix.m_posit); NewtonBody *main_wheel = Create_Single_Wheel(scene, chassis_material, wheel_data, main_matrix); //dMatrix main_matrix(wheel_data->matrix.mat); const dMatrix rot_matrix = dPitchMatrix(90.0f * dDegreeToRad); dCustomHinge *master = new dCustomHinge(rot_matrix * main_matrix, main_wheel, hull_body); master->EnableMotor(true, 12.1f); master->SetFriction(1.0e4f); dMatrix matrix(dGetIdentityMatrix()); for (uint32_t i = 1; i < count; i++) { //NewtonCollision *collision = NewtonCreateChamferCylinder(world, wheel_data[i].radius, 0.5f, 0, NULL); //DemoMesh *geometry = new DemoMesh("primitive", scene->GetShaderCache(), collision, "smilli.tga", "smilli.tga", "smilli.tga"); //dMatrix matrix = dMatrix(wheel_data[i].matrix.mat); ////dMatrix matrix = dRollMatrix(90.0f * dDegreeToRad) * m; ////m.m_posit.m_y += susp_data[i].radius + .5f; ////DemoEntity *entity //geometry->Release(); //NewtonDestroyCollision(collision); matrix.m_posit = Vec3_To_Vector(wheel_data[i].matrix.m_posit); //dMatrix matrix(wheel_data[i].matrix.mat); NewtonBody *tire_body = Create_Single_Wheel(scene, chassis_material, &wheel_data[i], matrix); //dMatrix pinMatrix0; //dMatrix pinMatrix1; //master->CalculateGlobalMatrix(pinMatrix0, pinMatrix1); dCustomHinge *hinge = new dCustomHinge(rot_matrix * matrix, tire_body, hull_body); //hinge->SetAsSpringDamper(true, 0.9f, 2.0f, 20.0f); //hinge->EnableMotor(true, 1.1f); //dFloat masterRadio = masterTire.m_chamferCylinder.m_height * 0.5f + masterTire.m_chamferCylinder.m_radio; //dFloat slaveRadio = slaveTire.m_chamferCylinder.m_height * 0.5f + slaveTire.m_chamferCylinder.m_radio; //main_matrix = main_matrix.Inverse(); new dCustomGear(wheel_data[i].radius / wheel_data->radius, main_matrix[0], main_matrix[0].Scale(-1.0f), tire_body, main_wheel); //new dCustomGear(wheel_data[i].radius / wheel_data->radius, pinMatrix0[0], pinMatrix0[0].Scale(-1.0f), tire_body, main_wheel); } } void Test(DemoEntityManager* const scene) { /*NewtonBody * const floor =*/ CreateHeightFieldTerrain(scene, HEIGHTFIELD_DEFAULT_SIZE, HEIGHTFIELD_DEFAULT_CELLSIZE, 4.0f, 0.1f, 200.0f, -130.0f); //NewtonCollision* const floorCollision = NewtonBodyGetCollision(floor); dMatrix pos = dGetIdentityMatrix(); NewtonCollision *shape = NewtonCreateBox(scene->GetNewton(), 3.187f, 1.2f, 8.f, 0, &pos[0][0]); pos.m_posit.m_y += 1.2f; NewtonBody *hull_body = NewtonCreateDynamicBody(scene->GetNewton(), shape, &pos[0][0]); NewtonDestroyCollision(shape); shape = NewtonBodyGetCollision(hull_body); NewtonBodySetForceAndTorqueCallback(hull_body, PhysicsApplyGravityForce); NewtonBodySetTransformCallback(hull_body, DemoEntity::TransformCallback); NewtonBodySetMassProperties(hull_body, 50000, shape); DemoMesh *m_redBox = new DemoMesh("platform", scene->GetShaderCache(), shape, "smilli.tga", "smilli.tga", "smilli.tga"); pos.m_posit.m_y = 20; DemoEntity *hull_model = new DemoEntity(pos, NULL); hull_model->SetMesh(m_redBox, dGetIdentityMatrix()); NewtonBodySetUserData(hull_body, hull_model); m_redBox->Release(); // //DemoEntity *hull_model = DemoEntity::LoadNGD_mesh("wte100\\hull_model.ngd", scene->GetNewton(), scene->GetShaderCache()); scene->Append(hull_model); NewtonWorld *world = scene->GetNewton(); const int chassis_material = NewtonMaterialCreateGroupID(world); NewtonMaterialSetCollisionCallback(world, chassis_material, chassis_material, Ignore_Material_NewtonOnAABBOverlap, NULL); const int body_material = NewtonMaterialCreateGroupID(world); NewtonMaterialSetCollisionCallback(world, body_material, chassis_material, Ignore_Material_NewtonOnAABBOverlap, NULL); NewtonBodySetMaterialGroupID(hull_body, body_material); Create_Wheels(scene, chassis_material, hull_body, wheel_data_l, _countof(wheel_data_l)); Create_Wheels(scene, chassis_material, hull_body, wheel_data_r, _countof(wheel_data_r)); } Quote Share this post Link to post Short link Share on other sites
blueferret 10 #483018 Posted May 26, 2020 Any updates on this project? Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #483088 Posted May 28, 2020 27.05.2020 в 02:31, blueferret сказал: Any updates on this project? Not yet. In my previous message, I wrote that I can’t make physics of the movement of the tank. Also, no one wants to do it yourself. Perhaps I will return to the project later. Quote Share this post Link to post Short link Share on other sites
DrWeb7_1 176 #483089 Posted May 28, 2020 9 минут назад, Dragon armor сказал: Also, no one wants to do it yourself. If I could understand C++ syntax, I'd give it a shot, but... eh. Quote Share this post Link to post Short link Share on other sites
Pavel3333 1,147 #483091 Posted May 28, 2020 15.05.2020 в 09:12, Dragon armor сказал: VisualStudio 2015 2019 же давно есть... 1 час назад, Dragon armor сказал: Also, no one wants to do it yourself С радостью, но май - веселый месяц, даже если это дистанционка. Нужно окончить сессию, и можно будет что-нибудь поделать. Quote Share this post Link to post Short link Share on other sites
blueferret 10 #483288 Posted June 2, 2020 On 5/28/2020 at 8:04 AM, Dragon armor said: Not yet. In my previous message, I wrote that I can’t make physics of the movement of the tank. Also, no one wants to do it yourself. Perhaps I will return to the project later. Can you post the mod the way it is right now by any chance? I figured the best way to start with physics is to start by attempting to emulate pre-patch 0.8 physics and work from the bare basics up; after all, it's also what WG did. Also, I've been digging around for around 2 weeks now in the py scripts etc. just figured why recreate something someone's already created. Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #483310 Posted June 2, 2020 8 часов назад, blueferret сказал: Can you post the mod the way it is right now by any chance? I figured the best way to start with physics is to start by attempting to emulate pre-patch 0.8 physics and work from the bare basics up; after all, it's also what WG did. You can use Newton Demos Sandbox. It'll be enough. An example of a tracked vehicle in a sandbox is called ConstructionVehicle. In my post, I showed an example of what I was doing. 8 часов назад, blueferret сказал: I figured the best way to start with physics is to start by attempting to emulate pre-patch 0.8 physics and work from the bare basics up; after all, it's also what WG did. I've already tried a lot of things. If you do something that works stably, it will be great. 8 часов назад, blueferret сказал: Also, I've been digging around for around 2 weeks now in the py scripts etc. just figured why recreate something someone's already created. There is no physics in the scripts. I'm just tired. I will resume the project later. 28.05.2020 в 17:24, Pavel3333 сказал: 2019 же давно есть... Да перестань. Сам для сишки до сих пор использую VS2005. Её более чем достаточно, тем более для сишки вряд ли чего нового добавят, что придётся переходить на версию поновее. 28.05.2020 в 17:24, Pavel3333 сказал: и можно будет что-нибудь поделать Можно. Просто надоедает пытаться делать одно и тоже, а в итоге без результата. Был бы результат, другое дело. А то не выходит ничего. Мне из-за этого периодически надоедает. Эта физика меня просто добивает. Есть пример. Можно повторить. Но нужно без внутренних классов. Ну и производительность чтобы была нормальной. Пытался на рейкасте сделать, что-то опять не выходит. Надо ограничить перемещение, когда виртуальные пружины сжаты до предела, а как сделать не понимаю. Кстати, судя по тому, что танки в оригинале могут по забору/машинкам ездить, у вг так же рейкаст, а не реальные физические объекты (цилиндры, например) в шасси, иначе объект разрушался бы сразу же, как только его коснутся. Что он и делает, если корпус танка объекта всё же касается. https://youtu.be/-vO7qdL9Xh8?t=224 Quote Share this post Link to post Short link Share on other sites
DrWeb7_1 176 #483311 Posted June 2, 2020 10 минут назад, Dragon armor сказал: https://youtu.be/-vO7qdL9Xh8?t=224 В этом видео показывается также поведение физического движка при столкновении танка с техникой-объектом окружения (грузовик). В итоге эта функция не была реализована. Когда ты перебирал карту в редакторе, как подобные элементы окружения отображались (или ещё не дошёл до этого?)? Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #483315 Posted June 2, 2020 @DrWeb7_1 Сплошные объекты. Даже никаких обозначений, флагов или чего-то подобного нет. Обычный разрушаемый объект, не отличимый от других. Quote Share this post Link to post Short link Share on other sites
blueferret 10 #483381 Posted June 3, 2020 On 6/2/2020 at 7:20 AM, Dragon armor said: You can use Newton Demos Sandbox. It'll be enough. An example of a tracked vehicle in a sandbox is called ConstructionVehicle. In my post, I showed an example of what I was doing. I've already tried a lot of things. If you do something that works stably, it will be great. There is no physics in the scripts. I'm just tired. I will resume the project later. Да перестань. Сам для сишки до сих пор использую VS2005. Её более чем достаточно, тем более для сишки вряд ли чего нового добавят, что придётся переходить на версию поновее. Можно. Просто надоедает пытаться делать одно и тоже, а в итоге без результата. Был бы результат, другое дело. А то не выходит ничего. Мне из-за этого периодически надоедает. Эта физика меня просто добивает. Есть пример. Можно повторить. Но нужно без внутренних классов. Ну и производительность чтобы была нормальной. Пытался на рейкасте сделать, что-то опять не выходит. Надо ограничить перемещение, когда виртуальные пружины сжаты до предела, а как сделать не понимаю. Кстати, судя по тому, что танки в оригинале могут по забору/машинкам ездить, у вг так же рейкаст, а не реальные физические объекты (цилиндры, например) в шасси, иначе объект разрушался бы сразу же, как только его коснутся. Что он и делает, если корпус танка объекта всё же касается. https://youtu.be/-vO7qdL9Xh8?t=224 Sorry, I meant can you provide the source files of what you've already created so others can potentially work on it as well? That link to a post you gave me says 404 not found :/ I meant that since you already have completed the hangar emulator aspect and what not, I would try and crack at the physics one; but I wasn't too keen on rewriting what YOU have already writen. Quote Share this post Link to post Short link Share on other sites
Plotnik5252ru 13 #485398 Posted July 19, 2020 (edited) работает еще? и после скачки что качать и запускать? Edited July 19, 2020 by Plotnik5252ru Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #485402 Posted July 19, 2020 @Plotnik5252ru Нет. На данный момент занимаюсь совсем другим проектом. Никто не решился сделать физику для движения танка. Позже вернусь и попробую хоть как-то заставить технику ездить по карте. Вот тогда можно будет уже и скачивать хоть что-то. 53 минуты назад, Plotnik5252ru сказал: и после скачки что качать и запускать? А качать нужно будет клиент версии 0.9.22.0.1#788 (последний перед 1.0). Quote Share this post Link to post Short link Share on other sites
Plotnik5252ru 13 #485403 Posted July 19, 2020 3 минуты назад, Dragon armor сказал: @Plotnik5252ru Нет. На данный момент занимаюсь совсем другим проектом. Никто не решился сделать физику для движения танка. Позже вернусь и попробую хоть как-то заставить технику ездить по карте. Вот тогда можно будет уже и скачивать хоть что-то. А качать нужно будет клиент версии 0.9.22.0.1#788 (последний перед 1.0). Тоесть если у меня есть клиент версии 0.7.0 не запуститься. Да и скачал файл а что дальше нужно движок какой? Просто впервые такой мод вижу Quote Share this post Link to post Short link Share on other sites
DrWeb7_1 176 #485405 Posted July 19, 2020 (edited) 2 минуты назад, Plotnik5252ru сказал: Тоесть если у меня есть клиент версии 0.7.0 не запуститься. Эмулятор сервера на данный момент предусматривает работу с сетевым протоколом клиента версии 0.9.22.0.1. Поэтому, да, о запуске 0.7.0 речи не может идти. 2 минуты назад, Plotnik5252ru сказал: Да и скачал файл а что дальше нужно движок какой? Вероятно, нужно будет где-то развернуть серверную составляющую, если ты говоришь про установку мода, когда он будет готов. Будь то другой (или тот же) компьютер или виртуальная машина. Edited July 19, 2020 by DrWeb7_1 Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #485407 Posted July 19, 2020 3 минуты назад, DrWeb7_1 сказал: Вероятно, нужно будет где-то развернуть серверную составляющую, если ты говоришь про установку мода, когда он будет готов. Будь то другой (или тот же) компьютер или виртуальная машина. На данный момент локальный сервер на той же машине, только вот для версии x86-64 скорее всего, не смотря на то, что сама игра только для x86. И на первое время, кроме сервера, ещё и клиент, чтобы от сервера к основному клиенту формировать и передавать пакеты. Это было нужно, чтобы сетевой протокол не реализовывать на тот момент. 9 минут назад, Plotnik5252ru сказал: если у меня есть клиент версии 0.7.0 не запуститься А зачем 0.7.0? Ностальгия по старой графике? Так версия 0.9.22 лучше по всем параметрам. Старые карты, а графика подтянута, движок оптимизирован, по сравнению с 0.7.0, где всё тормозило, когда его недавно запускали. 1 Quote Share this post Link to post Short link Share on other sites
DrWeb7_1 176 #485408 Posted July 19, 2020 4 минуты назад, Dragon armor сказал: И на первое время, кроме сервера, ещё и клиент, чтобы от сервера к основному клиенту формировать и передавать пакеты. Это было нужно, чтобы сетевой протокол не реализовывать на тот момент. То есть, потребуется немного напильником подкорректировать публичные ключи серверов в клиенте и внести некоторые правки в сами скрипты клиента? Quote Share this post Link to post Short link Share on other sites
Dragon armor 66 #485409 Posted July 19, 2020 5 минут назад, DrWeb7_1 сказал: То есть, потребуется немного напильником подкорректировать публичные ключи серверов в клиенте и внести некоторые правки в сами скрипты клиента? В любом случае, нужно будет указать в конфиге адрес локального сервера. И публичный ключ заменить, да. Но это два файла в папке res. Можно даже и их не трогать, а заменить через папку с модами. Ну это детали. <login> <host> <name>Emul server</name> <short_name>ES</short_name> <url>127.127.127.127:20014</url> <url_token>127.127.127.127:20014</url_token> <public_key_path>rsa_mitm.pubkey</public_key_path> <periphery_id>101</periphery_id> </host> </login> А сервер-то до сих пор работает. Последняя удачная дебаг-сборка аж октябрь 2018. Ассерт только один import weakref File "C:\Python27\Lib\weakref.py", line 14, in <module> from _weakref import ( ImportError: cannot import name _remove_dead_weakref Интересно, если пофиксить, в ангар так же можно зайти будет? Просто используемые библиотеки в проекте сильно мной с того момента были переписаны. Собирать по-новой вряд ли без больших изменений можно. @DrWeb7_1 Ты погромист? На каком-то языке погромировать можешь? Странно, что по стандартному пути используется питон. Он встроенный как-бы должен быть. Может абсолютные пути использовал, уже и не помню. Quote Share this post Link to post Short link Share on other sites
Plotnik5252ru 13 #485411 Posted July 19, 2020 51 минуту назад, Dragon armor сказал: На данный момент локальный сервер на той же машине, только вот для версии x86-64 скорее всего, не смотря на то, что сама игра только для x86. И на первое время, кроме сервера, ещё и клиент, чтобы от сервера к основному клиенту формировать и передавать пакеты. Это было нужно, чтобы сетевой протокол не реализовывать на тот момент. А зачем 0.7.0? Ностальгия по старой графике? Так версия 0.9.22 лучше по всем параметрам. Старые карты, а графика подтянута, движок оптимизирован, по сравнению с 0.7.0, где всё тормозило, когда его недавно запускали. Да ностальгия по старой музыке в ангаре танки и старая графика. Интересно а возможно старую графику сделать вместо новой? Quote Share this post Link to post Short link Share on other sites
DrWeb7_1 176 #485412 Posted July 19, 2020 38 минут назад, Dragon armor сказал: Ты погромист? На каком-то языке погромировать можешь? Как бы это мерзко не звучало, но я больше верстальщик веб-страниц. HTML, CSS3, PHP - я в этом разбираюсь. Кое-как начал понимать Python 3.8 (на примере библиотеки discord.py для создания ботов для Discord). Quote Share this post Link to post Short link Share on other sites