HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)
Отправлено XaeroX 26-05-2015 в 10:57:
***FantoM***
Никак, в вгуи таких функций нет.
__________________
Отправлено Ku2zoff 26-05-2015 в 11:13:
***FantoM*** во вгуи1 точно такой функции нет. Во вгуи2, может быть есть, хотя ХЗ, наверное там вручную сделано, как я сейчас покажу. Короче, что можно сделать: рисуешь как на картинке, три панели, наложенные друг на друга, а в углы, где красные кружки, крепишь ТГАшки с альфаканалом и такой же прозрачностью, как у панелей. ТГАшки спереть можешь из КС.

Отправлено ***FantoM*** 26-05-2015 в 11:15:
XaeroX
а в Counter-Strike 1.6 вроде закругленный вгуи ?
Отправлено Ku2zoff 26-05-2015 в 11:16:
З.Ы. можно обойтись двумя панелями, ну ты понял кароч. Это я с дуру три почему-то нарисовал.
Отправлено ***FantoM*** 26-05-2015 в 11:18:
Ku2zoff
как бы понятно
Отправлено SteamPlay43 26-05-2015 в 12:41:
Ku2zoff Я про это и говорил, ведь даже у трупов есть хп)
Добавлено 26-05-2015 в 18:41:
Ku2zoff Помню как сорс с недостачей ресурсов запускал, там вместо округления были выкусаны квадраты)
Отправлено Ku2zoff 26-05-2015 в 15:25:
Цитата:
***FantoM*** писал:
а в Counter-Strike 1.6 вроде закругленный вгуи ?
Там ТГАшки скруглённые на углах. Может быть сделано как в моём способе, а может быть вгуи2 автоматом откусывает уголки у панелей.
Добавлено 26-05-2015 в 21:25:
***FantoM*** можешь не париться так. Нарисуй для каждого разрешения по ТГАшке со скруглёнными краями и крепи к полностью прозрачной панели. Координаты подгонишь для каждого разрешения.
Отправлено Vadiman 26-05-2015 в 17:41:
Ku2zoff проверку по твоему совету осуществил, но вот условие нормальное не могу описать, то не работает, то вылетает. Как грамотно описать полный игнор игроком урона?
Отправлено Ku2zoff 26-05-2015 в 17:45:
return туда поставь и всё. Только в начале функции, после условия
C++ Source Code:
if ( (pev->spawnflags & SF_TRIGGER_HURT_NO_CLIENTS) && pOther->IsPlayer() ) |
Вот так:
C++ Source Code:
3 | CBasePlayer *pPlayer = (CBasePlayer*)pOther; |
4 | if ((pPlayer->m_pActiveItem->m_iId == WEAPON_GASMASK) && (m_bitsDamageInflict & DMG_NERVEGAS)) |
Отправлено Vadiman 26-05-2015 в 20:55:
Ku2zoff
Спасибо, теперь все как надо) Только если я подойду к триггеру не имея маски вообще, то вылечу с ошибкой.
Отладчик указывает на строчку
C++ Source Code:
if ((pPlayer->m_pActiveItem->m_iId == WEAPON_MASK) && (m_bitsDamageInflict & DMG_NERVEGAS)) |
Добавлено 26-05-2015 в 23:55:
Проблему решил. Если кому-то понадобится, то вот код, который не приводит к вылету:
C++ Source Code:
1 | if ( pOther->IsPlayer() ) |
3 | CBasePlayer *pPlayer = (CBasePlayer*)pOther; |
4 | if( (pPlayer->m_pActiveItem ) &&( pPlayer->m_pActiveItem->m_iId == WEAPON_MASK ) &&(m_bitsDamageInflict & DMG_NERVEGAS)) |
Отправлено ***FantoM*** 28-05-2015 в 17:58:
я лазил по форуму и наткнулся на этот тутор Глушитель для M4A1
и у меня возник вопрос
как вместо анимации менять суб модель(Sub-model) ?
Отправлено Vadiman 28-05-2015 в 22:06:
У меня тоже вопрос есть. Т.к у меня маска реализована оружием, то в секции weapon_idle я сделал звуки дыхания для гг. Но, как только я беру маску в руки, гг дышит, а если сменить маску на какое-либо оружие, потом обратно, то звуки дыхания уже не слышны(
C++ Source Code:
1 | void CMaskGun::WeaponIdle( void ) |
3 | if ( m_flTimeWeaponIdle >= UTIL_WeaponTimeBase() ) |
5 | switch ( RANDOM_LONG(0,3) ) |
8 | EMIT_SOUND(ENT(pev), CHAN_VOICE, "player/pl_mbreathe1.wav", 1, ATTN_NORM); |
11 | EMIT_SOUND(ENT(pev), CHAN_VOICE, "player/pl_mbreathe2.wav", 1, ATTN_NORM); |
14 | EMIT_SOUND(ENT(pev), CHAN_VOICE, "player/pl_mbreathe3.wav", 1, ATTN_NORM); |
17 | m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 2, 4 ); |
Отправлено ***FantoM*** 29-05-2015 в 19:41:
вопрос № 2
как в VGUI растянуть tga по всей панели ?
Отправлено PLut 29-05-2015 в 20:22:
Vadiman
C++ Source Code:
m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 2, 4 ); |
Ну и засунь этот код куда-нибудь в конец PrimaryAttack() тоже.__________________
Base Defense on Steam, ModDB
Отправлено Vadiman 29-05-2015 в 21:05:
PLut Не помогло. Да и я убирал праймари-атаку от туда, на маске она не нужна