Хочу чтобы entity видела через себя

Сообщения
5
Реакции
0
Проблема в том, что я хочу сделать так, чтобы катушка тесла могла видеть через саму себя или через другие энтити обьекты (Плагин делаю сам, поэтому он ещё не готов)

На сколько я понял проблема вот в этом стоке

stock bool: __@IsWall( iPlayer, iEnt, Float: iEntOrigin[ 3 ], Float: iPlayerOrigin[ 3 ], iMonsters = 0 ) {
new iTraceLine
engfunc( EngFunc_TraceLine, iEntOrigin, iPlayerOrigin, iMonsters, iEnt, iTraceLine )

if( get_tr2( iTraceLine, TR_pHit ) == iPlayer ) return true

return false
}

Он как бы работает нормально, но если перед катушкой поставить раздатчик, то её способность пропадает, она не видет никого, так вот, я хочу чтобы она видела сквозь предметы (Но не сквозь стены)

Или как можно сделать чтобы допустим один энтити мог видеть через другой энтити обьект, допустим чтобы Sentry guns мог стрелять через раздатчик
 

Вложения

Сообщения
855
Реакции
532
Помог
13 раз(а)
PHP:
-if( __@IsWall( iEnt1, iEnt, iEntOrigin, iEnt1Origin )
+if( __@IsWall( iEnt1, iEnt, iEntOrigin, iEnt1Origin, IGNORE_MONSTERS )
правда он будет игнорить объекты карт - заборы и т.п.
 
Сообщения
5
Реакции
0
BalbuR, сделал вот так, теперь вообще не видит ничего


stock bool: __@IsWall( iPlayer, iEnt, Float: iEntOrigin[ 3 ], Float: iPlayerOrigin[ 3 ] ) {
new iTraceLine
engfunc( EngFunc_TraceLine, iEntOrigin, iPlayerOrigin, IGNORE_MONSTERS, iEnt, iTraceLine )

if( get_tr2( iTraceLine, TR_pHit ) == iPlayer ) return true

return false
}1650881864466.png
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
Сток не надо было редактировать
Возможно он где-то ещё использовался
 
Сообщения
5
Реакции
0
BalbuR, @BalbuR,Этот сток стоит в тесле и в раздатчике, в оба плагина сделал вот так

-if( __@IsWall( iEnt1, iEnt, iEntOrigin, iEnt1Origin )
+if( __@IsWall( iEnt1, iEnt, iEntOrigin, iEnt1Origin, IGNORE_MONSTERS )
тоже самое, перестал видеть раздатчик вообще (Видит только те энтити где нет IGNORE_MONSTERS
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
PHP:
-if( __@IsWall( iEnt1, iEnt, iEntOrigin, iEnt1Origin )
+if( __@IsWall( iEnt1, iEnt, iEntOrigin, iEnt1Origin, IGNORE_MONSTERS )
правда он будет игнорить объекты карт - заборы и т.п.
добавь это

и к такому виду приведи сток

PHP:
stock bool: __@IsWall( iPlayer, iEnt, Float: iEntOrigin[ 3 ], Float: iPlayerOrigin[ 3 ], iMonsters = 0 ) {
    new iTraceLine
    engfunc( EngFunc_TraceLine, iEntOrigin, iPlayerOrigin, iMonsters, iEnt, iTraceLine )
    
    // Если до объекта нет других помех ввиде worldspawn'а при IGNORE_MONSTERS
    if (iMonsters == IGNORE_MONSTERS)
    {
        if( get_tr2( iTraceLine, TR_flFraction ) >= 1.0 ) return true;
    }
    else
    {
        if( get_tr2( iTraceLine, TR_pHit ) == iPlayer ) return true;
    }
    return false
}
 
Сообщения
5
Реакции
0
BalbuR, 1650885793231.png
Всё четко работает, только теперь он видет сквозь стены (Не только через func_illusionary итд...) А даже через func_wall
 
Сообщения
855
Реакции
532
Помог
13 раз(а)
там цикл придется крутить в стоке, на трейслайн от объекта к объекту

вообще по идее можно группинфо заюзать для трейслайна, правда я не знаю как там правильно им пользоваться
Garey памаги
 
Сообщения
5
Реакции
0
@BalbuR,Я видел у CSSB таеслы, голиаф пушек итд... Так-вот, голиаф пушка может убивать игрока даже если тот спрятался за раздатчиком (Тобишь fun_breakable) Я вот думаю, может надо проверку на func_breakable сделать чтобы тесла видела сквозь другие fucn_breakable
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу