Перейти к контенту

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


Rolan

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

Ну давай Ролан с тобой подумаем вот над каким вопросом. Все знаю что в ЗП кол-во артов на поясе записано в двигателе. Я говорил с колмогором по этому поводу и даже копался в движке но ничего не нашел кроме строку belt и дальше 2 пробела (00 00). Собственно вопрос - где та цифра 5 которая жестоко ограничивает читерство?

Freedom

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


Ссылка на сообщение
(изменено)

Ты где-то не вставил собственно параметры ножа. Объясняю:

Когда ты вставляешь во 2 слот оружие то оно появляется по заданным координатам в инвентаре. Допустим пусть это будут координаты wpn2 в файле ui\actor_menu.xml

А ты сделал визуальный слот 0. Но ты не прописал какие координаты брать для ножа! То есть нужно найти в дллке где получаются координаты оружия и добавить туда координаты для ножа!

Поэтому и [error]Argument 0 : (ничего) а аргумент 2 равен [error]Argument 1 : ui\actor_menu.xml

 

З.Ы. Удивлен что тема дает толк

Изменено пользователем _Призрак_

Freedom

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


Ссылка на сообщение
(изменено)

Я смог декомпилировать ту функцию что правил Колмогор в своей дллке в который увеличено плотность травы и еще что-то. Поэтому вопрос к тем кто знает графику игры. Нету ли в этих параметрах чего нибудь вкусненького?

r__geometry_lod

r__detail_density -это плотность травы, так?

r__tf_aniso

r1_ssa_lod_a

r1_ssa_lod_b

r1_lmodel_lerp

r1_tf_mipbias

r1_dlights

r1_dlights_clip

r1_pps_u

r1_pps_v

r1_dlights_clip

r1_glows_per_frame

r2_ssa_lod_a

r2_ssa_lod_b

r2_tf_mipbias

r2em

r2_tonemap

r2_tonemap_middlegray

r2_tonemap_adaptation

r2_tonemap_lowlum

r2_tonemap_amount

r2_ls_bloom_kernel_scale

r2_ls_bloom_kernel_g

r2_ls_bloom_kernel_b

r2_ls_bloom_threshold

r2_ls_bloom_speed

r2_ls_bloom_fast

r2_ls_dsm_kernel

r2_ls_psm_kernel

r2_ls_ssm_kernel

r2_ls_squality

r2_zfill

r2_zfill_depth

r2_allow_r1_lights

r2_gloss_factor

r2_sun

r2_sun_details

r2_sun_focus

r2_sun_tsm

r2_sun_tsm_proj

r2_sun_tsm_bias

r2_sun_near

r2_sun_near_border

r2_sun_depth_far_scale

r2_sun_depth_far_bias

r2_sun_depth_near_scale

r2_sun_depth_near_bias

r2_sun_lumscale

r2_sun_lumscale_hemi

r2_sun_lumscale_amb

r2_aa

r2_aa_kernel

r2_mblur

r2_gi

r2_gi_clip

r2_gi_depth

r2_gi_photons

r2_gi_refl

r2_wait_sleep

r2_ls_depth_scale

r2_ls_depth_bias

r2_parallax_h

r2_slight_fade

r2_aa_break

r2_aa_weight

 

 

Кстати если кто нить хочет посмотреть - вот как эта функция выглядит в оригинале

 

int __cdecl sub_10001610()

