-
Notifications
You must be signed in to change notification settings - Fork 0
API UO CallSub ko
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
관리자에 등록된 프로시저를 별도 작업으로 시작하도록 요청합니다. 제어 스크립트에서 독립적인 감시 작업을 시작할 때 씁니다. 결과를 기다리는 일반 Basic 호출과 달리 비동기입니다.
UO.CallSub(subrutineName:String) -> Unit
-
subrutineName— 필수 String subrutineName은 카탈로그의 Sub/Function 이름입니다. 예: WeightWatch. 경로, 파일명, 실행 인덱스, 소스 코드, SetScriptName으로 바꾼 표시명이 아닙니다. 대소문자는 무시하지만 공백은 제거하지 않습니다. 프로시저 인수를 전달할 수 없습니다.
Unit: 반환값, 함수 결과, 시작 성공 확인이 없습니다. 알 수 없는 이름은 아무것도 시작하지 않습니다. 동기 실행에는 일반 Basic MyFunction(...)을 사용합니다.
- 현재 세션의 카탈로그만 검색합니다. 같은 이름은 첫 번째 일치를 선택하므로 고유한 이름을 쓰십시오. 이 명령들은 알 수 없는 파일을 로드하거나 디스크를 검색하지 않습니다.
- CallSub는 인수 0개를 전달합니다. Private, 구문 오류, 필수 매개변수, Basic 비활성화, 단일 프로시저 규칙 때문에 시작이 거부되면 IDE 상태/오류를 확인하십시오. 활성 작업을 다시 호출해도 복제하거나 일시 중지를 풀지 않습니다. 취소 후 시작은 정리를 기다릴 수 있습니다. 제어 스크립트는 작업 완료를 기다리지 않습니다.
- FunRunning은 원래 프로시저 이름과 키를 사용하며 변경한 표시명은 사용하지 않습니다. 일시 중지는 실행을 유지하므로 1입니다. 취소는 정리 중에도 0입니다. 검사와 다음 호출은 원자적이지 않아 그 사이 작업이 끝날 수 있습니다.
- Private 또는 잘못된 정의도 SubExists가 1을 반환할 수 있습니다. 작업 중지나 편집기 탭 닫기가 카탈로그 항목을 반드시 지우지는 않습니다. 변경 파일을 다시 로드하면 옛 정의가 제거됩니다. 별도 runtime에만 로드한 함수는 관리자에 등록되지 않았을 수 있습니다.
실제 구현 단계이며 C# 이름은 추가 UO 명령이 아닙니다. 실행 가능한 모든 Basic 보조 함수는 예제에 완전히 정의되어 있습니다.
필수 String subrutineName은 카탈로그의 Sub/Function 이름입니다. 예: WeightWatch. 경로, 파일명, 실행 인덱스, 소스 코드, SetScriptName으로 바꾼 표시명이 아닙니다. 대소문자는 무시하지만 공백은 제거하지 않습니다. 프로시저 인수를 전달할 수 없습니다.
Unit: 반환값, 함수 결과, 시작 성공 확인이 없습니다. 알 수 없는 이름은 아무것도 시작하지 않습니다. 동기 실행에는 일반 Basic MyFunction(...)을 사용합니다.
프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 함수 CallSub.
현재 세션의 카탈로그만 검색합니다. 같은 이름은 첫 번째 일치를 선택하므로 고유한 이름을 쓰십시오. 이 명령들은 알 수 없는 파일을 로드하거나 디스크를 검색하지 않습니다.
Private 또는 잘못된 정의도 SubExists가 1을 반환할 수 있습니다. 작업 중지나 편집기 탭 닫기가 카탈로그 항목을 반드시 지우지는 않습니다. 변경 파일을 다시 로드하면 옛 정의가 제거됩니다. 별도 runtime에만 로드한 함수는 관리자에 등록되지 않았을 수 있습니다.
프로젝트 소스: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; 함수 FindProcedureByName.
관리자에 등록된 프로시저를 별도 작업으로 시작하도록 요청합니다. 제어 스크립트에서 독립적인 감시 작업을 시작할 때 씁니다. 결과를 기다리는 일반 Basic 호출과 달리 비동기입니다.
CallSub는 인수 0개를 전달합니다. Private, 구문 오류, 필수 매개변수, Basic 비활성화, 단일 프로시저 규칙 때문에 시작이 거부되면 IDE 상태/오류를 확인하십시오. 활성 작업을 다시 호출해도 복제하거나 일시 중지를 풀지 않습니다. 취소 후 시작은 정리를 기다릴 수 있습니다. 제어 스크립트는 작업 완료를 기다리지 않습니다.
프로젝트 소스: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 함수 Exec.
실제 구현 단계이며 C# 이름은 추가 UO 명령이 아닙니다. 실행 가능한 모든 Basic 보조 함수는 예제에 완전히 정의되어 있습니다.
# 시작 후 Main 계속 실행
#
# 관리자에 등록된 프로시저를 별도 작업으로 시작하도록 요청합니다. 제어 스크립트에서 독립적인 감시 작업을 시작할 때 씁니다. 결과를 기다리는 일반 Basic 호출과 달리
# 비동기입니다.
#
# Unit: 반환값, 함수 결과, 시작 성공 확인이 없습니다. 알 수 없는 이름은 아무것도 시작하지 않습니다. 동기 실행에는 일반 Basic MyFunction(...)을
# 사용합니다.
SUB Main()
# WeightWatch는 아래에 정의되어 있습니다. Main은 3회 측정을 기다리지 않고 77을 반환합니다. 77은 Main 결과이며 CallSub 결과가 아닙니다.
# 각 예제를 별도 파일로 저장하고 IDE/관리자에서 로드한 뒤 Main을 실행해 다른 프로시저를 등록하십시오. WeightWatch/ManaWatch는 전체 정의를
# 포함하며 무게/마나를 3회 측정합니다. Wait(1000)은 1000밀리초이고 월드 안에서만 출력합니다. 유한한 감시이며 일시 중지는 시간을 늘립니다. 두 작업 예제에는
# 동시 프로시저 실행을 허용해야 합니다.
UO.CallSub("WeightWatch")
Return 77
END SUB
Sub WeightWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Weight: " & CStr(UO.Weight()))
End If
UO.Wait(1000)
Next
End Sub매개변수 및 실행 설명:
- WeightWatch는 아래에 정의되어 있습니다. Main은 3회 측정을 기다리지 않고 77을 반환합니다. 77은 Main 결과이며 CallSub 결과가 아닙니다.
- 각 예제를 별도 파일로 저장하고 IDE/관리자에서 로드한 뒤 Main을 실행해 다른 프로시저를 등록하십시오. WeightWatch/ManaWatch는 전체 정의를 포함하며 무게/마나를 3회 측정합니다. Wait(1000)은 1000밀리초이고 월드 안에서만 출력합니다. 유한한 감시이며 일시 중지는 시간을 늘립니다. 두 작업 예제에는 동시 프로시저 실행을 허용해야 합니다.
# 기존 작업과 일시 중지 유지
#
# 관리자에 등록된 프로시저를 별도 작업으로 시작하도록 요청합니다. 제어 스크립트에서 독립적인 감시 작업을 시작할 때 씁니다. 결과를 기다리는 일반 Basic 호출과 달리
# 비동기입니다.
#
# Unit: 반환값, 함수 결과, 시작 성공 확인이 없습니다. 알 수 없는 이름은 아무것도 시작하지 않습니다. 동기 실행에는 일반 Basic MyFunction(...)을
# 사용합니다.
SUB Main()
# StartIfIdle은 정의와 활성 상태를 확인합니다. False는 요청 없음, True는 CallSub 요청을 보냈다는 뜻일 뿐 시작이나 완료 확인이 아닙니다.
# 각 예제를 별도 파일로 저장하고 IDE/관리자에서 로드한 뒤 Main을 실행해 다른 프로시저를 등록하십시오. WeightWatch/ManaWatch는 전체 정의를
# 포함하며 무게/마나를 3회 측정합니다. Wait(1000)은 1000밀리초이고 월드 안에서만 출력합니다. 유한한 감시이며 일시 중지는 시간을 늘립니다. 두 작업 예제에는
# 동시 프로시저 실행을 허용해야 합니다.
Return StartIfIdle("WeightWatch")
END SUB
Function StartIfIdle(name) As Boolean
If Not UO.SubExists(name) Then
Return False
End If
If UO.FunRunning(name) Then
Return False
End If
UO.CallSub(name)
Return True
End Function
Sub WeightWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Weight: " & CStr(UO.Weight()))
End If
UO.Wait(1000)
Next
End Sub매개변수 및 실행 설명:
- StartIfIdle은 정의와 활성 상태를 확인합니다. False는 요청 없음, True는 CallSub 요청을 보냈다는 뜻일 뿐 시작이나 완료 확인이 아닙니다.
- 각 예제를 별도 파일로 저장하고 IDE/관리자에서 로드한 뒤 Main을 실행해 다른 프로시저를 등록하십시오. WeightWatch/ManaWatch는 전체 정의를 포함하며 무게/마나를 3회 측정합니다. Wait(1000)은 1000밀리초이고 월드 안에서만 출력합니다. 유한한 감시이며 일시 중지는 시간을 늘립니다. 두 작업 예제에는 동시 프로시저 실행을 허용해야 합니다.
# 독립적인 감시 두 개
#
# 관리자에 등록된 프로시저를 별도 작업으로 시작하도록 요청합니다. 제어 스크립트에서 독립적인 감시 작업을 시작할 때 씁니다. 결과를 기다리는 일반 Basic 호출과 달리
# 비동기입니다.
#
# Unit: 반환값, 함수 결과, 시작 성공 확인이 없습니다. 알 수 없는 이름은 아무것도 시작하지 않습니다. 동기 실행에는 일반 Basic MyFunction(...)을
# 사용합니다.
SUB Main()
# WeightWatch와 ManaWatch는 지역 변수를 공유하지 않습니다. 출력 순서는 보장되지 않습니다.
# 각 예제를 별도 파일로 저장하고 IDE/관리자에서 로드한 뒤 Main을 실행해 다른 프로시저를 등록하십시오. WeightWatch/ManaWatch는 전체 정의를
# 포함하며 무게/마나를 3회 측정합니다. Wait(1000)은 1000밀리초이고 월드 안에서만 출력합니다. 유한한 감시이며 일시 중지는 시간을 늘립니다. 두 작업 예제에는
# 동시 프로시저 실행을 허용해야 합니다.
UO.CallSub("WeightWatch")
UO.CallSub("ManaWatch")
END SUB
Sub WeightWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Weight: " & CStr(UO.Weight()))
End If
UO.Wait(1000)
Next
End Sub
Sub ManaWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Mana: " & CStr(UO.Mana()))
End If
UO.Wait(1000)
Next
End Sub매개변수 및 실행 설명:
- WeightWatch와 ManaWatch는 지역 변수를 공유하지 않습니다. 출력 순서는 보장되지 않습니다.
- 각 예제를 별도 파일로 저장하고 IDE/관리자에서 로드한 뒤 Main을 실행해 다른 프로시저를 등록하십시오. WeightWatch/ManaWatch는 전체 정의를 포함하며 무게/마나를 3회 측정합니다. Wait(1000)은 1000밀리초이고 월드 안에서만 출력합니다. 유한한 감시이며 일시 중지는 시간을 늘립니다. 두 작업 예제에는 동시 프로시저 실행을 허용해야 합니다.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь