/// <summary> /// Clear all the fields. /// </summary> public void Reset(bool isFightStarted = false, bool canSayReady = false) { m_Summons.Clear(); Fighters.Clear(); DeadEnnemies.Clear(); Options.Clear(); TotalLaunchBySpell.Clear(); LastTurnLaunchBySpell.Clear(); TotalLaunchByCellBySpell.Clear(); DurationByEffect.Clear(); IsFightStarted = isFightStarted; WaitForReady = (!isFightStarted && canSayReady); followingGroup = null; }
/// <summary> /// Ban a group of monsters (we won't try to launch a fight against them). /// </summary> private void BanMonsters(MonsterGroup m) { Banned.Add(m); }
public bool SearchFight() { m_Account.Path.Stop = true; int minNumber = (int)m_Account.nudMinMonstersNumber.Value; int maxNumber = (int)m_Account.nudMaxMonstersNumber.Value; int minLevel = (int)m_Account.nudMinMonstersLevel.Value; int maxLevel = (int)m_Account.nudMaxMonstersLevel.Value; lock(this.clock) { foreach (MonsterGroup monsters in m_Account.Map.List) { int monstersCount = monsters.m_staticInfos.underlings.Count() + 1; int monstersLevel = 0; List<string> monstersname = new List<string>(); if (monstersCount < minNumber || monstersCount > maxNumber) { continue; } foreach (MonsterInGroupInformations monster in monsters.m_staticInfos.underlings) { DataClass monsterData = GameData.GetDataObject(D2oFileEnum.Monsters, monster.creatureGenericId); object monsterGrades = monsterData.Fields["grades"]; ArrayList monsterGrades2 = (ArrayList)monsterGrades; DataClass monsterGradeData = (DataClass)monsterGrades2[Convert.ToInt32(monster.grade) - 1]; monstersLevel += Convert.ToInt32(monsterGradeData.Fields["level"]); monstersname.Add(BlueSheep.Common.Data.I18N.GetText((int)monsterData.Fields["nameId"])); } DataClass mainmonsterData = GameData.GetDataObject(D2oFileEnum.Monsters, monsters.m_staticInfos.mainCreatureLightInfos.creatureGenericId); object mainmonsterGrades = mainmonsterData.Fields["grades"]; ArrayList mainmonsterGrades2 = (ArrayList)mainmonsterGrades; DataClass mainmonsterGradeData = (DataClass)mainmonsterGrades2[Convert.ToInt32(monsters.m_staticInfos.mainCreatureLightInfos.grade) - 1]; monstersLevel += Convert.ToInt32(mainmonsterGradeData.Fields["level"]); monstersname.Add(BlueSheep.Common.Data.I18N.GetText((int)mainmonsterData.Fields["nameId"])); if (monstersLevel < minLevel || monstersLevel > maxLevel) { continue; } if (m_Account.VerifGroup(monstersname) == false) continue; string names = ""; foreach (string item in monstersname) { //Account.Log("names = " + names + Environment.NewLine + "item = " + item); names = names + item; if (monstersname.IndexOf(item) != monstersname.Count - 1) names = names + ","; } this.followinggroup = monsters; if (m_Account.Map.MoveToCell(monsters.m_cellId)) { m_Account.ModifBar(6, 0, 0, "Déplacement"); //m_Account.Log(new BotTextInformation(monsters.disposition.cellId.ToString() + "/" + m_Account.Map.Character.CellId)); m_Account.Path.Stop = true; m_Account.Log(new ActionTextInformation(string.Format("Lancement d'un combat contre {0} monstres de niveau {1} ({2})", monstersCount, monstersLevel, names)),1); //m_Account.Log(new BotTextInformation(monsters.contextualId.ToString())); return true; //m_Account.Map.List.Remove(entity); } } } return false; }