HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- рандомный выбор модели игрока (https://hlfx.ru/forum/showthread.php?threadid=945)
Отправлено fire64 18-10-2007 в 12:53:
рандомный выбор модели игрока
как сделать что бы модель игрока в мультиплеере выбиралась рандомно ?
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено XaeroX 18-10-2007 в 14:05:
просканировать папку models, построить список моделей в ней, выбирать рандомом из списка и менять модель командой "model xxx" через CLIENT_COMMAND.
__________________
Отправлено fire64 18-10-2007 в 15:35:
ясно
тут я уже разобрался
теперь другой вопрос
как профиксить отсутствие звуков у оружия, при использовании не стандартной клиентской библиотеки ?
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 18-10-2007 в 17:54:
fire64 сделать оружие чисто серверным 
Отправлено Тренсфер 18-10-2007 в 18:08:
Да, сделать только серверным
Для этого надо избавится отклиентских пушек и убрать евенты с сервера. Например на http://sharaw.deagle.ru/articles.htm описаны некоторые пушки без эветов на клиент.
__________________
Хотелось бы, чтобы не только хотелось...
Отправлено fire64 19-10-2007 в 11:12:
Цитата:
Тренсфер писал:
Да, сделать только серверным
Для этого надо избавится отклиентских пушек и убрать евенты с сервера. Например на http://sharaw.deagle.ru/articles.htm описаны некоторые пушки без эветов на клиент.
а нельзя по подробней объяснить как отключить эвенты ?
желательно показать как надо редактировать код, что бы я им пользовался как образцом__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 19-10-2007 в 16:16:
fire64 читай мой тутор про XashWeaponSystem часть 2 
искать - в разделе туторы на этом форуме
Отправлено fire64 19-10-2007 в 18:48:
Цитата:
Дядя Миша писал:
fire64 читай мой тутор про XashWeaponSystem часть 2 
искать - в разделе туторы на этом форуме
прочитал, весьма интересно,
но у меня вопрос
я пользуюсь батниками а не шестой студией
как мне быть ?__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Тренсфер 20-10-2007 в 05:57:
Скачать студию
7м.
Могу сказать где. По этому вопросу мне в приват или в асю.
Хотя и блокнотом обойтись можно, но это мега изврат.
XashWeaponSystem отключает клиентские пушки, делает новую систему предсказания, сохраняет боди, скины и много чего ещё. Там же описано обращение с эвентами. Но вот полностью от них отказывать ся прийдётся самому, т.к для каждой пушки это индивидуалаьно, во например кусок кода лома (точнее ножа но принцип один и тот же) без эвентов
C++ Source Code:
1 | int CKnife::Swing( int fFirst ) |
9 | UTIL_MakeVectors (m_pPlayer->pev->v_angle); |
10 | Vector vecSrc = m_pPlayer->GetGunPosition( ); |
11 | Vector vecEnd = vecSrc + gpGlobals->v_forward * 32; |
13 | UTIL_TraceLine( vecSrc, vecEnd, dont_ignore_monsters, ENT( m_pPlayer->pev ), &tr ); |
16 | if ( tr.flFraction >= 1.0 ) |
18 | UTIL_TraceHull( vecSrc, vecEnd, dont_ignore_monsters, head_hull, ENT( m_pPlayer->pev ), &tr ); |
20 | if ( tr.flFraction < 1.0 ) |
22 | CBaseEntity *pHit = CBaseEntity::Instance( tr.pHit ); |
23 | if ( !pHit || pHit->IsBSPModel() ) |
24 | FindHullIntersection2( vecSrc, tr, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX, m_pPlayer->edict() ); |
25 | vecEnd = tr.vecEndPos; |
30 | if ( tr.flFraction >= 1.0 ) |
36 | switch((m_iSwing++) % 3 ) |
39 | SendWeaponAnim( KNIFE_ATTACK1MISS ); break; |
41 | SendWeaponAnim( KNIFE_ATTACK2MISS ); break; |
43 | SendWeaponAnim( KNIFE_ATTACK3MISS ); break; |
45 | m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.5; |
48 | switch( RANDOM_LONG(0,2) ) |
51 | EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/knife1.wav", 1, ATTN_NORM); |
54 | EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/knife2.wav", 1, ATTN_NORM); |
57 | EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/knife3.wav", 1, ATTN_NORM); |
61 | m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); |
71 | CBaseEntity *pEntity = CBaseEntity::Instance(tr.pHit); |
73 | switch( ((m_iSwing++) % 2) + 1 ) |
76 | SendWeaponAnim( KNIFE_ATTACK1HIT ); break; |
78 | SendWeaponAnim( KNIFE_ATTACK2HIT ); break; |
80 | SendWeaponAnim( KNIFE_ATTACK3HIT ); break; |
84 | m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); |
88 | if ( (m_flNextPrimaryAttack + 1 < gpGlobals->time) || g_pGameRules->IsMultiplayer()) |
90 | pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbar, gpGlobals->v_forward, &tr, DMG_CLUB ); |
95 | pEntity->TraceAttack(m_pPlayer->pev, gSkillData.plrDmgCrowbar / 2, gpGlobals->v_forward, &tr, DMG_CLUB ); |
97 | ApplyMultiDamage( m_pPlayer->pev, m_pPlayer->pev ); |
98 | m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.25; |
101 | int fHitWorld = TRUE; |
105 | if ( pEntity->Classify() != CLASS_NONE && pEntity->Classify() != CLASS_MACHINE ) |
108 | switch( RANDOM_LONG(0,1) ) |
111 | EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_flesh1.wav", 1, ATTN_NORM); break; |
113 | EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_flesh2.wav", 1, ATTN_NORM); break; |
115 | m_pPlayer->m_iWeaponVolume = KNIFE_BODYHIT_VOLUME; |
116 | if ( !pEntity->IsAlive() ) |
128 | float fvolbar = TEXTURETYPE_PlaySound(&tr, vecSrc, vecSrc + (vecEnd-vecSrc)*2, BULLET_PLAYER_CROWBAR); |
130 | if ( g_pGameRules->IsMultiplayer() ) |
136 | switch( RANDOM_LONG(0,1) ) |
139 | EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_wall1.wav", fvolbar, ATTN_NORM, 0, 98 + RANDOM_LONG(0,3)); |
142 | EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/knife_hit_wall2.wav", fvolbar, ATTN_NORM, 0, 98 + RANDOM_LONG(0,3)); |
149 | pev->nextthink = UTIL_WeaponTimeBase() + 0.2; |
150 | m_pPlayer->m_iWeaponVolume = flVol * KNIFE_WALLHIT_VOLUME; |
Как видно все события (анимация, звук текстуры...) происходят на сервере, и этот нож не создаёт глюк с гибсованием трупов.__________________
Хотелось бы, чтобы не только хотелось...
Отправлено fire64 20-10-2007 в 06:50:
Тренсфер ты не понял, у меня есть шестая студия, просто я компилю через батники а не через студию
студией я пользуюсь для редактирования кода
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Тренсфер 20-10-2007 в 06:54:
Ну так компиль с помощью студии или в ней компилы не работают? У тебя случайно не Microsoft Visual Studio .NET 200х? Им не получится.
__________________
Хотелось бы, чтобы не только хотелось...
Отправлено Дядя Миша 20-10-2007 в 07:01:
fire64 ну и чего? я тоже студию на дух не переношу, компилю батниками, а код пишу в Asm_Ed.
Студию юзаю, только когда надо заняться отладкой (и то BC есть).
Отправлено fire64 20-10-2007 в 07:06:
теперь следующий вопрос
как профиксить ошибку
Host_Error: CL_ParseServerMessage: Illegible server message - svc_bad
такая ошибка происходит когда у некоторых пользователей зашедших на мой сервер
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено XaeroX 20-10-2007 в 07:53:
Цитата:
fire64 писал:
как профиксить ошибку
Host_Error: CL_ParseServerMessage: Illegible server message - svc_bad
Ууу, да причин может быть тысяча. Например, пустое имя модели. Да много чего.
Еще проверь, соответствуют ли версии хл у них и у тебя.__________________
Отправлено fire64 20-10-2007 в 10:57:
как профиксить застревание трупов игров, внутри стен ?
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено XaeroX 20-10-2007 в 16:27:
fire64 прикрутить физику хавок 
А если серьезно, то вряд ли это нормально пофиксишь, такая уж в хл1 физика.
__________________
Отправлено fire64 23-10-2007 в 11:51:
нужна помощь
мне нужно сделать что бы бекграунд загружался рандомно из папки hl2\materials\Console
картинка бекграунда задается в следующем коде
C++ Source Code:
1 | void CBasePanel::ApplySchemeSettings(IScheme *pScheme) |
3 | BaseClass::ApplySchemeSettings(pScheme); |
4 | // turn on hardware filtering if we're scaling the images |
6 | surface()->GetScreenSize(wide, tall); |
7 | bool hardwareFilter = false; //(wide != 800); |
9 | bimage_t &bimage = m_ImageID[0][0]; |
10 | bimage.imageID = surface()->CreateNewTextureID(); |
13 | sprintf(filename, "console/console_background" ); |
14 | surface()->DrawSetTextureFile(bimage.imageID, filename, hardwareFilter, false); |
15 | surface()->DrawGetTextureSize(bimage.imageID, bimage.width, bimage.height); |
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Тренсфер 23-10-2007 в 12:04:
Ты имеешь виду кодинг под хл2 ?
__________________
Хотелось бы, чтобы не только хотелось...
Отправлено fire64 23-10-2007 в 13:18:
Цитата:
Тренсфер писал:
Ты имеешь виду кодинг под хл2 ?
не под hl2, но тоже под Source Engine
Добавлено 23-10-2007 в 17:18:
в движке стоит один статичный бекграунд, а надо что бы он выбирался рандомно
список беграундов должен браться из hl2\scripts\ChapterBackgrounds.txt
сами бекграунды должны находится в hl2\materials\Console__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено fire64 24-10-2007 в 16:18:
все уже не надо
мне один знакомый кодер помог
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей