API Basic Program ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

SUB Main()

ClassicUO β€’ Basic

Basic νŒŒμΌμ—λŠ” ν”„λ‘œμ‹œμ €/ν•¨μˆ˜ μ •μ˜μ™€ 선택적 μ „μ—­ 선언을 λ„£μŠ΅λ‹ˆλ‹€. μ‹€ν–‰ν•  μž‘μ—…μ€ ν”„λ‘œμ‹œμ € μ•ˆμ— λ‘‘λ‹ˆλ‹€. λ‹€μŒ μ˜ˆμ œλŠ” Main()을 μ§„μž…μ μœΌλ‘œ ν•˜λŠ” μ™„μ „ν•œ 파일이며 ν”„λ‘œμ‹œμ € 밖에 뢙일 μ½”λ“œ 쑰각이 μ•„λ‹™λ‹ˆλ‹€.

μ •ν™•ν•œ ꡬ문

Option Explicit On
SUB Main()
    statement
END SUB
# comment
; comment
REM comment
// comment
' comment

λ§€κ°œλ³€μˆ˜

  • Main / entry β€” μ‹€ν–‰ λŒ€μƒμœΌλ‘œ μ„ νƒν•œ ν”„λ‘œμ‹œμ €μž…λ‹ˆλ‹€. Main은 κ΄€μš©μ μΈ 이름이며 μžλ™ μ‹€ν–‰ λͺ…령이 μ•„λ‹™λ‹ˆλ‹€. SUB Main()은 인수 μ—†λŠ” ν”„λ‘œμ‹œμ €λ₯Ό μ„ μ–Έν•©λ‹ˆλ‹€. 보쑰 ν•¨μˆ˜λŠ” 호좜될 λ•Œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.
  • statement β€” SUB…END SUB λ˜λŠ” FUNCTION…END FUNCTION μ•ˆμ—μ„œ 싀행문을 ν•œ 쀄에 ν•˜λ‚˜μ”© μ”λ‹ˆλ‹€. μ „μ—­ VAR/CONST와 Option ExplicitλŠ” 밖에 두며 Option ExplicitλŠ” 선언보닀 μ•žμ— λ‘‘λ‹ˆλ‹€.
  • comment β€” #κ³Ό ;λŠ” λ¬Έμžμ—΄ λ”°μ˜΄ν‘œ λ°–μ—μ„œ 주석을 μ‹œμž‘ν•˜λ©° μ½”λ“œ 뒀에도 μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€. REM, //, μž‘μ€λ”°μ˜΄ν‘œλŠ” 선택적 λ“€μ—¬μ“°κΈ° λ’€μ—μ„œ 전체 쀄 주석을 μ‹œμž‘ν•©λ‹ˆλ‹€. λ¬Έμžμ—΄ μ•ˆμ—μ„œλŠ” 이 문자λ₯Ό κ·ΈλŒ€λ‘œ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜ν™˜κ°’

νŒŒμΌμ„ μ½κ±°λ‚˜ SUBλ₯Ό μ„ μ–Έν•˜λŠ” 것 μžμ²΄λŠ” 값을 λ°˜ν™˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. RETURN expression은 값을 λ°˜ν™˜ν•˜κ³  ν˜„μž¬ ν˜ΈμΆœμ„ μ¦‰μ‹œ λλƒ…λ‹ˆλ‹€. λ³Έλ¬Έ 끝에 λ„λ‹¬ν•˜κ±°λ‚˜ 식 없이 RETURN을 μ“°λ©΄ Unit(κ°’ μ—†μŒ)이 λ©λ‹ˆλ‹€.

