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

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

If it helps, you can try using this profile as a reference. Its something I was experimenting with last weekend to see what the new tags could do. The idea is to switch between Iron Feast and Thaliak River, fishing for Pipiras if weather is up, Caimans and Thunderbolt Eel collectibles if in the time slot, and Illuminati Perch otherwise. Uses SimpleFlyTo to move from place to place. It will also buy bait for you if you're low, although you'll have to supply your own Goblin Jigs. Also has a code chunk to stealth you (presumably after landing), since Fish tag doesn't stealth you until reaching the first fishspot.
Still a WIP, but at this point it might be obsolete. The idea was to create a profile that would farm both red and blue scrips, but with ExMatt's recent work on mining and botany collectibles it would probably be more efficient to alternate Adamantite/Chysahl/Illuminati.

One thing to note is that even if you encase Fish tag in an <If>, it will only check the If condition when deciding whether to start fishing, not after each fish. So you need to put IsTimeBetween and IsWeatherInZone in the conditions of the Fish tag for it to break out in the middle of fishing.


That still looks like a good profile, Is the skywatcher working well?...its not a true plugin, but i felt like creating it as a plugin worked out best. Also if I have some free time to go on a coding binge, I might rewrite it so that it uses Garland tools algorithms which can predict the weather in Eorzea until the end of time afaik.


The only suggestion i would make, depending on your priority, is to use the PredictWeatherInZone ( TimeSpan.FromHours(1) or TimeSpan.FromMinutes(30)) depending on how long it takes to get to the location/stop what you are doing etc.
 
Last edited:
I didn't have much time to test extensively, but it worked pretty well from what I could see. Only annoying thing was finding the weatherIDs; I didn't know (and still don't) the RBconsole line to get the list of them.
I'll probably add PredictWeatherInZone to future weather fish profiles, but at the time I wanted to keep things simple to make testing easier.
 
I didn't have much time to test extensively, but it worked pretty well from what I could see. Only annoying thing was finding the weatherIDs; I didn't know (and still don't) the RBconsole line to get the list of them.
I'll probably add PredictWeatherInZone to future weather fish profiles, but at the time I wanted to keep things simple to make testing easier.

You can use SkywatcherPlugin.PredictWeatherInZone(398, "Clouds", "Fog", "Dust Storms") also, but putting quotes into a bunch of conditions sucks.


here... this is what I sometimes will check.
Code:
foreach(var kvp in WorldManager.WeatherDictionary)
{
Log("{0} - {1}", kvp.Key, kvp.Value);
}

I don't know if both 14 and 26 heatwaves can both spawn in South Than, but i have a feeling only the lower numbered ones ever end up in standard zones if they have duplicates.
 
Cool thanks, didn't know I could just use the string.
I assume one Heat Wave is the actual world weather, and the other is the weather in an instance encounter (Ifrit?).
 
by the way.....when it comes to sweetfish and blueclaw shrimp, i usually add this moochCondition="Core.Player.HasAura(850)"

Since both the HQ of those fish sell well, i don't want to mooch them unless i have patience up. It also helps if you are trying to mooch a fish that can only be caught in certain weather/certain times to use this attribute.
 
Mm, I'll keep that in mind.
Will the tag only mooch fish designated as Keepers? I recall last week I set the Illuminati profile to only keep Illuminatis, and it wouldn't mooch off Sweetfish or Hedgemoles. Also, is there a reason the example profile keeps Hinterlands Perch? I'm not aware it has any particular value.
 
It desynths ok, and is good for skillups, so i send them to my friend.

At one point i had a bug in the code where it would only mooch off keepers. Now it also mooches off anything not listed as keepers again...so it is less confusing and requires less setup.

These are the options for action attribute, default is KeepAll

DontKeep = 0x00,
KeepNq = 0x01,
KeepHq = 0x02,
// MoochFlag = 0x04,
KeepAll = 0x03, // KeepNq | KeepHq
Mooch = 0x06, // KeepHq | MoochFlag
MoochKeepNq = 0x07 // KeepNq | KeepHq | MoochFlag
 
The attached code is a modification I made to ExMatt's Fish.cs (an older version than current) to fix some issues I was having with it, add some features, and rearrange the code a bit because I am anal. If ExMatt desires, he is welcome to pillage any part of it for his use. The added features are:

Food="<food name>" - will use specified food at the appropriate time while fishing. The default is no setting, so no food will be used.
UseCordial="<true/false>" - will automatically use any hi-cordial/cordial you have in your bag whenever your GP is below the UseCordialMinGPPercent threshold. It will first attempt to use Hi-Cordials, then Coridals. The default is false.
UseCordialMinGPPercent="<0-100> - The threshold (percentage of your characters max available GP) below which cordial will be cast. The default is 50.

A quirk of the coridal functionality is, if you set the threshold too high, the bot will wind up waiting for cordial to become available. This is because BagSlot.CanUse for a cordial is always false while the bot is fishing, so when the conditions are right for cordial to be used, the code must force the bot into an idle state before it can actually use the item. If the cordial is not actually ready because it is on cooldown, the bot will not proceed until the cooldown period expires. I could find no way to determine if an item is on cooldown (something like Item.IsReady or Item.CooldownTimeRemaining), so if someone knows how to determine this, please let me know.

I have also included several tags. One of them is a modification of the FlightToPath tag that fixes the problem where it only works during the first iteration of a <While> tag. The other is a modification to NPCRepairTag, mainly because I just wanted to clean it up a bit for my purposes. Did I mention that I am anal? FYI, this repair tag will only work with NPCs that only offer repair capability (i.e., not the Mender and Merchant NPCs.) The final one, TurnInCollectibles, is my own - it attempts to automatically hand in specified collectables to the Collectable Appraiser. Because the Collectable Appraiser window is not available yet in RemoteWindows, the tag uses keystrokes to interact with the window, so you have to tell it the tag how to interact with the window. The keystrokes used are not configurable - it assumes you can use the default keypad keys it needs. The elements are:

NpcId="<NpcId> - of the Collectable Appraiser you want to use
XYZ="<x>,<y>,<z>" - coordinate of where you want the toon to stand near the Collectable Appraiser
Collectable="<collectable name>"
AppraiserWindowLineNumber="<line number>" - the line number in the Collectable Appraiser window that corresponds to the Collectable you specified

This tag will turn in EVERY specified Collectable you have until either 1) you run out of them or 2) you exceed your turn in quota for the collectable. It has been working fine for me, but use it at your own risk - don't come whining to me if it somehow destroys your collectables :)

