EC: many missing cases for stealing skill usage in hotbar timer

Similar to the issue here:

Various uses of the stealing skill don't properly update the hotbar cooldown timer.  In textparsing.lua, the stealing skill usage should be consolidated as such.  There may be some other cases too.

Stealing is unlike most other skills in that even "benign" failures cause a full 10 second skill delay.
 


	-- stealing
	
	if ( SystemData.TextID == 502698 or  	-- "Which item will you attempt to steal?"
		 SystemData.TextID == 1005584 or 	-- "Both hands must be free to steal."
		 SystemData.TextID == 502703 or		-- You must be standing next to an item to steal it.
		 SystemData.TextID == 502708 or 	-- you can't steal from this.
		 SystemData.TextID == 502709 or		-- you can't steal from vendors.
		 SystemData.TextID == 502722 or		-- this item is too heavy to steal from someone's backpack. 	
		 SystemData.TextID == 502723 or		-- You fail to steal the item.
		 SystemData.TextID == 502724 or		-- You successfully steal the item.
		 SystemData.TextID == 1005598 or	-- you can't steal from shopkeepers.
		 SystemData.TextID == 1094947 or	-- you successfully steal a special item from the creature!
		 SystemData.TextID == 1094948 or	-- that creature has already been stolen from.  there is nothing left to steal.
		 SystemData.TextID == 1010578 or	-- you reach into the backpack... but find it's empty.
		 SystemData.TextID == 1010579		-- you reach into the backpack... and try to take something.
		 ) then  
		HotbarSystem.SkillDelayTimeMax = 10
		HotbarSystem.SkillDelayTime = 10
		return
	end	
Moderator, feel free to move to the bugs subforum -- BUT I've read the "General Discussions" may get more reading attention from the developer(s), however?

Comments

  • TimStTimSt Posts: 1,866
    Too bad you can not steal from vendors.  Back when Ultima 1 came out I managed to steal a ray gun from a vendor.  I could kill anything in the dungeons with that ray gun.
  • TimStTimSt Posts: 1,866
    edited April 2023
    I added the following code to add a debuff icon in case there are no hotbar timed icons

            WindowData.BuffDebuffSystem.CurrentBuffId = 1117 --skill use delay
            WindowData.BuffDebuff.NameVectorSize = 0
            WindowData.BuffDebuff.ToolTipVectorSize = 0
            WindowData.BuffDebuff.IsBeingRemoved = false
            BuffDebuff.Timers[1117] = 10
            BuffDebuff.ShouldCreateNewBuff()








  • keven2002keven2002 Posts: 2,267
    TimSt said:
    Too bad you can not steal from vendors.  Back when Ultima 1 came out I managed to steal a ray gun from a vendor.  I could kill anything in the dungeons with that ray gun.
    When I first started playing UO though (25 years ago) that was my first template. I actually stole enough gold from containers (and people) to buy my first tent, then first house (this took a while). During the first 10 years or so it was pretty cool what you were able to steal, things were much more "real" in a sense that you could steal just about anything. I remember I used to disarm some of the Khuldan zealots and Neira and steal their weapons (this was my signature move as a thief - disarm/steal/equip my own weapon/kill target). I think they stopped that a while back though. Even up to the 20th anniversary (I think this was the event) if the GM didn't properly setup something they added to be "locked down", it could be stolen. I remember there was part of the event where people had to read a book as part of the quest but nobody could find it because someone stole it... the GM had to take it from the thief and re-place the book but as non-stealable.

    Stealing is kind of the redheaded stepchild of UO (for understandable reasons) so it's been pretty stripped down over the past 20 years and I don't see it really getting much love anytime soon...but man those first 10-15 years was fun as a thief.

  • ForeverFunForeverFun Posts: 899
    edited April 2023
    TimSt said:
    I added the following code to add a debuff icon in case there are no hotbar timed icons

            WindowData.BuffDebuffSystem.CurrentBuffId = 1117 --skill use delay
            WindowData.BuffDebuff.NameVectorSize = 0
            WindowData.BuffDebuff.ToolTipVectorSize = 0
            WindowData.BuffDebuff.IsBeingRemoved = false
            BuffDebuff.Timers[1117] = 10
            BuffDebuff.ShouldCreateNewBuff()


    Nice,

    try putting this in hotbarsystem.lua, above the UpdateCooldownSlot( ... HotbarSystem.SkillDelayTime ...) call

    That should cover a large swath of cases, as well as skill specific timer cooldown values.
    (note this should be adjusted to only be invoked once in the for loop)

    				if (HotbarSystem.SkillDelayTimeMax ~= 0 and
    					HotbarSystem.SkillDelayTimeMax == HotbarSystem.SkillDelayTime) then
    
    					WindowData.BuffDebuffSystem.CurrentBuffId = 1117 --skill use delay, from TimSt
    					WindowData.BuffDebuff.NameVectorSize = 0
    					WindowData.BuffDebuff.ToolTipVectorSize = 0
    					WindowData.BuffDebuff.IsBeingRemoved = false
    					BuffDebuff.Timers[1117] = HotbarSystem.SkillDelayTime
    					BuffDebuff.ShouldCreateNewBuff()					
    					
    				end
Sign In or Register to comment.