Example #1
0
        /// <summary>
        /// Land: Return the Z coordinate (height) of the Land item, give the coordinates and map.
        /// </summary>
        /// <param name="x">X coordinate.</param>
        /// <param name="y">Y coordinate.</param>
        /// <param name="map">
        ///     0 = Felucca
        ///		1 = Trammel
        ///     2 = Ilshenar
        ///	    3 = Malas
        ///		4 = Tokuno
        ///		5 = TerMur
        /// </param>
        /// <returns></returns>

        public static int GetLandZ(int x, int y, int map)
        {
            if (!m_loaded)
            {
                LoadMapData();
            }

            switch (map)
            {
            case 0:
                return(Ultima.Map.Felucca.Tiles.GetLandTile(x, y).Z);

            case 1:
                return(Ultima.Map.Trammel.Tiles.GetLandTile(x, y).Z);

            case 2:
                return(Ultima.Map.Ilshenar.Tiles.GetLandTile(x, y).Z);

            case 3:
                return(Ultima.Map.Malas.Tiles.GetLandTile(x, y).Z);

            case 4:
                return(Ultima.Map.Tokuno.Tiles.GetLandTile(x, y).Z);

            case 5:
                return(Ultima.Map.TerMur.Tiles.GetLandTile(x, y).Z);

            default:
                Scripts.SendMessageScriptError("Script Error: GetLandZ Invalid Map!");
                return(0);
            }
        }
Example #2
0
        public static void CastSpellweaving(string SpellName, bool wait = true)
        {
            if (World.Player == null)
            {
                return;
            }

            Spell s = null;

            int id = 0;

            m_SpellweavingSpellName.TryGetValue(SpellName, out id);

            if (id > 0)
            {
                s = Spell.Get(id);
            }
            else
            {
                Scripts.SendMessageScriptError("Script Error: CastSpellweaving: Invalid spell name: " + SpellName);
            }

            if (s != null)
            {
                s.OnCast(new CastSpellFromMacro((ushort)s.GetID()), wait);
            }
        }
Example #3
0
        public static void Move(int source, int destination, int amount, int x, int y)
        {
            Assistant.Item bag  = Assistant.World.FindItem(destination);
            Assistant.Item item = Assistant.World.FindItem(source);
            int            serialdestination = 0;

            if (item == null)
            {
                Scripts.SendMessageScriptError("Script Error: Move: Source Item  not found");
                return;
            }

            if (bag != null)
            {
                serialdestination = bag.Serial;
            }
            else
            {
                Assistant.Mobile mbag = Assistant.World.FindMobile(destination);
                if (mbag != null)
                {
                    serialdestination = mbag.Serial;
                }
            }

            if (serialdestination == 0)
            {
                Scripts.SendMessageScriptError("Script Error: Move: Destination not found");
                return;
            }

            Assistant.Point3D loc = Assistant.Point3D.MinusOne;
            if (x != -1 && y != -1)
            {
                loc = new Assistant.Point3D(x, y, 0);
            }

            if (amount == 0)
            {
                DragDropManager.HoldingItem = true;
                Assistant.ClientCommunication.SendToServerWait(new LiftRequest(item.Serial, item.Amount));
                Thread.Sleep(80);
                Assistant.ClientCommunication.SendToServerWait(new DropRequest(item.Serial, loc, serialdestination));
                DragDropManager.HoldingItem = false;
            }
            else
            {
                if (item.Amount < amount)
                {
                    amount = item.Amount;
                }
                DragDropManager.HoldingItem = true;
                Assistant.ClientCommunication.SendToServerWait(new LiftRequest(item.Serial, amount));
                Thread.Sleep(80);
                Assistant.ClientCommunication.SendToServerWait(new DropRequest(item.Serial, loc, serialdestination));
                DragDropManager.HoldingItem = false;
            }
        }
Example #4
0
        public static void CastOnlyChivalry(string SpellName, bool wait = true)
        {
            bool success = CastOnlyGeneric(m_ChivalrySpellName, SpellName, wait);

            if (!success)
            {
                Scripts.SendMessageScriptError("Script Error: CastChivalry: Invalid spell name: " + SpellName);
            }
        }
Example #5
0
        public static void CastNecro(string SpellName, uint target, bool wait = true)
        {
            bool success = CastTargetedGeneric(m_NecroSpellName, SpellName, target, wait);

            if (!success)
            {
                Scripts.SendMessageScriptError("Script Error: CastNecro: Invalid spell name: " + SpellName);
            }
        }
Example #6
0
        // Find item by id
        public static Item FindByID(int itemid, int color, int container)
        {
            if (container != -1)              // search in specific container
            {
                Item cont = FindBySerial(container);
                if (cont == null)                 // not valid serial or container not found
                {
                    Scripts.SendMessageScriptError("Script Error: FindByID: Container serial not found");
                    return(null);
                }
                foreach (Item i in cont.Contains)
                {
                    if (i.ItemID == itemid)                     // check item id
                    {
                        if (color != -1)                        // color -1 ALL
                        {
                            if (i.Hue == color)
                            {
                                return(i);
                            }
                        }
                        else
                        {
                            return(i);
                        }
                    }
                    else if (i.IsContainer)
                    {
                        FindByID(itemid, color, i.Serial);                         // recall for sub container
                    }
                }
                return(null); // Return null if no item found
            }
            else              // Search in world
            {
                Items.Filter itemFilter = new Items.Filter
                {
                    Enabled = true
                };
                itemFilter.Graphics.Add(itemid);

                if (color != -1)
                {
                    itemFilter.Hues.Add(color);
                }

                List <Item> containeritem = RazorEnhanced.Items.ApplyFilter(itemFilter);

                foreach (Item found in containeritem)                  // Return frist one found
                {
                    return(found);
                }

                return(null);
            }
        }
Example #7
0
 /// <summary>
 /// Find and target a resource using the specified item.
 /// </summary>
 /// <param name="item_serial">Item object to use.</param>
 /// <param name="resource_number"> Resource as standard name or custom number
 ///     0: ore
 ///     1: sand
 ///     2: wood
 ///     3: graves
 ///     4: red_mushrooms
 ///     n: custom
 /// </param>
 public static void TargetResource(int item_serial, int resource_number)
 {
     Assistant.Item item = Assistant.World.FindItem(item_serial);
     if (item == null)
     {
         Scripts.SendMessageScriptError("Script Error: UseItem: Invalid Use Serial");
         return;
     }
     Client.Instance.SendToServer(new TargeByResource((uint)item_serial, (uint)resource_number));
 }
Example #8
0
 /// <summary>
 /// Tile: Get the name of a Tile item given the StaticID.
 /// </summary>
 /// <param name="StaticID">Tile item StaticID.</param>
 /// <returns>The name of the Land item.</returns>
 public static string GetTileName(int StaticID)
 {
     try{
         return(TileData.ItemTable[StaticID].Name);
     }
     catch (Exception) {
         Scripts.SendMessageScriptError("Script Error: GetTileName invalid tileID " + StaticID);
         return("");
     }
 }
Example #9
0
 public static string GetTileName(int itemid)
 {
     try{
         return(TileData.ItemTable[itemid].Name);
     }
     catch (Exception e) {
         Scripts.SendMessageScriptError("Script Error: GetTileName invalid tileID " + itemid);
         return("");
     }
 }
Example #10
0
 public static void SingleClick(int itemserial)
 {
     Assistant.Item item = Assistant.World.FindItem(itemserial);
     if (item == null)
     {
         Scripts.SendMessageScriptError("Script Error: SingleClick: Invalid Serial");
         return;
     }
     Assistant.Client.Instance.SendToServerWait(new SingleClick(item));
 }
Example #11
0
 public static void SingleClick(int mobileserial)
 {
     Assistant.Mobile mobile = Assistant.World.FindMobile(mobileserial);
     if (mobile == null)
     {
         Scripts.SendMessageScriptError("Script Error: SingleClick: Invalid Serial");
         return;
     }
     Assistant.Client.Instance.SendToServerWait(new SingleClick(mobile));
 }
Example #12
0
 public static void ChangeList(string nameList)
 {
     if (!Engine.MainWindow.FriendListSelect.Items.Contains(nameList))
     {
         Scripts.SendMessageScriptError("Script Error: Friend.ChangeList: Friend List: " + nameList + " not exist");
     }
     else
     {
         Engine.MainWindow.SafeAction(s => s.FriendListSelect.SelectedIndex = s.FriendListSelect.Items.IndexOf(nameList));
     }
 }
Example #13
0
 public static void FStop()
 {
     if (Assistant.Engine.MainWindow.RestockExecute.Enabled == true)
     {
         Assistant.Engine.MainWindow.RestockStopExec();
     }
     else
     {
         Scripts.SendMessageScriptError("Script Error: Restock.FStart: Restock not running");
     }
 }
