-
Posts
332 -
Joined
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Everything posted by Apexx
-
Hey everyone, I am in need of some big brained math experts to possibly help me translate some information to a C# method. I have here some bits and pieces of the Ovale Spell Priority addon, and I like the idea that used for the Shadow Priest's DoTs to check if the target will die in a certain time?: TargetDeadIn(more 6) Looking into the Lua files, I find the function inside Condition.lua: TargetDeadIn = function(condition) local deadAt = getTargetDead() if condition[1] == "more" then return 0, addTime(deadAt, -condition[2]) else return addTime(deadAt, -condition[2]), nil end end, as well as local function getTargetDead() local second = math.floor(Ovale.maintenant) if targetGUID~=UnitGUID("target") then lastSaved = nil targetGUID = UnitGUID("target") savedHealth = {} end local newHealth = UnitHealth("target") if UnitHealthMax("target")==1 then return Ovale.maintenant + 10000 end if second~=lastSaved and targetGUID then lastSaved = second local mod10 = second % 10 local prevHealth = savedHealth[mod10] savedHealth[mod10] = newHealth if prevHealth and prevHealth>newHealth then lastSPD = 10/(prevHealth-newHealth) -- print("dps = " .. (1/lastSPD)) end end -- Rough estimation return Ovale.maintenant + newHealth * lastSPD end If you have any input, I would love to see what you have to say, and thanks for reading!
-
[Free] Project Wholesome - WOTLK Fightclasses (all 10 included)
Apexx commented on Talamin's file in Fight Classes - Wotlk
I tried the Holy Priest, and I have to say, nice job. I would highly HIGHLY recommend checking Traceline for your cast method (the spam when out of line of sight is quite obnoxious!: private static async Task UseCombatSpell(Spell spell, bool stopMovement) { if (!Conditions.InGameAndConnectedAndAliveAndProductStarted) return; try { if (ObjectManager.Me.IsMounted) return; while (spell.Name == targetImmuneToSpellName) { Extensions.LogDebug($"[Immune] Skip casting {spell.Name} - Target is immune."); return; } if (!ObjectManager.Target.IsAttackable) return; if (SpellManager.GlobalCooldownTimeLeft() > 0) return; if (Target.IsDead) return; if (TraceLine.TraceLineGo(Target.Position) || !Player.IsFacing(Target.Position, Pi)) return; if (!spell.KnownSpell || !spell.IsSpellUsable || !spell.IsDistanceGood) return; if (Extensions.PlayerIsResting() || Player.Confused || Player.Influenced || Player.IsStunned || Player.Pacified || Player.Possessed || Player.Silenced) return; if (stopMovement && Player.GetMove) MovementManager.StopMove(); SpellManager.CastSpellByNameLUA(spell.Name); Extensions.LogFight(spell.Name, true); await Task.Delay(10); } catch (Exception ex) { Extensions.LogWrite($"CombatController.UseCombatSpell() Exception error. {ex.Message}", true); } } Also, I have Buffing options disabled, but it still likes to cast the standard Power Word: Fortitude, Divine Spirit, Shadow Protection, then it uses my devout candles to buff Prayers? Why not just buff Prayer and skip wasting mana on basic buffs? Why is it still buffing, when the option to do so is disabled? One more thing, is there a setting to reduce the Flash of Light usage a bit? Anyways, keep up the good work! -
I brought the idea up to @Droidz as well to possibly implement a way to customize key binds to change from one WRobot module to another. IE: If I hit Shift+Alt+F to start Fishing Bot. Or maybe Shift+Alt+R to run WRotation bot. It would save a ton of time having to Alt+Tab every time I wanted to make minor changes based on my current needs in-game.
-
Here's what I use to check attackers in range: public static int GetAttackerCountInRange(float yards) { int EnemyCountInRange = ObjectManager.GetUnitAttackPlayer().Count(t => t.IsAlive && t.IsValid && t.IsAttackable && t.InCombat && t.GetDistance <= yards); if (EnemyCountInRange > 0) { Logging.WriteDebug($"Enemy attacking count = {EnemyCountInRange}"); return EnemyCountInRange; } return 0; }
-
I have played Warmane on and off for a long time now and was never caught.. I cannot speak for other people's experiences though.
-
Hey, I have a few recommendations if you like Wrath 3.3.5... Warmane - Icecrown (Very packed server with long queue times to login) - Warmane - Lordaeron Wow-mania
-
This has been long awaited for! Thank you everyone for your dedicated work towards the project!
-
Happy new year @Droidz! Thank you!
-
Detect Target Immunities (ie: Immune to Diseases)
Apexx replied to Apexx's topic in Developers assistance
Perfect! Thank you very much, I will try this out soon. -
I was surfing the forums, and Google for about 20 minutes looking for anything to help me figure this out. I am writing a fight class using C#, and Lua. For the first time I ran into a problem where the combatants I was fighting with were immune to my "Devouring Plague" and was left wasting mana, because each mob was immune to diseases. Is there anything to catch such a thing? Thank you! Edit* Mob entity: https://wotlkdb.com/?npc=32400 There's no real information regarding immunizes.
-
Fighting with mob, attacked by player, bot keep going on mob
Apexx replied to Artek's topic in General assistance
Not at the moment, but this might be a plugin feature in the near future....... -
In Settings -> Advanced Settings -> Other tab, make sure to match your in game latency. This may or may not help. If that doesn't fix it, it sounds like an issue inside the selected Fight Classes.
-
But.. if anyone needed code for this: Boolean method: internal static bool PlayerKnowShadowWeaving() { return Lua.LuaDoString<bool>(@" local numTabs = GetNumTalentTabs(); for t=1, numTabs do local numTalents = GetNumTalents(t); for i = 1, numTalents do nameTalent, _, _, _, currRank, _ = GetTalentInfo(t, i); if nameTalent == 'Shadow Weaving' and currRank > 0 then return true; end end end" ); } Usage: // Shadow Word: Pain- Only if player knows Shadow Weaving and has 5 stacks if (PlayerKnowShadowWeaving() && ObjectManager.Me.BuffStack(15258) >= 5 && !ObjectManager.Target.HaveBuff(SpellController.shadowWordPain.Ids)) { Logging.WriteDebug($"Shadow Weaving buff stack = {Player.BuffStack(SpellController.shadowWeaving.Ids)}"); // Launch Shadow Word: Pain }
-
Glad you were able to figure it out. Would you mind editing the post title to, "[Solved] title here". It helps a lot for people searching for similar issues and shows, "Solved". Thanks!
-
[Beta][Raven] Selector - Quest Rewards, Many other functions!
Apexx commented on TheSmokie's file in Plugins - Wotlk
-
Try again after adjusting the following General Settings -> Enter advanced settings... -> Vendor (Selling or Buying) -> Min free bag slots
-
How to detect that a quest item is nearby?
Apexx replied to RedPia's topic in Fight Classes assistance
I am not quite sure if WRobot is able to distinguish between quest objects from any other game object that is interactable. You may need to make a list, or dictionary with quest id, and quest item id.. but you can just compare the nodeNearMe by the name of the object, aka Quest item. var nodeNearMe = ObjectManager.GetObjectWoWGameObject().Where(t => t != null && t.CanOpen).OrderBy(u => ObjectManager.Me.Position.DistanceTo(u.Position)).FirstOrDefault(); if (nodeNearMe != null && nodeNearMe.Name == "Quest Item Name Here" && ObjectManager.Me.Position.DistanceTo(nodeNearMe.Position) <= 8) { // break bear for the nodes if (!ObjectManager.Me.InCombatFlagOnly && ObjectManager.Me.HaveBuff("Bear Form")) { Lua.LuaDoString("CastSpellByName(\"Bear Form\",1)"); Thread.Sleep(400); } } -
I stumbled across a website the other day, while looking for an alternative to Rocketr to process payments, and validate plugins, fight classes, etc. when I found, cryptlex (Powerful software licensing API). Quick Start Using LexActivator with C# After working with the code a bit, I wanted to share a demo project, along with a demo product online, as well as license keys if anyone would like to test it out for themselves. This project may have bugs and may not work 100%. I am hoping if other programmers check out the code they can offer ideas, comments, and even constructive criticism using this method. There is a "WRobot" directory in the attached zip file that stores the files required to run the LexActivator C# wrapper as well as the plugin and the product.dat file. Extract the files into their appropriate directory. VirusTotal CryptlexAuthenticator.zip
-
[Free] Project Wholesome - WOTLK Fightclasses (all 10 included)
Apexx commented on Talamin's file in Fight Classes - Wotlk
Shadow Priest FC: First time trying it -- [F] 22:04:47 - [RTF] Casting Vampiric Embrace (Vampiric Embrace on Iron Sentinel with guid 17379391465070812334 [F] 22:04:48 - [RTF] Casting Vampiric Embrace (Vampiric Embrace on Iron Sentinel with guid 17379391465070812334 [F] 22:04:50 - [RTF] Casting Vampiric Embrace (Vampiric Embrace on Iron Sentinel with guid 17379391465070812334 [F] 22:04:51 - [RTF] Casting Devouring Plague (Devouring Plague on Iron Sentinel with guid 17379391465070812334 [F] 22:04:53 - [RTF] Casting Vampiric Embrace (Vampiric Embrace on Iron Sentinel with guid 17379391465070812334 Vampiric Embrace