Jump to content

reapler

Elite user
  • Posts

    288
  • Joined

  • Last visited

Everything posted by reapler

  1. It should now support also other versions. But everything above wotlk is downgraded, since the needed information / knowledge isn't available for me. This means it still smooths the paths but keyboard moving and strafe will not work on these.
  2. Thank you for your feedback, the second version had no check but i'm going to find offsets and hopefully make it available. The algorithm is currently specified to work with these min/max'ed settings, it may be possible in the future to improve it on sharp edges.
  3. Oh how awkward, i'm gonna update this if i've got time ;) some things have been changed and is going terribly wrong on 'different' API
  4. It would work partially. Since the face function itself is for 3.3.5a the click to move part would work fine if "Use keyboard moving" is disabled but i'm gonna finishing this first and release for other versions (1.12.1 / 2.4.3) if i've got time.
  5. I think there's nothing much to help, but thanks anyway.
  6. Probably yes, with traceline it should be doable but this will take time ;) if you get stuck somewhere you may send a picture with map and obstacle via pm.
  7. Yes, i think i can fix this, maybe i need to write a custom behavior for this in the worst case.
  8. Thank you for your feedback, i may resolve the unstuck problem soon, since canceling click to move in event blocking also the unstuck behavior.
  9. Version 18.2.6.40273

    3177 downloads

    SmoothMove To This plugin offers smoothed paths with manual key input in order to achieve a natural movement with strafe and facing like from a player. Settings can be changed via a simple gui Note: - keyboard moving / strafing is not available for flying - fully supported versions with keyboard moving and strafing are available on 1.12.1, 2.4.3, 3.3.5a, above it supports only smoothed paths - this plugin may not work correctly with custom fightclasses or plugins with movement affecting behavior - side project, new versions / fixes may to be delayed Feedback, suggestions or problems? Please leave your feedback here. Would you like to report a bug? At first please disable all other plugins & use not a custom fightclass. If you can still reproduce the bug, a detailed list of steps and a log would be helpful. If you notice it's a bug with another plugin or fightclass you may also describe the problem here(not guaranteed it can be fixed). Project is currently discontinued Source: SmoothMove.rar Someone has been already found to continue the project in the future. New updates will be noticed here.
  10. Yes, you can. For example: //3.3.5a 12340 public void MoveForwardStart() { wManager.Wow.Memory.WowMemory.InjectAndExecute( new [] { //more parameters can be appended by the wrapper wManager.Wow.Memory.WowMemory.CallWrapperCode( (uint)wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x1FC200), wManager.Wow.Memory.WowMemory.RetnToHookCode, }, true ); }
  11. Yes, in vanilla you need to change the target guid, since the api only allows target or local player as argument. It looks like this: public void CastSpell(string spellName, WoWObject obj) { if (!obj.IsValid) return; ulong tmp = wManager.Wow.Memory.WowMemory.Memory.ReadUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2D8); wManager.Wow.Memory.WowMemory.Memory.WriteUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2D8, obj.Guid); Lua.LuaDoString("CastSpellByName('"+spellName+"');"); wManager.Wow.Memory.WowMemory.Memory.WriteUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2D8, tmp); } Someone may think why not using objectmanager's target property from local player, the reason is the setter has some additional code for actually change the target and some other features.
  12. It's also possible to do this on vanilla, but with mouseover guid: public void Target(ulong guid) { if (guid == 0) return; ulong tmp = wManager.Wow.Memory.WowMemory.Memory.ReadUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2C8); wManager.Wow.Memory.WowMemory.Memory.WriteUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2C8, guid); wManager.Wow.Helpers.Lua.LuaDoString("TargetUnit('mouseover');"); wManager.Wow.Memory.WowMemory.Memory.WriteUInt64( (uint) wManager.Wow.Memory.WowMemory.Memory.MainModuleAddress + 0x74E2C8, tmp); }
  13. This should gonna do its work: public void Target(ulong guid) { wManager.Wow.Helpers.Lua.RunMacroText("/target "+wManager.Wow.ObjectManager.ObjectManager.GetObjectByGuid(guid)?.Name+""); } Edit: i reconsider my answer, this may not be a ideal solution. If you gonna look at the interact function in WRobot, you'll notice it's a direct function call via asm. So another solution would be to overwrite the guid from the local player's focus and target it via lua: public void Target(WoWObject obj) { var tmp = ObjectManager.Me.FocusGuid; ObjectManager.Me.FocusGuid = obj.Guid; Lua.RunMacroText("/target focus"); ObjectManager.Me.FocusGuid = tmp; } public void Target(ulong guid) { var tmp = ObjectManager.Me.FocusGuid; ObjectManager.Me.FocusGuid = guid; Lua.RunMacroText("/target focus"); ObjectManager.Me.FocusGuid = tmp; } Usage: var firstOrDefault = ObjectManager.GetObjectWoWUnit().OrderBy(i => i.GetDistance).FirstOrDefault(); if (firstOrDefault != null) Target(firstOrDefault.Guid);
  14. Hello, you may take a look into: https://wrobot.eu/files/file/1352-apexx-protection-warrior-wotlk-335a-levels-1-52/
  15. Hello, @Shiinu i investigated the problem, it was caused by WRobot's RDManager. I'll will forward this bug to the bugtracker(https://wrobot.eu/bugtracker/pathfinderpatherfindz-nullreferenceexception-r901/). As soon it will be fixed, GoToClick will continue working.
  16. Hello, this exception occured on calling "wManager.Wow.Helpers.PathFinder.Pather.FindZ();" method.
  17. Hello, if someone is familiar with its programming language, this person can also write up such a detection. They may have an excellent serverside detection, recording paths of players and process the data aswell logging playtime per day, multiple accounts on the same ip address, trades, mails and everything you could think of that can be useful to detect, can trigger a notification if the action is uncommon. However it should be considered also players can just report you as a bot(most of the time it is obvious).
  18. A small template, also creates an instance on null. Saving manually with "sRogueSettings.CurrentSetting.Save();" public class SRogueSettings : robotManager.Helpful.Settings { public bool UseBuffFood { get; set; } public string BuffFoodName { get; set; } //... public static SRogueSettings CurrentSetting { get { if (_currentSetting == null && !_cannotLoad) Load(); return _currentSetting; } set { _currentSetting = value; } } private static bool _cannotLoad; private static SRogueSettings _currentSetting; public bool Save() { try { _cannotLoad = !Save(AdviserFilePathAndName("SRogue", ObjectManager.Me.Name + "." + Usefuls.RealmName)); return !_cannotLoad; } catch (Exception e) { Logging.WriteError(e.ToString()); _cannotLoad = true; return false; } } public static bool Load() { try { if (File.Exists(AdviserFilePathAndName("SRogue", ObjectManager.Me.Name + "." + Usefuls.RealmName))) { CurrentSetting = Load<SRogueSettings>(AdviserFilePathAndName("SRogue", ObjectManager.Me.Name + "." + Usefuls.RealmName)); return true; } _cannotLoad = true; CurrentSetting = new SRogueSettings { UseBuffFood = true, BuffFoodName = "", }; } catch (Exception e) { Logging.WriteError(e.ToString()); } return false; } }
  19. You may check first whether "sRogueSettings.CurrentSetting" is null: private void FoodManager() { try { if (sRogueSettings.CurrentSetting == null) robotManager.Helpful.Logging.Write("CurrentSetting is null"); else robotManager.Helpful.Logging.Write("CurrentSetting is not null"); } catch (Exception e) { robotManager.Helpful.Logging.WriteError(e.ToString()); } } You get probably "CurrentSetting is null" ;) So in this case this means you haven't initialized "CurrentSetting" = no instance to your object is given = "CurrentSetting" is null, hence you cannot accessing its properties. In the end you need to call "sRogueSettings.Load();" to create an instance. However If it's not the case, you may check for other variables against null.
  20. Hello, if something crashes and it's not a stack overflow (recursive call) you may wrap your code in a try-catch statement: private void FoodManager() { try { if (sRogueSettings.CurrentSetting.UseBuffFood && sRogueSettings.CurrentSetting.BuffFoodName != null && sRogueSettings.CurrentSetting.BuffFoodBuffName != null) { uint foodID = wManager.Wow.Helpers.ItemsManager.GetIdByName(sRogueSettings.CurrentSetting.BuffFoodName); if (!ObjectManager.Me.HaveBuff(sRogueSettings.CurrentSetting.BuffFoodBuffName) && ItemsManager.HasItemById(foodID) && wManagerSetting.CurrentSetting.FoodName != sRogueSettings.CurrentSetting.BuffFoodName) { wManagerSetting.CurrentSetting.FoodName = sRogueSettings.CurrentSetting.BuffFoodName; } else if (ObjectManager.Me.HaveBuff(sRogueSettings.CurrentSetting.BuffFoodBuffName) && wManagerSetting.CurrentSetting.FoodName != originalFoodSetting) { wManagerSetting.CurrentSetting.FoodName = originalFoodSetting; } } } catch (Exception e) { robotManager.Helpful.Logging.WriteError(e.ToString()); } } I think you have probably a null reference exception on your settings, so you would check for "sRogueSettings.CurrentSetting" whether it is null at first. And "sRogueSettings.CurrentSetting.BuffFoodName != null" is not necessary on a string, since checking against null will result always in false.
  21. Hello @happiness7 this should fit: //minimum net framework 4.5 Task.Run(() => { Products.InPause = true; Thread.Sleep(6000); Products.InPause = false; }); If you also want to block plugin thread, just remove "Task.Run"
  22. Hello @Weicheng, adding the references to your visual studio project shouldn't make any problems in the end. The compiled libary can be put in the desired folder and can be run as long the referenced libraries are in "\WRobot\Bin\" or in the same folder with its executing library but this doesn't count for net framework related libraries. So, yes under normal conditions you can distribute your library and they're good to go.
  23. Hello, you may decompile my fightclass: https://wrobot.eu/files/file/1211-holy-paladin-the-holy-grail/ it uses a generic method to retrieve the allied players, but i think this should fit very well for the most situations.
×
×
  • Create New...