FR UO Topic sound visual environment - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

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

Sound et environnement visuel

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

Sons, éclairage, effets de saison et météo client.

Sections

Sujet Commandes et explications
Sound UO.Sound
PlayWav UO.PlayWav
Light UO.Light
Season UO.SetSeason
Weather Filter UO.FilterWeather

Toutes les commandes du thème

Environnement

UO.Sound · UO.PlayWav · UO.Alarm · UO.Light · UO.SetSeason · UO.FilterWeather · UO.TicksAnim

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

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

UO.Print(UO.PlayWav("alert.wav"));

UO.Light

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

UO.Light();

Référence complète des commandes


UO.Alarm

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

Signatures C#

void UO.Alarm();

Imprime le mot Alarm dans le syslog local ClassicUO. À utiliser comme note sur l'occurrence d'une condition dans le script.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

void - aucune valeur. Exécuter sur une ligne distincte. Il ne s'agit pas de bool ou d'une confirmation que l'utilisateur a vu le message.

Comportement

  • Seule la forme UO.Alarm() sans paramètres est enregistrée. Pour votre propre texte, utilisez UO.Print(text).
  • La commande ne joue pas de son, ne fait pas clignoter une icône et n'active pas de fenêtre. Le message reste local : il n'est pas envoyé sur le chat du jeu.

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

1. Marquer le journal - script direct

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

  • Il n'y a aucun paramètre ; Le mot Alarm apparaît dans le journal système.
UO.Alarm();

2. Avertir lorsque la santé est faible - fonction de script

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

  • Alarm n'a pas d'option de texte. Life renvoie le nombre HP ; Print ajoute une description claire de la raison.
return  RunScenario();
 object? RunScenario()
{
    if (Truth(UO.Life() < 30))
    {
        UO.Alarm();
        UO.Print("Health is below 30");
    }

    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. Résultat de la recherche de marques - Classe de script

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

  • 0x0EED - type or, -1 - n'importe quelle couleur, backpack - sac à dos. Alarm est appelé uniquement lorsque serial est trouvé ; Ne mettez pas un tel appel en boucle sans tarder.
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 item = UO.FindType(0x0EED, -1, "backpack");
        if (Truth(item != ""))
        {
            UO.Alarm();
            UO.Print("Gold stack found: " + Convert.ToString(item));
        }
        else
        {
            UO.Print("No gold stack in the loaded backpack");
        }

        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.Alarm() — UO.Alarm()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

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

case "alarm":

                    SystemMessage(arguments.Length > 0 ? Text(0) : "Alarm"); return InjectionValue.Unit;

UO.FilterWeather

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

Signatures C#

void UO.FilterWeather();
void UO.FilterWeather(object? enabled);

Active ou désactive le filtre météo client.

Paramètres

  • enabled — Valeur facultative : sans argument, le filtre est activé ; 0 s'éteint, int non nul s'allume.

Valeur de retour

void - aucune valeur de retour.

Comportement

  • É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.

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

1. Activer sans argument - script direct

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

  • Un nombre nul d’arguments signifie inclure et non lire.
UO.FilterWeather();

2. Désactiver - fonction de script

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

  • Un 0 explicite désactive le filtre client.
return  RunScenario();
 object? RunScenario()
{
    UO.FilterWeather(0);
    return null;
}

3. Allumer puis éteindre - Classe de script

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.FilterWeather(1);
        UO.FilterWeather(0);
        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.FilterWeather() — UO.FilterWeather()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

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

case "filterweather": state.WeatherFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetWeatherFilter(state.WeatherFilter); break;

UO.FilterWeather(enabled) — UO.FilterWeather(Any)

Paramètres: enabled (Any)

Résultat: void / Unit.

Pendant un appel:

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

case "filterweather": state.WeatherFilter = arguments.Length == 0 || Arg(0) != 0 ? 1 : 0; bridge.SetWeatherFilter(state.WeatherFilter); break;

UO.Light

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

Signatures C#

void UO.Light();
void UO.Light(object? value);

Définit localement l’éclairage global du client.

Paramètres

  • value — Entier facultatif : 0..30, limité à cette plage. La forme sans argument utilise 0 ; Il s'agit d'une écriture, pas d'une lecture.

Valeur de retour

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

Comportement