Example #14
0
 public static void UnDressFStop()
 {
     if (Assistant.Engine.MainWindow.DressStopButton.Enabled == true)
     {
         Assistant.Engine.MainWindow.DressStop();
     }
     else
     {
         Scripts.SendMessageScriptError("Script Error: Dress.DressFStop: UnDress not running");
     }
 }
Example #15
0
 public static void UnDressFStart()
 {
     if (Assistant.Engine.MainWindow.UnDressExecuteButton.Enabled == true)
     {
         Assistant.Engine.MainWindow.UndressStart();
     }
     else
     {
         Scripts.SendMessageScriptError("Script Error: Dress.UnDressFStart: Undress already running");
     }
 }
Example #16
0
 public static void Stop()
 {
     if (Assistant.Engine.MainWindow.ScavengerCheckBox.Checked == false)
     {
         Scripts.SendMessageScriptError("Script Error: Scavenger.Stop: Scavenger already sleeping");
     }
     else
     {
         Assistant.Engine.MainWindow.ScavengerCheckBox.Invoke(new Action(() => Assistant.Engine.MainWindow.ScavengerCheckBox.Checked = false));
     }
 }
Example #17
0
 public static void RunOnce(List <AutoLootItem> autoLootList, int mseconds, Items.Filter filter)
 {
     if (Assistant.Engine.MainWindow.AutolootCheckBox.Checked == true)
     {
         Scripts.SendMessageScriptError("Script Error: Autoloot.Start: Autoloot already running");
     }
     else
     {
         Engine(autoLootList, mseconds, filter);
     }
 }
Example #18
0
 public static void Disable()
 {
     if (Engine.MainWindow.BuyCheckBox.Checked == false)
     {
         Scripts.SendMessageScriptError("Script Error: Buy.Disable: Filter alredy disabled");
     }
     else
     {
         Engine.MainWindow.SafeAction(s => s.BuyCheckBox.Checked = false);
     }
 }
Example #19
0
 // Funzioni da script
 public static void Enable()
 {
     if (Engine.MainWindow.BuyCheckBox.Checked == true)
     {
         Scripts.SendMessageScriptError("Script Error: Buy.Enable: Filter alredy enabled");
     }
     else
     {
         Assistant.Engine.MainWindow.SafeAction(s => s.BuyCheckBox.Checked = true);
     }
 }
Example #20
0
        // Funzioni da script



        /// <summary>
        /// @nodoc
        /// Run the Scavenger Agent once on the currently active list, for a given amount of time, using a filter.
        /// </summary>
        /// <param name="scavengerList"></param>
        /// <param name="millisec"></param>
        /// <param name="filter"></param>
        public static void RunOnce(List <ScavengerItem> scavengerList, int millisec, Items.Filter filter)
        {
            if (Assistant.Engine.MainWindow.ScavengerCheckBox.Checked == true)
            {
                Scripts.SendMessageScriptError("Script Error: Scavenger.Start: Scavenger already running");
            }
            else
            {
                Engine(scavengerList, millisec, filter);
            }
        }
Example #21
0
 public static void Stop()
 {
     if (Assistant.Engine.MainWindow.BandageHealenableCheckBox.Checked == false)
     {
         Scripts.SendMessageScriptError("Script Error: BandageHeal.Stop: Bandage Heal already sleeping");
     }
     else
     {
         Assistant.Engine.MainWindow.SafeAction(s => s.BandageHealenableCheckBox.Checked = false);
     }
 }
Example #22
0
 public static void Disable()
 {
     if (Assistant.Engine.MainWindow.BuyCheckBox.Checked == false)
     {
         Scripts.SendMessageScriptError("Script Error: Buy.Disable: Filter alredy disabled");
     }
     else
     {
         Assistant.Engine.MainWindow.BuyCheckBox.Invoke(new Action(() => Assistant.Engine.MainWindow.BuyCheckBox.Checked = false));
     }
 }
Example #23
0
 public static void ChangeList(string nomelista)
 {
     if (!Assistant.Engine.MainWindow.FriendListSelect.Items.Contains(nomelista))
     {
         Scripts.SendMessageScriptError("Script Error: Friend.ChangeList: Friend List: " + nomelista + " not exist");
     }
     else
     {
         Assistant.Engine.MainWindow.FriendListSelect.Invoke(new Action(() => Assistant.Engine.MainWindow.FriendListSelect.SelectedIndex = Assistant.Engine.MainWindow.FriendListSelect.Items.IndexOf(nomelista)));                  // cambio lista
     }
 }
