API UO GetScriptState ko - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.GetScriptState
ClassicUO β’ Runtime API
μΈλ±μ€μ ν΄λΉνλ μ€ν μνλ₯Ό μ½μ΅λλ€.
μ νν ꡬ문
UO.GetScriptState(ScriptIndex:Any) -> Integer
λ§€κ°λ³μ
ScriptIndexβ νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό λ°νν©λλ€. μμ΄ν serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.
λ°νκ°
Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ μμ μΌλ‘ λΉκ΅ν©λλ€.
λμ
- μ€ν μ€ λ° μΌμ μ μ§λ μ€νμ ν¬ν¨νλ©°, λλ¬κ±°λ μ·¨μκ° μμ²λ μ€νμ μ μΈν©λλ€. νΈμΆ μ€ν¬λ¦½νΈλ λ³΄ν΅ μμ λ μ λλ€. λ‘λλ§ ν IDE νμ μ€νμ΄ μλλλ€.
- μΈλ±μ€λ μμ μμμ λ°λ₯Έ νμ¬ μμΉμ λλ€. μμ/μ€μ§λ‘ μμΉκ° λ°λ μ μμ΅λλ€. λ³λ νΈμΆμ νλμ μμμ μ€λ μ·μ΄ μλλ―λ‘ λμ€μ μ μ΄νκΈ° μ μ λͺ©λ‘μ λ€μ μ½μΌμΈμ.
- Basic IDEλ₯Ό λ«μλ νμ± μ€νμ μ¬λΌμ§μ§ μμ΅λλ€. μ΄ λͺ λ Ήλ€μ λ€λ₯Έ ν΄λΌμ΄μΈνΈλ Windows νλ‘μΈμ€κ° μλ μ΄ ν΄λΌμ΄μΈνΈλ₯Ό μ‘°νν©λλ€.
- GetScriptsListλ μΈλ±μ€, GetScriptsCountλ κ°μ, GetScriptStateλ μΈ μν μ½λλ₯Ό λ°νν©λλ€. μλ‘ λ°κΎΈμ΄ μ°κ±°λ λͺ¨λ 0μ΄ μλ κ°μ trueλ‘ ν΄μνμ§ λ§μΈμ.
- μλ/λλ²κ±° μΌμ μ μ§μ μ€μ λ μ°κ²° λκΉ μΌμ μ μ§λ₯Ό ν¬ν¨ν©λλ€. μν 1μ΄ μκ°μ μΈ CPU μ¬μ©μ΄λ μλ² λ°μ΄ν° μμ μ 보μ₯νμ§λ μμ΅λλ€.
λ΄λΆ ν¨μ: νΈμΆλΆν° κ²°κ³ΌκΉμ§
μλλ ν΄λΌμ΄μΈνΈμ μ€μ λ©μλμ λλ€. Basic μμ μλ μμ ν 보쑰 ν¨μκ° μμΌλ©° λ΄λΆ C# λ©μλ μ΄λ¦μ μΆκ° μ€ν¬λ¦½νΈ λͺ λ Ήμ΄ μλλλ€.
1. ExecuteStealthCompatibility
Runtimeμ λ±λ‘λ UO νΈμΆμ μ€ννκ³ λΈλ¦¬μ§ κ²°κ³Όλ₯Ό Integer, String λλ Arrayλ‘ κ°μλλ€.
Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ μμ μΌλ‘ λΉκ΅ν©λλ€.
νλ‘μ νΈ μμ€: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; ν¨μ ExecuteStealthCompatibility.
2. GetScriptState
λΈλ¦¬μ§λ μ΄ ν΄λΌμ΄μΈνΈμ μ€ν κ΄λ¦¬μμ μμν©λλ€.
μλ/λλ²κ±° μΌμ μ μ§μ μ€μ λ μ°κ²° λκΉ μΌμ μ μ§λ₯Ό ν¬ν¨ν©λλ€. μν 1μ΄ μκ°μ μΈ CPU μ¬μ©μ΄λ μλ² λ°μ΄ν° μμ μ 보μ₯νμ§λ μμ΅λλ€.
νλ‘μ νΈ μμ€: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; ν¨μ GetScriptState.
3. GetScriptState
script == null ? 0 : script.IsPaused ? 2 : 1
μΈλ±μ€λ μμ μμμ λ°λ₯Έ νμ¬ μμΉμ λλ€. μμ/μ€μ§λ‘ μμΉκ° λ°λ μ μμ΅λλ€. λ³λ νΈμΆμ νλμ μμμ μ€λ μ·μ΄ μλλ―λ‘ λμ€μ μ μ΄νκΈ° μ μ λͺ©λ‘μ λ€μ μ½μΌμΈμ.
νλ‘μ νΈ μμ€: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; ν¨μ GetScriptState.
Basic IDEλ₯Ό λ«μλ νμ± μ€νμ μ¬λΌμ§μ§ μμ΅λλ€. μ΄ λͺ λ Ήλ€μ λ€λ₯Έ ν΄λΌμ΄μΈνΈλ Windows νλ‘μΈμ€κ° μλ μ΄ ν΄λΌμ΄μΈνΈλ₯Ό μ‘°νν©λλ€.
μμ
첫 νΈμΆκ³Ό κ²°κ³Ό
# 첫 νΈμΆκ³Ό κ²°κ³Ό
#
# μΈλ±μ€μ ν΄λΉνλ μ€ν μνλ₯Ό μ½μ΅λλ€.
#
# Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ
μμ μΌλ‘ λΉκ΅ν©λλ€.
SUB Main()
# Sub Mainμ μ€νν©λλ€. μ λ¬ν 0μ μΈλ±μ€μ΄λ©° λΉ κ΄νΈλ μΈμκ° μλ€λ λ»μ
λλ€. Print λ¬Έμμ΄μ μμ λ©μμ§μΌ λΏμ
λλ€.
# μλ/λλ²κ±° μΌμ μ μ§μ μ€μ λ μ°κ²° λκΉ μΌμ μ μ§λ₯Ό ν¬ν¨ν©λλ€. μν 1μ΄ μκ°μ μΈ CPU μ¬μ©μ΄λ μλ² λ°μ΄ν° μμ μ 보μ₯νμ§λ μμ΅λλ€.
# Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ
μμ μΌλ‘ λΉκ΅ν©λλ€.
# νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ
λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ
μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό
# λ°νν©λλ€. μμ΄ν
serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.
Dim state=UO.GetScriptState(0)
Select Case state
Case 1
UO.Print("running")
Case 2
UO.Print("paused")
Case Else
UO.Print("unknown")
End Select
END SUB
λ§€κ°λ³μ λ° μ€ν μ€λͺ :
- Sub Mainμ μ€νν©λλ€. μ λ¬ν 0μ μΈλ±μ€μ΄λ©° λΉ κ΄νΈλ μΈμκ° μλ€λ λ»μ λλ€. Print λ¬Έμμ΄μ μμ λ©μμ§μΌ λΏμ λλ€.
- μλ/λλ²κ±° μΌμ μ μ§μ μ€μ λ μ°κ²° λκΉ μΌμ μ μ§λ₯Ό ν¬ν¨ν©λλ€. μν 1μ΄ μκ°μ μΈ CPU μ¬μ©μ΄λ μλ² λ°μ΄ν° μμ μ 보μ₯νμ§λ μμ΅λλ€.
- Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ μμ μΌλ‘ λΉκ΅ν©λλ€.
- νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό λ°νν©λλ€. μμ΄ν serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.
λ°λ³΅λ¬Έ λλ 쑰건μμ μ¬μ©
# λ°λ³΅λ¬Έ λλ 쑰건μμ μ¬μ©
#
# μΈλ±μ€μ ν΄λΉνλ μ€ν μνλ₯Ό μ½μ΅λλ€.
#
# Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ
μμ μΌλ‘ λΉκ΅ν©λλ€.
SUB Main()
# μ¬λ¬ λͺ
λ Ήμ μ‘°ν©ν λ
립μ μΈ μμ μ
λλ€. λ°°μ΄ μΈλ±μ€λ 0λΆν° μμνλ―λ‘ μ κ·Ό μ μ κΈΈμ΄λ₯Ό νμΈνμΈμ. Wait(250)μ΄ μμΌλ©΄ 250λ°λ¦¬μ΄ κΈ°λ€λ¦½λλ€.
# μλ/λλ²κ±° μΌμ μ μ§μ μ€μ λ μ°κ²° λκΉ μΌμ μ μ§λ₯Ό ν¬ν¨ν©λλ€. μν 1μ΄ μκ°μ μΈ CPU μ¬μ©μ΄λ μλ² λ°μ΄ν° μμ μ 보μ₯νμ§λ μμ΅λλ€.
# Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ
μμ μΌλ‘ λΉκ΅ν©λλ€.
# νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ
λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ
μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό
# λ°νν©λλ€. μμ΄ν
serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.
Dim paused=0
Dim indices=UO.GetScriptsList()
For Each index In indices
If UO.GetScriptState(index)=2 Then
paused+=1
End If
Next
UO.Print(CStr(paused))
END SUB
λ§€κ°λ³μ λ° μ€ν μ€λͺ :
- μ¬λ¬ λͺ λ Ήμ μ‘°ν©ν λ 립μ μΈ μμ μ λλ€. λ°°μ΄ μΈλ±μ€λ 0λΆν° μμνλ―λ‘ μ κ·Ό μ μ κΈΈμ΄λ₯Ό νμΈνμΈμ. Wait(250)μ΄ μμΌλ©΄ 250λ°λ¦¬μ΄ κΈ°λ€λ¦½λλ€.
- μλ/λλ²κ±° μΌμ μ μ§μ μ€μ λ μ°κ²° λκΉ μΌμ μ μ§λ₯Ό ν¬ν¨ν©λλ€. μν 1μ΄ μκ°μ μΈ CPU μ¬μ©μ΄λ μλ² λ°μ΄ν° μμ μ 보μ₯νμ§λ μμ΅λλ€.
- Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ μμ μΌλ‘ λΉκ΅ν©λλ€.
- νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό λ°νν©λλ€. μμ΄ν serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.
μμ ν 보쑰 ν¨μ
# μμ ν 보쑰 ν¨μ
#
# μΈλ±μ€μ ν΄λΉνλ μ€ν μνλ₯Ό μ½μ΅λλ€.
#
# Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ
μμ μΌλ‘ λΉκ΅ν©λλ€.
SUB Main()
# Main μλμ ν¨μ μ μ²΄κ° μμ΅λλ€. μ΄ ν¨μμ μΈμμ λ°νκ°μ λ΄λΆμμ μ°λ API λͺ
λ Ήκ³Ό ꡬλΆν΄ μ€λͺ
ν©λλ€.
# IsScriptActiveλ 1κ³Ό 2λ₯Ό trueλ‘, 0μ falseλ‘ λ°κΏλλ€. GetScriptState μ체λ κ³μ μ«μ μν μ½λλ₯Ό λ°νν©λλ€.
# Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ
μμ μΌλ‘ λΉκ΅ν©λλ€.
# νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ
λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ
μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό
# λ°νν©λλ€. μμ΄ν
serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.
If IsScriptActive(0)=True Then
UO.Print("running or paused")
Else
UO.Print("not active")
End If
END SUB
Function IsScriptActive(index) As Boolean
Dim state=UO.GetScriptState(index)
Return state=1 OrElse state=2
End Function
λ§€κ°λ³μ λ° μ€ν μ€λͺ :
- Main μλμ ν¨μ μ μ²΄κ° μμ΅λλ€. μ΄ ν¨μμ μΈμμ λ°νκ°μ λ΄λΆμμ μ°λ API λͺ λ Ήκ³Ό ꡬλΆν΄ μ€λͺ ν©λλ€.
- IsScriptActiveλ 1κ³Ό 2λ₯Ό trueλ‘, 0μ falseλ‘ λ°κΏλλ€. GetScriptState μ체λ κ³μ μ«μ μν μ½λλ₯Ό λ°νν©λλ€.
- Integer μν μ½λ: 0 = μμ/μ μ μμ, 1 = μ€ν μ€, 2 = μΌμ μ μ§. Booleanμ΄ μλλ―λ‘ 1 λλ 2μ λͺ μμ μΌλ‘ λΉκ΅ν©λλ€.
- νμ ScriptIndexλ μ΅μ GetScriptsListμμ μ»λ 0λΆν° μμνλ μ μ μΈλ±μ€μ λλ€. μμμ΄κ±°λ μλ μΈλ±μ€λ λͺ μλ λΉ κ°/μ μ μμ κ²°κ³Όλ₯Ό λ°νν©λλ€. μμ΄ν serial, νλ‘μμ μ΄λ¦ λλ IDE μ€ν IDλ₯Ό μ λ¬νμ§ λ§μΈμ.