okidoki
heres the main loop
aHealer.Start();
mTracker.Start();
while(hunting)
{
//check weight
if(player.Weight >= player.Maxweight - 10)
{
var gold = Scanner.Find<Item>(typeof(items.gold), player.Backpack.Serial.Value, true);
if(gold.Count > 0)
{
Console.WriteLine("Sending gold...");
bos.useBag(gold[0]);
}
}
if(player.Hits < player.MaxHits)
{
mTracker.Pause();
while(player.Hits < player.MaxHits)
{
//wait
}
mTracker.Resume();
}
if (myPet.Hits < (myPet.MaxHits - 5))
{
mTracker.Pause();
while(myPet.Hits < myPet.MaxHits)
{
//wait till pet is at fill health
player.Cast("heal");
player.Targeting.WaitForTarget(1500);
player.Targeting.TargetTo(myPet.Serial);
}
mTracker.Resume();
}
//check position
//if(player.Location.X != startLocX && player.Location.Y != startLocY)
//{
// player.Movement.MoveXY((ushort)startLocX, (ushort)startLocY, true, 1, true);
//}
}
And heres the main part of my monster attacker thread
private void attack(enemy item)
{
while(!_cancel && item.Hits > 0)
{
if (petKill && item.isAllKilled == false)
{
if (Stealth.Client.ClientTargetResponsePresent() == true)
Stealth.Client.CancelTarget();
//uses pet
//Stealth.Client.SendTextToUO("All kill");
player.SendText("All kill", 0);
allKillRetical = true;
player.Targeting.WaitForTarget(1500);
player.Targeting.AutoTargetTo(item.Serial);
allKillRetical = false;
item.isAllKilled = true;
}
if (necroKill && item.isCorpsed == false)
{
if (Stealth.Client.ClientTargetResponsePresent() == true)
Stealth.Client.CancelTarget();
player.Cast("corpse skin");
player.Targeting.WaitForTarget(1500);
player.Targeting.TargetTo(item.Serial);
item.isCorpsed = true;
}
if (mageryKill)
{
if (Stealth.Client.ClientTargetResponsePresent() == true)
Stealth.Client.CancelTarget();
//uses eBolt
player.Cast("fireball");
player.Targeting.WaitForTarget(1500);
player.Targeting.TargetTo(item.Serial);
}
}
}
and heres the main part of my heal thread
public void HealOnce()
{
if (Stealth.Client.GetDeadStatus())
{
return;
}
//_ct = new CancellationTokenSource();
if (player.Hits < player.MaxHits)
{
Console.WriteLine($"[Information] healonce");
if (Stealth.Client.ClientTargetResponsePresent() == true)
Stealth.Client.CancelTarget();
}
else
{
//_sendConsoleMessage?.Invoke("No need in heals");
return;
}
Stealth.Client.ClilocSpeech += Client_ClilocSpeech;
//=================================================================================================================
//if using magery
if(useMageryHeal)
{
if(player.MaxMana > 5)
{
player.Cast("heal");
player.Targeting.WaitForTarget(1500);
player.Targeting.TargetTo(targ.Serial);
}
else
{
Console.WriteLine("[Error] Not enough mana!");
return;
}
}
//==================================================================================================================
}
hope this is enough!