HLFX.Ru Forum Страницы (9): « Первая ... « 3 4 5 6 [7] 8 9 »
Показать все 126 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- Используете ли вы ксаш-мод в 2019-м году (https://hlfx.ru/forum/showthread.php?threadid=5194)


Отправлено Crystallize 30-04-2019 в 04:56:

Там пушабля, на неё парентом танк, на танк парентом триггер-пуш вниз до самой пушабли, и танку ещё файртаргет какой-то. Всё просто.

Я так понимаю, из-за того что серверный кадр тоже имеет ненулевую длительность, любое вращение происходит не по кругу а по многоугольнику со множеством сторон. Может быть дело в том что середина и конец каждой из сторон находятся на чуть разном расстоянии от оси вращения. Каждый раз угол поворота вычисляется заново, для новой позиции, может быть накапливается ошибка? Хотя с другой стороны, если вращаемый оъект начинает и заканчивает движение на вершинах многоугольника, то ничего накапливаться не должно.

Я ещё когда кодом это делал, пытался всякие компенсации высчитывать, безрезультатно. Возможно потому что там было вдобавок клиент-серверное отставание.


Отправлено Дядя Миша 30-04-2019 в 08:12:

Да вроде нормально выглядит

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 10-05-2019 в 12:56:

Где в коде вообще вычисленное направление танка копируется в вектор gpGlobals->v_forward?


Отправлено Дядя Миша 10-05-2019 в 13:05:

Crystallize нигде.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 10-05-2019 в 13:53:

Дядя Миша а как, оно после этого ещё проходит через всю твою систему парентов? Но в конце-концов где-то же оно назначается, даже если не на вектор v_forward а совершенно иначе?


Отправлено Дядя Миша 10-05-2019 в 14:00:

Crystallize ты вопросы по существу задавай. Почему что-то там должно вообще назначаться в gpGlobals->v_forward?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 30-05-2019 в 01:33:

Зачем овербрайты убрали? Во времена Ксаша 3887 смотрелось симпатично, потому что яркие хл-ские баунсы с ними гармонируют.


Отправлено Дядя Миша 30-05-2019 в 05:31:

Crystallize а ты в шейдерах поумножай освещение на два - вот тебе и будут овербрайты и канпилировать ничо не надо

Открываешь допустим StudioSolid_fp.glsl, а там

C++ Source Code:
diffuse.rgb *= var_VertexLight; // apply lighting

ну и умножаешь вот так
C++ Source Code:
diffuse.rgb *= var_VertexLight * 2.0; // apply lighting

А для брашей открываешь BmodelSoldi_fp.glsl находишь вот эту строчку
C++ Source Code:
diffuse.rgb *= light;

и тожы на два её умножаешь. Или сделай константу в const.h и оттуда накручивай.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 30-05-2019 в 10:48:

А у тебя именно так овербрайты и были сделаны, чтоли? Удвоением контрастности?


Отправлено Дядя Миша 30-05-2019 в 14:16:

Crystallize а как надо делать овербрайты по твоему? Ну сделай иначе.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 30-05-2019 в 16:13:

Дядя Миша ну компилятор просто считает в увеличенном диапазоне, а мы рисуем полученную лайтмапу.

Добавлено 30-05-2019 в 23:13:

в диапазоне 0-255 всм


Отправлено Crystallize 27-10-2019 в 09:20:

Там на клиенте ещё попадаются места где pitch инвертирован.
А ещё я поболтал с аффтаром Zion WarCry, он думал что у тебя клиент и сервер теперь в одной дллке. Что-то он такое год назад там увидел, ну я его разубедил.

Добавлено 27-10-2019 в 16:20:

Кстати перенесите мой голос во второй пункт пожалуйста.


Отправлено Дядя Миша 27-10-2019 в 15:04:

Цитата:
Crystallize писал:
перенесите мой голос

Люди, живущие в России видимо с пелёнок уверены, что власть имущие всегда имеют право тасовать их голоса как вздумается. Увы, нет. Единственный способ это сделать - вручную поправить базу.

Цитата:
Crystallize писал:
Там на клиенте ещё попадаются места где pitch инвертирован.

для игрока да.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 17-01-2020 в 10:16:

В Half-Payne есть реализация субтитров. Но чтобы их рисовать поверх картинки там какой-то хак. Ксаш может сломаться от такого?

C++ Source Code:
1
#include "wrect.h"
2
#include "cl_dll.h"
3
#include <Windows.h>
4
#include &lt<img src="images/smilies/pp2.gif" border="0" alt="">sapi.h>
5
#include "FontAwesome.h"
6
#include "gamemode_gui.h"
7
#include "subtitles.h"
8
#include "model_indexes.h"
9
#include "aim_entity.h"
10
#include "player_info_window.h"
11
 
12
#include "hl_imgui.h"
13
 
14
extern cl_enginefunc_t gEngfuncs;
15
extern int isPaused;
16
extern bool inMainMenu;
17
SDL_Window *window = NULL;
18
 
19
// To draw imgui on top of Half-Life, we take a detour from certain engine's function into HL_ImGUI_Draw function
20
void HL_ImGUI_Init() {
21
 
22
  // One of the final steps before drawing a frame is calling SDL_GL_SwapWindow function
23
  // It must be prevented, so imgui could be drawn before calling SDL_GL_SwapWindow
24
 
25
  // This will hold the constant address of x86 CALL command, which looks like this
26
  // E8 FF FF FF FF
27
  // Last 4 bytes specify an offset from this address + 5 bytes of command itself
28
  unsigned int origin = NULL;
29
 
30
  // We're scanning 1 MB at the beginning of hw.dll for a certain sequence of bytes
31
  // Based on location of that sequnce, the location of CALL command is calculated
32
  MODULEINFO module_info;
33
  if ( GetModuleInformation( GetCurrentProcess(), GetModuleHandle( "hw.dll" ), &module_info, sizeof( module_info ) ) ) {
34
    origin = ( unsigned int ) module_info.lpBaseOfDll;
35
 
36
    const int MEGABYTE = 1024 * 1024;
37
    char *slice = new char[MEGABYTE];
38
    ReadProcessMemory( GetCurrentProcess(), ( const void * ) origin, slice, MEGABYTE, NULL );
39
 
40
    unsigned char magic[] = { 0x8B, 0x4D, 0x08, 0x83, 0xC4, 0x08, 0x89, 0x01, 0x5D, 0xC3, 0x90, 0x90, 0x90, 0x90, 0x90, 0xA1 };
41
 
42
    for ( unsigned int i = 0 ; i < MEGABYTE - 16; i++ ) {
43
      bool sequenceIsMatching = memcmp( slice + i, magic, 16 ) == 0;
44
      if ( sequenceIsMatching ) {
45
        origin += i + 27;
46
        break;
47
      }
48
    }
49
 
50
    delete[] slice;
51
 
52
    char opCode[1];
53
    ReadProcessMemory( GetCurrentProcess(), ( const void * ) origin, opCode, 1, NULL );
54
    if ( opCode[0] != 0xFFFFFFE8 ) {
55
      gEngfuncs.Con_DPrintf( "Failed to embed ImGUI: expected CALL OP CODE, but it wasn't there\n" );
56
      return;
57
    }
58
  } else {
59
    gEngfuncs.Con_DPrintf( "Failed to embed ImGUI: failed to get hw.dll memory base address\n" );
60
    return;
61
  }
62
 
63
  window = SDL_GetWindowFromID( 1 );
64
  ImGui_ImplSdl_Init( window );
65
 
66
  // To make a detour, an offset to dedicated function must be calculated and then correctly replaced
67
  unsigned int detourFunctionAddress = ( unsigned int ) &HL_ImGUI_Draw;
68
  unsigned int offset = ( detourFunctionAddress ) - origin - 5;
69
 
70
  // The resulting offset must be little endian, so
71
  // 0x0A852BA1 => A1 2B 85 0A
72
  char offsetBytes[4];
73
  for ( int i = 0; i < 4; i++ ) {
74
    offsetBytes[i] = ( offset >> ( i * 8 ) );
75
  }
76
 
77
  // This is WinAPI call, blatantly overwriting the memory with raw pointer would crash the program
78
  // Notice the 1 byte offset from the origin
79
  WriteProcessMemory( GetCurrentProcess(), ( void * ) ( origin + 1 ), offsetBytes, 4, NULL );
80
 
81
  SDL_AddEventWatch( HL_ImGUI_ProcessEvent, NULL );
82
 
83
  ImGuiStyle *style = &ImGui::GetStyle();
84
  style->AntiAliasedShapes = false;
85
  style->WindowRounding = 0.0f;
86
  style->ScrollbarRounding = 0.0f;


Отправлено Ku2zoff 17-01-2020 в 10:44:

Crystallize оно в ксаше вообще не заработает. Там дергается что-то из hw.dll по определенному адресу. В ксаше мало того, что дллка по-другому называется, так и адрес тем более другой. Разве что ДМ завел в движке хак для этого.


Временная зона GMT. Текущее время 13:52. Страницы (9): « Первая ... « 3 4 5 6 [7] 8 9 »
Показать все 126 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024