FR UO Topic sound visual environment - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Accueil · C# · IDE · UO API · A–Z · Exemples · Langues
Sons, éclairage, effets de saison et météo client.
| Sujet | Commandes et explications |
|---|---|
| Sound | UO.Sound |
| PlayWav | UO.PlayWav |
| Light | UO.Light |
| Season | UO.SetSeason |
| Weather Filter | UO.FilterWeather |
UO.Sound · UO.PlayWav · UO.Alarm · UO.Light · UO.SetSeason · UO.FilterWeather · UO.TicksAnim
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
UO.Print(UO.PlayWav("alert.wav"));Paramètres, résultat et tous les scénarios
UO.Light();Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Alarm();Imprime le mot Alarm dans le syslog local ClassicUO. À utiliser comme note sur l'occurrence d'une condition dans le script.
Il n'y a pas de paramètres.
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.
- 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.
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.Alarm");
UO.Alarm();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();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;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;
}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. -
InjectionScript.Runtime.InjectionApiUO.SystemMessage:SystemMessage(arguments.Length > 0 ? Text(0) : "Alarm"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
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;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.FilterWeather();
void UO.FilterWeather(object? enabled);Active ou désactive le filtre météo 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.FilterWeather");
UO.FilterWeather();Paramètres et déroulement de l’exécution :
- Un nombre nul d’arguments signifie inclure et non lire.
UO.FilterWeather();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;
}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;
}
}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.SetWeatherFilter:bridge.SetWeatherFilter(state.WeatherFilter).
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;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.SetWeatherFilter:bridge.SetWeatherFilter(state.WeatherFilter).
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;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Light();
void UO.Light(object? value);Définit localement l’éclairage global du client.
-
value— Entier facultatif : 0..30, limité à cette plage. La forme sans argument utilise 0 ; Il s'agit d'une écriture, pas d'une lecture.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- 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.
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.Light");
UO.Light();Paramètres et déroulement de l’exécution :
- Définit localement l’éclairage global du client.
UO.Light();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;
}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;
}
}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. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetLight:bridge.SetLight(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "light": bridge.SetLight(Arg(0)); break;Paramètres: value (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetLight:bridge.SetLight(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "light": bridge.SetLight(Arg(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.PlayWav(object? file);Lit un fichier audio local.
-
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.
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.
- 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.
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.
var result = UO.PlayWav("alert.wav");
UO.Print("PlayWav: " + Convert.ToString(result));Paramètres et déroulement de l’exécution :
- Lit un fichier audio local.
UO.Print(UO.PlayWav("alert.wav"));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;
}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;
}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: file (Any/String)
Résultat: int / Any.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PlayWav:bridge.PlayWav(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Text:Text(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "playwav": return new InjectionValue(bridge.PlayWav(Text(0)));Paramètres: file (Any/String)
Résultat: int / Integer.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.PlayWav. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PlayWav:bridge.PlayWav(file).
Code interne de l’implémentation ; ce n’est pas un script autonome.
public int PlayWav(string file) => bridge.PlayWav(file);Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.SetSeason(object? season);Modifie localement la saison affichée.
-
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.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- 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.
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.SetSeason");
UO.SetSeason(0);Paramètres et déroulement de l’exécution :
- Modifie localement la saison affichée.
UO.SetSeason(0);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;
}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;
}
}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: season (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetSeason:bridge.SetSeason(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "setseason": bridge.SetSeason(Arg(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
void UO.Sound(object? soundId);Lit le son sur ID à partir des ressources client.
-
soundId- int ID son de ressource UO; pas le chemin vers WAV ni la durée.
void - aucune valeur. Appelez sur une ligne séparée ; l'achèvement ne confirme pas l'action du serveur.
- 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.
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.Sound");
UO.Sound(0x0040);Paramètres et déroulement de l’exécution :
- Lit le son sur ID à partir des ressources client.
UO.Sound(0x0040);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;
}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;
}
}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: soundId (Any)
Résultat: void / Unit.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.PlaySound:bridge.PlaySound(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Arg:Arg(0).
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "sound": bridge.PlaySound(Arg(0)); break;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
int UO.TicksAnim();Lit la marque enregistrée TicksAnim.
Il n'y a pas de paramètres.
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.
- 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.
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.
var result = UO.TicksAnim();
UO.Print("TicksAnim: " + Convert.ToString(result));Paramètres et déroulement de l’exécution :
- Lit la marque enregistrée TicksAnim.
var stamp = UO.TicksAnim();
UO.Print(stamp);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;
}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;
}
}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: int / Integer.
Pendant un appel:
Code interne de l’implémentation ; ce n’est pas un script autonome.
public int TicksAnim() => ticksAnim;