void RecurseTree(AbilityTreeNode node) { if (!seenNodes.Add(node.Ptr)) { return; } if (node.CheckValue3 == true) { return; } nodes.Add(node); RecurseTree(node.Left); RecurseTree(node.Parent); RecurseTree(node.Right); }
public int GetSkillTS(int Skill) { int headPtr = Memory.ReadInt(Process.handle, Process.Modules.Game + 0x8e3930); headPtr = Memory.ReadInt(Process.handle, headPtr + 0x1e4); AbilityTreeNode head = new AbilityTreeNode(headPtr); nodes = new List <AbilityTreeNode>(); seenNodes = new HashSet <int>(); RecurseTree(head); foreach (var node in nodes) { if (node.AbilityID == Skill) { return(node.AbilityCooldownTS); } } return(0); }