Finally, the two attached fishing profiles will continuously farm Thunderbolt Eels or Tiny Axolotls at the appropriate time and locations. It assumes you have all the necessary Aetherytes and are a level 60 fisher. During the period when the collectable fish is not available, it will farm Illuminati Perch. During each loop of the collection cycle, the bot will run the toon through Idllyshire to automatically repair and turn in the target collectables. You will need to specify what bait/food you want to use, and whether or not you want to burn cordials or mooch. I find that Goblin Jig is best for Illuminati Perch (albeit a bit expensive, as the jigs will get lost at varying rates), and Brute Leech is best for the collectable fish (so you will need to manually burn your blue scrip as necessary to acquire them). You will also need to deal with turning the blue/red scrip into whatever you want. The only problem I have with these profiles is the Navigation System sometimes hangs (this is a known problem that Mastahg claims will be fixed when he rewrites the Navigation code.) When this happens, just use the movement keys to nudge the bot forward, and it will take off again.

Oh, and I just noticed the attached Thunderbolt Eel profile has disabled collecting them and is currently using the Goblin Jig bait for the eels - you will definitely want to change this (e.g, set bait to "Brute Leech", collect to "true", and useCordial to "true".) This is because at the time I posted this, I was at my red scrip quota, so I did not want it stockpiling the collectables in my inventory.

One final note: if you use Chanko and/or Agil, you will want to disable these, as they will conflict with the repairing and food eating features built into this code.

Enjoy :)

Thanks, Good stuff.

I had been working on some collectable turn in...but didn't get very far since I am literally just doing some trial and error.

Code:
// Interact() then

var window = RaptureAtkUnitManager.GetWindowByName("MasterPieceSupply");

window.SendAction(3,3,2,9,0,0,0); // carpenter
 
For the thunderbolt eels....i tried fishing some manually..and i feel like I could make 1 more additional change to support the proper technique... hookset="None" and then moochHookset="PowerfulHookset" . I think I have only found it useful on a few occasions.

Especially if you are burning cordials to put up patience, the catch rate is actually at least 25-30% higher using stonefly nymph from my experience. But even the Bladed Steel Jig catches them at a similar rate to the Brute Leech.

Best scenario in my opinion.

Bait: Stonefly Nymph
Weather: Clear Skies, Fair Skies, Thunder (unless you want pipira pira, then you can go during whatever weather).
6-9pm: Caiman, collect all and reduce
9pm-3am: Eels, collect and turn in.
 
Am I missing a plugin or do I have a file in the improper place? Where does the FlightPathTo.cs file go? Aside from that I get this error when I try to load the thunderbolt eel xml posted on the last page