{

int v4; // [sp+50Ch] [bp-18h]@133

int v5; // [sp+50Ch] [bp-18h]@135

int v6; // [sp+510h] [bp-14h]@133

int v7; // [sp+510h] [bp-14h]@135

int v8; // [sp+514h] [bp-10h]@133

int v9; // [sp+514h] [bp-10h]@135

int v10; // [sp+518h] [bp-Ch]@133

int v11; // [sp+518h] [bp-Ch]@135

int v12; // [sp+51Ch] [bp-8h]@133

int v13; // [sp+51Ch] [bp-8h]@135

int v14; // [sp+520h] [bp-4h]@133

int v15; // [sp+520h] [bp-4h]@135

 

if ( !(dword_10063320 & 1) )

{

dword_10063320 |= 1u;

CCC_Token__CCC_Token(&dword_10062CD4, "_preset", &unk_10053144, &off_10053148);

dword_10062CD4 = (int)&off_10048C80;

atexit(sub_10047D50);

}

CConsole__AddCommand(Console, &dword_10062CD4);

if ( !(dword_10063320 & 2) )

{

dword_10063320 |= 2u;

dword_10062CEC = (int)"screenshot";

byte_10062CF0 = 1;

LOBYTE(word_10062CF1) = 1;

word_10062CF1 = (unsigned __int8)word_10062CF1;

dword_10062CE8 = (int)&off_10048C68;

atexit(sub_10047D40);

}

CConsole__AddCommand(Console, &dword_10062CE8);

if ( !(dword_10063320 & 4) )

{

dword_10063320 |= 4u;

CCC_Float__CCC_Float(&unk_10063308, "r__geometry_lod", &flt_100531B4, 0.1000000014901161, 1.200000047683716);

atexit(sub_10047D30);

}

CConsole__AddCommand(Console, &unk_10063308);

if ( !(dword_10063320 & 8) )

{

dword_10063320 |= 8u;

CCC_Float__CCC_Float(&unk_100632F0, "r__detail_density", "ЪЩЩ>", 0.01999999955296516, 0.6000000238418579);// hh

//

atexit(sub_10047D20);

}

CConsole__AddCommand(Console, &unk_100632F0);

if ( !(dword_10063320 & 0x10) )

{

dword_10063320 |= 0x10u;

CCC_Integer__CCC_Integer(&dword_10062D0C, "r__tf_aniso", &unk_100531C4, 1, 16);

dword_10062D0C = (int)&off_10048C20;

atexit(sub_10047D10);

}

CConsole__AddCommand(Console, &dword_10062D0C);

if ( !(dword_10063320 & 0x20) )

{

dword_10063320 |= 0x20u;

CCC_Float__CCC_Float(&unk_100632D8, "r1_ssa_lod_a", &dword_100531C8, 16.0, LODWORD(flt_100531C0));

atexit(sub_10047D00);

}

CConsole__AddCommand(Console, &unk_100632D8);

if ( !(dword_10063320 & 0x40) )

{

dword_10063320 |= 0x40u;

CCC_Float__CCC_Float(&unk_100632C0, "r1_ssa_lod_b", &dword_100531CC, 16.0, LODWORD(flt_100531B0));

atexit(sub_10047CF0);

}

CConsole__AddCommand(Console, &unk_100632C0);

if ( !(dword_10063320 & 0x80) )

{

dword_10063320 |= 0x80u;

CCC_Float__CCC_Float(&unk_100632A8, "r1_lmodel_lerp", "=¦¦=", 0.0, 0.3330000042915344);

atexit(sub_10047CE0);

}

CConsole__AddCommand(Console, &unk_100632A8);

if ( !(dword_10063320 & 0x100) )

{

dword_10063320 |= 0x100u;

CCC_Float__CCC_Float(&dword_10063290, "r1_tf_mipbias", &unk_10054210, -3.0, 0.5);

dword_10063290 = (int)&off_10048C38;

atexit(sub_10047CD0);

}

CConsole__AddCommand(Console, &dword_10063290);

if ( !(dword_10063320 & 0x200) )

{

dword_10063320 |= 0x200u;

CCC_Mask__CCC_Mask(&unk_1006327C, "r1_dlights", &byte_100531D0, 1);

atexit(sub_10047CC0);

}

CConsole__AddCommand(Console, &unk_1006327C);

if ( !(dword_10063320 & 0x400) )

{

dword_10063320 |= 0x400u;

CCC_Float__CCC_Float(&unk_10063264, "r1_dlights_clip", &asc_100531D4[4], *(_DWORD *)&aSs[4], 150.0);

atexit(sub_10047CB0);

}

CConsole__AddCommand(Console, &unk_10063264);

if ( !(dword_10063320 & 0x800) )

{

dword_10063320 |= 0x800u;

CCC_Float__CCC_Float(&unk_1006324C, "r1_pps_u", &dword_10054214, -1.0, 1.0);

atexit(sub_10047CA0);

}

CConsole__AddCommand(Console, &unk_1006324C);

if ( !(dword_10063320 & 0x1000) )

{

dword_10063320 |= 0x1000u;

CCC_Float__CCC_Float(&unk_10063234, "r1_pps_v", &dword_10054218, -1.0, 1.0);

atexit(sub_10047C90);

}

CConsole__AddCommand(Console, &unk_10063234);

if ( !(dword_10063320 & 0x2000) )

{

dword_10063320 |= 0x2000u;

CCC_Float__CCC_Float(&unk_1006321C, "r1_dlights_clip", &asc_100531D4[4], *(_DWORD *)&aSs[4], 150.0);

atexit(sub_10047C80);

}

CConsole__AddCommand(Console, &unk_1006321C);

if ( !(dword_10063320 & 0x4000) )

{

dword_10063320 |= 0x4000u;

CCC_Integer__CCC_Integer(&unk_10063204, "r1_glows_per_frame", &dword_100531DC, 2, 32);

atexit(sub_10047C70);

}

CConsole__AddCommand(Console, &unk_10063204);

if ( !(dword_10063320 & 0x8000) )

{

dword_10063320 |= 0x8000u;

CCC_Float__CCC_Float(&unk_100631EC, "r2_ssa_lod_a", &unk_100531E0, 16.0, LODWORD(flt_100531C0));

atexit(sub_10047C60);

}

CConsole__AddCommand(Console, &unk_100631EC);

if ( !(dword_10063320 & 0x10000) )

{

dword_10063320 |= 0x10000u;

CCC_Float__CCC_Float(&unk_100631D4, "r2_ssa_lod_b", &unk_100531E4, 32.0, LODWORD(flt_100531B0));

atexit(sub_10047C50);

}

CConsole__AddCommand(Console, &unk_100631D4);

if ( !(dword_10063320 & 0x20000) )

{

dword_10063320 |= 0x20000u;

CCC_Float__CCC_Float(&dword_100631BC, "r2_tf_mipbias", &unk_1005421C, -0.5, 0.5);

dword_100631BC = (int)&off_10048C38;

atexit(sub_10047C40);

}

CConsole__AddCommand(Console, &dword_100631BC);

if ( !(dword_10063320 & 0x40000) )

{

dword_10063320 |= 0x40000u;

CCC_Float__CCC_Float(&dword_10062CF4, "r2em", &dword_10054224, 0.0, 4.0);

__asm { xorps xmm0, xmm0 }

dword_10062CF4 = (int)&off_10048C50;

__asm { movss dword_10054224, xmm0 }

atexit(sub_10047C30);

}

CConsole__AddCommand(Console, &dword_10062CF4);

if ( !(dword_10063320 & 0x80000) )

{

dword_10063320 |= 0x80000u;

CCC_Mask__CCC_Mask(&unk_100631A8, "r2_tonemap", &dword_100531E8, 16);

atexit(sub_10047C20);

}

CConsole__AddCommand(Console, &unk_100631A8);

if ( !(dword_10063320 & 0x100000) )

{

dword_10063320 |= 0x100000u;

CCC_Float__CCC_Float(&unk_10063190, "r2_tonemap_middlegray", &aG[4], 0.0, 2.0);

atexit(sub_10047C10);

}

CConsole__AddCommand(Console, &unk_10063190);

if ( !(dword_10063320 & 0x200000) )

{

dword_10063320 |= 0x200000u;

CCC_Float__CCC_Float(&unk_10063178, "r2_tonemap_adaptation", &aA_0[2], 0.009999999776482582, *(_DWORD *)&aSs[4]);

atexit(sub_10047C00);

}

CConsole__AddCommand(Console, &unk_10063178);

if ( !(dword_10063320 & 0x400000) )

{

dword_10063320 |= 0x400000u;

CCC_Float__CCC_Float(&unk_10063160, "r2_tonemap_lowlum", &unk_100531F8, LODWORD(flt_100531A4), 1.0);

atexit(sub_10047BF0);

}

CConsole__AddCommand(Console, &unk_10063160);

if ( !(dword_10063320 & 0x800000) )

{

dword_10063320 |= 0x800000u;

CCC_Float__CCC_Float(&unk_10063148, "r2_tonemap_amount", &unk_100531FC, 0.0, 1.0);

atexit(sub_10047BE0);

}

CConsole__AddCommand(Console, &unk_10063148);

if ( !(dword_10063320 & 0x1000000) )

{

dword_10063320 |= 0x1000000u;

CCC_Float__CCC_Float(&unk_10063130, "r2_ls_bloom_kernel_scale", &aA_1[2], 0.5, 2.0);

atexit(sub_10047BD0);

}

CConsole__AddCommand(Console, &unk_10063130);

if ( !(dword_10063320 & 0x2000000) )

{

dword_10063320 |= 0x2000000u;

CCC_Float__CCC_Float(&unk_10063118, "r2_ls_bloom_kernel_g", "33S@333?", 1.0, 7.0);

atexit(sub_10047BC0);

}

CConsole__AddCommand(Console, &unk_10063118);

if ( !(dword_10063320 & 0x4000000) )

{

dword_10063320 |= 0x4000000u;

CCC_Float__CCC_Float(&unk_10063100, "r2_ls_bloom_kernel_b", &a33s[4], 0.009999999776482582, 1.0);

atexit(sub_10047BB0);

}

CConsole__AddCommand(Console, &unk_10063100);

if ( !(dword_10063320 & 0x8000000) )

{

dword_10063320 |= 0x8000000u;

CCC_Float__CCC_Float(&unk_100630E8, "r2_ls_bloom_threshold", "ЪЩЩ>=¦L?=¦¦=", 0.0, 1.0);

atexit(sub_10047BA0);

}

CConsole__AddCommand(Console, &unk_100630E8);

if ( !(dword_10063320 & 0x10000000) )

{

dword_10063320 |= 0x10000000u;

CCC_Float__CCC_Float(&unk_100630D0, "r2_ls_bloom_speed", &a33s[8], 0.0, 100.0);

atexit(sub_10047B90);

}

CConsole__AddCommand(Console, &unk_100630D0);

if ( !(dword_10063320 & 0x20000000) )

{

dword_10063320 |= 0x20000000u;

CCC_Mask__CCC_Mask(&unk_100630BC, "r2_ls_bloom_fast", &dword_100531E8, 128);

atexit(sub_10047B80);

}

CConsole__AddCommand(Console, &unk_100630BC);

if ( !(dword_10063320 & 0x40000000) )

{

dword_10063320 |= 0x40000000u;

CCC_Float__CCC_Float(&unk_100630A4, "r2_ls_dsm_kernel", &unk_10053210, 0.1000000014901161, 3.0);

atexit(sub_10047B70);

}

CConsole__AddCommand(Console, &unk_100630A4);

if ( !(dword_10063320 & 0x80000000) )

{

dword_10063320 |= 0x80000000u;

CCC_Float__CCC_Float(&unk_1006308C, "r2_ls_psm_kernel", &unk_10053214, 0.1000000014901161, 3.0);

atexit(sub_10047B60);

}

CConsole__AddCommand(Console, &unk_1006308C);

if ( !(dword_10063088 & 1) )

{

dword_10063088 |= 1u;

CCC_Float__CCC_Float(&unk_10063070, "r2_ls_ssm_kernel", &unk_10053218, 0.1000000014901161, 3.0);

atexit(sub_10047B50);

}

CConsole__AddCommand(Console, &unk_10063070);

if ( !(dword_10063088 & 2) )

{

dword_10063088 |= 2u;

CCC_Float__CCC_Float(&unk_10063058, "r2_ls_squality", &unk_10053254, 0.5, 1.0);

atexit(sub_10047B40);

}

CConsole__AddCommand(Console, &unk_10063058);

if ( !(dword_10063088 & 4) )

{

dword_10063088 |= 4u;

CCC_Mask__CCC_Mask(&unk_10063044, "r2_zfill", &dword_100531E8, 512);

atexit(sub_10047B30);

}

CConsole__AddCommand(Console, &unk_10063044);

if ( !(dword_10063088 & 8) )

{

dword_10063088 |= 8u;

CCC_Float__CCC_Float(&unk_1006302C, "r2_zfill_depth", "=¦¦=", 0.001000000047497451, 0.5);

atexit(sub_10047B20);

}

CConsole__AddCommand(Console, &unk_1006302C);

if ( !(dword_10063088 & 0x10) )

{

dword_10063088 |= 0x10u;

CCC_Mask__CCC_Mask(&unk_10063018, "r2_allow_r1_lights", &dword_100531E8, 1024);

atexit(sub_10047B10);

}

CConsole__AddCommand(Console, &unk_10063018);

if ( !(dword_10063088 & 0x20) )

{

dword_10063088 |= 0x20u;

CCC_Float__CCC_Float(&unk_10063000, "r2_gloss_factor", &unk_10053294, 0.0, *(_DWORD *)&aSs[4]);

atexit(sub_10047B00);

}

CConsole__AddCommand(Console, &unk_10063000);

if ( !(dword_10063088 & 0x40) )

{

dword_10063088 |= 0x40u;

CCC_Mask__CCC_Mask(&unk_10062FEC, "r2_sun", &dword_100531E8, 1);

atexit(sub_10047AF0);

}

CConsole__AddCommand(Console, &unk_10062FEC);

if ( !(dword_10063088 & 0x80) )

{

dword_10063088 |= 0x80u;

CCC_Mask__CCC_Mask(&unk_10062FD8, "r2_sun_details", &dword_100531E8, 8);

atexit(sub_10047AE0);

}

CConsole__AddCommand(Console, &unk_10062FD8);

if ( !(dword_10063088 & 0x100) )

{

dword_10063088 |= 0x100u;

CCC_Mask__CCC_Mask(&unk_10062FC4, "r2_sun_focus", &dword_100531E8, 2);

atexit(sub_10047AD0);

}

CConsole__AddCommand(Console, &unk_10062FC4);

if ( !(dword_10063088 & 0x200) )

{

dword_10063088 |= 0x200u;

CCC_Mask__CCC_Mask(&unk_10062FB0, "r2_sun_tsm", &dword_100531E8, 4);

atexit(sub_10047AC0);

}

CConsole__AddCommand(Console, &unk_10062FB0);

if ( !(dword_10063088 & 0x400) )

{

dword_10063088 |= 0x400u;

CCC_Float__CCC_Float(&unk_10062F98, "r2_sun_tsm_proj", "ьQ8>=¦L-", 0.001000000047497451, 0.800000011920929);

atexit(sub_10047AB0);

}

CConsole__AddCommand(Console, &unk_10062F98);

if ( !(dword_10063088 & 0x800) )

{

dword_10063088 |= 0x800u;

CCC_Float__CCC_Float(&unk_10062F80, "r2_sun_tsm_bias", &aQ8L[4], -0.5, 0.5);

atexit(sub_10047AA0);

}

CConsole__AddCommand(Console, &unk_10062F80);

if ( !(dword_10063088 & 0x1000) )

{

dword_10063088 |= 0x1000u;

CCC_Float__CCC_Float(&unk_10062F68, "r2_sun_near", &aQ8L[8], 1.0, 50.0);

atexit(sub_10047A90);

}

CConsole__AddCommand(Console, &unk_10062F68);

if ( !(dword_10063088 & 0x2000) )

{

dword_10063088 |= 0x2000u;

CCC_Float__CCC_Float(&unk_10062F50, "r2_sun_near_border", &unk_10053264, 0.5, 1.0);

atexit(sub_10047A80);

}

CConsole__AddCommand(Console, &unk_10062F50);

if ( !(dword_10063088 & 0x4000) )

{

dword_10063088 |= 0x4000u;

CCC_Float__CCC_Float(&unk_10062F38, "r2_sun_depth_far_scale", &unk_10053268, 0.5, LODWORD(flt_1005319C));

atexit(sub_10047A70);

}

CConsole__AddCommand(Console, &unk_10062F38);

if ( !(dword_10063088 & 0x8000) )

{

dword_10063088 |= 0x8000u;

CCC_Float__CCC_Float(&unk_10062F20, "r2_sun_depth_far_bias", &unk_10054220, -0.5, 0.5);

atexit(sub_10047A60);

}

CConsole__AddCommand(Console, &unk_10062F20);

if ( !(dword_10063088 & 0x10000) )

{

dword_10063088 |= 0x10000u;

CCC_Float__CCC_Float(&unk_10062F08, "r2_sun_depth_near_scale", &unk_1005326C, 0.5, LODWORD(flt_1005319C));

atexit(sub_10047A50);

}

CConsole__AddCommand(Console, &unk_10062F08);

if ( !(dword_10063088 & 0x20000) )

{

dword_10063088 |= 0x20000u;

CCC_Float__CCC_Float(&unk_10062EF0, "r2_sun_depth_near_bias", "м+'¬", -0.5, 0.5);

atexit(sub_10047A40);

}

CConsole__AddCommand(Console, &unk_10062EF0);

if ( !(dword_10063088 & 0x40000) )

{

dword_10063088 |= 0x40000u;

CCC_Float__CCC_Float(&unk_10062ED8, "r2_sun_lumscale", &aM[4], -1.0, 3.0);

atexit(sub_10047A30);

}

CConsole__AddCommand(Console, &unk_10062ED8);

if ( !(dword_10063088 & 0x80000) )

{

dword_10063088 |= 0x80000u;

CCC_Float__CCC_Float(&unk_10062EC0, "r2_sun_lumscale_hemi", &aA_[2], 0.0, 3.0);

atexit(sub_10047A20);

}

CConsole__AddCommand(Console, &unk_10062EC0);

if ( !(dword_10063088 & 0x100000) )

{

dword_10063088 |= 0x100000u;

CCC_Float__CCC_Float(&unk_10062EA8, "r2_sun_lumscale_amb", &aA__0[2], 0.0, 3.0);

atexit(sub_10047A10);

}

CConsole__AddCommand(Console, &unk_10062EA8);

if ( !(dword_10063088 & 0x200000) )

{

dword_10063088 |= 0x200000u;

CCC_Mask__CCC_Mask(&unk_10062E94, "r2_aa", &dword_100531E8, 32);

atexit(sub_10047A00);

}

CConsole__AddCommand(Console, &unk_10062E94);

if ( !(dword_10063088 & 0x400000) )

{

dword_10063088 |= 0x400000u;

CCC_Float__CCC_Float(&unk_10062E7C, "r2_aa_kernel", &unk_10053238, 0.300000011920929, 0.699999988079071);

atexit(sub_100479F0);

}

CConsole__AddCommand(Console, &unk_10062E7C);

if ( !(dword_10063088 & 0x800000) )

{

dword_10063088 |= 0x800000u;

CCC_Float__CCC_Float(&unk_10062E64, "r2_mblur", &unk_1005323C, 0.0, 1.0);

atexit(sub_100479E0);

}

CConsole__AddCommand(Console, &unk_10062E64);

if ( !(dword_10063088 & 0x1000000) )

{

dword_10063088 |= 0x1000000u;

CCC_Mask__CCC_Mask(&unk_10062E50, "r2_gi", &dword_100531E8, 64);

atexit(sub_100479D0);

}

CConsole__AddCommand(Console, &unk_10062E50);

if ( !(dword_10063088 & 0x2000000) )

{

dword_10063088 |= 0x2000000u;

CCC_Float__CCC_Float(&unk_10062E38, "r2_gi_clip", &unk_1005329C, 0.000009999999747378752, 0.1000000014901161);

atexit(sub_100479C0);

}

CConsole__AddCommand(Console, &unk_10062E38);

if ( !(dword_10063088 & 0x4000000) )

{

dword_10063088 |= 0x4000000u;

CCC_Integer__CCC_Integer(&unk_10062E20, "r2_gi_depth", &unk_10053240, 1, 5);

atexit(sub_100479B0);

}

CConsole__AddCommand(Console, &unk_10062E20);

if ( !(dword_10063088 & 0x8000000) )

{

dword_10063088 |= 0x8000000u;

CCC_Integer__CCC_Integer(&unk_10062E08, "r2_gi_photons", &unk_10053244, 8, 256);

atexit(sub_100479A0);

}

CConsole__AddCommand(Console, &unk_10062E08);

if ( !(dword_10063088 & 0x10000000) )

{

dword_10063088 |= 0x10000000u;

CCC_Float__CCC_Float(&unk_10062DF0, "r2_gi_refl", "fff?T", 0.001000000047497451, 0.9900000095367432);

atexit(sub_10047990);

}

CConsole__AddCommand(Console, &unk_10062DF0);

if ( !(dword_10063088 & 0x20000000) )

{

dword_10063088 |= 0x20000000u;

CCC_Integer__CCC_Integer(&unk_10062DD8, "r2_wait_sleep", &unk_10054228, 0, 1);

atexit(sub_10047980);

}

CConsole__AddCommand(Console, &unk_10062DD8);

if ( !(dword_10063088 & 0x40000000) )

{

dword_10063088 |= 0x40000000u;

CCC_Float__CCC_Float(&unk_10062DC0, "r2_ls_depth_scale", &aFff_t[4], 0.5, LODWORD(flt_1005319C));

atexit(sub_10047970);

}

CConsole__AddCommand(Console, &unk_10062DC0);

if ( !(dword_10063088 & 0x80000000) )

{

dword_10063088 |= 0x80000000u;

CCC_Float__CCC_Float(&unk_10062DA8, "r2_ls_depth_bias", &unk_10053250, -0.5, 0.5);

atexit(sub_10047960);

}

CConsole__AddCommand(Console, &unk_10062DA8);

if ( !(dword_10062DA4 & 1) )

{

dword_10062DA4 |= 1u;

CCC_Float__CCC_Float(&unk_10062D8C, "r2_parallax_h", "\n+г<", 0.0, 0.5);

atexit(sub_10047950);

}

CConsole__AddCommand(Console, &unk_10062D8C);

if ( !(dword_10062DA4 & 2) )

{

dword_10062DA4 |= 2u;

CCC_Float__CCC_Float(&unk_10062D74, "r2_slight_fade", &unk_10053290, 0.01999999955296516, 2.0);

atexit(sub_10047940);

}

CConsole__AddCommand(Console, &unk_10062D74);

__asm

{

xorps xmm0, xmm0

movss [esp+28h+var_C], xmm0

movss [esp+28h+var_8], xmm0

movss [esp+28h+var_4], xmm0

movss xmm0, ds:dword_10048E14

movss [esp+28h+var_18], xmm0

movss [esp+28h+var_14], xmm0

movss [esp+28h+var_10], xmm0

}

if ( !(dword_10062DA4 & 4) )

{

dword_10062DA4 |= 4u;

CCC_Vector3__CCC_Vector3(&unk_10062D4C, "r2_aa_break", &aSsL_[4], v10, v12, v14, v4, v6, v8);

atexit(sub_10047930);

}

CConsole__AddCommand(Console, &unk_10062D4C);

__asm

{

xorps xmm0, xmm0

movss [esp+28h+var_C], xmm0

movss [esp+28h+var_8], xmm0

movss [esp+28h+var_4], xmm0

movss xmm0, ds:dword_10048E14

movss [esp+28h+var_18], xmm0

movss [esp+28h+var_14], xmm0

movss [esp+28h+var_10], xmm0

}

if ( !(dword_10062DA4 & 8) )

{

dword_10062DA4 |= 8u;

CCC_Vector3__CCC_Vector3(&unk_10062D24, "r2_aa_weight", &unk_1005322C, v11, v13, v15, v5, v7, v9);

atexit(sub_10047920);

}

return CConsole__AddCommand(Console, &unk_10062D24);

}

 

 

