Follow along with the video below to see how to install our site as a web app on your home screen.
Notka: This feature may not be available in some browsers.
Jest to do?? zaawansowany skrypt na skillowanie:
- Atakowanie potwora do danego %
- Zmiana broni zale?nie od potwora
Ca?o?? jest do?? prosta do konfiguracji:
hpPcToLeave - przy ilu % ma zostawi? potwora (0 - wy??czone)
offId - id broni u?ywanej do atakowania gro?nych potwor?w, zamiast Items.Axes.... mo?esz spr?bowa? Items.Swords.Sword.Id lub zwyczajnie wpisa? id
defId - tak jak wy?ej, tylko ?e do atakowania potwork?w treningowych
itLoc.Slot - r?ka w kt?rej trzymamy bro? (ustawiamy jako SlotNumber.Left lub SlotNumber.Right)
defMonster - lista potwor?w treningowych, kolejne potwory piszemy po przecinku i w ""
offMonster - tak jak wy?ej, tylko lista potwor?w do zabijania
Co do modu??w bota - targeting musi by? wy??czony, mo?na nawet chodzi? z cavebotem.
Kod:uint hpPcToLeave = 30; uint offId = Items.Axes.StonecuttersAxe.Id; uint defId = Items.Axes.Axe.Id; ItemLocation itLoc = new ItemLocation(); itLoc.Type = ItemLocationType.Slot; itLoc.Slot = SlotNumber.Left; string[] defMonster = new string[] { "Gargoyle", "Dwarf" }; string[] offMonster = new string[] { "Stone Golem", "Gozzler" }; if (core.Client.LoggedIn) { uint attackedId = core.Player.TargetId; Creature attackedCreature = core.Client.BattleList.GetCreatures().FirstOrDefault(c => c.Id == attackedId); if (attackedCreature != null) { if (offMonster.Contains(attackedCreature.Name)) { Item weapon = core.Client.Inventory.GetItemInSlot(itLoc.Slot); if (core.Client.AttackMode == Attack.FullDefense) core.Client.SetModes(Attack.FullAttack, core.Client.FollowMode); if (weapon.Id == defId) { Item i = core.Client.Inventory.GetItems().FirstOrDefault(item => item.Id == offId); if (i != null) i.Move(itLoc, (byte)1); } } if (defMonster.Contains(attackedCreature.Name)) { if (core.Client.BattleList.GetCreatures().Where(c => offMonster.Contains(c.Name)).Count() != 0 && c.Location.IsAdjacent()) { core.Player.Stop(); return; } if (attackedCreature.HPBar < hpPcToLeave) core.Player.Stop(); Item weapon = core.Client.Inventory.GetItemInSlot(itLoc.Slot); if (core.Client.AttackMode == Attack.FullAttack) core.Client.SetModes(Attack.FullDefense, core.Client.FollowMode); if (weapon.Id == offId) { Item i = core.Client.Inventory.GetItems().FirstOrDefault(item => item.Id == defId); if (i != null) i.Move(itLoc, (byte)1); } } } else { bool attackedOff = false; Creature monst = core.Client.BattleList.GetCreatures().FirstOrDefault(c => c.Location.IsAdjacent() && offMonster.Contains(c.Name)); if (monst != null) { monst.Attack(); attackedOff = true; } if (!attackedOff) { { Creature OtherCreat = core.Client.BattleList.GetCreatures().FirstOrDefault(c => defMonster.Contains(c.Name) && c.HPBar > hpPcToLeave && c.Location.IsAdjacent()); if (OtherCreat != null) OtherCreat.Attack(); } } } }
Przedstawiam skrypt na jedzenie w losowych odst?pach czasu. Przy okazji wykorzystane jest definiowanie zmiennych 'globalnych'.Kod:int MIN = 30; //minimalna WIELOKROTNO?? tego, co jest wpisane w interwale int MAX = 50; //maksymalna WIELOKROTNO?? tego, co jest wpisane w interwale //powy?sze warto?ci dla interwa?u 1000 b?d? jad?y co 30-50 sekund, dla 500 co 15-25 sekund itd. if (core.Client.LoggedIn) { if (!symbols.ContainsKey("doEat")) symbols.Add("doEat", (int)0); if ((int)symbols["doEat"] > new Random(Convert.ToInt32(DateTime.Now.Ticks % Math.Pow(2, 31))).Next(MIN, MAX)) { foreach (Item i in core.Client.Inventory.GetItems()) { if (ItemLists.Foods.ContainsKey(i.Id)) { i.Use(); break; } } symbols["doEat"] = (int)0; } else { symbols["doEat"] = (int)symbols["doEat"] + 1; } }