λ™μž‘

  • ν˜„μ§€ν™”λœ 주석과 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜λ €λ©΄ UTF-8둜 μ €μž₯ν•˜μ„Έμš”. CRLF와 LF μ€„λ°”κΏˆμ„ λͺ¨λ‘ λ°›μŠ΅λ‹ˆλ‹€. 듀여쓰기와 빈 쀄은 읽기 μ‰½κ²Œ ν•˜μ§€λ§Œ END SUBλ‚˜ END FUNCTION을 λŒ€μ‹ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • ν‚€μ›Œλ“œ, ν”„λ‘œμ‹œμ € 이름, λ³€μˆ˜ 이름은 λŒ€μ†Œλ¬Έμžλ₯Ό κ΅¬λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. itemCount, ITEMCOUNT, ItemCountλŠ” 같은 λ°”μΈλ”©μž…λ‹ˆλ‹€. λ¬Έμžμ—΄ ν‘œκΈ°λŠ” 보쑴되며 UO.SetGlobal("Key", …)의 λ¬Έμžμ—΄ ν‚€λŠ” μ‹λ³„μžκ°€ μ•„λ‹ˆλΌ λ°μ΄ν„°μž…λ‹ˆλ‹€.
  • λ‹¨μˆœ 이름은 ASCII 영문자 λ˜λŠ” λ°‘μ€„λ‘œ μ‹œμž‘ν•˜κ³  뒀에 영문자, 숫자, 밑쀄을 μ”λ‹ˆλ‹€. 직접 μ„ μ–Έν•  λ•Œ μ˜ˆμ•½μ–΄μ™€ API 이름을 ν”Όν•˜μ„Έμš”. UO.PrintλŠ” ν•œμ •λœ 호좜 μ΄λ¦„μž…λ‹ˆλ‹€. 이름 λ’€ μ½œλ‘ μ€ λ ˆμ΄λΈ”μ„ μ •μ˜ν•˜λ©° μ—¬λŸ¬ λ¬Έμž₯의 일반 κ΅¬λΆ„μžκ°€ μ•„λ‹™λ‹ˆλ‹€.
  • 엔진은 μ§€μ›ν•˜λŠ” Basic ꡬ문을 μ •κ·œν™”ν•˜κ³  전체 νŒŒμΌμ„ λΆ„μ„ν•˜μ—¬ 선언을 μˆ˜μ§‘ν•˜κ³  이름을 κ²€μ‚¬ν•©λ‹ˆλ‹€. λ”°λΌμ„œ 보쑰 ν•¨μˆ˜λ₯Ό Main μ•„λž˜μ— λ‘˜ 수 μžˆμŠ΅λ‹ˆλ‹€. νŒŒμΌμ„ 읽을 λ•Œ λͺ¨λ“  μ •μ˜κ°€ μ‹€ν–‰λ˜λŠ” 것은 μ•„λ‹ˆλ©°, μ„ νƒν•œ ν”„λ‘œμ‹œμ €λ₯Ό μ‹œμž‘ν•  λ•Œ 싀행을 μ΄ˆκΈ°ν™”ν•˜κ³  κ·Έ ν˜ΈμΆœμ„ λ”°λ¦…λ‹ˆλ‹€.
  • μ˜ˆμ œλŠ” κ°’λ§Œ κ³„μ‚°ν•©λ‹ˆλ‹€. ν…œν”Œλ¦Ώμ„ ν™•μΈν•œ ν›„ ν•„μš”ν•œ UO ν˜ΈμΆœμ„ 본문에 λ„£μŠ΅λ‹ˆλ‹€. μ΄λŠ” 이 μ—”μ§„μ˜ κ·œμΉ™μ΄λ©° λ‹€λ₯Έ Basic의 λͺ¨λ“  κΈ°λŠ₯을 μ§€μ›ν•œλ‹€λŠ” λœ»μ€ μ•„λ‹™λ‹ˆλ‹€.

예제

1. 주석과 λ¬Έμžμ—΄ λ‚΄μš©

# Main은 note에 "ore #1; keep"을 μ„ μ–Έν•©λ‹ˆλ‹€. λ¬Έμžμ—΄μ˜ #κ³Ό ;λŠ” κ·ΈλŒ€λ‘œ λ‚¨μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ #, REM, //, μž‘μ€λ”°μ˜΄ν‘œ 주석은 μž‘μ—…μ„ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. RETURN은 μ›λž˜ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.
Option Explicit On
# Complete file
SUB Main()
    REM Full-line comment
    VAR note = "ore #1; keep" # Trailing comment
    // Another full-line comment
    ' Another full-line comment
    RETURN note
