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 λλ λΉ λ°°μ΄μ λλ€. μμλ μ΄λ¦μ΄λ ν μ€νΈ λ μ½λκ° μλ μ«μμ λλ€.