Advertisement
jedzus

Auto follow plugin

May 25th, 2015
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.76 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading;
  5. using System.Windows.Forms;
  6. using Astral.Forms;
  7. using MyNW.Classes;
  8. using MyNW.Internals;
  9. using Timer = System.Threading.Timer;
  10. using TimerWF = System.Windows.Forms.Timer;
  11.  
  12. namespace AutoFollowGroupMember
  13. {
  14.     public partial class BasePanelAutoFollowGroupMember : BasePanel
  15.     {
  16.         private Timer _followGroupMemberTimertimer;
  17.  
  18.         public BasePanelAutoFollowGroupMember()
  19.             : base("Auto Follow")
  20.         {
  21.             InitializeComponent();
  22.             FirstUpdateComboBoxGroupMember();
  23.             UpdateComboBoxGroupMember();
  24.         }
  25.  
  26.         private void FirstUpdateComboBoxGroupMember()
  27.         {
  28.             if (EntityManager.LocalPlayer.PlayerTeam.IsInTeam)
  29.             {
  30.                 foreach (var entity in GetGroupMembersList())
  31.                 {
  32.                     comboBoxGroupMember.Items.Add(entity.Name);
  33.                 }
  34.             }
  35.             else
  36.             {
  37.                 comboBoxGroupMember.Items.Clear();
  38.             }
  39.         }
  40.  
  41.         private static IEnumerable<Entity> GetGroupMembersList()
  42.         {
  43.             return
  44.                 EntityManager.GetEntities()
  45.                     .Where(entity =>entity.PlayerTeam.TeamId.Equals(EntityManager.LocalPlayer.PlayerTeam.TeamId) &&
  46.                         entity.Name != EntityManager.LocalPlayer.Name).ToList();
  47.                
  48.         }
  49.  
  50.         private void UpdateComboBoxGroupMember()
  51.         {
  52.             var timer = new TimerWF();
  53.             timer.Tick += timer_Tick;
  54.             timer.Interval = 5000;
  55.             timer.Start();
  56.         }
  57.  
  58.         private void timer_Tick(object sender, EventArgs e)
  59.         {
  60.             if (EntityManager.LocalPlayer.PlayerTeam.IsInTeam)
  61.             {
  62.                 foreach (
  63.                     var entity in
  64.                         GetGroupMembersList().Where(entity => !comboBoxGroupMember.Items.Contains(entity.Name)))
  65.                 {
  66.                     comboBoxGroupMember.Items.Add(entity.Name);
  67.                 }
  68.             }
  69.             else
  70.             {
  71.                 comboBoxGroupMember.SelectedItem = null;
  72.                 comboBoxGroupMember.Items.Clear();
  73.             }
  74.         }
  75.  
  76.         private Vector3 GetGroupMemberToFollowLocation()
  77.         {
  78.             if (comboBoxGroupMember.SelectedItem == null)
  79.                 throw new Exception("Chose group member!");
  80.             var groupMemberToFollowLocation = Vector3.Empty;
  81.             foreach (
  82.                 var entity in
  83.                     GetGroupMembersList().Where(entity => entity.Name == comboBoxGroupMember.SelectedItem.ToString()))
  84.             {
  85.                 groupMemberToFollowLocation = entity.Location;
  86.             }
  87.             return groupMemberToFollowLocation;
  88.         }
  89.  
  90.         private void FollowGroupMember(object state)
  91.         {
  92.             if (GetGroupMemberToFollowLocation() == null)
  93.                 throw new Exception("Chose a group member!");
  94.             Movements.NavToPos(GetGroupMemberToFollowLocation(), 3f);
  95.             _followGroupMemberTimertimer.Change(500, Timeout.Infinite);
  96.         }
  97.  
  98.         private void buttonStart_Click(object sender, EventArgs e)
  99.         {
  100.             try
  101.             {
  102.                 _followGroupMemberTimertimer = new Timer(FollowGroupMember, null, 1000, Timeout.Infinite);
  103.             }
  104.             catch (Exception exception)
  105.             {
  106.                 _followGroupMemberTimertimer.Dispose();
  107.                 MessageBox.Show(exception.Message, "Auto Follow Group Member");
  108.             }
  109.         }
  110.  
  111.         private void buttonStop_Click(object sender, EventArgs e)
  112.         {
  113.             _followGroupMemberTimertimer.Dispose();
  114.         }
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement