|
Post by burner on Jun 5, 2013 9:23:13 GMT -5
Hello Everybody, I'm sure most of you know I am of the opinion that UOSteam is great, and from what I have read, it is on it's way to become better yet.
Anyways, to the point. It has come to my attention that many players are scared to work with UOSteam because it is more scripting based instead of just recording like razor. But, fear not, for I am here to assist you in learning to use UOSteam .
UOSteam has the record option, just as razor does as well, but its' editing is more script based, that is where people start to feel lost. I will provide a few sample scripts to help with the transition for players.
(EDIT: NAME CHANGE)
|
|
|
Post by burner on Jun 5, 2013 9:48:49 GMT -5
Symbols: The following symbols have an impact on how the script executes: @ : the @ symbol says to suppress any text from the command it is in front of.
// < double slash designates anything after it on that line as a comment. so if you want to leave a note for what something does, you can do //Macro to attack nearby enemies. at the top of a macro, or to explain what a command does as a reminder to help you remember and learn the commands.
! < used after a targeting statement, it says to not use the queued target, but instead to use the next target given to it. Alias: an alias is another name for a target.
If you use a command to find an object in your bag, and it finds one that matches, it is given the alias found, or if you use getenemy, or getfriend, the target it ends up with is given the alias enemy or friend. your own character has the alias of self. These are useful because they give you dynamic values to use in a macro instead of targeting a specific individual every time.
More information on the commands can also be found at: Assistuo.com or Runuo.com there is a script library and documentation explaining many of the commands and their syntax(or how they are used) Note- there seems to be an issue with connectivity to runuo at this time, Service will likely be restored in the near future.
Macro 1: Simple Attack Macro
getenemy 'murderer' 'enemy' 'criminal' 'gray' 'nearest' attack 'enemy'
or
@getenemy 'murderer' 'enemy' 'criminal' 'gray' 'nearest' @attack 'enemy'
The difference between these is that with the @ symbol added, it will not tell you in the journal the name of the target as it targets and then attacks them.
Macro1: @getenemy 'murderer' 'enemy' 'criminal' 'gray' 'nearest' @attack 'enemy'
the option exists in assistuo to loop a macro or set a hotkey even, The net effect of looping Macro1 above here would be that it will attempt to set the alias of enemy to a murderer, enemy, criminal, or gray named target, and with nearest, preferably one near you.
you can also get into more advanced things too, with the addition of pauses and other commands.
|
|
|
Post by burner on Jun 5, 2013 10:10:36 GMT -5
Pauses are very useful for chaining multiple effects into a macro to make it perform a wider variety of tasks. on the server, I use a general pause of 350 milliseconds: pause 350 between many actions. so if we take Macro1, and decide we want to also add to it casting holy light, and perhaps say using bandages on yourself, you would do:
@getenemy 'murderer' 'enemy' 'criminal' 'gray' 'nearest' @attack 'enemy' pause 350 cast 'holy light' pause 350 msg '[bandself'
those simple 6 lines will make it so you auto attack a nearby enemy, cast holy light, and then try to bandage yourself with every iteration of the macro.
If you take notice of the cast command, it is very simple to use, all you really need is to type cast 'spell name here' so as an example, you can do cast 'wither' or cast 'earthquake' or cast 'greater heal' now, when you cast a spell with a target requirement, you can add the following type of pause to ensure you get the target option before continuing: waitfortarget 15000 waitfortarget X < that says wait for the targeting icon to show up, or at most X milliseconds (1000 per second) before continuing on with the current macro.
This brings us into macro 2, a quick healing macro
Macro2: cast 'greater heal' waitfortarget 3000 @target 'self'
With that macro, if you put it on loop, it will heal you constantly with greater heal until you stop the macro but, perhaps you don't want to spam your screen non stop even after being fully healed, that is when we use conditional statements.
If you wish to only heal yourself when your health is not full, you can add 2 lines to the macro to make it function like that:
//Macro2.1
if hits < maxhits cast 'greater heal' waitfortarget 3000 @target 'self' endif
The If statement checks for the condition which in this case, it is looking to see if hits (your own health) is lower than maxhits (your max health) if it is, then it casts greater heal, waits for up to 3 seconds (3000 milliseconds) and then targets yourself.
Now, lets say you want to take this macro 1 step further, and make it also bless you, since your max health will tend to increase with a bless as well. adding another condition to the same macro we check for an existing buff with buffexists 'buff name' //Macro2.2
if hits < maxhits cast 'greater heal' waitfortarget 3000 @target 'self' endif if not buffexists 'bless' cast 'bless' waitfortarget 3000 @target 'self' endif
Now, you may notice the keyword NOT being added there, when used in this way, it checks for the opposite of the statement, normally without it, it would be used to see if bluff was present, but with NOT added in, it checks to see if it is missing, and if so, it goes ahead and casts it on yourself.
Buff Exists can be used to detect harmful debuffs as well. such as 'curse' or 'blood oath'
If you look back at macro1. we can modify it with buff exists to cast a spell like earthquake or holy light if it sees blood oath on, instead of swinging at the enemy. (players with donation weapons know how painful that can be).
//Macro 1.2
if buffexists 'blood oath' cast 'earthquake' pause 350 endif @getenemy 'murderer' 'enemy' 'criminal' 'gray' 'nearest' @attack 'enemy' pause 350 cast 'holy light' pause 350 msg '[bandself'
|
|
|
Post by burner on Jun 5, 2013 10:23:16 GMT -5
the msg command is pretty useful on our shard as well. msg 'message text' The main benefit for msg for champers is to use spell runes by keyword. for instance, you could say msg 'spore' to make your character say spore, which may trigger plague spore from the toxic rune. treat it in these cases just as you would with the cast command, so waitfortarget X, and then picking the target or tile.
Much like in razor, you can also pick a tile that is relative to your own location, or at an absolute location. an example of the relative location would be with the command: Autotargettilerelative
AutoTargetTileRelative asks for the serial of the target you wish to target off of, for most players, 'self' will suffice as you will likely want it based off your own location. Macro 3:
autotargettilerelative 'self' 3 msg 'spore' pause 350
the autotargettilerelative command, set off your own relative location, is set at a range of 3 in this macro, and as a result, the location of the tile to be targeted is 3 tiles in front of the caster. the pause afterwards is to ensure that it doesn't conflict with other commands coming after. Macro 3 will in the case of my own character, place a plague spore from the toxic rune 3 tiles in front of me at the time of casting.
More to come later.
|
|
|
Post by burner on Jun 5, 2013 10:23:33 GMT -5
reserved
|
|
|
Post by burner on Jun 5, 2013 10:23:52 GMT -5
reserved for additional details.
|
|
|
Post by burner on Jun 5, 2013 10:39:27 GMT -5
reserved for future examples
|
|
|
Post by Breaker on Jun 5, 2013 11:33:11 GMT -5
Stickied.
|
|
|
Post by attila on Jan 18, 2014 18:46:41 GMT -5
after reading these posts and going to uosteam macro help and viewing what they have there, I came up with a casting macro myself... I had problems getting the targeting system to work with bouncing lag and came up with this solution. //as you can see, it still starts off with defining what i want an "enemy" defined as with the get enemy command, but I also wanted it to only look in the range I can cast onto it so added a range qualification. please notice that in the casting line of cast "chain lightning" I also have the target to cast it onto. this allows uosteam to simplify its targeting and removes the ability of lag to pause out before it can target. @getenemy 'murderer' 'enemy' 'criminal' 'gray' 'nearest' if @inrange "enemy" 10 cast "chain lightning" 'enemy' pause 300 while waitingfortarget endwhile msg '[cleanup' endif //with the speed of uosteams targeting and casting, you need to allow for the shards cast times on different spells. since that varies from level of spell to level of spell also depends on your FC/FCR ability, normally messing up targeting times, by adding the "while waitingfortarget" and "endwhile" auto pauses the character between targeting so you will cast and target quickly without stalling out or moving on.
hope this helps some people figure out more about our shard and the use of uosteam
|
|