Wintermute Engine Forum
Czech forum => Technické fórum => Topic started by: ahedov on January 16, 2012, 06:18:46 PM
-
Ahojte, píšu proto, že jsem si myslel, že zas tak neinteligentní nejsem, ale tohle prostě nechápu.
V inventáři mám dvě věci - papír a tužku. Tyhle předměty můžu zkombinovat dohromady a samozřejmě tak, že je jedno jestli kliknu tužkou na papír nebo papírem na tužku, takže jsem přidal k tužce tenhle skript:
on "papir"
{
itTaken("paptuz");
}
DropItem jsem dal k papíru, protože ten na scéně fyzicky neexistuje a proto se smaže jen z inventáře, tužka nemůže mít DropItem, protože by se objevila na scéně, tak jsem jí vymazal. Až potud všechno funguje skvěle. Když si to přehraju tak to jede. Problém nastane, když to samé napíšu do skriptu pro papir:
on "tuzka"
{
itTaken("paptuz");
}
V ten okamžik, když použiju papír na tužku (tedy obráceně), tak sice oba předměty zmizí, ale po příkazu TakeItem se v inventáři neobjeví předmět paptuz a dokonce se nevykoná ani funkce itTaken("paptuz"), což je funkce, kterou zobrazuju pomocné okénko se sebraným předmětem.
Co dělám špatně? Díky za jakoukoli odpověď.
-
Záludnost je v tom DeleteItem. Ten příkaz totiž okamžitě zabije předmět v inventáři, včetně jeho skriptu. Takže mám-li např. předmět "book", k němu připojen skript, který zavolá DeleteItem("book"), tak žádný další příkaz po tomhle už se neprovede, protože skript prostě v tu chvíli přestane existovat.
-
Díky Mnemonicu za briskní odpověď, problém jsem pochopil, přeházel akce a už to šlape, i když rychlost vykonávání příkazů způsobuje, že jsou v inventáři v jednu chvíli všechny věci najednou a teprve pak zmizí, ale to už je asi jen maličkost.