Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Tsk


.:Sebek:.

Rekomendowane odpowiedzi

Opublikowano

gdzie moge znlesc lub pbrac task na palladium który sam wymienia palladium za pomoca zmiany hali.

Statek golec ammo x1 rakietki najlepsze z akredki eco 10 :)


1370269248-U384748.png

By: b4rt4z

Opublikowano

 

 

using System;
using System.Threading;
using System.Collections.Generic;
using System.IO;
using System.Linq;

using PBDOBot.Helper;
using PBDOBot.Api;

/*
__________        .__  .__              .___.__                ___.          
\______   \_____  |  | |  | _____     __| _/|__|__ __  _____   \_ |__ ___.__.
 |     ___/\__  \ |  | |  | \__  \   / __ | |  |  |  \/     \   | __ <   |  |
 |    |     / __ \|  |_|  |__/ __ \_/ /_/ | |  |  |  /  Y Y  \  | \_\ \___  |
 |____|    (____  /____/____(____  /\____ | |__|____/|__|_|  /  |___  / ____|
                \/               \/      \/                \/       \/\/     
                 __    __        __________      __    __                    
                 \ \   \ \      |__\______ \    / /   / /                    
                  \ \   \ \     |  ||    |  \  / /   / /                     
                  / /   / /     |  ||    `   \ \ \   \ \                     
                 /_/   /_/  /\__|  /_______  /  \_\   \_\                    
                            \______|       \/                                
							
*/

namespace PBDOBot.Api.Task
{
    public class Task : BBaseTask
    {
        #region Task Configuration

        /* You really should only need to change shiz here! */
        bool UseHangarChange = false;
        bool UseAmmoChanger = false;
        bool UseShipAbilities = true;
        bool UseTechCenter = false;
        bool UseRocketBuyCPU = false;

        bool UseRocketLauncher = true;

        public int CollectionHangar = 8;
        public int SellHangar = 3;

        public int RocketBuyConfig = 1;
        public int HellstormBuyConfig = 2;

        public Enums.LaserAmmoType LaserAmmo = Enums.LaserAmmoType.LCB_10;
        public Enums.RocketAmmoType RocketAmmo = Enums.RocketAmmoType.PLT_2026;
        public Enums.RocketLauncherAmmoType RocketLauncherAmmo = Enums.RocketLauncherAmmoType.ECO10;

        #endregion

        #region ITaskScripts
        /* ITaskScript MPCforum */
        class IHangarChange : ITaskScript
        {
            public IHangarChange()
                : base("HangarChange", 15000, 10)
            {
            }

