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] Task palladium


amadeusz002

Rekomendowane odpowiedzi

Opublikowano

Czy mógłby mi ktoś zmienic ten task zeby mogł go uzywac golec z ladownia 4000 bo ja tego nie ogarniam??

 


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 = 1;



public int SellHangar = 2;









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 = true;









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");



}



}



}



}

 

 

Opublikowano

Weź to ogarnij i wstaw w spoiler..

A ile palladium Ci max zbiera i sprzedaje?

Nic nie widać aby coś było określone.

Opublikowano

Własnie nie wiem jak to wstawic w spoiler wiec sory a to mi jeszcze nie zbiera palki bo to jest na aegisa z mocami a ja mam golca wiec nie wiem czy mi zadziala. Chyba, że znasz jakis task na palke na golca to mozesz dac bo w tym poscie o taskach nie widzialem.

Opublikowano

Własnie nie wiem jak to wstawic w spoiler wiec sory a to mi jeszcze nie zbiera palki bo to jest na aegisa z mocami a ja mam golca wiec nie wiem czy mi zadziala. Chyba, że znasz jakis task na palke na golca to mozesz dac bo w tym poscie o taskach nie widzialem.

[1spoiler]

Treść

[1/spoiler]

 

#usuń liczbę "1".

 

W folderze z botem masz task pod nazwą "5-3 Example palladium task.cs".

Użyj tego taska, z goliathem działa bez problemu.

Opublikowano

W folderze z pbdo??? Bo tam mialem pare probnych tasków np na wrota ale je usunałem bo Kamieniarz powiedział ze mi nie potrzebne xD

Opublikowano

W folderze z pbdo??? Bo tam mialem pare probnych tasków np na wrota ale je usunałem bo Kamieniarz powiedział ze mi nie potrzebne xD

Kamieniarza pozostawię bez komentarza.

Folder bota --> Tasks i chyba mixxed tasks, tam jest task 5-3 Palladium example.

Jeżeli go nie ma w mixxed to zobacz inne foldery (nie pamiętam dokładnie).

Skoro usunąłeś to pobierz paczkę bota ze strony PBDO.

Opublikowano

1. http://www.mpcforum.pl/topic/712837-inne-zbiorczy-temat-o-taskach-do-pbdo-bota/ //edit, sorki już wiem o bugu, zwracam honor

2. To co tu masz to task pod aegisa broniącego się z białej + rsb i od cholery taskscriptów, 50k hp zostało - stabilka, 30k hp zostało - emp. Ściągnij jeszcze raz folder z botem, otwórz tasks, przy tasku z ...5-3... zmieniasz rozszerzenie na .txt, otwierasz go, i wrzuć go tutaj. Na pewno musisz zmienić minpalladiumamonuttosell na = 4000, i script blokujący niewidki na mapach pirackich zostaw, natomiast on będzie za każdym razem kupował niewidkę, więc jeśli nie chcesz tego musisz zmienić z cloak=true na cloak=false zostawiając skrypt na początku.


7yo9.png

Opublikowano

Dobra już mam ten task tylko który to jest ten skrypt na początku który mam zostawic bo tam jest pare razy cloak= false albo true

I tak przy okazji może mi ktoś powiedziec o oco chodzi bo cos mi sie zjobało i jak chce kliknac start w DO to nic sie nie dzieje normalnie otwieram hangar itp. ale startu nie moge kliknąć.

Opublikowano

Dobra już mam ten task tylko który to jest ten skrypt na początku który mam zostawic bo tam jest pare razy cloak= false albo true

I tak przy okazji może mi ktoś powiedziec o oco chodzi bo cos mi sie zjobało i jak chce kliknac start w DO to nic sie nie dzieje normalnie otwieram hangar itp. ale startu nie moge kliknąć.

Z startem nie wiem, jak chodzi Ci bot to nie dotykaj startu, bo będzie tylko Cie wywalać. Z tego co pamiętam ten skrypt ma komentarz, i jest u góry, czyli szukaj u góry czegoś w stylu // This script disables cloaking on pirate mapes, a wszyskie true pozmieniaj na false. Skrypt działa na zasadzie <if>, na przykład

if hp=50k use instantshield, dlatego w tym przypadku będzie miał pewnie kilka warunków

if condition = false/true kilka razy ; jeżeli wszędzie będzie miał false nie będzie nic robił bo czynność też będzie opisana : false

Tylko nie zapomnij o tym żeby w tasku gdzieś niżej znaleźć cloak = true i je zmienić na false. Czyli zmieniasz wszystko związane z cloak na false ;)


7yo9.png

Opublikowano

Ta wlasnie uzylem tego taska to wziął polecial z portalu co tp na 5-2 do tego po drugiej stronie mapy wlecial w pole minowe i tyle go było wiec chyba za dobry to on nie jest...

I czy moze mi ktos powiedziec czemu nie moge wlaczyc DO bo te przycisk start nie działa...

@UP bot nie chodzil a start i tak nie dzialał

Opublikowano

mialem z 500 wolnego miejsca w ladowni.

 

 

using System.Threading;
using PBDOBot.Helper;
using PBDOBot.Api;
using PBDOBot.Api.Task;

namespace Tasks
{
public class Task : BBaseTask
{

public override void OnReset()
{
Enums.ResourceType[] collection = new Enums.ResourceType[] {
};
this.ProtectResourcesList.AddRange(collection);

// cloaking taskscript that disables cloaking on 5-3
TaskScript = new TaskScript(
delegate()
{
if (BMain.MapName != "5-3")
{
Cloak = true;
}
else
{
Cloak = false;
}
return -1;
},
delegate()
{
return true;
},
1000); //checked every second
}

public override void ChooseLogic()
{
if (!ActionList.Contains("palladium task"))
{
BMain.WriteLog("palladium 5-3 task");
Reset();

Restock = false;

// put up some strong weapons to fight the pirate ships that engage our ship while it is not cloaked
LaserAmmoType = Enums.LaserAmmoType.LCB_10;
RocketAmmoType = Enums.RocketAmmoType.PLT_2026;
RocketLauncherAmmoType = Enums.RocketLauncherAmmoType.ECO10;
UseRocketLauncher = true;

TaskMap = "5-3";

// on piratemaps, he will only attack npcs if they attack him! (normal hunting is deactivated here!)
AttackNpcs = true;

MinFightDistance = 700;
MaxFightDistance = 900;

Refine = false;
// on piratemaps, he will only sell if Sell == true
Sell = true;
SellPalladium = true;
MinPalladiumAmountToSell = 4000;

Cloak = true;

CollectResources = true;
CollectBonusBoxes = false;
CollectCargoBoxes = false;

FleeOnEnemyInRadius = false;
FleeRadius = 5000;
AnswerAttacks = true;
IgnorePlayersOnTravel = true;

Repair = true;
MinDurability = 60;
MaxDurability = 99;

MinFreeSlots = 300;

ActionList.Add("palladium task");
}
}
}
}

 

Opublikowano

 

mialem z 500 wolnego miejsca w ladowni.

{

Cloak = true;

}

else

{

Cloak = false;

}

return -1;

Cloak = true;

Przypatrzże się tam. Cloak 2 razy =true jak byk, wyleci Ci z map piratów i kupi niewidkę, mówiłem żebyś pozamieniał na false.


7yo9.png

Opublikowano

Wiem to bym potem pozmienial ale czemu on polecial do portalu prze pole minowe i nie zbieral palladium oraz nie atakowal statkow piratow jak mnie atakowaly?

Opublikowano

Bo musisz to wszystko pozmieniać zanim puścisz task. On ładuje task a to co potem zmieniasz ma w głębokim poważaniu jeżeli nie uruchomisz go ponownie z przeedytowanym taskiem! Pisałem, żebyś wrzucił standard log - on po prostu poleciał sprzedać surki, bo uruchomiłeś go jak miał jeszcze zapisane 400 i on zapamiętał że przy 400 ma lecieć, więc poleciał.


7yo9.png

Opublikowano

Najpierw pozmienialem a dopiero potem wlaczylem bota i czy baza ptzypadkiem nie jest "na prawo" od palladium?? bo bot polecial do portalu po lewej

Opublikowano

 

 

using System.Threading;
using PBDOBot.Helper;
using PBDOBot.Api;
using PBDOBot.Api.Task;

namespace Tasks
{
public class Task : BBaseTask
{

public override void OnReset()
{
Enums.ResourceType[] collection = new Enums.ResourceType[] {
};
this.ProtectResourcesList.AddRange(collection);

// cloaking taskscript that disables cloaking on 5-3
TaskScript = new TaskScript(
delegate()
{
if (BMain.MapName != "5-3")
{
Cloak = true;
}
else
{
Cloak = false;
}
return -1;
},
delegate()
{
return true;
},
1000); //checked every second
}

public override void ChooseLogic()
{
if (!ActionList.Contains("palladium task"))
{
BMain.WriteLog("palladium 5-3 task");
Reset();

Restock = false;

// put up some strong weapons to fight the pirate ships that engage our ship while it is not cloaked
LaserAmmoType = Enums.LaserAmmoType.LCB_10;
RocketAmmoType = Enums.RocketAmmoType.PLT_2026;
RocketLauncherAmmoType = Enums.RocketLauncherAmmoType.ECO10;
UseRocketLauncher = true;

TaskMap = "5-3";

// on piratemaps, he will only attack npcs if they attack him! (normal hunting is deactivated here!)
AttackNpcs = true;

MinFightDistance = 700;
MaxFightDistance = 900;

Refine = false;
// on piratemaps, he will only sell if Sell == true
Sell = true;
SellPalladium = true;
MinPalladiumAmountToSell = 3000;

Cloak = false;

UsePet = true;
PetMode = Enums.PetMode.Auto_Resource_Collector;
RestockPetFuel = true;
PetFuelMinAmount = 1000;
RepairPetWhenDead = true;

CollectResources = true;
CollectBonusBoxes = false;
CollectCargoBoxes = false;

FleeOnEnemyInRadius = false;
FleeRadius = 5000;
AnswerAttacks = false;
IgnorePlayersOnTravel = true;

Repair = true;
MinDurability = 60;
MaxDurability = 99;

MinFreeSlots = 300;

ActionList.Add("palladium task");
}
}
}
}

 

Czy mogłby mi ktoś wyjaśnic co w nim jest zle i pomóc bo jak juz sam dolecialem na 5-3 na mgielke włączam pbdo tego taska i mi pozbiera ze 400 palki i deda nie wiem czemu przeciez tam nie ma alienow, a jak juz go rozwala to nie moze doleciec bo leci na niewidce na 5-1 wlatuje w srodek mapy we mgielke i znowu jest widoczny i go zestrzeliwuja nawet inceraptory. Moze mi ktos pomoc bo chcialbym zeby mi przynajmniej te 4000 pali zebral i polecial na 5-2 wymienic a nie leci przez pole minowe do tego portalu na lewo od palki.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...