head 1.1; access; symbols; locks bilbo:1.1; strict; comment @# @; 1.1 date 2003.09.12.19.38.16; author bilbo; state Exp; branches; next ; desc @@ 1.1 log @Initial revision @ text @ Typy objektů

Typy objektů

Každý objekt ve hře má nějaký typ (při editaci mapy v editoru je to u objektu položka classname).
Při nahrávání objektu se hra podívá do adresáře data/classes pro soubor se stejným jménem jako typ objektu, s příponou .def (pokud je již v paměti, tak se znovu nenahrává, ale použije se instance již v paměti). V něm jsou pak specifikovány vlastnosti objektu, které každý nově vytvořený objekt tohoto typu dostane, například model, funkce objektů, health, bounding box a také vlastnosti specifické pro různý typ objektu (např. u bomb je to síla výbuchu, rozsah exploze, doba od hození do výbuchu, a jiné ...)
Formát tohoto souboru je jednoduchý, obsahuje záznamu typu klíč=hodnota, na každé řádce jeden takový záznam, prázdné řádky a řádky začínající dvěmi lomítky (// - komentáře) jsou ignorovány.

Vlastnosti jsou tyto:
ai_createfunkce volaná při vzniku objektu (konstruktor)
ai_damagefunkce volaná při poškození objektu
ai_destroyfunkce volaná při zániku objektu (destruktor)
ai_timerfunkce volaná každý tik hry
ai_touchfunkce volaná při dotyku objektu
bboxbounding box objektu - ve tvaru x1,y1,z1 x2,y2,z2.
Určuje prostor, který objekt zabírá, relativně k jeho středu
bounceOdrazivost objektu, 0 je dokonale nepružný (při nárazu se zastaví), 1 je dokonale pružný (dokonale se odrazí).
Lze nastavit na cokoliv mezi 0 a 1, nebo dokonce i více než 1, kdy objekt po každém nárazu bude získávat rychlost
healthzdraví objektu
model_rot_xrotace modelu kolem osy X ve stupních
model_rot_yrotace modelu kolem osy Y ve stupních
model_rot_zrotace modelu kolem osy Z ve stupních
physicalTyp objektu.
0 je nehmotný (není omezován hmotnými objekty, prochází jimi),
1 je hmotný (je omezován hmotnými objekty, např. hráč, bomba ...),
2 je nehmotný, ale je omezován hmotnými objekty (odráží se od zdí a leží na zemi, ale nepřekáží ostatním hmotným objektům. Toto jsou např. drobné objekty typu šrapnely, atd. u kterých není žádoucí, aby omezovaly pohyb hráče)
a dále další vlastnosti, které využívají funkce objektu a které jsou popsány v dokumentu Funkce a vlastnosti objektů

Ve hře jsou tyto typy objektů:
bomb Klasická bomba
bomb_s Sticky bomb - bomba, která se neodráží od stěn
explosion grafické znázornění výbuchu - animovaná ohnivá koule. Tento objekt sám o sobě poškození nezpůsobuje.
func_wall Nezničitelná a neposunovatelná zeď
func_wall_breakable Zeď, kterou lze zničit, ale nelze posunovat. Při svém zničení vypustí několik šrapnelů (typu wall_gib), které se rozletí náhodným směrem a rychlostí do okolí
func_wall_fallable Zeď, kterou lze zničit a která padá (pokud je pod ní volné místo) Při svém zničení vypustí několik šrapnelů (typu wall_gib), které se rozletí náhodným směrem a rychlostí do okolí
gib "Kus střev", který vznikne, pokud je hráč zabit a dostane se tak blízko výbuchu, že jeho zdraví klesne dostatečně do záporu. V tom případě se hráč rozprskne na několik objektů typu gib a gib2, které se rozletí po okolí. Několik sekund po dopadu zmizí.
gib2 Jako gib, ale s jiným vzhledem.
info_player_start Start hráče, při respawnování a při vstupu hráče do hry se hráč objeví na jedné z nádodně vybráných pozic určené těmito objekty
mapobject Nezničitelný objekt, s daným 3D modelem.
player Tato třída je hráč přítomný ve hře
player_corpse Mrtvola hráče, vznikne pokud je hráč zabit
player_dead Mrtvý hráč - na toto se hráč změní po smrti, tento objekt nemůže zasahovat do hry a je neviditelný, lze skrze něj pouze hru pozorovat, eventuelně s respawnovat, pokud je to dovoleno.
wall_gib Šrapnel, který vznikne při rozbití zdi bombou. Několik sekund po dopadu zmizí.
@