Skip to content

FR UO Topic localization

Codex edited this page Oct 12, 2026 · 4 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Localisation

Accueil · C# · IDE · UO API · A–Z · Exemples · Langues

Récupération du texte cliloc localisé et des informations de codage. Les noms de commandes API ne sont pas traduits lors du changement de langue.

Sections

Sujet Commandes et explications
Cliloc UO.GetCliloc
Cliloc by ID UO.GetClilocByID
Codepage UO.GetUserCodepage

Toutes les commandes du thème

Localisation

UO.GetCliloc · UO.GetClilocByID · UO.GetUserCodepage

Exemples sur le sujet

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.

UO.GetCliloc

Paramètres, résultat et tous les scénarios

var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
    UO.Print(UO.GetCliloc(item));
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

UO.GetClilocByID

Paramètres, résultat et tous les scénarios

var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

Référence complète des commandes


UO.GetCliloc

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Signatures C#

dynamic UO.GetCliloc(object? objID);

Lit le texte des propriétés de l'objet fini à partir de OPL. GetTooltip et GetCliloc sont des synonymes.

Paramètres

  • objID — Objet serial/ID requis, pas type et pas cliloc. Accepte int, chaîne décimale/hexadécimale, self, backpack, lasttarget, finditem ou nom AddObject. 0 signifie aucun objet.

Valeur de retour

string — le nom et le texte des propriétés, séparés par une nouvelle ligne, ou uniquement la partie non vide. Chaîne vide si ObjID=0 ou si les propriétés ne sont pas reçues. C'est un texte tout fait ; le cliloc numérique ID et les paramètres sont renvoyés par GetTooltipRec.

Comportement

  • Si l'entrée existe déjà dans OPL, son texte est renvoyé immédiatement. S'il n'y a pas d'entrée, une demande de propriété est envoyée et une réponse est attendue jusqu'à 200 ms avec une vérification toutes les 10 ms. Une pause ne garantit pas une réponse.
  • Nous avons besoin d'un objet accessible et d'une prise en charge des propriétés par le serveur. Un résultat vide n'est pas une preuve de l'absence de l'objet : utilisez Exists seul.
  • Le texte peut contenir du balisage du serveur. N'analysez pas les propriétés numériques par position de ligne ; utilisez GetTooltipRec pour cela.

Scripts C# autonomes

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.

Exemple simple

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.GetCliloc("backpack");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. Propriétés d'un objet dans un sac à dos - script direct

Paramètres et déroulement de l’exécution :

  • FindType : or 0x0EED, n'importe quel hue=-1, contenu direct backpack. ObjID=élément - trouvé serial.
  • Le résultat du getter est le texte, pas la quantité d'or. Pour la quantité, utilisez FindCount(article).
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
    UO.Print(UO.GetCliloc(item));
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

2. Gérer aucune réponse - Fonction de script

Paramètres et déroulement de l’exécution :

  • ObjID=lasttarget doit pointer vers l'objet souhaité.
  • Une chaîne vide est traitée séparément ; Il n’est pas nécessaire de répéter automatiquement la demande dans une boucle sans fin.
return  RunScenario();
 object? RunScenario()
{
    var text = UO.GetCliloc("lasttarget");
    if (Truth(text == ""))
    {
        UO.Print("No properties received");
    }
    else
    {
        UO.Print(text);
    }

    return null;
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. Enregistrer le texte jusqu'à la prochaine action - classe de script

Paramètres et déroulement de l’exécution :

  • id et save sont des variables distinctes : le ID unique de l'objet et un instantané de son texte.
  • enregistré ne changera pas automatiquement si les propriétés sur le serveur changent ultérieurement.
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 id = UO.GetSerial("lasttarget");
        var saved = UO.GetCliloc(id);
        UO.Print("Object: 0x" + Hex(id));
        UO.Print(saved);
        return null;
    }

    string Hex(object? value) => Convert.ToInt64(value).ToString("X");
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.GetCliloc(objID) — UO.GetCliloc(Any)

Paramètres: objID (Any)

Résultat: dynamic / Any.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "getcliloc":

                case "gettooltip":

                    return new InjectionValue(bridge.GetTooltip(Arg(0)));

UO.GetClilocByID

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Signatures C#

dynamic UO.GetClilocByID(object? clilocID, object? @params);

Traduit le modèle cliloc à partir des fichiers de jeu et remplace les paramètres transmis.

Paramètres

  • clilocID - Obligatoire int - ID d'un message localisé, pas serial d'un objet et non graphic. Par exemple, le numéro de la ligne[0] du résultat GetTooltipRec.
  • params — Tableau obligatoire de substitutions dans l'ordre 1_..., 2_.... Une valeur scalaire est autorisée : elle devient un tableau d'une chaîne. Pour un modèle sans paramètres, vous pouvez passer une chaîne vide. L'élément #number fait référence à un autre cliloc. Les éléments sont convertis en chaînes ; Il est préférable de passer des chaînes explicitement.

