Skip to content

justmc-os/jmcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JMCC

JustMC Code Compiler - компилятор языка JustCode Π² структуру Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ΄ΠΈΠ½Π³Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° сСрвСрС JustMC

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  1. Установка
  2. ИспользованиС
  3. Бинтаксис
  4. ДокумСнтация
  5. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
  6. ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ измСнСния

Установка

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JMCC Π½ΡƒΠΆΠ½ΠΎ:

  1. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ страницу Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² GitHub

  2. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий Ρ„Π°ΠΉΠ» с компилятором для вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (-win для Windows, -linux для Linux) ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ

  3. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку Π² ΠΏΠ°ΠΏΠΊΠ΅ с установлСнным Ρ„Π°ΠΉΠ»ΠΎΠΌ:

    • Win + R Π½Π° Windows, Π·Π°Ρ‚Π΅ΠΌ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ cmd Π² появивщССся ΠΎΠΊΠ½ΠΎ
    • На Unix систСмах - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»
  4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ компилятор:

    # Для Windows
    $ jmcc-win.exe compile example.jc
    
    # Для Linux
    $ ./jmcc-linux compile example.jc

Для просмотра ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ help

ИспользованиС

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ jmcc, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ синтаксис для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .jc ΠΈ Ρ‚Π°ΠΊΠΈΠΌ содСрТаниСм:

event<player_join> {
  player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚!")
}

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

$ jmcc compile [имя Ρ„Π°ΠΉΠ»Π°].jc

Если компиляция Π±Ρ‹Π»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ, Π² ΠΏΠ°ΠΏΠΊΠ΅ с вашим Ρ„Π°ΠΉΠ»ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ», с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Π½ΠΎ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .json. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° сСрвСрС, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -u:

$ jmcc compile -u [имя Ρ„Π°ΠΉΠ»Π°].jc

ΠŸΡ€ΠΈ Π΅Π³ΠΎ использовании, компилятор Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ компиляции Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Π° сразу ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΎΠ±Π»Π°ΠΊΠΎ. Если компиляция Π±Ρ‹Π»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ, Ρƒ вас Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ссылка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сСрвСрС Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Π’Π°ΠΆΠ½ΠΎ: ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ ссылки, созданныС ΠΏΡ€ΠΈ использовании Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° -u Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹. ПослС этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ скомпилированный ΠΊΠΎΠ΄ Π½Π° большСС врСмя, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² сторонних Ρ„Π°ΠΉΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊΠ°Ρ….

Бинтаксис

ЗначСния

"ВСкст!"      // ВСкст
1             // Число
[1, 2]        // Бписок

value::health // Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
              // (ΠΎΠ± этом Π±ΡƒΠ΄Π΅Ρ‚ дальшС)

item("stone") // ЗначСния, созданныС Ρ„Π°Π±Ρ€ΠΈΠΊΠ°ΠΌΠΈ
              // (ΠΎΠ± этом Π±ΡƒΠ΄Π΅Ρ‚ дальшС)

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС ΠΈΡ… опрСдСлСния. Π”ΠΎ опрСдСлСния Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ доступны, ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΈΡ… использовании. Π’Π°ΠΊ ΠΆΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

var a = 1;

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

game var a = 1;

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ сохранённых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

save var a = 1;
ВстроСнныС (inline) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ВстроСнныС (inline) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ β€” ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просчитываСтся ΠΏΡ€ΠΈ компиляции, ΠΈ замСняСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΡ… использовании. Им нСльзя ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ динамичСскиС значСния, Ρ‚ΠΈΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² дСйствий с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ встроСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

inline var a = 1;
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с динамичСским ΠΈΠΌΠ΅Π½Π΅ΠΌ

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя сСлСкторы Π»ΠΈΠ±ΠΎ строчныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, состоящим ΠΈΠ· нСстандартных символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ `` . К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

ИспользованиС сСлСктора Π² ΠΈΠΌΠ΅Π½ΠΈ

var %player%_пСрСмСнная = 1;

ИспользованиС нСстандартных символов Π² ΠΈΠΌΠ΅Π½ΠΈ

var `странная пСрСмСнная ⛏️` = 2;

