-
Posts
288 -
Joined
-
Last visited
Content Type
Forums
Articles
Bug Tracker
Downloads
Store
Everything posted by reapler
-
Crash: System.OutOfMemoryException
reapler replied to johanruda's topic in WRobot for Wow Vanilla - Help and support
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 -
Version 18.2.6.40273
3298 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. -
Left click unit
reapler replied to Skygirl779's topic in WRobot for Wow The Burning Crusade - Help and support
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 ); } -
Left click unit
reapler replied to Skygirl779's topic in WRobot for Wow The Burning Crusade - Help and support
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. -
Left click unit
reapler replied to Skygirl779's topic in WRobot for Wow The Burning Crusade - Help and support
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); } -
Left click unit
reapler replied to Skygirl779's topic in WRobot for Wow The Burning Crusade - Help and support
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); -
ObjectManager.GetWoWUnitHostile() in c# Fight class
reapler replied to eeny's topic in Fight Classes assistance
Hello, you may take a look into: https://wrobot.eu/files/file/1352-apexx-protection-warrior-wotlk-335a-levels-1-52/ -
PathFinder.Pather.FindZ(); NullReferenceException
reapler commented on reapler's bug report in Bug Tracker
*Happens on 3.3.5a -
-
Hello, this exception occured on calling "wManager.Wow.Helpers.PathFinder.Pather.FindZ();" method.
-
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).
-
Why does this code crash WRobot?
reapler replied to Seminko's topic in WRobot for Wow Vanilla - Help and support
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; } } -
Why does this code crash WRobot?
reapler replied to Seminko's topic in WRobot for Wow Vanilla - Help and support
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. -
Why does this code crash WRobot?
reapler replied to Seminko's topic in WRobot for Wow Vanilla - Help and support
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. -
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"
-
How to add wrobot dll as relative reference to my project
reapler replied to Weicheng's topic in Developers assistance
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. -
It's a .dll file.
-
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.