Code:
[13:35:58.757 N] Failed to load profile: Element NPCRepair is not supported. Please check your XML and try again. (<NPCRepair NpcId="1012094" XYZ="81.17978, 207.0322, 2.168118" />) Line 20
[13:35:58.760 D] System.Exception: Element NPCRepair is not supported. Please check your XML and try again. (<NPCRepair NpcId="1012094" XYZ="81.17978, 207.0322, 2.168118" />) Line 20
   at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object )
   at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element)
   at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object )
   at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element)
   at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object )
   at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element)
   at Clio.XmlEngine.PropertyProcessor.(XElement , Type )
   at Clio.XmlEngine.PropertyProcessor..(XElement )
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Clio.XmlEngine.PropertyProcessor.(XElement , PropertyInfo )
   at Clio.XmlEngine.PropertyProcessor.(PropertyInfo , XElement , Object )
   at Clio.XmlEngine.XmlEngine.Load(Object obj, XElement element)
   at ff14bot.NeoProfiles.NeoProfile.Load(XElement element, String path)
   at ff14bot.NeoProfiles.NeoProfile.Load(String path)
   at ff14bot.NeoProfiles.NeoProfileManager.Load(String profilePath, Boolean rememberPath)
 
The attached code is a modification I made to ExMatt's Fish.cs (an older version than current) to fix some issues I was having with it, add some features, and rearrange the code a bit because I am anal. If ExMatt desires, he is welcome to pillage any part of it for his use. The added features are:

Food="<food name>" - will use specified food at the appropriate time while fishing. The default is no setting, so no food will be used.
UseCordial="<true/false>" - will automatically use any hi-cordial/cordial you have in your bag whenever your GP is below the UseCordialMinGPPercent threshold. It will first attempt to use Hi-Cordials, then Coridals. The default is false.
UseCordialMinGPPercent="<0-100> - The threshold (percentage of your characters max available GP) below which cordial will be cast. The default is 50.

A quirk of the coridal functionality is, if you set the threshold too high, the bot will wind up waiting for cordial to become available. This is because BagSlot.CanUse for a cordial is always false while the bot is fishing, so when the conditions are right for cordial to be used, the code must force the bot into an idle state before it can actually use the item. If the cordial is not actually ready because it is on cooldown, the bot will not proceed until the cooldown period expires. I could find no way to determine if an item is on cooldown (something like Item.IsReady or Item.CooldownTimeRemaining), so if someone knows how to determine this, please let me know.

I have also included several tags. One of them is a modification of the FlightToPath tag that fixes the problem where it only works during the first iteration of a <While> tag. The other is a modification to NPCRepairTag, mainly because I just wanted to clean it up a bit for my purposes. Did I mention that I am anal? FYI, this repair tag will only work with NPCs that only offer repair capability (i.e., not the Mender and Merchant NPCs.) The final one, TurnInCollectibles, is my own - it attempts to automatically hand in specified collectables to the Collectable Appraiser. Because the Collectable Appraiser window is not available yet in RemoteWindows, the tag uses keystrokes to interact with the window, so you have to tell it the tag how to interact with the window. The keystrokes used are not configurable - it assumes you can use the default keypad keys it needs. The elements are:

NpcId="<NpcId> - of the Collectable Appraiser you want to use
XYZ="<x>,<y>,<z>" - coordinate of where you want the toon to stand near the Collectable Appraiser
Collectable="<collectable name>"
AppraiserWindowLineNumber="<line number>" - the line number in the Collectable Appraiser window that corresponds to the Collectable you specified

This tag will turn in EVERY specified Collectable you have until either 1) you run out of them or 2) you exceed your turn in quota for the collectable. It has been working fine for me, but use it at your own risk - don't come whining to me if it somehow destroys your collectables :)

Finally, the two attached fishing profiles will continuously farm Thunderbolt Eels or Tiny Axolotls at the appropriate time and locations. It assumes you have all the necessary Aetherytes and are a level 60 fisher. During the period when the collectable fish is not available, it will farm Illuminati Perch. During each loop of the collection cycle, the bot will run the toon through Idllyshire to automatically repair and turn in the target collectables. You will need to specify what bait/food you want to use, and whether or not you want to burn cordials or mooch. I find that Goblin Jig is best for Illuminati Perch (albeit a bit expensive, as the jigs will get lost at varying rates), and Brute Leech is best for the collectable fish (so you will need to manually burn your blue scrip as necessary to acquire them). You will also need to deal with turning the blue/red scrip into whatever you want. The only problem I have with these profiles is the Navigation System sometimes hangs (this is a known problem that Mastahg claims will be fixed when he rewrites the Navigation code.) When this happens, just use the movement keys to nudge the bot forward, and it will take off again.

Oh, and I just noticed the attached Thunderbolt Eel profile has disabled collecting them and is currently using the Goblin Jig bait for the eels - you will definitely want to change this (e.g, set bait to "Brute Leech", collect to "true", and useCordial to "true".) This is because at the time I posted this, I was at my red scrip quota, so I did not want it stockpiling the collectables in my inventory.

One final note: if you use Chanko and/or Agil, you will want to disable these, as they will conflict with the repairing and food eating features built into this code.