Большое спасибо Колмогору которого я 2 день мучаю своими дурацкими вопросами :)

Серый Волк

Я спросил у колмогора в чем может проблема твоего вылета. Вот что он ответил

Kolmogor (23:58:44 14/10/2010)

ну серый волк все строчки попереставлял, а в коде адреса не поменял - вот и вылетает

Изменено пользователем _Призрак_

Freedom

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


Ссылка на сообщение
(изменено)

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

Я имел в виду такое:

Я открыл в Айда рендер_р1. Нашел где упоминается r__detail_density. Это все находилось в такой функции:

fld ds:flt_1004C63C

or dword_10063320, 8

sub esp, 8

fstp [esp+30h+var_2C]

mov ecx, offset unk_100632F0

fld ds:flt_1004C5C0

fstp [esp+30h+var_30]

push offset aSs ; "ЪЩЩ>"

push offset aR__detail_dens ; "r__detail_density"

call ds:??0CCC_Float@@QAE@PBDPAMMM@Z ; CCC_Float::CCC_Float(char const *,float *,float,float)

push offset sub_10047D20 ; void (__cdecl *)()

call _atexit

add esp, 4

 

 

Переведя ее я понял что fld ds:flt_1004C63C и fld ds:flt_1004C5C0 задает верхний и нижний параметр плотности травы. Теперь мне их нужно изменить. Жмем на flt_1004C63C и видим такое:

.rdata:1004C63C flt_1004C63C dd 0.60000002 ; DATA XREF: sub_10001610+112r

 

 

Ага, значит задается здесь. Но нам нужно это поменять. При открытии хекс вида мы видим что выделились цифры 9A 99 19 3F. Открыв интеловский документ я понял что тут нет ассамблеровских команд. Тогда возможно это и есть число которое мне нужно - 0.60000002. Но числа в 16-ичном формате пишутся так: 0x999999ef7. В дллке я вообще х - не видел поэтому и спрашиваю

 

Или я где-то ошибся?

Изменено пользователем _Призрак_

Freedom

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


Ссылка на сообщение
(изменено)

Тут вот появилась небольшая проблемка - хочу посоветоваться.

Я смог отредактировать дллку. Делал так:

1. Открыл дллку через Айда

2. Нашел где встречается r__detail_density

3. Нашел строку fld ds:flt_1004F8B0 которая задает верхний параметр плотности травы

4. Шелкнув на нее 2 раза я переместился на строку .rdata:1004F8B0 flt_1004F8B0 dd 0.2 ; DATA XREF: sub_10001A40+12Br

5. Перешел в ХЕКС Виев

6. Нажал дата формат - Single Float

7. Нашел в той стоке значение 0.2 и поменял его на 0.22

