![]() |
|
|
Narzędzia tematu | Wygląd tematu |
|
|
#1 |
|
PWJ Na 200%
Data dołączenia: Sep 2008
Skąd: Tczew
Posty: 1,384
Podziękowań: 35
Podziękowano mu 152 razy w 74 postach.
![]() ![]() ![]() ![]() ![]() ![]() |
Witajcie,
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. Miłego skillowania 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();
}
}
}
}
Ostatnio edytowany przez muttley : 29-10-10 o 21:06 |
|
|
|
|
|
#2 |
|
PWJ Na 200%
Data dołączenia: Sep 2008
Skąd: Tczew
Posty: 1,384
Podziękowań: 35
Podziękowano mu 152 razy w 74 postach.
![]() ![]() ![]() ![]() ![]() ![]() |
Poprawiłem skrypt - teraz skrypt sprawdza, czy na ekranie nie znajdują się potwory na liście ofensywnych
|
|
|
|