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] PBDO-Bot - Utrudnione zbieranie


lubieBOCIĆ

Rekomendowane odpowiedzi

Opublikowano

Macie jakiś sposób żeby bot radził sobie lepiej na 5-3 z alienkami bo zazwyczaj zanim doleci w mgłe to raz padnie

leci przez najmniej uczęszczane miejsca na 5-3 i stoi aż nie wybije wszystkiego a czasem jedno rozwali to trzy nowe lecą

lepiej by było gdyby ignorował alienki dopóki nie doleci do mgły tam już sobie da rade albo żeby kręcił alienki,bił uciekając chyba że macie jakieś inne rozwiązanie to napiszcie jak wy sobie radzicie

task:

 

using System;
using System.Collections.Generic;
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 = true;
bool UseAmmoChanger = false;
bool UseShipAbilities = true;
bool UseTechCenter = false;
bool UseRocketBuyCPU = true;

bool UseRocketLauncher = true;
bool CloakOnSell = false;

public int CollectionHangar = 3;
public int SellHangar = 2;

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

bool BoostLasersWithSeprom = true;
bool BoostRocketsWithSeprom = true;
bool BoostEnginesWithPromerium = true;
bool BoostShieldsWithSeprom = true;

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 cargo = Task.BMain.Me.FreeCargo - Task.MinFreeSlots;

// Fly to safety in 5-3
if (cargo <= 0 && Task.BMain.MapName == "5-3" && !Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
{
Task.IdleInSafety = true;
Task.BMain.WriteLog("Flying to safety to change hangar");
}

// Logout when in safety
else if (cargo <= 0 && 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");
}

// Trigger Selling in 5-3
else if (cargo <= 0 && Task.BMain.MapName == "5-2" && Task.BMain.LoggedIn)
{
Task.SellPalladium = true;
Task.Sell = true;
Task.BMain.WriteLog("Selling Palladium");
return 1500;
}

// Logout when sold
else if (cargo > 0 && Task.BMain.MapName == "5-2" && Task.BMain.Equip.Ship.CurrentHangar != hangarCollect && Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
{
Task.IdleInSafety = true;
Task.BMain.Actions.LogOff(180 + timer);
Task.BMain.WriteLog("Logging out to switch hangar");
}

// Flee to safety to logout after selling
else if (cargo > 0 && Task.BMain.MapName == "5-2" && Task.BMain.Equip.Ship.CurrentHangar != hangarCollect && !Task.BMain.Me.InNoAttackZone && Task.BMain.LoggedIn)
{
Task.IdleInSafety = true;
Task.BMain.WriteLog("Flying to safety to change hangar");
}

// Login to selling hangar
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");
}

// Login to collection 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 Task.BMain.EquipmentLoaded;
}
}

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.Heart); } else { Task.BMain.Actions.SetDroneFormation(Enums.DroneFormation.Heart); }
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", 5000, 9)
{
}

public override int Run()
{
if (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Shield_Repair) && (Task.BMain.Me.Shield / (double)Task.BMain.Me.MaxShield) * 100 <= 70)
{
Task.BMain.Actions.UseAbility(Enums.ShipAbility.Aegis_Shield_Repair);
}
if (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Health_Repair) && Task.BMain.Me.Hitpoints <= (Task.BMain.Me.MaxHitpoints - 100000))
{
Task.BMain.Actions.UseAbility(Enums.ShipAbility.Aegis_Health_Repair);
}
if (Task.BMain.Actions.CanUseAbility(Enums.ShipAbility.Aegis_Health_Pod) && Task.BMain.Me.Hitpoints <= 100000)
{
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 < 10)
{

Task.StandardConfiguration = ((Task)Task).RocketBuyConfig;
Task.SwitchConfigWhenShieldLow = false;
return 5000; // Config Change Cooldown
}

else
{

Task.StandardConfiguration = ((Task)Task).HellstormBuyConfig;
Task.SwitchConfigWhenShieldLow = true;
}


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!


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 {
{ "Lasers", Enums.ResourceType.ore_seprom },
{ "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 Pro"))
{
BMain.WriteLog("Palladium Pro");
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.Heart;

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

/* Confusing cloak logic FTW! :D */
if (!BMain.MapName.Contains("5-"))
if(BMain.MapName.Contains("-8"))
Cloak = false;
else if (CloakOnSell)
Cloak = false;
else
if (!UseHangarChange && CloakOnSell)
if (BMain.MapName != "5-3") { Cloak = false; } 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 = 30;

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

 

Opublikowano

A to nie kwestia taska tylko systemu pbdo-bota. Przecież w tasku wydajesz mu polecenia które on na podstawie czegoś interpretuje że

a=b

 

i jak widzisz nigdzie w tasku nie masz opcji ustalania takich rzeczy jak to kiedy ma atakować, to jest zawarte w którymś z

using System;
using System.Collections.Generic;
using System.Linq;

using PBDOBot.Helper;
using PBDOBot.Api;


7yo9.png

Opublikowano

U mnie leci na niewidce a osłonki nie są potrzebne bo i tak jak jesteś we mgle to tracisz stopniowo osłonkę

Full napędy i Lasery

Napędy - szybciej zbiera palke

Lasery - szybciej ubije aliena który mu przeszkodzi

 

PS. Używam oryginalnego taska który jest w PBDO

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...