8. Сохранил изменение в виде dif файла

9. При помощи программы bpatch соединил дллку и .диф

10. Открыл в айда измененную дллку - изменения произошли

11. Запустил и......... Трава пропала! Вообще! Хотя если ввести в консоли r__detail_density консоль скажет что данный параметр равен 0.22

Во всей дллке я поменял только вот какие строки:

xrRender_R1.dll

0004F8B0: CD AE

0004F8B1: CC 47

0004F8B2: 4C 61

это из диф файла. читается так: оффсет, исходное число, изменение

Совершенно не понимаю почему могла пропасть трава! Ни вылета, ничего. Айда говорит что изменения приняты

Изменено пользователем _Призрак_

Freedom

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


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

r__detail_density является параметром плотности травы - параметр меняется если переместить ползунок в настройках или внести изменение в двиг. Вполне возможно что в ЗП этот параметр изменился. Попробуй изменить данный параметр в ЗП, вдруг результаты будут другие

Freedom

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


Ссылка на сообщение
(изменено)
"Data format" -> "Single Float (32 bit)"

Находится в ХЕКС_ВИЕВ, правая кнопка мыши....

 

Добавлено через 122 мин.:

Заметил одну интересную вещь. А именно:

Изменения дллки колмогора по сравнению со стандартной:

Рендер_р2:

оффсет|У Колмогора|Оригинал|Зачем сделано

00001730|80|38|??? из-за этой правки теперь в функции не fld ds:flt_10064338 а fld ds:flt_10064380 - получается что берется совсем другая переменная???

 

Прошу помощи знающих людей. У меня 2 вопроса - прав ли я в своих выводах и почему правка значения параметра плотности травы приводит к ее пропаже?

 

И может ли быть такое что этой переменной пользуется не одна, а несколько функций? Одна из которых работает не правильно при изменении параметра? Подтолкнуло меня на это айда:

.rdata:10064338 flt_10064338    dd 0.2                ; [b]DATA XREF: sub_10001610+12Br[/b]
.rdata:10064338                                    ; [b]sub_1000AE90+1E1r ...[/b]

З.Ы. Колмогор - большое спасибо за выложенные исходники - буду разбирать обязательно

 

З.Ы.Ы. Маландринус, колмогор - пожалуйста прокоментируйте мой пост - прав я или нет?

З.Ы.Ы.Ы. РОЛАН - не думаю что ПЫС сейчас сидят на этом форуме и мы все уже нахлдимся под колпаком :)

Изменено пользователем _Призрак_

Freedom

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


Ссылка на сообщение
(изменено)

Поздравьте меня! У меня получилось!

48ee2d2daca02e0caf47ca86a28a4a465dba6570839609.jpgf23d4a7dce574113f4ab5d1ea595218c5dba6570839609.jpgd13a4661d3432c6b61f2f59420626c295dba6570839609.jpg4aa672a6c56d6d479f13dc3b788f7a9c5dba6570839609.jpg

Трава стоит на 0.07

Изменено пользователем _Призрак_

Freedom

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


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

Тутор напишу, сделаю адаптации под различные патчи/игры. Но попозже

 

Добавлено через 30 мин.:

А не подскажите на сколько установленна в сталкере дальность прорисовки травы? Лучше конечно точное значение (если у кого-нить получалось снять)

Freedom

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


Ссылка на сообщение
(изменено)

Инструкция по изменению плотности травы. Параметр меньше 0.02 не ставить - Колмогор писал что начинает лагать

1. Открываем айда

2. Открываем айда_виев

3. Теперь ищем что нам нужно найти. Нам сейчас нужно найти r__detail_density? Тогда жмем ctrl+t и вводим r__detail_density

4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, а только укажу где задаются параметры:

fld ds:flt_10064400 --нижнее ограничение равное 0.6

or dword_1007CACC, 8

sub esp, 8

fstp [esp+30h+var_2C]

mov ecx, offset unk_1007CA9C

fld ds:flt_10064380 --верхнее ограничение равное 0.2

fstp [esp+30h+var_30]

push offset aSs ; "ЪЩЩ>"

push offset aR__detail_dens ; "r__detail_density"