ИспользованиС Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΈΠΌΠ΅Π½ΠΈ

var a = 1;
var `пСрСмСнная $a` = 2;
//  ^^^^^^^^^^^^^^^
//  Данная пСрСмСнная послС компиляции Π±ΡƒΠ΄Π΅Ρ‚
//  ΠΈΠΌΠ΅Ρ‚ΡŒ имя "пСрСмСнная %var_local(a)"

// ...или со скобками:

var `пСрСмСнная 2 ${a}` = 2;
//  ^^^^^^^^^^^^^^^^^^^
//  Данная пСрСмСнная послС компиляции Π±ΡƒΠ΄Π΅Ρ‚
//  ΠΈΠΌΠ΅Ρ‚ΡŒ имя "пСрСмСнная 2 %var_local(a)"

ИспользованиС встроСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΈΠΌΠ΅Π½ΠΈ

inline var a = 1 + 1; // <--- Π­Ρ‚Π° пСрСмСнная встроСна!
var `пСрСмСнная $a` = 2;
//  ^^^^^^^^^^^^^^^
//  Данная пСрСмСнная послС компиляции Π±ΡƒΠ΄Π΅Ρ‚
//  ΠΈΠΌΠ΅Ρ‚ΡŒ имя "пСрСмСнная 2"
НСопрСдСлённыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π’ Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ со 100% ΡƒΠ²Π΅Ρ€Π΅Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ пСрСмСнная сущСствуСт Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ контСкстС, Π½ΠΎ компилятор Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π²Π°ΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ нСизвСстной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ значСния:

var a;
game var a;

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создано дСйствия "Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ", Π½ΠΎ эта пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ.

Inline ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ нСльзя Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ. Они всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ создании.

Π€Π°Π±Ρ€ΠΈΠΊΠΈ

Π€Π°Π±Ρ€ΠΈΠΊΠΈ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Ими ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, зСлья, Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅:

var a = location(1, 2, 3);

πŸ““ Бписок Ρ„Π°Π±Ρ€ΠΈΠΊ

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ - Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям ΠΈΠ· %math. ДоступныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

  • abs(число) - ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа
  • sqrt(число) - ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΡ€Π΅Π½ΡŒ числа
  • cbrt(число) - ΠšΡƒΠ±ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ числа
  • ceil(число) - ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ числа Π΄ΠΎ большСго значСния
  • floor(число) - ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ числа Π΄ΠΎ мСньшСго значСния
  • sin(число) - Бинус числа
  • cos(число) - ΠšΠΎΡΠΈΠ½ΡƒΡ числа
  • round(число, N) - ΠžΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ числа Π΄ΠΎ N Ρ†ΠΈΡ„Π΅Ρ€ послС запятой
  • pow(число, ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ) - Π’ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ числа Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ
  • min(число, число) - МинимальноС ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  • max(число, число) - МаксимальноС ΠΈΠ· Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

ИспользованиС:

var a = floor(0.3) + abs(-3) + sqrt(2);

ДСйствия

Π’Ρ‹Π·ΠΎΠ² дСйствий Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Анатомия Π²Ρ‹Π·ΠΎΠ²Π°:

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
^^^^^^
пСрСмСнная ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
      ^^
      Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ Π²Ρ‹Π·ΠΎΠ²Π°:
      :: для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²
       . для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
        ^^^^^^^
        имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
                ^^^^^^^^^^^^^
                Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π°

