FR UO Topic mouse keyboard - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

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

Souris et clavier

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

Saisie à la souris et au clavier. Les coordonnées de l'écran, les cellules du monde et les coordonnées à l'intérieur d'un Gump ont des significations différentes.

Sections

Sujet Commandes et explications
Click UO.Click
LClick UO.LClick
RClick UO.RClick
DoubleClick UO.LDblClick · UO.RDblClick
KeyPress UO.KeyPress
Press UO.Press

Toutes les commandes du thème

Saisir

UO.Click · UO.LClick · UO.RClick · UO.LDblClick · UO.RDblClick · UO.KeyPress · UO.Press

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.LClick

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

UO.LClick(100, 100);

UO.KeyPress

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

UO.KeyPress(0x70);

Référence complète des commandes


UO.Click

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

Signatures C#

void UO.Click(object? name);

Envoie un simple clic sur un objet via GameActions.SingleClick.

Paramètres

  • name — Numéro de série de l'objet ou nom pris en charge de l'objet self/backpack/lasttarget/saved ; les chaînes numériques et les chaînes 0x sont résolues par l'exécution.

Valeur de retour

void - aucune valeur de retour.

Comportement

  • Click résout le lien via ObjectChecked. ClickOnObject utilise d'abord Arg pour serial et appelle Click(int). Il s'agit d'une demande de signature/informations sur l'article, et non de DoubleClick ou d'utilisation de l'article. La réponse du serveur arrive de manière asynchrone.

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.

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.Click");
UO.Click("self");

1. Cliquez sur le personnage - script direct

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

  • Un simple clic est envoyé à self.
UO.Click("self");

2. Cliquez sur la dernière cible - fonction de script

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

  • Avant l'envoi, l'existence locale de la cible est vérifiée.
return  RunScenario();
 object? RunScenario()
{
    var target = UO.LastTarget();
    if (Truth(UO.Exists(target)))
    {
        UO.Click(target);
    }

    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. Ils cliqueront sur le sac à dos - classe de script

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

  • Un simple clic sur un sac à dos ne l'ouvre pas comme un double-clic dessus.
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 bag = UO.Backpack();
        if (Truth(bag != 0))
        {
            UO.Click(bag);
        }

        return null;
    }

    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.Click(name) — UO.Click(Any)

Paramètres: name (Any)

Résultat: void / Unit.

Pendant un appel:

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

public void Click(InjectionValue name) => ObjectChecked(name, id => Click(id));

UO.KeyPress

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

Signatures C#

void UO.KeyPress(object? key);
void UO.KeyPress(object? key, object? count);
void UO.KeyPress(object? key, object? count, object? delay);

Synthétise une ou plusieurs pressions de touches virtuelles.

Paramètres

  • key - int clé virtuelle Windows, réduite à byte. Ce n'est pas une chaîne de caractères, ni une cible ID.
  • count — Nombre facultatif de répétitions, par défaut 1. 0/négatif - pas de pression ni d'attente.
  • delay - Pause facultative de millisecondes après chaque pression, y compris la dernière ; la valeur par défaut est 105. Transmis par pont.Wait sans autre restriction par cette fonction.

Valeur de retour

void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.

Comportement

  • Press transmet tous les formulaires à KeyPress. KeyPress exécute un nombre de boucles>0 : bridge.KeyPress(key), bridge.Wait(delay), count--. Bridge envoie user32 keybd_event vers le bas/vers le haut.
  • Nécessite un Graphics ClassicUO ouvert avec le focus d'entrée ; sinon RequireGameInput renvoie une erreur. Le clic traite l'interface/macro actuelle, le résultat de la commande serveur n'est pas renvoyé.

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.

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.KeyPress");
UO.KeyPress(0x70);

1. Appel direct - script direct

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

  • Synthétise une ou plusieurs pressions de touches virtuelles.
UO.KeyPress(0x70);

2. Option explicite - fonction de script

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

  • Press transmet tous les formulaires à KeyPress. KeyPress exécute un nombre de boucles>0 : bridge.KeyPress(key), bridge.Wait(delay), count--. Bridge envoie user32 keybd_event vers le bas/vers le haut.
return  RunScenario();
 object? RunScenario()
{
    UO.KeyPress(0x70, 2, 250);
    return null;
}

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

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

  • Nécessite un Graphics ClassicUO ouvert avec le focus d'entrée ; sinon RequireGameInput renvoie une erreur. Le clic traite l'interface/macro actuelle, le résultat de la commande serveur n'est pas renvoyé.
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.KeyPress(0x70, 0);
        UO.Print("Zero count sends no key");
        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.KeyPress(key) — UO.KeyPress(Integer)

Paramètres: key (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void KeyPress(int key) => KeyPress(key, 1);

UO.KeyPress(key, count) — UO.KeyPress(Integer,Integer)

Paramètres: key (Integer), count (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void KeyPress(int key, int count) => KeyPress(key, count, 105);

UO.KeyPress(key, count, delay) — UO.KeyPress(Integer,Integer,Integer)

Paramètres: key (Integer), count (Integer), delay (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void KeyPress(int key, int count, int delay)

        {

            while (count > 0)

            {

                bridge.KeyPress(key);

                bridge.Wait(delay);

                count--;

            }

        }

UO.LClick

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

Signatures C#

void UO.LClick(object? x, object? y);

Synthétise un simple clic de souris : bouton gauche.

Paramètres

  • x — int X dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.
  • y — int Y dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.

Valeur de retour

void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.

Comportement

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut une fois. Il n'y a pas de pause entre les doubles clics.
  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.

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.

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.LClick");
UO.LClick(100, 100);

1. Appel direct - script direct

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

  • Synthétise un simple clic de souris : bouton gauche.
UO.LClick(100, 100);

2. Option explicite - fonction de script

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

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut une fois. Il n'y a pas de pause entre les doubles clics.
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.LClick(x, y);
    return null;
}

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

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

  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.LClick(x, y);
    }
}

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.LClick(x, y) — UO.LClick(Integer,Integer)

Paramètres: x (Integer), y (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void LClick(int x, int y) => bridge.LClick(x, y);

UO.LDblClick

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

Signatures C#

void UO.LDblClick(object? x, object? y);

Synthétise un double clic de souris : bouton gauche.

Paramètres

  • x — int X dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.
  • y — int Y dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.

Valeur de retour

void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.

Comportement

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut deux fois. Il n'y a pas de pause entre les doubles clics.
  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.

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.

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.LDblClick");
UO.LDblClick(100, 100);

1. Appel direct - script direct

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

  • Synthétise un double clic de souris : bouton gauche.
UO.LDblClick(100, 100);

2. Option explicite - fonction de script

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

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut deux fois. Il n'y a pas de pause entre les doubles clics.
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.LDblClick(x, y);
    return null;
}

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

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

  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.LDblClick(x, y);
    }
}

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.LDblClick(x, y) — UO.LDblClick(Integer,Integer)

