[Модификация] Клиент CS:S v34 [Изменение и компиляция исходников]

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Так и знал, что это ничем хорошим не кончится))
imgur.com/2WuevD3


Собственно там уже есть комментарий разработчика
C-подобный:
    //Adrian: We now create a separate entity that becomes this entity's ragdoll.
    //That way the server side version of this entity can go away.
    //Plus we can hook save/restore code to these ragdolls so they don't fall on restore anymore.
Другой вопрос, почему серверные рэгдоллы игроков не исчезают как в случае с заложниками, и после не удаляются при начале нового раунда.
--- Добавлено позже ---
UPD. Разобрался. :aikido:Понадобилось каких-то два года. :biggrin:
А в чем соль была то?
 

rom4s

Не понимает, что происходит  
Сообщения
214
Реакции
194

Reg1oxeN

Участник
Сообщения
399
Реакции
314
у залогов тоже так, если что.

еще баг заметил: нельзя выбрать скин при переходе в другую команду.
 

Reg1oxeN

Участник
Сообщения
399
Реакции
314
этот класс для HintText полностью рабочий
SourceEngine2007/hud_hintdisplay.cpp at master · LestaD/SourceEngine2007 · GitHub

единственное нужно только закомментить эту строку
SourceEngine2007/hud_hintdisplay.cpp at master · LestaD/SourceEngine2007 · GitHub
--- Добавлено позже ---
непонятный баг обнаружил:
всего на сервере два человека, оба в одной команде.
если оба одновременно сменят сторону на другую и тут же выберут скин, то у обоих происходит краш.
крашит именно после выбора скина. вообще без понятия куда копать.
 
Последнее редактирование:

rom4s

Не понимает, что происходит  
Сообщения
214
Реакции
194
Было бы интересно добавить различные плюшки для девелоперов: <...> цветной чат
о да, hex цвета на 34 это было бы нечто
Без этого никуда, конечно.
Кстати, в этой версии клиента работает цветной чат.
SZJu33H.jpg
SZJu33H.jpg

непонятный баг обнаружил:
всего на сервере два человека, оба в одной команде.
если оба одновременно сменят сторону на другую и тут же выберут скин, то у обоих происходит краш.
крашит именно после выбора скина. вообще без понятия куда копать.
Интересно.
P.S. Если есть возможность можете проблемы дублировать на Github?
Оффтоп
 

Reg1oxeN

Участник
Сообщения
399
Реакции
314
при старте\смене карты рандомные краши. возможно это только в моем варианте билда, но это не точно.
может мини дампы смогут прояснить ситуацию? я правда так и не понял как на них смотреть.
--- Добавлено позже ---
@rom4s, а так уведомляет? )

нашел в чем был баг. чуть не сгорел, пока искал.
всего лишь не хватало !pTargetPlayer->IsObserver()
SourceEngine2007/baseplayer_shared.cpp at 43a5c90a5ada1e69ca044595383be67f40b33c61 · LestaD/SourceEngine2007 · GitHub
SourceEngine2007/c_baseplayer.cpp at 43a5c90a5ada1e69ca044595383be67f40b33c61 · LestaD/SourceEngine2007 · GitHub
SourceEngine2007/c_baseplayer.cpp at 43a5c90a5ada1e69ca044595383be67f40b33c61 · LestaD/SourceEngine2007 · GitHub
 
Последнее редактирование:

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
@rom4s, а так уведомляет? )
К сожалению, нет.
нашел в чем был баг. чуть не сгорел, пока искал.
всего лишь не хватало !pTargetPlayer->IsObserver()
Это по рандомным крашам? Сколько играл на таком клиенте ни разу не попадалось у меня. хмм

P.S. Да там бы перенести, по возможности, с новых движков исправления багов.
 

Reg1oxeN

Участник
Сообщения
399
Реакции
314
Это по рандомным крашам?
это по крашам при смене сторон. в основном актуально для swapall в вармодах.

тестил через 2 клиента этим кодом. крашило мгновенно.
C-подобный:
for (new i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && GetClientTeam(i) > 1)
        {
            ChangeClientTeam(i, GetOtherTeam(GetClientTeam(i)));
            ClientCommand(i, "joinclass %i", 0);
        }
    }
PS. с ботами не получилось.



так же у некоторого количества кваров стоят неправильные флаги.
сравнивал у себя с оригиналом и фиксил через cvarlist.

еще отсутствует флаг FCVAR_SERVER_CAN_EXECUTE при HOOK_COMMAND
SourceEngine2007/hud_macros.h at master · LestaD/SourceEngine2007 · GitHub
что хукает: SourceEngine2007/weapon_selection.cpp at master · LestaD/SourceEngine2007 · GitHub
--- Добавлено позже ---
а, еще забыл про недостающие usermessage
source-sdk-2013/mp/src/public/haptics at master · ValveSoftware/source-sdk-2013 · GitHub
source-sdk-2013/haptic_msgs.cpp at master · ValveSoftware/source-sdk-2013 · GitHub
--- Добавлено позже ---
@rom4s, не замечал лагов интерполяции?
моделька стоячего игрока смешается на маленькое расстояние и возвращается в оригинал.
 
