Jump to content
Korean Random
Dragon armor

Мод "Эмулятор сервера World of Tanks".

Recommended Posts

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));
}

 

Share this post


Link to post

Short link
Share on other sites
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.

Share this post


Link to post

Short link
Share on other sites
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.:sad:

Share this post


Link to post

Short link
Share on other sites
15.05.2020 в 09:12, Dragon armor сказал:

VisualStudio 2015

2019 же давно есть...

1 час назад, Dragon armor сказал:

Also, no one wants to do it yourself

С радостью, но май - веселый месяц, даже если это дистанционка. Нужно окончить сессию, и можно будет что-нибудь поделать.

Share this post


Link to post

Short link
Share on other sites
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.

Share this post


Link to post

Short link
Share on other sites
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

 

Share this post


Link to post

Short link
Share on other sites
10 минут назад, Dragon armor сказал:

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

Share this post


Link to post

Short link
Share on other sites

@DrWeb7_1 Сплошные объекты. Даже никаких обозначений, флагов или чего-то подобного нет. Обычный разрушаемый объект, не отличимый от других.

Share this post


Link to post

Short link
Share on other sites
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.

Share this post


Link to post

Short link
Share on other sites

@Plotnik5252ru Нет. На данный момент занимаюсь совсем другим проектом. Никто не решился сделать физику для движения танка. Позже вернусь и попробую хоть как-то заставить технику ездить по карте. Вот тогда можно будет уже и скачивать хоть что-то.

53 минуты назад, Plotnik5252ru сказал:

и после скачки что качать и запускать?

А качать нужно будет клиент версии 0.9.22.0.1#788 (последний перед 1.0).

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, Dragon armor сказал:

@Plotnik5252ru Нет. На данный момент занимаюсь совсем другим проектом. Никто не решился сделать физику для движения танка. Позже вернусь и попробую хоть как-то заставить технику ездить по карте. Вот тогда можно будет уже и скачивать хоть что-то.

А качать нужно будет клиент версии 0.9.22.0.1#788 (последний перед 1.0).

Тоесть если у меня есть клиент версии 0.7.0 не запуститься. Да и скачал файл а что дальше нужно движок какой? Просто впервые такой мод вижу

Share this post


Link to post

Short link
Share on other sites
2 минуты назад, Plotnik5252ru сказал:

Тоесть если у меня есть клиент версии 0.7.0 не запуститься.

Эмулятор сервера на данный момент предусматривает работу с сетевым протоколом клиента версии 0.9.22.0.1. Поэтому, да, о запуске 0.7.0 речи не может идти.

2 минуты назад, Plotnik5252ru сказал:

Да и скачал файл а что дальше нужно движок какой?

Вероятно, нужно будет где-то развернуть серверную составляющую, если ты говоришь про установку мода, когда он будет готов. Будь то другой (или тот же) компьютер или виртуальная машина.

Edited by DrWeb7_1

Share this post


Link to post

Short link
Share on other sites
3 минуты назад, DrWeb7_1 сказал:

Вероятно, нужно будет где-то развернуть серверную составляющую, если ты говоришь про установку мода, когда он будет готов. Будь то другой (или тот же) компьютер или виртуальная машина.

На данный момент локальный сервер на той же машине, только вот для версии x86-64 скорее всего, не смотря на то, что сама игра только для x86. И на первое время, кроме сервера, ещё и клиент, чтобы от сервера к основному клиенту формировать и передавать пакеты. Это было нужно, чтобы сетевой протокол не реализовывать на тот момент.

9 минут назад, Plotnik5252ru сказал:

если у меня есть клиент версии 0.7.0 не запуститься

А зачем 0.7.0? Ностальгия по старой графике? Так версия 0.9.22 лучше по всем параметрам. Старые карты, а графика подтянута, движок оптимизирован, по сравнению с 0.7.0, где всё тормозило, когда его недавно запускали.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
4 минуты назад, Dragon armor сказал:

И на первое время, кроме сервера, ещё и клиент, чтобы от сервера к основному клиенту формировать и передавать пакеты. Это было нужно, чтобы сетевой протокол не реализовывать на тот момент.

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

Share this post


Link to post

Short link
Share on other sites
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 Ты погромист? На каком-то языке погромировать можешь?

Странно, что по стандартному пути используется питон. Он встроенный как-бы должен быть. Может абсолютные пути использовал, уже и не помню.

Share this post


Link to post

Short link
Share on other sites
51 минуту назад, Dragon armor сказал:

На данный момент локальный сервер на той же машине, только вот для версии x86-64 скорее всего, не смотря на то, что сама игра только для x86. И на первое время, кроме сервера, ещё и клиент, чтобы от сервера к основному клиенту формировать и передавать пакеты. Это было нужно, чтобы сетевой протокол не реализовывать на тот момент.

А зачем 0.7.0? Ностальгия по старой графике? Так версия 0.9.22 лучше по всем параметрам. Старые карты, а графика подтянута, движок оптимизирован, по сравнению с 0.7.0, где всё тормозило, когда его недавно запускали.

Да ностальгия по старой музыке в ангаре танки и старая графика. Интересно а возможно старую графику сделать вместо новой? 

Share this post


Link to post

Short link
Share on other sites
38 минут назад, Dragon armor сказал:

Ты погромист? На каком-то языке погромировать можешь?

Как бы это мерзко не звучало, но я больше верстальщик веб-страниц. HTML, CSS3, PHP - я в этом разбираюсь. Кое-как начал понимать Python 3.8 (на примере библиотеки discord.py для создания ботов для Discord).

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...