πΎ Archived View for spline-online.ru βΊ instead βΊ stead3.gmi captured on 2024-12-17 at 09:59:27. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2024-05-26)
-=-=-=-=-=-=-
ΠΠΎΠ΄ ΠΈΠ³Ρ ΠΏΠΎΠ΄ INSTEAD ΠΏΠΈΡΠ΅ΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Lua (5.1), ΠΏΠΎΡΡΠΎΠΌΡ, Π·Π½Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ρ ΠΎΡΡ ΠΈ Π½Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. Π―Π΄ΡΠΎ Π΄Π²ΠΈΠΆΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° lua, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π½Π°Π½ΠΈΠ΅ Lua ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΡΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ.
ΠΠ° Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ, INSTEAD ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π’Π΅ΠΏΠ΅ΡΡ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΡ ΡΠ°Π·Π½ΡΡ ΠΆΠ°Π½ΡΠΎΠ² (ΠΎΡ Π°ΡΠΊΠ°Π΄, Π΄ΠΎ ΠΈΠ³Ρ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ). Π ΡΠ°ΠΊΠΆΠ΅, Π² INSTEAD ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ³ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°Ρ , Π½ΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ INSTEAD ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΡΠ΅ΡΠΊΠΈΡ ΠΈΠ³Ρ. Π Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° Π±Π°Π·ΠΎΠ²Π°Ρ ΡΠ°ΡΡΡ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°ΠΆΠ΅ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅... ΠΠ°ΡΠ½ΠΈΡΠ΅ ΡΠ²ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ INSTEAD Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΡ!
Π ΡΠ΅Π²ΡΠ°Π»Π΅ 2017 Π³ΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ 8 Π»Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, INSTEAD (Π²Π΅ΡΡΠΈΡ 3.0) Π²ΡΡΠ΅Π» Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° STEAD3. Π‘ΡΠ°ΡΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ STEAD2. INSTEAD ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈΠ³Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΊΠ°ΠΊ Π½Π° STEAD2, ΡΠ°ΠΊ ΠΈ Π½Π° STEAD3. ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ STEAD3.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠ°ΠΉΡ INSTEAD:
[https://instead-hub.github.io]
ΠΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ°ΡΡ Π½Π° gitter:
[https://gitter.im/instead-hub/instead]
https://gitter.im/instead-hub/instead
ΠΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ "ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅" Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π»ΡΠ΄Π΅ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ². ΠΡΠΎ Π»ΠΈΠ±ΠΎ ΡΠ΅ΠΊΡΡ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
,----
| ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΠΎΠΉ ΡΡΠΎΠ». ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ ΡΠ±Π»ΠΎΠΊΠΎ. Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
|
| 1) ΠΠ·ΡΡΡ ΡΠ±Π»ΠΎΠΊΠΎ
| 2) ΠΡΠΎΠΉΡΠΈ ΠΎΡ ΡΡΠΎΠ»Π°
`----
ΠΠ»ΠΈ, Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ΅ΠΆΠ΅, ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ³ΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ Π²Π²ΠΎΠ΄ΠΎΠΌ, Π³Π΄Π΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
,----
| ΠΡ Π½Π° ΠΊΡΡ Π½Π΅. Π’ΡΡ Π΅ΡΡΡ ΡΡΠΎΠ».
| > ΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎΠ».
| ΠΠ° ΡΡΠΎΠ»Π΅ Π΅ΡΡΡ ΡΠ±Π»ΠΎΠΊΠΎ.
`----
Π£ ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΏΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, ΡΠΎ ΠΎΠ½ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΠΆΠ°Π½ΡΡ ΠΊΠ½ΠΈΠ³-ΠΈΠ³Ρ ΠΈ ΡΠ΄ΠΎΠ±Π΅Π½ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π»Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ _ΡΠΎΠ±ΡΡΠΈΡ_, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Ρ Π³Π»Π°Π²Π½ΡΠΌ Π³Π΅ΡΠΎΠ΅ΠΌ, ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠ²Π΅ΡΡΠΎΠ², Π³Π΄Π΅ Π³Π»Π°Π²Π½ΡΠΉ Π³Π΅ΡΠΎΠΉ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅Ρ _ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ_ Π² ΠΈΠ³ΡΠ΅ _ΠΌΠΈΡ_, ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡ ΠΏΠΎ Π½Π΅ΠΌΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠΈΡΠ°.
ΠΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ ΠΌΠΈΡ, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ ΠΎΡ Π°Π²ΡΠΎΡΠ° ΠΈΠ³ΡΡ, ΠΈ, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ°. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ ΡΡΡΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ.
ΠΡΠΎΠ΅ΠΊΡ INSTEAD Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ³Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΠ°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ², ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΡΠ°ΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ².
ΠΠΈΡ ΠΈΠ³ΡΡ Π½Π° INSTEAD ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²ΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅, ΡΠΎ Π΅ΡΡΡ Π² ΠΈΠ³ΡΠ΅ Π΅ΡΡΡ ΠΌΠ΅ΡΡΠ° (ΡΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ) ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅ΡΠ°ΡΡ Π³Π»Π°Π²Π½ΡΠΉ Π³Π΅ΡΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΆΠΈΠ²ΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΉ). ΠΠ³ΡΠΎΠΊ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΡΡΠ°Π΅Ρ ΠΌΠΈΡ ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠΈΡΠ΅ΠΌ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π½Π΅ ΠΏΡΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ²Π½ΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ, Π° ΡΠΊΠΎΡΠ΅Π΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ²Π΅ΡΡΡ Π² ΡΡΠΈΠ»Π΅ 90-Ρ .
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² INSTEAD Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°, ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ³ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΌ ΠΈ Π½Π΅ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ "ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΊΠ²Π΅ΡΡΡ". ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π° Π΄Π²ΠΈΠΆΠΊΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠΏΡΡΠ΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ³Ρ, ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΡΠ²Π»ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π»ΡΠ±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΈΠ³Ρ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΡΡ , Π½ΠΎ ΠΈ Π»ΡΠ΄ΠΈ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΆΠ°Π½ΡΠΎΠΌ.
ΠΠ΅ΡΠ΅Π΄ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ³ΡΡ INSTEAD, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΎ ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°Π· Π²Ρ Π·Π΄Π΅ΡΡ, ΡΠΎ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π²Ρ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΡΠΎ.
ΠΡΠ°Π²Π΄Π°, Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΠΎΠΊΠ° ΠΈΠ·ΡΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΡΠΈΡ ΠΈΠ³Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠ΅ ΠΈΠ³ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π΅ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ. Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ INSTEAD ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½Π΅Π΅, ΠΏΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅. ΠΠ± ΡΡΠΎΠΌ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅.
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π½Π°ΡΠΈΠ½Π°Π»ΠΎΡΡ: [https://instead-hub.github.io/article/2010-05-09-history/]
https://instead-hub.github.io/article/2010-05-09-history/
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ INSTEAD ΠΈΠ³ΡΠ°?
_ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ_ ΠΈΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅Π½Ρ, Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΡΠ΅Π½Ρ (Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅) Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°ΠΌΠΈ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π½Ρ.
_ΠΠΏΠΈΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΡΠ΅Π½Ρ_ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ ΡΡΠ΅Π½Ρ, ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ²Π½ΠΎΠΌ ΠΎΡΠΌΠΎΡΡΠ΅ ΡΡΠ΅Π½Ρ (Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ -- _Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ΅Π½Ρ_ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ ΡΡΠ΅Π½Ρ (ΠΎΠ±ΡΡΠ½ΠΎ, ΡΡΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΈ) ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°. ΠΡΠ° ΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π°Π²ΡΠΎΡΠΎΠΌ ΠΈΠ³ΡΡ.
_ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ΅Π½Ρ_ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π° ΡΡΠ΅Π½Π΅. ΠΡΠ° ΡΠ°ΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°. ΠΠ±ΡΡΠ½ΠΎ, Π² Π½Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ³ΡΠΎΠΊΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΡΠ΅Π½Π΅ -- _ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ_. ΠΠ³ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² "ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ΅" ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ "ΠΎΡΠΊΡΡΡΡ", "ΠΎΡΠΌΠΎΡΡΠ΅ΡΡ", "ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ" ΠΈ Ρ.Π΄.
_ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ_ ΠΈΠ³ΡΠΎΠΊΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ:
ΠΠ³ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΊΡΠΈΠΏΡ (ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ») `main3.lua `. (ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° `main3.lua ` ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΠΈΠ³ΡΡ Π½Π° STEAD3!) ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΈΠ³ΡΡ (ΡΠΊΡΠΈΠΏΡΡ Π½Π° lua, Π³ΡΠ°ΡΠΈΠΊΠ° ΠΈ ΠΌΡΠ·ΡΠΊΠ°) Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΡΡΡΡ Π΄Π΅Π»Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° -- ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΠ³ΡΡ.
Π Π½Π°ΡΠ°Π»Π΅ ΡΠ°ΠΉΠ»Π° `main3.lua ` ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΠ΅Π³ΠΎΠ² (ΡΡΡΠΎΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°). Π’Π΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²: Π΄Π²Π° ΠΌΠΈΠ½ΡΡΠ°.
--
ΠΠ²Π° ΠΌΠΈΠ½ΡΡΠ° ΡΡΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Lua. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈ.
Π’Π΅Π³ `$Name: ` ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΡ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³Π°:
-- $Name: Π‘Π°ΠΌΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΈΠ³ΡΠ°!$
ΠΠ°ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ (ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ) Π·Π°Π΄Π°ΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ³ΡΡ:
-- $Version: 0.5$
Π ΡΠΊΠ°Π·Π°ΡΡ Π°Π²ΡΠΎΡΡΡΠ²ΠΎ:
-- $Author: ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π»ΡΠ±ΠΈΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ$
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΠ³ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ΅Π³ΠΎΠΌ `$Info: `
-- $Info: ΠΡΠΎ ΡΠ΅ΠΌΠ΅ΠΉΠΊ ΡΡΠ°ΡΠΎΠΉ ΠΈΠ³ΡΡ\nΠ‘ ZX spectrum$
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° `\n ` Π² `Info `, ΡΡΠΎ ΡΡΠ°Π½Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠ½ΠΊΡ "ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ" Π² INSTEAD.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΠΈΠ³ΡΡ Π² Windows, ΡΠΎ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ UTF-8 _Π±Π΅Π· BOM_. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠ³ΡΡ!
ΠΠ°Π»Π΅Π΅, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΈΠ³ΡΠ΅. Π ΠΌΠΎΠ΄ΡΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
require "fmt" -- Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ fmt.para = true -- Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠΎΠ² (ΠΎΡΡΡΡΠΏΡ)
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: `game.act `, `game.use `, `game.inv `, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
game.act = 'ΠΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.'; game.use = 'ΠΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.'; game.inv = 'ΠΠ°ΡΠ΅ΠΌ ΠΌΠ½Π΅ ΡΡΠΎ?';
_ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ_ ΠΈΠ³ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ `init() `, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅. Π ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΈΠ³ΡΡ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΈΡΠ° ΠΈΠ³ΡΡ. ΠΠΏΡΠΎΡΠ΅ΠΌ, ΡΡΠ½ΠΊΡΠΈΡ `init() ` ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈ Π½Π΅ Π½ΡΠΆΠ½Π°.
function init() -- Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ Π½ΠΎΠΆ ΠΈ Π±ΡΠΌΠ°Π³Ρ take 'Π½ΠΎΠΆ' take 'Π±ΡΠΌΠ°Π³Π°' end
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΈΠ³ΡΠ° ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊ ΠΈΠ³ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ `start() `, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΈΠ³ΡΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΈΠ³ΡΡ, `start() ` Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΡΠ°Π½ΠΎ,
function start(load) -- Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅? if load then dprint "ΠΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ." else dprint "ΠΡΠΎ ΡΡΠ°ΡΡ ΠΈΠ³ΡΡ." end -- Π½Π°ΠΌ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ end
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΈΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΈΠ³ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ games. Unix-Π²Π΅ΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ³ΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ `~/.instead/games `. Windows-Π²Π΅ΡΡΠΈΡ: `Documents and Settings/USER/Local Settings/Application Data/instead/games `. Π Windows- ΠΈ standalone-Unix-Π²Π΅ΡΡΠΈΠΈ ΠΈΠ³ΡΡ ΠΈΡΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ `./appdata/games `, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ INSTEAD (Π² Windows, Π² Linux Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎΠ±ΡΠ°Π½ Ρ gtk ΠΈ Π΄Ρ.) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ³ΡΡ ΠΏΠΎ Π»ΡΠ±ΠΎΠΌΡ ΠΏΡΡΠΈ ΠΈΠ· ΠΌΠ΅Π½Ρ "ΠΡΠ±ΠΎΡ ΠΈΠ³ΡΡ". ΠΠΈΠ±ΠΎ, Π½Π°ΠΆΠ°ΡΡ `f4 `. ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΈΠ³ΡΠ°ΠΌΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ³ΡΠ°, INSTEAD Π·Π°ΠΏΡΡΡΠΈΡ Π΅Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΊΠ»Π°Π΄Π΅ΡΠ΅ ΠΈΠ³ΡΡ Π² ΡΠ²ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ INSTEAD.
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΠ³ΡΡ, Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΡΡΡΠΏΡ Π΄Π»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈΠ³ΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π²Ρ ΡΠΎΠΊΡΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π½Π°Π³Π»ΡΠ΄Π½Π΅ΠΉ!
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ³ΡΡ:
-- $Name: ΠΠΎΡ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΠ³ΡΠ°$ -- $Version: 0.1$ -- $Author: ΠΠ½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π°Π²ΡΠΎΡ$ require "fmt" fmt.para = true game.act = 'ΠΠΌ...'; game.use = 'ΠΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ.'; game.inv = 'ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ ΠΌΠ½Π΅?'; function init() -- ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½ΡΠΆΠ½Π° endc;
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ) ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΡΠΎΠ±Ρ INSTEAD Π±ΡΠ» Π·Π°ΠΏΡΡΠ΅Π½ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ `-debug `, ΡΠΎΠ³Π΄Π° Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ². ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ `-debug ` ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π² ΡΡΠ»ΡΠΊΠ΅ (Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² Windows), Π° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, Ρ Π΄ΡΠΌΠ°Ρ Π²Ρ ΠΈ ΡΠ°ΠΊ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ `-debug ` Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°Π²ΠΈΡ `ctrl-d ` ΠΈΠ»ΠΈ `f7 `. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΈ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Π²:
require "dbg"
Π ΠΊΠΎΠ΄Π΅ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΡ.
ΠΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈΠ³ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ³ΡΡ ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Ρ (ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌ `f2~/~f3 `), ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΡΡΡΡΡΠΌ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ/Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ (ΠΊΠ»Π°Π²ΠΈΡΠΈ `f8~/~f9 `).
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ `-debug ` Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ³ΡΡ ΠΊΠ»Π°Π²ΠΈΡΠ°ΠΌΠΈ `alt-r `. Π ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Ρ `f8~/~f9 ` ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ³ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ ΠΏΡΠ°Π²ΠΊΠΈ.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΠ΅ INSTEAD, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠ°ΡΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΠΆΠΈΠΌ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ Π°Π²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ! ΠΠΈΠ±ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π² ΠΌΠ΅Π½Ρ (Π°Π²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅), Π»ΠΈΠ±ΠΎ ΡΠ²Π½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΈΠ³ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ°Π²ΠΎΠΊ. ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Ρ (Π½Π°ΡΠ°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ) ΠΈΠ»ΠΈ `alt-r ` Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ `-debug ` ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅.
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ `-debug ` Windows-Π²Π΅ΡΡΠΈΡ INSTEAD ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Π² Unix Π²Π΅ΡΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ INSTEAD ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π²ΡΠ²ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π² Π½Π΅Π΅) Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ `print() ` Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
act = function(s) print ("Act is here! "); ... end;
ΠΠ΅ ΠΏΡΠ³Π°ΠΉΡΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π²ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ Π½Π°ΡΠ½Π΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ, Π²Ρ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²Π·Π³Π»ΡΠ½Π΅ΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ Π²ΠΎΠΎΠ΄ΡΡΠ΅Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ `dprint() `, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠ»Π°Π΅Ρ Π²ΡΠ²ΠΎΠ΄ Π² ΠΎΠΊΠ½ΠΎ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°, ΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
act = function(s) dprint ("Act is here! "); ... end;
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ³ΡΡ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠ°ΠΉΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ, ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ `saves ` Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠΎΠΉ (Π² ΡΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π³Π΄Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ `main3.lua `) ΠΈ ΠΈΠ³ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π² saves. ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΈΠ³ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Unix ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ) Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π²Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° `luac `. Π Windows ΡΡΠΎ ΡΠΎΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ lua Π΄Π»Ρ Windows ([http://luabinaries.sourceforge.net])/ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ `luac52.exe `.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ INSTEAD, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ `-luac `:
sdl-instead -debug -luac <ΠΏΡΡΡΡ ΠΊ ΡΠΊΡΠΈΠΏΡΡ.lua>
http://luabinaries.sourceforge.net
_Π‘ΡΠ΅Π½Π°_ (ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΠ°) -- ΡΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ³ΡΡ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΡΡΠ°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ΅Π½Ρ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π½ΠΈΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³Π΅ΡΠΎΠΉ. ΠΠ»ΠΈ ΡΡΠ°ΡΡΠΎΠΊ Π»Π΅ΡΠ°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
Π Π»ΡΠ±ΠΎΠΉ ΠΈΠ³ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΡΠ΅Π½Π° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `main `. ΠΠΌΠ΅Π½Π½ΠΎ Ρ Π½Π΅Π΅ Π½Π°ΡΠ½Π΅ΡΡΡ ΠΈ Π²Π°ΡΠ° ΠΈΠ³ΡΠ°!
room { nam = 'main'; disp = "ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°"; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; }
ΠΠ°ΠΏΠΈΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ Π² INSTEAD ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ) `main ` ΡΠΈΠΏΠ° `room ` (ΠΊΠΎΠΌΠ½Π°ΡΠ°). ΠΡΡΠΈΠ±ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `nam ` Ρ ΡΠ°Π½ΠΈΡ ΠΈΠΌΡ ΠΊΠΎΠΌΠ½Π°ΡΡ `main `, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΠΈΠ· ΠΊΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΡ:
dprint("ΠΠ±ΡΠ΅ΠΊΡ: ", _'main')
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ³ΡΡ Π΅ΡΡΡ _Π°ΡΡΠΈΠ±ΡΡΡ_ ΠΈ _ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ_. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΅ΡΡΡ Π΄Π²Π° Π°ΡΡΠΈΠ±ΡΡΠ°: `nam ` ΠΈ `dsc `. ΠΡΡΠΈΠ±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ -- ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΡΠΎΡΠΊΠ° Ρ Π·Π°ΠΏΡΡΠΎΠΉ `; `).
ΠΠ±ΡΡΠ½ΠΎ, Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π±ΡΠ»Π΅Π²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, Π°ΡΡΠΈΠ±ΡΡ `nam ` Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π½.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΠΌΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
room { disp = "ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°"; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; }
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ°ΠΌ Π΄Π°ΡΡ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΈ ΡΡΠΎ ΠΈΠΌΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΊΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ²Π½ΠΎ ΠΠ½ΠΎΠ³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΉ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ "Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠΉ", Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ - ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
myroom = room { disp = "Π§ΡΠ»Π°Π½"; dsc = [[ΠΡ Π² ΡΡΠ»Π°Π½Π΅.]]; }
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `myroom ` Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ).
dprint("ΠΠ±ΡΠ΅ΠΊΡ: ", myroom)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°, ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠ±Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ ΠΈ ΠΈΠΌΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΡΡΠ»ΠΊΡ:
main_room = room { nam = 'main'; disp = "ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°"; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; }
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΡΡΡΠ»ΠΊΠΈ -- ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΡΠΎΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ. ΠΠΎΡΡΠΎΠΌΡ, Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ³ΡΡ ΠΌΡ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠΊΠ°Π·Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ `nam = 'main' `, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ main Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈ Π½Π°ΡΠ½Π΅ΡΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅!
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ ΡΡΠ΅Π½Ρ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΡΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π°ΡΡΠΈΠ±ΡΡ `disp `. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ Π΅Π³ΠΎ Π½Π΅ Π·Π°Π΄Π°Π»ΠΈ, ΡΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΌΡ Π±Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ `nam `. ΠΠΎ `nam ` Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΡΡΠ΅Π½Ρ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Π²ΡΠΎΠ΄Π΅ `main `, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ» ΠΎΠ±ΡΠ΅ΠΊΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΡΡ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π°ΡΡΠΈΠ±ΡΡ `title `. ΠΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π½, ΡΠΎ ΠΏΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½. `title ` ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ _Π²Π½ΡΡΡΠΈ_ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ (ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π² ΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ `disp ` ΠΈΠ»ΠΈ `nam `.
mroom = room { nam = 'main'; title = 'ΠΠ°ΡΠ°Π»ΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΡ'; disp = "ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°"; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; }
ΠΡΡΠΈΠ±ΡΡ `dsc ` -- ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² ΡΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΠ²Π½ΠΎΠΌ ΠΎΡΠΌΠΎΡΡΠ΅ ΡΡΠ΅Π½Ρ. Π Π½Π΅ΠΌ Π½Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΡ Π² ΡΡΠ΅Π½Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» `, ` Π²ΠΌΠ΅ΡΡΠΎ `; ` Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'main', disp = 'ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°', dsc = 'ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.', }
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ -- ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅. Π‘ΡΡΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π° Π² ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΡ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΊΠ°Π²ΡΡΠΊΠ°Ρ :
room { nam = 'main'; disp = 'ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = "ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅."; }
ΠΠ»Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ Π²ΠΈΠ΄Π°:
dsc = [[ ΠΡΠ΅Π½Ρ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅... ]];
ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π°Π±Π·Π°ΡΡ -- ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» `^ `.
dsc = [[ ΠΠ΅ΡΠ²ΡΠΉ Π°Π±Π·Π°Ρ. ^^ ΠΡΠΎΡΠΎΠΉ ΠΠ±Π·Π°Ρ.^^ Π’ΡΠ΅ΡΠΈΠΉ Π°Π±Π·Π°Ρ.^ ΠΠ° Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.]];
Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `[[ ΠΈ ]] ` Π΄Π»Ρ `dsc `.
ΠΠ°ΠΏΠΎΠΌΠ½Ρ Π΅ΡΠ΅ ΡΠ°Π·, ΡΡΠΎ ΠΈΠΌΡ `nam ` ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠ΅Π½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠ° Π² Π²ΠΈΠ΄Π΅ Π½Π°Π΄ΠΏΠΈΡΠΈ ΡΠ²Π΅ΡΡ Ρ) ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ, ΡΠ°ΡΡΠΎ, Π½ΡΠΆΠ½ΠΎ!) ΡΠ°Π·Π΄Π΅Π»ΡΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ `disp ` ΠΈ `title `. `title ` Π±ΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΠΌΠ½Π°Ρ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ `disp ` (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ).
ΠΡΠ»ΠΈ `disp ` ΠΈ `title ` Π½Π΅ Π·Π°Π΄Π°Π½Ρ, ΡΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ.
`disp ` ΠΈ `title ` ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ `false `, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
_ΠΠ±ΡΠ΅ΠΊΡΡ_ -- ΡΡΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΠ΅Π½Ρ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΈΠ³ΡΠΎΠΊ.
obj { nam = 'ΡΡΠΎΠ»'; dsc = 'Π ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΡΡΠΎΠΈΡ {ΡΡΠΎΠ»}.'; act = 'ΠΠΌ... ΠΡΠΎΡΡΠΎ ΡΡΠΎΠ»...'; };
ΠΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `nam ` ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π΅Π³ΠΎ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ. Π₯ΠΎΡΡ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎΠ» Π²ΡΡΠ΄ Π»ΠΈ ΡΡΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π΅Ρ. ΠΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ `disp `, ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ Π΄Π»Ρ Π΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
obj { nam = 'ΡΡΠΎΠ»'; disp = 'ΡΠ³ΠΎΠ» ΡΡΠΎΠ»Π°'; dsc = 'Π ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΡΡΠΎΠΈΡ {ΡΡΠΎΠ»}.'; tak = 'Π― Π²Π·ΡΠ»ΡΡ Π·Π° ΡΠ³ΠΎΠ» ΡΡΠΎΠ»Π°'; inv = 'Π― Π΄Π΅ΡΠΆΡΡΡ Π·Π° ΡΠ³ΠΎΠ» ΡΡΠΎΠ»Π°.'; };
ΠΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΠΎΠ» ΠΏΠΎΠΏΠ°Π» ΠΊ Π½Π°ΠΌ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΡΡΠ²Π°ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ΅, Π΅ΡΠ»ΠΈ `disp ` Π°ΡΡΠΈΠ±ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ `false `.
`dsc ` -- ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅Π½Ρ, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΡΠ΅Π½Π΅. Π€ΠΈΠ³ΡΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠ»ΠΊΠΎΠΉ Π² ΠΎΠΊΠ½Π΅ INSTEAD. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΡΠ΅Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΠΎ Π²ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΎΠ΄Π½ΠΎ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ, ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»,
`act ` -- ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ΅Π½Ρ, ΠΎΠ±ΡΡΠ½ΠΎ -- ΠΊΠ»ΠΈΠΊ ΠΌΡΡΠΊΠΎΠΉ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅). ΠΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° -- Π²ΡΠ²ΠΎΠ΄ (Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅) ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°Π½Π΅Ρ ΡΠ°ΡΡΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΠ΅Π½Ρ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΡΠ΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠ΅ΠΉ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ `obj `, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²:
obj { -- ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ nam = 'ΡΡΠΈΠΊ'; dsc = [[ΠΠ° ΠΏΠΎΠ»Ρ Ρ Π²ΠΈΠΆΡ {ΡΡΠΈΠΊ}.]]; act = [[Π’ΡΠΆΠ΅Π»ΡΠΉ!]]; } room { nam = 'main'; disp = 'ΠΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; obj = { 'ΡΡΠΈΠΊ' }; };
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΡΡΠ΅Π½Ρ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ "ΡΡΠΈΠΊ" Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ.
ΠΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΡΡΠ»ΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π·Π°ΡΠ°Π½Π΅Π΅:
apple = obj { -- ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ dsc = [[Π’ΡΡ Π΅ΡΡΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.]]; act = [[ΠΡΠ°ΡΠ½ΠΎΠ΅!!]]; } room { nam = 'main'; disp = 'ΠΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; obj = { apple }; };
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ `with `:
room { nam = 'main'; disp = 'ΠΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; }:with { 'ΡΡΠΈΠΊ', }
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ `with ` ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π»ΠΈΡΠ½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΈΠ³ΡΡ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΡΠΌΠΎ Π²Π½ΡΡΡΠΈ `obj ` ΠΈΠ»ΠΈ `with `, ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅:
room { nam = 'main'; disp = 'ΠΠΎΠ»ΡΡΠ°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = [[ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.]]; }:with { obj { nam = 'ΡΡΠΈΠΊ'; dsc = [[ΠΠ° ΠΏΠΎΠ»Ρ Ρ Π²ΠΈΠΆΡ {ΡΡΠΈΠΊ}.]]; act = [[Π’ΡΠΆΠ΅Π»ΡΠΉ!]]; } };
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² - Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΉ. ΠΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΡΡΠ»ΠΊΠΎΠΉ. Π ΡΡΠ°ΡΡΡΡ, Π΄Π»Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΉ ΡΡΠΎ ΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°Π·Π΄Π΅Π»ΡΠΉΡΠ΅ ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π·Π°ΠΏΡΡΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
obj = { 'ΡΡΠΈΠΊ', apple };
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊ Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
obj = { 'tabl', 'apple', 'knife', };
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ.
ΠΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π½Ρ Π² Π΄ΡΡΠ³ΡΡ (ΠΈΠ»ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ), ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΡ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΡΡΠ»ΠΊΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌ.
ΠΠΎ Π½Π΅ΠΌΠ°Π»ΡΡ ΡΠ°ΡΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡΠ° ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π»ΠΎΠΊΠ°ΡΠΈΡ ΠΈ ΡΠ»ΡΠΆΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΉ.
Π’Π°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΡΠΎΠ΄Π΅ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΠΈ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, `Π΄Π΅ΡΠ΅Π²ΠΎ ` ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΈΡ Π²ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ.
obj { nam = 'Π΄Π΅ΡΠ΅Π²ΠΎ'; dsc = [[Π’ΡΡ ΡΡΠΎΠΈΡ {Π΄Π΅ΡΠ΅Π²ΠΎ}.]]; act = [[ΠΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ.]]; } room { nam = 'ΠΠ΅Ρ'; obj = { 'Π΄Π΅ΡΠ΅Π²ΠΎ' }; } room { nam = 'Π£Π»ΠΈΡΠ°'; obj = { 'Π΄Π΅ΡΠ΅Π²ΠΎ' }; }
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅Π³ΠΈ. Π’Π΅Π³ΠΈ Π·Π°Π΄Π°ΡΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ `tag ` ΠΈ Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° `# `:
obj { tag = '#ΡΠ²Π΅ΡΡ'; dsc = [[Π’ΡΡ Π΅ΡΡΡ {ΡΠ²Π΅ΡΡ}.]] }
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΈΠΌΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, Π½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎ ΡΠ΅Π³Ρ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
dprint(_'#ΡΠ²Π΅ΡΡ') -- ΠΈΡΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ΅Π³ΠΎΠΌ '#ΡΠ²Π΅ΡΡ'
Π’Π΅Π³ΠΈ, ΡΡΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠΎ ΡΠΌΡΡΠ»Π΅, ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠΌΠ΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° Ρ ΡΠ΅Π³ΠΎΠΌ:
obj { nam = '#ΡΠ²Π΅ΡΡ'; dsc = [[Π’ΡΡ Π΅ΡΡΡ {ΡΠ²Π΅ΡΡ}.]] }
ΠΡΠ»ΠΈ ΠΈΠΌΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° `# `, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π³ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ-ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΡΡ ΡΠΌΡΡΠ» ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ ΡΠ°ΡΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Ρ, Π° Π½Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠ° ΡΡΠ΅Π½Ρ `decor `. decor ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΈ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ -- ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½Ρ.
room { nam = 'ΠΠΎΠΌ'; dsc = [[Π― Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠΌΠ°.]]; decor = [[Π’ΡΡ Ρ Π²ΠΈΠΆΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° {#ΡΡΠ΅Π½Π°|ΡΡΠ΅Π½Π΅} Π²ΠΈΡΠΈΡ {#ΠΊΠ°ΡΡΠΈΠ½Π°|ΠΊΠ°ΡΡΠΈΠ½Π°}.]]; }: with { obj { nam = '#ΡΡΠ΅Π½Π°'; act = [[Π‘ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΡΠ΅Π½Π°!]]; }; obj { nam = '#ΠΊΠ°ΡΡΠΈΠ½Π°'; act = [[ΠΠ°Π½-ΠΠΎΠ³?]]; } }
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ΅ΠΌΠΎΠ²:
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ Π² Π»ΡΠ±ΡΡ ΠΏΡΠΎΠΏΠΎΡΡΠΈΡΡ .
ΠΠ±ΡΠ΅ΠΊΡΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅Π±Π΅ Π°ΡΡΠΈΠ±ΡΡ `obj ` (ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ `with `). ΠΡΠΈ ΡΡΠΎΠΌ, ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², INSTEAD Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ. Π’Π°ΠΊΠ°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π½Π° ΡΡΠΎΠ» ΡΠ±Π»ΠΎΠΊΠΎ.
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; dsc = [[ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.]]; act = 'ΠΠ·ΡΡΡ ΡΡΠΎ-Π»ΠΈ?'; }; obj { nam = 'ΡΡΠΎΠ»'; dsc = [[Π ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΡΡΠΎΠΈΡ {ΡΡΠΎΠ»}.]]; act = 'ΠΠΌ... ΠΡΠΎΡΡΠΎ ΡΡΠΎΠ»...'; obj = { 'ΡΠ±Π»ΠΎΠΊΠΎ' }; }; room { nam = 'ΠΠΎΠΌ'; obj = { 'ΡΡΠΎΠ»' }; }
ΠΡΠΈ ΡΡΠΎΠΌ, Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ΅Π½Ρ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² `ΡΡΠΎΠ» ` ΠΈ `ΡΠ±Π»ΠΎΠΊΠΎ `, ΡΠ°ΠΊ ΠΊΠ°ΠΊ `ΡΠ±Π»ΠΎΠΊΠΎ ` -- ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΎ ΡΡΠΎΠ»ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `ΡΡΠΎΠ» ` Π²ΡΠ»Π΅Π΄ Π·Π° Π΅Π³ΠΎ `dsc ` Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ `dsc ` Π²ΡΠ΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠΈΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ `ΡΡΠΎΠ» ` (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ Π΅Π³ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΊΠΎΠΌΠ½Π°ΡΡ) ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ `ΡΠ±Π»ΠΎΠΊΠΎ `.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ³ Π±Ρ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
room { nam = 'ΠΠΎΠΌ'; }:with { obj { nam = 'ΡΡΠΎΠ»'; dsc = [[Π ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΡΡΠΎΠΈΡ {ΡΡΠΎΠ»}.]]; act = 'ΠΠΌ... ΠΡΠΎΡΡΠΎ ΡΡΠΎΠ»...'; }: with { obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; dsc = [[ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.]]; act = 'ΠΠ·ΡΡΡ ΡΡΠΎ-Π»ΠΈ?'; }; } }
ΠΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΎΡ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π»Ρ Π²Π°Ρ ΠΏΠΎΠ½ΡΡΠ½Π΅ΠΉ.
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ _ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ_. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
disp = function() p 'ΡΠ±Π»ΠΎΠΊΠΎ'; end
ΠΡΠΈΠΌΠ΅Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄Π°ΡΠ΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ `disp = 'ΡΠ±Π»ΠΎΠΊΠΎ' `, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ -- ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ Π±ΡΠ»Π΅Π²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΡΠΎΠΊΠΈ. ΠΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΡΠΎΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² Π²ΠΈΠ΄Π΅:
return "ΡΠ±Π»ΠΎΠΊΠΎ";
ΠΡΠΈ ΡΡΠΎΠΌ Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π²ΠΈΠΆΠΊΡ ΡΡΡΠΎΠΊΡ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ "ΡΠ±Π»ΠΎΠΊΠΎ".
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡΠ»ΠΈ `p ` / `pn ` / `pr ` Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ, ΡΠΎ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°ΡΡ.
pn "ΠΠ΅Ρ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌ!"
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ Π² Π±ΡΡΠ΅Ρ ΠΈ ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΅Π³ΠΎ Π΄Π²ΠΈΠΆΠΊΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ `p~/~pn~/~pr `. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π°Π²ΡΠΎΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ°ΠΌ ΡΠ°ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊ ΠΈ ΠΏΡΠΎΠ±Π΅Π»Ρ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `.. ` ΠΈΠ»ΠΈ `, ` Π΄Π»Ρ ΡΠΊΠ»Π΅ΠΉΠΊΠΈ ΡΡΡΠΎΠΊ. Π’ΠΎΠ³Π΄Π° `( ` ΠΈ `) ` ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
pn ("Π‘ΡΡΠΎΠΊΠ° 1".." Π‘ΡΡΠΎΠΊΠ° 2"); pn ("Π‘ΡΡΠΎΠΊΠ° 1", "Π‘ΡΡΠΎΠΊΠ° 2");
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°, Π° Π°ΡΡΠΈΠ±ΡΡΡ Π½Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΡΠΎΡΠΌΠ»ΡΠ΅ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, `dsc `) Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° Π°ΡΡΠΈΠ±ΡΡΠ° ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ! ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ Π² ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠΊΠΎ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, ΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ ΡΠ²Π½ΠΎ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ-ΡΠΎ ΠΈΠ³ΡΠΎΠ²ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ!
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΆΠ΄Π°ΡΡ ΠΊΠ°ΠΊΠΈΡ ΡΠΎ ΡΠΎΠ±ΡΡΠΈΠΉ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π’ΠΎ Π΅ΡΡΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΈΠΊΠ»ΠΎΠ² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ (ΠΏΠ°ΡΠ·). ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° -- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΎΡΠ΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ INSTEAD, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π²ΡΠ²ΠΎΠ΄Π°, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ `timer `.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; seen = false; dsc = function(s) if not s.seen then p 'ΠΠ° ΡΡΠΎΠ»Π΅ {ΡΡΠΎ-ΡΠΎ} Π»Π΅ΠΆΠΈΡ.'; else p 'ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.'; end end; act = function(s) if s.seen then p 'ΠΡΠΎ ΡΠ±Π»ΠΎΠΊΠΎ!'; else s.seen = true; p 'ΠΠΌ... ΠΡΠΎ ΠΆΠ΅ ΡΠ±Π»ΠΎΠΊΠΎ!'; end end; };
ΠΡΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎ Π²ΡΠ΅Π³Π΄Π° _ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ_ ΡΡΠ½ΠΊΡΠΈΠΈ (`s `) -- ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ. Π’ΠΎ-Π΅ΡΡΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, `s ` ΡΡΠΎ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ `_'ΡΠ±Π»ΠΎΠΊΠΎ' `. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΡΠ°ΠΌΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π² ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π° Π½Π΅ ΡΠ²Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ Π²Π°ΡΡ ΠΈΠ³ΡΡ. ΠΠ° ΠΈ Π·Π°ΠΏΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΡΠΎΡΠ΅.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ ΡΡΠ΅Π½Ρ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ ΡΠ΅ΠΊΡΡ: `ΠΠ° ΡΡΠΎΠ»Π΅ ΡΡΠΎ-ΡΠΎ Π»Π΅ΠΆΠΈΡ `. ΠΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ `ΡΡΠΎ-ΡΠΎ `, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `seen ` ΠΎΠ±ΡΠ΅ΠΊΡΠ° `ΡΠ±Π»ΠΎΠΊΠΎ ` Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π² `true ` -- ΠΈΡΡΠΈΠ½Π°, ΠΈ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ±Π»ΠΎΠΊΠΎ.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° `if ` Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½. ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
if <Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅> then <Π΄Π΅ΠΉΡΡΠ²ΠΈΡ> end if have 'ΡΠ±Π»ΠΎΠΊΠΎ' then p 'Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ±Π»ΠΎΠΊΠΎ!' end if <Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅> then <Π΄Π΅ΠΉΡΡΠ²ΠΈΡ> else <Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ½Π°ΡΠ΅> end if have 'ΡΠ±Π»ΠΎΠΊΠΎ' then p 'Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ±Π»ΠΎΠΊΠΎ!' else p 'Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΡΠ±Π»ΠΎΠΊΠ°!' end if <Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅> then <Π΄Π΅ΠΉΡΡΠ²ΠΈΡ> elseif <Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 2> then <Π΄Π΅ΠΉΡΡΠ²ΠΈΡ 2> else <ΠΈΠ½Π°ΡΠ΅> end -- ΠΈ Ρ.Π΄. if have 'ΡΠ±Π»ΠΎΠΊΠΎ' then p 'Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠ±Π»ΠΎΠΊΠΎ!' elseif have 'Π²ΠΈΠ»ΠΊΠ°' then p 'Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΡΠ±Π»ΠΎΠΊΠ°, Π½ΠΎ Π΅ΡΡΡ Π²ΠΈΠ»ΠΊΠ°!' else p 'Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π½ΠΈ ΡΠ±Π»ΠΎΠΊΠ°, Π½ΠΈ Π²ΠΈΠ»ΠΊΠΈ!' end
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ `if ` ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ "ΠΈ" (`and `), "ΠΈΠ»ΠΈ" (`or `), "ΠΎΡΡΠΈΡΠ°Π½ΠΈΠ΅" (`not `) ΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ `( ` `) ` Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ². ΠΠ°ΠΏΠΈΡΡ Π²ΠΈΠ΄Π° `if <ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ> then ` ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΠ°Π²Π½Π° `false `. Π Π°Π²Π΅Π½ΡΡΠ²ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ `== `, Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ -- `~= `.
if not have 'ΡΠ±Π»ΠΎΠΊΠΎ' and not have 'Π²ΠΈΠ»ΠΊΠ°' then p 'Π£ ΠΌΠ΅Π½Ρ Π½Π΅Ρ Π½ΠΈ ΡΠ±Π»ΠΎΠΊΠ°, Π½ΠΈ Π²ΠΈΠ»ΠΊΠΈ!' end ... if w ~= apple then p 'ΠΡΠΎ Π½Π΅ ΡΠ±Π»ΠΎΠΊΠΎ.'; end ... if time() == 10 then p '10 ΠΉ Ρ ΠΎΠ΄ Π½Π°ΡΡΠ°Π»!' end
_*ΠΠ°ΠΆΠ½ΠΎ!*_
Π ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ Π±ΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΠΈ, INSTEAD Π΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
ΠΠ°ΠΏΠΈΡΡ `s.seen ` ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `seen ` ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ `s ` (ΡΠΎ Π΅ΡΡΡ `ΡΠ±Π»ΠΎΠΊΠΎ `). ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΠΌΡ Π½Π°Π·Π²Π°Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `s ` (ΠΎΡ self), Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -- ΡΡΠΎ ΡΠ°ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π·Π°ΡΠ°Π½Π΅Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΡΡΡΠΏΠΈΠ»ΠΈ Ρ `seen `. ΠΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ.
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; seen = false; eaten = false; color = 'ΠΊΡΠ°ΡΠ½ΡΠΉ'; weight = 10; ... };
ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΏΡΠΈ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ³ΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΠΏΠ°Π»Π° Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; { t = 1; -- ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ x = false; -- ΠΈ ΡΡΠ° ΡΠΎΠΆΠ΅ } };
ΠΠ±ΡΡΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊ:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; { text = { "ΡΠ°Π·", "Π΄Π²Π°", "ΡΡΠΈ" }; -- Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ } ... };
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π· `s ` -- Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ - ΡΡΡΠ»ΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
apple = obj { color = 'ΠΊΡΠ°ΡΠ½ΡΠΉ'; } ... -- Π³Π΄Π΅-ΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ apple.color = 'Π·Π΅Π»Π΅Π½ΡΠΉ'
ΠΠ»ΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; color = 'ΠΊΡΠ°ΡΠ½ΡΠΉ'; } ... -- Π³Π΄Π΅-ΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ _'ΡΠ±Π»ΠΎΠΊΠΎ'.color = 'Π·Π΅Π»Π΅Π½ΡΠΉ'
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅-ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° Π»Π΅ΡΡ (Π±Π΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ), Ρ ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΡΠΎΠΌ Π½Π΅Ρ ΡΠΌΡΡΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
apple 'xxx' (10) -- ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ xxx Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° apple ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ (_'ΡΠ±Π»ΠΎΠΊΠΎ') 'xxx' (10) -- ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
ΠΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° `local `:
act = function(s) local w = _'Π»Π°ΠΌΠΏΠΎΡΠΊΠ°' w.light = true p [[Π― Π½Π°ΠΆΠ°Π» Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π»Π°ΠΌΠΏΠΎΡΠΊΠ° Π·Π°Π³ΠΎΡΠ΅Π»Π°ΡΡ.]] end
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ w ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `act `. ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΡΠ»ΠΊΡ-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ `w `, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ `Π»Π°ΠΌΠΏΠΎΡΠΊΠ° `, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ `light ` Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ:
_'Π»Π°ΠΌΠΏΠΎΡΠΊΠ°'.light = true
ΠΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ»-ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ Π²Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΎΠ³Π΄Π° Π΄Π°Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²ΠΈΠ΄ΠΈΠΌΠ° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ lua ΡΠ°ΠΉΠ»Π° ΠΈ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ :
obj { nam = 'ΠΊΠΎΡΠ΅Π½ΠΎΠΊ'; state = 1; act = function(s) s.state = s.state + 1 if s.state > 3 then s.state = 1 end p [[ΠΡΡΡΡ!]] end; dsc = function(s) local dsc = { "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΌΡΡΠ»ΡΡΠ΅Ρ.", "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΈΠ³ΡΠ°Π΅Ρ.", "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΎΠ±Π»ΠΈΠ·ΡΠ²Π°Π΅ΡΡΡ.", }; p(dsc[s.state]) end; end
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π² ΡΡΠ½ΠΊΡΠΈΠΈ `dsc ` ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² `dsc `. `local ` ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΈ `dsc `. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΡΠ°ΠΊ:
dsc = function(s) if s.state == 1 then p "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΌΡΡΠ»ΡΡΠ΅Ρ." elseif s.state == 2 then p "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΈΠ³ΡΠ°Π΅Ρ." else p "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΎΠ±Π»ΠΈΠ·ΡΠ²Π°Π΅ΡΡΡ.", end end
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ:
global { -- ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ global_var = 1; -- ΡΠΈΡΠ»ΠΎ some_number = 1.2; -- ΡΠΈΡΠ»ΠΎ some_string = 'ΡΡΡΠΎΠΊΠ°'; know_truth = false; -- Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ array = {1, 2, 3, 4}; -- ΠΌΠ°ΡΡΠΈΠ² }
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΄ΠΎΠ±Π½Π°Ρ Π΄Π»Ρ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ:
global 'global_var' (1)
ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ»-ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
ΠΡΠΎΠΌΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ:
const { A = 1; B = 2; } const 'Aflag' (false)
ΠΠ²ΠΈΠΆΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ. ΠΠΎΠ½ΡΡΠ°Π½ΡΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ»-ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅.
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ `local ` (ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠ° Π²ΠΎ Π²ΡΠ΅Ρ Π²Π°ΡΠΈΡ lua ΡΠ°ΠΉΠ»Π°Ρ ΠΈΠ³ΡΡ), Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ:
declare { A = 1; B = 2; } declare 'Z' (false)
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ. ΠΠ΄Π½ΠΎ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
declare 'test' (function() p "Hello world!" end) global 'f' (test)
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ `test ` Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ. Π’ΠΎ-Π΅ΡΡΡ, Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ!
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
declare 'dprint' (dprint)
Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄Π΅Π»Π°Ρ ΡΠ°ΠΊΠΈΠ΅ Π½Π΅Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ -- Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ.
ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ ΡΡΡΠ»ΠΊΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈΠ· ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
function mprint(n, ...) local a = {...}; -- Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ p(a[n]) -- Π²ΡΠ²Π΅Π΄Π΅ΠΌ n-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° end ... dsc = function(s) mprint(s.state, { "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΌΡΡΠ»ΡΡΠ΅Ρ.", "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΈΠ³ΡΠ°Π΅Ρ.", "{ΠΠΎΡΠ΅Π½ΠΎΠΊ} ΠΎΠ±Π»ΠΈΠ·ΡΠ²Π°Π΅ΡΡΡ." }); end;
ΠΠΎΠΊΠ° Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π°ΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ.
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ (ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ ΡΠ΄Π΅Π»Π°Π» Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ `false `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
act = function(s) if broken_leg then return false end p [[Π― ΡΠ΄Π°ΡΠΈΠ» Π½ΠΎΠ³ΠΎΠΉ ΠΏΠΎ ΠΌΡΡΡ.]] end
ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `game.act `. ΠΠ±ΡΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
game.act = 'ΠΠΌ... ΠΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ...';
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π°Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `act ` ΠΈΠ»ΠΈ Π²Π΅ΡΠ½ΡΠ»ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ `false ` -- ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π΅Ρ ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `game `.
ΠΠ±ΡΡΠ½ΠΎ, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ `false ` ΠΈΠ· `act `, Π½ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»ΡΡΠ΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΡΠΎΠΌΠ΅ `game.act ` ΠΈ `act ` -- Π°ΡΡΠΈΠ±ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `onact ` Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° game, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `act `.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `act ` Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ onact~ Ρ `game `. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²Π΅ΡΠ½Π΅Ρ `false `, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ `act ` ΠΎΠ±ΡΡΠ²Π°Π΅ΡΡΡ. `onact ` ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ³ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
-- Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ onact ΠΊΠΎΠΌΠ½Π°Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ -- Π΄Π»Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ game.onact = function(s, ...) local r, v = std.call(here(), 'onact', ...) if v == false then -- Π΅ΡΠ»ΠΈ false, ΠΎΠ±ΡΡΠ±Π°Π΅ΠΌ ΡΠ΅ΠΏΠΎΡΠΊΡ return r, v end return end room { nam = 'shop'; disp = 'ΠΠ°Π³Π°Π·ΠΈΠ½'; onact = function(s, w) p [[Π ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Π½Π΅Π»ΡΠ·Ρ Π²ΠΎΡΠΎΠ²Π°ΡΡ!]] p ([[ΠΠ°ΠΆΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ-Π»ΠΈΡΡ ]], w, '.') return false end; obj = { 'ΠΌΠΎΡΠΎΠΆΠ΅Π½Π½ΠΎΠ΅', 'Ρ Π»Π΅Π±' }; }
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ "ΠΏΠΎΡΡΠΎΠ³Π°ΡΡ" Π»ΡΠ±ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΠ΅, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ `act ` Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²: `tak `, `inv `, `use `, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ , ΠΎ ΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»Π΅Π΅.
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ - ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΡΡΠ½ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°. 'ΠΠ±ΡΠ΅ΠΊΡ:ΠΌΠ΅ΡΠΎΠ΄(ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ)'. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
apple:act() -- Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ 'act' Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° 'apple' (Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ!). _'ΡΠ±Π»ΠΎΠΊΠΎ':act() -- ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π° Π½Π΅ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΡΡΠ»ΠΊΠ΅
Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ `std.call() ` Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ΅ΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ°ΠΌ INSTEAD. (ΠΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ).
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ°ΡΡ -- ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `tak `.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; dsc = 'ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.'; inv = function(s) p 'Π― ΡΡΠ΅Π» ΡΠ±Π»ΠΎΠΊΠΎ.' remove(s); -- ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ±Π»ΠΎΠΊΠΎ ΠΈΠ· ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ end; tak = 'ΠΡ Π²Π·ΡΠ»ΠΈ ΡΠ±Π»ΠΎΠΊΠΎ.'; };
ΠΡΠΈ ΡΡΠΎΠΌ, ΠΏΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ "ΡΠ±Π»ΠΎΠΊΠΎ" (ΡΠ΅Π»ΡΠΎΠΊ ΠΌΡΡΠΈ Π½Π° ΡΡΡΠ»ΠΊΡ Π² ΡΡΠ΅Π½Π΅) -- ΡΠ±Π»ΠΎΠΊΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ±ΡΠ°Π½ΠΎ ΠΈΠ· ΡΡΠ΅Π½Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ. ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π° ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ (Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΡΠ΅Π»ΡΠΎΠΊ ΠΌΡΡΠΈ Π½Π° Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°) -- Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `inv `.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΈΠ³ΡΠΎΠΊΠΎΠΌ Π½Π° ΡΠ±Π»ΠΎΠΊΠΎ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ΅ -- ΡΠ±Π»ΠΎΠΊΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅Π΄Π΅Π½ΠΎ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π²Π·ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² `act `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; dsc = 'ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.'; inv = function(s) p 'Π― ΡΡΠ΅Π» ΡΠ±Π»ΠΎΠΊΠΎ.' remove(s); -- ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ±Π»ΠΎΠΊΠΎ ΠΈΠ· ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ end; act = function(s) take(s) p 'ΠΡ Π²Π·ΡΠ»ΠΈ ΡΠ±Π»ΠΎΠΊΠΎ.'; end };
ΠΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `inv `, Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ `game.inv `.
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `tak ` Π²Π΅ΡΠ½Π΅Ρ `false `, ΡΠΎ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²Π·ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; dsc = 'ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.'; tak = function(s) p "ΠΠ½ΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΠ²ΠΎΠ΅!" return false end; };
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π² INSTEAD Π²ΡΠ³Π»ΡΠ΄ΡΡ ΠΊΠ°ΠΊ ΡΡΡΠ»ΠΊΠΈ Π½Π°Π΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π½Ρ. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π½Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ ΡΡΠ΅Π½Ρ -- ΡΠΏΠΈΡΠΎΠΊ `way `. Π ΡΠΏΠΈΡΠΊΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² Π²ΠΈΠ΄Π΅ ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠ½Π°Ρ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ -ΡΡΡΠ»ΠΎΠΊ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΏΠΈΡΠΊΡ `obj `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'room2'; disp = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; way = { 'main' }; }; room { nam = 'main'; disp = 'ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = 'ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.'; way = { 'room2' }; };
ΠΡΠΈ ΡΡΠΎΠΌ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π½Π°ΠΌΠΈ `main ` ΠΈ `room2 `. ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, `disp ` ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π½Π° Π»Π΅ΡΡ. ΠΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `title `, Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ΅Π½Ρ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°:
room { nam = 'room2'; disp = 'Π Π·Π°Π»'; title = 'Π Π·Π°Π»Π΅'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; way = { 'main' }; }; room { nam = 'main'; title = 'Π Π³Π»Π°Π²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅'; disp = 'Π Π³Π»Π°Π²Π½ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ'; dsc = 'ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.'; way = { 'room2' }; };
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ΅Π½Π°ΠΌΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `onexit ` ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ΅Π½Ρ ΠΈ `onenter ` Π² ΡΠΎΠΉ ΡΡΠ΅Π½Π΅, ΠΊΡΠ΄Π° ΠΈΠ΄Π΅Ρ ΠΈΠ³ΡΠΎΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
room { onenter = 'ΠΡ Π·Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ Π² Π·Π°Π».'; nam = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; way = { 'main' }; onexit = 'ΠΡ Π²ΡΡ ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠ· Π·Π°Π»Π°.'; };
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, `onexit ` ΠΈ `onenter ` ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. Π’ΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠΎ (ΠΊΠ°ΠΊ Π²ΡΠ΅Π³Π΄Π°) ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ - ΠΊΠΎΠΌΠ½Π°ΡΠ°, Π° Π²ΡΠΎΡΠΎΠΉ -- ΡΡΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ° ΠΊΡΠ΄Π° ΠΈΠ³ΡΠΎΠΊ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ΄ΡΠΈ (Π΄Π»Ρ `onexit `) ΠΈΠ»ΠΈ ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠΉΡΠΈ (Π΄Π»Ρ `onenter `). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
room { onenter = function(s, f) if f^'main' then p 'ΠΡ ΠΈΠ΄Π΅ΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°ΡΡ main.'; end end; nam = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; way = { 'main' }; onexit = function(s, t) if t^'main' then p 'Π― Π½Π΅ Ρ ΠΎΡΡ Π½Π°Π·Π°Π΄!' return false end end; };
ΠΠ°ΠΏΠΈΡΡ Π²ΠΈΠ΄Π°:
if f^'main' then
ΠΡΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π·Π°ΠΏΠΈΡΡΠΌ:
if f == _'main' then
ΠΠ»ΠΈ:
if f.nam == 'main' then
ΠΠ»ΠΈ:
if std.nameof(f) == 'main' then
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ `onexit `, ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π±ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ°. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ `onact `, ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, Π²Π΅ΡΠ½ΡΠ² `false ` ΠΈΠ· `onexit~/~onenter `.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ°ΡΡΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π°ΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ:
return "Π― Π½Π΅ Ρ ΠΎΡΡ Π½Π°Π·Π°Π΄", false
ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ `p~/~pn~/~pr `, ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ `return `, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅.
_*ΠΠ°ΠΆΠ½ΠΎ!*_
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `onenter ` ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅ΠΊΡΡΡΡ ΡΡΠ΅Π½Ρ (`here() `) **Π΅ΡΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½**!!! Π INSTEAD Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ `exit ` (ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°ΡΡ) ΠΈ `enter ` (Π·Π°Ρ ΠΎΠ΄ Π² ΠΊΠΎΠΌΠ½Π°ΡΡ), ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠΆΠ΅ _ΠΏΠΎΡΠ»Π΅_ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π». ΠΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄.
ΠΠ½ΠΎΠ³Π΄Π° Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΎΡΠ»ΠΈΡΠ°Π»ΠΎΡΡ ΠΎΡ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Π΅Π΄Π΅Ρ ΡΡΠΎΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ `path `.
room { nam = 'room2'; title = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; way = { path { 'Π Π³Π»Π°Π²Π½ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ', 'main'} }; }; room { nam = 'main'; title = 'ΠΠ»Π°Π²Π½Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°'; dsc = 'ΠΡ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΠ΅.'; way = { path {'Π Π·Π°Π»', 'room2'} }; };
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, `path ` ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ `disp `, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π²Π΅Π½ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `onenter `, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ³ΡΠΎΠΊΠ° Π² ΠΊΠΎΠΌΠ½Π°ΡΡ Π·Π°Π΄Π°Π½Π½ΡΡ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ `path `.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
way = { path {'#Π²Π·Π°Π»', 'Π Π·Π°Π»', 'room2'} };
Π’ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ°Π½Π΅Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ (ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎΠΌ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅) ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ ΡΠΎΡΠΌΠ° Π·Π°ΠΏΠΈΡΠΈ Ρ ΡΠ²Π½ΡΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° `nam `:
way = { path { nam = '#Π²Π·Π°Π»', 'Π Π·Π°Π»', 'room2'} };
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ» Ρ ΠΎΡΡ Π±Ρ ΡΠ°Π·, ΠΈ Π²Ρ ΡΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ Π·Π° ΠΊΠΎΠΌΠ½Π°ΡΠ°:
way = { path {'#Π²Π΄Π²Π΅ΡΡ', 'Π Π΄Π²Π΅ΡΡ', after = 'Π Π³ΠΎΡΡΠΈΠ½ΡΡ', 'room2'} };
ΠΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΡΠΎΠΌΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, `path ` ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΠ½ΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ ΡΠ°ΡΡΠΎ. ΠΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π²ΠΈΠ΄Π΅Π½ Π΄Π°ΠΆΠ΅ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΡΡΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄ Π΄ΠΎΠΌΠΎΠΌ Ρ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π²Π΅ΡΠΈ. ΠΠΎΠΉΡΠΈ Π² Π΄ΠΎΠΌ Π½Π΅Π»ΡΠ·Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π²Π΅ΡΡ Π·Π°ΠΊΡΡΡΠ°.
ΠΠ΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° ΠΏΡΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ "Π΄Π²Π΅ΡΡ". ΠΡΠΎΡΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ `onenter ` ΡΡΠ΅Π½Ρ Π²Π½ΡΡΡΠΈ Π΄ΠΎΠΌΠ° ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π° Π΅ΡΡΡ Π»ΠΈ Ρ Π³Π΅ΡΠΎΡ ΠΊΠ»ΡΡ? Π Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡΠ° Π½Π΅Ρ, Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π²Π΅ΡΡ Π·Π°ΠΊΡΡΡΠ° ΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄. ΠΡΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ΄. ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΡΠ΅Π½Ρ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π΅ Π² ΠΊΠΎΠΌΠ½Π°ΡΡ, Π½ΠΎ Π² `act ` ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΎΡΠΌΠΎΡΡ Π΄Π²Π΅ΡΠΈ, ΠΈΠ»ΠΈ Π΄Π°ΠΉΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ³ΡΠΎΠΊΡ ΠΎΡΠΊΡΡΡΡ Π΅Π΅ ΠΊΠ»ΡΡΠΎΠΌ (ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ - ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅), Π½ΠΎ ΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π΄Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΠΎΠΊΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΡΡΡΠΎΠΊΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ².
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½ ΠΈ ΠΎΠ½ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΎΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠ°ΡΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°ΠΌ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΉ Π»Π°Π·.
obj { nam = 'ΡΠ°ΡΡ'; dsc = [[Π’ΡΡ Π΅ΡΡΡ ΡΡΠ°ΡΠΈΠ½Π½ΡΠ΅ {ΡΠ°ΡΡ}.]]; act = function(s) enable '#ΡΠ°ΡΡ' p [[ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΡΠ°ΡΠ°Ρ Π΅ΡΡΡ ΠΏΠΎΡΠ°ΠΉΠ½ΠΎΠΉ Ρ ΠΎΠ΄!]]; end; } room { nam = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; obj = { 'ΡΠ°ΡΡ' }; way = { path { '#ΡΠ°ΡΡ', 'Π ΡΠ°ΡΡ', 'inclock' }:disable() }; };
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ _ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ_ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, Π·Π° ΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° `disable ` Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `path `. ΠΠ΅ΡΠΎΠ΄ `disable ` Π΅ΡΡΡ Ρ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ½Π°Ρ), ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΈΠ³ΡΠΎΠΊΡ. ΠΠ°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ _Π²ΠΊΠ»ΡΡΠΈΡΡ_ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `enable() `;
ΠΠ°Π»Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ Π½Π° ΡΡΡΠ»ΠΊΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ°ΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `act `, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `enable() ` Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π²ΠΈΠ΄ΠΈΠΌΡΠΌ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π΅ Π² Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, Π° 'Π·Π°ΠΊΡΡΡΠΈΠΈ' ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
obj { nam = 'ΡΠ°ΡΡ'; dsc = [[Π’ΡΡ Π΅ΡΡΡ ΡΡΠ°ΡΠΈΠ½Π½ΡΠ΅ {ΡΠ°ΡΡ}.]]; act = function(s) open '#ΡΠ°ΡΡ' p [[ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΡΠ°ΡΠ°Ρ Π΅ΡΡΡ ΠΏΠΎΡΠ°ΠΉΠ½ΠΎΠΉ Ρ ΠΎΠ΄!]]; end; } room { nam = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; obj = { 'ΡΠ°ΡΡ' }; way = { path { '#ΡΠ°ΡΡ', 'Π ΡΠ°ΡΡ', 'inclock' }:close() }; };
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°? ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π΄Π»Ρ ΠΈΠ³ΡΠΎΠΊΠ°. ΠΡΠ»ΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΠΎ ΠΈ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½ΠΎ Π½Π΅ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ½Π°Ρ, ΠΈ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ -- ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π½ΠΈΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ:
room { nam = 'inclock'; dsc = [[Π― Π² ΡΠ°ΡΠ°Ρ .]]; }:close() obj { nam = 'ΡΠ°ΡΡ'; dsc = [[Π’ΡΡ Π΅ΡΡΡ ΡΡΠ°ΡΠΈΠ½Π½ΡΠ΅ {ΡΠ°ΡΡ}.]]; act = function(s) open 'inclock' p [[ΠΡ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΡΠ°ΡΠ°Ρ Π΅ΡΡΡ ΠΏΠΎΡΠ°ΠΉΠ½ΠΎΠΉ Ρ ΠΎΠ΄!]]; end; } room { nam = 'ΠΠ°Π»'; dsc = 'ΠΡ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ Π·Π°Π»Π΅.'; obj = { 'ΡΠ°ΡΡ' }; way = { path { 'Π ΡΠ°ΡΡ', 'inclock' } }; };
ΠΠ΄Π΅ΡΡ ΠΌΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, Π° ΠΊΠΎΠΌΠ½Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Π΅Π΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄. `path ` Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π±Ρ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΠ° Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π²Π΅Π΄Π΅Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΈΠ»ΠΈ Π·Π°ΠΊΡΡΡΠ°.
ΠΠ³ΡΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΡΠ΅Π»ΠΊΠ°Π΅Ρ ΠΌΡΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ, Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΡΠ΅Π½Ρ. ΠΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `used ` Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ, ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `use ` ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
obj { nam = 'Π½ΠΎΠΆ'; dsc = 'ΠΠ° ΡΡΠΎΠ»Π΅ Π»Π΅ΠΆΠΈΡ {Π½ΠΎΠΆ}'; inv = 'ΠΡΡΡΡΠΉ!'; tak = 'Π― Π²Π·ΡΠ» Π½ΠΎΠΆ!'; use = 'ΠΡ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠΆ.'; }; obj { nam = 'ΡΡΠΎΠ»'; dsc = 'Π ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΡΡΠΎΠΈΡ {ΡΡΠΎΠ»}.'; act = 'ΠΠΌ... ΠΡΠΎΡΡΠΎ ΡΡΠΎΠ»...'; obj = { 'Π½ΠΎΠΆ' }; used = function(s) p 'ΠΡ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠΎ ΡΡΠΎΠ»ΠΎΠΌ...'; return false end; };
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `used ` Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ `false `. ΠΠ°ΡΠ΅ΠΌ? ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, Π²ΠΎΠ·Π²ΡΠ°Ρ `false ` ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Π΄Π²ΠΈΠΆΠΊΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠ½ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π». ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π½Π΅ Π²Π΅ΡΠ½ΡΠ»ΠΈ Π±Ρ `false `, ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `use ` ΠΎΠ±ΡΠ΅ΠΊΡΠ° `Π½ΠΎΠΆ ` ΠΏΡΠΎΡΡΠΎ Π±Ρ Π½Π΅ Π΄ΠΎΡΠ»Π°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ»ΠΈ `use ` ΠΈΠ»ΠΈ `used `, Π²ΡΡΠ΄ Π»ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ΄ΠΎΠ±Π½ΠΎ Π²Π΅ΡΠ½ΡΡΡ `false `:
use = function(s, w) if w^'ΡΠ±Π»ΠΎΠΊΠΎ' then p [[Π― ΠΏΠΎΡΠΈΡΡΠΈΠ» ΡΠ±Π»ΠΎΠΊΠΎ.]] w.cut = true return end return false; end
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ `use ` Ρ ΡΠ±Π»ΠΎΠΊΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΠΈΡΡΠ°ΡΠΈΡ -- Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΡΠ±Π»ΠΎΠΊΠΎ. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ `false ` ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: `game.use `.
ΠΠΎ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠΏΠΈΡΠ΅ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½ΠΎΠΆΠ°:
use = function(s, w) if w^'ΡΠ±Π»ΠΎΠΊΠΎ' then p [[Π― ΠΏΠΎΡΠΈΡΡΠΈΠ» ΡΠ±Π»ΠΎΠΊΠΎ.]] w.cut = true return end p [[ΠΠ΅ ΡΡΠΎΠΈΡ ΡΠ°Π·ΠΌΠ°Ρ ΠΈΠ²Π°ΡΡ Π½ΠΎΠΆΠΎΠΌ!]] end
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Ρ use ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅ΠΌ. Π£ ΠΌΠ΅ΡΠΎΠ΄Π° `used `, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -- ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° Π½Π°Ρ:
obj { nam = 'ΠΌΡΡΠΎΡΠΊΠ°'; dsc = [[Π ΡΠ³Π»Ρ ΡΡΠΎΠΈΡ {ΠΌΡΡΠΎΡΠΊΠ°}.]]; used = function(s, w) if w^'ΡΠ±Π»ΠΎΠΊΠΎ' then p [[Π― Π²ΡΠ±ΡΠΎΡΠΈΠ» ΡΠ±Π»ΠΎΠΊΠΎ Π² ΠΌΡΡΠΎΡΠΊΡ.]] remove(w) return end return false; end }
ΠΠ°ΠΊ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ use Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `onuse ` Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `game `, ΠΏΠΎΡΠΎΠΌ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `ΠΈΠ³ΡΠΎΠΊ `, Π° ΠΏΠΎΡΠΎΠΌ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ `use `, Π²Π΅ΡΠ½ΡΠ² ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² `onuse ` -- `false `.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `use ` ΠΈΠ»ΠΈ `used ` (ΠΈΠ»ΠΈ ΠΎΠ±Π°) ΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ Π»ΠΈΡΠ½ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΌΠ΅ΡΠΎΠ΄ `used ` Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π½ΡΡΠ΅ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ.
ΠΠ³ΡΠΎΠΊ Π² ΠΌΠΈΡΠ΅ INSTEAD ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° `player `. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ³ΡΠΎΠΊΠΎΠ², Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ³ΡΠΎΠΊ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΌΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° -- `player `. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ-ΡΡΡΠ»ΠΊΠ° `pl `, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΠ±ΡΡΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π°ΡΡΠΈΠ±ΡΡ `obj ` Ρ ΠΈΠ³ΡΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ. ΠΠ±ΡΡΠ½ΠΎ, Π½Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° `player `, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
game.player = player { nam = "ΠΠ°ΡΠΈΠ»ΠΈΠΉ"; room = 'ΠΊΡΡ Π½Ρ'; -- ΡΡΠ°ΡΡΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ° ΠΈΠ³ΡΠΎΠΊΠ° power = 100; obj = { 'ΡΠ±Π»ΠΎΠΊΠΎ' }; -- Π·Π°ΠΎΠ΄Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ±Π»ΠΎΠΊΠΎ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ };
Π INSTEAD Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ `change_pl() `. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° `player ` (ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΈΠΌΡ). Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ°, ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² ΠΊΠΎΠΌΠ½Π°ΡΡ, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ³ΡΠΎΠΊ.
Π€ΡΠ½ΠΊΡΠΈΡ `me() ` Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΈΠ³Ρ `me() ` == `pl `.
ΠΠ³ΡΠΎΠ²ΠΎΠΉ ΠΌΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° `world `. ΠΠΌΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `game `. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΡΠ»ΠΊΠ°-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ `game `.
ΠΠ±ΡΡΠ½ΠΎ Π²Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ game.codepage ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ³ΡΡ, ΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½Π° "UTF-8". Π― Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π°, Π²ΡΠ±ΠΎΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ `game.player ` -- ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΈΠ³ΡΠΎΠΊΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡ `game ` ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: `act `, `inv `, `use `, `tak `, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ·Π²Π°Π½Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ (ΠΈΠ»ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π²Π΅ΡΠ½ΡΠ»ΠΈ `false `). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΠ³ΡΡ:
game.act = 'ΠΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.'; game.inv = 'ΠΠΌ.. Π‘ΡΡΠ°Π½Π½Π°Ρ ΡΡΡΠΊΠ°..'; game.use = 'ΠΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ...'; game.tak = 'ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΌΠ½Π΅ ΡΡΠΎ...';
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π’Π°ΠΊΠΆΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡ `game ` ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ: `onact `, `ontak `, `onuse `, `oninv `, `onwalk ` -- ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° `false `.
ΠΡΠ΅, Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `game ` ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ: `afteract `, `afterinv `, `afteruse `, `afterwalk ` -- ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΡΠΈΠ±ΡΡΡ-ΡΠΏΠΈΡΠΊΠΈ (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ `way ` ΠΈΠ»ΠΈ `obj `) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΡΠΈΠ±ΡΡΡ-ΡΠΏΠΈΡΠΊΠΈ ΠΏΡΠΈΠ·Π²Π°Π½Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π² ΡΠ΅Π±Π΅ ΡΠΏΠΈΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π½ΡΠΆΠ΄, ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'Ρ ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ'; frost = std.list { 'ΠΌΠΎΡΠΎΠΆΠ΅Π½Π½ΠΎΠ΅' }; }
Π₯ΠΎΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° 'ΡΠΏΠΈΡΠΎΠΊ'. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ², Ρ ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π±ΡΠ΄ΡΡ `way ` ΠΈ `obj `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ways():disable() -- ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΡΠΏΠΈΡΠΊΠΈ:
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠΏΠΈΡΠΊΠ°ΠΌ ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ:
pl.obj:add 'Π½ΠΎΠΆ'
ΠΠ±ΡΠ΅ΠΊΡΡ Π² ΡΠΏΠΈΡΠΊΠ°Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ Π°ΡΡΠΈΠ±ΡΡ `pri `, ΡΠΎ ΠΎΠ½ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ _ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°_ Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠ»ΠΈ `pri ` Π½Π΅ Π·Π°Π΄Π°Π½, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ `0 `. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΡΠΏΠΈΡΠΊΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ Π΅ΠΌΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ `pri < 0 `. ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΏΠΈΡΠΊΠ° -- `> 0 `.
obj { pri = -100; nam = 'ΡΡΡΠΊΠ°'; disp = 'ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ'; inv = [[ΠΡΡΠΎΡΠΎΠΆΠ½Π΅ΠΉ Ρ ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΠΌ.]]; }
Π INSTEAD ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ .
ΠΡΠ°ΠΊ, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
-`'where(ΡΡΠΎ) ` Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -- ΡΠ°Π±Π»ΠΈΡΡ Lua, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ;
ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ , Π»ΠΈΠ±ΠΎ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `seen ` Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΡ:
onexit = function(s) if seen 'ΠΌΠΎΠ½ΡΡΡ' then -- Π΅ΡΠ»ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ 1 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, --- ΡΠΊΠΎΠ±ΠΊΠΈ ΠΏΠΈΡΠ°ΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ p 'ΠΠΎΠ½ΡΡΡ Π·Π°Π³ΠΎΡΠ°ΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄!' return false end end
Π ΡΠ°ΠΊΠΆΠ΅, Π΄Π»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΡΠ΅Π½Π΅:
use = function(s, w) if w^'ΠΎΠΊΠ½ΠΎ' then local ww = lookup 'ΡΠΎΠ±Π°ΠΊΠ°' if not ww then p [[Π Π³Π΄Π΅ ΠΌΠΎΡ ΡΠΎΠ±Π°ΠΊΠ°?]] return end place(ww, 'ΡΠ»ΠΈΡΠ°') p 'Π― ΡΠ°Π·Π±ΠΈΠ» ΠΎΠΊΠ½ΠΎ! ΠΠΎΡ ΡΠΎΠ±Π°ΠΊΠ° Π²ΡΠΏΡΡΠ³Π½ΡΠ»Π° Π½Π° ΡΠ»ΠΈΡΡ.' return end return false end
ΠΡΠΈΠΌΠ΅Ρ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `have `:
... act = function(s) if have 'Π½ΠΎΠΆ' then p 'ΠΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΆΠ΅ Π΅ΡΡΡ Π½ΠΎΠΆ!'; return end take 'Π½ΠΎΠΆ' end ...
ΠΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ, Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ `lookup ` ΠΈ `_() `? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ `lookup() ` ΠΈΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ -- ΠΏΡΠΎΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²Π΅ΡΠ½Π΅Ρ. Π Π·Π°ΠΏΠΈΡΡ `_() ` ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²Ρ ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π·Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, `_() ` ΡΡΠΎ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ _ΠΏΠΎΠΈΡΠΊΠΎΠΌ_. Π’ΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Π΄Π°Π½ ΡΠ΅Π³, Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ ΠΏΠΎΠΈΡΠΊ ΡΡΠ΅Π΄ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ `_() ` Π½Π° Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅Π³ -- Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ!
Π INSTEAD Π² ΠΌΠΎΠ΄ΡΠ»Π΅ `stdlib `, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΡΡ Π°Π²ΡΠΎΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠΈΡΠΎΠΌ ΠΈΠ³ΡΡ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.
ΠΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ `w ` ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΠ°, Π·Π°Π΄Π°Π½Π½Π°Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠ΅Π³ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΡΡΡΠ»ΠΊΠ΅. `[ wh ] ` - ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ.
include "lib" -- Π²ΠΊΠ»ΡΡΠΈΡ ΡΠ°ΠΉΠ» lib.lua ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ ΠΈΠ³ΡΠΎΠΉ;
loadmod "module" -- Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ module.lua ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°;
local text = 'hello'; pf("Π‘ΡΡΠΎΠΊΠ°: %q Π§ΠΈΡΠ»ΠΎ: %d\n", text, 10);
act = pfn(walk, 'Π²Π°Π½Π½Π°Ρ') "Π― ΡΠ΅ΡΠΈΠ» Π·Π°ΠΉΡΠΈ Π² Π²Π°Π½Π½ΡΡ."; act = pfn(enable, '#ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄') "Π― Π·Π°ΠΌΠ΅ΡΠΈΠ» ΠΎΡΠ²Π΅ΡΡΡΠΈΠ΅ Π² ΡΡΠ΅Π½Π΅!";
`- obj {} ` - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
gamefile("part2.lua", true) -- ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ (ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅), ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡ part2.lua ΠΈ Π½Π°ΡΠ°ΡΡ Ρ main ΠΊΠΎΠΌΠ½Π°ΡΡ.
if not visited() then p [[Π― ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·.]] end
walk('ΠΊΠΎΠ½Π΅Ρ', false, false) -- Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ onexit/onenter/exit/enter);
for_all(enable, 'ΠΎΠΊΠ½ΠΎ', 'Π΄Π²Π΅ΡΡ');
local list = {} local w = where('ΡΠ±Π»ΠΎΠΊΠΎ', list) -- Π΅ΡΠ»ΠΈ ΡΠ±Π»ΠΎΠΊΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΡΠΎ -- list Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΡΠΈΡ ΠΌΠ΅ΡΡ. -- ΠΡΠ»ΠΈ Π²Π°ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ: where 'ΡΠ±Π»ΠΎΠΊΠΎ' -- Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ
if actions(w, 'tak') > 0 then -- ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ w Π±ΡΠ» Π²Π·ΡΡ Ρ ΠΎΡΡ Π±Ρ 1 ΡΠ°Π·; if actions(w) == 1 then -- act Ρ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° w Π±ΡΠ» Π²ΡΠ·Π²Π°Π½ 1 ΡΠ°Π·;
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΠΌΠ½Π°ΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½ΠΎ ΠΈ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡΡ 'remove(apple, inv())' ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ 'remove(apple, me())''; ΠΠΏΡΠΎΡΠ΅ΠΌ, remove(apple) ΡΠΎΠΆΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΡΠ΄Π°Π»ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΡΠ΅Ρ ΠΌΠ΅ΡΡ, Π³Π΄Π΅ ΠΎΠ½ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
act = function() pn "Π― ΠΈΠ΄Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ..." walk (nextroom); end obj { nam = 'ΠΌΠΎΡ ΠΌΠ°ΡΠΈΠ½Π°'; dsc = 'ΠΠ΅ΡΠ΅Π΄ Ρ ΠΈΠΆΠΈΠ½ΠΎΠΉ ΡΡΠΎΠΈΡ ΠΌΠΎΠΉ ΡΡΠ°ΡΠ΅Π½ΡΠΊΠΈΠΉ {ΠΏΠΈΠΊΠ°ΠΏ} Toyota.'; act = function(s) walk 'inmycar'; end };
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° `walk ` Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡΡ Π΄ΠΎ Π΅Π³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅ `walk ` Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ `return `, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ ΠΎΡΡ ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ `return `.
act = function() pn "Π― ΠΈΠ΄Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ..." walk (nextroom); return end
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ `walk ` Π²ΡΠ·ΠΎΠ²ΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ `onexit~/~onenter~/~exit~/~enter ` ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄, ΡΠΎ ΠΎΠ½ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ.
ΠΠΈΠ°Π»ΠΎΠ³ΠΈ -- ΡΡΠΎ ΡΡΠ΅Π½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° `dlg `, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ -- ΡΡΠ°Π·Ρ. ΠΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΈΠ³ΡΠΎΠΊ Π²ΠΈΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΡΠ°Π·, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΡΠ΅Π°ΠΊΡΠΈΡ ΠΈΠ³ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΆΠ΅ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΡΡΠ°Π·Ρ ΡΠΊΡΡΠ²Π°ΡΡΡΡ. ΠΡΠΈ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΠΈ Π²ΡΠ΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², Π΄ΠΈΠ°Π»ΠΎΠ³ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ Π½Π΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡΡ ΡΡΠ°Π·, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ ΡΠΈΠΏΠ° "ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ" ΠΈΠ»ΠΈ "Π‘ΠΏΡΠΎΡΠΈΡΡ Π΅ΡΠ΅ ΡΠ°Π·"). ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³, Π²ΡΠ΅ ΡΠΊΡΡΡΡΠ΅ ΡΡΠ°Π·Ρ ΡΠ½ΠΎΠ²Π° ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π΅ΡΠ»ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π°Π²ΡΠΎΡ ΠΈΠ³ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°Π» ΡΡΠΈΠ»ΠΈΡ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π° Π΄ΠΈΠ°Π»ΠΎΠ³Π°).
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ Π² ΠΈΠ³ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠ΅Π½Ρ:
obj { nam = 'ΠΏΠΎΠ²Π°Ρ'; dsc = 'Π― Π²ΠΈΠΆΡ {ΠΏΠΎΠ²Π°ΡΠ°}.'; act = function() walk 'povardlg' end, };
Π₯ΠΎΡΡ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `walkin `, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ `walkin ` Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ `onexit ` / `exit ` ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ, Π° ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, Π³Π΄Π΅ ΠΈ Π³Π»Π°Π²Π½ΡΠΉ Π³Π΅ΡΠΎΠΉ. Π’ΠΎ Π΅ΡΡΡ:
obj { nam = 'ΠΏΠΎΠ²Π°Ρ'; dsc = 'Π― Π²ΠΈΠΆΡ {ΠΏΠΎΠ²Π°ΡΠ°}.'; act = function() walkin 'povardlg' end, };
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ Ρ ΡΡΠ°Π· Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΡΠΈΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ:
std.phrase_prefix = '+';
Π ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ Π² Π²ΠΈΠ΄Π΅ `+ ` ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ°Π·ΠΎΠΉ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠ° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½ΠΎΠΌΠ΅Ρ ΡΡΠ°Π·Ρ. ΠΠ°Π΄Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ -- Π²Π΅ΡΠ½ΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ `std.phrase_prefix ` Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΅Π΅ Π½Π° Π»Π΅ΡΡ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π² `start() ` ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠ½ΡΡ!
_*ΠΠ°ΠΆΠ½ΠΎ!*_
Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ 'noinv' ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ 'noinv' Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ . ΠΠΈΠ°Π»ΠΎΠ³ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΡΠ°ΡΠΈΠ²Π΅ΠΉ ΠΈ Π²Ρ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΡ ΡΠ΅Π°ΠΊΡΠΈΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³Π° (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π°Π²ΡΠΎΡ Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require "noinv" ... dlg { nam = 'ΠΡ ΡΠ°Π½Π½ΠΈΠΊ'; -- Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ noinv = true; ... }
Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ _ΡΡΠ°Π·Π°_. Π€ΡΠ°Π·Ρ ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ-ΠΎΡΠ²Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ. Π€ΡΠ°Π·Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, Π²Π΅ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π·ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
dlg { nam = 'ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ'; title = [[Π Π°Π·Π³ΠΎΠ²ΠΎΡ Ρ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠΌ]]; enter = [[Π― ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ ΠΏΡΠΎΠ΄Π°Π²ΡΡ.]]; phr = { { 'Π£ Π²Π°Ρ Π΅ΡΡΡ Π±ΠΎΠ±Ρ?', '-- ΠΠ΅Ρ.'}, { 'Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠΊΠΎΠ»Π°Π΄?', '-- ΠΠ΅Ρ.'}, { 'Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ²Π°Ρ?', '-- ΠΠ°', { 'Π ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ ΡΡΠΎΠΈΡ?', '-- 50 ΡΡΠ±Π»Π΅ΠΉ.' }, { 'Π ΠΎΠ½ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ?', '-- Π₯ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ ΡΠ»ΠΎΠΌΠ°Π»ΡΡ.', { 'ΠΠ΅ΡΡ Π΄Π²Π°!', 'ΠΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½.', { 'ΠΠ°ΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½!', function() p [[ΠΠΊ!]]; take 'ΠΊΠ²Π°Ρ'; end }; } } } } }
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠ°Π·Π° Π·Π°Π΄Π°Π΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ `phr ` ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°Π·Π²Π΅ΡΠ²Π»Π΅Π½Π½ΡΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³. Π€ΡΠ°Π·Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ Π²ΡΠ±ΠΎΡΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅Π±Π΅ Π²ΡΠ±ΠΎΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅...
Π€ΡΠ°Π·Π° ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡΠΌΠ°Ρ ΠΏΠ°ΡΡ: ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ -- ΡΠ΅Π°ΠΊΡΠΈΡ. Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ. ΠΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ. ΠΠ±ΡΡΠ½ΠΎ, ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π±ΡΠ²Π°Π΅Ρ ΡΠ΅Π°ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ΄ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°.
ΠΠ°ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ:
{'ΠΠΎΠΏΡΠΎΡ', 'ΠΡΠ²Π΅Ρ }
Π ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ°Ρ:
{'ΠΠΎΠΏΡΠΎΡ', 'ΠΡΠ²Π΅Ρ', {'ΠΠΎΠ΄-Π²ΠΎΠΏΡΠΎΡ1', 'ΠΠΎΠ΄-ΠΎΡΠ²Π΅Ρ1' }, {'ΠΠΎΠ΄-Π²ΠΎΠΏΡΠΎΡ2', 'ΠΠΎΠ΄-ΠΎΡΠ²Π΅Ρ2' }, }
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π° Π°ΡΡΠΈΠ±ΡΡ `phr `, ΡΠΎ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² Π²ΡΠ±ΠΎΡΠΎΠ² ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² Π³Π»Π°Π²Π½ΡΡ ΡΡΠ°Π·Ρ `phr `, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ°ΡΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ:
dlg { nam = 'ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ'; title = [[Π Π°Π·Π³ΠΎΠ²ΠΎΡ Ρ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠΌ]]; enter = [[Π― ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ ΠΏΡΠΎΠ΄Π°Π²ΡΡ.]]; phr = { -- ΡΡΡ ΠΌΠΎΠ³ Π±Ρ Π±ΡΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΎΡΠ²Π΅Ρ 1-Π³ΠΎ ΡΡΠΎΠ²Π½Ρ! -- 'ΠΠ»Π°Π²Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ', 'ΠΠ»Π°Π²Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ', { 'Π£ Π²Π°Ρ Π΅ΡΡΡ Π±ΠΎΠ±Ρ?', '-- ΠΠ΅Ρ.'}, { 'Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠΊΠΎΠ»Π°Π΄?', '-- ΠΠ΅Ρ.'}, { 'Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ²Π°Ρ?', '-- ΠΠ°', { 'Π ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ ΡΡΠΎΠΈΡ?', '-- 50 ΡΡΠ±Π»Π΅ΠΉ.' }, { 'Π ΠΎΠ½ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ?', '-- Π₯ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ ΡΠ»ΠΎΠΌΠ°Π»ΡΡ.', { 'ΠΠ΅ΡΡ Π΄Π²Π°!', 'ΠΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½.', { 'ΠΠ°ΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½!', function() p [[ΠΠΊ!]]; take 'ΠΊΠ²Π°Ρ'; end }; } } } } }
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠ°ΠΊ ΠΈ Π΅ΡΡΡ. Π Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ "ΠΠ»Π°Π²Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ" ΠΈ "ΠΠ»Π°Π²Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ", Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎΡ Π³Π»Π°Π²Π½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΡΠ°Π·Π° `phr ` Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π·Ρ. Π Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ½ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ Π²ΡΠ±ΠΎΡΠΎΠ², ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΡ ΡΡΠ°Π·Ρ. Π’Π°ΠΊ ΡΡΠΎ Ρ `phr ` Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡ-ΠΎΡΠ²Π΅Ρ, Π½ΠΎ ΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² ΠΌΠ°ΡΡΠΈΠ² Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°Π·ΠΎΠΉ, ΠΌΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠ°Π²Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ ΡΡΠ°Π·ΠΎΠΉ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π·Ρ... ΠΡΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π½Π°ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠ°Π·Ρ -- ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ! ΠΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³-Π΄ΡΡΠ³Π°. ΠΡΠ°ΠΊ, Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΠ²Π΅ΠΆΠΈΠΌ Π²Π·Π³Π»ΡΠ΄ΠΎΠΌ:
dlg { nam = 'ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ'; title = [[Π Π°Π·Π³ΠΎΠ²ΠΎΡ Ρ ΠΏΡΠΎΠ΄Π°Π²ΡΠΎΠΌ]]; enter = [[Π― ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ ΠΏΡΠΎΠ΄Π°Π²ΡΡ.]]; phr = { -- ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° ΡΡΠ°Π·Π°, Π±Π΅Π· dsc ΠΈ act -- ΡΡΠΎ 1-Ρ ΡΡΠ°Π·Π°, Π²Π½ΡΡΡΠΈ ΡΡΠ°Π·Ρ Ρ dsc ΠΈ act { 'Π£ Π²Π°Ρ Π΅ΡΡΡ Π±ΠΎΠ±Ρ?', '-- ΠΠ΅Ρ.'}, -- ΡΡΠΎ 2-Ρ ΡΡΠ°Π·Π°, Π²Π½ΡΡΡΠΈ ΡΡΠ°Π·Ρ Ρ dsc ΠΈ act { 'Π£ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠΊΠΎΠ»Π°Π΄?', '-- ΠΠ΅Ρ.'}, -- ΡΡΠΎ 3-Ρ ΡΡΠ°Π·Π°, Π²Π½ΡΡΡΠΈ ΡΡΠ°Π·Ρ Ρ dsc ΠΈ act { 'Π£ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ²Π°Ρ?', '-- ΠΠ°', -- ΡΡΠΎ 1-Ρ ΡΡΠ°Π·Π° Π²Π½ΡΡΡΠΈ 3ΠΉ ΡΡΠ°Π·Ρ Ρ dsc ΠΈ act { 'Π ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ ΡΡΠΎΠΈΡ?', '-- 50 ΡΡΠ±Π»Π΅ΠΉ.' }, { 'Π ΠΎΠ½ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ?', '-- Π₯ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ ΡΠ»ΠΎΠΌΠ°Π»ΡΡ.', { 'ΠΠ΅ΡΡ Π΄Π²Π°!', 'ΠΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½.', -- Π·Π΄Π΅ΡΡ act Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ { 'ΠΠ°ΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½!', function() p [[ΠΠΊ!]]; take 'ΠΊΠ²Π°Ρ'; end }; } } } } }
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π΄ΠΈΠ°Π»ΠΎΠ³ -- ΡΡΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ°, Π° ΡΡΠ°Π·Ρ -- ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ! Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
*ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!* ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅, Π΄Π²ΠΈΠΆΠΎΠΊ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ Π΅Π³ΠΎ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΎΡΠ²Π΅Ρ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΡ `std.phrase_show `:
```
std.phrase_show = false -- Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΠ°Π·Ρ-Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅
```
ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° Π²ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ Π΅Π΅ Π² `init() ` ΠΈΠ»ΠΈ `start() ` ΡΡΠ½ΠΊΡΠΈΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠ°Π·Ρ:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, } }
ΠΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ Π΄ΠΈΠ°Π»ΠΎΠ³, ΡΠΎ Π² ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ°, ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΡΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»Π΅ΡΠΊΠΈ, Ρ Π½Π°Ρ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ±ΠΎΡ ΡΠΈΠ½Π΅ΠΉ ΡΠ°Π±Π»Π΅ΡΠΊΠΈ. ΠΠΎ Π½Π°Ρ Π·Π°ΠΌΡΡΠ΅Π», ΡΠ²Π½ΠΎ Π½Π΅ Π² ΡΡΠΎΠΌ! Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ.
ΠΠΎΠΏΠ΅ΡΠ²ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ `pop() ` -- Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π΄ΠΈΠ°Π»ΠΎΠ³Π°:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', {'ΠΡΠ°ΡΠ½ΡΡ', function() p 'ΠΠ΅ΡΠΆΠΈΡΠ΅!'; pop() end; }, {'Π‘ΠΈΠ½ΡΡ', function() p 'ΠΠΎΡ!'; pop() end; }, } }
ΠΠ»ΠΈ, Π² Π΄ΡΡΠ³ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', {'ΠΡΠ°ΡΠ½ΡΡ', pfn(pop) 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', pfn(pop) 'ΠΠΎΡ!' }, } }
ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΈ ΡΡΠ°Π·Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π² ΡΠ΅Π±Π΅ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ°Π·Ρ? Π ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΡΠ±ΠΎΡ, ΠΈ ΡΡΠΎΡ Π²ΡΠ±ΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Ρ ΡΡΠ°Π·Ρ Π°ΡΡΠΈΠ±ΡΡ `only `:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, } }
Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ°Π·Ρ, Π²ΡΠ΅ ΡΡΠ°Π·Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π±ΡΠ΄ΡΡ Π·Π°ΠΊΡΡΡΡ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠ°Π·Π° Π½Π΅ ΠΏΡΡΡΠ°Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΠ»Π°Π³Π° `true `:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, { true, 'Π ΠΊΠ°ΠΊΠ°Ρ Π»ΡΡΡΠ΅?', 'Π’Π΅Π±Π΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ.' }, -- ΡΡΠ°Π·Π° -- ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΡΠ° } }
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ, Ρ ΡΠ²Π½ΡΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡΠ° `always `:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, { always = true, 'Π ΠΊΠ°ΠΊΠ°Ρ Π»ΡΡΡΠ΅?', 'Π’Π΅Π±Π΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ.' }, -- ΡΡΠ°Π·Π° -- ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΡΠ° } }
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. Π§ΡΠΎ-Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠ°Π·Π° Π±ΡΠ»Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Π°(ΠΈΠ»ΠΈ ΡΠΏΡΡΡΠ°Π½Π°) ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-Π»ΠΈΠ±ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ? ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `cond `.
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, { true, 'Π ΠΊΠ°ΠΊΠ°Ρ Π»ΡΡΡΠ΅?', 'Π’Π΅Π±Π΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ.' }, -- ΡΡΠ°Π·Π° -- ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΡΡΡΠ° }, { cond = function() return have 'ΡΠ±Π»ΠΎΠΊΠΎ' end, 'Π Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±Π»ΠΎΠΊΠΎ?', 'Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π½Π΅Ρ.' }; }
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Ρ ΠΈΠ³ΡΠΎΠΊΠ° ΡΠ±Π»ΠΎΠΊΠ°, ΠΏΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π²Π΅ΡΠΊΠ° Π΄ΠΈΠ°Π»ΠΎΠ³Π° "Π Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±Π»ΠΎΠΊΠΎ?".
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ(ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°) Π΄ΠΈΠ°Π»ΠΎΠ³Π° ΠΈΡΡΠ΅ΡΠΏΠ°Π½Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `onempty `.
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, onempty = function() p [[Π’Ρ ΡΠ΄Π΅Π»Π°Π» ΡΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡ.]] pop() end; }, { cond = function() return have 'ΡΠ±Π»ΠΎΠΊΠΎ' end, 'Π Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±Π»ΠΎΠΊΠΎ?', 'Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π½Π΅Ρ.' }; }
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ `onempty `, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π²Π΅ΡΠΊΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ `onempty ` ΡΠ΄Π΅Π»Π°Π΅Ρ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.
ΠΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΠ°Π·Ρ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π½Π° 1-ΠΌ ΡΡΠΎΠ²Π½Π΅:
phr = { onempty = function() p [[ΠΠΎΡ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ.]] walkout() end; { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, onempty = function() p [[Π’Ρ ΡΠ΄Π΅Π»Π°Π» ΡΠ²ΠΎΠΉ Π²ΡΠ±ΠΎΡ.]] pop() end; }, { cond = function() return have 'ΡΠ±Π»ΠΎΠΊΠΎ' end, 'Π Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±Π»ΠΎΠΊΠΎ?', 'Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, Π½Π΅Ρ.' }; }
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈ ΡΡΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ Π²Π°ΡΠΈΡΡ. ΠΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΡΠ°Π·Π°ΠΌ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡ , ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π² Π΄ΡΡΠ³ΠΈΠ΅.
ΠΡΠ΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ ΡΡΠ°Π·, Ρ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠ΅Π³. Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠ°Π·Ρ Ρ ΡΠ΅Π³ΠΎΠΌ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ:
phr = { { '#ΡΡΠΎ?', 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', {'#ΠΊΡΠ°ΡΠ½Π°Ρ', 'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' }, {'#ΡΠΈΠ½ΡΡ', 'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!' }, }, }
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π½Π°Π»ΠΈΡΠΈΠ΅ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°Π·Ρ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» `# ` - ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅Π³Π°.
ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ ΡΡΠ°Π· ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ `seen ` ΠΈΠ»ΠΈ `enable ` / `disable `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π°ΡΡΠΈΠ±ΡΡΠ° `only ` ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
phr = { { '#ΡΡΠΎ?', 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', {'#ΠΊΡΠ°ΡΠ½Π°Ρ', 'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!' cond = function(s) return not closed('#ΡΠΈΠ½ΡΡ') end }, {'#ΡΠΈΠ½ΡΡ', 'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!', cond = function(s) return not closed('#ΠΊΡΠ°ΡΠ½Π°Ρ') end }, }, }
Π’Π΅Π³ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ·Π½Π°Π²Π°ΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ°Π·, Π΄Π΅Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°Π·Π°ΠΌΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `push ` ΠΈ `pop `.
ΠΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΏΠΎ `push `, ΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π΅ Π½Π° ΠΎΠ΄Π½Ρ ΡΡΠ°Π·Ρ, Π° Π½Π° ΡΠΏΠΈΡΠΎΠΊ ΡΡΠ°Π· ΡΡΠΎΠΉ ΡΡΠ°Π·Ρ. Π’ΠΎ-Π΅ΡΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΠΌ Π΅Π΅, ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΠ°Π·Ρ `phr `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!', next = '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅' }, { 'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!', next = '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅' }, }, { false, '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅', {'Π― ΡΠ΄Π΅Π»Π°Π» Π²Π΅ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ?', 'ΠΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ.'} }, }
Π’ΡΡ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ΅ΠΌΠΎΠ²:
{ hidden = true, '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅', {'Π― ΡΠ΄Π΅Π»Π°Π» Π²Π΅ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ?', 'ΠΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ.'} },
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ Π½Π΅ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎ, Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ. ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Ρ ΡΡΠ°Π·Ρ Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½Π° ΡΠ΅Π°ΠΊΡΠΈΡ,ΡΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΠ°Π·Ρ:
phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!', next = '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅' }, { 'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!', next = '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅' }, }, { false, '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅', [[Π― Π²Π·ΡΠ» ΡΠ°Π±Π»Π΅ΡΠΊΡ ΠΈ ΠΌΠ°ΡΡΠ΅Ρ Ρ ΠΈΡΡΠΎ ΡΠ»ΡΠ±Π½ΡΠ»ΡΡ.]], {'Π― ΡΠ΄Π΅Π»Π°Π» Π²Π΅ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ?', 'ΠΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ.'}, {'Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π°Π»ΡΡΠ΅?', 'Π’Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½.'}, }, }
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠ°Π±Π»Π΅ΡΠΊΠΈ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ°Π·Ρ `#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅ `, Π° ΡΠΆΠ΅ ΠΏΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π²ΡΠ±ΠΎΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
dlg { nam = 'Π΄ΠΈΠ°Π»ΠΎΠ³'; phr = { { 'Π§ΡΠΎ ΡΡΠΎ Ρ Π²Π°Ρ?', 'Π’Π°Π±Π»Π΅ΡΠΊΠΈ. ΠΡΠ°ΡΠ½Π°Ρ ΠΈ ΡΠΈΠ½ΡΡ. ΠΠ°ΠΌ ΠΊΠ°ΠΊΡΡ?', only = true, {'ΠΡΠ°ΡΠ½ΡΡ', 'ΠΠ΅ΡΠΆΠΈΡΠ΅!', next = '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅' }, { 'Π‘ΠΈΠ½ΡΡ', 'ΠΠΎΡ!', next = '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅' }, } } }:with { { '#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅', [[Π― Π²Π·ΡΠ» ΡΠ°Π±Π»Π΅ΡΠΊΡ ΠΈ ΠΌΠ°ΡΡΠ΅Ρ Ρ ΠΈΡΡΠΎ ΡΠ»ΡΠ±Π½ΡΠ»ΡΡ.]], {'Π― ΡΠ΄Π΅Π»Π°Π» Π²Π΅ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ?', 'ΠΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ.'}, {'Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π°Π»ΡΡΠ΅?', 'Π’Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½.'}, }, }
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π°ΡΡΠΈΠ±ΡΡ `phr ` Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π·Π°Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: Π·Π°Π΄Π°Π² `obj ` ΠΈΠ»ΠΈ `with `. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ 1-Ρ ΡΡΠ°Π·Π°, ΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π·Ρ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ (ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ, Ρ ΡΡΠ°Π·Ρ `#ΠΎΡΠ°Π±Π»Π΅ΡΠΊΠ΅ ` Π½Π΅ ΡΡΠΎΠΈΡ `false `), Π½ΠΎ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Π½Π° ΡΡΠΈ ΡΡΠ°Π·Ρ.
ΠΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² INSTEAD ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡΠΊΡΡΡ/Π·Π°ΠΊΡΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½/Π²ΠΊΠ»ΡΡΠ΅Π½. ΠΠ°ΠΊ ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π·Π°ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π°?
ΠΠ»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ°Π·, ΠΏΠΎΡΠ»Π΅ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ Π²ΡΠ±ΠΎΡΠ° ΡΡΠ°Π·Π° _Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ_. ΠΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π²Ρ ΠΎΠ΄Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ΅ ΡΡΠ°Π·Ρ _ΠΎΡΠΊΡΡΠ²Π°ΡΡΡΡ_.
ΠΠ»Ρ ΡΡΠ°Π· Ρ `always = true ` (ΠΈΠ»ΠΈ `true ` Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ) -- ΡΠ°ΠΊΠΎΠ³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΠ»Ρ ΡΡΠ°Π· Ρ `hidden = true ` (ΠΈΠ»ΠΈ `false ` Π² Π½Π°ΡΠ°Π»Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ) -- ΡΡΠ°Π·Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΊΠ°ΠΊ Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ. ΠΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄ΠΈΠΌΠ° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΠ»Ρ ΡΡΠ°Π· Ρ `cond() `, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ ΡΡΠ°Π· Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ οΏ½οΏ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (`true ` / Π½Π΅ `true `) ΡΡΠ°Π·Π° Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ.
ΠΠ½Π°Ρ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΡΡΠ°ΡΡ/ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π²ΠΈΠ΄Π°: `disable ` / `enable ` / `empty ` / `open ` / `close ` / `closed ` / `disabled ` ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅...
ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π΅Π»Π°ΡΡ Π²Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΠ°Π·Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡΡΡ ΠΏΠΎ ΡΠ΅Π³Π°ΠΌ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅/Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠ½Π°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅:
Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ `push ` / `pop `, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈΡ ΡΠ²Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
_'Π΄ΠΈΠ°Π»ΠΎΠ³':push '#Π½ΠΎΠ²Π°Ρ'
ΠΠΎ Π»ΡΡΡΠ΅ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² `enter `.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ `:reset `, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠ΅ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠ°ΡΡΠΎΠ²ΡΡ ΡΡΠ°Π·Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
enter = function(s) s:reset '#Π½Π°ΡΠ°Π»ΠΎ' end
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ `enable ` / `disable ` / `open ` / `close ` ΡΡΠ°Π·Ρ, ΡΠΎ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°Π΄ ΡΡΠΎΠΉ ΡΡΠ°Π·ΠΎΠΉ, Π° Π½Π΅ Π½Π°Π΄ ΡΡΠ°Π·Π°ΠΌΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π²Π½ΡΡΡΡ. ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΠΎΠΊΠ°Π·Π΅ ΡΡΠ°Π· Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π° Π²ΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ/Π·Π°ΠΊΡΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅-ΡΡΠ°Π·Π΅ ΠΈ Π½Π΅ Π²ΠΎΠΉΠ΄Π΅Ρ Π²Π½ΡΡΡΡ, ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
Π STEAD3 ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π° ΠΊΠ»Π°ΡΡΠ°:
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠ΅ ΠΈΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π° `@ ` ΠΈΠ»ΠΈ `$ `. Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² _ΠΌΠΎΠ΄ΡΠ»ΡΡ _. ΠΠ½ΠΈ Π½Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ ΠΏΡΠΈ ΡΠΌΠ΅ΡΡΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΈΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠ΅ `gamefile `, ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈΠ³ΡΡ ΠΈΠ· ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅). ΠΡΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²: `@timer `, `@prefs `, `@snd `.
Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΠ²ΠΎΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ, Π½ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² -- ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΉ.
`
ΠΠ±ΡΡΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 'ΡΡΡΠ»ΠΎΠΊ'.
ΠΡΡΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΡΠ»ΠΊΡ, ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΡΡΠ΅Π½Ρ, Π½ΠΎ ΡΡΠΎΠΈΡ Π»ΠΈ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅?
ΠΠ°ΠΊ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ?
obj { nam = '@walk'; act = function(s, w) walk(w, false, false) end; } room { nam = 'main'; title = 'ΠΠ°ΡΠ°Π»ΠΎ'; decor = [[ΠΠ°ΡΠ°ΡΡ {@walk ΡΡΠ°ΡΡ|ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅}]]; }
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΡΡΡΠ»ΠΊΡ "ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅" Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΌΠ΅ΡΠΎΠ΄ `act ` ΠΎΠ±ΡΠ΅ΠΊΡΠ° `@walk ` Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ "ΡΡΠ°ΡΡ".
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ stdlib ΡΠΆΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `@ `, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΡΠ»ΠΎΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
xact.walk = walk room { nam = 'main'; title = 'ΠΠ°ΡΠ°Π»ΠΎ'; decor = [[ΠΠ°ΡΠ°ΡΡ {@ walk ΡΡΠ°ΡΡ|ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅}]]; }
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π° ΠΏΡΠΎΠ±Π΅Π» ΠΏΠΎΡΠ»Π΅ `@ `. ΠΠ°Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
xact.myprint = function(w) p (w) end room { nam = 'main'; title = 'ΠΠ°ΡΠ°Π»ΠΎ'; decor = [[ΠΠ°ΠΆΠΌΠΈ {@ myprint "hello world"|Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ}]]; }
ΠΠ±ΡΠ΅ΠΊΡΡ, ΡΡΠ΅ ΠΈΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» `$ ` ΡΠΎΠΆΠ΅ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΠ½ΠΈ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ.
ΠΡΠ»ΠΈ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ "ΡΡΡΠ»ΠΊΠ°" Π²ΠΈΠ΄Π°:
{$my a b c|ΡΠ΅ΠΊΡΡ}
Π’ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ»Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ? ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΡΡΠΎ Π²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΡΠΌΡΠ» ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅. ΠΡ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡ `$math ` ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΠ΅ΠΌ `act ` ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (ΡΠΏΡΠ°ΠΉΡ) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ. Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΡΠΎΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
{$math|(2+3*x)/y^2}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π½Π° `1 `. ΠΠ±ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π»Ρ ΠΆΠΈΠ²ΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΉ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈΠ³ΡΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π³Π° ΠΈΠ³ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΠ°ΡΡΠΈΠΊΠ° ΠΆΠΈΠ²ΡΠΌ:
obj { nam = 'ΠΠ°ΡΡΠΈΠΊ'; { -- Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² lf lf = { [1] = 'ΠΠ°ΡΡΠΈΠΊ ΡΠ΅Π²Π΅Π»ΠΈΡΡΡ Ρ ΠΌΠ΅Π½Ρ Π·Π° ΠΏΠ°Π·ΡΡ ΠΎΠΉ.', [2] = 'ΠΠ°ΡΡΠΈΠΊ Π²ΡΠ³Π»ΡΠ΄ΡΠ²Π°Π΅Ρ ΠΈΠ·-Π·Π° ΠΏΠ°Π·ΡΡ ΠΈ.', [3] = 'ΠΠ°ΡΡΠΈΠΊ ΠΌΡΡΠ»ΡΡΠΈΡ Ρ ΠΌΠ΅Π½Ρ Π·Π° ΠΏΠ°Π·ΡΡ ΠΎΠΉ.', [4] = 'ΠΠ°ΡΡΠΈΠΊ Π΄ΡΠΎΠΆΠΈΡ Ρ ΠΌΠ΅Π½Ρ Π·Π° ΠΏΠ°Π·ΡΡ ΠΎΠΉ.', [5] = 'Π― ΡΡΠ²ΡΡΠ²ΡΡ ΡΠ΅ΠΏΠ»ΠΎ ΠΠ°ΡΡΠΈΠΊΠ° Ρ ΡΠ΅Π±Ρ Π·Π° ΠΏΠ°Π·ΡΡ ΠΎΠΉ.', [6] = 'ΠΠ°ΡΡΠΈΠΊ Π²ΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π³ΠΎΠ»ΠΎΠ²Ρ ΠΈΠ·-Π·Π° ΠΏΠ°Π·ΡΡ ΠΈ ΠΈ ΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΌΠ΅ΡΡΠ½ΠΎΡΡΡ.', }; }; life = function(s) local r = rnd(5); if r > 2 then -- Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° return; end r = rnd(#s.lf); -- ΡΠΈΠΌΠ²ΠΎΠ» # -- ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ p(s.lf[r]); -- Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΠ΄Π½ΠΎ ΠΈΠ· 6 ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΠ°ΡΡΠΈΠΊΠ° end; ....
Π Π²ΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π² ΠΈΠ³ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΠ°ΡΡΠΈΠΊ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ ΠΊ Π½Π°ΠΌ Π·Π° ΠΏΠ°Π·ΡΡ Ρ!
take 'ΠΠ°ΡΡΠΈΠΊ' -- Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ lifeon 'ΠΠ°ΡΡΠΈΠΊ' -- ΠΎΠΆΠΈΠ²ΠΈΡΡ ΠΠ°ΡΡΠΈΠΊΠ°!
ΠΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ ΡΡΠ΅Π½Π°) ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `life `, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΊΡ ΠΈΠ³ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΆΠΈΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ `lifeon `. ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΡΠ΄Π°Π»ΡΡΡ ΠΆΠΈΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ `lifeoff `, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ `exit `, ΠΈΠ»ΠΈ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ.
ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ "ΠΆΠΈΠ²ΡΡ " ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΠΌ ΡΠ²Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅, ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π²ΡΠΎΡΡΠΌ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ (ΡΠ΅Π»ΠΎΠ΅ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ) `lifeon `, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ. `1 ` -- ΡΠ°ΠΌΡΠΉ Π²ΡΡΠΎΠΊΠΈΠΉ. ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡΠΈΠ±ΡΡ `pri ` Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡΠ°Π²Π΄Π°, ΡΡΠΎΡ Π°ΡΡΠΈΠ±ΡΡ Π±ΡΠ΄Π΅Ρ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π»ΡΠ±ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠΌΠ½Π°ΡΠ΅, Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ Π΅Π³ΠΎ Π² `enter ` ΠΈ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π² `exit `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'Π ΠΏΠΎΠ΄Π²Π°Π»Π΅'; dsc = [[Π’ΡΡ ΡΠ΅ΠΌΠ½ΠΎ!]]; enter = function(s) lifeon(s); end; exit = function(s) lifeoff(s); end; life = function(s) if rnd(10) > 8 then p [[Π― ΡΠ»ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΎΡΠΎΡ ΠΈ!]]; -- ΠΈΠ·ΡΠ΅Π΄ΠΊΠ° ΠΏΡΠ³Π°ΡΡ ΠΈΠ³ΡΠΎΠΊΠ° ΡΠΎΡΠΎΡ Π°ΠΌΠΈ end end; way = { 'ΠΠΎΠΌ' }; }
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ» Π»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΈΠ³ΡΠΎΠΊΠ° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π½Ρ Π² Π΄ΡΡΠ³ΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ `player_moved() `.
obj { nam = 'ΡΠΎΠ½Π°ΡΠΈΠΊ'; on = false; life = function(s) if player_moved() then -- Π³Π°ΡΠΈΡΡ ΡΠΎΠ½Π°ΡΠΈΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°Ρ s.on = false p "Π― Π²ΡΠΊΠ»ΡΡΠΈΠ» ΡΠΎΠ½Π°ΡΠΈΠΊ." return end; end; ... }
ΠΠ»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΠΊΠ°ΡΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ `time() ` ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ-ΡΡΠ΅ΡΡΠΈΠΊ. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ° -- `here() `. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ "ΠΆΠΈΠ²ΠΎΠΉ" -- `live() `.
obj { nam = 'Π΄ΠΈΠ½Π°ΠΌΠΈΡ'; timer = 0; used = function(s, w) if w^'ΡΠΏΠΈΡΠΊΠ°' then -- ΡΠΏΠΈΡΠΊΠ°? if live(s) then return "Π£ΠΆΠ΅ Π³ΠΎΡΠΈΡ!" end p "Π― ΠΏΠΎΠ΄ΠΆΠ΅Π³ Π΄ΠΈΠ½Π°ΠΌΠΈΡ." lifeon(s) return end return false -- Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠΏΠΈΡΠΊΠ° end; life = function(s) s.timer = s.timer + 1 if s.timer == 5 then lifeoff(s) if here() == where(s) then p [[ΠΠΈΠ½Π°ΠΌΠΈΡ Π²Π·ΠΎΡΠ²Π°Π»ΡΡ ΡΡΠ΄ΠΎΠΌ ΡΠΎ ΠΌΠ½ΠΎΠΉ!]] else p [[Π― ΡΡΠ»ΡΡΠ°Π», ΠΊΠ°ΠΊ Π²Π·ΠΎΡΠ²Π°Π»ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡ.]]; end end end; ... }
ΠΡΠ»ΠΈ `life ` ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ ΡΠΎΠ±ΡΡΠΈΡ, ΠΎΠ½ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `life ` Π²ΡΠΎΡΠΎΠΉ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, (`true ` ΠΈΠ»ΠΈ `false `). ΠΡΠ»ΠΈ Π²Ρ Π²Π΅ΡΠ½Π΅ΡΠ΅ `true ` -- ΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡ Π΄ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ΅Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
p 'Π ΠΊΠΎΠΌΠ½Π°ΡΡ Π²ΠΎΡΠ΅Π» ΠΎΡ ΡΠ°Π½Π½ΠΈΠΊ.' return true
ΠΠ»ΠΈ:
return 'Π ΠΊΠΎΠΌΠ½Π°ΡΡ Π²ΠΎΡΠ΅Π» ΠΎΡ ΡΠ°Π½Π½ΠΈΠΊ.', true
ΠΡΠ»ΠΈ Π²Ρ Π²Π΅ΡΠ½Π΅ΡΠ΅ `false `, ΡΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ° `life ` ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠ΅ΡΠ²Π΅ΡΡΡ Π½Π° Π²Π°Ρ. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ `walk ` ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° `life `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
life = function() walk 'theend' return false -- ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ life end
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ `life ` ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ½Π°Ρ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ `nolife `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require "noinv" require "nolife" dlg { nam = 'ΠΡ ΡΠ°Π½Π½ΠΈΠΊ'; noinv = true; nolife = true; ... }
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΈΠ³ΡΠΎΠΊΠ° ΠΈΠ· `life ` ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `walk ` Π²Π½ΡΡΡΠΈ `life `, ΡΠΎ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ `life ` ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ° Π² Π½ΠΎΠ²ΡΡ Π»ΠΎΠΊΠ°ΡΠΈΡ, ΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΡΠΎ Π²Ρ:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π±ΡΡΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠΉ.
`game:reaction() ` -- ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π·ΡΡΡ/ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠ΅Π°ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°ΡΡ Π΅Π³ΠΎ Π² `false ` ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠ΅Π°ΠΊΡΠΈΡ.
`game:events() ` -- ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π·ΡΡΡ/ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ `life ` ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΈ Π½Π΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π² `false `, `false ` ΠΌΡ ΠΎΡΠΌΠ΅Π½ΠΈΠ»ΠΈ Π²Π΅ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ `life ` ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ `life_walk() `, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ°ΠΌ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ½ΡΡΡ `false `.
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ INSTEAD Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π°ΡΡΠΈΠ±ΡΡ ΡΡΠ΅Π½Ρ `pic `, ΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡΡΡ ΠΊ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
room { pic = 'gfx/home.png'; nam = 'ΠΠΎΠΌΠ°'; dsc = 'Π― Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠΌΠ°'; };
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π² ΠΏΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΌΡΠ΅ `/ `. Π’Π°ΠΊΠΆΠ΅, Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ ΡΡΡΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π²Ρ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΊΡΠ΄Π° ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ INSTEAD.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, `pic ` ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΡΠ°ΡΡΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ΅Π½Π΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π°ΡΡΠΈΠ±ΡΡ `pic `, ΡΠΎ Π±Π΅ΡΠ΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ `game.pic `. ΠΡΠ»ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈ ΠΎΠ½, ΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ png ΠΈ (ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΆΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ) jpg.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ `gif ` ΡΠ°ΠΉΠ»Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΡΠΌΠΎ Π² ΡΠ΅ΠΊΡΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ, Π·Π°Π³Π»Π°Π²ΠΈΡ ΠΊΠΎΠΌΠ½Π°Ρ ΠΈ `dsc ` Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `fmt.img ` (ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ `fmt `).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require "fmt" obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ' disp = 'Π―Π±Π»ΠΎΠΊΠΎ'..fmt.img('img/apple.png'); }
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΡΠ΅Π½Ρ Π²ΡΠ΅Π³Π΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ Π² Π²ΠΈΠ΄Π΅ `pic ` Π°ΡΡΠΈΠ±ΡΡΠ°, Π° Π½Π΅ Π²ΡΡΠ°Π²ΠΊΠΈ `fmt.img ` Π² `dsc ` ΠΊΠΎΠΌΠ½Π°ΡΡ.
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΡΠ΅Π½Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΌΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ. ΠΠ°ΡΡΠΈΠ½ΠΊΠΈ `fmt.img ` ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ INSTEAD (ΠΌΠ°ΡΡΡΠ°Π± ΡΠ΅ΠΌΡ), Π° `pic ` -- ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ `pic ` ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ `fmt.img ` Π²Π½ΡΡΡΡ `{ ` ΠΈ `} `, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΡΠ»ΠΊΡ.
obj { nam = 'ΡΠ±Π»ΠΎΠΊΠΎ'; disp = 'ΡΠ±Π»ΠΎΠΊΠΎ ' ..img('img/apple.png'); dsc = function(s) p ("ΠΠ° ΠΏΠΎΠ»Ρ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ",fmt.img 'img/apple.png', "}"); -- Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ: -- return "ΠΠ° ΠΏΠΎΠ»Ρ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ"..fmt.img('img/apple.png').."}"; -- p "ΠΠ° ΠΏΠΎΠ»Ρ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ"..fmt.img('img/apple.png').."}"; -- ΠΈΠ»ΠΈ dsc = "ΠΠ° ΠΏΠΎΠ»Ρ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ"..fmt.img('img/apple.png').."}"; end; }
INSTEAD ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΠ°Π½ΠΈΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΎΠΊ ΡΠ΅ΠΊΡΡΠΎΠΌ. ΠΡΠ»ΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `fmt.imgl ` / `fmt.imgr `, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Ρ Π»Π΅Π²ΠΎΠ³ΠΎ/ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΊΡΠ°Ρ.
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΠ°ΡΡΠΈΠ½ΠΊΠΈ, Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `fmt.imgl ` / `fmt.imgr ` Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ!!! ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠ΅Π»ΡΡ .
ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ² Π²ΠΎΠΊΡΡΠ³ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ `pad `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
fmt.imgl 'pad:16,picture.png' -- ΠΎΡΡΡΡΠΏΡ ΠΏΠΎ 16 ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΡΠ°Ρ fmt.imgl 'pad:0 16 16 4,picture.png' -- ΠΎΡΡΡΡΠΏΡ: Π²Π²Π΅ΡΡ Ρ 0, ΡΠΏΡΠ°Π²Π° 16, Π²Π½ΠΈΠ·Ρ 16, ΡΠ»Π΅Π²Π° 4 fmt.imgl 'pad:0 16,picture.png' -- ΠΎΡΡΡΡΠΏΡ: Π²Π²Π΅ΡΡ Ρ 0, ΡΠΏΡΠ°Π²Π° 16, Π²Π½ΠΈΠ·Ρ 0, ΡΠ»Π΅Π²Π° 16
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎ-ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡΡΡΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ:
dsc = fmt.img 'blank:32x32'..[[Π‘ΡΡΠΎΠΊΠ° Ρ ΠΏΡΡΡΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.]]; dsc = fmt.img 'box:32x32,red,128'..[[Π‘ΡΡΠΎΠΊΠ° ΠΊΡΠ°ΡΠ½ΡΠΌ ΠΏΠΎΠ»ΡΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΌ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΎΠΌ.]];
INSTEAD ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
pic = 'gfx/mycat.png;gfx/milk.png@120,25;gfx/fish.png@32,32';
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΡΡΠ°Π²Π½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΡΠ΅ΠΉ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ `; `. ΠΡΠΎΡΠ°Ρ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΠΎΡΡΡΠΈΠΊΡ Π² Π²ΠΈΠ΄Π΅ `@x~_ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°,y_ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°% `, Π³Π΄Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ΅ 0,0 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»Π΅Π²ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ³ΠΎΠ» Π²ΡΠ΅Π³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ -- `gfx/mycat.png `) ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ Ρ ΠΎΠ»ΡΡΠ°, Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΡ Ρ ΠΎΠ»ΡΡ.
ΠΠ°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π½ΡΡΠ° Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ `c `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
pic = 'gfx/galaxy.png;gfx/star.png@c128,132';
ΠΡΠΎΡΠΌΠΈΠ² Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΈ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ΡΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ»ΠΈ ΠΊ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ, Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ³ΡΠΎΠΊΠΎΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, INSTEAD ΡΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ (ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π»Ρ ΠΈΠ³ΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΈΠ³ΡΠ° Π·Π°ΠΏΡΡΠ΅Π½Π° Π±Π΅Π· ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ). ΠΠ΄Π½Π°ΠΊΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅, ΠΈΠ·ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ "sprite", ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ. ΠΠΎ Ρ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ³ΡΠ΅.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ ΠΈ Π·Π²ΡΠΊΠ°ΠΌΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ `snd `.
require "snd"
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅Ρ Π² ΡΠΈΠΊΠ»Π΅ ΡΠ΅ΠΊΡΡΡΡ ΠΌΡΠ·ΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ: `snd.music(ΠΏΡΡΡ ΠΊ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ) `.
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π² ΠΏΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΌΡΠ΅ `/ `. Π’Π°ΠΊΠΆΠ΅, Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΈΠΌΠ΅Π½Π°Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈΠ΅ ΡΡΡΠΎΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ Π²Ρ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΈΠ³ΡΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ ΠΈ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ , ΠΊΡΠ΄Π° ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ INSTEAD.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ², Π½ΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ogg, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΠΎ Π²ΡΠ΅Ρ Π²Π΅ΡΡΠΈΡΡ INSTEAD (Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ).
_*ΠΠ°ΠΆΠ½ΠΎ!*_
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΠ²Π»ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ΅ΠΊΠ΅ΡΠ½ΠΎΠΉ ΠΌΡΠ·ΡΠΊΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ²ΡΠ·ΠΊΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ SDL_mixer ΠΈ libmikmod).
Π’Π°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ 'mid' ΡΠ°ΠΉΠ»Ρ, Π±ΡΠ΄ΡΡΠ΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊ ΡΡΠ»ΡΡΠΈΡ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Windows Π²Π΅ΡΡΠΈΠΈ INSTEAD (ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², Unix Π²Π΅ΡΡΠΈΠΈ SDL_mixer ΡΠΎΠ±ΡΠ°Π½Ρ Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ timidity).
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΎΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΡΡΠΎΡΡ ΠΊΡΠ°ΡΠ½ΡΠ΅ `11025 `.
room { pic = 'gfx/street.png'; enter = function() snd.music 'mus/rain.ogg' end; nam = 'Π½Π° ΡΠ»ΠΈΡΠ΅'; dsc = 'ΠΠ° ΡΠ»ΠΈΡΠ΅ ΠΈΠ΄Π΅Ρ Π΄ΠΎΠΆΠ΄Ρ.'; };
`snd.music() ` Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈΠΌΡ ΡΡΠ΅ΠΊΠ°.
Π ΡΡΠ½ΠΊΡΠΈΡ `snd.music() ` ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠΉ (ΡΠΈΠΊΠ»ΠΎΠ²). ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `snd.music() ` Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² -- Π²ΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. `0 ` -- ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ». `1..n ` -- ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠΉ. `-1 ` -- ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΊΠ° Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½ΠΎ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `snd.stop_music() `.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΈΠ³ΡΠ°Π΅Ρ Π»ΠΈ ΠΌΡΠ·ΡΠΊΠ°:
snd.music_playing()
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ Π·Π°ΡΡΡ Π°Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π°:
snd.music_fading(o, [i])
ΠΠ΄Π΅ΡΡ `o ` - Π²ΡΠ΅ΠΌΡ Π² ΠΌΡ. Π΄Π»Ρ Π·Π°ΡΡΡ Π°Π½ΠΈΡ ΠΈ `i ` - Π²ΡΠ΅ΠΌΡ Π² ΠΌΡ. Π΄Π»Ρ Π½Π°ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ. ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -- ΠΎΠ±Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ. ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ»Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ Π·Π²ΡΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ `snd.play() `. ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°Ρ ogg, Ρ ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π·Π²ΡΠΊΠΎΠ²ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π Π°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ ΠΈ Π·Π²ΡΠΊΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ/Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅ΠΌΡΠΉ ΡΡΠ΅ΠΊ. ΠΡΠΉΠ΄Ρ ΠΈΠ· ΠΈΠ³ΡΡ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΠ² Π΅Π΅ ΡΠ½ΠΎΠ²Π°, ΠΈΠ³ΡΠΎΠΊ ΡΡΠ»ΡΡΠΈΡ ΡΠΎ ΠΆΠ΅ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ»ΡΡΠ°Π» ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅. ΠΠ²ΡΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ, ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠΎΠΊ Π½Π΅ ΡΡΠΏΠ΅Π» Π΄ΠΎΡΠ»ΡΡΠ°ΡΡ Π·Π²ΡΠΊ Π²ΡΡΡΡΠ΅Π»Π° ΠΈ Π²ΡΡΠ΅Π» ΠΈΠ· ΠΈΠ³ΡΡ, ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ½ Π½Π΅ ΡΡΠ»ΡΡΠΈΡ Π·Π²ΡΠΊ (ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅) ΡΠ½ΠΎΠ²Π°.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΠ»ΠΈ ΡΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ `snd.play() ` ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π·Π°ΡΠΈΠΊΠ»Π΅Π½Π½ΡΠ΅ Π·Π²ΡΠΊΠΈ, ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ ΠΈ Π·Π²ΡΠΊΠ°ΠΌΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΆΠ΅ Π½Π΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΡΠΌ.
ΠΡΠ°ΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: `snd.play(ΡΠ°ΠΉΠ», [ΠΊΠ°Π½Π°Π»], [ΡΠΈΠΊΠ»]) `, Π³Π΄Π΅:
ΠΠ»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ Π·Π²ΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `snd.stop() `. ΠΠ»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π²ΡΠΊΠ° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅ `snd.stop(ΠΊΠ°Π½Π°Π») `.
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π·Π°ΡΠΈΠΊΠ»Π΅Π½Π½ΡΠ΅ Π·Π²ΡΠΊΠΈ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ°ΠΌΠΈΠΌ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ½ΠΎΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ `snd.sound() `) Π² ΡΡΠ½ΠΊΡΠΈΠΈ `start() `.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
global 'wind_blow' (false) ... function start() if wind_blow then snd.play('snd/wind.ogg', 0) end end
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π·Π΄Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ Π·Π²ΡΠΊΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ `snd `.
ΠΠ±ΡΡΠ½ΠΎ INSTEAD ΡΠ°ΠΌ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ΅Π½Ρ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ. ΠΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΊΡΡΡΠΈΠ²ΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ°. ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠΎΠΊΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΈ Ρ.Π΄. ΠΠΎΠ΄ΡΠ»ΠΈ Π²ΡΠΎΠ΄Π΅ `fmt ` ΡΠ»ΡΡΡΠ°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ³ΡΡ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π°Π²ΡΠΎΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require 'fmt' fmt.para = true -- Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΡΡΡΠΏΡ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠΎΠ²
Π Π²Π°ΡΠ° ΠΈΠ³ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»ΡΡΡΠ΅. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ `fmt ` ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ `fmt.filter `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require "fmt" fmt.filter = function(s, state) -- s -- Π²ΡΠ²ΠΎΠ΄ -- state -- true, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊΡ ΠΈΠ³ΡΡ (Π²ΡΠ²ΠΎΠ΄ ΡΡΠ΅Π½Ρ) if state then return 'ΠΡΠ° ΡΡΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊ Π½Π°ΡΠ°Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°\n'..s; end return s end
ΠΠ½ΠΎΠ³ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΈΠ³ΡΡ Π½Π° INSTEAD Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΡΠΎΠΌΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° `dsc ` Π½Π° ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² `^^ `, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, Π° ΡΠ°ΠΊ Π»ΠΈ Π²Π°ΠΌ Ρ ΠΎΡΠ΅ΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΡ Π²ΡΡΡΠ½ΡΡ?
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ.
*ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!* ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊ, ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ Π²ΡΡΠ΅Π·Π°ΡΡΡΡ ΠΈΠ· Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠΌΡΡΠ»Π° ΠΈ Π΄Π°ΠΆΠ΅ Π²ΡΠ΅Π΄Π½Ρ. Π ΡΠ΅Π΄ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡοΏ½οΏ½, Π°Π²ΡΠΎΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ, ΡΠΎΠ³Π΄Π° ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°ΡΡ `std.strip_call ` ΠΊΠ°ΠΊ `false ` Π² `init() ` ΠΈΠ»ΠΈ `start() `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
```
std.strip_call = false
obj {
dsc = [[Π’ΡΡ Π»Π΅ΠΆΠΈΡ {ΡΠ±Π»ΠΎΠΊΠΎ}.^^^^]] -- ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊ
-- Π½Π΅ Π±ΡΠ΄ΡΡ Π²ΡΡΠ΅Π·Π°Π½Ρ, Ρ ΠΎΡΡ ΡΡΠΎ ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅
}
```
ΠΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΡΠ½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠΌ ΡΡΠΈΠ»Π΅. ΠΠ»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΡΠ΅Π½Ρ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ decor ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ `$ `.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'main'; title = 'ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ'; dsc = fmt.c 'ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ!'; -- Π΅ΡΠ»ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ»ΡΠΊΠΎ 1 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, -- ΡΠΊΠΎΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°ΡΡ; }
ΠΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π»ΠΈΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅ΠΊΡΡ, Π½ΠΎ ΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `fmt.img() `.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ (ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠ°ΠΌ). Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½. Π Π°Π·Π±ΠΈΠ²Π°ΠΉΡΠ΅ ΡΠ΅ΠΊΡΡ Π½Π° Π°Π±Π·Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ `^ ` ΠΈΠ»ΠΈ `pn() `.
INSTEAD ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ΄Π°Π»ΡΠ΅Ρ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π½Π΅Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² Π²Ρ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ΅ΡΠ° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ _Π½Π΅ΡΠ°Π·ΡΡΠ²Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ_ Ρ ΠΏΠΎΠΌΠΎΡΡΡ: `fmt.nb(ΡΡΡΠΎΠΊΠ°) `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ `fmt ` ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠ°Π·ΡΡΠ²Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΡΡΠΏΠΎΠ² Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΠ°ΡΠ°Π³ΡΠ°ΡΠΎΠ². Π’Π°ΠΊΠΆΠ΅, `fmt.nb ` ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²ΡΡ ΡΡΡΠΎΠΊΠ°-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `fmt.nb ` Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°, ΡΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ `fmt.nb ` ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ.
INSTEAD Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΎΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ `fmt.tab() `. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ (ΡΠ°Π±ΡΠ»ΡΡΠΎΡ).
fmt.tab(ΠΏΠΎΠ·ΠΈΡΠΈΡ, [ΡΠ΅Π½ΡΡ])
_ΠΠΎΠ·ΠΈΡΠΈΡ_, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΎΠ½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ . ΠΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° `ΡΠΈΡΠ»ΠΎ% `, ΡΠΎ ΠΎΠ½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡΠΈΡ, Π²ΡΡΠ°ΠΆΠ΅Π½Π½Π°Ρ Π² ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ ΠΎΡ ΡΠΈΡΠΈΠ½Ρ ΠΎΠΊΠ½Π° Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ΅Π½Ρ.
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ _ΡΠ΅Π½ΡΡ_ Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π° `fmt.tab ` ΡΠ»ΠΎΠ²Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° ΠΏΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅. ΠΠΎΠ·ΠΈΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ:
ΠΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΠΎ Π·Π°Π΄Π°Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `left `.
Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'main'; disp = 'ΠΠ°ΡΠ°Π»ΠΎ'; -- ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ 'ΠΠ°ΡΠ°Π»ΠΎ!' ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΡΡΠΎΠΊΠΈ dsc = fmt.tab('50%', 'center')..'ΠΠ°ΡΠ°Π»ΠΎ!'; }
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄Π°ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `fmt.c() `. ΠΠΎΠ»Π΅Π΅ ΡΠ΄Π°ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
dsc = function(s) p(fmt.tab '0%') p "Π‘Π»Π΅Π²Π°"; p(fmt.tab '100%', 'right') p "Π‘ΠΏΡΠ°Π²Π°"; end
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ `fmt.tab() ` ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ -- ΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ ΡΠ°Π±Π»ΠΈΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
-- ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ 'Π Π°Π·' ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΡΡΠΎΠΊΠΈ dsc = fmt.tab('50%', 'center')..'Π Π°Π· Π΄Π²Π° ΡΡΠΈ!';
Π’ΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ²ΠΎ "Π Π°Π·" Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΡΠ΅Π½ΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π±ΡΠ΄ΡΡ Π΄ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ "Π Π°Π· Π΄Π²Π° ΡΡΠΈ!" ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ `fmt.nb() `.
-- ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ 'Π Π°Π· Π΄Π²Π° ΡΡΠΈ!' ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΡΡΠΎΠΊΠΈ dsc = fmt.tab('50%', 'center')..fmt.nb ('Π Π°Π· Π΄Π²Π° ΡΡΠΈ!');
Π INSTEAD ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π±ΡΠ»ΡΡΠΎΡ:
fmt.y(ΠΏΠΎΠ·ΠΈΡΠΈΡ, [ΡΠ΅Π½ΡΡ])
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ `fmt.tab ` _ΠΏΠΎΠ·ΠΈΡΠΈΡ_, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΈΠ»ΠΈ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΠ΄Π΅ΡΡ ΠΎΠ½ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΡΠΎΠΊΠΈ, Π²ΡΡΠ°ΠΆΠ΅Π½Π½Π°Ρ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ ΠΎΡ Π²ΡΡΠΎΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠ΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, `100% ` -- ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠ΅Π½Ρ. `200% ` -- ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄Π° (Π΄Π²Π΅ Π²ΡΡΠΎΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ΅Π½Ρ).
ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ _ΡΠ΅Π½ΡΡ_ Π·Π°Π΄Π°Π΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π²Π½ΡΡΡΠΈ ΡΡΡΠΎΠΊΠΈ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ `fmt.y ` ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΠ΅ Π²ΡΡΡΠ΅ΡΠΈΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ `fmt.y `, Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΈΠ· ΡΠ°Π±ΡΠ»ΡΡΠΎΡΠΎΠ².
-- ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ 'ΠΠΠΠΠ I' - Π² ΡΠ΅Π½ΡΡΠ΅ ΡΡΠ΅Π½Ρ dsc = fmt.y('100%').."ΠΠΠΠΠ I";
_ΠΡΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ ΡΠ°Π±ΡΠ»ΡΡΠΎΡΠΎΠΌ, ΡΠΆΠ΅ Π·Π°Π½ΡΡΠ° Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ, ΡΠ°Π±ΡΠ»ΡΡΠΎΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ._
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ `std.scene_delim `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
std.scene_delim = '^' -- ΠΎΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΡΠΎΠΊΠΈ
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΡ ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π΅Π΅ Π΄Π»Ρ ΠΈΠ³ΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π΅ Π²ΡΡΡΠ½ΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ `start() `.
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΡΠΎ, ΠΊΠ°ΠΊ INSTEAD ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π°Π±Π·Π°ΡΠΎΠ² ΡΠ΅ΠΊΡΡΠ°), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ `game.display() `, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
game.display = function(s, state) local r, l, av, pv local reaction = s:reaction() or nil -- ΡΠ΅Π°ΠΊΡΠΈΡ r = std.here() if state then -- ΡΠ°ΠΊΡ ΠΈΠ³ΡΡ? reaction = iface:em(reaction) -- ΠΊΡΡΡΠΈΠ² av, pv = s:events() av = iface:em(av) -- Π²ΡΠ²ΠΎΠ΄ "Π²Π°ΠΆΠ½ΡΡ " life pv = iface:em(pv) -- Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠ½ΠΎΠ²ΡΡ life l = s.player:look() -- objects [and scene] -- ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΡΡΠ΅Π½Π° end l = std.par(std.scene_delim, reaction or false, av or false, l or false, pv or false) or '' return l end;
Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Ρ ΠΏΡΠΈΠ²Π΅Π» Π·Π΄Π΅ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄, Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΈΠ³ΡΡ, ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ΅ΠΊΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
room { nam = 'Intro'; title = false; dsc = function(s) p ('ΠΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅: ') p (fmt.b(s)) end; }
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `fmt.u ` ΠΈ `fmt.st ` Π½Π° ΡΡΡΠΎΠΊΠ°Ρ , ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΡΠΎΠ±Π΅Π»Ρ, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ°Π·ΡΡΠ²Ρ Π»ΠΈΠ½ΠΈΠΉ Π² ΡΡΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ . Π§ΡΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² _Π½Π΅ΡΠ°Π·ΡΡΠ²Π½ΡΡ ΡΡΡΠΎΠΊΡ_:
```
fmt.u(fmt.nb "ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΠΊΡΡ Π±Π΅Π· ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ²" )
```
Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, INSTEAD Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΡΠΈΡΡΠ°ΠΌΠΈ Π² ΠΎΠΊΠ½ΠΎ ΡΡΠ΅Π½Ρ (Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΠΎΠ΅ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΠ΅), ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
_ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!_
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΡΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΈΠ³ΡΡ, Π±ΡΠ»ΠΎ Π±Ρ Π»ΡΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΏΡΠΎΡΡΠ°Ρ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΡΡΠΎΠΉ Π³Π»Π°Π²Ρ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, 90% ΠΈΠ³Ρ Π½Π° INSTEAD Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π΅ΡΠ΅ΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅!
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅ ΠΈΠ³ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ -- ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π·Π° Π²Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π² Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΊΠΎΠ½. ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠΊΠ½Π°, Π»ΡΠ±ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ `window `.
window = function(v) v.window = true v.broken = false if v.dsc == nil then v.dsc = 'ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ {ΠΎΠΊΠ½ΠΎ}.' end v.act = function(s) if s.broken then p [[ΠΠΊΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠΎ.]] else p [[ΠΠ° ΠΎΠΊΠ½ΠΎΠΌ ΡΠ΅ΠΌΠ½ΠΎ.]] end end if v.used == nil then v.used = function(s, w) if w^'ΠΌΠΎΠ»ΠΎΡΠΎΠΊ' then if s.broken then p [[ΠΠΊΠ½ΠΎ ΡΠΆΠ΅ ΡΠ°Π·Π±ΠΈΡΠΎ.]] else p [[Π― ΡΠ°Π·Π±ΠΈΠ» ΠΎΠΊΠ½ΠΎ.]] s.broken = true; end return end return false end end return obj(v) end
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, ΠΈΠ΄Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΏΡΠΎΡΡΠ°. ΠΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄ ΡΠ°Π±Π»ΠΈΡΡ Ρ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ `{} `, ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ `obj ` / `room ` / `dlg ` ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠΊΠ½Π° ΡΡΠ°Π»ΠΎ Π»Π΅Π³ΠΊΠΎ:
window { dsc = [[Π’ΡΡ Π΅ΡΡΡ {ΠΎΠΊΠ½ΠΎ}.]]; }
ΠΠ»ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΡΠΌΠΎ Π² `obj `.
obj = { window { dsc = 'Π Π²ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π½Π΅ Π΅ΡΡΡ {ΠΎΠΊΠ½ΠΎ}.'; } };
Π£ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π° Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠΉ `used ` ΠΌΠ΅ΡΠΎΠ΄ ΠΈ `act ` ΠΌΠ΅ΡΠΎΠ΄. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠΊΠ½ΠΎ -- ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² ΠΏΡΠΈΠ·Π½Π°ΠΊ `window `:
use = function(s, w) if w.window then p [[ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΎΠΊΠ½ΠΎ.]] return end return false end
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ "ΡΠ°Π·Π±ΠΈΡΠΎΡΡΠΈ" ΠΎΠΊΠ½Π°, ΡΡΠΎ Π°ΡΡΠΈΠ±ΡΡ `broken `.
ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°Ρ ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π²Π΅Π΄Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ `window ` Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡοΏ½οΏ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ `obj `, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ»ΡΡΠ°Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π’Π°ΠΊΠΆΠ΅, `window ` ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ·Π½Π°ΠΊ `window `, ΡΡΠΎΠ±Ρ Π² ΠΈΠ³ΡΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ Ρ ΠΎΠΊΠ½ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² `treasure `, ΡΠ΅. ΡΠΎΠΊΡΠΎΠ²ΠΈΡ.
global { score = 0 } treasure = function() local v = {} v.disp = 'ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅' v.treasure = true v.points = 100 v.dsc = function(s) p ('ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ {', std.dispof(s), '}.') end; v.inv = function(s) p ('ΠΡΠΎ ΠΆΠ΅ ', std.dispof(s), '.'); end; v.tak = function(s) score = score + s.points; -- ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ ΡΡΠ΅Ρ p [[ΠΡΠΎΠΆΠ°ΡΠΈΠΌΠΈ ΡΡΠΊΠ°ΠΌΠΈ Ρ Π·Π°Π±ΡΠ°Π» ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ°.]]; end return obj(v) end
Π ΡΠ΅ΠΏΠ΅ΡΡ, Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π·ΠΎΠ»ΠΎΡΠΎ, Π°Π»ΠΌΠ°Π· ΠΈ ΡΡΠ½Π΄ΡΠΊ.
gold = function(dsc) local v = treasure(); v.disp = 'Π·ΠΎΠ»ΠΎΡΠΎ'; v.gold = true; v.points = 50; v.dsc = dsc; return v end diamond = function(dsc) local v = treasure(); v.disp = 'Π°Π»ΠΌΠ°Π·'; v.diamond = true; v.points = 200; v.dsc = dsc; return v end chest = function(dsc) local v = treasure(); v.disp = 'ΡΡΠ½Π΄ΡΠΊ'; v.chest = true v.points = 1000; v.dsc = dsc; return v end
Π’Π΅ΠΏΠ΅ΡΡ, Π² ΠΈΠ³ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠΊΡΠΎΠ²ΠΈΡΠ° ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ:
diamond1 = diamond("Π Π³ΡΡΠ·ΠΈ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» {Π°Π»ΠΌΠ°Π·}.") diamond2 = diamond(); -- ΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°Π»ΠΌΠ°Π·Π° gold1 = gold("Π ΡΠ³Π»Ρ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» Π±Π»Π΅ΡΠΊ {Π·ΠΎΠ»ΠΎΡΠ°}."); room { nam = 'ΠΏΠ΅ΡΠ΅ΡΠ°'; obj = { diamond1, gold1, chest("Π Π΅ΡΠ΅ Ρ Π²ΠΈΠΆΡ {ΡΡΠ½Π΄ΡΠΊ}!") }; }
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Π²Π°Ρ. ΠΡΠ±Π΅ΡΠ΅ΡΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±.
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ·ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ INSTEAD. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ `std.call(ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΌΠ΅ΡΠΎΠ΄, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ) `, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ ΡΠ΅Π°ΠΊΡΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ `window `, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΎΡΠΌΠΎΡΡ ΠΎΠΊΠ½Π°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΠΎΡΠ»Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠΎ).
window = function(nam, dsc, what) local v = {} -- ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ -- Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅Π΅ v.window = true v.what = what v.broken = false if dsc == nil then v.dsc = 'ΠΠ΄Π΅ΡΡ Π΅ΡΡΡ {ΠΎΠΊΠ½ΠΎ}' end v.act = function(s) if s.broken then p [[ΠΠΊΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠΎ.]] end local r, v = stead.call(s, 'what') if v then -- ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ? p(r) else p [[ΠΠ° ΠΎΠΊΠ½ΠΎΠΌ ΡΠ΅ΠΌΠ½ΠΎ.]] end end return obj(v) end
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠΊΠ½Π° Π·Π°Π΄Π°ΡΡ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°ΠΊΡΠΈΠ΅ΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠΌΠΎΡΡΠ° ΠΎΠΊΠ½Π°. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠΊΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠΎ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠΎ), Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠ΅ΠΉ.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π² STEAD2. Π STEAD3 `obj ` / `dlg ` / `room ` ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ `obj ` / `room ` / `dlg ` ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°. ΠΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π² ΡΡΠ΅Π½Π΅. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° "ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ". ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅Π±Π΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π±ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΌ ΠΈ ΠΎΡΠΊΡΡΡΡΠΌ.
-- create own class container cont = std.class({ -- ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»Π°ΡΡ cont __cont_type = true; -- Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° display = function(s) -- ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° local d = std.obj.display(s) if s:closed() or #s.obj == 0 then return d end local c = s.cont or 'ΠΠ½ΡΡΡΠΈ: ' -- ΠΎΠΏΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ local empty = true for i = 1, #s.obj do local o = s.obj[i] if o:visible() then empty = false if i > 1 then c = c .. ', ' end c = c..'{'..std.nameof(o)..'|'..std.dispof(o)..'}' end end if empty then return d end c = c .. '.' return std.par(std.space_delim, d, c) end; }, std.obj) -- ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΡ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ ΡΠ°ΠΊ:
cont { nam = 'ΡΡΠΈΠΊ'; dsc = [[Π’ΡΡ Π΅ΡΡΡ {ΡΡΠΈΠΊ}.]]; cont = 'Π ΡΡΠΈΠΊΠ΅: '; }: with { 'ΡΠ±Π»ΠΎΠΊΠΎ', 'Π³ΡΡΡΠ°'; }
ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΈΠΊΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΈΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ ΡΡΡΠ»ΠΎΠΊ: Π ΡΡΠΈΠΊΠ΅: ΡΠ±Π»ΠΎΠΊΠΎ, Π³ΡΡΡΠ°. `dsc ` ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ±Π»ΠΎΠΊΠΎ ΠΈ Π³ΡΡΡΠ° Π±ΡΠ΄ΡΡ ΡΠΎΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π·Π°Π΄Π°Π½Ρ.
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΡΡΠ°ΡΡ `dsc ` ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, ΠΎΡΡΠ°Π²Π»ΡΡ Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ:
-- Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠΊΠ°Π·Π° Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° -- Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°, Π½Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΅Π³ΠΎ dsc std.obj.display = function(self) local w = self:where() -- Π³Π΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ? if not std.is_obj(w, 'cont') then -- Π΅ΡΠ»ΠΈ Π½Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ local d = std.call(self, 'dsc') return d end end
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΡΡΠΈ Π²Π΅ΡΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. Π ΠΏΠΎΠΊΠ°, Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΈΠ³ΡΡ, Π²Π°ΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
ΠΠΎΠ³Π΄Π° Π²Π°ΡΠ° ΠΈΠ³ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΊΠΎΠ΄Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π² `main3.lua ` -- ΠΏΠ»ΠΎΡ Π°Ρ ΠΈΠ΄Π΅Ρ.
ΠΠ»Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ° ΠΈΠ³ΡΡ Π½Π° ΡΠ°ΠΉΠ»Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `include `. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ `include ` Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ `main3.lua ` Π·Π°Π³ΡΡΠ·ΠΈΠ»ΠΈΡΡ ΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΈΠ³ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
-- main3.lua include "episode1" -- .lua ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°ΡΡ include "npc" include "start" room { nam = 'main'; ....
ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ°ΠΉΠ»Ρ Π·Π°Π²ΠΈΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Π²Π°Ρ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΏΠΈΠ·ΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ³ΡΡ (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ»Π°Π±ΠΎ ΡΠ²ΡΠ·Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ, Ρ ΡΠ°Π½ΡΡΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠ½Π°ΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈ Ρ.Π΄. ΠΡΠΎ Π²ΠΎΠΏΡΠΎΡ Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°.
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ ΡΠ°ΡΡΠΈ ΠΈΠ³ΡΡ (Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π΄ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `gamefile `:
... act = function() gamefile ("episode2") end -- .lua ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°ΡΡ ...
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ `init() `, ΡΠΎ Π² ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ ΡΠ°ΡΡΡΡ ΠΎΠ½Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ! Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»Π°, Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ `init() `, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ.
`gamefile() ` ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Π·Π°Π±ΡΡΡ ΡΡΠ΅ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΎΠΊ, Π·Π°ΠΏΡΡΡΠΈΠ² ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ³ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π·Π°Π΄Π°ΠΉΡΠ΅ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ `true `. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ `gamefile ` Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ . `gamefile() ` ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ .
act = function() gamefile ("episode3.lua", true); end;
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ `gamefile() ` ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΡΠ·ΡΡΠ½ΡΡ ΠΈΠ³Ρ ΠΈΠ»ΠΈ ΠΈΠ³Ρ-ΡΠ±ΠΎΡΠ½ΠΈΠΊΠΎΠ², Π³Π΄Π΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΡΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΡ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²Π° ΡΠ΅Π»ΡΠΊΠ° ΠΌΡΡΡΡ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΡΠ΅Π½Ρ ΠΈΠ»ΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π»ΡΠΊΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠ°ΠΊΡ ΠΈΠ³ΡΡ. ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ³ΡΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ³ΡΠΎΠ²Π°Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ INSTEAD ΠΈΠ³Ρ. Π’ΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΌΠ΅Π½Ρ.
ΠΠ΅Π½Ρ -- ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠ»ΠΈΠΊ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π΄Π²ΠΈΠΆΠΊΡ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΡΠ°ΠΊΡΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅Π½Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π² Π·ΠΎΠ½Π΅ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠΉ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ `proxymenu `, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠΉ Π² ΡΡΠΈΠ»Π΅ ΠΊΠ²Π΅ΡΡΠΎΠ² Π½Π° ZX-"Π‘ΠΏΠ΅ΠΊΡΡΡΠΌ". Π ΠΈΠ³ΡΠ΅ "ΠΡΠΎΠ±Π½ΡΠΊ" ΡΠ²ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΈ Ρ.Π΄.
ΠΡΠ°ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΌΠ΅Π½Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΠΈΠΏΠΎΠΌ `menu `. ΠΡΠΈ ΡΡΠΎΠΌ, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠ΅Π½Ρ (`act `) Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΏΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΊΠ° ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ `false `, ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ³ΡΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΡΠΌΠ°Π½Π°:
menu { state = false; nam = 'ΠΊΠ°ΡΠΌΠ°Π½'; disp = function(s) if s.state then return fmt.u('ΠΊΠ°ΡΠΌΠ°Π½'); -- ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅ΠΌ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠ°ΡΠΌΠ°Π½ end return 'ΠΊΠ°ΡΠΌΠ°Π½'; end; gen = function(s) if s.state then s:open(); -- ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅ else s:close(); -- ΡΠΏΡΡΡΠ°ΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΡ Π² ΠΊΠ°ΡΠΌΠ°Π½Π΅ end return s end; act = function(s) s.state = not s.state -- ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ s:gen(); -- ΠΎΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΊΡΡΡΡ ΠΊΠ°ΡΠΌΠ°Π½ end; }: with { obj { nam = 'Π½ΠΎΠΆ'; inv = 'ΠΡΠΎ Π½ΠΎΠΆ'; }; } function init() take 'ΠΊΠ°ΡΠΌΠ°Π½':gen() end
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π²ΡΠ²Π΅ΡΡΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ°ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΎΡΠΊΠΎΠ², ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π³Π΅ΡΠΎΡ ΠΈΠ»ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΡΠ΅ΠΌΡ ΡΡΡΠΎΠΊ. INSTEAD Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΡΠ²ΠΎΠ΄Π°, ΠΊΡΠΎΠΌΠ΅ ΡΡΠ΅Π½Ρ ΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΠ°ΠΌΡΠΌ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ°ΡΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ²ΠΎΠ΄ Π΅Π³ΠΎ Π² Π·ΠΎΠ½Ρ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°ΡΡΡΠ° ΠΈΠ³ΡΠΎΠΊΠ° Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΠ΅, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½, ΡΠΎ Π΅ΡΡΡ, Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡ.
global { life = 10; power = 10; } stat { -- stat -- ΠΎΠ±ΡΠ΅ΠΊΡ "ΡΡΠ°ΡΡΡ" nam = 'ΡΡΠ°ΡΡΡ'; disp = function(s) pn ('ΠΠΈΠ·Π½Ρ: ', life) pn ('Π‘ΠΈΠ»Π°: ', power) end }; function init() take 'ΡΡΠ°ΡΡΡ' end
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ `walk ` ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² `onenter ` ΠΈ `onexit `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, `path ` ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ½Π°ΡΠ° Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ `onenter `, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ° Π² Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠΌΠ½Π°ΡΡ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ· `onexit ` / `onenter ` `false ` Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ `walk ` ΠΈΠ· ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ²ΠΎΠΈΡ ΠΈΠ³Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° οΏ½οΏ½ΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ `-encode `:
sdl-instead -encode <ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ> [Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ]
Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΡΡ `include ` / `gamefile `. ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ `main3.lua `:
std.dofile = std.doencfile
ΠΡΠΈ ΡΡΠΎΠΌ Π³Π»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» `main3.lua ` Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡ Π΅ΠΌΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (`game.lua ` -- Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»):
-- $Name: ΠΠΎΡ Π·Π°ΠΊΡΡΡΠ°Ρ ΠΈΠ³ΡΠ°!$ std.dofile = std.doencfile include "game"; -- Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΠ·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ Π΅Π΅ ΠΏΡΠΎΠΉΡΠΈ!
_*ΠΠ°ΠΆΠ½ΠΎ!*_
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ³Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `luac `, ΡΠ°ΠΊ ΠΊΠ°ΠΊ `luac ` ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄! ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ³Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΈΠ³ΡΡ (Π³ΡΠ°ΡΠΈΠΊΡ, ΠΌΡΠ·ΡΠΊΡ, ΡΠ΅ΠΌΡ) Π² ΡΠ°ΠΉΠ» ΡΠ΅ΡΡΡΡΠΎΠ² `.idf `, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ `data ` ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ INSTEAD:
sdl-instead -idf <ΠΏΡΡΡ ΠΊ data>
ΠΡΠΈ ΡΡΠΎΠΌ, Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠ°ΠΉΠ» `data.idf `. ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΠ³ΡΠΎΠΉ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΡΡΡΡ ΠΈΠ³ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΡΡΠ°Π²ΠΈΠ² ΡΠ΅Π±Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Π² ΡΠΎΡΠΌΠ°Ρ `.idf ` Π²ΡΡ ΠΈΠ³ΡΡ:
sdl-instead -idf <ΠΏΡΡΡ ΠΊ ΠΈΠ³ΡΠ΅>
ΠΠ³ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ `idf ` ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ³ΡΡ instead (ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠΎ Π±ΡΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ) Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
sdl-instead game.idf
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ³ΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ (ΡΠΌ. `change_pl() `). ΠΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΡΡΠΊ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°.
obj { nam = 'ΠΊΠ°ΠΌΠ΅Π½Ρ'; dsc = 'ΠΠ° ΠΊΡΠ°Ρ Π»Π΅ΠΆΠΈΡ {ΠΊΠ°ΠΌΠ΅Π½Ρ}.'; act = function() remove 'ΠΊΠ°ΠΌΠ΅Π½Ρ'; p 'Π― ΡΠΎΠ»ΠΊΠ½ΡΠ» ΠΊΠ°ΠΌΠ΅Π½Ρ, ΠΎΠ½ ΡΠΎΡΠ²Π°Π»ΡΡ ΠΈ ΡΠ»Π΅ΡΠ΅Π» Π²Π½ΠΈΠ·...'; end
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `act ` ΠΌΠΎΠ³ Π±Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΎΡΠ΅:
act = function(s) remove(s); p 'Π― ΡΠΎΠ»ΠΊΠ½ΡΠ» ΠΊΠ°ΠΌΠ΅Π½Ρ, ΠΎΠ½ ΡΠΎΡΠ²Π°Π»ΡΡ ΠΈ ΡΠ»Π΅ΡΠ΅Π» Π²Π½ΠΈΠ·...'; end
ΠΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡ, Π² Π²ΠΈΠ΄Π΅ `return ` "ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ". ΠΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ `p() ` / `pr() ` / `pn() ` / `pf() `. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ³ΡΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΠ° `false `:
return false
Π’Π°ΠΊΠΎΠΉ ΡΡΠ°ΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½. ΠΠ±ΡΡΠ½ΠΎ Π΄Π²ΠΈΠΆΠΎΠΊ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ:
return true, false
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ (Π½ΠΎ Π½Π΅ ΡΡΠ΅Π½Π°). ΠΠ°Π½Π½ΡΠΉ ΡΡΠ°ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅Π½Ρ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ: `std.nop() `. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ `return `.
return std.nop() -- ... ΠΈΠ»ΠΈ ... std.nop() -- Π΄Π°Π»Π΅Π΅ ΠΊΠΎΠ½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ return
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠ΅Π½Ρ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°ΠΊΡ ΠΈΠ³ΡΡ (Π΄Π°ΠΆΠ΅ ΡΡΡΠΎΠΊΠ° ΡΠ΅Π°ΠΊΡΠΈΠΈ ΠΎΡΡΠ°Π½Π΅ΡΡΡ ΡΡΠ°ΡΠΎΠΉ). ΠΠ°Π½Π½ΡΠΉ ΡΡΠ°ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ `theme `, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ³ΡΡ Π½Π° Π»Π΅ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°Π΄Ρ Ρ ΡΡΠ΅ΡΠΎΠΌ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΠΌΡ.
ΠΠ»Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π² INSTEAD Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎΠΈΡ Π»ΠΈ Π² ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ³ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ. ΠΠ±ΡΡΠ½ΠΎ, ΠΈΠ³ΡΠΎΠΊΠΎΠΌ ΡΡΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±Π»Π°Π³ΠΎΡΠΊΠ»ΠΎΠ½Π½ΠΎ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°ΠΉΠΌΠ΅Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π² ΠΎΡΠΎΡΠΌΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ΅Π»ΡΡ .
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ `timer `.
require "timer"
Π’Π°ΠΉΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `timer `.
ΠΡΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `game.timer `. ΠΡΠ»ΠΈ `game.timer ` Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ `false `, ΡΡΠ΅Π½Π° Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π°ΠΊΡΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ `timer `. ΠΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `timer `, ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ `game.timer `. ΠΡΠ»ΠΈ ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ `false ` -- Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ `game.timer `.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
game.timer = function(s) if time() > 10 then return false end snd.play 'gfx/beep.ogg'; p ("Timer:", time()) end function init() timer:set(1000) -- ΡΠ°Π· Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ end
room { enter = function(s) timer:set(1000); end; timer = function(s) timer:stop(); walk 'ΠΊΠΎΠΌΠ½Π°ΡΠ°2'; end; nam = 'ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ°'; dsc = [[ΠΠ΄ΠΈΡΠ΅.]]; }
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ Π΅Π³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ· ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ:
return true, false
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠ°ΡΡΡΠΎΠ² Π²ΡΠΎΠ΄Π΅ ΡΠ°ΡΠΎΠ².
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² INSTEAD ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°Ρ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ `instead.ticks() `. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΠ°ΡΡΠ° ΠΈΠ³ΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π»Ρ ΠΈΠ³ΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΠ΅Π»Ρ ΠΌΡΠ·ΡΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π² Π΅Π³ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
-- ΠΈΠ³ΡΠ°Π΅Ρ ΡΡΠ΅ΠΊΠΈ Π² ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ require "snd" obj { { tracks = {"mus/astro2.mod", "mus/aws_chas.xm", "mus/dmageofd.xm", "mus/doomsday.s3m"}; }; nam = 'ΠΏΠ»Π΅Π΅Ρ'; life = function(s) if not snd.music_playing() then local n = s.tracks[rnd(#s.tracks)] snd.music(n, 1); end end; }:lifeon();
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π΅Π΅ΡΠ°. ΠΠ΅Π½ΡΠ΅ΠΌ ΡΡΠ΅ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ»ΠΎ Π±ΠΎΠ»Π΅Π΅ `2 ` ΠΌΠΈΠ½ΡΡ ΠΈ ΠΈΠ³ΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» ΠΈΠ· ΠΊΠΎΠΌΠ½Π°ΡΡ Π² ΠΊΠΎΠΌΠ½Π°ΡΡ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠΉ (`0 ` - Π·Π°ΡΠΈΠΊΠ»Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΊ):
require "timer" global { track_time = 0 }; obj { nam = 'player'; pos = 0; { playlist = { '01 Frozen sun.ogg', 0, '02 Thinking.ogg', 0, '03 Melancholy.ogg', 0, '04 Everyday happiness.ogg', 0, '10 Good morning again.ogg', 1, '15 [Bonus track] The end (demo cover).ogg', 1 }; }; tick = function(s) if snd.music_playing() and ( track_time < 120 or not player_moved() ) then return end track_time = 0 if s.pos == 0 then s.pos = 1 else s.pos = s.pos + 2 end if s.pos > #s.playlist then s.pos = 1 end snd.music('mus/'..s.playlist[s.pos], s.playlist[s.pos + 1]); end; } game.timer = function(s) track_time = track_time + 1 music_player:tick(); end function init() timer:set(1000) end
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ΠΌΡ Π³Π΅ΡΠΎΡ Π½ΡΠΆΠ΅Π½ Π΄ΡΡΠ³, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ `life ` ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΅Π³Π΄Π° ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² Π»ΠΎΠΊΠ°ΡΠΈΡ ΠΈΠ³ΡΠΎΠΊΠ°:
obj { nam = 'Π»ΠΎΡΠ°Π΄Ρ'; dsc = 'Π ΡΠ΄ΠΎΠΌ ΡΠΎ ΠΌΠ½ΠΎΠΉ ΡΡΠΎΠΈΡ {Π»ΠΎΡΠ°Π΄Ρ}.'; act = [[ΠΠΎΡ Π»ΠΎΡΠ°Π΄ΠΊΠ°.]]; life = function(s) if player_moved() then place(s); end end; } function init() lifeon 'Π»ΠΎΡΠ°Π΄Ρ'; -- ΡΡΠ°Π·Ρ ΠΎΠΆΠΈΠ²ΠΈΠΌ Π»ΠΎΡΠ°Π΄Ρ end
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ· ΠΈΠ³ΡΡ ΠΌΠ΅Π½Ρ INSTEAD Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `istead.menu() `. ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°Π΄Π°ΡΡ: `save `, `load ` ΠΈΠ»ΠΈ `quit `, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π» ΠΌΠ΅Π½Ρ.
ΠΠ±ΡΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ ΠΊΠΎΠΌΠ½Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ "Π½Π° Π»Π΅ΡΡ". ΠΠ±ΡΡΠ½ΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΠΈΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ lua ΡΠ°ΠΉΠ»Π°. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈΠ³ΡΡ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅, ΠΈΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π²Π΅Π»ΠΈΠΊΠΎ ΠΈ ΠΎΠ½ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΠΈΠ³ΡΡ.
Π INSTEAD ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° Π»Π΅ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ _ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ_ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `new `.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½.
ΠΡΠ°ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `new ` ΠΈ `delete ` Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΈΠΌΠ΅ΡΡ:
declare 'box' (function() return obj { dsc = [[Π’ΡΡ Π»Π΅ΠΆΠΈΡ {ΠΊΠΎΡΠΎΠ±ΠΊΠ°}.]]; tak = [[Π― Π²Π·ΡΠ» ΠΊΠΎΡΠΎΠ±ΠΊΡ.]]; } end) local o = new (box); take(o);
declare 'box' (function(dsc) return obj { dsc = dsc; tak = [[Π― Π²Π·ΡΠ» ΠΊΠΎΡΠΎΠ±ΠΊΡ.]]; } end) take(new(box, 'Π ΡΠ³Π»Ρ ΡΡΠΎΠΈΡ {ΠΊΠΎΡΠΎΠ±ΠΊΠ°}'))
`new ` Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ -- ΠΊΠ°ΠΊ Π·Π°Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ -- ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ.
function myconstructor() local v = {} v.disp = 'ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ' v.act = 'Π’Π΅ΡΡΠΎΠ²Π°Ρ ΡΠ΅Π°ΠΊΡΠΈΡ' return obj(v) end
*ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!* ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²! ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΈΡΠ° Π΅ΡΠ΅ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ! Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΡΡΡΠ΅ ΡΠΈΠΏΡ: ΡΡΡΠΎΠΊΠΈ, ΡΠ°Π±Π»ΠΈΡΡ, ΡΠΈΡΠ»Π°, Π±ΡΠ»Π΅Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΅Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΠ΅-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ:
purge(o) -- ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π²ΡΠ΅Ρ ΡΠΏΠΈΡΠΊΠΎΠ² delete(o) -- ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ
ΠΡΠΈ ΡΡΠΎΠΌ, `delete ` ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ· INSTEAD, Π° Π½Π΅ Π°Π½Π°Π»ΠΎΠ³ `remove() ` ΠΈΠ»ΠΈ `purge() `. ΠΠ±ΡΡΠ½ΠΎ, Π½Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π΄Π΅Π»Π°ΡΡ `delete `. Π’ΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² ΠΈΠ³ΡΠ΅, ΠΈΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `delete() `.
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ-ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
-- Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ -- path declare 'make_path' (function(v) return path(v) end) -- Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ -- ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ -- ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ways() put( new (make_path, { 'ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄', 'ΠΊΠΎΠΌΠ½Π°ΡΠ°2'}, ways())
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΈΠ³ΡΠΎΠΊΡ Π΄Π΅Π»Π°ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΈΠ³ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΡΠ΅Π½Π°Ρ , Π³Π΄Π΅ Π²Π°ΠΆΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉ, ΠΈΠ»ΠΈ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΡ ΠΈΠ³Ρ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ³ΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ.
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΡΠΈΠ±ΡΡ `instead.nosave `.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
instead.nosave = true -- Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ Π²Π΅Π·Π΄Π΅, Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π½Π°Ρ , ΠΎΡΠΎΡΠΌΠΈΡΠ΅ `instead.nosave ` Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° Π½Π° Π»Π΅ΡΡ -- ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΉ.
-- Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ -- ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π°ΡΡΠΈΠ±ΡΡ nosave. instead.nosave = function() return here().nosave end
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΠ΅Ρ Π½Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π·Π°ΠΏΡΠ΅ΡΠ° Π½Π° Π°Π²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π°Π²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ `instead.noautosave `.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ³ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π°: `instead.autosave([Π½ΠΎΠΌΠ΅Ρ ΡΠ»ΠΎΡΠ°]) `; ΠΡΠ»ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΠ»ΠΎΡΠ° Π½Π΅ Π·Π°Π΄Π°Π½, ΡΠΎ ΠΈΠ³ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π° ΠΏΠΎΠ΄ ΡΠ»ΠΎΡΠΎΠΌ 'Π°Π²ΡΠΎΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅'. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ __ΠΏΠΎΡΠ»Π΅__ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°ΠΊΡΠ° ΠΈΠ³ΡΡ.
Π INSTEAD ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠ²ΡΠΉ - Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `std.is_obj(ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, [ΡΠΈΠΏ]) `.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
a = room { nam = 'ΠΎΠ±ΡΠ΅ΠΊΡ'; }; dprint(std.is_obj(a)) -- Π²ΡΠ²Π΅Π΄Π΅Ρ true dprint(std.is_obj('ΠΎΠ±ΡΠ΅ΠΊΡ')) -- Π²ΡΠ²Π΅Π΄Π΅Ρ false dprint(std.is_obj(a, 'room')) -- Π²ΡΠ²Π΅Π΄Π΅Ρ true dprint(std.is_obj(a.obj, 'list')) -- Π²ΡΠ²Π΅Π΄Π΅Ρ true
`std.is_obj() ` ΡΠ΄ΠΎΠ±Π½Π°Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ²ΡΠ·Π°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° `type `:
a = room { nam = 'ΠΎΠ±ΡΠ΅ΠΊΡ'; }; dprint(a:type 'room') -- Π²ΡΠ²Π΅Π΄Π΅Ρ true
ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅ΠΌ. _Π’Π΅ΠΌΠ°_ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ `theme.ini ` Π²Π½ΡΡΡΠΈ.
Π’Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ -- ΡΡΠΎ ΡΠ΅ΠΌΠ° `default `. ΠΡΠ° ΡΠ΅ΠΌΠ° Π²ΡΠ΅Π³Π΄Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ Π½Π΅Π΅ ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΡΡ Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΡΠ±ΠΎΡ ΡΠ΅ΠΌΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Π½Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΠΈΠ³ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΠΌΡ ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ²ΠΎΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΈΠ³ΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠ» `theme.ini `. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΈ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΌΡΡΠ»Π° Π°Π²ΡΠΎΡΠ° ΠΈΠ³ΡΡ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ `theme.ini ` ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ.
<ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ> = <Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅>
ΠΈΠ»ΠΈ
; ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ²: ΡΡΡΠΎΠΊΠ°, ΡΠ²Π΅Ρ, ΡΠΈΡΠ»ΠΎ.
Π¦Π²Π΅Ρ Π·Π°Π΄Π°Π΅ΡΡΡ Π² ΡΠΎΡΠΌΠ΅ `#rgb `, Π³Π΄Π΅ `r `, `g ` ΠΈ `b ` ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ²Π΅ΡΠ° Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ²Π΅ΡΠ° ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡΡΡ ΠΏΠΎ ΡΠ²ΠΎΠΈΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: `yellowgreen `, ΠΈΠ»ΠΈ `violet `.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅Π³Π°ΠΌΠΈ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π³: `$Name: `, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ UTF-8 ΡΡΡΠΎΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
; $Name:ΠΠΎΠ²Π°Ρ ΡΠ΅ΠΌΠ°$ ; ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΠΌΡ book include = book ; -- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΡ ΠΠ½ΠΈΠ³Π° scr.gfx.h = 500 ; -- Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π² Π½Π΅ΠΉ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ ΡΠ΅ΠΌ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ `themes `. Unix Π²Π΅ΡΡΠΈΡ ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ `~/.instead/themes/ ` Windows Π²Π΅ΡΡΠΈΡ -- `Documents and Settings/USER/Local Settings/Application Data/instead/themes `
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ INSTEAD ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ³ΡΠ΅. ΠΠ°Π²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ³ΡΠΎΠΊΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ INSTEAD Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΠΈΠ³ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π²ΡΠ΅ ΡΠ΅ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π² ΠΈΠ³ΡΠ΅ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ `themes `. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΌΠ° -- ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ `themes `. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠ» `theme.ini ` ΠΈ ΡΠ΅ΡΡΡΡΡ ΡΠ΅ΠΌΡ (ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΡΡΠΈΡΡΡ, Π·Π²ΡΠΊΠΈ). ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅ΠΌΡ-ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° `themes ` / `default ` - ΡΡΠ° ΡΠ΅ΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π€ΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ² `theme.ini ` ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΡΠΈ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π² `theme.ini ` ΠΏΠΈΡΡΡΡΡ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΠ³ΡΡ, Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΌΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π±Π΅Π· ΠΏΡΡΠΈ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
mygame/ themes/ default/ theme.ini bg.png widescreen/ theme.ini main3.l ua
`theme.ini `
scr.gfx.bg = bg.png ; ...
ΠΡΠΈ ΡΡΠΎΠΌ, Π²ΡΠ΅ ΠΈΠ³ΡΠΎΠ²ΡΠ΅ ΡΠ΅ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ ΡΠ΅ΠΌΡ `themes ` / `default `. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ `include `. ΠΡΠΈ ΡΡΠΎΠΌ, INSTEAD ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ, ΠΈ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΌΡ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° ΡΠ΅ΠΌΠ° ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ΅ΠΌ INSTEAD (Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ). ΠΠ°Π»Π΅Π΅, Π² `theme.ini ` ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² INSTEAD Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ:
require "ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ"
ΠΠ»ΠΈ:
loadmod "ΠΈΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ"
ΠΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠ³ΡΠΎΠΉ.
Π§Π°ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΏΠΎΡΡΠ°Π²ΠΊΡ INSTEAD, Π½ΠΎ Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΠ³ΡΠΎΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ²ΠΎΠΈΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΠ³ΡΠΎΠΉ ΠΏΠΎΠ΄ ΡΠ΅ΠΌ-ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ.
ΠΠΎΠ΄ΡΠ»Ρ, ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ lua ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ: `ΠΈΠΌΡ_ΠΌΠΎΠ΄ΡΠ»Ρ.lua `.
ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
--$Name: ΠΠΎΡ ΠΈΠ³ΡΠ°!$ require "fmt" require "click"
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΈΠ· [ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ]([https://github.com/instead-hub/stead3-modules]). ΠΡΠΎΡΡΠΎ ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΠΈΠ³ΡΠΎΠΉ. ΠΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ loadmod().
https://github.com/instead-hub/stead3-modules
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ `keys `.
ΠΠ±ΡΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΊΠ»Π°Π²ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°.
ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ `keys:filter(press, key) `. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ `true ` Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require "keys" function keys:filter(press, key) return press -- Π»ΠΎΠ²ΠΈΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ Π»ΡΠ±ΡΡ ΠΊΠ»Π°Π²ΠΈΡ end
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ `press `, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π²Π΅Π½ `true ` Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈ `false ` -- ΠΎΡΠΆΠ°ΡΠΈΡ. Π `key ` ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ (Π² Π²ΠΈΠ΄Π΅ ΡΡΡΠΎΠΊΠΈ).
ΠΠ±ΡΡΠ½ΠΎ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ:
require "keys" function keys:filter(press, key) if key == '0' or key == '1' or key == 'z' then return press -- Π»ΠΎΠ²ΠΈΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ z, 1 ΠΈ 0 end end
ΠΡΠ°ΠΊ, `keys:filter ` ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. Π ΡΠ°ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π² ΠΈΠ³ΡΡ Π² Π²ΠΈΠ΄Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° `onkey ` Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ½Π°ΡΡ ΠΈΠ»ΠΈ (Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π·Π°Π΄Π°Π½ Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° `game `.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ `onkey ` Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ STEAD3. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ `false ` ΠΈ ΡΠΎΠ³Π΄Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π΅ Π±ΡΠ»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΈΠ³ΡΠΎΠΉ. ΠΠΈΠ±ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅.
_ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅:_ ΠΡΠ»ΠΈ ΠΈΠ³ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ _Π²ΡΠ΅_ ΡΠΎΠ±ΡΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ, ΡΠΎ Π΄Π°ΠΆΠ΅ ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ INSTEAD Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈΠ³ΡΠΎΠΉ, Π° Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ `escape ` (ΠΈ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ false ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°), ΡΠΎ ΠΊΠ»Π°Π²ΠΈΡΠ° `escape ` ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ INSTEAD (`escape ` -- Π²ΡΠ·ΠΎΠ² ΠΌΠ΅Π½Ρ).
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠΌΠ΅Π½ ΠΊΠ»Π°Π²ΠΈΡ:
require "keys" function keys:filter(press, key) return press -- Π»ΠΎΠ²ΠΈΠΌ Π²ΡΠ΅ Π½Π°ΠΆΠ°ΡΠΈΡ end game.onkey = function(s, press, key) dprint("pressed: ", key) p("ΠΠ°ΠΆΠ°ΡΠ°: ", key) return false -- Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ INSTEAD end
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ.
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π°ΡΠΊΠ°Π΄Π½ΡΡ ΠΈΠ³Ρ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π° ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π΅Π΅ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² ΡΠ°ΠΉΠΌΠ΅ΡΠ΅). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ `keys:state(ΠΈΠΌΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ) `.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ `true ` Π΄Π»Ρ Π½Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈ `false ` -- Π΄Π»Ρ ΠΎΡΠΆΠ°ΡΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
require "timer" require "keys" game.timer = function(s) -- ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΊΡΡΡΠΎΡ Π²ΠΏΡΠ°Π²ΠΎ dprint("state of 'right' key: ", keys:state 'right') p("Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ 'Π²ΠΏΡΠ°Π²ΠΎ':", keys:state 'right') end timer:set(30)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΠ΅ ΠΊΠ»ΠΈΠΊΠΈ ΠΏΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΡΡΠ΅Π½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎ ΡΠΎΠ½Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ `click `. Π’Π°ΠΊΠΆΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
instead.mouse_pos([x, y])
ΠΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ `(x, y) `, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΠΊΡΡΡΠΎΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ (Π²ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° ΠΎΠΊΠ½Π° INSTEAD).
require "click" function click:filter(press, btn, x, y, px, py) dprint(press, btn, x, y, px, py) return press and px -- Π»ΠΎΠ²ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ end room { nam = 'main'; pic = "box:320x200,red"; onclick = function(s, press, btn, x, y, px, py) pn("ΠΡ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ: ", px, ", ", py) pn("ΠΠ±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ: ", x, ", ", y) p("ΠΠ½ΠΎΠΏΠΊΠ°: ", btn) end; }
_ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!_ Π INSTEAD ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠΈΠ»ΡΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π°ΡΠΈΡ Π±ΡΡΡΡΡΠ΅ ΠΊΠ»ΠΈΠΊΠΈ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠ° Π΄ΡΠ΅Π±Π΅Π·Π³Π° ΠΊΠ»Π°Π²ΠΈΡ ΠΌΡΡΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΈΠ»ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ `instead.mouse_filter() `, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠ»ΡΡΡΠ° ΠΌΡΡΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ - Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
function start() dprint("Mouse filter delay: ", instead.mouse_filter()) instead.mouse_filter(0) -- Π²ΡΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΠΈΠ»ΡΡΡ end
ΠΠ»ΠΈ ΡΠ°ΠΊ:
old_filter = instead.mouse_filter(0) -- Π²ΡΠΊΠ»ΡΡΠΈΠ»ΠΈ ... instead.mouse_filter(old_filter) -- Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ
ΠΠΎΠ΄ΡΠ»Ρ theme ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΠΌΡ Π½Π° Π»Π΅ΡΡ.
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΠΌΡ Π½Π° Π»Π΅ΡΡ Π΄Π»Ρ ΠΈΠ³Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΠΌΡ -- ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ! ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΡΠ° ΠΈΠ³ΡΠ° Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π³ΠΎΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΠΌΡ ΠΈΠ· ΠΊΠΎΠ΄Π° -- ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΡ ΡΠ΅ΠΌΡ ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π΅ Π² ΠΈΠ³ΡΡ!
ΠΡΠΈ ΡΡΠΎΠΌ, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ΅ΠΌΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ²ΡΠΎΡ ΠΈΠ³ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΠΌΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ `start() `, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠΏΡΠ°ΠΉΡΠΎΠ².
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
-- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠΊΠ½Π° Π²ΡΠ²ΠΎΠ΄Π° theme.win.geom(x, y, w, h) theme.win.color(fg, link, alink) theme.win.font(name, size, height) theme.win.gfx.up(pic, x, y) theme.win.gfx.down(pic, x, y) -- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ theme.inv.geom(x, y, w, h) theme.inv.color(fg, link, alink) theme.inv.font(name, size, height) theme.inv.gfx.up(pic, x, y) theme.inv.gfx.down(pic, x, y) theme.inv.mode(mode) -- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΌΠ΅Π½Ρ theme.menu.bw(w) theme.menu.color(fg, link, alink) theme.menu.font(name, size, height) theme.menu.gfx.button(pic, x, y) -- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π³ΡΠ°ΡΠΈΠΊΠΈ theme.gfx.cursor(norm, use, x, y) theme.gfx.mode(mode) theme.gfx.pad(pad) theme.gfx.bg(bg) -- Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π·Π²ΡΠΊΠ° theme.snd.click(name);
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΠΌ:
theme.get 'ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΡ';
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
theme.set ('ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΡ', Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅);
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ΅ΠΌΡ Π½Π° ΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΈΠ³ΡΡ:
theme.reset 'ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ'; theme.win.reset();
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ΅ΠΌΡ.
theme.name()
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ -- ΠΈΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ΅ΠΌΡ. ΠΡΠ»ΠΈ ΠΈΠ³ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» `theme.ini `, ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ ΡΠΎΡΠΊΡ. ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, Π²ΠΊΠ»ΡΡΠ΅Π½ Π»ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΠΌ ΠΈΠ³Ρ:
if theme.name() ~= '.' then error "Please, enable own theme mode in menu!" end
ΠΡΠ»ΠΈ Π² ΠΈΠ³ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΠΌ, ΡΠΎ ΠΈΠΌΡ ΡΠ΅ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
if theme.name() == '.default' then -- Π½Π°ΡΠ° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΠ΅ΠΌΠ° default elseif theme.name() == 'default' then -- ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ΅ΠΌΠ° default Π² INSTEAD end
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
theme.gfx.bg "dramatic_bg.png"; theme.win.geom (0,0, theme.get 'scr.w', theme.get 'scr.h'); theme.inv.mode 'disabled'
ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅ΠΌΡ:
theme.scr.w() -- ΡΠΈΡΠΈΠ½Π° theme.scr.w() -- Π²ΡΡΠΎΡΠ°
ΠΠΎΠ΄ΡΠ»Ρ `sprite ` ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π°ΠΏΠΈΡΠΈΡΠ΅:
require "sprite"
Π‘ΠΏΡΠ°ΠΉΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΡΠ°ΠΉΠ» ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΏΡΠ°ΠΉΡΠΎΠ² -- Π·Π°Π΄Π°ΡΠ° Π°Π²ΡΠΎΡΠ° ΠΈΠ³ΡΡ. ΠΠ±ΡΡΠ½ΠΎ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `init() ` ΠΈ/ΠΈΠ»ΠΈ `start() `. `start() ` Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ³ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ³ΡΡ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠΏΡΠ°ΠΉΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π΄Π²Π° ΠΌΠΎΠ΄ΡΠ»Ρ: ΡΠΏΡΠ°ΠΉΡΡ ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ. ΠΠΎ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ, ΠΎΠ½ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅. ΠΠ°ΡΠ½Π΅ΠΌ ΡΠΎ ΡΠΏΡΠ°ΠΉΡΠΎΠ²:
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΏΡΠ°ΠΉΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ `sprite.new `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
declare 'my_spr' (sprite.new 'gfx/bird.png') local heart = sprite.new 'heart.png' local blank = sprite.new (320, 200) -- ΠΏΡΡΡΠΎΠΉ ΡΠΏΡΠ°ΠΉΡ 320x200
Π£ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ "ΡΠ²Π΅ΡΠ°" ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΡΡΠΎΠΊΠΈ Π²ΠΈΠ΄Π°: `green `, `red `, `yellow ` ΠΈΠ»ΠΈ `#333333` `, `#2d80ff `...
ΠΡΠΈΠΌΠ΅Ρ:
local spr = sprite.new(320, 200) spr:fill 'blue' local spr2 = sprite.new 'fish.png' spr2:draw(spr, 0, 0)
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΡΡΠ°ΠΌΠΈ. Π¨ΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `sprite.fnt() `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
local font = sprite.fnt('sans.ttf', 32)
Π£ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
sprite.font_scaled_size(size)
ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡΡΠ° Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΡΡΠ°Π²ΠΈΠ» ΠΈΠ³ΡΠΎΠΊ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ INSTEAD. ΠΡΠ»ΠΈ Π²Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ³ΡΠ΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΡΠΈΡΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ:
local f = sprite.fnt('sans.ttf', 32) local spr = sprite.new('box:320x200,black') f:text("HELLO!", 'white'):draw(spr, 0, 0)
Π’Π΅ΠΏΠ΅ΡΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ sprite.
Π€ΡΠ½ΠΊΡΠΈΡ `pic ` ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠΏΡΠ°ΠΉΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π½ΠΎΠ²ΡΠΉ ΡΠΏΡΠ°ΠΉΡ (ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ), ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠΏΡΠ°ΠΉΡ. ΠΡΠ»ΠΈ Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΏΡΠ°ΠΉΡ Π²Π½ΠΎΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠ°Π΄ΡΠ΅ ΠΈΠ³ΡΡ. Π’Π°ΠΊ, ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°ΠΉΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ:
require "sprite" require "timer" local spr = sprite.new(320, 200) function game:timer() local col = { 'red', 'green', 'blue'} col = col[rnd(3)] spr:fill(col) return false -- ΠΠ°ΠΆΠ½ΠΎ! Π’Π°ΠΊ, ΡΡΠ΅Π½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° end game.pic = function() return spr end -- ΡΡΠ½ΠΊΡΠΈΡ: ΡΠ°ΠΊ ΠΊΠ°ΠΊ -- ΡΠΏΡΠ°ΠΉΡ ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (Π½Π΅ ΡΡΡΠΎΠΊΠ°) function start() timer:set(30) end room { nam = 'main'; decor = [[ΠΠΠΠΠΠ!]]; }
Π€ΡΠ½ΠΊΡΠΈΡ `sprite.scr() ` Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°ΠΉΡ - ΡΠΎΠ½. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π² ΡΡΠΎΡ ΡΠΏΡΠ°ΠΉΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ°ΠΉΠΌΠ΅ΡΠ΅. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ½Π° Π½Π° Π»Π΅ΡΡ, Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ `theme `. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
--$Author: Andrew Lobanov require 'sprite' require 'theme' require 'timer' declare { x = 0, y = 0, dx = 10, dy = 10, } const { w = theme.scr.w(), h = theme.scr.h(), } instead.fading = false local bg, red, green function init() theme.set('scr.col.bg', '#000000') theme.set('win.col.fg', '#aaaaaa') theme.set('win.col.link', '#ffaa00') theme.set('win.col.alink', '#ffffff') bg = sprite.new(w, h) bg:fill('black') red = sprite.new(w, h) red:fill('#ff0000') red = red:alpha(128) green = sprite.new(w, h) green:fill('#00ff00') green = green:alpha(64) bg:copy(sprite.scr()) timer:set(25) end function game:timer() bg:copy(sprite.scr()) red:draw(sprite.scr(), x, 0, 128) green:draw(sprite.scr(), 0, y, 64) x = x + dx if x >= w or x == 0 then dx = -dx end y = y + dy if y >= h or y == 0 then dy = -dy end return false -- ΠΠ°ΠΆΠ½ΠΎ! end room { nam = 'main', disp = 'Test. Test? Test!', decor = 'Lorem ipsum'; }
_ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!_ ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ INSTEAD Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠ΅Π±Ρ Π² ΡΠ΅ΠΆΠΈΠΌ "ΠΏΠ°ΡΠ·Ρ". ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π΄Π° Π²ΡΠ±ΡΠ°Π½ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΈΠ· ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ (ΠΊΡΡΡΠΎΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π²ΠΈΠ΄ Π½Π° ΡΠ΅ΡΡΠ΅ΡΠ΅Π½ΠΊΠΈ) ΡΠΎΠ±ΡΡΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΈΠ³ΡΠΎΠΊ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ°Π·ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΡ ΠΈΠ³ΡΡ. ΠΡΠ»ΠΈ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°ΠΌΡΡΠ»Π° ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠ΅Ρ ΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ ΡΠΎΠ½Π° Π·Π°ΠΌΠΈΡΠ°Π΅Ρ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π°:
instead.wait_use(false)
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π²ΡΠ·ΠΎΠ² Π² `init() ` ΠΈΠ»ΠΈ `start() ` ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ - ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ, ΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΈΠ³ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `img `, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
require "sprite" require "timer" require "fmt" obj { nam = '$spr'; { ["ΠΊΠ²Π°Π΄ΡΠ°Ρ"] = sprite.new 'box:32x32,red'; }; act = function(s, w) return fmt.img(s[w]) end } room { nam = 'main'; decor = [[Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π²ΡΡΠ°Π²ΠΈΠΌ ΡΠΏΡΠ°ΠΉΡ: {$spr|ΠΊΠ²Π°Π΄ΡΠ°Ρ}.]]; } #+BEGIN_SRC lua
Π INSTEAD ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π³ΡΠ°ΡΠΈΠΊΠ΅. Π ΡΠ΅ΠΌΠ΅ ΠΎΠ½ Π·Π°Π΄Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
scr.gfx.mode = direct
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π² `theme.ini `, ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ `theme `. ΠΠ»ΠΈ (ΡΡΠΎ Π»ΡΡΡΠ΅), ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ:
sprite.direct(true)
ΠΡΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ -- ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ `true `. `sprite.direct() ` Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° -- Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ (`true ` -- Π΅ΡΠ»ΠΈ `direct ` Π²ΠΊΠ»ΡΡΠ΅Π½.)
Π ΡΡΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ³ΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΊΠ½Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΠΊΡΠ°Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠΏΡΠ°ΠΉΡΠΎΠΌ:
sprite.scr()
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
require "sprite" require "timer" require "theme" sprite.direct(true) local stars = {} local w, h local colors = { "red", "green", "blue", "white", "yellow", "cyan", "gray", "#002233", } function game:timer() local scr = sprite.scr() scr:fill 'black' for i = 1, #stars do local s = stars[i] scr:pixel(s.x, s.y, colors[s.dy]) s.y = s.y + s.dy if s.y >= h then s.y = 0 s.x = rnd(w) - 1 s.dy = rnd(8) end end end function start() w, h = theme.scr.w(), theme.scr.h() w = std.tonum(w) h = std.tonum(h) for i = 1, 100 do table.insert(stars, { x = rnd(w) - 1, y = rnd(h) - 1, dy = rnd(8) }) end timer:set(30) end
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ:
require "timer" require "sprite" require "theme" local spr = sprite declare { fnt = false, ball = false, ballw = 0, ballh = 0, bg = false, line = false, G = false, by = false, bv = false, bx = false, t1 = false, } function init() fnt = spr.fnt(theme.get 'win.fnt.name', 32); ball = fnt:text("INSTEAD 3.0", 'white', 1); ballw, ballh = ball:size(); bg = spr.new 'box:640x480,black'; line = spr.new 'box:320x8,lightblue'; spr.direct(true) end function start() timer:set(20) G = 9.81 by = -ballh bv = 0 bx = 320 t1 = instead.ticks() end function phys() local t = timer:get() / 1000; bv = bv + G * t; by = by + bv * t; if by > 400 then bv = - bv end end function game:timer(s) local i for i = 1, 10 do phys() end if instead.ticks() - t1 >= 20 then bg:copy(spr.scr(), 0, 0); ball:draw(spr.scr(), (640 - ballw) / 2, by - ballh/2); line:draw(spr.scr(), 320/2, 400 + ballh / 2); t1 = instead.ticks() end end
_ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!_ `direct ` ΡΠ΅ΠΆΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΡΡ Π°ΡΠΊΠ°Π΄Π½ΡΡ ΠΈΠ³Ρ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΡΠ±ΡΠ°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `instead.mouse_show() `
instead.mouse_show(false)
ΠΡΠΈ ΡΡΠΎΠΌ Π² ΠΌΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° INSTEAD ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΡΡΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΠΈΠ΄Π΅Π½.
Π ΡΡΠ½ΠΊΡΠΈΠΈ `start ` ΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΠΌΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³ΡΠ°ΡΠΈΠΊΠΈ ΡΠΏΡΠ°ΠΉΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
require "sprite" require "theme" function start() -- Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ½ Π½Π° ΡΠΏΡΠ°ΠΉΡ local spr = sprite.new(800, 600) spr:fill 'blue' spr:fill (100, 100, 32, 60, 'red') theme.set('scr.gfx.bg', spr) end
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π½ΠΎΡΠΈΡΡ Π½Π° ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡΡ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ΄Π»ΠΎΠΆΠΊΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π²ΡΠ·ΠΎΠ² `theme.get('scr.gfx.bg') ` Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Π²ΠΈΠ΄Π° `spr:xxxxxxxxxxx `, Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΏΡΠ°ΠΉΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ½ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ `sprite.scr() ` ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ `theme.set('scr.gfx.bg', spr) ` Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠΏΡΠ°ΠΉΡΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠΏΡΠ°ΠΉΡΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ -- Π½Π°Π±ΠΎΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈ ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠΏΡΠ°ΠΉΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ `pixels.new() `.
ΠΡΠΈΠΌΠ΅ΡΡ:
local p1 = pixels.new(320, 200) -- ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ 320x200 local p2 = pixels.new 'gfx/apple.png' -- ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΠΈΠ· -- ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ local p3 = pixels.new(320, 200, 2) -- ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ 320x200, -- ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΈΡ Π² ΡΠΏΡΠ°ΠΉΡ -- Π±ΡΠ΄ΡΡ ΡΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΠΎ -- 640x400
ΠΠ±ΡΠ΅ΠΊΡ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ: `r `, `g `, `b `, `a ` -- ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ: ΠΊΡΠ°ΡΠ½ΡΠΉ, Π·Π΅Π»Π΅Π½ΡΠΉ, ΡΠΈΠ½ΠΈΠΉ, ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ. ΠΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ `0 ` Π΄ΠΎ `255 `). `x `, `y ` - ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π°, `w `, `h ` -- ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° ΠΎΠ±Π»Π°ΡΡΠΈ.
Π’Π°ΠΊΠΆΠ΅, Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΡΠΈΡΡΠ°ΠΌΠΈ:
ΠΡΠΈ ΡΡΠΎΠΌ, Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° "ΡΡΠΈΡΡ" ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ `text `:
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
local fnt = pixels.fnt("sans.ttf", 64) local t = fnt:text("HELLO, INSTEAD!", 'black') pxl:copy_spr(sprite.scr()) pxl2:draw_spr(sprite.scr(), 100, 200); t:draw_spr(sprite.scr(), 200, 400)
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ (Π°Π²ΡΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΠ½Π΄ΡΠ΅ΠΉ ΠΠΎΠ±Π°Π½ΠΎΠ²):
require "sprite" require "timer" sprite.direct(true) declare 'pxl' (false) declare 't' (0) function game:timer() local x, y, i t = t + 1 for x = 0, 199 do for y = 0, 149 do i = (x * x + y * y + t) pxl:val(x, y, 0, i, i / 2) end end pxl:copy_spr(sprite.scr()) end function start(load) pxl = pixels.new(200, 150, 4) timer:set(20) end
ΠΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `pixels ` ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΌΡ ΠΠ΅ΡΠ»ΠΈΠ½Π°. Π INSTEAD ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ `[-1; 1] ` Π° Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ.
ΠΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ Π·Π²ΡΠΊΠΎΠΌ. ΠΠΎΠ΄ΡΠ»Ρ `snd ` ΠΈΠΌΠ΅Π΅Ρ Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ Π·Π²ΡΠΊΠΎΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΈΡΡ Π·Π²ΡΠΊ ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½.
require 'snd' local wav = snd.new 'bark.ogg'
ΠΡΠΎΠΌΠ΅ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π·Π²ΡΠΊ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° lua:
local wav = {} for i = 1, 10000 do table.insert(wav, rnd() * 2 - 1) -- ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ -1 Π΄ΠΎ 1 end function start() local p = snd.new(22050, 1, wave) -- ΡΠ°ΡΡΠΎΡΠ°, ΡΠΈΡΠ»ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ Π·Π²ΡΠΊ p:play() end
ΠΠ²ΡΠΊ Π·Π°Π΄Π°Π΅ΡΡΡ Π² Π½ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅: `[-1 .. 1] `
ΠΠ²ΡΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ³ΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ `:play([chan], [loop]) `, Π³Π΄Π΅ `chan ` -- ΠΊΠ°Π½Π°Π» `(0 - 7) `, `loop ` - ΡΠΈΠΊΠ»Ρ (`0 ` - Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ).
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ -- Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π²ΡΠΊΠ° Π½Π° Π»Π΅ΡΡ (ΠΏΠΎΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΡΡΡΠ΅):
require "snd" function cb(hz, len, data) for i = 1, len do data[i] = rnd() * 2 - 1 end end function start() snd.music_callback(cb) end
ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ³ΡΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ. Π’Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈΠ³ΡΡ.
ΠΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΡΡΡΠΈ `prefs ` ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ.
CΠΎΡ ΡΠ°Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
prefs:store()
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈΠ³ΡΡ, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ, Π²ΡΠ·ΡΠ²Π°Ρ `prefs:store() `.
Π£Π½ΠΈΡΡΠΎΠΆΠΈΡΡ ΡΠ°ΠΉΠ» Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ:
prefs:purge()
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ³ΡΡ (ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ `start() `), Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ Π²ΡΡΡΠ½ΡΡ:
prefs:load()
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
-- $Name: Π’Π΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ prefs$ -- $Version: 0.1$ -- $Author: instead$ -- ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ click require "click" -- ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ prefs require "prefs" -- ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° prefs.counter = 0; -- ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° "ΠΊΠ»ΠΈΠΊΠΎΠ²" game.onclick = function(s) -- ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ prefs.counter = prefs.counter + 1; -- ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΡΠ΅ΡΡΠΈΠΊ prefs:store(); -- Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ p("ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ ", prefs.counter ," ΠΊΠ»ΠΈΠΊΠΎΠ²"); end; -- Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠ»ΠΈΠΊΠΈ game.pic = 'box:320x200,black'; room { nam = 'main', title = "ΠΠΎΠΌΠ½Π°ΡΠ° ΠΊΠ»ΠΈΠΊΠΎΠ²", -- Π΄Π΅Π»Π°Π΅ΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΡΠ°ΡΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ -- Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠ΅Π½Ρ decor = [[ ΠΡΠΎΡ ΡΠ΅ΡΡ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ <<prefs>>. ]]; };
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ, ΡΠΈΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ ΠΊΠ»ΠΈΠΊΠΎΠ² Π½Π΅ ΠΎΠ±Π½ΡΠ»ΠΈΡΡΡ!
ΠΠΎΠ΄ΡΠ»Ρ `snapshots ` ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³ΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π² ΠΈΠ³ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²Π΅Π΄ΡΡΠ΅Π΅ ΠΊ ΠΏΡΠΎΠΈΠ³ΡΡΡΡ. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΡΡ ΠΈΠ³ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊ, ΡΡΠΎ ΠΈΠ³ΡΠΎΠΊ Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΊ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ½Π°ΠΏΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ: `snapshots:make() `. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ΠΎ ΠΈΠΌΡ ΡΠ»ΠΎΡΠ°.
_ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅!!!_ Π‘Π½Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ°ΠΊΡΠ° ΠΈΠ³ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π΅ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈΠ³ΡΡ.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ½Π°ΠΏΡΠΎΡΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ `snapshots:restore() `. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π΄Π°Π½ΠΎ ΠΈΠΌΡ ΡΠ»ΠΎΡΠ°.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ½Π°ΠΏΡΠΎΡΠ° Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ `snapshots:remove() `. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π°Π»ΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΡΠ½Π°ΠΏΡΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π»ΠΈΡΠ½Π΅Π΅ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ°ΠΉΠ»Π°Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
require "snapshots" room { nam = 'main'; title = 'ΠΠ³ΡΠ°'; onenter = function() snapshots:make() -- ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΎΡΠΊΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ end; decor = [[{#red|ΠΡΠ°ΡΠ½ΠΎΠ΅} ΠΈΠ»ΠΈ {#black|ΡΠ΅ΡΠ½ΠΎΠ΅}?]]; }: with { obj { nam = '#red'; act = function() p [[ΠΡ Π²ΡΠΈΠ³ΡΠ°Π»ΠΈ!]] end; }; obj { nam = '#black'; act = function() walk 'end' end; } } room { nam = 'end'; title = 'ΠΠΎΠ½Π΅Ρ'; }: with { obj { dsc = [[{ΠΠ΅ΡΠ΅ΠΈΠ³ΡΠ°ΡΡ?}]]; act = function() snapshots:restore() -- Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ end; } }
Π£ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² STEAD3 ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΠΈΠ³ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ ΡΠΎΡΡΠ°Π² ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Ρ ΠΎΡΡ Π±Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΊΡΠ°ΡΠΊΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ.
ΠΡΠΎΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² `obj `, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
ΠΡΠΎΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² room, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
ΠΡΠΎΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² obj, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
ΠΡΠΎΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² `obj `, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ:
Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠ²ΡΠ·Π°Π½ Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π°Π΄Π°Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ Π·Π°Π΄Π°ΡΡΡΡ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² `obj ` Π·Π°Π΄Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° `{} `, Π° `noinv ` -- Π±ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ -- ΡΡΠΎ ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΡΡΠΈΠ±ΡΡΡ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π½Ρ ΠΈ ΠΈΠ½Π²Π΅Π½ΡΠ°ΡΡ.
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ Π°ΡΡΠΈΠ±ΡΡ Π·Π°Π΄Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ `(s) ` -- ΡΡΠΎ ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΡΠΈΠ±ΡΡΡ - ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠΈΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ .
ΠΠΈΠΆΠ΅ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΡ ΡΠ΅Π»ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ;
ΠΠΎΡ ΠΈ Π²ΡΠ΅, Π·Π΄Π΅ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ -- Π²Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ!
Π― ΡΠ΄Π΅Π»Π°Π» ΠΏΠ΅ΡΠ²ΡΡ Π²Π΅ΡΡΠΈΡ INSTEAD Π² 2009 Π³ΠΎΠ΄Ρ. Π ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π±Ρ Π½Π΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΠΌΠΎΡ ΠΈΠ³ΡΡΡΠΊΠ° (ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ) ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π‘Π΅ΠΉΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠΈΡΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ΡΠ»ΠΎΠ²ΠΈΠ΅, Π½Π° Π΄Π²ΠΎΡΠ΅ 2017 Π³ΠΎΠ΄ ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ. ΠΡΠ°Π²Π΄Π°, ΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΊΡΠ»ΡΡΡΡΡ ΠΏΠΎ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ. Π Ρ ΠΎΡΠΎΡΠΈΡ ΠΏΡΠΈΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ -- ΠΏΠΎ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Ρ ΡΠ΅ΠΊΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ³Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π». ΠΠ½ΠΈ Π½Π΅ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠ΅, ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡΠ±ΠΈΡΠ°ΡΡ Π²Π°ΡΡ ΠΆΠΈΠ·Π½Ρ Π²Π·Π°ΠΌΠ΅Π½ Π½Π° Π²Π΅ΡΠ½ΠΎ Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Π½ΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅, Π½Π΅ Π²ΡΠ½ΡΠΆΠ΄Π°ΡΡ Π²Π°Ρ ΡΡΡΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΡΠΈΠΆΠΈΠ²Π°ΡΡ Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΎΠΌ Π² ΡΠ°Π·Π΄ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅Π·Π΄ΠΎΡΠΎΠ²ΠΎΠΉ Π½Π΅ΡΠ²ΠΎΠ·Π½ΠΎΡΡΠΈ... ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²Π·ΡΡΡ Π»ΡΡΡΠ΅Π΅ ΠΈΠ· ΠΌΠΈΡΠ° Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΈΠ³Ρ. Π ΡΠΎ, ΡΡΠΎ ΠΆΠ°Π½Ρ ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ -- Π΄Π°ΠΆΠ΅ ΠΏΠ»ΡΡ.
ΠΡΡΠΎΡΠΈΡ INSTEAD, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠΡΠ»ΠΎ Π²ΡΠΏΡΡΠ΅Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ³Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ Π½Π°Π·Π²Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌΠΈ! ΠΡ Π°Π²ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ Π΄Π΅Π», Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΠΈΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΆΠ΅ ΠΆΠΈΠ²ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΆΠΈΠ·Π½ΡΡ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΡ Π² ΡΠΎΠ·Π½Π°Π½ΠΈΠΈ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½ΠΈΡ ΠΈΠ³ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΏΠΎΠΌΠ½ΡΡ. ΠΡΡΡΡ "ΡΠΈΡΠ°ΠΆ" ΡΡΠΈΡ ΠΈΠ³Ρ Π½Π΅ ΡΠ°ΠΊ Π²Π΅Π»ΠΈΠΊ, Π½ΠΎ ΡΠΎ ΡΡΠΎ Ρ ΡΠ²ΠΈΠ΄Π΅Π», ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ "ΠΎΠΏΡΠ°Π²Π΄Π°Π»ΠΎ" Π²ΡΠ΅ ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ Π½Π° Π΄Π²ΠΈΠΆΠΎΠΊ. Π― Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ Π½Π΅ Π·ΡΡ. Π’Π°ΠΊ ΡΡΠΎ Ρ Π½Π°ΡΠ΅Π» Π² ΡΠ΅Π±Π΅ ΡΠΈΠ»Ρ, ΠΈ ΡΠ΄Π΅Π»Π°Π» Π΄Π²ΠΈΠΆΠΎΠΊ Π΅ΡΠ΅ Π»ΡΡΡΠ΅, Π²ΡΠΏΡΡΡΠΈΠ² STEAD3. Π― Π½Π°Π΄Π΅ΡΡΡ, ΠΎΠ½ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΠΈ Π²Π°ΠΌ.
Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΠΈΡΠ°Π»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Ρ ΠΌΠΎΠ³Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΆΠ΅Π»Π°ΡΡ Π²Π°ΠΌ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ Π²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΈΡΡΠΎΡΠΈΡ. Π’Π²ΠΎΡΡΠ΅ΡΡΠ²ΠΎ -- ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π°. :)
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ ΠΈ ΡΠ΄Π°ΡΠΈ. ΠΠ΅ΡΡ ΠΠΎΡΡΡ , ΠΌΠ°ΡΡ 2017.