Náhoda a jej využívanie pri editácii

Z Armed Assault nápověda

Přejít na: navigace, hledání

Obsah

Úvod

Pomocou jednoduchého nastavenia špecifických parametrov v editore pre každú jednu jednotku môžete efektívne a jednoducho dosiahnuť napríklad opakovateľnú hrateľnosť v nezávislosti od správania sa AI.
Jedná sa predovšetkým o malý slider v okne nastavovania vlastností vkladanej jednotky. Ide o tzv. "Pravděpodobnost přítomnosti".

Ako už iste tušíte, pomocou tohto slidera nastavíte pravdepodobnosť prítomnosti naeditovanej jednotky priamo v misii. Ak ponecháte defaultne nastavený slider v pozícii úplne v pravo (100%), jednotka bude vždy po spustení misie zobrazená tam kde ste ju umiestnili, prípadne na inom mieste ktoré ste jej určili pomocou kombinácie príkazov position a setPos. To nás teraz ale nebude zaujímať a budeme predpokladať že daná jednotka sa bude zobrazovať na danom mieste ktoré sme jej určili už v editore.

V prípade že presuniete bežec spomínaného slideru približne do stredu stupnice, bude to znamenať cca 50% prítomnosť jednotky v hre.
Presnú hodnotu ktorú ste takto nastavili zistíte až po zavretí okna s nastavením vlastností jednotky a premiestnením kurzora myši nad danú jednotku.
Potom sa vám zobrazí aj presná hodnota pravdepodobnosti prítomnosti jednotky.
Pri našom nastavení cca 50% môžeme očakávať že jednotka bude na tomto mieste zobrazovaná pri každom novom spustení misie s pravdepodobnosťou cca 50%.
Čiže cca pri každom druhom spustení misie.

Nastavenie pravdepodobnosti prítomnosti ...
Zvětšit
Nastavenie pravdepodobnosti prítomnosti ...

Ďalšie príklady nebudem už uvádzať, ale určite ste všetci pochopili že pri nastavení nižšom ako je 50% sa daná jednotka pravdepodobne zobrazí iba ojedinele a pri vyššom nastavení blížiacom sa k 100% ju tam budete vidieť takmer pri každom spustení.

Táto jednoduchá technika sa dá výborne využiť napríklad pri náhodnom rozmiestňovaní nepriateľských hliadok v mestách a obciach.
Hráč bude pri novom hraní misie predpokladať hliadku na miestach odkiaľ bol v predchádzajúcej hre eliminovaný. Táto hliadka tam pritom už nebude, ale na opačnej strane ulice sa vďaka tomuto nastaveniu zobrazí iná hliadka, prípadne nastane situácia kedy budú zobrazené obidve hliadky.

Všetko si najlepšie ukážeme na jednoduchej misii ...

Editácia

  • Spustite hru a načítajte si ostrov Rahmadi.
  • Na okraj plochy tamojšieho letiska umiestnite postavu hráča.
  • Do inicializačného políčka hráča (Inicializace) dopíšte spustenie skriptu ktorého obsah si naeditujeme neskôr:
[] exec "nahoda.sqs"
  • Pred hráča do vzdialenosti zhruba 50m rozmiestnite s určitými rozostupmi štyri ľubovoľné prázdne vozidlá (napr. UAZ-y) a určite im názvy uaz1uaz4.
  • Každému UAZ-u na mape pridajte po jednom alebo dvoch "iba" stojacich SLA vojakov, pričom nastavte ich pravdepodobnosť prítomnosti od cca 25 až po 100%.
    Nastavenie hodnoty 0% je zbytočné skúšať, pretože v tomto prípade nebude samozrejme daný SLA vojak nikdy zobrazený.
  • Okolo hráča nakoniec vytvorte jednoduchý spínač označený ako "Konec č.1" s kontrolou neprítomnosti hráča na území tohto spínača.
    Takto jednoducho ukončíme našu krátku ukážkovú misiu, kde bude musieť hráč ukoristiť jeden z náhodne vybraných UAZ-ov a odísť s ním z územia spínača.
  • Tento spínač bude mať nastavené tieto parametre:
    • Hlavní poloosa: 100 (resp. tak aby obsiahol celú skupinu UAZ-ov a aj hráča)
    • Vedlejší poloosa: 100 (resp. tak aby obsiahol celú skupinu UAZ-ov a aj hráča)
    • Aktivace: BLUFOR, Nepřítomen
    • Typ: Konec č.1
    • Podmínka: (player in uaz1) or (player in uaz2) or (player in uaz3) or (player in uaz4)

