делал на спирите во норм было делаю на хл такая вот штука получается__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.
Отправлено Ku2zoff 09-04-2016 в 07:10:
Про клиентские оружия слышал? В спирите их нет, поэтому у тебя там норм было. А в халфе нужно некоторые функции оружий дублировать на клиенте в файле hl_weapons.cpp, а на некоторые ставить заглушки в файле hl_baseentity.cpp. Вот у меня есть такой старый код:
weapons.cpp
C++ Source Code:
1 | float CBasePlayerWeapon::GetSpread(void) |
4 | float m_flPlayerSpeed = m_pPlayer->pev->velocity.Length2D(); |
6 | if (FBitSet(m_pPlayer->pev->flags, FL_DUCKING)) |
7 | m_flValue = m_flSpread / 2; |
10 | // if (m_flPlayerSpeed > PLAYER_SPEED_RUN) |
11 | // m_flValue = m_flPlayerSpeed / (m_flSpread * (m_flDivider * m_flPlayerSpeed)); |
13 | m_flValue = (m_flPlayerSpeed / m_flDivider) * m_flSpread; |
15 | if (m_flValue < m_flSpread) |
16 | m_flValue = m_flSpread; |
19 | // ALERT(at_console, "Spread: %f\n", m_flValue); |
21 | if (!FBitSet(m_pPlayer->pev->flags, FL_ONGROUND)) |
hl_weapons.cpp
C++ Source Code:
1 | float CBasePlayerWeapon::GetSpread(void) |
4 | float m_flPlayerSpeed = m_pPlayer->pev->velocity.Length2D(); |
6 | m_flValue = (m_flPlayerSpeed / m_flDivider) * m_flSpread; |
8 | if (m_flValue < m_flSpread) |
9 | m_flValue = m_flSpread; |
11 | if (FBitSet(m_pPlayer->pev->flags, FL_DUCKING)) |
14 | if (!FBitSet(m_pPlayer->pev->flags, FL_ONGROUND)) |
В этом примере функции одинаковые. Зачем дублировать серверную на клиенте? Чтобы у локального игрока (когда он не хост, а клиент) разброс (а соответственно размер прицела) менялся плавно, а не рывками при любом пинге.
Добавлено 09-04-2016 в 13:10:
Luciferchik либо ставь заглушку на UpdateClientSideSpread в hl_baseentity.cpp, либо в коде оружия оборачивай её вызов в #ifndef CLIENT_DLL. Из этой функции отправляется мессага на клиент, поэтому в клиентском коде она не нужна. А вообще тутор - жэсть. Особенно для мультиплеера.
Отправлено Luciferchik 09-04-2016 в 07:46:
Во,спасибо,так и знал что вина всему клиенсткие пушки тож думал применить #ifndef CLIENT_DLL,но чет не заюзал вот и решил спросить совета, а можешь дать ссыль на тутор где можно клиет.пушки вырезать, а то з Xash weapon system чет не получается
__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.
Отправлено Ku2zoff 09-04-2016 в 07:59:
Цитата:
Luciferchik писал:
а то з Xash weapon system чет не получается
Это единственный тутор. Там не сложно. Сравнивай со спиритом по ходу работы с тутором, чтоб получилось нормально.
Отправлено Luciferchik 09-04-2016 в 08:05:
Цитата:
Ku2zoff писал:
Это единственный тутор. Там не сложно. Сравнивай со спиритом по ходу работы с тутором, чтоб получилось нормально.
Ладный будем чаво то мудрить может и выйдет__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.