  • ExecuteLegacyManualAlias passe Arg(0), où l'argument manquant est 0. SetLight attribue à Light.Overall et Light.RealOverall la valeur limitée de byte.
  • Ne modifie pas l'éclairage des autres joueurs et ne le demande pas au serveur. Le package de serveur d’éclairage suivant peut remplacer la valeur.

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

1. Appel direct - script direct

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

  • Définit localement l’éclairage global du client.
UO.Light();

2. Option explicite - fonction de script

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

  • ExecuteLegacyManualAlias passe Arg(0), où l'argument manquant est 0. SetLight attribue à Light.Overall et Light.RealOverall la valeur limitée de byte.
return  RunScenario();
 object? RunScenario()
{
    UO.Light(15);
    return null;
}

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

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

  • Ne modifie pas l'éclairage des autres joueurs et ne le demande pas au serveur. Le package de serveur d’éclairage suivant peut remplacer la valeur.
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.Light(99);
        UO.Print("Light clamped to 30");
        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.Light() — UO.Light()

Paramètres: Aucun paramètre.

Résultat: void / Unit.

Pendant un appel:

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

case "light": bridge.SetLight(Arg(0)); break;

UO.Light(value) — UO.Light(Any)

Paramètres: value (Any)

Résultat: void / Unit.

Pendant un appel:

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

case "light": bridge.SetLight(Arg(0)); break;

UO.PlayWav

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

Signatures C#

int UO.PlayWav(object? file);

Lit un fichier audio local.

Paramètres

  • file — Chemin d'accès au fichier audio. Le chemin absolu est conservé, le chemin relatif est résolu à partir de CUOEnviroment.ExecutablePath. L'extension elle-même n'est pas vérifiée : le fichier lit SoundEffect.FromStream.

Valeur de retour

Indicateur numérique int : 1 - sound.Play() accepté, 0 - aucun fichier, échec de lecture ou erreur détectée. Ce n'est pas la fin de la lecture.

Comportement

  • Bridge ouvre le fichier en lecture, décode SoundEffect.FromStream, stocke les sons reçus dans une liste limitée de _sounds et supprime/élimine les anciens lorsque la limite est atteinte.
  • Si un fichier/erreur n'existe pas, un message s'affiche, le résultat est 0. La commande n'attend pas la fin du son et ne transfère pas le fichier vers le serveur.

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.PlayWav("alert.wav");
UO.Print("PlayWav: " + Convert.ToString(result));

1. Appel direct - script direct

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

  • Lit un fichier audio local.
UO.Print(UO.PlayWav("alert.wav"));

2. Option explicite - fonction de script

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

  • Bridge ouvre le fichier en lecture, décode SoundEffect.FromStream, stocke les sons reçus dans une liste limitée de _sounds et supprime/élimine les anciens lorsque la limite est atteinte.
return  RunScenario();
 object? RunScenario()
{
    UO.Print(UO.PlayWav("C:\\UO Sounds\\alert.wav"));
    return null;
}

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

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

