I've got both of them on some RPPVP server (at the time they were not multi-realmed yet). These things were just walking freely. Had to raise DK to be able to survive travel though. These days there are no Minfernals freely roaming recorded and let me check Whelplings... Hm, here they are: \Honorbuddy\Bots\Prosto_Pets\PetZones\22-23 NOR Icecrown (25 Hs,38 Pets) by Prostak.xml (15 hits) Line 37: <!--Seen Name="Scourged Whelpling"--> Line 38: <!--Seen Name="Scourged Whelpling"--> There are 15 of them! (but some may have been recorded twice if the bot left the zone). White lists will help not to be distracted by fighting different pets. But the behavior will be suspicious if there are other people farming. Low-pop server (low pop cross-realm, to be precise) seems a better idea.
The only thing immediately suspicious seems this one: "Arcane Storm") () => buffLeft("Arcane Storm") < 9 That will try to fire next round after application, basically making this unconditional, striking when a CD is off (which is not a bad thing by itself if the attack is strong - but you may just omit the condition in this case). If the intention was to keep Arcane Storm always on, you may check buffLeft("Arcane Storm") < 2.
Yep. Except the pets made intentionally hard to get. You will need to plan a catching campaign for these ones.
I've used some Explore achiev profiles. They were flying pretty high. And I've made an error when recording, using a toon's position instead of a pet's one. Current version uses the pet's position. I've re-collected info for EK and Kalimdor, and can probably re-record other continents too. Or you can record them yourself, using a profile referenced in Credits and a procedure described somwhere below the top post. It takes rather long time though: hours, not minutes.
>Min lvl 20 > it generated a group w/ a lvl 1, 25, and 25 It should rather stop then go below Min Level. I would like to the log, if possible.
Well, everything is possible, question is in priorities. I was thinking of using profiles to store external tactics (see item 4 in my roadmap). But it will be easier indeed to fill tactics when looking at the particular pet (which is how I do them, anyway). GUI can definitely help... But I try to think of it in background while working on the nearest things.
ok didnt understand that whitelisting how can i tell te bot only attack unborn Valkyr or sth. else. My wish is that the bot fly around and only attack the unborn......
Yeah I saw that, but for me there is no drop-down menu for me to select a level. It's fine because I am just using the Favourite feature to level a selected bunch of pets but would like to know why these options aren't showing up too
Is anyone ells having trouble with the svn link ? i keep getting Github page not found or the svn client askes for user name and password
Ok, this one compiles (I placed it in custom.cs) but it doesnt seem to be using the abilities, it just uses arcane slash (i.e. Button 1) But if I understande the tactics correctly it SHOULD only use that when enemy hp is low. It SHOULD cast arcane storm if that isn't active, and it should use Early advantage if enemys hp is lower than the whelplings own. And otherwise, just use tail swipe Or am I missing something? Edit: Actually, it does use Early advantage (Starts with that, since I am curretly fighting wild pets that is always lower in level than the whelpling, thus lower hp) and then it doesnt use anything but Arcane Slash Code: else if (petName == "Bronze Whelpling" ) custom_abilities = new List<AandC>() { new AandC( "Arcane Slash", () => hpEnemy < 0.2 ), // Slot 1 new AandC( "Arcane Storm", () => buffLeft("Arcane Storm") < 2 ), // Slot 3 new AandC( "Early Advantage", () => hpEnemy < hp ), // Slot 2 new AandC( "Tail Sweep" ), // Slot 1 new AandC( "Arcane Slash" ), // Slot 1 new AandC( "Crystal Prison" ), // Slot 2 };
Make sure you use the correct link: https://github.com/Prostak/Prosto_Pets/trunk/Prosto_Pets Right click on that and select "Copy linkadress", forum tends to truncate long url's
Why uncheck wild pets if you have use favorite pets checked? Leave that alone if your giving conditions. Not sure what pets you use but try that.
I decided to help out a bit by creating a few tactics for missing pets. I will publish them after testing, but a few questions came up: 1. Could we get a buffCount and debuffCount for our tactic design? The spell "High Fiber" of the pet "Pierre" for example removes all auras from your team and it would be ridiculous to form a huge OR statement to check for all possible auras. Should be very easy to implement since the Lua for buffs/debuffs already uses the aura count in a variable. It would just be a matter of returning that value in a new function. 2. This one is a bit more work just because someone would have to create the list: I would love to see a dictionary of positive and negative auras and then have a way to check for the count of those. If you look at my "High Fiber" example in #1 it would be great to do Code: new AandC("High Fiber", () => negativeBuffCount() > 0 && !buff("Heat Up")) And I agree with your assessment: It would probably have been better to move away from the buff/debuff naming convention. I guess something like petAuras/teamAuras/enemyAuras/enemyTeamAuras would have been better and made room for distinguishing buffs and debuffs in the correct way. I am not complaining and I would myself shy away from refactoring that... Still would be nice to have. 3. I might have found a possible Bug in MyPets.cs:227ff Code: public static bool shouldIHide() { if (debuff("Underwater") || debuff("[COLOR="#FF0000"]Undeground[/COLOR]") || debuff("Chew") || debuff("Flying")) return true; // TODO: check "Flying" debuff by id? since all flying pets have diff debuff with the same "Flying" name (id 239, speed boost while healthy) vs. Flying id 341 as a result of Lift-Off // currently we are blocking 239 inside Lua code. Probably it's ok. return false; } "Undeground" should probably be "Underground", right? 4. How about adding a condition to check for the number of living enemy pets? Could be very useful for a lot of multi-target spells. Edit: Here are the first two tactics for the Mechanical.cs: Code: if (petName == "Pierre") { // High Fiber should only be cast if a negative aura is on our team and Heat Up is not active // Should be changed, if required condition check becomes available custom_abilities = new List<AandC>() { new AandC("Stench", () => !debuff("Stench")), // Slot 2 new AandC("Food Coma", () => !debuff("Asleep")), // Slot 3 new AandC("Heat Up"), // Slot 2 new AandC("High Fiber", () => !buff("Heat Up")), // Slot 3 new AandC("Chop"), // Slot 1 new AandC("Frying Pan") // Slot 1 }; } if (petName == "Ancient Nest Guardian") { // Feathered Frenzy is a fallback spell for elemental or aquatic enemies // Entangling Roots is a fallback spell for elemental or mechanical enemies custom_abilities = new List<AandC>() { new AandC("Feathered Frenzy", () => weak("Metal Fist") || strong("Feathered Frenzy")), // Slot 3 new AandC("Extra Plating", () => !buff("Extra Plating")), // Slot 2 new AandC("Entangling Roots", () => weak("Metal Fist") || strong("Entangling Roots")), // Slot 2 new AandC("Wind-Up", () => hpEnemy > 0.5), // Slot 3 new AandC("Metal Fist"), // Slot 1 new AandC("Batter"), // Slot 1 }; }
I have taken a look into the whole "custom name vs name" issue and the fix looks incredibly easy. MyPets.cs:89 Change Code: l = Lua.GetReturnValues(" local speciesID = C_PetBattles.GetPetSpeciesID(1, " + (i + 1) + ") local level = C_PetBattles.GetLevel(1, " + (i + 1) + ") local xp, maxXP = C_PetBattles.GetXP(1, " + (i + 1) + ") local displayID = C_PetBattles.GetDisplayID(1, " + (i + 1) + ") [COLOR="#FF0000"]local name = C_PetBattles.GetName(1, " + (i + 1) + ")[/COLOR] local icon = C_PetBattles.GetIcon(1, " + (i + 1) + ") local petType = C_PetBattles.GetPetType(1, " + (i + 1) + ") local health = C_PetBattles.GetHealth(1, " + (i + 1) + ") local maxHealth = C_PetBattles.GetMaxHealth(1, " + (i + 1) + ") local power = C_PetBattles.GetPower(1, " + (i + 1) + ") local speed = C_PetBattles.GetSpeed(1, " + (i + 1) + ") local rarity = C_PetBattles.GetBreedQuality(1, " + (i + 1) + ") local petID = C_PetJournal.GetPetLoadOutInfo(" + (i + 1) + ") return speciesID, level, xp, maxXP, displayID, name, icon, petType, health, maxHealth, power, speed, rarity, petID"); into Code: l = Lua.GetReturnValues(" local speciesID = C_PetBattles.GetPetSpeciesID(1, " + (i + 1) + ") local level = C_PetBattles.GetLevel(1, " + (i + 1) + ") local xp, maxXP = C_PetBattles.GetXP(1, " + (i + 1) + ") local displayID = C_PetBattles.GetDisplayID(1, " + (i + 1) + ") [COLOR="#FF0000"]local customName, name = C_PetBattles.GetName(1, " + (i + 1) + ")[/COLOR] local icon = C_PetBattles.GetIcon(1, " + (i + 1) + ") local petType = C_PetBattles.GetPetType(1, " + (i + 1) + ") local health = C_PetBattles.GetHealth(1, " + (i + 1) + ") local maxHealth = C_PetBattles.GetMaxHealth(1, " + (i + 1) + ") local power = C_PetBattles.GetPower(1, " + (i + 1) + ") local speed = C_PetBattles.GetSpeed(1, " + (i + 1) + ") local rarity = C_PetBattles.GetBreedQuality(1, " + (i + 1) + ") local petID = C_PetJournal.GetPetLoadOutInfo(" + (i + 1) + ") return speciesID, level, xp, maxXP, displayID, name, icon, petType, health, maxHealth, power, speed, rarity, petID"); The second return value of C_PetBattles.GetName() is always the real pet name. If no custom name is set, both values return the same string so it should be fine.
this is a really good idea. Would allow starting at level 3 instead of 7 and possibly even level 1 depending on where your doing your ringer profile...