END SUB

λ§€κ°œλ³€μˆ˜ 및 μ‹€ν–‰ μ„€λͺ…:

Main은 note에 "ore #1; keep"을 μ„ μ–Έν•©λ‹ˆλ‹€. λ¬Έμžμ—΄μ˜ #κ³Ό ;λŠ” κ·ΈλŒ€λ‘œ λ‚¨μŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ #, REM, //, μž‘μ€λ”°μ˜΄ν‘œ 주석은 μž‘μ—…μ„ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. RETURN은 μ›λž˜ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€.

2. μ™„μ „νžˆ μ •μ˜λœ 보쑰 ν•¨μˆ˜

# Main은 amount=7둜 DoubleCountλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. Main μ•„λž˜μ— μ •μ˜λœ ν•¨μˆ˜λŠ” Integer λ§€κ°œλ³€μˆ˜μ— 2λ₯Ό κ³±ν•˜μ—¬ 14λ₯Ό λ°˜ν™˜ν•˜κ³  Main이 κ²°κ³Όλ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€. λΉ μ§„ Include νŒŒμΌμ΄λ‚˜ μ„ μ–Έλ˜μ§€ μ•Šμ€ ν•¨μˆ˜κ°€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
Option Explicit On
SUB Main()
    RETURN DoubleCount(7)
END SUB
FUNCTION DoubleCount(ByVal amount AS Integer)
    VAR result = amount * 2
    RETURN result
END FUNCTION

λ§€κ°œλ³€μˆ˜ 및 μ‹€ν–‰ μ„€λͺ…:

Main은 amount=7둜 DoubleCountλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. Main μ•„λž˜μ— μ •μ˜λœ ν•¨μˆ˜λŠ” Integer λ§€κ°œλ³€μˆ˜μ— 2λ₯Ό κ³±ν•˜μ—¬ 14λ₯Ό λ°˜ν™˜ν•˜κ³  Main이 κ²°κ³Όλ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€. λΉ μ§„ Include νŒŒμΌμ΄λ‚˜ μ„ μ–Έλ˜μ§€ μ•Šμ€ ν•¨μˆ˜κ°€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

3. μ‹λ³„μž λŒ€μ†Œλ¬Έμž

# itemCount=3을 μ„ μ–Έν•œ λ’€ ITEMCOUNT와 itemcount둜 같은 λ³€μˆ˜μ— 2λ₯Ό λ”ν•©λ‹ˆλ‹€. λŒ€μ†Œλ¬Έμžκ°€ μ„žμΈ ν‚€μ›Œλ“œλ„ ν—ˆμš©λ©λ‹ˆλ‹€. Main은 5λ₯Ό λ°˜ν™˜ν•˜λ©° ν‘œκΈ° 차이둜 λ³€μˆ˜κ°€ μΆ”κ°€ μƒμ„±λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
Option Explicit On
sUb Main()
    Var itemCount = 3
    ITEMCOUNT = itemcount + 2
    ReTuRn ItemCount
EnD sUb

λ§€κ°œλ³€μˆ˜ 및 μ‹€ν–‰ μ„€λͺ…:

itemCount=3을 μ„ μ–Έν•œ λ’€ ITEMCOUNT와 itemcount둜 같은 λ³€μˆ˜μ— 2λ₯Ό λ”ν•©λ‹ˆλ‹€. λŒ€μ†Œλ¬Έμžκ°€ μ„žμΈ ν‚€μ›Œλ“œλ„ ν—ˆμš©λ©λ‹ˆλ‹€. Main은 5λ₯Ό λ°˜ν™˜ν•˜λ©° ν‘œκΈ° 차이둜 λ³€μˆ˜κ°€ μΆ”κ°€ μƒμ„±λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


en Β· ru Β· uk Β· fr Β· de Β· it Β· es Β· zh-tw Β· ja Β· ko

Basic