call ds:??0CCC_Float@@QAE@PBDPAMMM@Z ; CCC_Float::CCC_Float(char const *,float *,float,float)

push offset sub_1005E080 ; void (__cdecl *)()

call _atexit

add esp, 4

 

 

Если вы заметили, то что бы трава стала плотней нужно уменьшить параметр, а что-бы травы стало меньше нужно параметр увеличить

5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть 3 варианта:

 

Первый и самый логичный вариант: изменить переменную которая задает. Но тут есть небольшой подвох на котором я попался. Этой переменной может пользоваться не одна функция, а несколько. И не ясно что вы можете сломать, поменяв одну циферку в переменной...

 

Второй: взять другую уже существующую переменную. Хороший вариант которым я и воспользовался. Но и тут есть недочет - переменных в ддлке не так уж и много и можно просто не найти нужную

 

Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать

 

Я пошел по второму пути. Два раза шелкнув на ds:flt_10064380 айда отправила меня в дебри под названием .rdata. Там я нашел переменную которая называлась - flt_1006452C и которая имела значение 0.0720999

Вообще-то, как я понял, flt_1006452C - не является названием переменной. Это так сказать сборка из 2 показателей - (тип числа)_(оффсет) В нашем случае это число типа float которое находится в 1006452C. Ну чтож приступим к редактированию!

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

7. Опять ищем r__detail_density. Находим в этой функции fld ds:flt_10064338. Дальше самое интересное. Жмем на ХЕКС_ВИЕВ и там у нас выделяются какие-то цифры. Это наше 10064338 только написано наоборот. Сравните:

38 43 06 10

10 06 43 38

Похоже, не правда?

Начинаем редактировать. нам нужно поменять 4338 на 452C т.к. в этом и есть различие. Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где нибудь в коде. Это нужно сделать обязательно. После этого жмем правой кнопкой мыши и выбираем commit changes. Но айда не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так - Файл - Produce file - Create DIF file. Назовем его test. DIF файл можно открыть при помощи блокнота и посмотреть что вы сделали. Теперь так сказать соединит этот файл и дллку. Это можно сделать при помощи bpatch. Качаем и смотрим и запускаем bpatch.cmd. Я думаю что вы сможете его изменить сами если нужно будет. Там все элементарно.

 

Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз

Спасибо и Ролану с которым я очень много беседовал и тоже узнал много чего

 

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

Изменено пользователем _Призрак_
  • Полезно 1

Freedom

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


Ссылка на сообщение
(изменено)

AK74

Тут смотря как сделать выброс. Дело в том что через двигатель можно сделать все что угодно - начиная от супер-пупер выброса и заканчивая просто передачей денег, ведь двигатель - это набор циферок. А скрипты могут тоже многое, но не всегда то что нужно. Поэтому используются обходные пути, которые тоже потребляют ресурсы. Поэтому если сравнивать падение FPS при выбросе в ЗП и в ТЧ - ЗП явно будет лидером. Но если сравнивать какую-то простую вещь - вывод 100 строк в лог - разница я думаю будет небольшая

 

Кстати у меня получилось создать свой сегмент в дллке сталкера и сбросить туда нужные мне переменные. Скоро допишу мою статью

Изменено пользователем _Призрак_

Freedom

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


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

Добавление к моей инструкции.

 

Иногда требуется создать новую переменную. Но как это сделать? Искать неиспользованное место в дллке? Опасно. Это место может быть зарезервировано. Что же делать? Есть выход - создать свой сектор, куда мы будем пихать свои данные

Для создание нового сектора нам потребуется программка Stud PE. Колмогор и malandrinus рекомендовали PE tools, но к сожалению у меня при задании RAM памяти дллка больше не читалась. Итак:

1. Открываем Stud PE

2. file -> Open PE file -> выбираем нашу дллку

3. Выбираем вкладку Sections

4. Правой кнопкой мыши - New section

5. Выбираем имя секции (лучше не понтоваться и выбрать 4-5 значное имя без чисел)

6. Выбираем виртуал и рам сайз. С размером лучше не шаманить - для начала хватит 0000001

7. В селектион дата ставим fill section with NULL bytes и жмем add

 

Теперь как работать с новой переменной.

В айда в конце файла находим нашу секцию. Правой кнопкой мыши - Data

В Хексе вводим любое число. Я ввел 04 02 01 3C

Перемещаемся в айда_виев и видем что-то типа такого:

.pmod:10086000 db 4

.pmod:10086001 db 2

.pmod:10086002 db 1

.pmod:10086003 db 3Ch ; <

 

 

Для того что-бы айда поняла что это одно число жмем 2 раза d. Ну а дальше для красоты жмем Edit -> Operant type ->Number -> Floating point.

Дальше ссылаемся на нашу переменную откуда нужно и все.

 

Freedom

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


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

Народ, я старался, Выкладывал тутор по правке травы а вы даже не удосужились его мельком просмотреть! Там описано как редактировать

Freedom

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


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

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

AMK-Team.ru

×
×
  • Создать...