View Single Post
  #3  
Unread 10-17-2011, 06:56 AM
Digital_Utopia's Avatar
Digital_Utopia Digital_Utopia is offline
The Undying
Interface Author - Click to view interfaces
 
Join Date: Sep 2010
Posts: 207
Send a message via MSN to Digital_Utopia Send a message via Yahoo to Digital_Utopia
Quote:
Originally Posted by dhmitchell23
I may be missing things but have searched:
  1. Play simple sounds, short mp3s for alerts (like ring tones)
  2. Dynamically draw graphics w/ fills and gradients
  3. Dynamically set alpha of background (using as overlay w/ blend mode overlay)
  4. Get useful information in event args (at least MoraleChanged has nothing in its payload)
  5. GetFellowship : List<Player>
  6. Get lat/long of players
  7. Get Player quest list (preferably w/ filtering by completed, epic/racial/class, level, dateAcquired, dateCompleted...)
  8. Get vector like target tracker to any player, npc, or monster in scene (for example, to keep track of orientation to healer...)
  9. Send/receive data packet to Player (and if a plugin is running on their system, ability to receive packet). (e.g., share wish list, get inventory (voluntary), share quest list)
While I'll agree with most of these, I'm a bit confused on what you mean by #3. SetBackColor takes a Turbine.UI.Color object which always supports alpha. If anything, that, along with #5 (and to an extent, #4) are already more than possible - although one has to realize that Lua is a very general and therefore flexible scripting language in order to take full advantage of it.

For instance, want to set a background color, and blendmode easily? create a function that takes an object, a blend mode and a color (if you really want to get fancy, make it take a hex string) - and have it apply that blend mode/color to it.

Want a special event that returns more information? Use a "middle-man" function that bridges the gap between the basic event handler, and what you want it to do. Remember, there's nothing magic about event handler's - they're just ordinary functions that get called by the class when something happens.

Finally, #5 is so easy to pull off, using your own function with the Lua API that there's no reason to add it to the API in the first place. If you want a list of all the players in your fellowship, make your own function that calls GetName() on each of the fellowship members, and adds it to a table.

Don't get me wrong, the majority of your list is stuff that I'd not only like to see, but also stuff that requires Turbine to provide API support for. However, it's important to recognize the difference, and not just wait around for a "magic" function in the API to handle something that's more than possible already. Although updates to the API have been slow and inconsistent, I do have to give Turbine credit for delivering the API out of the gate with a strong foundation.

Quote:
Originally Posted by itsallhype820
- i dont think turbine would ever open the draw functions of the engine or dx draw to script .
They wouldn't have to - all they would need to do is handle the middle ground between DX and lua - the way that current elements are already done - the only difference is that instead of an actual graphic or color, it would be pixel based. The actual drawing functionality however would be nearly identical to what already handles "drawing" to the screen.

Quote:
Originally Posted by itsallhype820
- send packet just wont ever happen it opens up to many exploit possibilities,but sending a single whisper to a player to share locations would be nice ( kindof like wow has)
While traditional "packet" communication would at least make it a security risk (not exactly sure how an exploit would happen) - the plugin system already has "apartments" - so supporting a direct communication between the same plugin on different clients could certainly be a nice way to pull it off without risking any actual OS interaction. A better result however would simply be to provide support for information for all entities. That way you wouldn't even need such communication in the first place.

The trouble with allowing direct chat access to plugins (i.e. sending whispers/chat) is that it would open the door for plenty of abuse. While they certainly could put limitations on it - remember that they attempted to do the same thing with saving/loading PluginData - which is easily exploitable with the pluginManager class. While it would be nice to send macro commands, I'd draw the line at actually sending chat.

Quote:
Originally Posted by itsallhype820
- player location would be nice for the local player , but opening the door to let plugins to get location in game x,y of mobs and other players would open the door to a much easier way of botting which no mmo wants to do.
I think you, like a lot of others I've seen, are quick to use the "botting" excuse - when such information wouldn't significantly make things easier. Even if there weren't perfectly acceptable methods of pulling such things off already, there's a little issue involving impassible terrain that would make it practically useless for botting anyway. Unless you took the time to process a terrain map of the entire world, with path finding features to find the easiest way to get from point A- to point B, unless the specific map was 100% passable, getting a target and attempting to walk straight towards it would likely result in walking into a cliff, or walking off of one.

Beyond that, finding the target wouldn't even be the most complicated part of making a bot for this game. Since it uses DirectInput instead of more traditional control methods, DirectX communicates directly with the Mouse/Keyboard driver - summarily ignoring any attempts to send keycodes to it - whether it be from a custom made application, or something like AutoHotKey. In other words, in order for such a bot to even work, someone would have to create a custom keyboard driver that would allow keycodes to be passed to it, as opposed to getting them from an actual physical keyboard.

Such information would be necessary to display fellowship/player/tracked targets on the mini-map, which would be an acceptable limitation on such a function.
__________________

Lord of the Rings Online
75 Fourohfour | 75 Artemedis | 60 Whiskeytango Foxtrot | 50 Mistah Boombastic | 56 Appetizer | 25 Aggromi
61 Onepointtwentyone Gigawatts


World of Warcraft
90 Downlo 85 Gravetaxi 85 Ümad 85 Artemedis 85 Guthuros
Reply With Quote