API UO GetScriptsList ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.GetScriptsList

ClassicUO β€’ Runtime API

ν˜„μž¬ 숫자 슀크립트 인덱슀λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

μ •ν™•ν•œ ꡬ문

UO.GetScriptsList() -> Array

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

λ§€κ°œλ³€μˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€.

λ°˜ν™˜κ°’

Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

λ™μž‘

  • μ‹€ν–‰ 쀑 및 μΌμ‹œ μ •μ§€λœ 싀행을 ν¬ν•¨ν•˜λ©°, λλ‚¬κ±°λ‚˜ μ·¨μ†Œκ°€ μš”μ²­λœ 싀행은 μ œμ™Έν•©λ‹ˆλ‹€. 호좜 μŠ€ν¬λ¦½νŠΈλŠ” 보톡 μžμ‹ λ„ μ…‰λ‹ˆλ‹€. λ‘œλ“œλ§Œ ν•œ IDE 탭은 싀행이 μ•„λ‹™λ‹ˆλ‹€.
  • μΈλ±μŠ€λŠ” μ‹œμž‘ μˆœμ„œμ— λ”°λ₯Έ ν˜„μž¬ μœ„μΉ˜μž…λ‹ˆλ‹€. μ‹œμž‘/μ€‘μ§€λ‘œ μœ„μΉ˜κ°€ λ°”λ€” 수 μžˆμŠ΅λ‹ˆλ‹€. 별도 ν˜ΈμΆœμ€ ν•˜λ‚˜μ˜ μ›μžμ  μŠ€λƒ…μƒ·μ΄ μ•„λ‹ˆλ―€λ‘œ λ‚˜μ€‘μ— μ œμ–΄ν•˜κΈ° 전에 λͺ©λ‘μ„ λ‹€μ‹œ μ½μœΌμ„Έμš”.
  • Basic IDEλ₯Ό 닫아도 ν™œμ„± 싀행은 사라지지 μ•ŠμŠ΅λ‹ˆλ‹€. 이 λͺ…령듀은 λ‹€λ₯Έ ν΄λΌμ΄μ–ΈνŠΈλ‚˜ Windows ν”„λ‘œμ„ΈμŠ€κ°€ μ•„λ‹Œ 이 ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μ‘°νšŒν•©λ‹ˆλ‹€.
  • GetScriptsListλŠ” 인덱슀, GetScriptsCountλŠ” 개수, GetScriptStateλŠ” μ„Έ μƒνƒœ μ½”λ“œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. μ„œλ‘œ λ°”κΎΈμ–΄ μ“°κ±°λ‚˜ λͺ¨λ“  0이 μ•„λ‹Œ 값을 true둜 ν•΄μ„ν•˜μ§€ λ§ˆμ„Έμš”.
  • μΈμˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 각 숫자λ₯Ό 이름, 경둜 λ˜λŠ” μƒνƒœ 쑰회 ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. λ°˜ν™˜ 배열은 별도 μŠ€λƒ…μƒ·μ΄λ©°, μˆ˜μ •ν•΄λ„ 슀크립트λ₯Ό μ œμ–΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λ‚΄λΆ€ ν•¨μˆ˜: ν˜ΈμΆœλΆ€ν„° κ²°κ³ΌκΉŒμ§€

μ•„λž˜λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μ‹€μ œ λ©”μ„œλ“œμž…λ‹ˆλ‹€. Basic μ˜ˆμ œμ—λŠ” μ™„μ „ν•œ 보쑰 ν•¨μˆ˜κ°€ 있으며 λ‚΄λΆ€ C# λ©”μ„œλ“œ 이름은 μΆ”κ°€ 슀크립트 λͺ…령이 μ•„λ‹™λ‹ˆλ‹€.

1. ExecuteStealthCompatibility

Runtime은 λ“±λ‘λœ UO ν˜ΈμΆœμ„ μ‹€ν–‰ν•˜κ³  λΈŒλ¦¬μ§€ κ²°κ³Όλ₯Ό Integer, String λ˜λŠ” Array둜 κ°μŒ‰λ‹ˆλ‹€.

Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ μ†ŒμŠ€: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ν•¨μˆ˜ ExecuteStealthCompatibility.

2. GetScriptsList

λΈŒλ¦¬μ§€λŠ” 이 ν΄λΌμ΄μ–ΈνŠΈμ˜ μ‹€ν–‰ κ΄€λ¦¬μžμ— μœ„μž„ν•©λ‹ˆλ‹€.

μΈμˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 각 숫자λ₯Ό 이름, 경둜 λ˜λŠ” μƒνƒœ 쑰회 ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. λ°˜ν™˜ 배열은 별도 μŠ€λƒ…μƒ·μ΄λ©°, μˆ˜μ •ν•΄λ„ 슀크립트λ₯Ό μ œμ–΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ μ†ŒμŠ€: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ν•¨μˆ˜ GetScriptsList.

3. GetScriptsList

Enumerable.Range(0, GetScriptsCount()).ToArray()

μΈλ±μŠ€λŠ” μ‹œμž‘ μˆœμ„œμ— λ”°λ₯Έ ν˜„μž¬ μœ„μΉ˜μž…λ‹ˆλ‹€. μ‹œμž‘/μ€‘μ§€λ‘œ μœ„μΉ˜κ°€ λ°”λ€” 수 μžˆμŠ΅λ‹ˆλ‹€. 별도 ν˜ΈμΆœμ€ ν•˜λ‚˜μ˜ μ›μžμ  μŠ€λƒ…μƒ·μ΄ μ•„λ‹ˆλ―€λ‘œ λ‚˜μ€‘μ— μ œμ–΄ν•˜κΈ° 전에 λͺ©λ‘μ„ λ‹€μ‹œ μ½μœΌμ„Έμš”.

ν”„λ‘œμ νŠΈ μ†ŒμŠ€: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; ν•¨μˆ˜ GetScriptsList.

Basic IDEλ₯Ό 닫아도 ν™œμ„± 싀행은 사라지지 μ•ŠμŠ΅λ‹ˆλ‹€. 이 λͺ…령듀은 λ‹€λ₯Έ ν΄λΌμ΄μ–ΈνŠΈλ‚˜ Windows ν”„λ‘œμ„ΈμŠ€κ°€ μ•„λ‹Œ 이 ν΄λΌμ΄μ–ΈνŠΈλ₯Ό μ‘°νšŒν•©λ‹ˆλ‹€.

예제

첫 호좜과 결과

# 첫 호좜과 결과
#
# ν˜„μž¬ 숫자 슀크립트 인덱슀λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
#
# Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

SUB Main()
    # Sub Main을 μ‹€ν–‰ν•©λ‹ˆλ‹€. μ „λ‹¬ν•œ 0은 인덱슀이며 빈 κ΄„ν˜ΈλŠ” μΈμˆ˜κ°€ μ—†λ‹€λŠ” λœ»μž…λ‹ˆλ‹€. Print λ¬Έμžμ—΄μ€ 예제 λ©”μ‹œμ§€μΌ λΏμž…λ‹ˆλ‹€.
    # μΈμˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 각 숫자λ₯Ό 이름, 경둜 λ˜λŠ” μƒνƒœ 쑰회 ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. λ°˜ν™˜ 배열은 별도 μŠ€λƒ…μƒ·μ΄λ©°, μˆ˜μ •ν•΄λ„ 슀크립트λ₯Ό μ œμ–΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    # Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

    Dim indices=UO.GetScriptsList()
    For Each index In indices
        UO.Print(CStr(index) & ": " & UO.GetScriptName(index))
    Next
END SUB

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

  • Sub Main을 μ‹€ν–‰ν•©λ‹ˆλ‹€. μ „λ‹¬ν•œ 0은 인덱슀이며 빈 κ΄„ν˜ΈλŠ” μΈμˆ˜κ°€ μ—†λ‹€λŠ” λœ»μž…λ‹ˆλ‹€. Print λ¬Έμžμ—΄μ€ 예제 λ©”μ‹œμ§€μΌ λΏμž…λ‹ˆλ‹€.
  • μΈμˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 각 숫자λ₯Ό 이름, 경둜 λ˜λŠ” μƒνƒœ 쑰회 ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. λ°˜ν™˜ 배열은 별도 μŠ€λƒ…μƒ·μ΄λ©°, μˆ˜μ •ν•΄λ„ 슀크립트λ₯Ό μ œμ–΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

반볡문 λ˜λŠ” μ‘°κ±΄μ—μ„œ μ‚¬μš©

# 반볡문 λ˜λŠ” μ‘°κ±΄μ—μ„œ μ‚¬μš©
#
# ν˜„μž¬ 숫자 슀크립트 인덱슀λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
#
# Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