Enjoy :)


Thanks for everything. I'm giving the Thunderbolt Eel a try and the only problem is that it won't eat Dhalmel Gratin for some reason. I replaced it in the profile and I have 99 HQ ones in my bag, but it just won't use them. I'm using ExMatt's fish.cs file though, since it works like a champ and I'm hesitant to change it. Not sure if that would make a difference?
 
Thanks for everything. I'm giving the Thunderbolt Eel a try and the only problem is that it won't eat Dhalmel Gratin for some reason. I replaced it in the profile and I have 99 HQ ones in my bag, but it just won't use them. I'm using ExMatt's fish.cs file though, since it works like a champ and I'm hesitant to change it. Not sure if that would make a difference?

I have editted my original post to make using my modifications a bit more straightforward (hopefully). Sorry for the confusion that, in retrospect, I am not surprised my original post caused.

I did not intend to hijack ExMatt's thread here as I have clearly done, so I apologize to him for thoughtlessly doing so. I am hopeful that he might incorporate my enhancements into his offering. I have deleted my original post and moved it to it's own thread (https://www.thebuddyforum.com/rebor...938-modification-exmatts-fishing-profile.html), so please ask questions there in the future
 
Last edited:
I have editted my original post to make using my modifications a bit more straightforward (hopefully). Sorry for the confusion that, in retrospect, I am not surprised my original post caused.

I did not intend to hijack ExMatt's thread here as I have clearly done, so I apologize to him for thoughtlessly doing so. I am hopeful that he might incorporate my enhancements into his offering. I have deleted my original post and moved it to it's own thread (https://www.thebuddyforum.com/rebor...938-modification-exmatts-fishing-profile.html), so please ask questions there in the future


I will gladly add in your enhancements, I was also going to be adding cordials (food was iffy since gourmetguy is relatively popular, but i guess having a profile that has specific food is ok for fishing, since you would prefer gatheirng or gp to min/btn which probably prefers gp/perception. Idk if gourmetguy has an offering to specify a food per job or just a single food, so i will look into that.
 
I was using a version of Chanko that I modified for food consumption, but it did not always play well with the fishing cycle, since you cannot consume food while fishing (i.e, you have to "quit" to do so.) That is why I added it in directly into the fishing code (which does force "quit" to occur when it makes sense so food can be consumed), but no idea if Gourmet Guy would experience the same issues.
 
I was using a version of Chanko that I modified for food consumption, but it did not always play well with the fishing cycle, since you cannot consume food while fishing (i.e, you have to "quit" to do so.) That is why I added it in directly into the fishing code (which does force "quit" to occur when it makes sense so food can be consumed), but no idea if Gourmet Guy would experience the same issues.

GourmetGuy (afaik, i have seen a code chunk) will quit fishing for you, but might do it during patience.
 
Sorry to clutter this up, but when I start the bot (in addition to what I posted prior) I'm getting this error, I'm assuming this is why the xml's are not working for me that use them, but I get this:

Code:
[20:53:03.954 D] Reloading AssemblyLoader<ff14bot.Interfaces.IBotPlugin> - Initializing
[20:53:05.022 N] Compiler Error: d:\Program Files\Reborn Buddy\Plugins\OrderBotTags\Fish\FlightPathTo.cs(23,18) : error CS0101: The namespace 'ff14bot.NeoProfiles' already contains a definition for 'FlightPathTo'
[20:53:05.022 N] Compiler Error: d:\Program Files\Reborn Buddy\Plugins\OrderBotTags\Fish\NPCRepairTag.cs(16,18) : error CS0101: The namespace 'ff14bot.NeoProfiles' already contains a definition for 'NPCRepairTag'
[20:53:05.022 N] Compiler Error: d:\Program Files\Reborn Buddy\Plugins\OrderBotTags\Fish\TurnInCollectable.cs(32,18) : error CS0101: The namespace 'ff14bot.NeoProfiles' already contains a definition for 'TurnInCollectableTag'
[20:53:05.022 N] Compiler Error: d:\Program Files\Reborn Buddy\Plugins\OrderBotTags\Imported\FlightPathTo.cs(20,18) : error CS0101: The namespace 'ff14bot.NeoProfiles' already contains a definition for 'FlightPathTo'

Do NPCRepairTag.cs/TurnInCollectable.cs and the FlightPathTo.cs belong in the imported folder?
 
Last edited:
Please see post #35 above. I am not sure why TurnInCollectable would be giving you that message, because AFAIK it should be unique, as I created it.
For sure, you cannot have the two FlightPathTo tag definitions in the Plugins directory tree. I believe the loader searches the entire hierarchy looking for stuff to load. If you go to the new thread I identified in #35, try following the "how to use" instructions, and see if you get a better result.
 
Back
Top