Jump to content

Matenia

Elite user
  • Posts

    2226
  • Joined

  • Last visited

Posts posted by Matenia

  1. Why are you using @ in a non-multi-line string?
    This isn't a problem with LuaDoString.

     

    //next time take a look at your ingame Lua errors and you'll see what's actually appearing in the game and why it's a problem
    var name = "qq";
    var subject = 123;
    var text = "1\n2\n3\n4\n5\n6";
    Lua.LuaDoString("SendMail(\"" + name + "\", \"" + subject + "\", \"" + text + "\")"); // don't use  @ in combination with \n otherwise at least double escape \n as \\n
    // also, don't mix ' with ", you're bound to run into issues with names containing ' eventually

     



  2.  

    PathFinder.OffMeshConnections.Add(new PathFinder.OffMeshConnection(new List<Vector3>
    			                                  {
    				                                  new Vector3(-861.2993, -3758.589, 19.47886, "None"),
    				                                  new Vector3(-849.3063, -3742.703, 22.49161, "None"),
    				                                  new Vector3(-842.8103, -3734.129, 19.89155, "None"),
    				                                  new Vector3(-849.7686, -3735.616, 19.88754, "None"),
    				                                  new Vector3(-848.3646, -3731.851, 21.27056, "None"),
    				                                  new Vector3(-843.2056, -3727.342, 25.23064, "None"),
    				                                  new Vector3(-839.3514, -3726.285, 26.32008, "None")
    			                                  }, (int) ContinentId.Kalimdor)
    			                                  {
    				                                  Type = PathFinder.OffMeshConnectionType.Bidirectional,
    				                                  Name = "Ratchet - Gazlowe",
    				                                  TryToUseEvenIfCanFindPathSuccess = true
    			                                  });
    
    			PathFinder.OffMeshConnections.Add(new PathFinder.OffMeshConnection(new List<Vector3>
    			                                  {
    				                                  new Vector3(1155.042, 182.7223, 3.134686, "None"),
    				                                  new Vector3(1157.968, 184.0907, 5.895848, "None"),
    				                                  new Vector3(1157.852, 185.0874, 6.79552, "None"),
    				                                  new Vector3(1169.146, 188.5145, 17.70432, "None"),
    				                                  new Vector3(1176.177, 183.1431, 21.6543, "None"),
    				                                  new Vector3(1174.764, 180.1774, 21.44643, "None"),
    				                                  new Vector3(1170.609, 182.9803, 23.67873, "None"),
    				                                  new Vector3(1167.625, 185.7788, 27.12425, "None"),
    				                                  new Vector3(1165.26, 188.2767, 28.77732, "None"),
    				                                  new Vector3(1161.465, 183.8654, 29.03481, "None"),
    				                                  new Vector3(1164.393, 176.3627, 31.69842, "None")
    			                                  }, (int) ContinentId.Kalimdor)
    			                                  {
    				                                  Type = PathFinder.OffMeshConnectionType.Bidirectional,
    				                                  Name = "Stonetalon - Big machine",
    				                                  TryToUseEvenIfCanFindPathSuccess = true
    			                                  });
    			
    			PathFinder.OffMeshConnections.Add(new PathFinder.OffMeshConnection(new List<Vector3>
    			                                  {
    				                                  new Vector3(-9009.081, 851.679, 105.893, "None"),
    				                                  new Vector3(-9017.271, 864.8356, 109.8218, "None"),
    				                                  new Vector3(-9014.967, 882.9603, 112.9219, "None"),
    				                                  new Vector3(-8999.138, 890.7767, 115.9936, "None"),
    				                                  new Vector3(-8982.68, 880.2233, 119.937, "None"), 
    				                                  new Vector3(-8982.612, 866.5609, 123.3268, "None"),
    				                                  new Vector3(-8992.165, 860.2961, 126.6532, "None"),
    				                                  new Vector3(-9001.312, 864.4201, 129.772, "None"),
    				                                  new Vector3(-9013.052, 873.2303, 132.0581, "None"),
    				                                  new Vector3(-9007.667, 877.3668, 135.9138, "None"),
    				                                  new Vector3(-9003.198, 874.1686, 139.3298, "None"),
    				                                  new Vector3(-9004.052, 868.6579, 142.6572, "None"),
    				                                  new Vector3(-9009.047, 867.0392, 145.7849, "None"),
    				                                  new Vector3(-9013.107, 871.0745, 148.6166, "None"),
    				                                  new Vector3(-9016.262, 884.7032, 29.6207, "None")
    			                                  }, (int) ContinentId.Azeroth)
    			                                  {
    				                                  Type = PathFinder.OffMeshConnectionType.Bidirectional,
    				                                  Name = "SW Mage Tower",
    				                                  TryToUseEvenIfCanFindPathSuccess = true
    			                                  });

     

  3. That's not how pathing works. If you want a forced path, either use follow path in quester or add a forced off mesh. 

     

    It makes no sense to add a path where there isn't one because people take a shortcut. You're breaking the system that way

  4. InCombat in Fightclass editor is equal to Fight.InFight (I believe) you'll need to check C# code in your condition: 

    ObjectManager.Me.InCombatWithFlagOnly
    ObjectManager.Me.InCombatFlagOnly
    
    // one of the two, I forgot which one is correct

    Conditions in the fightclass editor are all combined with an and operator. Different spells are combined with or operator. So your explanation doesn't make much sense. I suggest you take a look at MarsBar's tutorial on how to do it in C#, it makes it more readibly. faster and gives more options.

  5. I was referring to this only, when I asked you to share your solution. It's not clear at all that you used wRotation on the party healer follower to achieve this:
     

    Quote

    Figured out a way to make my party toons follow me as if I am a multiboxer and completely focus on healing.

    And in regards to CTM, like I said, that is not how it works. CTM internally isn't the same CTM that you use as a player. You cannot accidentally click on a unit just because there happens to be one at the coordinates, if you execute CTM from WoW's code. There are CTM types and you enter a GUID and use a different type if you want to use CTM to target/interact. 

    You can look at how the leader sends coordinates in PartyLead.cs. It always sends its own coordinates. If you have movement predicition enabled, then once wRobot triggers movement (MoveTo) it sends the coordinates it it currently running to, rather than the ones its at. Additionally, it only sends coordinates every 10 secs and only if they have changed since the last message. So it's likely that they would change even if you haven't moved. 

    If you go into FightAssist.cs, you'll find the method AssistLeader(), which makes yo start a fight with the same target as the leader. There is also AttackEnemies() which makes you start a fight with anybody attacking any party members (this is used mostly for the leader to assist followers).

    You are free to modify any of these (i.e. delete the content) and recompile the plugin in Visual Studio. That's what I upload the source code for. If that's not enough, then you don't want help, you want handouts for your specific edge case. And that's usually when people get no further "help".

    It's not just throwing code at people. I answer questions all the time. But there's no way I'm gonna sit on my ass fulfilling custom requests for free all day for people who don't really try themselves because "I've never done it before and therefore I can't". Even Smokie who has categorically refused to actually learn to code for years and only ever copy-pasted snippets he could get his hands on actually started to learn now. And if he can, then truly anybody can.

  6. They can do it, but it's highly unlikely that they do. This is essentially "big data" and adds a bunch of processing to every updating tick on the server. 
    Most servers just have a MySQL DB that's already under a lot of load. They really don't wanna add more to that in terms of analytical anti-cheat. At least not the REALLY big servers that are already maxing out on hardware.

    Edit: What's much more likely is that they have some sort of odd behavior checks or simple statistics like kills per character per day (as opposed to a bunch of redundant data). If those pass a certain threshold, they could either be flagging you for manual investigation or use the replay system Warmane and Nostalrius developed (independently iirc) for investigation at a later point.

    Edit2: Don't multibot on the same IP like an idiot though

  7. You're completely wrong. Leader always reports his own coordinates and that's not how CTM works.
    It doesn't *actually* click. And you can't accidentally click on a unit - you either send a move-type CTM or a target type, which also requires a unit guid.

    The plugin has a option to instantly help out party members by calling fight on the same target (only once combat starts). If you recompile it yourself, you can disable that easily. Source code is right there.

     

    Also you might wanna tell people what you actually did rather than keeping it to yourself. The whole point of a forum is so that someone else, at a later point, can go back and find the solution to their problem. That's the sole reason I even bother helping leechers in the first place.

  8. For what you want, you'll need to write your own product with C# and/or write your own fightclass too. Basically your fightclass needs to ignore normal wrobot behavior and just heal party members at all times if they drop low. My plugin pauses your movement once you get into minimum follow distance (or w/e it's called in the settings), so it's probably a fault setup on your part. But randomizing the distance is also way more complicated than you anticipate - especially if you want it to look natural and catch up if you run out of visible range at which point you need something similar to my plugin to communicate between bots and broadcast your world position.

  9. I don't even know what healer mode is. It probably doesn't put your fightclass in combat (i.e. Fight.InFight = true) so just execute your rotation if you have partymembers in combat or if you've used the XML editor, just make it spells be executed "out of combat" but only under certain conditions

×
×
  • Create New...