Repository navigation
KO UO Topic speech chat
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
홈 · C# · IDE · UO API · A–Z · 예 · 언어
캐릭터 음성, 감정, 채팅 채널 및 필터. 클라이언트의 로컬 메시지 인쇄는 클라이언트 UI에 있습니다.
| 주제 | 명령 및 설명 |
|---|---|
| Say | UO.Say |
| SayU | UO.SayU |
| UOSay | UO.UOSay |
| Emote | UO.EmoteAction · UO.Bow · UO.Salute |
| Speech Filters | UO.FilterSpeech |
| Global Chat | UO.GlobalChatSendMsg · UO.GlobalChatActiveChannel |
| Channels | UO.GlobalChatChannelsList · UO.GlobalChatJoinChannel · UO.GlobalChatLeaveChannel |
| Ignore Users | UO.AddChatUserIgnore · UO.ClearChatUserIgnore |
UO.Say · UO.SayU · UO.UOSay · UO.UOSayColor · UO.Msg · UO.UOAMessage · UO.FixTalk
UO.Bow · UO.Salute · UO.EmoteAction
UO.FilterSpeech · UO.AddChatUserIgnore · UO.ClearChatUserIgnore · UO.GlobalChatActiveChannel · UO.GlobalChatChannelsList · UO.GlobalChatJoinChannel · UO.GlobalChatLeaveChannel · UO.GlobalChatSendMsg
각 명령 카드에는 직접 코드, 함수 및 클래스 등 여러 가지 독립적인 시나리오가 있습니다. 다음은 선택된 짧은 시나리오입니다. 제한사항과 전체 분석이 카드에 포함되어 있습니다.
if (Truth(UO.Connected()))
{
UO.Say("bank");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;UO.GlobalChatSendMsg("Hello");Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddChatUserIgnore(object? userName);로컬 로그 메시지 필터링 목록에 보낸 사람의 이름을 추가합니다. 필터는 이 클라이언트에서 작동하며 서버에 요청을 보내지 않습니다.
-
userName는 로그 보낸 사람의 이름입니다. 비어 있거나 공백이 포함된 값은 무시됩니다. 가장자리 공간이 제거됩니다.
void. 이 명령은 성공적인 추가를 반환하지 않습니다.
- 보낸 사람 이름 비교에서는 대소문자를 구분하지 않습니다. 일치하는 이름의 메시지는 로컬 로그 필터에 의해 숨겨집니다. 이는 서버의 플레이어를 차단하는 것이 아닙니다.
UO.ClearChatUserIgnore()전체 로컬 이름 목록을 지웁니다. 필터를 지워도 이미 표시에서 제외된 기록은 복원되지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.AddChatUserIgnore");
UO.AddChatUserIgnore("ExampleVendor");매개변수와 실행 흐름:
- 현재 테넌트에서 이 이름으로 새 로그 항목을 숨깁니다.
UO.AddChatUserIgnore("ExampleVendor");매개변수와 실행 흐름:
- 문자열 변수를 통해 이름을 전달합니다.
return RunScenario();
object? RunScenario()
{
var sender = "ExampleVendor";
UO.AddChatUserIgnore(sender);
return null;
}매개변수와 실행 흐름:
- 로컬 필터에 두 개의 이름을 추가합니다. 호출은 서버에서 이를 차단하지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddChatUserIgnore("ExampleVendor");
UO.AddChatUserIgnore("ExamplePlayer");
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: userName (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AddChatUserIgnore:bridge.AddChatUserIgnore(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "addchatuserignore": bridge.AddChatUserIgnore(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Bow();GameActions.EmoteAction을 통해 활 캐릭터의 동작을 보냅니다.
매개변수가 없습니다.
void - 반환 값이 없습니다.
- 캐릭터의 애니메이션/액션입니다. 이 명령은 서버 확인을 반환하지 않으며 애니메이션이 완료될 때까지 기다리지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.Bow");
UO.Bow();매개변수와 실행 흐름:
- 활 하나를 보내십시오.
UO.Bow();매개변수와 실행 흐름:
- 작업을 보내기 전에 연결을 확인하세요.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.Connected()))
{
UO.Bow();
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- 완전히 선언된 프로시저는 동일한 작업을 전달합니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
Greet();
return null;
}
void Greet()
{
UO.Bow();
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Bow:bridge.Bow().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "bow": bridge.Bow(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearChatUserIgnore();대소문자를 구분하지 않는 모든 보낸 사람 이름 필터 JournalManager를 제거합니다.
매개변수가 없습니다.
void - 반환 값이 없습니다.
- 필터를 제거해도 기록 항목이 삭제되거나 AddJournalIgnore 텍스트 필터가 취소되지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.ClearChatUserIgnore");
UO.ClearChatUserIgnore();매개변수와 실행 흐름:
- 대소문자를 구분하지 않는 모든 보낸 사람 이름 필터 JournalManager를 제거합니다.
UO.ClearChatUserIgnore();매개변수와 실행 흐름:
- 공급업체를 대신하여 메시지 표시를 다시 활성화합니다.
return RunScenario();
object? RunScenario()
{
UO.AddChatUserIgnore("Vendor");
UO.ClearChatUserIgnore();
return null;
}매개변수와 실행 흐름:
- 빈 세트를 지우는 것은 허용되며 새 설정을 생성하지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.ClearChatUserIgnore();
UO.ClearChatUserIgnore();
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearChatUserIgnore:bridge.ClearChatUserIgnore().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "clearchatuserignore": bridge.ClearChatUserIgnore(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.EmoteAction(object? action);캐릭터 액션/애니메이션 문자열 이름을 GameActions.EmoteAction로 보냅니다.
-
action— 인사나 경례와 같은 동작 이름. string로 변환되었습니다. 동작 인식은 GameActions에 의해 수행됩니다.
void - 반환 값이 없습니다.
- 이것은 잡지에 문구를 인쇄하는 것이 아니라 캐릭터 액션입니다. 이 명령은 서버 확인을 반환하지 않으며 애니메이션을 기다리지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.EmoteAction");
UO.EmoteAction("bow");매개변수와 실행 흐름:
- 액션 이름은 활입니다.
UO.EmoteAction("bow");매개변수와 실행 흐름:
- 작업 이름 경례가 전달되었습니다.
return RunScenario();
object? RunScenario()
{
UO.EmoteAction("salute");
return null;
}매개변수와 실행 흐름:
- 작업 문자열은 개체 대상을 할당하지 않고 전달됩니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var action = "bow";
UO.EmoteAction(action);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: action (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.EmoteAction:bridge.EmoteAction(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "emoteaction": bridge.EmoteAction(Text(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.FilterSpeech();
void UO.FilterSpeech(object? enabled);클라이언트 음성 필터를 활성화하거나 비활성화합니다.
-
enabled— 선택 값: 인수가 없으면 필터가 켜집니다. 0가 꺼지고 0이 아닌 int가 켜집니다.
void - 반환 값이 없습니다.
- 정규화된 플래그를 런타임 상태에 쓰고 이를 관리자에게 전달합니다. 필터는 클라이언트의 처리에 영향을 미칩니다. 서버 이벤트와 기타 로그 설정은 별도로 유지됩니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.FilterSpeech");
UO.FilterSpeech();매개변수와 실행 흐름:
- 인수 수가 0이면 읽기가 아닌 포함을 의미합니다.
UO.FilterSpeech();매개변수와 실행 흐름:
- 명시적인 0는 클라이언트 필터를 끕니다.
return RunScenario();
object? RunScenario()
{
UO.FilterSpeech(0);
return null;
}매개변수와 실행 흐름:
- 필터가 켜지고 명확하게 꺼진 상태로 돌아갑니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.FilterSpeech(1);
UO.FilterSpeech(0);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetSpeechFilter:bridge.SetSpeechFilter(state.SpeechFilter).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;매개변수: enabled (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetSpeechFilter:bridge.SetSpeechFilter(state.SpeechFilter).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.FixTalk();레거시 네이티브 클라이언트 패치 FixTalk가 필요하지 않음 ClassicUO을 알리는 알림을 인쇄합니다.
매개변수가 없습니다.
void - 반환 값이 없습니다.
- ExecuteLegacyManualAlias 분기는 SystemMessage만 호출합니다. 동작, 음성, 컨테이너 또는 네트워크 프로토콜은 수정되지 않습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.FixTalk");
UO.FixTalk();매개변수와 실행 흐름:
- 메시지는 이전 패치가 필요하지 않음을 설명합니다.
UO.FixTalk();매개변수와 실행 흐름:
- 호환성 절차는 게임 세계를 바꾸지 않습니다.
return RunScenario();
object? RunScenario()
{
CompatibilityNotice();
return null;
}
void CompatibilityNotice()
{
UO.FixTalk();
}매개변수와 실행 흐름:
- 진단 메시지 후에 실행이 계속됩니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.FixTalk();
UO.Print("continued");
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.SystemMessage:SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.").
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "boxhack":
case "fixtalk":
case "fixwalk":
SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.");
break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GlobalChatActiveChannel();ChatManager.CurrentChannelName을 읽습니다.
매개변수가 없습니다.
string — CurrentChannelName 또는 채널이 선택되지 않은 경우 빈 문자열입니다.
- ChatManager.CurrentChannelName을 읽습니다. 빈 줄 - 이름 없음, 오류 코드 없음; 채널 자체는 입력되지 않습니다.
- 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
object? result = UO.GlobalChatActiveChannel();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));매개변수와 실행 흐름:
- ChatManager.CurrentChannelName을 읽습니다.
UO.Print(UO.GlobalChatActiveChannel());매개변수와 실행 흐름:
- ChatManager.CurrentChannelName을 읽습니다. 빈 줄 - 이름 없음, 오류 코드 없음; 채널 자체는 입력되지 않습니다.
return RunScenario();
object? RunScenario()
{
var channel = UO.GlobalChatActiveChannel();
if (Truth(Len(channel) > 0))
{
UO.Print(channel);
}
return null;
}
int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var before = UO.GlobalChatActiveChannel();
UO.Wait(500);
var after = UO.GlobalChatActiveChannel();
UO.Print(before);
UO.Print(after);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: dynamic / Any.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatActiveChannel:bridge.GlobalChatActiveChannel().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "globalchatactivechannel": return new InjectionValue(bridge.GlobalChatActiveChannel());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GlobalChatChannelsList();Bridge는 ChatManager.Channels.Keys.OrderBy(이름 => 이름)을 반환합니다.
매개변수가 없습니다.
이름별로 정렬된 채널 이름 문자열 배열입니다. 빈 로컬 테이블은 빈 배열을 생성합니다.
- Bridge는 ChatManager.Channels.Keys.OrderBy(이름 => 이름)을 반환합니다. 목록은 클라이언트에 알려지며 서버가 업데이트될 때까지 완료되지 않을 수 있습니다.
- 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
한 번의 호출 결과를 저널에 표시합니다. 숫자를 bool로 변환하지 않으며, 배열이면 요소 수를 표시합니다.
object? result = UO.GlobalChatChannelsList();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));매개변수와 실행 흐름:
- Bridge는 ChatManager.Channels.Keys.OrderBy(이름 => 이름)을 반환합니다.
var channels = UO.GlobalChatChannelsList();
UO.Print(UO.GetArrayLength(channels));매개변수와 실행 흐름:
- Bridge는 ChatManager.Channels.Keys.OrderBy(이름 => 이름)을 반환합니다. 목록은 클라이언트에 알려지며 서버가 업데이트될 때까지 완료되지 않을 수 있습니다.
return RunScenario();
object? RunScenario()
{
var channels = UO.GlobalChatChannelsList();
if (Truth(UO.GetArrayLength(channels) > 0))
{
UO.Print(channels[0]);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- 현재 로컬 상태를 읽습니다. 패키지, 대상 또는 자동 업데이트가 없습니다. 개별 읽기에서는 다른 상태가 나타날 수 있습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var before = UO.GlobalChatChannelsList();
UO.Wait(500);
var after = UO.GlobalChatChannelsList();
UO.Print(before);
UO.Print(after);
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: dynamic / Any.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GlobalChatChannels()). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatChannels:bridge.GlobalChatChannels().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "globalchatchannelslist": return StringArray(bridge.GlobalChatChannels());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GlobalChatJoinChannel(object? chName);글로벌 채팅 채널에 입장을 요청합니다.
-
chName— ToString을 통한 텍스트; 전송된 상태로 저장됩니다.
void - 값이 없습니다. 별도의 회선으로 전화하세요. 완료는 서버의 작업을 확인하지 않습니다.
- 주어진 채널 이름으로 Send_ChatJoinCommand를 보냅니다. 채널의 존재 여부와 입장 권한은 서버에 의해 결정됩니다. 로컬 활성 채널의 이름은 별도로 읽혀집니다.
- Bridge는 게임 스트림에 대한 요청을 보냅니다. 서버 규칙이 적용됩니다. 확인을 기다리는 내장은 없습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.GlobalChatJoinChannel");
UO.GlobalChatJoinChannel("General");매개변수와 실행 흐름:
- 글로벌 채팅 채널에 입장을 요청합니다.
UO.GlobalChatJoinChannel("General");매개변수와 실행 흐름:
- 주어진 채널 이름으로 Send_ChatJoinCommand를 보냅니다. 채널의 존재 여부와 입장 권한은 서버에 의해 결정됩니다. 로컬 활성 채널의 이름은 별도로 읽혀집니다.
return RunScenario();
object? RunScenario()
{
var message = "General";
if (Truth(UO.IsOnline()))
{
UO.GlobalChatJoinChannel(message);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- Bridge는 게임 스트림에 대한 요청을 보냅니다. 서버 규칙이 적용됩니다. 확인을 기다리는 내장은 없습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
SendText("General");
return null;
}
void SendText(dynamic message)
{
if (Truth(Len(message) > 0))
{
UO.GlobalChatJoinChannel(message);
}
}
int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: chName (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatJoin:bridge.GlobalChatJoin(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "globalchatjoinchannel": bridge.GlobalChatJoin(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GlobalChatLeaveChannel();글로벌 채팅 채널 탈퇴를 요청합니다.
매개변수가 없습니다.
void - 값이 없습니다. 별도의 회선으로 전화하세요. 완료는 서버의 작업을 확인하지 않습니다.
- GlobalChatLeave는 Send_ChatLeaveChannelCommand를 보냅니다. 채팅 데이터가 처리된 후 로컬 채널 이름이 변경됩니다.
- 예제에서 UO.Wait는 스크립트 일시 중지만 지정합니다. 일시 중지가 끝났다고 해서 서버가 요청을 완료했음을 증명하는 것은 아닙니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.GlobalChatLeaveChannel");
UO.GlobalChatLeaveChannel();매개변수와 실행 흐름:
- 글로벌 채팅 채널 탈퇴를 요청합니다.
UO.GlobalChatLeaveChannel();매개변수와 실행 흐름:
- GlobalChatLeave는 Send_ChatLeaveChannelCommand를 보냅니다. 채팅 데이터가 처리된 후 로컬 채널 이름이 변경됩니다.
return RunScenario();
object? RunScenario()
{
UO.Print(UO.GlobalChatActiveChannel());
UO.GlobalChatLeaveChannel();
return null;
}매개변수와 실행 흐름:
- 예제에서 UO.Wait는 스크립트 일시 중지만 지정합니다. 일시 중지가 끝났다고 해서 서버가 요청을 완료했음을 증명하는 것은 아닙니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.GlobalChatLeaveChannel();
UO.Wait(500);
UO.Print(UO.GlobalChatActiveChannel());
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatLeave:bridge.GlobalChatLeave().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "globalchatleavechannel": bridge.GlobalChatLeave(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GlobalChatSendMsg(object? msgText);글로벌 채팅에 메시지를 보냅니다.
-
msgText— ToString을 통한 텍스트; 전송된 상태로 저장됩니다.
void - 값이 없습니다. 별도의 회선으로 전화하세요. 완료는 서버의 작업을 확인하지 않습니다.
- 전송된 텍스트와 함께 Send_ChatMessageCommand를 보냅니다. 채널은 클라이언트/서버 채팅 상태를 사용합니다. 팀은 채널 자체를 선택하지 않습니다.
- Bridge는 게임 스트림에 대한 요청을 보냅니다. 서버 규칙이 적용됩니다. 확인을 기다리는 내장은 없습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.GlobalChatSendMsg");
UO.GlobalChatSendMsg("Hello");매개변수와 실행 흐름:
- 글로벌 채팅에 메시지를 보냅니다.
UO.GlobalChatSendMsg("Hello");매개변수와 실행 흐름:
- 전송된 텍스트와 함께 Send_ChatMessageCommand를 보냅니다. 채널은 클라이언트/서버 채팅 상태를 사용합니다. 팀은 채널 자체를 선택하지 않습니다.
return RunScenario();
object? RunScenario()
{
var message = "Hello";
if (Truth(UO.IsOnline()))
{
UO.GlobalChatSendMsg(message);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- Bridge는 게임 스트림에 대한 요청을 보냅니다. 서버 규칙이 적용됩니다. 확인을 기다리는 내장은 없습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
SendText("Hello");
return null;
}
void SendText(dynamic message)
{
if (Truth(Len(message) > 0))
{
UO.GlobalChatSendMsg(message);
}
}
int Len(object? value) => Convert.ToString(value)?.Length ?? 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: msgText (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatSend:bridge.GlobalChatSend(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "globalchatsendmsg": bridge.GlobalChatSend(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Msg(object? message);스크립트 진행 또는 중지 조건에 대한 로컬 메시지를 표시합니다. 보시다시피 다른 플레이어는 아닙니다.
반환 유형이 void인 메서드에 대한 호출은 독립 실행형 문 C#로 작성됩니다. 결과를 할당하거나 확인할 수 없습니다. 명세서를 작성한다고 해서 게임 서버의 확인이 이루어지는 것은 아닙니다.
- 메시지는 게임창 좌측하단과 로컬로그로 이동합니다. 출력 IDE에서 사본을 사용할 수 있습니다. 관리자의 일반 로그에서 스크립트 메시지 필터를 활성화하면 게임 창 없이 항목을 사용할 수 있습니다. 서버 시스템 메시지 필터는 그러한 레코드를 선택하지 않습니다. 네트워크 음성 패킷이 전송되지 않습니다. 머리 위의 비문에는 UO.CharPrint이 있습니다.
-
UO.Print는 게임 메시지 로그에 새 항목을 추가합니다. 먼저 원하는 검색 문자열/결과를 읽거나 저장한 다음 진단 메시지를 기록합니다. 빠른 루프에서는 모든 반복이 아닌 변경 사항이 발생할 때 메시지를 기록합니다. - 색상이 없으면 hue 0x03B2가 사용됩니다. UO.Print(text, color)는 텍스트를 먼저 받아들입니다. UO.ColorPrint(color, text) – 색상 우선.
- 서버 이름이나 네트워크 메시지와의 유사성에도 불구하고 이 명령은 로컬 텍스트만 인쇄합니다. 전 세계와 대화하려면 UO.Say를 사용하세요.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문이며 반환 값이 없습니다(void). 메시지 내용은 호출에 직접 표시됩니다.
UO.Msg("Hello from C#");매개변수와 실행 흐름:
- 처리됨=12 — 이미 처리된 항목의 데모 수입니다. Convert.ToString를 문자열로 변환합니다. 이 예에서는 숫자만 보고합니다. 객체 자체를 전송하지는 않습니다.
var processed = 12;
UO.Msg("Processed item entries: " + Convert.ToString(processed));매개변수와 실행 흐름:
- 캐릭터의 무게와 최대값을 읽어옵니다. 0/알 수 없는 최대값은 과부하로 간주되지 않습니다. 무게가 최대값보다 크면 한 줄이 인쇄되고 Main이 끝납니다. 물건은 버리지 않습니다.
return RunScenario();
object? RunScenario()
{
var weight = UO.Weight();
var maximum = UO.MaxWeight();
if (Truth(maximum > 0) && Truth(weight >= maximum))
{
UO.Msg("Too heavy: " + Convert.ToString(weight) + "/" + Convert.ToString(maximum));
return null;
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- Main은 가중치를 기억하고 1000 밀리초를 기다린 후 완전히 선언된 ReportWeight를 호출합니다. 보조자는 무게가 변경된 경우에만 인쇄하고 다음 점검을 위해 새 무게를 반환합니다. 그 자체로는 무한 루프를 생성하지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var previous = UO.Weight();
UO.Wait(1000);
previous = ReportWeight(previous, UO.Weight());
return null;
}
dynamic ReportWeight(dynamic previous, dynamic current)
{
if (Truth(previous != current))
{
UO.Msg("Weight changed: " + Convert.ToString(current));
}
return current;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: message (String)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.Msg. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ServerPrint:bridge.ServerPrint(message).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
public void Msg(string message) => bridge.ServerPrint(message);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Salute();인사말 애니메이션을 요청합니다.
매개변수가 없습니다.
void - 값이 없습니다. 별도의 회선으로 전화하세요. 완료는 서버의 작업을 확인하지 않습니다.
- Salute는 Invoke를 통해 GameActions.EmoteAction("경례")를 호출합니다. UO.Say 텍스트가 아닌 캐릭터 액션입니다.
- 예제에서 UO.Wait는 스크립트 일시 중지만 지정합니다. 일시 중지가 끝났다고 해서 서버가 요청을 완료했음을 증명하는 것은 아닙니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.Salute");
UO.Salute();매개변수와 실행 흐름:
- 인사말 애니메이션을 요청합니다.
UO.Salute();매개변수와 실행 흐름:
- Salute는 Invoke를 통해 GameActions.EmoteAction("경례")를 호출합니다. UO.Say 텍스트가 아닌 캐릭터 액션입니다.
return RunScenario();
object? RunScenario()
{
if (Truth(UO.IsOnline()))
{
UO.Salute();
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- 예제에서 UO.Wait는 스크립트 일시 중지만 지정합니다. 일시 중지가 끝났다고 해서 서버가 요청을 완료했음을 증명하는 것은 아닙니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.Salute();
UO.Wait(1000);
UO.Print("Salute requested");
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: 매개변수가 없습니다.
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Salute:bridge.Salute().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "salute": bridge.Salute(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Say(object? message);캐릭터의 일반적인 말을 서버에 보냅니다. 예를 들어 은행원에게 주소를 보내거나 애완동물에게 명령을 보냅니다.
반환 유형이 void인 메서드에 대한 호출은 독립 실행형 문 C#로 작성됩니다. 결과를 할당하거나 확인할 수 없습니다. 명세서를 작성한다고 해서 게임 서버의 확인이 이루어지는 것은 아닙니다.
- 프로토콜 버전 2.0.0 이상의 경우 클라이언트는 유니코드 음성을 보냅니다. 나이가 많은 사람의 경우 - ASCII 연설. SayU라는 이름은 이전 프로토콜을 유니코드로 강제하지 않습니다. 명시적인 색상이 없으면 프로필의 SpeechHue이 촬영됩니다. UO.UOSayColor의 0xFFFF도 이 색상을 선택합니다. 텍스트가 서버로 전송되지만 스크립트는 이를 코드로 실행하지 않습니다.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.Say");
UO.Say("bank");매개변수와 실행 흐름:
- Connected는 발송 전 확인됩니다. 은행은 이름 API이 아니라 한 줄의 연설입니다. 은행을 개설하려면 일반적으로 근처에 적합한 NPC이 필요합니다. 서버가 다른 문구를 사용하는 경우 이를 바꾸십시오.
if (Truth(UO.Connected()))
{
UO.Say("bank");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- petName는 애완동물의 이름입니다. 여기서는 Shadow입니다. 한 줄로 구성됩니다. Shadow follow me. 캐릭터를 움직이는 UO.Follow이 아닌 펫이 따라오도록 하는 명령입니다.
return RunScenario();
object? RunScenario()
{
var petName = "Shadow";
if (Truth(UO.Connected()))
{
UO.Say(petName + " follow me");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- RequestBankIfHeavy 연결과 안정적인 양수 최대 중량을 확인합니다. 과부하가 걸린 경우에만 뱅크를 보내고 전송된 요청의 표시로 1를 반환합니다. 0—요청이 전송되지 않았습니다. 이 결과는 음성 명령이 아닌 보조자에게 속합니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
return RequestBankIfHeavy();
return null;
}
dynamic RequestBankIfHeavy()
{
if (!(Truth(UO.Connected())))
{
return 0;
}
var maximum = UO.MaxWeight();
if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
{
return 0;
}
UO.Say("bank");
return 1;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: message (String)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.Say. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Say:bridge.Say(message).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
public void Say(string message) => bridge.Say(message);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SayU(object? text);캐릭터의 일반적인 말을 서버에 보냅니다. 예를 들어 은행원에게 주소를 보내거나 애완동물에게 명령을 보냅니다.
반환 유형이 void인 메서드에 대한 호출은 독립 실행형 문 C#로 작성됩니다. 결과를 할당하거나 확인할 수 없습니다. 명세서를 작성한다고 해서 게임 서버의 확인이 이루어지는 것은 아닙니다.
- 프로토콜 버전 2.0.0 이상의 경우 클라이언트는 유니코드 음성을 보냅니다. 나이가 많은 사람의 경우 - ASCII 연설. SayU라는 이름은 이전 프로토콜을 유니코드로 강제하지 않습니다. 명시적인 색상이 없으면 프로필의 SpeechHue이 촬영됩니다. UO.UOSayColor의 0xFFFF도 이 색상을 선택합니다. 텍스트가 서버로 전송되지만 스크립트는 이를 코드로 실행하지 않습니다.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.SayU");
UO.SayU("bank");매개변수와 실행 흐름:
- Connected는 발송 전 확인됩니다. 은행은 이름 API이 아니라 한 줄의 연설입니다. 은행을 개설하려면 일반적으로 근처에 적합한 NPC이 필요합니다. 서버가 다른 문구를 사용하는 경우 이를 바꾸십시오.
if (Truth(UO.Connected()))
{
UO.SayU("bank");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- petName는 애완동물의 이름입니다. 여기서는 Shadow입니다. 한 줄로 구성됩니다. Shadow follow me. 캐릭터를 움직이는 UO.Follow이 아닌 펫이 따라오도록 하는 명령입니다.
return RunScenario();
object? RunScenario()
{
var petName = "Shadow";
if (Truth(UO.Connected()))
{
UO.SayU(petName + " follow me");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- RequestBankIfHeavy 연결과 안정적인 양수 최대 중량을 확인합니다. 과부하가 걸린 경우에만 뱅크를 보내고 전송된 요청의 표시로 1를 반환합니다. 0—요청이 전송되지 않았습니다. 이 결과는 음성 명령이 아닌 보조자에게 속합니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
return RequestBankIfHeavy();
return null;
}
dynamic RequestBankIfHeavy()
{
if (!(Truth(UO.Connected())))
{
return 0;
}
var maximum = UO.MaxWeight();
if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
{
return 0;
}
UO.SayU("bank");
return 1;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: text (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.Say:Say(arguments.Length > 0 ? arguments[0].ToString() : string.Empty). -
InjectionScript.Runtime.InjectionValue.ToString:arguments[0].ToString().
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "sayu": Say(arguments.Length > 0 ? arguments[0].ToString() : string.Empty); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.UOAMessage(object? text);hue를 UO.FontColor로 설정하여 ClassicUO에 로컬 메시지를 인쇄합니다. 재고, 경로 상태 또는 단계 완료에 대한 스크립트 알림에 적합합니다.
void: 텍스트, 로그 색인 또는 true/false를 반환하지 않습니다. 호출은 로컬 출력을 수행합니다. 반환된 표시 확인이 없습니다.
- 현재 런타임의 상태FontColor(원래는 0x03B2)를 사용합니다. 녹음은 하단 메시지 영역과 클라이언트 로그, IDE 출력을 통해 진행됩니다.
- 서버에 음성을 보내지 않고, 팝업 창을 띄우지 않으며, 다른 플레이어에게 메시지를 보내지 않습니다. 일반 UO.Print에는 고유한 색상이 있습니다.
- 상태를 변경하지 않고 하나의 메시지 색상을 지정하려면 FontColor UO.Print(text,color)를 사용할 수 있습니다.
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문이며 반환 값이 없습니다(void). 메시지 내용은 호출에 직접 표시됩니다.
UO.UOAMessage("Hello from C#");매개변수와 실행 흐름:
- 0x0021 — 색인 hue; 최종 색상은 클라이언트의 색상 파일에 따라 다릅니다. 메시지는 로컬에서 볼 수 있습니다. 캐릭터가 말하지 않습니다.
UO.FontColor(0x0021);
var first = UO.FindList("0x0EED", "backpack");
if (Truth(first == ""))
{
UO.UOAMessage("No gold in the loaded backpack");
}
else
{
UO.UOAMessage("Gold units: " + Convert.ToString(UO.FindFullQuantity()));
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- 전체 공지에는 텍스트와 hue가 허용됩니다. 마지막으로 설치된 hue는 이 런타임의 다음 UOAMessage에도 남아 있습니다. 여기에서는 읽을 수 있는 내장 FontColor()이 없습니다.
return RunScenario();
object? RunScenario()
{
Notice("Supplies checked", 0x0044);
Notice("Restock needed", 0x0021);
return null;
}
void Notice(dynamic text, dynamic hue)
{
UO.FontColor(hue);
UO.UOAMessage(text);
}매개변수와 실행 흐름:
- 0x03B2 — 새 런타임의 초기 값 FontColor. 마지막으로 정상적인 완료/오류 처리 시 선택한 기반을 정확하게 반환합니다. 알 수 없는 이전 값은 복원되지 않습니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var baseHue = 0x03B2;
try
{
UO.FontColor(0x0021);
UO.UOAMessage("Check the route before moving");
}
finally
{
UO.FontColor(baseHue);
}
UO.UOAMessage("Ready");
UO.Print("Regular Print keeps its own color");
return null;
}
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: text (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Print:bridge.Print(state.FontColor, Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "uoamessage": bridge.Print(state.FontColor, Text(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.UOSay(object? text);캐릭터의 일반적인 말을 서버에 보냅니다. 예를 들어 은행원에게 주소를 보내거나 애완동물에게 명령을 보냅니다.
반환 유형이 void인 메서드에 대한 호출은 독립 실행형 문 C#로 작성됩니다. 결과를 할당하거나 확인할 수 없습니다. 명세서를 작성한다고 해서 게임 서버의 확인이 이루어지는 것은 아닙니다.
- 프로토콜 버전 2.0.0 이상의 경우 클라이언트는 유니코드 음성을 보냅니다. 나이가 많은 사람의 경우 - ASCII 연설. SayU라는 이름은 이전 프로토콜을 유니코드로 강제하지 않습니다. 명시적인 색상이 없으면 프로필의 SpeechHue이 촬영됩니다. UO.UOSayColor의 0xFFFF도 이 색상을 선택합니다. 텍스트가 서버로 전송되지만 스크립트는 이를 코드로 실행하지 않습니다.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.UOSay");
UO.UOSay("bank");매개변수와 실행 흐름:
- Connected는 발송 전 확인됩니다. 은행은 이름 API이 아니라 한 줄의 연설입니다. 은행을 개설하려면 일반적으로 근처에 적합한 NPC이 필요합니다. 서버가 다른 문구를 사용하는 경우 이를 바꾸십시오.
if (Truth(UO.Connected()))
{
UO.UOSay("bank");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- petName는 애완동물의 이름입니다. 여기서는 Shadow입니다. 한 줄로 구성됩니다. Shadow follow me. 캐릭터를 움직이는 UO.Follow이 아닌 펫이 따라오도록 하는 명령입니다.
return RunScenario();
object? RunScenario()
{
var petName = "Shadow";
if (Truth(UO.Connected()))
{
UO.UOSay(petName + " follow me");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- RequestBankIfHeavy 연결과 안정적인 양수 최대 중량을 확인합니다. 과부하가 걸린 경우에만 뱅크를 보내고 전송된 요청의 표시로 1를 반환합니다. 0—요청이 전송되지 않았습니다. 이 결과는 음성 명령이 아닌 보조자에게 속합니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
return RequestBankIfHeavy();
return null;
}
dynamic RequestBankIfHeavy()
{
if (!(Truth(UO.Connected())))
{
return 0;
}
var maximum = UO.MaxWeight();
if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
{
return 0;
}
UO.UOSay("bank");
return 1;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: text (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.Say:Say(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "uosay": Say(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.UOSayColor(object? text, object? color);캐릭터의 일반적인 말을 서버에 보냅니다. 예를 들어 은행원에게 주소를 보내거나 애완동물에게 명령을 보냅니다.
-
color- UO hue, RGB 아님. 숫자 또는 16진수 문자열. 브리지는 낮은 16 비트를 사용합니다. graphic/type와 혼동하지 마세요. 예시에서는 0x0044가 선택된 hue입니다. 프로토콜 버전 2.0.0 이상의 경우 클라이언트는 유니코드 음성을 보냅니다. 나이가 많은 사람의 경우 - ASCII 연설. SayU이라는 이름은 이전 프로토콜을 유니코드로 강제 지정하지 않습니다. 뚜렷한 색상이 없으면 프로필의 SpeechHue가 촬영됩니다. UO.UOSayColor의 0xFFFF도 이 색상을 선택합니다. 텍스트가 서버로 전송되지만 스크립트는 이를 코드로 실행하지 않습니다.
반환 유형이 void인 메서드에 대한 호출은 독립 실행형 문 C#로 작성됩니다. 결과를 할당하거나 확인할 수 없습니다. 명세서를 작성한다고 해서 게임 서버의 확인이 이루어지는 것은 아닙니다.
- 프로토콜 버전 2.0.0 이상의 경우 클라이언트는 유니코드 음성을 보냅니다. 나이가 많은 사람의 경우 - ASCII 연설. SayU라는 이름은 이전 프로토콜을 유니코드로 강제하지 않습니다. 명시적인 색상이 없으면 프로필의 SpeechHue이 촬영됩니다. UO.UOSayColor의 0xFFFF도 이 색상을 선택합니다. 텍스트가 서버로 전송되지만 스크립트는 이를 코드로 실행하지 않습니다.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
각 예제는 별도의 파일 .csx로 저장하고 IDE에서 실행할 수 있습니다. UO 개체와 대기 기능은 현재 게임 세션의 호스트를 제공합니다. 데모 serial 이름, 좌표, 주소를 자신의 것으로 바꾸세요.
이 코드를 별도의 .csx 파일로 실행하세요. 인수는 호출에 직접 표시됩니다. 예제의 이름, serial, 주소를 자신의 값으로 바꾸세요.
명령은 독립된 문입니다. 앞의 메시지는 호출 시작을 나타내며 서버 동작의 완료를 확인하지 않습니다.
UO.Print("Calling UO.UOSayColor");
UO.UOSayColor("bank", 0x0044);매개변수와 실행 흐름:
- Connected는 발송 전 확인됩니다. 은행은 이름 API이 아니라 한 줄의 연설입니다. 은행을 개설하려면 일반적으로 근처에 적합한 NPC이 필요합니다. 서버가 다른 문구를 사용하는 경우 이를 바꾸십시오.
if (Truth(UO.Connected()))
{
UO.UOSayColor("bank", 0x0044);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- petName는 애완동물의 이름입니다. 여기서는 Shadow입니다. 한 줄로 구성됩니다. Shadow follow me. 캐릭터를 움직이는 UO.Follow이 아닌 펫이 따라오도록 하는 명령입니다.
return RunScenario();
object? RunScenario()
{
var petName = "Shadow";
if (Truth(UO.Connected()))
{
UO.UOSayColor(petName + " follow me", 0x0044);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;매개변수와 실행 흐름:
- RequestBankIfHeavy 연결과 안정적인 양수 최대 중량을 확인합니다. 과부하가 걸린 경우에만 뱅크를 보내고 전송된 요청의 표시로 1를 반환합니다. 0—요청이 전송되지 않았습니다. 이 결과는 음성 명령이 아닌 보조자에게 속합니다.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
return RequestBankIfHeavy();
return null;
}
dynamic RequestBankIfHeavy()
{
if (!(Truth(UO.Connected())))
{
return 0;
}
var maximum = UO.MaxWeight();
if (Truth(maximum <= 0) || Truth(UO.Weight() < maximum))
{
return 0;
}
UO.UOSayColor("bank", 0x0044);
return 1;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#은 대소문자를 구분합니다. 정확한 UO 이름을 사용하세요. 숫자 플래그는 0과 비교하고 반환 형식이 bool일 때만 bool을 사용하세요.
매개변수: text (Any), color (Any)
결과: void / Unit.
호출 시:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Say:bridge.Say(Text(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(1).
내부 구현 코드이며 독립 스크립트로 실행할 수 없습니다.
case "uosaycolor": bridge.Say(Text(0), Arg(1)); return InjectionValue.Unit;ClassicUO — Bad Newbie & C# Scripts IDE