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

-etb- Plugin: Trade-Run: Solzreed Dried Food

etb12345

Community Developer
Joined
Jul 5, 2012
Messages
198
Reaction score
1
OUTDATED


Hello everyone , i know everyone has huge hype to have a trade run plugin working so i decided to make one for all of you.
specialty_workbench.webp

For the moment it will do the following for Solzreed Dried Food Trade run :
- walk/ usage of Dash(sprint)
-Use mount Black Donkey
-Use carrots until you have none left
-Craft Trade Pack
- Run to Gold Trader and sell it
- Use recall skill if available ( cooldown) You need to set your home point at Lacton
- Use portal book to return to lacton
- Repeat until you have no material to craft

TODO LIST :
- Add Car possibility
- Add more trade run
- Buying required mats from AH / general merchant


Please test it and let me know errors, i tested it for 2-3 runs and it was running fine.

link to download the path (.db3) : solzreedtest.db3 :: Free File Hosting - File Dropper: File Host for Mp3, Videos, Music, Documents.

I RECOMMEND YOU TO MAKE YOUR OWN PATH, TRY TO MAKE IT SIMILAR TO MINE IF YOU WANT TO AVOID BAN HAMMER(if it ever happen)

Log : 26-09-2014
Added Walk/Sprint support in case you dont have a donkey

Code:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;       


namespace DefaultNameSpace{
   public class DefaultClass : Core
   {                    
        private Gps gps;       
         bool SprintActivated = false;
       public static string GetPluginAuthor()
       {
           return "etb";
       }

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

       public static string GetPluginDescription()
       {
           return "Trade Run Solzreed Dried Food";
       }

       //Call on plugin start

       public void PluginRun()
       {             
           
          int NBPack = maxItemsWeCanCraft(6228) ;  
                                                        
         
          while((NBPack > 0) || (isEqiped("Solzreed Dried Food") )  )
          {     
             if(!isEqiped("Solzreed Dried Food")) 
                { 
                    DespawnMount();
                    Thread.Sleep(1500);
                    MountDonkey();
                    MoveToCraft() ;
                    DespawnMount();     
                    Thread.Sleep(8000);   
                }
                 
             while(!isEqiped("Solzreed Dried Food"))
                {    
                MoveToCraft() ;
                CraftItems("Solzreed Dried Food", 1);
                Thread.Sleep(1000);
                }
                 
                Thread.Sleep(3000);
                DespawnMount();
                Thread.Sleep(1500);
                MountDonkey();    
                MoveToGoldTrader(); 
  
                DespawnMount(); 
                Thread.Sleep(2000);  
                SellBackpack(true);
                Thread.Sleep(1500); 
                returnToCraft() ;
                NBPack = maxItemsWeCanCraft(6228);
         }     
 
       } 
   
        public void returnToCraft()   
         { 
          if(CanUseRecall()) 
             { 
               UseSkill("Recall");    
               Thread.Sleep(15000);
               return;

             }
          if( HaveHereafterstones() == true)
             {
               UsePortalBook() ;  
               Thread.Sleep(5000);
               return;
             }
          else 
              { 
               long RecallCooldown = skillCooldown("Recall");  
               Thread.Sleep(900000);  
               UseSkill("Recall");
              }
         }          
       
         public  bool CanUseRecall()  
         {      
            long RecallCooldown = skillCooldown("Recall");        
            if(RecallCooldown > 0) return false;
            return true;
         }
            
        public  void UsePortalBook()  
         {    
            foreach (var port in me.portalBook.getDistricts())
                {
                    if (port.name == "Lacton")
                    {
                        port.OpenPortal();
                        Thread.Sleep(1000);
                        while (me.isCasting || me.isGlobalCooldown)
                            Thread.Sleep(100);
                        Thread.Sleep(2500);
                        UsePortal(getMyPortal());
                        break;
                    }
                }  
         }
                       
         public Creature getMyPortal()
        {
            foreach (var creat in getCreatures())
            {
                if (creat.db.id == 3891 && creat.ownerUniqId == me.uniqId)
                    return creat;
            }
            return null;
        }
   
