Repository navigation
FR UO Topic speech chat
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Accueil · C# · IDE · UO API · A–Z · Exemples · Langues
Discours des personnages, émotions, canaux de discussion et filtres. L'impression locale des messages dans le client se situe dans le client UI.
| Sujet | Commandes et explications |
|---|---|
| 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
Chaque carte de commande possède plusieurs scénarios indépendants : code direct, fonctions et classes. Vous trouverez ci-dessous une sélection de courts scénarios ; des restrictions et une analyse complète sont à prévoir.
Paramètres, résultat et tous les scénarios
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;Paramètres, résultat et tous les scénarios
UO.GlobalChatSendMsg("Hello");Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.AddChatUserIgnore(object? userName);Ajoute le nom de l'expéditeur à la liste de filtrage des messages du journal local. Le filtre fonctionne sur ce client et n'envoie pas de requête au serveur.
-
userNameest le nom de l'expéditeur du journal. Une valeur vide ou contenant des espaces est ignorée ; les espaces de bord sont supprimés.
void. La commande ne renvoie pas d'ajout réussi.
- La comparaison du nom de l'expéditeur n'est pas sensible à la casse. Les messages provenant d'un nom correspondant sont masqués par un filtre de journal local ; Cela ne bloque pas un joueur sur le serveur.
UO.ClearChatUserIgnore()efface toute la liste locale des noms. La suppression du filtre ne restaure pas les enregistrements qui ont déjà été exclus de l'affichage.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.AddChatUserIgnore");
UO.AddChatUserIgnore("ExampleVendor");Paramètres et déroulement de l’exécution :
- Masquez les nouvelles entrées de journal sous ce nom dans le locataire actuel.
UO.AddChatUserIgnore("ExampleVendor");Paramètres et déroulement de l’exécution :
- Passez le nom via une variable chaîne.
return RunScenario();
object? RunScenario()
{
var sender = "ExampleVendor";
UO.AddChatUserIgnore(sender);
return null;
}Paramètres et déroulement de l’exécution :
- Ajoutez deux noms au filtre local ; l'appel ne les bloque pas sur le serveur.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: userName (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.AddChatUserIgnore:bridge.AddChatUserIgnore(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "addchatuserignore": bridge.AddChatUserIgnore(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Bow();Envoie l'action du personnage à l'arc via GameActions.EmoteAction.
Il n'y a pas de paramètres.
void - aucune valeur de retour.
- C'est l'animation/action du personnage. La commande ne renvoie pas de confirmation du serveur et n'attend pas la fin de l'animation.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.Bow");
UO.Bow();Paramètres et déroulement de l’exécution :
- Envoyez un arc.
UO.Bow();Paramètres et déroulement de l’exécution :
- La vérification de la connexion précède l'envoi de l'action.
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;Paramètres et déroulement de l’exécution :
- La procédure entièrement déclarée envoie la même action.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Bow:bridge.Bow().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "bow": bridge.Bow(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.ClearChatUserIgnore();Supprime tous les filtres de nom d'expéditeur insensibles à la casse JournalManager.
Il n'y a pas de paramètres.
void - aucune valeur de retour.
- La suppression des filtres ne supprime pas les entrées de l'historique ni n'annule les filtres de texte AddJournalIgnore.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.ClearChatUserIgnore");
UO.ClearChatUserIgnore();Paramètres et déroulement de l’exécution :
- Supprime tous les filtres de nom d'expéditeur insensibles à la casse JournalManager.
UO.ClearChatUserIgnore();Paramètres et déroulement de l’exécution :
- Réactivez l'affichage des messages au nom du fournisseur.
return RunScenario();
object? RunScenario()
{
UO.AddChatUserIgnore("Vendor");
UO.ClearChatUserIgnore();
return null;
}Paramètres et déroulement de l’exécution :
- Effacer un ensemble vide est acceptable et ne crée pas de nouveau paramètre.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ClearChatUserIgnore:bridge.ClearChatUserIgnore().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "clearchatuserignore": bridge.ClearChatUserIgnore(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.EmoteAction(object? action);Envoie le nom de la chaîne d'action/animation du personnage à GameActions.EmoteAction.
-
action— Nom de l'action, tel que s'incliner ou saluer ; converti en string. La reconnaissance des actions est effectuée par GameActions.
void - aucune valeur de retour.
- Il s'agit d'une action de personnage, et non d'une impression d'une phrase dans un magazine. La commande ne renvoie pas de confirmation du serveur et n'attend pas l'animation.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.EmoteAction");
UO.EmoteAction("bow");Paramètres et déroulement de l’exécution :
- Le nom de l'action est arc.
UO.EmoteAction("bow");Paramètres et déroulement de l’exécution :
- Le salut du nom de l'action est transmis.
return RunScenario();
object? RunScenario()
{
UO.EmoteAction("salute");
return null;
}Paramètres et déroulement de l’exécution :
- La chaîne d'action est transmise sans attribuer de cible d'objet.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: action (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.EmoteAction:bridge.EmoteAction(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "emoteaction": bridge.EmoteAction(Text(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.FilterSpeech();
void UO.FilterSpeech(object? enabled);Active ou désactive le filtre vocal du client.
-
enabled— Valeur facultative : sans argument, le filtre est activé ; 0 s'éteint, int non nul s'allume.
void - aucune valeur de retour.
- Écrit l'indicateur normalisé dans l'état d'exécution et le transmet au gestionnaire. Le filtre affecte le traitement du client ; les événements du serveur et les autres paramètres de journal restent séparés.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.FilterSpeech");
UO.FilterSpeech();Paramètres et déroulement de l’exécution :
- Un nombre nul d’arguments signifie inclure et non lire.
UO.FilterSpeech();Paramètres et déroulement de l’exécution :
- Un 0 explicite désactive le filtre client.
return RunScenario();
object? RunScenario()
{
UO.FilterSpeech(0);
return null;
}Paramètres et déroulement de l’exécution :
- Le filtre s'allume et revient clairement à l'état éteint.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetSpeechFilter:bridge.SetSpeechFilter(state.SpeechFilter).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "filterspeech": state.SpeechFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetSpeechFilter(state.SpeechFilter); break;Paramètres: enabled (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetSpeechFilter:bridge.SetSpeechFilter(state.SpeechFilter).
Code interne de l’implémentation ; ce n’est pas un script autonome.
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();Imprime un avis indiquant que le correctif client natif existant FixTalk n'est pas requis par ClassicUO.
Il n'y a pas de paramètres.
void - aucune valeur de retour.
- La branche ExecuteLegacyManualAlias appelle uniquement SystemMessage. Il ne corrige pas le mouvement, la parole, les conteneurs ou le protocole réseau.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.FixTalk");
UO.FixTalk();Paramètres et déroulement de l’exécution :
- Le message décrit le manque de besoin de l'ancien correctif.
UO.FixTalk();Paramètres et déroulement de l’exécution :
- La procédure de compatibilité ne change pas le monde du jeu.
return RunScenario();
object? RunScenario()
{
CompatibilityNotice();
return null;
}
void CompatibilityNotice()
{
UO.FixTalk();
}Paramètres et déroulement de l’exécution :
- Après le message de diagnostic, l'exécution continue.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.SystemMessage:SystemMessage($"{name}: obsolete native-client patch; ClassicUO does not require it.").
Code interne de l’implémentation ; ce n’est pas un script autonome.
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();Lit ChatManager.CurrentChannelName.
Il n'y a pas de paramètres.
string — CurrentChannelName ou une chaîne vide si le canal n'est pas sélectionné.
- Lit ChatManager.CurrentChannelName. Ligne vide - pas de nom, pas de code d'erreur ; le canal lui-même n'est pas entré.
- Lit l'état local actuel. Il n’y a pas de package, de cible ou de mise à jour automatique ; les lectures individuelles peuvent voir différents états.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.
object? result = UO.GlobalChatActiveChannel();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Paramètres et déroulement de l’exécution :
- Lit ChatManager.CurrentChannelName.
UO.Print(UO.GlobalChatActiveChannel());Paramètres et déroulement de l’exécution :
- Lit ChatManager.CurrentChannelName. Ligne vide - pas de nom, pas de code d'erreur ; le canal lui-même n'est pas entré.
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;Paramètres et déroulement de l’exécution :
- Lit l'état local actuel. Il n’y a pas de package, de cible ou de mise à jour automatique ; les lectures individuelles peuvent voir différents états.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: dynamic / Any.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatActiveChannel:bridge.GlobalChatActiveChannel().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "globalchatactivechannel": return new InjectionValue(bridge.GlobalChatActiveChannel());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GlobalChatChannelsList();Bridge renvoie ChatManager.Channels.Keys.OrderBy(nom => nom).
Il n'y a pas de paramètres.
Tableau de chaînes de noms de canaux, triées par nom. Une table locale vide produit un tableau vide.
- Bridge renvoie ChatManager.Channels.Keys.OrderBy(nom => nom). La liste est connue du client et peut ne pas être complète tant que le serveur n'est pas mis à jour.
- Lit l'état local actuel. Il n’y a pas de package, de cible ou de mise à jour automatique ; les lectures individuelles peuvent voir différents états.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.
object? result = UO.GlobalChatChannelsList();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Paramètres et déroulement de l’exécution :
- Bridge renvoie ChatManager.Channels.Keys.OrderBy(nom => nom).
var channels = UO.GlobalChatChannelsList();
UO.Print(UO.GetArrayLength(channels));Paramètres et déroulement de l’exécution :
- Bridge renvoie ChatManager.Channels.Keys.OrderBy(nom => nom). La liste est connue du client et peut ne pas être complète tant que le serveur n'est pas mis à jour.
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;Paramètres et déroulement de l’exécution :
- Lit l'état local actuel. Il n’y a pas de package, de cible ou de mise à jour automatique ; les lectures individuelles peuvent voir différents états.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: dynamic / Any.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GlobalChatChannels()). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatChannels:bridge.GlobalChatChannels().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "globalchatchannelslist": return StringArray(bridge.GlobalChatChannels());Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GlobalChatJoinChannel(object? chName);Demande l’entrée dans le canal de discussion mondial.
-
chName— Envoyez du texte via ToString ; enregistré comme transmis.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- Envoie un Send_ChatJoinCommand avec le nom de canal donné. La présence d'un canal et l'autorisation d'entrer sont déterminées par le serveur. Le nom du canal actif local est lu séparément.
- Bridge envoie la requête sur le flux du jeu. Les règles du serveur s'appliquent ; Il n’y a pas d’attente de confirmation intégrée.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.GlobalChatJoinChannel");
UO.GlobalChatJoinChannel("General");Paramètres et déroulement de l’exécution :
- Demande l’entrée dans le canal de discussion mondial.
UO.GlobalChatJoinChannel("General");Paramètres et déroulement de l’exécution :
- Envoie un Send_ChatJoinCommand avec le nom de canal donné. La présence d'un canal et l'autorisation d'entrer sont déterminées par le serveur. Le nom du canal actif local est lu séparément.
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;Paramètres et déroulement de l’exécution :
- Bridge envoie la requête sur le flux du jeu. Les règles du serveur s'appliquent ; Il n’y a pas d’attente de confirmation intégrée.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: chName (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatJoin:bridge.GlobalChatJoin(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "globalchatjoinchannel": bridge.GlobalChatJoin(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GlobalChatLeaveChannel();Demande de quitter le canal de discussion mondial.
Il n'y a pas de paramètres.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- GlobalChatLeave envoie Send_ChatLeaveChannelCommand. Le nom de la chaîne locale changera une fois les données de discussion traitées.
- Dans les exemples, UO.Wait spécifie uniquement une pause de script ; la fin de la pause ne prouve pas que le serveur a complété la requête.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.GlobalChatLeaveChannel");
UO.GlobalChatLeaveChannel();Paramètres et déroulement de l’exécution :
- Demande de quitter le canal de discussion mondial.
UO.GlobalChatLeaveChannel();Paramètres et déroulement de l’exécution :
- GlobalChatLeave envoie Send_ChatLeaveChannelCommand. Le nom de la chaîne locale changera une fois les données de discussion traitées.
return RunScenario();
object? RunScenario()
{
UO.Print(UO.GlobalChatActiveChannel());
UO.GlobalChatLeaveChannel();
return null;
}Paramètres et déroulement de l’exécution :
- Dans les exemples, UO.Wait spécifie uniquement une pause de script ; la fin de la pause ne prouve pas que le serveur a complété la requête.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatLeave:bridge.GlobalChatLeave().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "globalchatleavechannel": bridge.GlobalChatLeave(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.GlobalChatSendMsg(object? msgText);Envoie un message au chat global.
-
msgText— Envoyez du texte via ToString ; enregistré comme transmis.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- Envoie un Send_ChatMessageCommand avec le texte transmis. Le canal utilise l'état de discussion client/serveur ; l'équipe ne choisit pas elle-même la chaîne.
- Bridge envoie la requête sur le flux du jeu. Les règles du serveur s'appliquent ; Il n’y a pas d’attente de confirmation intégrée.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.GlobalChatSendMsg");
UO.GlobalChatSendMsg("Hello");Paramètres et déroulement de l’exécution :
- Envoie un message au chat global.
UO.GlobalChatSendMsg("Hello");Paramètres et déroulement de l’exécution :
- Envoie un Send_ChatMessageCommand avec le texte transmis. Le canal utilise l'état de discussion client/serveur ; l'équipe ne choisit pas elle-même la chaîne.
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;Paramètres et déroulement de l’exécution :
- Bridge envoie la requête sur le flux du jeu. Les règles du serveur s'appliquent ; Il n’y a pas d’attente de confirmation intégrée.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: msgText (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GlobalChatSend:bridge.GlobalChatSend(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "globalchatsendmsg": bridge.GlobalChatSend(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Msg(object? message);Affiche un message local sur la progression du script ou la condition d'arrêt. Vous le voyez, pas les autres joueurs.
Un appel à une méthode avec un type de retour void est écrit sous la forme d'une instruction autonome C# ; le résultat ne peut pas être attribué ou vérifié. Le fait de remplir la déclaration ne constitue pas une confirmation de la part du serveur de jeu.
- Le message va dans la zone inférieure gauche de la fenêtre de jeu et dans le journal local. Une copie est disponible en sortie IDE. Dans le journal général du manager, activez le filtre des messages du script : l'entrée est disponible sans la fenêtre de jeu. Le filtre de messages du système serveur ne sélectionne pas ces enregistrements. Le paquet vocal réseau n'est pas envoyé. Pour l'inscription au dessus de la tête il y a UO.CharPrint.
-
UO.Printajoute une nouvelle entrée au journal des messages du jeu : lisez ou enregistrez d'abord la chaîne/le résultat de recherche souhaité, puis enregistrez le message de diagnostic. Dans une boucle rapide, enregistrez les messages lorsque des changements se produisent plutôt qu'à chaque itération. - Sans couleur, hue 0x03B2 est utilisé. UO.Print(text, color) accepte le texte en premier ; UO.ColorPrint(color, text) – la couleur d'abord.
- Malgré le nom du serveur ou la similitude avec un message réseau, la commande n'imprime que le texte local. Pour parler au monde, utilisez UO.Say.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande est une instruction séparée sans valeur de retour (void). Le texte du message figure directement dans l’appel.
UO.Msg("Hello from C#");Paramètres et déroulement de l’exécution :
- Processed=12 — nombre de démonstration d'éléments déjà traités. Convert.ToString le transforme en chaîne. Cet exemple ne rapporte qu'un nombre ; il ne transfère pas les objets eux-mêmes.
var processed = 12;
UO.Msg("Processed item entries: " + Convert.ToString(processed));Paramètres et déroulement de l’exécution :
- Le poids et le maximum du personnage sont lus. Un maximum nul/inconnu n’est pas considéré comme une surcharge. Si poids >= maximum, une ligne est imprimée et Main se termine ; les objets ne sont pas jetés.
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;Paramètres et déroulement de l’exécution :
- Main se souvient du poids, attend 1000 millisecondes et appelle le ReportWeight entièrement déclaré. L'assistant n'imprime que si le poids a changé et renvoie le nouveau poids pour le prochain contrôle. Il ne crée pas lui-même une boucle infinie.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: message (String)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.Msg. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.ServerPrint:bridge.ServerPrint(message).
Code interne de l’implémentation ; ce n’est pas un script autonome.
public void Msg(string message) => bridge.ServerPrint(message);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Salute();Demande une animation de salutation.
Il n'y a pas de paramètres.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- Salute appelle GameActions.EmoteAction("salute") via Invoke. Il s'agit d'une action de personnage, pas d'un texte UO.Say.
- Dans les exemples, UO.Wait spécifie uniquement une pause de script ; la fin de la pause ne prouve pas que le serveur a complété la requête.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.Salute");
UO.Salute();Paramètres et déroulement de l’exécution :
- Demande une animation de salutation.
UO.Salute();Paramètres et déroulement de l’exécution :
- Salute appelle GameActions.EmoteAction("salute") via Invoke. Il s'agit d'une action de personnage, pas d'un texte 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;Paramètres et déroulement de l’exécution :
- Dans les exemples, UO.Wait spécifie uniquement une pause de script ; la fin de la pause ne prouve pas que le serveur a complété la requête.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Salute:bridge.Salute().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "salute": bridge.Salute(); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Say(object? message);Envoie le discours normal du personnage au serveur : par exemple, une adresse à un banquier ou une commande à un animal de compagnie.
Un appel à une méthode avec un type de retour void est écrit sous la forme d'une instruction autonome C# ; le résultat ne peut pas être attribué ou vérifié. Le fait de remplir la déclaration ne constitue pas une confirmation de la part du serveur de jeu.
- Pour la version de protocole 2.0.0 et versions ultérieures, le client envoie la parole Unicode ; pour le plus âgé - discours ASCII. Le nom SayU ne force pas l'ancien protocole à Unicode. Sans couleur explicite, SpeechHue du profil est pris ; 0xFFFF dans UO.UOSayColor sélectionne également cette couleur. Le texte est envoyé au serveur, mais le script ne l'exécute pas sous forme de code.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.Say");
UO.Say("bank");Paramètres et déroulement de l’exécution :
- Connected est vérifié avant expédition. la banque est une ligne de discours, pas le nom API. Pour ouvrir une banque, vous avez généralement besoin d'un NPC approprié à proximité ; si le serveur utilise une expression différente, remplacez-la.
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;Paramètres et déroulement de l’exécution :
- petName est le nom de votre animal, ici Shadow. Cela constitue une ligne. Shadow follow me. Il s'agit d'un ordre pour que votre animal vous suive, plutôt que UO.Follow, qui déplace votre personnage.
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;Paramètres et déroulement de l’exécution :
- RequestBankIfHeavy vérifie la connexion et le poids maximum positif fiable. Ce n'est qu'en cas de surcharge qu'il envoie une banque et renvoie 1 en signe d'une requête envoyée. 0—demande non envoyée. Ce résultat appartient à l'assistant et non à la commande vocale.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: message (String)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.Say. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Say:bridge.Say(message).
Code interne de l’implémentation ; ce n’est pas un script autonome.
public void Say(string message) => bridge.Say(message);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SayU(object? text);Envoie le discours normal du personnage au serveur : par exemple, une adresse à un banquier ou une commande à un animal de compagnie.
Un appel à une méthode avec un type de retour void est écrit sous la forme d'une instruction autonome C# ; le résultat ne peut pas être attribué ou vérifié. Le fait de remplir la déclaration ne constitue pas une confirmation de la part du serveur de jeu.
- Pour la version de protocole 2.0.0 et versions ultérieures, le client envoie la parole Unicode ; pour le plus âgé - discours ASCII. Le nom SayU ne force pas l'ancien protocole à Unicode. Sans couleur explicite, SpeechHue du profil est pris ; 0xFFFF dans UO.UOSayColor sélectionne également cette couleur. Le texte est envoyé au serveur, mais le script ne l'exécute pas sous forme de code.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.SayU");
UO.SayU("bank");Paramètres et déroulement de l’exécution :
- Connected est vérifié avant expédition. la banque est une ligne de discours, pas le nom API. Pour ouvrir une banque, vous avez généralement besoin d'un NPC approprié à proximité ; si le serveur utilise une expression différente, remplacez-la.
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;Paramètres et déroulement de l’exécution :
- petName est le nom de votre animal, ici Shadow. Cela constitue une ligne. Shadow follow me. Il s'agit d'un ordre pour que votre animal vous suive, plutôt que UO.Follow, qui déplace votre personnage.
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;Paramètres et déroulement de l’exécution :
- RequestBankIfHeavy vérifie la connexion et le poids maximum positif fiable. Ce n'est qu'en cas de surcharge qu'il envoie une banque et renvoie 1 en signe d'une requête envoyée. 0—demande non envoyée. Ce résultat appartient à l'assistant et non à la commande vocale.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: text (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.Say:Say(arguments.Length > 0 ? arguments[0].ToString() : string.Empty). -
InjectionScript.Runtime.InjectionValue.ToString:arguments[0].ToString().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "sayu": Say(arguments.Length > 0 ? arguments[0].ToString() : string.Empty); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.UOAMessage(object? text);Imprime un message local à ClassicUO avec hue défini sur UO.FontColor. Convient aux notifications de script concernant l'inventaire, l'état de l'itinéraire ou l'achèvement d'une étape.
void : ne renvoie pas de texte, d'index de journal ou true/false. L'appel effectue une sortie locale ; Aucune confirmation d'affichage n'est renvoyée.
- Utilise l'état.FontColor du runtime actuel, à l'origine 0x03B2. L'enregistrement passe par la zone de message inférieure et le journal client, ainsi que par la sortie IDE.
- N'envoie pas de parole au serveur, ne provoque pas de fenêtre pop-up, n'envoie pas de message à un autre joueur. Le UO.Print régulier a sa propre couleur.
- Pour la couleur d'un message sans changer d'état.FontColor vous pouvez utiliser UO.Print(text,color).
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande est une instruction séparée sans valeur de retour (void). Le texte du message figure directement dans l’appel.
UO.UOAMessage("Hello from C#");Paramètres et déroulement de l’exécution :
- 0x0021 — indice hue ; La teinte finale dépend des fichiers de teintes du client. Le message est visible localement ; ce n'est pas prononcé par le personnage.
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;Paramètres et déroulement de l’exécution :
- L'avis complet accepte le texte et hue. Le dernier hue installé reste pour le prochain UOAMessage de ce runtime. Il n'y a pas de FontColor() intégré à lire ici.
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);
}Paramètres et déroulement de l’exécution :
- 0x03B2 — valeur initiale FontColor du nouveau runtime. Enfin, renvoie exactement la base sélectionnée lors de la gestion normale de l'achèvement/des erreurs ; il ne restaure pas la valeur précédente inconnue.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: text (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Print:bridge.Print(state.FontColor, Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "uoamessage": bridge.Print(state.FontColor, Text(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.UOSay(object? text);Envoie le discours normal du personnage au serveur : par exemple, une adresse à un banquier ou une commande à un animal de compagnie.
Un appel à une méthode avec un type de retour void est écrit sous la forme d'une instruction autonome C# ; le résultat ne peut pas être attribué ou vérifié. Le fait de remplir la déclaration ne constitue pas une confirmation de la part du serveur de jeu.
- Pour la version de protocole 2.0.0 et versions ultérieures, le client envoie la parole Unicode ; pour le plus âgé - discours ASCII. Le nom SayU ne force pas l'ancien protocole à Unicode. Sans couleur explicite, SpeechHue du profil est pris ; 0xFFFF dans UO.UOSayColor sélectionne également cette couleur. Le texte est envoyé au serveur, mais le script ne l'exécute pas sous forme de code.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.UOSay");
UO.UOSay("bank");Paramètres et déroulement de l’exécution :
- Connected est vérifié avant expédition. la banque est une ligne de discours, pas le nom API. Pour ouvrir une banque, vous avez généralement besoin d'un NPC approprié à proximité ; si le serveur utilise une expression différente, remplacez-la.
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;Paramètres et déroulement de l’exécution :
- petName est le nom de votre animal, ici Shadow. Cela constitue une ligne. Shadow follow me. Il s'agit d'un ordre pour que votre animal vous suive, plutôt que UO.Follow, qui déplace votre personnage.
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;Paramètres et déroulement de l’exécution :
- RequestBankIfHeavy vérifie la connexion et le poids maximum positif fiable. Ce n'est qu'en cas de surcharge qu'il envoie une banque et renvoie 1 en signe d'une requête envoyée. 0—demande non envoyée. Ce résultat appartient à l'assistant et non à la commande vocale.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: text (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.Say:Say(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "uosay": Say(Text(0)); return InjectionValue.Unit;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.UOSayColor(object? text, object? color);Envoie le discours normal du personnage au serveur : par exemple, une adresse à un banquier ou une commande à un animal de compagnie.
-
color- UO hue, pas RGB. Nombre ou chaîne hexadécimale ; le pont utilise les bits faibles 16. A ne pas confondre avec graphic/type. 0x0044 dans l'exemple est le hue sélectionné. Pour la version de protocole 2.0.0 et ultérieure, le client envoie la parole Unicode ; pour le plus âgé - discours ASCII. Le nom SayU ne force pas l'ancien protocole à Unicode. Sans couleur évidente, on prend SpeechHue du profil ; 0xFFFF dans UO.UOSayColor sélectionne également cette couleur. Le texte est envoyé au serveur, mais le script ne l'exécute pas sous forme de code.
Un appel à une méthode avec un type de retour void est écrit sous la forme d'une instruction autonome C# ; le résultat ne peut pas être attribué ou vérifié. Le fait de remplir la déclaration ne constitue pas une confirmation de la part du serveur de jeu.
- Pour la version de protocole 2.0.0 et versions ultérieures, le client envoie la parole Unicode ; pour le plus âgé - discours ASCII. Le nom SayU ne force pas l'ancien protocole à Unicode. Sans couleur explicite, SpeechHue du profil est pris ; 0xFFFF dans UO.UOSayColor sélectionne également cette couleur. Le texte est envoyé au serveur, mais le script ne l'exécute pas sous forme de code.
- UO.Print · UO.CharPrint · UO.Say · UO.ConColor
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
La commande forme une instruction séparée. Le message précédent indique le début de l’appel et ne confirme aucune action du serveur.
UO.Print("Calling UO.UOSayColor");
UO.UOSayColor("bank", 0x0044);Paramètres et déroulement de l’exécution :
- Connected est vérifié avant expédition. la banque est une ligne de discours, pas le nom API. Pour ouvrir une banque, vous avez généralement besoin d'un NPC approprié à proximité ; si le serveur utilise une expression différente, remplacez-la.
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;Paramètres et déroulement de l’exécution :
- petName est le nom de votre animal, ici Shadow. Cela constitue une ligne. Shadow follow me. Il s'agit d'un ordre pour que votre animal vous suive, plutôt que UO.Follow, qui déplace votre personnage.
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;Paramètres et déroulement de l’exécution :
- RequestBankIfHeavy vérifie la connexion et le poids maximum positif fiable. Ce n'est qu'en cas de surcharge qu'il envoie une banque et renvoie 1 en signe d'une requête envoyée. 0—demande non envoyée. Ce résultat appartient à l'assistant et non à la commande vocale.
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# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: text (Any), color (Any)
Résultat: void / Unit.
Pendant un appel:
-
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).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "uosaycolor": bridge.Say(Text(0), Arg(1)); return InjectionValue.Unit;ClassicUO — Bad Newbie & C# Scripts IDE