ScriptUO

Scripting Resources & Utilities => Orion UO Client => Orion UO Scripts => Topic started by: Ali on October 31, 2022, 10:01:27 AM

Title: Teleport Ring Charges Counter
Post by: Ali on October 31, 2022, 10:01:27 AM
Here's a little snippet I put together to verify the total amount of teleport charges in a bag full of teleport rings. Can be used in the trade window!

Code: [Select]
function TeleportChargeCounter()
    {
    Orion.CharPrint(self,1159,'Target container full of rings')
    Orion.WaitForAddObject('myTarget');
    var container = Orion.GetSerial('myTarget');
    while(!Orion.GumpExists('container', container))
        {
        Orion.UseObject(container);
        Orion.Wait(1300);
        }
    var rings = Orion.FindTypeEx(any,any,container).filter(function(ring)
        {
        return Orion.Contains(ring.Properties(), 'Ring') && Orion.Contains(ring.Properties(), 'Teleport Charges:')
        });
    var charges = rings.reduce(function(sum, current)
        {
        var currentCharges = +((current.Properties().match(/Teleport Charges: (\d+)/) || [])[1] || 0);
        return sum + currentCharges;
        }, 0);
    Orion.Print('Total charges: ' + charges);
    Orion.Print('Average charges per ring: ' + (charges/rings.length));
    }