HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- cl_lw (https://hlfx.ru/forum/showthread.php?threadid=4064)
Отправлено ILZM 28-08-2013 в 15:51:
cl_lw
Привет всем!
Допустим есть такой код:
C++ Source Code:
2 | CBaseEntity *pSatchel = Create( "monster_satchel", vecSrc, Vector( 0, 0, 0), m_pPlayer->edict() ); |
4 | pSatchel->pev->velocity = vecThrow; |
5 | pSatchel->pev->avelocity.y = 400; |
7 | m_pPlayer->pev->viewmodel = MAKE_STRING("models/v_satchel_radio.mdl"); |
8 | m_pPlayer->pev->weaponmodel = MAKE_STRING("models/p_satchel_radio.mdl"); |
10 | LoadVModel ( "models/v_satchel_radio.mdl", m_pPlayer ); |
13 | SendWeaponAnim( SATCHEL_RADIO_DRAW ); |
Почему SendWeaponAnim не стоит в условии? Ведь отправлять анимацию лучше, когда cl_lw 0 стоит. Или же в SendWeaponAnim дальше идет условие? (Если что, это не понятно и вопрос мб глупый)) И ищо можно на клиенте сразу ставить P модель?
Отправлено Дядя Миша 28-08-2013 в 16:07:
Цитата:
ILZM писал:
Почему SendWeaponAnim не стоит в условии?
C++ Source Code:
1 | void CBasePlayerWeapon::SendWeaponAnim( int iAnim, int skiplocal, int body ) |
8 | m_pPlayer->pev->weaponanim = iAnim; |
10 | #if defined( CLIENT_WEAPONS ) |
11 | if ( skiplocal && ENGINE_CANSKIP( m_pPlayer->edict() ) ) |
15 | MESSAGE_BEGIN( MSG_ONE, SVC_WEAPONANIM, NULL, m_pPlayer->pev ); |
16 | WRITE_BYTE( iAnim ); // sequence number |
17 | WRITE_BYTE( pev->body ); // weaponmodel bodygroup. |
Видишь функцию с дурацким названием ENGINE_CANSKIP?
А теперь открывай сорцы ксаша и смотри что она делает.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ILZM 28-08-2013 в 16:49:
Цитата:
Там корочи такая тема. Функция g_engfuncs.pfnCanSkipPlayer проверяет, является ли текущий игрок локальным и включена ли у него опция cl_lw.
Аааа) А почему, если вот так сделать, то анимация третьего лица играется(квар thirdperson), а деплой у детонатора не играет при cl_lw 0
C++ Source Code:
2 | CBaseEntity *pSatchel = Create( "monster_satchel", vecSrc, Vector( 0, 0, 0), m_pPlayer->edict() ); |
4 | pSatchel->pev->velocity = vecThrow; |
5 | pSatchel->pev->avelocity.y = 400; |
7 | m_pPlayer->pev->viewmodel = MAKE_STRING("models/v_satchel_radio.mdl"); |
8 | m_pPlayer->pev->weaponmodel = MAKE_STRING("models/p_satchel_radio.mdl"); |
10 | SendWeaponAnim( SATCHEL_RADIO_DRAW ); |
12 | // player "shoot" animation |
13 | m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); |
15 | LoadVModel ( "models/v_satchel_radio.mdl", m_pPlayer ); |
И ищо почему этот код без условий
C++ Source Code:
1 | void CSatchelCharge :: Spawn( void ) |
7 | pev->movetype = MOVETYPE_BOUNCE; |
8 | pev->solid = SOLID_BBOX; |
10 | SET_MODEL(ENT(pev), "models/w_satchel.mdl"); |
11 | //UTIL_SetSize(pev, Vector( -16, -16, -4), Vector(16, 16, 32)); // Old box -- size of headcrab monsters/players get blocked by this |
12 | UTIL_SetSize(pev, Vector( -4, -4, -4), Vector(4, 4, 4)); // Uses point-sized, and can be stepped over |
13 | UTIL_SetOrigin( pev, pev->origin ); |
15 | SetTouch( &CSatchelCharge :: SatchelSlide ); |
16 | SetUse( &CSatchelCharge :: DetonateUse ); |
17 | SetThink( &CSatchelCharge :: SatchelThink ); |
18 | pev->nextthink = gpGlobals->time + 0.1; |
23 | pev->dmg = gSkillData.plrDmgSatchel; |
24 | // ResetSequenceInfo( ); |
Т. е. и на клиенте, и на сервере.
Добавлено 28-08-2013 в 20:49:
C++ Source Code:
void CGrenade::BounceSound( void ) { } |
void CGrenade::Explode( Vector, Vector ) { } |
void CGrenade::Explode( TraceResult *, int ) { } |
void CGrenade::Killed( entvars_t *, int ) { } |
void CGrenade::Spawn( void ) { } |
Может из-за этой заглушки? Ведь CSatchelCharge : public CGrenade. И если это не срабатывает на клиенте, то и C++ Source Code:
void CSatchelCharge::SatchelSlide( CBaseEntity *pOther ) |
тоже, не так ли?))
Отправлено Дядя Миша 28-08-2013 в 17:05:
ILZM не юзай тэг CODE. Для код есть тэг cpp.
Я утомился переправлять за тобой. Ну ты что не видишь, как его разносит?
Добавлено 28-08-2013 в 21:05:
Клиентские пушки в голдсорсовской реализации - бред сумасшедшего.
Пушки эти были с самого начала написаны как чисто-серверные.
А потом их невероятным чудом впихнули на клиент, написав фейковые методы-заглушки и прочие глупости. И всё ради одной-единственной цели - воспроизводить эффекты локально. Т.е. проигрывание анимаций, декали от выстрелов итд. Чтобы нивелировать лаг.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'