Paramètres: x (Integer), y (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void LDblClick(int x, int y) => bridge.LDblClick(x, y);

UO.Press

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

Signatures C#

void UO.Press(object? key);
void UO.Press(object? key, object? count);
void UO.Press(object? key, object? count, object? delay);

Synthétise une ou plusieurs pressions de touches virtuelles.

Paramètres

  • key - int clé virtuelle Windows, réduite à byte. Ce n'est pas une chaîne de caractères, ni une cible ID.
  • count — Nombre facultatif de répétitions, par défaut 1. 0/négatif - pas de pression ni d'attente.
  • delay - Pause facultative de millisecondes après chaque pression, y compris la dernière ; la valeur par défaut est 105. Transmis par pont.Wait sans autre restriction par cette fonction.

Valeur de retour

void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.

Comportement

  • Press transmet tous les formulaires à KeyPress. KeyPress exécute un nombre de boucles>0 : bridge.KeyPress(key), bridge.Wait(delay), count--. Bridge envoie user32 keybd_event vers le bas/vers le haut.
  • Nécessite un Graphics ClassicUO ouvert avec le focus d'entrée ; sinon RequireGameInput renvoie une erreur. Le clic traite l'interface/macro actuelle, le résultat de la commande serveur n'est pas renvoyé.

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.

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.Press");
UO.Press(0x70);

1. Appel direct - script direct

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

  • Synthétise une ou plusieurs pressions de touches virtuelles.
UO.Press(0x70);

2. Option explicite - fonction de script

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

  • Press transmet tous les formulaires à KeyPress. KeyPress exécute un nombre de boucles>0 : bridge.KeyPress(key), bridge.Wait(delay), count--. Bridge envoie user32 keybd_event vers le bas/vers le haut.
return  RunScenario();
 object? RunScenario()
{
    UO.Press(0x70, 2, 250);
    return null;
}

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

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

  • Nécessite un Graphics ClassicUO ouvert avec le focus d'entrée ; sinon RequireGameInput renvoie une erreur. Le clic traite l'interface/macro actuelle, le résultat de la commande serveur n'est pas renvoyé.
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.Press(0x70, 0);
        UO.Print("Zero count sends no key");
        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.Press(key) — UO.Press(Integer)

Paramètres: key (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void Press(int key) => KeyPress(key);

UO.Press(key, count) — UO.Press(Integer,Integer)

Paramètres: key (Integer), count (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void Press(int key, int count) => KeyPress(key, count);

UO.Press(key, count, delay) — UO.Press(Integer,Integer,Integer)

Paramètres: key (Integer), count (Integer), delay (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void Press(int key, int count, int delay) => KeyPress(key, count, delay);

UO.RClick

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

Signatures C#

void UO.RClick(object? x, object? y);

Synthétise un simple clic de souris : bouton droit.

Paramètres

  • x — int X dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.
  • y — int Y dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.

Valeur de retour

void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.

Comportement

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut une fois. Il n'y a pas de pause entre les doubles clics.
  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.

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.

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.RClick");
UO.RClick(100, 100);

1. Appel direct - script direct

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

  • Synthétise un simple clic de souris : bouton droit.
UO.RClick(100, 100);

2. Option explicite - fonction de script

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

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut une fois. Il n'y a pas de pause entre les doubles clics.
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.RClick(x, y);
    return null;
}

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

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

  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.RClick(x, y);
    }
}

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.RClick(x, y) — UO.RClick(Integer,Integer)

Paramètres: x (Integer), y (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void RClick(int x, int y) => bridge.RClick(x, y);

UO.RDblClick

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

Signatures C#

void UO.RDblClick(object? x, object? y);

Synthétise un double clic de souris : bouton droit.

Paramètres

  • x — int X dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.
  • y — int Y dans les pixels de la fenêtre ClassicUO, pas les coordonnées mondiales.

Valeur de retour

void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.

Comportement

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut deux fois. Il n'y a pas de pause entre les doubles clics.
  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.

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.

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.RDblClick");
UO.RDblClick(100, 100);

1. Appel direct - script direct

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

  • Synthétise un double clic de souris : bouton droit.
UO.RDblClick(100, 100);

2. Option explicite - fonction de script

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

  • Bridge appelle WarpMouse(x,y), met à jour Mouse.Position et SDL_WarpMouseInWindow, puis MouseButton vers le bas/vers le haut deux fois. Il n'y a pas de pause entre les doubles clics.
return  RunScenario();
 object? RunScenario()
{
    var x = 120;
    var y = 140;
    UO.RDblClick(x, y);
    return null;
}

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

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

  • Nécessite une fenêtre graphique ClassicUO ouverte avec le focus d'entrée ; sinon RequireGameInput lance InvalidOperationException. user32 mouse_event est disponible sous Windows. Le bouton/objet sous le point dépend de l'interface actuelle.
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()
    {
        ClickAt(100, 100);
        return null;
    }

    void ClickAt(dynamic x, dynamic y)
    {
        UO.RDblClick(x, y);
    }
}

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.RDblClick(x, y) — UO.RDblClick(Integer,Integer)

Paramètres: x (Integer), y (Integer)

Résultat: void / Unit.

Pendant un appel:

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

public void RDblClick(int x, int y) => bridge.RDblClick(x, y);
⚠️ **GitHub.com Fallback** ⚠️