       public void MountDonkey()        
       {   
        if(HaveDonkey() == true)
         { 
            
          UseItem("Black Donkey");
          Thread.Sleep(2000);
          var d = getMount();
          if (d != null)
          SitToMount();  
         } 
           
       }             
       public void MoveToCraft()        
       {         
           gps = new Gps(this); 
           gps.LoadDataBase(Application.StartupPath + "\\plugins\\tradequest\\solzreedtest.db3"); 
           //  gps.onGpsPreMove -= gpsPreMove; 
           gps.GpsMove("Solzreed Workbench");                
 
       }  
        public void MoveToGoldTrader()        
       {         
           gps = new Gps(this); 
           gps.LoadDataBase(Application.StartupPath + "\\plugins\\tradequest\\solzreedtest.db3");  
            gps.onGpsPreMove += gpsPreMove; 
          gps.GpsMove("Gold Trader");   
          
       }   
      public void gpsPreMove(GpsPoint point)
        {  
            
         long carrotCooldown = buffTime(getMount(),"Dreaming Donkey");          
         
          if(HaveDonkey() == false)
           { 
            if((SprintActivated == false) && (me.mpp > 50))    
                {
                    SprintActivated = true;
                    UseSkill("Dash"); 
                }  
                if((SprintActivated == true) && (me.mpp < 5))    
                 {   
                     SprintActivated = false;
                 }    
            }
          else  
              if((HaveDonkey()== true) && (carrotCooldown == 0) && (HaveCarrots() == true))    
            {  

            UseSkill("Dreaming Donkey"); 
            }  
        }      
       public bool HaveCarrots()
       {  
          List<Item> inventory = getAllInvItems()  ;   
           foreach(Item myitem in inventory)
               { 
                   if( myitem.name == "Carrot")    
                     {
                         return true;   
                     }         
               }    
                 return false;
       }   
             
      public bool HaveHereafterstones()
       {  
          List<Item> inventory = getAllInvItems()  ;   
           foreach(Item myitem in inventory)
               { 
                   if( myitem.name == "Hereafter Stone")    
                     {
                         return true;   
                     }         
               }    
                 return false;
       }    
      
      public bool HaveDonkey()
       {  
          List<Item> inventory = getAllInvItems()  ;   
           foreach(Item myitem in inventory)
               { 
                   if( myitem.name == "Black Donkey")    
                     {
                         return true;   
                     }         
               }    
                 return false;
       }      
      
      public bool hasDashBuff()  
        {      

         List<Buff> mybuffs = me.getBuffs()  ;   
            foreach(Buff mbuff in mybuffs)
               { 
                   if( mbuff.name == "Dash")    
                     {
                         return true; 
                     }         
               }  
                 return false;
        }   
           
             

       //Call on plugin stop
       public void PluginStop()
       {
       }
   }
}

Map for the route :
map.webp
 
Last edited:
Thanks a lot!! Any way you can add the Farm Cart support? It's kinda of "useless" for people that have this nice thing! ;)
And where exactly is it going? Solzreed --> ???

Thanks in advance!
 
This trade run is only for west faction right? Can anyone do one for East faction pls?
 
Last edited:
Yeah i havent played on other faction yet, but it will be easy to merge

The road is from Solzreed lacton to memoria ( just like the quest)
 
Maybe can you help me to merge one? , and thanks for this great work mate!
 
i made a little change , recompile if you allready have done it
 
I dont have a Black Donkey! What can i do?
 
Last edited:
You cant do it without black donkey for now . I did this code very fast , will add more support when i have time . If you guyz want to contribute and add stuff its up to you
 
Please etb12345 do one for east faction !! ;) tell me what do you need via PM !
 
Hello. Any chance you can make the path longer, until Two Chrones and add > Farm Cart?
 
Im willing to pay for an east trade run plugin :) just for a little more Motivation :D
 
Im willing to pay for an east trade run plugin just for a little more Motivation
Its hard to use this code, but change pack name and build your own path on east continent?)
 
let's say i make my path and save to path.db3 and remove all the donkey strings on the plugin, now i'm on my farm cart loaded and close to point A and i start the plugin, will it drive the cart until the last point (B) ?
or it doesn't work on farm carts at all ?

i don't need a full afk plugin, i can craft, summon and load the farm cart myself, i just need AB to drive the damm thing using my path.db3 .
 
Last edited:
or it doesn't work on farm carts at all ?
I dont know, my char haven't farm cart at this moment. So only you can test this
 
Im having a problem, it do craft the trade stuff. But when its supposed to run it jumps on the donkey, instantly dismount -> repeat..

EDIT: It says trouble while load gps base.. How do i insert your gps route?
 
Last edited:
Hey, this looks great! I was wondering is it possible for me to change the start location from Lacton to Nymphs Sanctuary? The lacton area is overpopulated with houses that could end up getting the bot stuck (I even get stuck trying to get to the workstation).
 
works great, thanks pal. i just had to edit the path a bit, and it performed just fine.
 
Hey, this looks great! I was wondering is it possible for me to change the start location from Lacton to Nymphs Sanctuary? The lacton area is overpopulated with houses that could end up getting the bot stuck (I even get stuck trying to get to the workstation).

Yeah it is possible, you need to create your own .db3 then on the code just edit : gps.LoadDataBase(Application.StartupPath + "\\plugins\\work\\solzreedtest.db3"); to your .db3 name

then on code you need to change this : gps.GpsMove("Solzreed Workbench"); to the name you named your last point ( where to craft) same thing for the gold trader.

For recall point, you need to change this :
foreach (var port in me.portalBook.getDistricts())
{
if (port.name == "Lacton")
{
port.OpenPortal();


to the zone you want to begin at.

good luck, ill make this usable for everyone when ive time , for the moment it is just some function built together as a test
 
For people with a couple of braincells, just read the code and adjust for the east.
It's not smart to follow the same trade route with a thousand people...
 
Back
Top