АргумСнты Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ:

  • ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ

    player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
  • с ΠΈΠΌΠ΅Π½Π΅ΠΌ

    player::message(text = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
  • ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ

    player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!", merging = "SPACES")

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ дСйствий компилятор провСряСт соотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ. ΠŸΡ€ΠΈ этом, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π° соотвСтствиС (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ своё Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅).

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли дСйствиС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ число, Ρ‚ΠΎ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с числом Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

var a = 1;
a.increment('НС число!');
//          ^^^^^^^^^^^
//  Ошибка: АргумСнт с Ρ‚ΠΈΠΏΠΎΠΌ тСкст Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ
//          установлСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ с Ρ‚ΠΈΠΏΠΎΠΌ число

ДСйствия, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ списка ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ автоматичСски ΠΎΠ±Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² список:

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
//              ^^^^^^^^^^^^^
//              ДСйствиС player::message ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ список,
//              Π½ΠΎ Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

player::message(["ΠŸΡ€ΠΈΠ²Π΅Ρ‚", " ", "ΠΌΠΈΡ€!"])
//              ^^^^^^^^^^^^^^^^^^^^^^^
//              Π’Π°ΠΊ Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

ДСйствия, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ пСрСчислСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ тСкст Π² Π²ΠΈΠ΄Π΅ значСния:

player::message(["ΠŸΡ€ΠΈΠ²Π΅Ρ‚", "ΠΌΠΈΡ€"], merging = "SEPARATE_LINES")
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ катСгориям дСйствий: дСйствия ΠΈΠ³Ρ€ΠΎΠΊΠ° (player), дСйствия сущности (entity), дСйствия ΠΌΠΈΡ€Π° (world), дСйствия с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ (variable). ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ дСйствия находятся Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ code

Π’Ρ‹Π·ΠΎΠ² дСйствия ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€!")
code::wait(10, time_unit = "SECONDS")
player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚ ΠΌΠΈΡ€ спустя 10 сСкунд!")
Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ дСйствия

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΈΠ· списка ΠΏΠΎ индСксу

var a = [1, 2];
var b = a[0];

Установка значСния Π² спискС ΠΏΠΎ индСксу

var a = [1, 2];
a[0] = 3;
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Π»ΠΈΠ±ΠΎ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚):

ДСйствиС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

var a = 1;
a.increment();

ДСйствиС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚

var a = ['ΠŸΡ€ΠΈΠ²Π΅Ρ‚', 'ΠΌΠΈΡ€'];
a.set_at(1, 'сСрвСр');

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

var a = variable::create_list([1, 2])
// Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ:
// var a = [1, 2]

var b = variable::get_at(a, 0)
// Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ:
// var b = a[0]

var C = 3;
var D = C.clamp(1, 2);
// ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ D Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ примСнСния
// дСйствия clamp ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ C
ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΡ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅:

repeat::forever() {
  player::message("Π― Π±ΡƒΠ΄Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π²Π΅Ρ‡Π½ΠΎ");
  code::wait(1);
}

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΡ с условиСм:

var a = 1;
repeat::while(a.less(10)) {
  player::message("A мСньшС 10!");
  a++;
  code::wait(1);
}

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΡ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

repeat::on_range(0, 10) { index ->
  player::message("Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ индСкс: $index");
  code::wait(1);
}

Бобытия

πŸ““ Бписок событий

ВсС дСйствия, созданныС Π²Π½Π΅ опрСдСлСния события, Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ запуска ΠΌΠΈΡ€Π°, поэтому ΠΊΠΎΠ΄:

player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚!");

Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ сработаСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ запускС ΠΌΠΈΡ€Π° Π² Π½Ρ‘ΠΌ Π½Π΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°:

event<player_join> {
  player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚!");
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ сообщСниС "ΠŸΡ€ΠΈΠ²Π΅Ρ‚!".

Π”Ρ€ΡƒΠ³ΠΈΠ΅ события ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ способом, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΉΠ΄ΠΈ события player_join Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° πŸ““ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎΠ΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ процСссы

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΈ процСссы) ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ:

function abc(a, b) {
  player::message("АргумСнты! $a $b")
}
process abc(a, b) {
  player::message("АргумСнты! $a $b")
}

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

НС стоит ΡΠ²Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ вСсь ΠΊΠΎΠ΄ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ». РаздСляйтС свой ΠΊΠΎΠ΄ Π½Π° нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ»:

// variables.jc

var a = 1;
var b = 2;
// utils.jc

function say_hello() {
  player::message("ΠŸΡ€ΠΈΠ²Π΅Ρ‚!")
}
// index.jc

import './variables.jc';
import './utils.jc';

event<player_join> {
  player::message("Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ состоит ΠΈΠ· 3 ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ!");
}

ДокумСнтация

Для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° синтаксиса поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual Studio Code. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, пСрСйдя ΠΏΠΎ ссылкС

About

JustMC Code Compiler

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •