What's new
  • Visit Rebornbuddy
  • Visit Resources
  • Visit API Documentation
  • Visit Downloads
  • Visit Portal
  • Visit Panda Profiles
  • Visit LLamamMagic

not all plugins are autorun

Status
Not open for further replies.

acmodey

Member
Joined
Feb 21, 2013
Messages
38
Reaction score
0
123.webp
is a plugin that does nt autorun
PHP:
using System;
using System.Windows.Forms;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;

namespace YourNamespace
{
    public class YourClass : Core
    {
        public static string GetPluginAuthor()
        {
            return "ArcheBuddy";
        }

        public static string GetPluginVersion()
        {
            return "1.0";
        }

        public static string GetPluginDescription()
        {
            return "Simple mobs farm";
        }
        
        //Try to find best mob in farm zone.
        public Creature GetBestNearestMob(Zone zone)
        {
            Creature mob = null;
            double dist = 999999;
            foreach (var obj in getCreatures())
            {      
                //If creature Npc and we can attack him and creature alive and distance to this creature less than other and creature have 100% hp or creature want to kill out character.
                if (obj.type == BotTypes.Npc && isAttackable(obj) && (obj.firstHitter == null || obj.firstHitter == me) && isAlive(obj) && me.dist(obj) < dist && zone.ObjInZone(obj)
                    && (hpp(obj) == 100 || obj.aggroTarget == me))
                {
                    mob = obj;
                    dist = me.dist(obj);
                }
            }
            return mob;
        }
        
        //Cancel skill if mob which we want to kill already attacked by another player.
        public void CancelAttacksOnAnothersMobs()
        {
            while (true)
            {
                if (me.isCasting && me.target != null && me.target.firstHitter != null && me.target.firstHitter != me)
                    CancelSkill();
                Thread.Sleep(100);
            }
        }  
       
        //Check our buffs
        public void CheckBuffs()    
        
        
        
       {      
           
           
             
            //притвориться мертвым    
            if (mpp() < 55 && getAggroMobs().Count() == 0) 
                 {     
                     CancelTarget();
                       Thread.Sleep(1000); 
                       UseSkill("Медитация");  
            
           
    //skill used, we on the ground
    //while ((mpp() < 99) && isAlive() && GetGroupStatus("autoexp"))    //&& getAggroMobs().Count() == 0 && GetGroupStatus("autoexp") 
    Thread.Sleep(1000); //just waiting, while condition true. mpp() 99 - becouse ArcheBuddy can calculate hp\mp inaccuracy   
                    }
           
           
           
            //притвориться мертвым    
                if (mpp() < 15) 
                 {     
                     CancelTarget();
                       Thread.Sleep(1000); 
                      UseSkill("Имитация смерти");  
            
           
    //skill used, we on the ground
    //while ((mpp() < 99) && isAlive() && GetGroupStatus("autoexp"))    //&& getAggroMobs().Count() == 0 && GetGroupStatus("autoexp") 
    Thread.Sleep(1000); //just waiting, while condition true. mpp() 99 - becouse ArcheBuddy can calculate hp\mp inaccuracy   
                    }
//var m = getMount();  
//if (m == null)       
//    UseItem("Рыжий камышовый кот");      // юзаем маунта
//Thread.Sleep(1000);
//Thread.Sleep(2000);

                      
//
//           if (buffTime("Благословение божества II") == 0 && skillCooldown("Просвещение") == 0)
//           UseSkillAndWait("Просвещение", true);    
             //if (buffTime("Гимн мудрости III") == 0 && skillCooldown("Гимн мудрости") == 0)
             //    UseSkillAndWait("Гимн мудрости", true); 
             //if (buffTime("Благословение") == 0 && skillCooldown("Жертвенный огонь") == 0)
             //UseSkillAndWait("Жертвенный огонь", true); 
          //if (buffTime("Дар жизни") == 0 && hpp() < 85)
          //  UseSkillAndWait("Дар жизни", true);       
          //if (hpp() < 70)
          //  UseSkillAndWait("Свет и тьма", true);   
          if (buffTime("Магический щит V") == 0 && skillCooldown("Магический щит") == 0 && getAggroMobs().Count() == 0)
            UseSkillAndWait("Магический щит", true);
       }
        