Valeur de retour

string — modèle traduit avec des substitutions de Params. S'il n'y a pas de chargeur cliloc, une chaîne vide est renvoyée. Si ID est inconnu, le ClilocLoader chargé renvoie le texte de diagnostic MegaCliloc : manquant avec ce numéro et les paramètres substitués. Ne renvoie pas le cliloc ID ni un signe de réussite.

Comportement

  • Pour les propriétés de l'objet, d'abord GetTooltipRec(ObjID) : le numéro de message et l'objet sont différents ID. Pour le texte prêt à l'emploi de toutes les propriétés, utilisez GetTooltip(ObjID).

Scripts C# autonomes

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.

Exemple simple

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.GetClilocByID(1042971, "");
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));

1. Modèle sans caractères génériques - script direct

Paramètres et déroulement de l’exécution :

  • ClilocID=1042971 — numéro d'exemple ; remplacez par ce dont vous avez besoin. Params est une chaîne vide transmise sous forme d'une seule valeur vide.
  • Pour un modèle sans marqueurs génériques, un paramètre vide ne modifie pas le texte. Si le modèle attend des données, transmettez un tableau comme dans l'exemple suivant.
var text = UO.GetClilocByID(1042971, "");
UO.Print(text);

2. Passer deux valeurs - fonction de script

Paramètres et déroulement de l’exécution :

  • ClilocID=1042971 est un exemple de modèle. args[0] et args[1] occupent les positions des premier et deuxième paramètres.
  • La déclaration de variable d'index[1] crée deux éléments : 0 à 1. Utilisez le modèle ID, qui attend des paramètres correspondants.
return  RunScenario();
 object? RunScenario()
{
    dynamic[] args = new dynamic[checked((int)(1) + 1)];
    args[0] = "iron";
    args[1] = "ingot";
    UO.Print(UO.GetClilocByID(1042971, args));
    return null;
}

3. Traduire le premier bien immobilier - classe de script

Paramètres et déroulement de l’exécution :

  • Le premier argument est les propriétés clilocID ; le second est son tableau prêt à l'emploi de Params.
  • La présence d'au moins un enregistrement est vérifiée. Tous les paramètres sont reçus du serveur et transmis avec leur ID.
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 rows = UO.GetTooltipRec("lasttarget");
        if (Truth(ArrayLength(rows) > 0))
        {
            var row = rows[0];
            UO.Print(UO.GetClilocByID(row[0], row[1]));
        }

        return null;
    }

    int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
    bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.GetClilocByID(clilocID, params) — UO.GetClilocByID(Any,Any)

Paramètres: clilocID (Any), params (Any)

Résultat: dynamic / Any.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

case "getclilocbyid":

                    return new InjectionValue(bridge.GetClilocById(Arg(0), StringArrayArg(1)));

UO.GetUserCodepage

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Signatures C#

int UO.GetUserCodepage();

Renvoie Encoding.Default.CodePage sans lire les paramètres de profil.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

int — Encoding.Default.CodePage du processus actuel. Il s'agit du codage .NET, et non du codage vocal sélectionné UO.

Comportement

  • Renvoie Encoding.Default.CodePage sans lire les paramètres de profil. La valeur dépend de l'environnement .NET ; il ne peut pas être considéré comme garanti Windows ANSI.
  • 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.

Scripts C# autonomes

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.

Exemple simple

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.

var result = UO.GetUserCodepage();
UO.Print("GetUserCodepage: " + Convert.ToString(result));

1. Appel direct - script direct

Paramètres et déroulement de l’exécution :

  • Renvoie Encoding.Default.CodePage sans lire les paramètres de profil.
UO.Print(UO.GetUserCodepage());

2. Option explicite - fonction de script

Paramètres et déroulement de l’exécution :

  • Renvoie Encoding.Default.CodePage sans lire les paramètres de profil. La valeur dépend de l'environnement .NET ; il ne peut pas être considéré comme garanti Windows ANSI.
return  RunScenario();
 object? RunScenario()
{
    var codepage = UO.GetUserCodepage();
    if (Truth(codepage == 65001))
    {
        UO.Print("UTF-8");
    }

    return null;
}

bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;

3. Fonction d'assistance complète - Classe de script

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.GetUserCodepage();
        UO.Wait(500);
        var after = UO.GetUserCodepage();
        UO.Print(before);
        UO.Print(after);
        return null;
    }
}

Implémentation de la commande

C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.

UO.GetUserCodepage() — UO.GetUserCodepage()

Paramètres: Aucun paramètre.

Résultat: int / Integer.

Pendant un appel:

Code interne de l’implémentation ; ce n’est pas un script autonome.

public int GetUserCodepage() => Encoding.Default.CodePage;

Clone this wiki locally