Последнее редактирование:

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
Добавил команду
IjWpg2E.png

C-подобный:
"m_rawinput" = "1" ( def. "0" )
 client archive
 - Use Raw Input for mouse input.
(Пока сильно зависит от FPS, хмм Fixed)

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

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
CPlayerResource::m_iHealth...
Если просто поменять кол-во бит, клиент не поддается:
PHP:
Host_Error: CL_ReadPreserveEnt: u.m_nNewEntity == MAX_EDICTS
// или
Host_Error: CL_CopyExistingEntity: missing client entity %d.
Клиент сверяет со своим server.dll?
А если создать для custom клиента отдельную таблицу? Оригинальный не пройдет проверку на совместимость таблиц?
 

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
скорее с сервером
Сервер отправляет таблицу,
PHP:
IMPLEMENT_SERVERCLASS_ST_NOBASE(CPlayerResource, DT_PlayerResource)
    SendPropArray3( SENDINFO_ARRAY3(m_iPing), SendPropInt( SENDINFO_ARRAY(m_iPing), 10, SPROP_UNSIGNED ) ),
    SendPropArray3( SENDINFO_ARRAY3(m_iScore), SendPropInt( SENDINFO_ARRAY(m_iScore), 12 ) ),
    SendPropArray3( SENDINFO_ARRAY3(m_iDeaths), SendPropInt( SENDINFO_ARRAY(m_iDeaths), 12 ) ),
    SendPropArray3( SENDINFO_ARRAY3(m_bConnected), SendPropInt( SENDINFO_ARRAY(m_bConnected), 1, SPROP_UNSIGNED ) ),
    SendPropArray3( SENDINFO_ARRAY3(m_iTeam), SendPropInt( SENDINFO_ARRAY(m_iTeam), 4 ) ),
    SendPropArray3( SENDINFO_ARRAY3(m_bAlive), SendPropInt( SENDINFO_ARRAY(m_bAlive), 1, SPROP_UNSIGNED ) ),
    SendPropArray3( SENDINFO_ARRAY3(m_iHealth), SendPropInt( SENDINFO_ARRAY(m_iHealth), 8, SPROP_UNSIGNED ) ), // <- из-за 8 бит (512) мы и страдаем. :(
END_SEND_TABLE()
но у самого клиента нет сведений о кол-ве бит.
PHP:
IMPLEMENT_CLIENTCLASS_DT_NOBASE(C_PlayerResource, DT_PlayerResource, CPlayerResource)
    RecvPropArray3( RECVINFO_ARRAY(m_iPing), RecvPropInt( RECVINFO(m_iPing[0]) ) ),
    RecvPropArray3( RECVINFO_ARRAY(m_iScore), RecvPropInt( RECVINFO(m_iScore[0]) ) ),
    RecvPropArray3( RECVINFO_ARRAY(m_iDeaths), RecvPropInt( RECVINFO(m_iDeaths[0]) ) ),
    RecvPropArray3( RECVINFO_ARRAY(m_bConnected), RecvPropInt( RECVINFO(m_bConnected[0]) ) ),
    RecvPropArray3( RECVINFO_ARRAY(m_iTeam), RecvPropInt( RECVINFO(m_iTeam[0]) ) ),
    RecvPropArray3( RECVINFO_ARRAY(m_bAlive), RecvPropInt( RECVINFO(m_bAlive[0]) ) ),
    RecvPropArray3( RECVINFO_ARRAY(m_iHealth), RecvPropInt( RECVINFO(m_iHealth[0]) ) ),
END_RECV_TABLE()
Хм.
 

Reg1oxeN

Участник
Сообщения
399
Реакции
314
из-за чего могут переставать отображаться элементы на панельке в определенных местах карты?
понять не могу. тот же например кастомный таб. отображается только все из PaintBackground().
--- Добавлено позже ---
проблема в рендеринге картинок в столбцах. вообще любой их рендер ломает все.
может туда нужен какой-то особенный формат нужен?
--- Добавлено позже ---
и правда, особенный хочет.
в общем сам пофиксил D:
 
Последнее редактирование:

bruno_args

Участник
Сообщения
35
Реакции
14
А сталкивался кто с багом хинта? Через определённое время худ у игроков размазывается (информация получается как каша на экране). Это на стороне клиента баг?Или же на стороне работы сорсмода?
 

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
Ну что, кто-нибудь куда-нибудь продвинулся в своих клиентах?)
 

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
есть что обсудить?
Мне просто интересно, какие, у кого, успехи.
Может кто пустил клиент в свой проект, приправив плюшками для игроков.
--
Может вам есть что сказать?)
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Мне просто интересно, какие, у кого, успехи.
Может кто пустил клиент в свой проект, приправив плюшками для игроков.
--
Может вам есть что сказать?)
А можно как-то идентифицировать клиента?
 
Сверху Снизу