Jednoduchá metoda
Je to jednoduché. Buď můžeme udělat dveře podle návodu a přidat tam sklo s entitou
func_physbox_multiplayer. Funguje jako func_pushable a func_breakable dohromady.
Dveře musí být vytvořené jako nějaký rám a to sklo prostě nastavíme jako breakable a
dáme ho do rámu dveří. To způsobí že když se dveře otevřou tak vlastně posunou ten
func_physbox_multiplayer tam kde jsou a když do skla střelíme tak se prostě rozletí.
Složitá metoda
Tato metoda je sice těžší, ale řeší jeden bug, který se třeba může stát.
Může se stát že když se člověk bude snažit bugnout tyto dveře tak se mu to podaří a sklo z nich "vypadne". Na toto existuje toto řešení. Sklo uděláme jako dveře (samozřejmě musíme správně nastavit lip aby zajelo správně) a potom si vytvoříme brush s texturou NO DRAW a uděláme si brush, který vložíme do toho rámu, ale celý rám musí být tím NO DRAWem vyplněný. Teď z toho
brushe uděláme entitu func_physbox_multiplayer, nastavíme podle potřeby, zvolíme Outputs
(POZOR ! SKLO MUSÍ BÝT POJMENOVANÉ) a dáme add.
Do prvního políčka zadáme OnBreak (po rozbití) vybereme si tam jméno vašeho skla a
do Via This Input dáme Kill.
Může se u tohoto stát taky nějaký bug ?
Ano, ale moc pravděpodobné to není, když se o to budete snažit tak nějakým způsobem vysunete z rámu ten physbox, ale pokud jste vyplnili celý rám a physbox je "zařezaný" v tom skle tak by se tostát nemělo.
A asi nejuvítanější možnost - Parent
Podle komentářů vidím že to prostě chcete takhle. Tak si uděláte func_breakable dáte do rámu dveří a dát mu parent třeba dveře (podle jména rámu). Je to hotové a tohle už se vám nemůže bugnout,
Proč tu teda jsou ty první dva když je tenhle nejlepší ? Protože s tím druhým můžeme udělat hodně věcí které s parentem uděláme hůř. |
func_breakable_surf a pojmenuju třeba "sklo".
Sklu nastavím parent "dveře" a hotovo.