  • Si un fichier/erreur n'existe pas, un message s'affiche, le résultat est 0. La commande n'attend pas la fin du son et ne transfère pas le fichier vers 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()
    {
        var accepted = UO.PlayWav("alert.wav");
        if (Truth(accepted == 0))
        {
            UO.Print("Audio file could not be played");
        }

        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.PlayWav(file) — UO.PlayWav(Any)

Paramètres: file (Any/String)

Résultat: int / Any.

Pendant un appel:

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

case "playwav": return new InjectionValue(bridge.PlayWav(Text(0)));

UO.PlayWav(file) — UO.PlayWav(String)

Paramètres: file (Any/String)

Résultat: int / Integer.

Pendant un appel:

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

public int PlayWav(string file) => bridge.PlayWav(file);

UO.SetSeason

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

Signatures C#

void UO.SetSeason(object? season);

Modifie localement la saison affichée.

Paramètres

  • season — int : 0..4; les valeurs inférieures à 0/au-dessus de 4 sont limitées à la limite la plus proche. Le numéro correspond à l'énumération Saison du client.

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.SetSeason appelle _world.ChangeSeason((Season)clamp(season,0,4), -1). Il s'agit d'une présentation du monde du client et non d'une demande de changement de saison du serveur.
  • Les données du serveur peuvent ultérieurement modifier à nouveau la saison. La commande ne modifie pas la carte, la météo du serveur ou la date du calendrier.

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

1. Appel direct - script direct

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

  • Modifie localement la saison affichée.
UO.SetSeason(0);

2. Option explicite - fonction de script

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

  • Bridge.SetSeason appelle _world.ChangeSeason((Season)clamp(season,0,4), -1). Il s'agit d'une présentation du monde du client et non d'une demande de changement de saison du serveur.
return  RunScenario();
 object? RunScenario()
{
    UO.SetSeason(4);
    return null;
}

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

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

  • Les données du serveur peuvent ultérieurement modifier à nouveau la saison. La commande ne modifie pas la carte, la météo du serveur ou la date du calendrier.
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.SetSeason(99);
        UO.Print("Season clamped to 4");
        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.SetSeason(season) — UO.SetSeason(Any)

Paramètres: season (Any)

Résultat: void / Unit.

Pendant un appel:

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

case "setseason": bridge.SetSeason(Arg(0)); break;

UO.Sound

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

Signatures C#

void UO.Sound(object? soundId);

Lit le son sur ID à partir des ressources client.

Paramètres

  • soundId - int ID son de ressource UO; pas le chemin vers WAV ni la durée.

Valeur de retour

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

Comportement

  • ExecuteLegacyManualAlias appelle bridge.PlaySound, où RequireGameView("PlaySound").Audio.PlaySound(sound) est exécuté sur le thread de jeu.
  • Nécessite une fenêtre graphique ouverte avec audio. Une erreur manquante GUI peut mettre fin à l'appel ; Cette commande void ne renvoie pas de résultat de lecture. Pour un fichier local, utilisez PlayWav.

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.Sound");
UO.Sound(0x0040);

1. Appel direct - script direct

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

  • Lit le son sur ID à partir des ressources client.
UO.Sound(0x0040);

2. Option explicite - fonction de script

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

  • ExecuteLegacyManualAlias appelle bridge.PlaySound, où RequireGameView("PlaySound").Audio.PlaySound(sound) est exécuté sur le thread de jeu.
return  RunScenario();
 object? RunScenario()
{
    var soundId = 0x0040;
    UO.Sound(soundId);
    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 ouverte avec audio. Une erreur manquante GUI peut mettre fin à l'appel ; Cette commande Unit ne renvoie pas de résultat de lecture. Pour un fichier local, utilisez PlayWav.
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.Sound(0x0040);
        UO.Wait(250);
        UO.Print("Sound request made");
        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.Sound(soundId) — UO.Sound(Any)

Paramètres: soundId (Any)

Résultat: void / Unit.

Pendant un appel:

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

case "sound": bridge.PlaySound(Arg(0)); break;

UO.TicksAnim

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

Signatures C#

int UO.TicksAnim();

Lit la marque enregistrée TicksAnim.

Paramètres

Il n'y a pas de paramètres.

Valeur de retour

int — marque UO.Timer en dixièmes de seconde à partir du début de l'exécution. 0 - la marque n'a pas encore été posée ou l'événement s'est produit dans le premier dixième de seconde ; ce ne sont pas des millisecondes ou l’heure du calendrier.

Comportement

  • Renvoie le champ ticksAnim. Il est mis à jour par Morph ou un résultat Move non nul ; il ne s'agit pas d'une observation automatique de toutes les activités manuelles/serveurs. La commande elle-même ne modifie pas la marque.
  • UO.Timer() - la marque calcule l'âge en dixièmes de seconde. Les marques ne sont pas comparées entre les différentes exécutions.

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.TicksAnim();
UO.Print("TicksAnim: " + Convert.ToString(result));

1. Appel direct - script direct

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

  • Lit la marque enregistrée TicksAnim.
var stamp = UO.TicksAnim();
UO.Print(stamp);

2. Option explicite - fonction de script

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

  • Renvoie le champ ticksAnim. Il est mis à jour par Morph ou un résultat Move non nul ; il ne s'agit pas d'une observation automatique de toutes les activités manuelles/serveurs. La commande elle-même ne modifie pas la marque.
return  RunScenario();
 object? RunScenario()
{
    var stamp = UO.TicksAnim();
    var ageTenths = UO.Timer() - stamp;
    UO.Print(ageTenths);
    return null;
}

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

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

  • UO.Timer() - la marque calcule l'âge en dixièmes de seconde. Les marques ne sont pas comparées entre les différentes exécutions.
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.TicksAnim();
        UO.Wait(250);
        var after = UO.TicksAnim();
        UO.Print(before = 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.TicksAnim() — UO.TicksAnim()

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 TicksAnim() => ticksAnim;
⚠️ **GitHub.com Fallback** ⚠️