Nastavenia jednotlivých jednotiek ...
Zvětšit
Nastavenia jednotlivých jednotiek ...

Skript "nahoda.sqs"

Tu je uvedený obsah už spomínaného skriptu, ktorý bude spustený z inicializačného políčka hráča. Všetko si teda skopírujte do svojho obľúbeného textového editora a uložte ako "nahoda.sqs".

uaz1 lock TRUE
uaz2 lock TRUE
uaz3 lock TRUE
uaz4 lock TRUE

_uazLocker = (random 4)

? ( _uazLocker <= 1 ) : goto "jednotka"
? ( ( _uazLocker > 1 ) && ( _uazLocker <= 2 ) ) : goto "dvojka"
? ( ( _uazLocker > 2 ) && ( _uazLocker <= 3 ) ) : goto "trojka"
? ( _uazLocker > 3 ) : goto "stvorka"

#jednotka
   uaz1 lock FALSE
goto exit 

#dvojka
   uaz2 lock FALSE
goto exit 

#trojka
   uaz3 lock FALSE
goto exit

#stvorka
   uaz4 lock FALSE  

exit 

V prvých riadkoch skriptu zamkneme všetky naeditované UAZ-y a tým zabránime hráčovi aby mohol do ktoréhokoľvek nasadnúť.
Ďalej si určíme generátor náhodných čísel od 0 do 4 pre lokálnu premennú "_uazLocker". Pomocou takto náhodne vygenerovaného čísla neskôr v skripte odomkneme hráčovi jeden zo štyroch UAZ-ov, do ktorého bude môcť nasadnúť a odísť s ním.
Ďalej nasleduje jednoduchá kontrola vygenerovanej hodnoty a tým sa potom pomocou príkazu goto určí ktorý z UAZ-ov má byť odomknutý.
Keďže vygenerované číslo nieje celé, treba myslieť aj na ochranu kontroly vygenerovaného čísla.

Príklad

Lokálnej premennej "_uazLocker" bolo vygenerované číslo s hodnotou 2,2344241.

Skript ďalej pokračuje a prichádza na prvú kontrolu, kde porovná vygenerované číslo s číslom 1. Zistí že nieje rovné číslu 1 a je taktiež väčšie ako čislo 1. (FALSE) Pokračuje teda na ďalší riadok.

Tu porovnáva hodnotu vygenerovaného čísla s intervalom čísel od 1 do 2, pričom príde na to, že vygenerované číslo má väčšiu hodnotu ako čísla v tomto intervale. (FALSE) Pokračuje teda ďalej.

V treťom kontrolnom riadku porovnáva vygenerované číslo s intervalom čísel od 2 do 3, pričom zistí že vygenerované číslo sa rovná jednomu z čísel v tomto intervale.

Po správnom vyhodnotení tohto stavu (TRUE) pokračuje odkazom goto na riadok v skripte s označením "trojka".
Tu prejde na ďalší riadok a vykoná príkaz:

uaz3 lock FALSE

... čím odomkne UAZ s označením "uaz3" a na ďalšom kroku ukončí celý skript.

Celý proces generovania čísla a jeho vyhodnotenie a odomknutie príslušného automobilu je tak rýchly, že hráč nič nespozoruje.

Záver

Dúfam že som všetko dostatočne zrozumiteľne vysvetlil a ak vám niečo nieje jasné, stiahnite si priloženú ukážkovú misiu a študujte.
Podobný ukážkový skript bol použitý aj v krátkej oddychovej SP misii "Ukradni traktor", kde bolo taktiež použité aj náhodné rozmiestňovanie (zobrazovanie) jednotiek.

Download

 !

Vzorové súbory misie (*.pbo archív a samostatné súbory): Download

Pomoc

 !

Ak budete niekedy potrebovať s niečím pri editovaní poradiť alebo pomôcť, neváhajte napísať sem: Ruprtova poradna

Osobní nástroje