SUB Main()
    # μ—¬λŸ¬ λͺ…령을 μ‘°ν•©ν•œ 독립적인 μ˜ˆμ œμž…λ‹ˆλ‹€. λ°°μ—΄ μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν•˜λ―€λ‘œ μ ‘κ·Ό 전에 길이λ₯Ό ν™•μΈν•˜μ„Έμš”. Wait(250)이 있으면 250λ°€λ¦¬μ΄ˆ κΈ°λ‹€λ¦½λ‹ˆλ‹€.
    # μΈμˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 각 숫자λ₯Ό 이름, 경둜 λ˜λŠ” μƒνƒœ 쑰회 ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. λ°˜ν™˜ 배열은 별도 μŠ€λƒ…μƒ·μ΄λ©°, μˆ˜μ •ν•΄λ„ 슀크립트λ₯Ό μ œμ–΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    # Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

    Dim indices=UO.GetScriptsList()
    If GetArrayLength(indices)>0 Then
        Dim firstIndex=indices[0]
        UO.Print(UO.GetScriptPath(firstIndex))
    End If
END SUB

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

  • μ—¬λŸ¬ λͺ…령을 μ‘°ν•©ν•œ 독립적인 μ˜ˆμ œμž…λ‹ˆλ‹€. λ°°μ—΄ μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν•˜λ―€λ‘œ μ ‘κ·Ό 전에 길이λ₯Ό ν™•μΈν•˜μ„Έμš”. Wait(250)이 있으면 250λ°€λ¦¬μ΄ˆ κΈ°λ‹€λ¦½λ‹ˆλ‹€.
  • μΈμˆ˜κ°€ μ—†μŠ΅λ‹ˆλ‹€. 각 숫자λ₯Ό 이름, 경둜 λ˜λŠ” μƒνƒœ 쑰회 ν•¨μˆ˜μ— μ „λ‹¬ν•©λ‹ˆλ‹€. λ°˜ν™˜ 배열은 별도 μŠ€λƒ…μƒ·μ΄λ©°, μˆ˜μ •ν•΄λ„ 슀크립트λ₯Ό μ œμ–΄ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

μ™„μ „ν•œ 보쑰 ν•¨μˆ˜

# μ™„μ „ν•œ 보쑰 ν•¨μˆ˜
#
# ν˜„μž¬ 숫자 슀크립트 인덱슀λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
#
# Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

SUB Main()
    # Main μ•„λž˜μ— ν•¨μˆ˜ 전체가 μžˆμŠ΅λ‹ˆλ‹€. 이 ν•¨μˆ˜μ˜ μΈμˆ˜μ™€ λ°˜ν™˜κ°’μ€ λ‚΄λΆ€μ—μ„œ μ“°λŠ” API λͺ…λ Ήκ³Ό ꡬ뢄해 μ„€λͺ…ν•©λ‹ˆλ‹€.
    # FindNamedScriptλŠ” ν‘œμ‹œ 이름이 μ •ν™•νžˆ 같은 첫 ν˜„μž¬ 인덱슀, μ—†μœΌλ©΄ -1을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 이름은 쀑볡될 수 있고 μΈλ±μŠ€λ„ λ‚˜μ€‘μ— λ°”λ€” 수 μžˆμŠ΅λ‹ˆλ‹€.
    # Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

    Dim index=FindNamedScript("Mining")
    If index>=0 Then
        UO.Print(CStr(index))
    Else
        UO.Print("Name not found")
    End If
END SUB

Function FindNamedScript(wanted) As Integer
    Dim indices=UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptName(index)=wanted Then
            Return index
        End If
    Next
    Return -1
End Function

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

  • Main μ•„λž˜μ— ν•¨μˆ˜ 전체가 μžˆμŠ΅λ‹ˆλ‹€. 이 ν•¨μˆ˜μ˜ μΈμˆ˜μ™€ λ°˜ν™˜κ°’μ€ λ‚΄λΆ€μ—μ„œ μ“°λŠ” API λͺ…λ Ήκ³Ό ꡬ뢄해 μ„€λͺ…ν•©λ‹ˆλ‹€.
  • FindNamedScriptλŠ” ν‘œμ‹œ 이름이 μ •ν™•νžˆ 같은 첫 ν˜„μž¬ 인덱슀, μ—†μœΌλ©΄ -1을 λ°˜ν™˜ν•©λ‹ˆλ‹€. 이름은 쀑볡될 수 있고 μΈλ±μŠ€λ„ λ‚˜μ€‘μ— λ°”λ€” 수 μžˆμŠ΅λ‹ˆλ‹€.
  • Integer의 Array: 인덱슀 0..N-1 λ˜λŠ” 빈 λ°°μ—΄μž…λ‹ˆλ‹€. μš”μ†ŒλŠ” μ΄λ¦„μ΄λ‚˜ ν…μŠ€νŠΈ λ ˆμ½”λ“œκ°€ μ•„λ‹Œ μˆ«μžμž…λ‹ˆλ‹€.

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

Basic