Example #24
0
 /// <summary>
 /// Stop the Organizer Agent.
 /// </summary>
 public static void FStop()
 {
     if (Assistant.Engine.MainWindow.OrganizerStop.Enabled == true)
     {
         Assistant.Engine.MainWindow.OrganizerStopExec();
     }
     else
     {
         Scripts.SendMessageScriptError("Script Error: Organizer.FStart: Organizer not running");
     }
 }
Example #25
0
 /// <summary>
 /// Stop the Autoloot Agent.
 /// </summary>
 public static void Stop()
 {
     if (Assistant.Engine.MainWindow.AutolootCheckBox.Checked == false)
     {
         Scripts.SendMessageScriptError("Script Error: Autoloot.Stop: Autoloot already sleeping");
     }
     else
     {
         Assistant.Engine.MainWindow.SafeAction(s => s.AutolootCheckBox.Checked = false);
     }
 }
Example #26
0
 /// <summary>
 /// Start the Autoloot Agent on the currently active list.
 /// </summary>
 public static void Start()
 {
     if (Assistant.Engine.MainWindow.AutolootCheckBox.Checked == true)
     {
         Scripts.SendMessageScriptError("Script Error: Autoloot.Start: Autoloot already running");
     }
     else
     {
         Assistant.Engine.MainWindow.SafeAction(s => s.AutolootCheckBox.Checked = true);
     }
 }
Example #27
0
 public static void ScriptStop(string scriptfile)
 {
     Scripts.EnhancedScript script = Scripts.Search(scriptfile);
     if (script != null)
     {
         script.Run = false;
     }
     else
     {
         Scripts.SendMessageScriptError("ScriptStatus: Script not exist");
     }
 }
Example #28
0
        public static void CastNinjitsu(string SpellName)
        {
            if (World.Player == null)
            {
                return;
            }

            Spell s = null;

            switch (SpellName)
            {
            case "Focus Attack":
                s = Spell.Get(501);
                break;

            case "Death Strike":
                s = Spell.Get(502);
                break;

            case "Animal Form":
                s = Spell.Get(503);
                break;

            case "Ki Attack":
                s = Spell.Get(504);
                break;

            case "Surprise Attack":
                s = Spell.Get(505);
                break;

            case "Backstab":
                s = Spell.Get(506);
                break;

            case "Shadow jump":
                s = Spell.Get(507);
                break;

            case "Mirror Image":
                s = Spell.Get(508);
                break;

            default:
                Scripts.SendMessageScriptError("Script Error: CastSpellNinjitsu: Invalid spell name: " + SpellName);
                break;
            }
            if (s != null)
            {
                s.OnCastByScript(new CastSpellFromMacro((ushort)s.GetID()));
            }
        }
Example #29
0
 public static bool ScriptStatus(string scriptfile)
 {
     Scripts.EnhancedScript script = Scripts.Search(scriptfile);
     if (script != null)
     {
         return(script.Run);
     }
     else
     {
         Scripts.SendMessageScriptError("ScriptStatus: Script not exist");
         return(false);
     }
 }
Example #30
0
        public static List <TileInfo> GetStaticsTileInfo(int x, int y, int map)
        {
            if (!m_loaded)
            {
                LoadMapData();
            }

            Ultima.HuedTile[] tiles;
            List <TileInfo>   tileinfo = new List <TileInfo>();

            switch (map)
            {
            case 0:
                tiles = Ultima.Map.Felucca.Tiles.GetStaticTiles(x, y);
                break;

            case 1:
                tiles = Ultima.Map.Trammel.Tiles.GetStaticTiles(x, y);
                break;

            case 2:
                tiles = Ultima.Map.Ilshenar.Tiles.GetStaticTiles(x, y);
                break;

            case 3:
                tiles = Ultima.Map.Malas.Tiles.GetStaticTiles(x, y);
                break;

            case 4:
                tiles = Ultima.Map.Tokuno.Tiles.GetStaticTiles(x, y);
                break;

            case 5:
                tiles = Ultima.Map.TerMur.Tiles.GetStaticTiles(x, y);
                break;

            default:
                Scripts.SendMessageScriptError("Script Error: GetLandZ Invalid Map!");
                return(tileinfo);
            }

            if (tiles != null && tiles.Length > 0)
            {
                foreach (Ultima.HuedTile tile in tiles)
                {
                    tileinfo.Add(new TileInfo(tile.ID, tile.Hue, tile.Z));
                }
            }

            return(tileinfo);
        }