        public void UseSkillAndWait(string skillName, bool selfTarget = false)
         {
            //wait cooldowns first, before we try to cast skill
            while (me.isCasting || me.isGlobalCooldown)
                Thread.Sleep(50);
            if (!UseSkill(skillName, true, selfTarget))
            {
                if (me.target != null && GetLastError() == LastError.NoLineOfSight)
                {
                    //No line of sight, try come to target.
                    if (dist(me.target) <= 5)
                        ComeTo(me.target, 2);
                    else if (dist(me.target) <= 10)
                        ComeTo(me.target, 3);
                    else if (dist(me.target) < 20)
                        ComeTo(me.target, 8);
                    else
                        ComeTo(me.target, 8);
                }
            }      
            //wait cooldown again, after we start cast skill
            while (me.isCasting || me.isGlobalCooldown)
                Thread.Sleep(50);
        }

               

        public void PluginRun()
        {         
            
           
            
            new Task(() => { CancelAttacksOnAnothersMobs(); }).Start(); //Starting new thread
            RoundZone zone = new RoundZone(me.X, me.Y, 90); //Make new zone where we will farm. Its circle with center where your character stand at this moment with 80m radius.
            // SetGroupStatus("autoexp", true); //Add checkbox to our character widget
            while (true)
            {            
                
                
                
     
                 if (!me.isAlive())
                //if(!isAlive())
{       
    Log(DateTime.Now + " I`m die");
    while(me.resurrectionWaitingTime>0)
        Thread.Sleep(100);
    Thread.Sleep(3000);
    ResToRespoint();
    Thread.Sleep(70000);
    RestoreExp();
    Thread.Sleep(2000);;    
    
//    UseItem("Горный лев");      // юзаем маунта
//Thread.Sleep(2000);
//var m = getMount();
//if (m != null)
//SitToMount();     
//StandFromMount()     //слезть с маунта
    //Gps gps = new Gps(this);
    //             gps.LoadDataBase(Application.StartupPath + "\\plugins\\SystemGrinder\\SystemFarmPath.db3");     
    // львы
    //MoveTo(26217.97, 9423.32, 745.33);
    //MoveTo(26149.78, 9448.55, 748.31);
    //MoveTo(26166.54, 9474.39, 756.74);
    //MoveTo(26239.41, 9503.15, 771.47);
    //MoveTo(26265.77, 9513.78, 777.09);  
    //MoveTo(26265.88, 9526.27, 779.54);
    //козлы
//    MoveTo(25568.88, 9619.63, 693.66);
//    MoveTo(25648.37, 9646.35, 697.69);
//    MoveTo(25716.04, 9662.19, 699.66);
//    MoveTo(25771.01, 9727.59, 700.93);
//    MoveTo(25754.69, 9847.06, 700.93);    
//    MoveTo(25743.47, 9915.52, 700.94);
//    MoveTo(25667.36, 9950.31, 700.93);
//    MoveTo(25637.40, 9984.65, 700.94);
//    MoveTo(25529.44, 9985.49, 700.56);
//MoveTo(25489.51, 10036.43, 701.08);
//MoveTo(25503.90, 10075.31, 711.36);
//MoveTo(25568.92, 10099.76, 749.39);
//MoveTo(25614.12, 10117.66, 776.51);
//MoveTo(25635.11, 10158.96, 803.61);   
//MoveTo(25657.49, 10163.10, 814.63); 
//MoveTo(25668.38, 10127.25, 825.82); 
//MoveTo(25699.49, 10133.25, 835.62); 
//MoveTo(25695.64, 10198.00, 859.73);  
//MoveTo(25628.64, 10218.99, 862.52);  
                                   // саванны кабанчики, лазутчики   
                                   //MoveTo(25056.02, 6681.51, 334.64);   
                                   //MoveTo(24913.72, 6713.51, 328.22);
                                   //MoveTo(24829.05, 6708.52, 323.30);
                                   //MoveTo(24811.58, 6660.49, 321.37); 
                                   //саванны кабанчики, лазутчики со стороны края мира
                                   //MoveTo(25051.02, 6675.31, 334.73);
                                   //MoveTo(24959.40, 6489.35, 352.15);
                                   //MoveTo(24818.24, 6492.56, 348.43);
                                   //MoveTo(24819.17, 6526.04, 340.52);    
                                   //Север, справа мобы
                                   //MoveTo(19541.65, 26891.83, 132.15);
                                   //MoveTo(19567.71, 27120.89, 131.46);
                                   //MoveTo(19470.46, 27286.98, 134.54);
                                   //MoveTo(19468.45, 27371.18, 154.22);    
                                   // MoveTo(19468.99, 27430.91, 158.84);
                                   //MoveTo(19506.79, 27448.90, 133.94);    
                                   //дозорные_саванна
                                   //MoveTo(25065.92, 6681.01, 335.08);
                                   //MoveTo(25153.32, 6812.17, 339.93); 
                                   //MoveTo(25150.63, 6883.23, 347.94);    
                                   //вараны саванна
                                   //MoveTo(25069.93, 6687.10, 334.31);
                                   //MoveTo(25174.78, 6738.21, 335.83);
                                   //MoveTo(25331.34, 6728.75, 344.03);
                                   //MoveTo(25322.32, 6692.11, 343.95); 
                                   //рокочущие перевалы, големы
                                   MoveTo(25946.83, 8808.17, 645.79);
                                   MoveTo(25948.54, 8838.16, 644.96);
                                   MoveTo(25963.31, 8863.05, 644.42);
                                    //MoveTo();
                                     //MoveTo();
                                      //MoveTo();
                                       //MoveTo();
                                        //MoveTo();
                                         //MoveTo();
                                         
  }    
                //If autoexp checkbox enabled in widget and our character alive   25345.87, 6633.74, 347.45
                if (me.isAlive()) //GetGroupStatus("autoexp") && 
                {     
                    
            
                    
                    CheckBuffs();
                    Creature bestMob = null;
                    //if we have enouth mp and hp, or mobs want to kill us - try to find bestMob.
                    if ((mpp() > 5 && hpp() > 65) || getAggroMobs().Count > 0)
                        bestMob = GetBestNearestMob(zone);    
                    //if mob exists
                    if (bestMob != null) 
                    {
                        try
                        {
                            //while this mob alive and our character alive and checkbox in widget enabled
                            while (bestMob != null && isAlive(bestMob) && isExists(bestMob) && isAlive()) // && GetGroupStatus("autoexp")
                            {      
                                //if another player attack this mob before our character.
                                if (bestMob.aggroTarget != me && bestMob.firstHitter != null && bestMob.firstHitter != me)
                                {
                                    bestMob = null;
                                    break;
                                }    
                                
                                //if we still dont attack our best mob, but another mob want to kill us
                                if (bestMob.firstHitter == null && getAggroMobs().Count > 0 && bestMob != GetBestNearestMob(zone)) 
                                    bestMob = GetBestNearestMob(zone);
                                
                                //Target our mob, if necessary
                                if (me.target != bestMob)
                                    SetTarget(bestMob);  
                                //Turn to our mob, if necessary
                                if (angle(bestMob, me) > 44 && angle(bestMob, me) < 315)
                                        TurnDirectly(bestMob);
                            
                                if (hpp() < 35) 
                            {  
                                
                     CancelTarget();
                     CancelTarget();
                     Thread.Sleep(100); 
                      UseSkill("Имитация смерти");  
                      CancelTarget();
                      CancelTarget();
           //skill used, we on the ground
          /// while ((hpp() < 95) && GetGroupStatus("autoexp"))    //&& getAggroMobs().Count() == 0 && GetGroupStatus("autoexp") 
    Thread.Sleep(100); //just waiting, while condition true. mpp() 99 - becouse ArcheBuddy can calculate hp\mp inaccuracy   
    CancelTarget();
                                   }     
            if (hpp() < 85 && hpp(me.target) >= 30 && skillCooldown("Сокрушение разума") == 0 && skillCooldown("Хватка земли") == 0)
                                     {    
                                          Thread.Sleep(10);
                                
                                         UseSkillAndWait("Сокрушение разума");      
                                         Thread.Sleep(10);
                                         UseSkill("Хватка земли");
                                    }
                                                  
//if (hpp() < 80 && hpp(me.target) >= 50 && skillCooldown("Кража жизни") == 0)     
//    {    
//                                // && mpp() > 55       
//                                
//                                UseSkillAndWait("Кража жизни");
//                                    }      
//if (skillCooldown("Ледяная стрела") == 0 && hpp(me.target) >= 80) //&& (buffTime(me.target,"Языки пламени") > 0) 
//                               {    
//                                
//                                   UseSkillAndWait("Молния гнева");
//                                    }                                       

if (skillCooldown("Ледяная стрела") == 0 && hpp(me.target) >= 80 && mpp() > 15) //&& (buffTime(me.target,"Языки пламени") > 0) 
                               {    
                               
                                    UseSkillAndWait("Ледяная стрела");
                                    }
                                    if (hpp(me.target) < 101)    
                                         {   
                                        //for (int i=0;i<1;i++)     
                                        Thread.Sleep(10);
                                        UseSkill("Сгустки пламени");
                                }
                                //Small delay, do not load the processor
                                Thread.Sleep(10); 
                            }
                        
                            //Try to pickup drop from mob, if drop available
                            while (bestMob != null && !isAlive(bestMob) && isExists(bestMob) && bestMob.type == BotTypes.Npc && ((Npc)bestMob).dropAvailable && isAlive())  //
                            {
                                if (me.dist(bestMob) > 2)
                                   ComeTo(bestMob, 1);
                                PickupAllDrop(bestMob);     
                            }
                        } 
                        catch {}
                        
                    }
                } 
             
                //Small delay, do not load the processor
                Thread.Sleep(10);
            }
        }
    }
}
 
