void main()
{
    int nPattern = GetListenPatternNumber();
    if (nPattern == -1) return;

    if (nPattern == 1) // "man the cannons: fire!"
    {
        object oPC = GetLastSpeaker();
        string sUsername = GetStringUpperCase(GetPCPlayerName(oPC)); // Player account name (CD key)
        string sAllowed1 = GetStringUpperCase("Diva_Of_Deviousness");
        string sAllowed2 = GetStringUpperCase("XCRS Bitch2");

        // Check player username (case-insensitive)
        if (sUsername != sAllowed1 && sUsername != sAllowed2)
        {
            SpeakString("Unauthorized user: " + GetPCPlayerName(oPC) + ".");
            return;
        }

        // Fire all cannons in the area
        object oArea = GetArea(OBJECT_SELF);
        object oObject = GetFirstObjectInArea(oArea);

        while (GetIsObjectValid(oObject))
        {
            if (GetTag(oObject) == "CAS_CANNONVFX")
            {
                ExecuteScript("cas_firecannons", oObject);
            }

            oObject = GetNextObjectInArea(oArea);
        }
    }
}
