/
NLObP
/
AAEmu
Обзор
Документация
Войти
/
NLObP
/
AAEmu
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
AAEmu.Game/Scripts/SubCommands/Slaves/SlaveInformationSubCommand.cs
59 строк
2 KB
ZeromusXYZ
[Game] GM script normalization (#1072)
11 авг 2024, 21:46
Не верифицирован
11 авг 2024, 21:46
41cf0b0
Код
Авторство
О чём код?
using System.Collections.Generic; using System.Drawing; using AAEmu.Game.Core.Managers; using AAEmu.Game.Core.Managers.World; using AAEmu.Game.Models.Game.Char; using AAEmu.Game.Utils; using AAEmu.Game.Utils.Scripts; using AAEmu.Game.Utils.Scripts.SubCommands; namespace AAEmu.Game.Scripts.SubCommands.Slaves; public class SlaveInformationSubCommand : SubCommandBase { public SlaveInformationSubCommand() { Title = "[Slave Information]"; Description = "Get all slave information from a Slave (Targeted or by Id)"; CallPrefix = $"{CommandManager.CommandPrefix}slave info"; AddParameter(new StringSubCommandParameter("target", "target", true, "target", "id")); AddParameter(new NumericSubCommandParameter<uint>("ObjId", "object id", false)); } public override void Execute(ICharacter character, string triggerArgument, IDictionary<string, ParameterValue> parameters, IMessageOutput messageOutput) { Models.Game.Units.Slave slave; if (parameters.TryGetValue("ObjId", out var objId)) { slave = (Models.Game.Units.Slave)WorldManager.Instance.GetGameObject(objId); if (slave is null) { SendColorMessage(messageOutput, Color.Red, $"Slave with objId {objId} does not exist"); return; } } else { var currentTarget = ((Character)character).CurrentTarget; if (currentTarget is null || !(currentTarget is Models.Game.Units.Slave)) { SendColorMessage(messageOutput, Color.Red, "You need to target a Slave first"); return; } slave = (Models.Game.Units.Slave)currentTarget; } var x = slave.Transform.Local.Position.X; var y = slave.Transform.Local.Position.Y; var z = slave.Transform.Local.Position.Z; var yaw = slave.Transform.Local.Rotation.Z.RadToDeg(); var pitch = slave.Transform.Local.Rotation.Y.RadToDeg(); var roll = slave.Transform.Local.Rotation.X.RadToDeg(); //TODO: There is much more potential information to show on this command. SendMessage(messageOutput, $"Name:@NPC_NAME({slave.TemplateId}) ObjId:{slave.ObjId} TemplateId:{slave.TemplateId}, x:{x}, y:{y}, z:{z}, roll:{roll:0.#}°, pitch:{pitch:0.#}°, yaw:{yaw:0.#}°"); } }