Autorun started when you enter game server select.
In your plugin you try to access me.X, while me == null -> plugin stops with error
 
Autorun started when you enter game server select.
In your plugin you try to access me.X, while me == null -> plugin stops with error
Ok, Out, подскажи пожалуйста, что нужно добавить, чтобы плагин таки запустился?
 
Ok, Out, подскажи пожалуйста, что нужно добавить, чтобы плагин таки запустился?
Научить его ждать захода в игру например, дописав в начале PluginRun
Code:
while (gameState != GameState.Ingame)
  Thread.Sleep(100);
Thread.Sleep(20000);
 
Научить его ждать захода в игру например, дописав в начале PluginRun
Code:
while (gameState != GameState.Ingame)
  Thread.Sleep(100);
Thread.Sleep(20000);
Спасибо!!
 
Out. еще вопрос. При дисконнекте клиент не закрывается, если поставить соответствующую галочку в настройках менеджера аккаунтов. Просто висит окно с сообщением, что связь с сервером разорвана блаблабла. Что нужно написать в плагине, который проверял бы связь с сервером и закрывал бы его, если связи нет?
 
Out. еще вопрос. При дисконнекте клиент не закрывается, если поставить соответствующую галочку в настройках менеджера аккаунтов. Просто висит окно с сообщением, что связь с сервером разорвана блаблабла. Что нужно написать в плагине, который проверял бы связь с сервером и закрывал бы его, если связи нет?
Если стоит соответствующая галочка (перед запуском клиента), и он не закрывается через 30-60секунд после разрыва связи - написать мне в приват, когда еще раз такое повторится, не закрывая клиент
 
Status
Not open for further replies.
Back
Top