Improving Razor - Razor Development

Discussion in 'Renaissance Discussion' started by Quick, Apr 22, 2018.

  1. Quick

    Quick Well-Known Member
    UO:R Donor

    Joined:
    Jan 6, 2018
    Messages:
    534
    Likes Received:
    1,136
    I've had this requested a few times. It's a simple change, but (as Jimmy mentioned) it would open up a world of full GM skill macroing automation that we probably don't want to see.
  2. Dalavar

    Dalavar Well-Known Member
    UO:R Subscriber

    Joined:
    Aug 11, 2013
    Messages:
    3,336
    Likes Received:
    1,915
    How about a checkbox in the UseOnce Agent that doesn't remove the item from the UseOnce list after you use it?

    Currently if you set a trapped pouch as the UseOnce item, and you use it, you need to re-trap the pouch in game, then go to the Razor menu to re-add it to your list. The Razor part is annoying.

    This would seem pretty simple if there's just one item in the UseOnce list; if there's a handful, I would suggest moving a used item to the bottom of the list.
    JimmyTheHand likes this.
  3. JimmyTheHand

    JimmyTheHand Well-Known Member
    UO:R Subscriber

    Joined:
    Nov 27, 2017
    Messages:
    513
    Likes Received:
    517
    I see what you're saying, annoys me as well.
    The design of the system to deal with it isnt immediately apparent.

    Removing from the list is the easiest implementation of a UseOnce system, use and gone.

    How do the following thoughts sit?

    UseOnceRefresh Button(w/hotkey): Wipes the list and adds all items from your UseOnceRefresh list.

    UseOnce.Expired Flag: Remains in list but won't be used if it has this flag. Not sure how we would remove the flag without a manual adjustment... there might be a "trapped" parameter... but that makes it specific to pouches.

    Potentially some function could ve implemented to assign an action per object/object type that removes the flag... ie. Trapping it removes the expired flag.
    That could take some thinking and tinkering though.

    ExpiredUseOnceList: Sits next to/below the UseOnce, button to AddAll from that list / add one / drag one. Hotkey for the AddAll expired. Similar to the UseOnceRefresh, a little more accessible but might clutter/be annoying.

    Without something like these, UseOnce needs a redesign as its just hitting the list. Which is why it gets removed. Else theres chance of using the item when it shouldnt be used.

    I think simply moving to the bottom wont be sufficient in a broader sense. Actually I'm not even sure the damned thing uses items in order...

    All this thinking has given me a concept to add to my UI Extension (that I'm going to bring in to Razor really soon).
  4. Ahirman

    Ahirman Well-Known Member
    UO:R Subscriber

    Joined:
    Mar 20, 2015
    Messages:
    1,160
    Likes Received:
    1,031
    You could just add a clear UseOnce hotkey. so when you need to re-trap a pouch, just "clear list" and then "add container" and it's refreshed.
    Quick likes this.
  5. JimmyTheHand

    JimmyTheHand Well-Known Member
    UO:R Subscriber

    Joined:
    Nov 27, 2017
    Messages:
    513
    Likes Received:
    517
    That'd similar to the Refresh type thought, yeah.

    it shouldn't be limited to just a tool for pouches, ie add container. Dunno what else you'd use once though :)

    Maybe the best solution is the refresh, instead of remove and gone, it will remove and add to a second list of "Used" items.
    Refresh then adds anything in that list that is also accessible legally back back to the UseOnce list.

    That then removes the need for the double action of clear->add and allows any item... ?
  6. Quick

    Quick Well-Known Member
    UO:R Donor

    Joined:
    Jan 6, 2018
    Messages:
    534
    Likes Received:
    1,136
    I suspect it was easier to simply remove the item from the list instead of keeping some internal logic on use and reuse back when it was designed.

    Is this feature used for anything other than pouches?

    I can look at simply having an option to use once and remove (existing behavior) and an option to use once and not remove (ensuring it's not used again until you hit a hotkey/button to clear the cache of used items).
    JimmyTheHand likes this.
  7. JimmyTheHand

    JimmyTheHand Well-Known Member
    UO:R Subscriber

    Joined:
    Nov 27, 2017
    Messages:
    513
    Likes Received:
    517
    Simplification of that process was where I as thinking. Hence a simple list transfer for used items then back in again upon refresh.

    Theres probably 100 ways to do it and barely a couple bytes.

    A UseOnceQueue list is another. Visible list that could be added to on the fly inbetween a refresh/update/loadfromcache/blah action trigger.

    Maybe just pick something and run with it. Removal of that manual readd step being key though.
  8. Raajaton

    Raajaton Active Member
    UO:R Subscriber

    Joined:
    Apr 21, 2018
    Messages:
    303
    Likes Received:
    248
    I had a some amount of success attempting to do this with if sysmessage statements in my macros looking for the target skill number I was looking for. Keep in mind that I had to enable the skill gain messages from Razor for it to work at all, as the client-based skill gain messages wouldn't trigger.

    From my testing it worked well when it was then told to stop the macro, but I was trying to be clever by having it call a NEW macro when the threshold was hit, and it ended up ignoring that and looping the same macro until I stopped it.

    Giving it the ability to stop a macro but not initiate a new one could be a fair compromise between AFKing a 7x GM without ever checking it, but preventing you from wasting regs / resources once you get past the usefulness of a specific macro.
  9. Dalavar

    Dalavar Well-Known Member
    UO:R Subscriber

    Joined:
    Aug 11, 2013
    Messages:
    3,336
    Likes Received:
    1,915
    The only problem I see with this is that it only works if your UseOnce is just 1 item. If you have say 5 of them, and after a battle you've used 3 of them, you shouldn't ideally need to re-add those 2 that were not yet used.

    This seems like the best from my perspective. Ideally also, if Razor would set a hue for an item you have Magic Trapped (I think this was requested elsewhere but I don't recall seeing the verdict), it would make it easy to re-trap the ones you need, ignore the ones still trapped, and just hit the refresh button

    Other ideas seem interesting too, but I'm less familiar with their difficulty or impact.
  10. Quick

    Quick Well-Known Member
    UO:R Donor

    Joined:
    Jan 6, 2018
    Messages:
    534
    Likes Received:
    1,136
    Here is a POC of Razor snagging BOD information tied to a hotkey that triggers the capture after you've opened it.

    [​IMG]

    I can tell you, pulling data from the single BODs is much easier vs. handling a book with multiple pages due to the way the data comes in but anyway, @Raajaton @JohnM and other BODers, would this be valuable to you guys?

    You'd what.. get your deeds, open each one, capture it, drop it in a book. When that book is done, you'd take the BODs.csv file, rename it or whatever to Book1..?
    fenster and Ahirman like this.
  11. Raajaton

    Raajaton Active Member
    UO:R Subscriber

    Joined:
    Apr 21, 2018
    Messages:
    303
    Likes Received:
    248
    That is awesome actually! There's just 1 other piece of information to add if possible that would make this fully functional :

    Material type --> In the case of Smithing BOD's this is going to be the type of metal that's used for the BOD. In the example shown, no material is listed which means it uses Iron. It will be specified if it's anything else (Dull Copper, Shadow Iron, etc, etc.)

    For Tailoring BOD's this might be slightly more complicated. Depending on what the Itemname is it could either specify cloth or leather, and if it's leather and no material type is specified it will be normal leather, but it might specify Spined, Horned, or Barbed.

    Here is an example of a few BOD's that have different Material Types :

    Here's a Smithing BOD that requires the use of gold ingots :

    upload_2018-11-7_12-16-47.png

    Now, here's some Tailoring BOD's - both of which don't specify a resource type, since it would be implied that it will use their most basic material (skullcup = cloth, leather shorts = leather) :

    upload_2018-11-7_12-20-51.png


    upload_2018-11-7_12-21-8.png

    Now here's a Tailoring BOD that specifies that it must be completed with Barbed leather :

    upload_2018-11-7_12-21-45.png

    I suspect the Smithing BOD's will be a little more straight forward, since it's necessary to care about which item types would use which base material - they are all some form of metal, and again if nothing is specified in the BOD it will ALWAYS be iron.
    Quick likes this.
  12. Ahirman

    Ahirman Well-Known Member
    UO:R Subscriber

    Joined:
    Mar 20, 2015
    Messages:
    1,160
    Likes Received:
    1,031
    Damn that's bad ass! I don't do bods but I bet that could come in handy!



    Question:

    When you're up/down stairs and there are mobs above/below you, lots of times razor will target closet above/below you. Is it possible to fix that?
  13. Raajaton

    Raajaton Active Member
    UO:R Subscriber

    Joined:
    Apr 21, 2018
    Messages:
    303
    Likes Received:
    248
    That would also be bad ass. That's been a pet peeve of mine for some time. It's been particularly annoying in certain sections of City of the Dead.
  14. Quick

    Quick Well-Known Member
    UO:R Donor

    Joined:
    Jan 6, 2018
    Messages:
    534
    Likes Received:
    1,136
    That shouldn't be too difficult to add a Z axis check on the Razor target hotkeys, it could potentially be an option. The question is finding the right Z axis limit. If your current Z=10, how many Z +/- that would one consider it "on your level"

    In a large tower for example, assuming the tower was placed on Z=0, when you're in the bottom floor you're at a Z=6, 2nd floor is Z=26 so that's +/- 20? The auto-open door feature in Razor does a +/- 15 on the Z axis so it doesn't try open doors too high or low.
  15. Ahirman

    Ahirman Well-Known Member
    UO:R Subscriber

    Joined:
    Mar 20, 2015
    Messages:
    1,160
    Likes Received:
    1,031
    is there any way to check line of sight?
  16. Quick

    Quick Well-Known Member
    UO:R Donor

    Joined:
    Jan 6, 2018
    Messages:
    534
    Likes Received:
    1,136
    I had a little time over lunch (what you don't see is me hitting my hotkey "Capture Last Opened BOD" after opening each BOD)

    [​IMG]
    fenster and Raajaton like this.
  17. Quick

    Quick Well-Known Member
    UO:R Donor

    Joined:
    Jan 6, 2018
    Messages:
    534
    Likes Received:
    1,136
    LOS is handled by the server so not sure without having to ask the server somehow.
  18. Raajaton

    Raajaton Active Member
    UO:R Subscriber

    Joined:
    Apr 21, 2018
    Messages:
    303
    Likes Received:
    248

    Damn you whipped that up quickly! This is going to help me a LOT. Thank you so much!
  19. Labeler

    Labeler Well-Known Member
    UO:R Donor

    Joined:
    Jul 18, 2016
    Messages:
    3,301
    Likes Received:
    1,581
    @JimmyTheHand , i like the enhancement but i wonder in what extend it makes it more "productive". i mean:
    A: you have to open your book, go to the page & hit the desired spell
    B: move your map to some POI, then click an icon (hopefully both gate & recall icons pop up) and then still select your desired spell.


    seems same or perhaps slightly more effort to travel. (i suck at geography so i never remember where what poi is) hence i rename my runes accordingly

    i personally vote for a runebook redesigned made by ingame client that would just have 1 double page, with all 16 runes and 2 icons/buttons right there for either gate or recall. (no more page flipping) @Chris :D :D :D
  20. Labeler

    Labeler Well-Known Member
    UO:R Donor

    Joined:
    Jul 18, 2016
    Messages:
    3,301
    Likes Received:
    1,581
    you can macro this:

    cast trap
    target pouch(type)
    -adduseonce
    target pouch (type)

Share This Page