FR UO Topic buffs effects - 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
Panneau de vérification des effets et de l'état. Un contrôle de statut négatif ne signifie pas que tous les effets possibles sont absents.
| Sujet | Commandes et explications |
|---|---|
| Buff Bar | UO.GetBuffBarInfo |
| Poison | UO.Poisoned |
| Paralyze | UO.Paralyzed |
| Frozen | UO.Frozen |
| Flying | UO.Flying |
| Résistance | UO.GetResist · UO.GetPhysicalResist · UO.GetFireResist · UO.GetColdResist · UO.GetPoisonResist · UO.GetEnergyResist |
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
var buffs = UO.GetBuffBarInfo();
for (int i = (int)(0); i <= ArrayLength(buffs)-1; i += (int)(1))
{
UO.Print(buffs[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Paramètres, résultat et tous les scénarios
var state = UO.Paralyzed();
if (Truth(Truth(state) == true))
{
UO.Print("Paralysis flag is set");
}
else
{
UO.Print("Paralysis flag is absent or unavailable");
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
dynamic UO.GetBuffBarInfo();Renvoie un instantané des icônes de buff du personnage actuel.
Il n'y a pas de paramètres.
Tableau de chaînes de format type|graphic|remainingMilliseconds|text. remainingMilliseconds=-1 pour Timer=uint.MaxValue ; sinon max(0,Timer-Time.Ticks). Aucun caractère/icône – tableau vide.
- Les données sont extraites de Player.BuffIcons.Values, sans requête au serveur. La valeur remainingMilliseconds fait référence au temporisateur client et peut être obsolète ; -1 désigne une minuterie indéfinie, pas une erreur. Le texte peut contenir | caractères, il ne devrait donc pas contenir exactement quatre mots simples.
Chaque exemple peut être enregistré dans un fichier séparé .csx et exécuté dans IDE. Les fonctions d'objet UO et d'attente fournissent l'hôte de la session de jeu en cours. Remplacez les noms, coordonnées et adresses de la démo serial par les vôtres.
Exécutez ce code dans un fichier .csx séparé. Les arguments sont visibles dans l’appel ; remplacez les noms, serials et adresses d’exemple par les vôtres.
Le résultat d’un seul appel est affiché dans le journal. Un nombre n’est pas converti en bool ; un tableau est affiché par son nombre d’éléments.
object? result = UO.GetBuffBarInfo();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));Paramètres et déroulement de l’exécution :
- Chaque ligne contient type, graphic, le reste de la minuterie et le texte.
var buffs = UO.GetBuffBarInfo();
for (int i = (int)(0); i <= ArrayLength(buffs)-1; i += (int)(1))
{
UO.Print(buffs[i]);
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Paramètres et déroulement de l’exécution :
- La taille reflète les icônes client actuelles.
return RunScenario();
object? RunScenario()
{
var buffs = UO.GetBuffBarInfo();
UO.Print(Convert.ToString(ArrayLength(buffs)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;Paramètres et déroulement de l’exécution :
- Le nouvel appel relit l'ensemble en cours ; l'ancien tableau reste un instantané.
return await new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenarioAsync();
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;
}
async public Task<object?> RunScenarioAsync()
{
var before = UO.GetBuffBarInfo();
await Delay(1000);
var after = UO.GetBuffBarInfo();
UO.Print(Convert.ToString(ArrayLength(before)) + " " + Convert.ToString(ArrayLength(after)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));
}C# distingue les majuscules. Utilisez le nom UO exact. Comparez les indicateurs numériques à 0 ; utilisez bool seulement si la signature renvoie bool.
Paramètres: Aucun paramètre.
Résultat: dynamic / Any.
Pendant un appel:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
InjectionScript.Runtime.InjectionApiUO.StringArray:StringArray(bridge.GetBuffBarInfo()). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetBuffBarInfo:bridge.GetBuffBarInfo().
Code interne de l’implémentation ; ce n’est pas un script autonome.
case "getbuffbarinfo": return StringArray(bridge.GetBuffBarInfo());