            public override int Run()
            {
                int hangarCollect = ((Task)Task).CollectionHangar;
                int hangarSell = ((Task)Task).SellHangar;

                int timer = Task.BMain.Me.Premium ? 5 : 20;

                int otherResources = Task.BMain.Me.GetResources().Where(res => res.Key != Enums.ResourceType.ore_palladium && res.Key != Enums.ResourceType.ore_xenomit).Select(res => res.Value).Aggregate((total, resource) => total += resource);
                int palladium = Task.BMain.Me.GetResources().Where(res => res.Key == Enums.ResourceType.ore_palladium).Select(res => res.Value).FirstOrDefault();
                int amountToSell = Task.BMain.Me.MaxCargo - otherResources;

                if (palladium >= amountToSell && Task.BMain.MapName == "5-3" && !Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
                {
                    Task.IdleInSafety = true;
                    Task.BMain.WriteLog("Flying to safety to change hangar");
                }
                else if (palladium >= amountToSell && Task.BMain.MapName == "5-3" && Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
                {
                    Task.BMain.Actions.LogOff(180 + timer);
                    Task.BMain.WriteLog("Logging out to switch hangar");
                }
                else if (palladium >= amountToSell && Task.BMain.MapName == "5-2" && Task.BMain.LoggedIn)
                {
                    Task.SellPalladium = true;
                    Task.Sell = true;
                    Task.BMain.WriteLog("Selling Palladium");
                    return 1500;
                }
                else if (palladium < amountToSell && Task.BMain.MapName == "5-2" && Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
                {
                    Task.IdleInSafety = true;
                    Task.BMain.Actions.LogOff(180 + timer);
                    Task.BMain.WriteLog("Logging out to switch hangar");
                }
                else if (palladium < amountToSell && Task.BMain.MapName == "5-2" && !Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
                {
                    Task.IdleInSafety = true;
                    Task.BMain.WriteLog("Flying to safety to change hangar");
                }

                Task.IdleInSafety = false;

                if (!Task.BMain.LoggedIn && Task.BMain.MapName == "5-3")
                {
                    Task.BMain.Equip.Ship.ChangeHangars(hangarSell);
                    Task.BMain.Actions.LogOn();
                    Task.BMain.WriteLog("Switching to chosen sell hangar");
                }
                else if (!Task.BMain.LoggedIn && Task.BMain.MapName == "5-2")
                {
                    Task.BMain.Equip.Ship.ChangeHangars(hangarCollect);
                    Task.BMain.Actions.LogOn();
                    Task.BMain.WriteLog("Switching to chosen collect hangar");
                }

                return -1;
            }

            public override bool NeedRun()
            {
                return true;
            }
        }

        class IShootPeepz : ITaskScript
        {
            public IShootPeepz()
                : base("AmmoChanger", 2000, 8)
            {
            }

            public override int Run()
            {
                if (Task.BMain.Me.SelectedShip.IsNpc)
                {
                    if (Task.BMain.Me.SelectedShip.Shield > 0) { Task.BMain.Actions.SetDroneFormation(Enums.DroneFormation.Crab); } else { Task.BMain.Actions.SetDroneFormation(Enums.DroneFormation.Diamond); }
                    if (Task.BMain.Me.SelectedShip.Shield > 0) { Task.BMain.Me.SetLaserAmmo(Enums.LaserAmmoType.SAB); } else { Task.BMain.Me.SetLaserAmmo(((Task)Task).LaserAmmo); }
                }
                else
                {
                    if (Task.BMain.Me.GetAmmoCount(Enums.LaserAmmoType.RSB_75) >= 1000 && Task.BMain.Me.GetAmmoCount(Enums.LaserAmmoType.UCB_100) >= 1000)
                    {
                        if (Task.LaserAmmoType != Enums.LaserAmmoType.RSB_75)
                        {
                            Task.BMain.Me.SetLaserAmmo(Enums.LaserAmmoType.RSB_75);
                            return 500;
                        }

                        if (Task.LaserAmmoType != Enums.LaserAmmoType.UCB_100)
                        {
                            Task.BMain.Me.SetLaserAmmo(Enums.LaserAmmoType.UCB_100);
                            return 3000;
                        }
                    }

                    if (Task.BMain.Actions.CanUseInstaShield && Task.BMain.Me.Hitpoints <= 50000) Task.BMain.Actions.UseInstaShield();
                    if (Task.BMain.Actions.CanUseEmp && Task.BMain.Me.Hitpoints <= 30000) Task.BMain.Actions.UseEmp();
                    if (Task.BMain.Me.Shield <= Task.BMain.Me.MaxShield * 0.1 && Task.BMain.Actions.CanUseTech(Enums.TechType.ShieldBackup)) Task.BMain.Actions.UseTech(Enums.TechType.ShieldBackup);
                }
                return -1;
            }

            public override bool NeedRun()
            {
                return Task.BMain.Me.SelectedShip != null;
            }
        }

        class ISurvive : ITaskScript
        {
            public ISurvive()
                : base("ShipAbilities", 10000, 9)
            {
            }

            public override int Run()
            {
                if (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Shield_Repair) && Task.BMain.Me.Shield / Task.BMain.Me.MaxShield * 100 <= 50)
                {
                    Task.BMain.Actions.UseAbility(Enums.ShipAbility.Aegis_Shield_Repair);
                }
                if (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Health_Repair) && Task.BMain.Me.Hitpoints <= 105500)
                {
                    Task.BMain.Actions.UseAbility(Enums.ShipAbility.Aegis_Health_Repair);
                }
                if (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Health_Pod) && Task.BMain.Me.Hitpoints <= (Task.BMain.Me.MaxHitpoints - 50000))
                {
                    Task.BMain.Actions.UseAbility(Enums.ShipAbility.Aegis_Health_Pod);
                }
                return -1;
            }

            public override bool NeedRun()
            {
                return (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Shield_Repair) || Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Health_Repair) || Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Health_Pod));
            }
        }

        class ICanHazRocketz : ITaskScript
        {
            public ICanHazRocketz()
                : base("RocketBuyCPU", 2000, 7)
            {
            }

            public override int Run()
            {
                int RocketCount = Task.BMain.Me.GetAmmoCount(((Task)Task).RocketAmmo);

                if (RocketCount > 300)
                    return 120000; // I doubt we will use 300 rockets in less than 2 mins. This gives the CPU back some processing time!

                if (RocketCount < 10)
                {
                    Task.StandardConfiguration = ((Task)Task).RocketBuyConfig;
                    Task.SwitchConfigWhenShieldLow = false;
                    return 5000; // Config Change Cooldown
                }
                else
                {
                    Task.StandardConfiguration = ((Task)Task).HellstormBuyConfig;
                    Task.SwitchConfigWhenShieldLow = true;
                }
                return -1;
            }

            public override bool NeedRun()
            {
                return true;
            }
        }

        class IHazSuperPowerz : ITaskScript
        {
            public IHazSuperPowerz()
                : base("TechCenter", 1000, 6)
            {
            }

            public override int Run()
            {
                Task.BMain.Actions.UseTech(Enums.TechType.RocketPrecision);
                return 1200000; // Precision Targeter Duration and Cooldown
            }

            public override bool NeedRun()
            {
                return Task.BMain.Actions.CanUseTech(Enums.TechType.RocketPrecision) && Task.BMain.Actions.GetTechAmount(Enums.TechType.RocketPrecision) > 10;
            }
        }
        #endregion


        public override void OnReset()
        {
            this.BoostDictionary = new Dictionary<string, Enums.ResourceType> { 
                { "Lasers", Enums.ResourceType.ore_promerium }, 
                { "Rockets", Enums.ResourceType.ore_seprom },
                { "Speed", Enums.ResourceType.ore_promerium }, 
                { "Shield", Enums.ResourceType.ore_seprom }
            };
			
			this.TaskScripts.Clear();

            if(UseHangarChange)
                this.TaskScripts.Add(new IHangarChange()); // Hangar Change

            if(UseAmmoChanger)
                this.TaskScripts.Add(new IShootPeepz()); // Ammo Changer

            if(UseShipAbilities)
                this.TaskScripts.Add(new ISurvive()); // Ship Abilities

            if(UseRocketBuyCPU)
                this.TaskScripts.Add(new ICanHazRocketz()); // Auto Rocket Buy

            if(UseTechCenter)
                this.TaskScripts.Add(new IHazSuperPowerz()); // Tech Center
        }

        public override void ChooseLogic()
        {
            if (!ActionList.Contains("Palladium Task"))
            {
                BMain.WriteLog("Palladium Task");
                BMain.WriteLog("\u00A9 Made by -jD- with special thanks to ukjet");

                Restock = false;

                UseRocketLauncher = UseRocketLauncher;
                LaserAmmoType = LaserAmmo;
                RocketAmmoType = RocketAmmo;
                RocketLauncherAmmoType = RocketLauncherAmmo;

                AvoidNpcsRange = 3500;

                CollectResources = true;
                ExtremeBotting = false;

                CollectBonusBoxes = false;
                CollectCargoBoxes = false;

                SwitchConfigWhenShieldLow = true;
                SwitchConfigShieldPercent = 10;

                AnswerAttacks = true;
                FleeOnEnemyInRadius = false;

                TaskMap = "5-3";

                AttackNpcs = true;

                DroneFormation = Enums.DroneFormation.Diamond;

                if (BMain.MapName != "5-3") { UsePet = false; } else { UsePet = true; }

                if(!UseHangarChange) 
                    if (BMain.MapName != "5-3") { Cloak = true; } else { Cloak = false; }


                PetMode = Enums.PetMode.Auto_Resource_Collector;
                RestockPetFuel = true;
                PetFuelMinAmount = 1000;
                PetMinDurability = 1;
                RepairPetWhenDead = true;

                Repair = true;
                MinDurability = 40;
                MaxDurability = 100;

                Refine = false;

                if (UseHangarChange)
                {
                    if (BMain.MapName == "5-3")
                    {
                        Sell = false;
                        SellPalladium = false;
                        SellSkylabPromerium = false;
                    }
                    else
                    {
                        Sell = true;
                        SellPalladium = true;
                        SellSkylabPromerium = true;
                    }
                }
                else
                {
                    Sell = true;
                    SellPalladium = true;
                    SellSkylabPromerium = true;
                }

                MinFreeSlots = 0;
                MinPalladiumAmountToSell = 15;

                ActionList.Add("Palladium Task");
            }
        }
    }
}

 

 

 


ja latam na tym

zmien na poczatku bool UseHangarChange z false na true

http://www.mpcforum.pl/topic/712837-inne-zbiorczy-temat-o-taskach-do-pbdo-bota/ : tu masz temat o taskach

4758463064.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...