UO Sagas: Provo training

Creator: Anonymous UploadLink: provo-training-anon
Created: 23 days ago on 05/27/2025, 02:12:08 AM
Size: 2596

Description: Provo with tambourines

function GetTwoNearestHostiles() local filter = { rangemax = 10, notorieties = {3, 4, 5, 6}, -- Gray, Criminal, Enemy, Murderer dead = false } local enemies = Mobiles.FindByFilter(filter) table.sort(enemies, function(a, b) return a.Distance < b.Distance end) return enemies[1], enemies[2] end function UseTambourineIfPrompt() Pause(500) -- Allow journal to update if Journal.Contains("What instrument shall you play?") then local tambourine = Items.FindByFilter({ graphics = {0x0E9D}, onground = false }) if #tambourine > 0 then Player.UseObject(tambourine[1].Serial) Messages.Print("Using tambourine (0x0E9D)...") else Messages.Print("Tambourine not found in backpack.") end Journal.Clear() end end function ProvokeTwoTargets() local mob1, mob2 = GetTwoNearestHostiles() if mob1 == nil or mob2 == nil then Messages.Print("Not enough valid targets nearby!", 33) return end Messages.Print("Provoking " .. mob1.Name .. " and " .. mob2.Name .. "...") Journal.Clear() if not Spells.Cast("SongOfProvocation") then Messages.Print("Failed to cast Song of Provocation.", 33) return end if not Targeting.WaitForTarget(2000) then Messages.Print("No target cursor for first target!", 33) return end Targeting.Target(mob1.Serial) Pause(1500) if not Targeting.WaitForTarget(2000) then Messages.Print("No target cursor for second target!", 33) return end Targeting.Target(mob2.Serial) Messages.Print("Provocation attempt sent!", 68) end -- 🔁 Infinite Loop with fixed 6.7 second delay while true do ProvokeTwoTargets() -- Check for tambourine prompt only after provocation attempt UseTambourineIfPrompt() Pause(6700) end
View list of scripts
Disclaimer: This is a fan made site and is not directly associated with Ultima Online or UO staff.