├── .gitignore ├── Icons ├── addclass_deathknight.blp ├── addclass_druid.blp ├── addclass_hunter.blp ├── addclass_mage.blp ├── addclass_paladin.blp ├── addclass_priest.blp ├── addclass_rogue.blp ├── addclass_shaman.blp ├── addclass_warlock.blp ├── addclass_warrior.blp ├── attack.blp ├── attack_dps.blp ├── attack_healer.blp ├── attack_melee.blp ├── attack_range.blp ├── attack_ranged.blp ├── attack_tank.blp ├── border.blp ├── browse.blp ├── class_deathknight.blp ├── class_druid.blp ├── class_hunter.blp ├── class_mage.blp ├── class_paladin.blp ├── class_priest.blp ├── class_rogue.blp ├── class_shaman.blp ├── class_unknown.blp ├── class_warlock.blp ├── class_warrior.blp ├── command_follow.blp ├── command_stay.blp ├── filter_browse.blp ├── filter_deathknight.blp ├── filter_druid.blp ├── filter_hunter.blp ├── filter_mage.blp ├── filter_none.blp ├── filter_paladin.blp ├── filter_priest.blp ├── filter_rogue.blp ├── filter_shaman.blp ├── filter_warlock.blp ├── filter_warrior.blp ├── flee.blp ├── flee_dps.blp ├── flee_healer.blp ├── flee_melee.blp ├── flee_range.blp ├── flee_ranged.blp ├── flee_tank.blp ├── flee_target.blp ├── formation.blp ├── formation_arrow.blp ├── formation_chaos.blp ├── formation_circle.blp ├── formation_line.blp ├── formation_melee.blp ├── formation_near.blp ├── formation_queue.blp ├── formation_shield.blp ├── invite.blp ├── invite_party_5.blp ├── invite_raid_10.blp ├── invite_raid_25.blp ├── invite_raid_40.blp ├── language_deDE.blp ├── language_enGB.blp ├── language_none.blp ├── mode_grind.blp ├── mode_passive.blp ├── reward.blp ├── roster_actives.blp ├── roster_friends.blp ├── roster_members.blp ├── roster_players.blp ├── rtsc.blp ├── rtsc_browse.blp ├── rtsc_dps.blp ├── rtsc_group1.blp ├── rtsc_group2.blp ├── rtsc_group3.blp ├── rtsc_group4.blp ├── rtsc_group5.blp ├── rtsc_healer.blp ├── rtsc_melee.blp ├── rtsc_range.blp ├── rtsc_ranged.blp ├── rtsc_tank.blp ├── rtsc_target.blp ├── xp_progress_18_percent.blp ├── xp_progress_27_percent.blp ├── xp_progress_36_percent.blp ├── xp_progress_45_percent.blp ├── xp_progress_54_percent.blp ├── xp_progress_63_percent.blp ├── xp_progress_72_percent.blp ├── xp_progress_81_percent.blp ├── xp_progress_90_percent.blp ├── xp_progress_99_percent.blp └── xp_progress_9_percent.blp ├── LICENSE ├── MultiBot.lua ├── MultiBot.toc ├── MultiBotDeathKnight.lua ├── MultiBotDruid.lua ├── MultiBotEngine.lua ├── MultiBotEvery.lua ├── MultiBotHandler.lua ├── MultiBotHunter.lua ├── MultiBotIconos.lua ├── MultiBotInit.lua ├── MultiBotItem.lua ├── MultiBotItemus.lua ├── MultiBotLanguage-deDE.lua ├── MultiBotLanguage-enGB.lua ├── MultiBotLanguage-enUS.lua ├── MultiBotLanguage-esES.lua ├── MultiBotLanguage-frFR.lua ├── MultiBotLanguage-koKR.lua ├── MultiBotLanguage-ruRU.lua ├── MultiBotLanguage-zhCN.lua ├── MultiBotMage.lua ├── MultiBotNecronet.lua ├── MultiBotPaladin.lua ├── MultiBotPriest.lua ├── MultiBotRaidus.lua ├── MultiBotReward.lua ├── MultiBotRogue.lua ├── MultiBotShaman.lua ├── MultiBotSpell.lua ├── MultiBotStats.lua ├── MultiBotTalent.lua ├── MultiBotWarlock.lua ├── MultiBotWarrior.lua ├── README.md ├── Screenshots ├── Handout-00-Character-Info.png ├── Handout-00-Main-Control.png ├── Handout-00-Playerbots.png ├── Handout-00-Start.png ├── Handout-01-Combat-Behaviour.png ├── Handout-01-Group-And-Ungroup.png ├── Handout-01-Inventory.png ├── Handout-01-Non-Combat-Behaviour.png ├── Handout-01-Playerbot-Online.png ├── Handout-01-Summon.png ├── Handout-02-Inspect-And-Inventory.png ├── Handout-03-Destroy-Mode.png ├── Handout-03-Equip-Mode.png ├── Handout-03-Sell-Mode.png ├── Handout-03-Use-Mode.png ├── Handout-03-View-Mode.png ├── Handout-04-Hide-Playerbot-Control.png ├── Handout-05-Hide-Playerbots.png ├── Handout-06-Browse-Friendbots.png ├── Handout-06-Firendbots.png ├── Handout-06-Show-Friendbots.png ├── Handout-07-Filter-By-Classes.png ├── Handout-07-Filter-Selection.png ├── Handout-08-Friendbot-Button.png ├── Handout-08-No-Browse-Button.png ├── Handout-08-Shows-Filter.png ├── Handout-09-Actionbar-Attack.png ├── Handout-09-Actionbar-Flee.png ├── Handout-09-Beastmaster.png ├── Handout-09-Control.png ├── Handout-09-Drink.png ├── Handout-09-Formation.png ├── Handout-09-Modebar.png ├── Handout-09-Release.png ├── Handout-09-Revive.png ├── Handout-09-Stay-Follow.png ├── Handout-09-Summon.png └── Handout-09-Tank-Attack.png └── Textures ├── Black.blp ├── Grey.blp ├── Iconos.blp ├── Inventory.blp ├── Raidus.blp ├── Raidus_Banner_Bottom.blp ├── Raidus_Banner_Top.blp ├── Raidus_Wanted.blp ├── Reward.blp ├── Stats.blp ├── Talent.blp ├── Talent_Black.blp ├── Talent_DeathKnight1.blp ├── Talent_DeathKnight2.blp ├── Talent_DeathKnight3.blp ├── Talent_Druid1.blp ├── Talent_Druid2.blp ├── Talent_Druid3.blp ├── Talent_Gold_Down.blp ├── Talent_Gold_Down_Arrow.blp ├── Talent_Gold_Down_Arrow_Short.blp ├── Talent_Gold_Down_Left.blp ├── Talent_Gold_Down_Left_Arrow.blp ├── Talent_Gold_Down_Right.blp ├── Talent_Gold_Down_Right_Arrow.blp ├── Talent_Gold_Left_Arrow_Short.blp ├── Talent_Gold_Right_Arrow_Short.blp ├── Talent_Hunter1.blp ├── Talent_Hunter2.blp ├── Talent_Hunter3.blp ├── Talent_Mage1.blp ├── Talent_Mage2.blp ├── Talent_Mage3.blp ├── Talent_Paladin1.blp ├── Talent_Paladin2.blp ├── Talent_Paladin3.blp ├── Talent_Priest1.blp ├── Talent_Priest2.blp ├── Talent_Priest3.blp ├── Talent_Rogue1.blp ├── Talent_Rogue2.blp ├── Talent_Rogue3.blp ├── Talent_Shaman1.blp ├── Talent_Shaman2.blp ├── Talent_Shaman3.blp ├── Talent_Silver_Down.blp ├── Talent_Silver_Down_Arrow.blp ├── Talent_Silver_Down_Arrow_Short.blp ├── Talent_Silver_Down_Left.blp ├── Talent_Silver_Down_Left_Arrow.blp ├── Talent_Silver_Down_Right.blp ├── Talent_Silver_Down_Right_Arrow.blp ├── Talent_Silver_Left_Arrow_Short.blp ├── Talent_Silver_Right_Arrow_Short.blp ├── Talent_Warlock1.blp ├── Talent_Warlock2.blp ├── Talent_Warlock3.blp ├── Talent_Warrior1.blp ├── Talent_Warrior2.blp ├── Talent_Warrior3.blp └── White.blp /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Lua sources 2 | luac.out 3 | 4 | # luarocks build files 5 | *.src.rock 6 | *.zip 7 | *.tar.gz 8 | 9 | # Object files 10 | *.o 11 | *.os 12 | *.ko 13 | *.obj 14 | *.elf 15 | 16 | # Precompiled Headers 17 | *.gch 18 | *.pch 19 | 20 | # Libraries 21 | *.lib 22 | *.a 23 | *.la 24 | *.lo 25 | *.def 26 | *.exp 27 | 28 | # Shared objects (inc. Windows DLLs) 29 | *.dll 30 | *.so 31 | *.so.* 32 | *.dylib 33 | 34 | # Executables 35 | *.exe 36 | *.out 37 | *.app 38 | *.i*86 39 | *.x86_64 40 | *.hex 41 | 42 | -------------------------------------------------------------------------------- /Icons/addclass_deathknight.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_deathknight.blp -------------------------------------------------------------------------------- /Icons/addclass_druid.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_druid.blp -------------------------------------------------------------------------------- /Icons/addclass_hunter.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_hunter.blp -------------------------------------------------------------------------------- /Icons/addclass_mage.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_mage.blp -------------------------------------------------------------------------------- /Icons/addclass_paladin.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_paladin.blp -------------------------------------------------------------------------------- /Icons/addclass_priest.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_priest.blp -------------------------------------------------------------------------------- /Icons/addclass_rogue.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_rogue.blp -------------------------------------------------------------------------------- /Icons/addclass_shaman.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_shaman.blp -------------------------------------------------------------------------------- /Icons/addclass_warlock.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_warlock.blp -------------------------------------------------------------------------------- /Icons/addclass_warrior.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/addclass_warrior.blp -------------------------------------------------------------------------------- /Icons/attack.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack.blp -------------------------------------------------------------------------------- /Icons/attack_dps.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack_dps.blp -------------------------------------------------------------------------------- /Icons/attack_healer.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack_healer.blp -------------------------------------------------------------------------------- /Icons/attack_melee.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack_melee.blp -------------------------------------------------------------------------------- /Icons/attack_range.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack_range.blp -------------------------------------------------------------------------------- /Icons/attack_ranged.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack_ranged.blp -------------------------------------------------------------------------------- /Icons/attack_tank.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/attack_tank.blp -------------------------------------------------------------------------------- /Icons/border.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/border.blp -------------------------------------------------------------------------------- /Icons/browse.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/browse.blp -------------------------------------------------------------------------------- /Icons/class_deathknight.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_deathknight.blp -------------------------------------------------------------------------------- /Icons/class_druid.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_druid.blp -------------------------------------------------------------------------------- /Icons/class_hunter.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_hunter.blp -------------------------------------------------------------------------------- /Icons/class_mage.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_mage.blp -------------------------------------------------------------------------------- /Icons/class_paladin.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_paladin.blp -------------------------------------------------------------------------------- /Icons/class_priest.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_priest.blp -------------------------------------------------------------------------------- /Icons/class_rogue.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_rogue.blp -------------------------------------------------------------------------------- /Icons/class_shaman.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_shaman.blp -------------------------------------------------------------------------------- /Icons/class_unknown.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_unknown.blp -------------------------------------------------------------------------------- /Icons/class_warlock.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_warlock.blp -------------------------------------------------------------------------------- /Icons/class_warrior.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/class_warrior.blp -------------------------------------------------------------------------------- /Icons/command_follow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/command_follow.blp -------------------------------------------------------------------------------- /Icons/command_stay.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/command_stay.blp -------------------------------------------------------------------------------- /Icons/filter_browse.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_browse.blp -------------------------------------------------------------------------------- /Icons/filter_deathknight.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_deathknight.blp -------------------------------------------------------------------------------- /Icons/filter_druid.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_druid.blp -------------------------------------------------------------------------------- /Icons/filter_hunter.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_hunter.blp -------------------------------------------------------------------------------- /Icons/filter_mage.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_mage.blp -------------------------------------------------------------------------------- /Icons/filter_none.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_none.blp -------------------------------------------------------------------------------- /Icons/filter_paladin.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_paladin.blp -------------------------------------------------------------------------------- /Icons/filter_priest.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_priest.blp -------------------------------------------------------------------------------- /Icons/filter_rogue.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_rogue.blp -------------------------------------------------------------------------------- /Icons/filter_shaman.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_shaman.blp -------------------------------------------------------------------------------- /Icons/filter_warlock.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_warlock.blp -------------------------------------------------------------------------------- /Icons/filter_warrior.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/filter_warrior.blp -------------------------------------------------------------------------------- /Icons/flee.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee.blp -------------------------------------------------------------------------------- /Icons/flee_dps.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_dps.blp -------------------------------------------------------------------------------- /Icons/flee_healer.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_healer.blp -------------------------------------------------------------------------------- /Icons/flee_melee.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_melee.blp -------------------------------------------------------------------------------- /Icons/flee_range.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_range.blp -------------------------------------------------------------------------------- /Icons/flee_ranged.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_ranged.blp -------------------------------------------------------------------------------- /Icons/flee_tank.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_tank.blp -------------------------------------------------------------------------------- /Icons/flee_target.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/flee_target.blp -------------------------------------------------------------------------------- /Icons/formation.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation.blp -------------------------------------------------------------------------------- /Icons/formation_arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_arrow.blp -------------------------------------------------------------------------------- /Icons/formation_chaos.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_chaos.blp -------------------------------------------------------------------------------- /Icons/formation_circle.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_circle.blp -------------------------------------------------------------------------------- /Icons/formation_line.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_line.blp -------------------------------------------------------------------------------- /Icons/formation_melee.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_melee.blp -------------------------------------------------------------------------------- /Icons/formation_near.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_near.blp -------------------------------------------------------------------------------- /Icons/formation_queue.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_queue.blp -------------------------------------------------------------------------------- /Icons/formation_shield.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/formation_shield.blp -------------------------------------------------------------------------------- /Icons/invite.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/invite.blp -------------------------------------------------------------------------------- /Icons/invite_party_5.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/invite_party_5.blp -------------------------------------------------------------------------------- /Icons/invite_raid_10.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/invite_raid_10.blp -------------------------------------------------------------------------------- /Icons/invite_raid_25.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/invite_raid_25.blp -------------------------------------------------------------------------------- /Icons/invite_raid_40.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/invite_raid_40.blp -------------------------------------------------------------------------------- /Icons/language_deDE.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/language_deDE.blp -------------------------------------------------------------------------------- /Icons/language_enGB.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/language_enGB.blp -------------------------------------------------------------------------------- /Icons/language_none.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/language_none.blp -------------------------------------------------------------------------------- /Icons/mode_grind.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/mode_grind.blp -------------------------------------------------------------------------------- /Icons/mode_passive.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/mode_passive.blp -------------------------------------------------------------------------------- /Icons/reward.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/reward.blp -------------------------------------------------------------------------------- /Icons/roster_actives.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/roster_actives.blp -------------------------------------------------------------------------------- /Icons/roster_friends.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/roster_friends.blp -------------------------------------------------------------------------------- /Icons/roster_members.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/roster_members.blp -------------------------------------------------------------------------------- /Icons/roster_players.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/roster_players.blp -------------------------------------------------------------------------------- /Icons/rtsc.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc.blp -------------------------------------------------------------------------------- /Icons/rtsc_browse.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_browse.blp -------------------------------------------------------------------------------- /Icons/rtsc_dps.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_dps.blp -------------------------------------------------------------------------------- /Icons/rtsc_group1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_group1.blp -------------------------------------------------------------------------------- /Icons/rtsc_group2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_group2.blp -------------------------------------------------------------------------------- /Icons/rtsc_group3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_group3.blp -------------------------------------------------------------------------------- /Icons/rtsc_group4.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_group4.blp -------------------------------------------------------------------------------- /Icons/rtsc_group5.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_group5.blp -------------------------------------------------------------------------------- /Icons/rtsc_healer.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_healer.blp -------------------------------------------------------------------------------- /Icons/rtsc_melee.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_melee.blp -------------------------------------------------------------------------------- /Icons/rtsc_range.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_range.blp -------------------------------------------------------------------------------- /Icons/rtsc_ranged.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_ranged.blp -------------------------------------------------------------------------------- /Icons/rtsc_tank.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_tank.blp -------------------------------------------------------------------------------- /Icons/rtsc_target.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/rtsc_target.blp -------------------------------------------------------------------------------- /Icons/xp_progress_18_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_18_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_27_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_27_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_36_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_36_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_45_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_45_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_54_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_54_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_63_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_63_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_72_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_72_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_81_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_81_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_90_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_90_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_99_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_99_percent.blp -------------------------------------------------------------------------------- /Icons/xp_progress_9_percent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Icons/xp_progress_9_percent.blp -------------------------------------------------------------------------------- /MultiBot.toc: -------------------------------------------------------------------------------- 1 | ## Interface: 30300 2 | ## Version: 2.0.0 3 | ## Title: MultiBot 4 | ## Notes: User Interface for Playerbot 5 | ## Author: Nico Löbbert 6 | ## SavedVariablesPerCharacter: MultiBotSave 7 | ## SavedVariables: MultiBotGlobalSave 8 | 9 | MultiBot.lua 10 | MultiBotLanguage-deDE.lua 11 | MultiBotLanguage-enGB.lua 12 | MultiBotLanguage-enUS.lua 13 | MultiBotLanguage-frFR.lua 14 | MultiBotLanguage-zhCN.lua 15 | MultiBotLanguage-koKR.lua 16 | MultiBotLanguage-ruRU.lua 17 | MultiBotLanguage-esES.lua 18 | MultiBotEngine.lua 19 | MultiBotHandler.lua 20 | MultiBotDeathKnight.lua 21 | MultiBotDruid.lua 22 | MultiBotHunter.lua 23 | MultiBotMage.lua 24 | MultiBotPaladin.lua 25 | MultiBotPriest.lua 26 | MultiBotRogue.lua 27 | MultiBotShaman.lua 28 | MultiBotWarlock.lua 29 | MultiBotWarrior.lua 30 | MultiBotEvery.lua 31 | MultiBotStats.lua 32 | MultiBotSpell.lua 33 | MultiBotItem.lua 34 | MultiBotInit.lua 35 | MultiBotItemus.lua 36 | MultiBotIconos.lua 37 | MultiBotTalent.lua 38 | MultiBotReward.lua 39 | MultiBotNecronet.lua 40 | MultiBotRaidus.lua -------------------------------------------------------------------------------- /MultiBotDeathKnight.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addDeathKnight = function(pFrame, pCombat, pNormal) 2 | local tButton = pFrame.addButton("Presence", 0, 0, "spell_deathknight_bloodpresence", MultiBot.tips.deathknight.presence.master).setDisable() 3 | tButton.doLeft = function(pButton) 4 | MultiBot.ShowHideSwitch(pButton.getFrame("Presence")) 5 | end 6 | 7 | local tFrame = pFrame.addFrame("Presence", -2, 30) 8 | tFrame:Hide() 9 | 10 | tFrame.addButton("Unholy", 0, 0, "spell_deathknight_unholypresence", MultiBot.tips.deathknight.presence.unholy) 11 | .doLeft = function(pButton) 12 | MultiBot.SelectToTarget(pButton.get(), "Presence", pButton.texture, "co +unholy,?", pButton.getName()) 13 | pButton.getButton("Presence").doRight = function(pButton) 14 | MultiBot.OnOffActionToTarget(pButton, "co +unholy,?", "co -unholy,?", pButton.getName()) 15 | end 16 | end 17 | 18 | tFrame.addButton("Frost", 0, 26, "spell_deathknight_frostpresence", MultiBot.tips.deathknight.presence.frost) 19 | .doLeft = function(pButton) 20 | MultiBot.SelectToTarget(pButton.get(), "Presence", pButton.texture, "co +frost,?", pButton.getName()) 21 | pButton.getButton("Presence").doRight = function(pButton) 22 | MultiBot.OnOffActionToTarget(pButton, "co +frost,?", "co -frost,?", pButton.getName()) 23 | end 24 | end 25 | 26 | tFrame.addButton("Blood", 0, 52, "spell_deathknight_bloodpresence", MultiBot.tips.deathknight.presence.blood) 27 | .doLeft = function(pButton) 28 | MultiBot.SelectToTarget(pButton.get(), "Presence", pButton.texture, "co +blood,?", pButton.getName()) 29 | pButton.getButton("Presence").doRight = function(pButton) 30 | MultiBot.OnOffActionToTarget(pButton, "co +blood,?", "co -blood,?", pButton.getName()) 31 | end 32 | end 33 | 34 | -- SRATEGIES:PRESENCE --- 35 | 36 | if(MultiBot.isInside(pCombat, "unholy")) then 37 | tButton.setTexture("spell_deathknight_unholypresence").setEnable().doRight = function(pButton) 38 | MultiBot.OnOffActionToTarget(pButton, "co +unholy,?", "co -unholy,?", pButton.getName()) 39 | end 40 | elseif(MultiBot.isInside(pCombat, "frost")) then 41 | tButton.setTexture("spell_deathknight_frostpresence").setEnable().doRight = function(pButton) 42 | MultiBot.OnOffActionToTarget(pButton, "co +frost,?", "co -frost,?", pButton.getName()) 43 | end 44 | elseif(MultiBot.isInside(pCombat, "blood")) then 45 | tButton.setTexture("spell_deathknight_bloodpresence").setEnable().doRight = function(pButton) 46 | MultiBot.OnOffActionToTarget(pButton, "co +blood,?", "co -blood,?", pButton.getName()) 47 | end 48 | end 49 | 50 | -- DPS -- 51 | 52 | pFrame.addButton("DpsControl", -30, 0, "ability_warrior_challange", MultiBot.tips.deathknight.dps.master) 53 | .doLeft = function(pButton) 54 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 55 | end 56 | 57 | local tFrame = pFrame.addFrame("DpsControl", -32, 30) 58 | tFrame:Hide() 59 | 60 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.deathknight.dps.dpsAssist).setDisable() 61 | .doLeft = function(pButton) 62 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 63 | pButton.getButton("TankAssist").setDisable() 64 | pButton.getButton("DpsAoe").setDisable() 65 | end 66 | end 67 | 68 | tFrame.addButton("DpsAoe", 0, 26, "spell_holy_surgeoflight", MultiBot.tips.deathknight.dps.dpsAoe).setDisable() 69 | .doLeft = function(pButton) 70 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 71 | pButton.getButton("TankAssist").setDisable() 72 | pButton.getButton("DpsAssist").setDisable() 73 | end 74 | end 75 | 76 | -- ASSIST -- 77 | 78 | pFrame.addButton("TankAssist", -60, 0, "ability_warrior_innerrage", MultiBot.tips.deathknight.tankAssist).setDisable() 79 | .doLeft = function(pButton) 80 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 81 | pButton.getButton("DpsAssist").setDisable() 82 | pButton.getButton("DpsAoe").setDisable() 83 | end 84 | end 85 | 86 | -- STRATEGIES -- 87 | 88 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 89 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 90 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 91 | end -------------------------------------------------------------------------------- /MultiBotDruid.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addDruid = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("Heal", 0, 0, "spell_holy_aspiration", MultiBot.tips.druid.heal).setDisable() 3 | .doLeft = function(pButton) 4 | if(MultiBot.OnOffActionToTarget(pButton, "co +heal,?", "co -heal,?", pButton.getName())) then 5 | pButton.getButton("Caster").setDisable() 6 | pButton.getButton("Tank").setDisable() 7 | pButton.getButton("Bear").setDisable() 8 | pButton.getButton("Cat").setDisable() 9 | pButton.getButton("Dps").setDisable() 10 | end 11 | end 12 | 13 | -- BUFF -- 14 | 15 | pFrame.addButton("Buff", -30, 0, "spell_holy_power", MultiBot.tips.druid.buff).setDisable() 16 | .doLeft = function(pButton) 17 | MultiBot.OnOffActionToTarget(pButton, "nc +buff,?", "nc -buff,?", pButton.getName()) 18 | end 19 | 20 | -- PLAYBOOK -- 21 | 22 | pFrame.addButton("Playbook", -60, 0, "inv_misc_book_06", MultiBot.tips.druid.playbook.master) 23 | .doLeft = function(pButton) 24 | MultiBot.ShowHideSwitch(pButton.getFrame("Playbook")) 25 | end 26 | 27 | local tFrame = pFrame.addFrame("Playbook", -62, 30) 28 | tFrame:Hide() 29 | 30 | tFrame.addButton("CasterDebuff", 0, 0, "ability_druid_cower", MultiBot.tips.druid.playbook.casterDebuff).setDisable() 31 | .doLeft = function(pButton) 32 | if(MultiBot.OnOffActionToTarget(pButton, "co +caster debuff,?", "co -caster debuff,?", pButton.getName())) then 33 | pButton.getButton("DpsDebuff").setEnable() 34 | else 35 | pButton.getButton("DpsDebuff").setDisable() 36 | end 37 | end 38 | 39 | tFrame.addButton("CasterAoe", 0, 26, "spell_arcane_starfire", MultiBot.tips.druid.playbook.casterAoe).setDisable() 40 | .doLeft = function(pButton) 41 | MultiBot.OnOffActionToTarget(pButton, "co +caster aoe,?", "co -caster aoe,?", pButton.getName()) 42 | end 43 | 44 | tFrame.addButton("Caster", 0, 52, "spell_nature_starfall", MultiBot.tips.druid.playbook.caster).setDisable() 45 | .doLeft = function(pButton) 46 | if(MultiBot.OnOffActionToTarget(pButton, "co +caster,?", "co -caster,?", pButton.getName())) then 47 | pButton.getButton("Heal").setDisable() 48 | pButton.getButton("Tank").setDisable() 49 | pButton.getButton("Bear").setDisable() 50 | pButton.getButton("Cat").setDisable() 51 | pButton.getButton("Dps").setDisable() 52 | end 53 | end 54 | 55 | tFrame.addButton("CatAoe", 0, 78, "ability_druid_bash", MultiBot.tips.druid.playbook.catAoe).setDisable() 56 | .doLeft = function(pButton) 57 | MultiBot.OnOffActionToTarget(pButton, "co +cat aoe,?", "co -cat aoe,?", pButton.getName()) 58 | end 59 | 60 | tFrame.addButton("Cat", 0, 104, "ability_druid_catform", MultiBot.tips.druid.playbook.cat).setDisable() 61 | .doLeft = function(pButton) 62 | if(MultiBot.OnOffActionToTarget(pButton, "co +cat,?", "co -cat,?", pButton.getName())) then 63 | pButton.getButton("Caster").setDisable() 64 | pButton.getButton("Heal").setDisable() 65 | pButton.getButton("Tank").setDisable() 66 | pButton.getButton("Bear").setDisable() 67 | pButton.getButton("Dps").setEnable() 68 | else 69 | pButton.getButton("Dps").setDisable() 70 | end 71 | end 72 | 73 | tFrame.addButton("Bear", 0, 130, "ability_racial_bearform", MultiBot.tips.druid.playbook.bear).setDisable() 74 | .doLeft = function(pButton) 75 | if(MultiBot.OnOffActionToTarget(pButton, "co +bear,?", "co -bear,?", pButton.getName())) then 76 | pButton.getButton("Caster").setDisable() 77 | pButton.getButton("Heal").setDisable() 78 | pButton.getButton("Cat").setDisable() 79 | pButton.getButton("Dps").setDisable() 80 | pButton.getButton("Tank").setEnable() 81 | else 82 | pButton.getButton("Tank").setDisable() 83 | end 84 | end 85 | 86 | -- DPS -- 87 | 88 | pFrame.addButton("DpsControl", -90, 0, "ability_warrior_challange", MultiBot.tips.druid.dps.master) 89 | .doLeft = function(pButton) 90 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 91 | end 92 | 93 | local tFrame = pFrame.addFrame("DpsControl", -92, 30) 94 | tFrame:Hide() 95 | 96 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.druid.dps.dpsAssist).setDisable() 97 | .doLeft = function(pButton) 98 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 99 | pButton.getButton("TankAssist").setDisable() 100 | pButton.getButton("DpsAoe").setDisable() 101 | end 102 | end 103 | 104 | tFrame.addButton("DpsDebuff", 0, 26, "spell_holy_restoration", MultiBot.tips.druid.dps.dpsDebuff).setDisable() 105 | .doLeft = function(pButton) 106 | if(MultiBot.OnOffActionToTarget(pButton, "co +caster debuff,?", "co -caster debuff,?", pButton.getName())) then 107 | pButton.getButton("CasterDebuff").setEnable() 108 | else 109 | pButton.getButton("CasterDebuff").setDisable() 110 | end 111 | end 112 | 113 | tFrame.addButton("DpsAoe", 0, 52, "spell_holy_surgeoflight", MultiBot.tips.druid.dps.dpsAoe).setDisable() 114 | .doLeft = function(pButton) 115 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 116 | pButton.getButton("TankAssist").setDisable() 117 | pButton.getButton("DpsAssist").setDisable() 118 | end 119 | end 120 | 121 | tFrame.addButton("Dps", 0, 78, "spell_holy_divinepurpose", MultiBot.tips.druid.dps.dps).setDisable() 122 | .doLeft = function(pButton) 123 | if(MultiBot.OnOffActionToTarget(pButton, "co +cat,?", "co -cat,?", pButton.getName())) then 124 | pButton.getButton("Caster").setDisable() 125 | pButton.getButton("Tank").setDisable() 126 | pButton.getButton("Bear").setDisable() 127 | pButton.getButton("Cat").setEnable() 128 | else 129 | pButton.getButton("Cat").setDisable() 130 | end 131 | end 132 | 133 | -- ASSIST -- 134 | 135 | pFrame.addButton("TankAssist", -120, 0, "ability_warrior_innerrage", MultiBot.tips.druid.tankAssist).setDisable() 136 | .doLeft = function(pButton) 137 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 138 | pButton.getButton("DpsAssist").setDisable() 139 | pButton.getButton("DpsAoe").setDisable() 140 | end 141 | end 142 | 143 | -- TANK -- 144 | 145 | pFrame.addButton("Tank", -150, 0, "ability_warrior_shieldmastery", MultiBot.tips.druid.tank).setDisable() 146 | .doLeft = function(pButton) 147 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank,?", "co -tank,?", pButton.getName())) then 148 | pButton.getButton("Caster").setDisable() 149 | pButton.getButton("Heal").setDisable() 150 | pButton.getButton("Dps").setDisable() 151 | pButton.getButton("Cat").setDisable() 152 | pButton.getButton("Bear").setEnable() 153 | else 154 | pButton.getButton("Bear").setDisable() 155 | end 156 | end 157 | 158 | -- STRATEGIES -- 159 | 160 | if(MultiBot.isInside(pCombat, "heal")) then pFrame.getButton("Heal").setEnable() end 161 | if(MultiBot.isInside(pNormal, "buff,")) then pFrame.getButton("Buff").setEnable() end 162 | if(MultiBot.isInside(pCombat, "caster debuff")) then pFrame.getButton("CasterDebuff").setEnable() end 163 | if(MultiBot.isInside(pCombat, "caster aoe")) then pFrame.getButton("CasterAoe").setEnable() end 164 | if(MultiBot.isInside(pCombat, "caster,")) then pFrame.getButton("Caster").setEnable() end 165 | if(MultiBot.isInside(pCombat, "cat aoe")) then pFrame.getButton("CatAoe").setEnable() end 166 | if(MultiBot.isInside(pCombat, "cat,")) then pFrame.getButton("Cat").setEnable() end 167 | if(MultiBot.isInside(pCombat, "bear")) then pFrame.getButton("Bear").setEnable() end 168 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 169 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 170 | if(MultiBot.isInside(pCombat, "cat,")) then pFrame.getButton("Dps").setEnable() end 171 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 172 | if(MultiBot.isInside(pCombat, "bear,")) then pFrame.getButton("Tank").setEnable() end 173 | end -------------------------------------------------------------------------------- /MultiBotEvery.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addEvery = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("Summon", 64, 0, "ability_hunter_beastcall", MultiBot.tips.every.summon) 3 | .doLeft = function(pButton) 4 | MultiBot.ActionToTarget("summon", pButton.getName()) 5 | end 6 | 7 | pFrame.addButton("Uninvite", 94, 0, "inv_misc_grouplooking", MultiBot.tips.every.uninvite).doShow() 8 | .doLeft = function(pButton) 9 | MultiBot.doSlash("/uninvite", pButton.getName()) 10 | pButton.getButton("Invite").doShow() 11 | pButton.doHide() 12 | end 13 | 14 | pFrame.addButton("Invite", 94, 0, "inv_misc_groupneedmore", MultiBot.tips.every.invite).doHide() 15 | .doLeft = function(pButton) 16 | MultiBot.doSlash("/invite", pButton.getName()) 17 | pButton.getButton("Uninvite").doShow() 18 | pButton.doHide() 19 | end 20 | 21 | pFrame.addButton("Food", 124, 0, "inv_drink_24_sealwhey", MultiBot.tips.every.food).setDisable() 22 | .doLeft = function(pButton) 23 | MultiBot.OnOffActionToTarget(pButton, "nc +food,?", "nc -food,?", pButton.getName()) 24 | end 25 | 26 | pFrame.addButton("Loot", 154, 0, "inv_misc_coin_16", MultiBot.tips.every.loot).setDisable() 27 | .doLeft = function(pButton) 28 | MultiBot.OnOffActionToTarget(pButton, "nc +loot,?", "nc -loot,?", pButton.getName()) 29 | end 30 | 31 | pFrame.addButton("Gather", 184, 0, "trade_mining", MultiBot.tips.every.gather).setDisable() 32 | .doLeft = function(pButton) 33 | MultiBot.OnOffActionToTarget(pButton, "nc +gather,?", "nc -gather,?", pButton.getName()) 34 | end 35 | 36 | -- Selfbot is not allowed to use these Tools -- 37 | if(pFrame.getName() == UnitName("player")) then return end 38 | 39 | pFrame.addButton("Inventory", 214, 0, "inv_misc_bag_08", MultiBot.tips.every.inventory).setDisable() 40 | .doLeft = function(pButton) 41 | if(pButton.state) then 42 | MultiBot.inventory:Hide() 43 | pButton.setDisable() 44 | else 45 | local tUnits = MultiBot.frames["MultiBar"].frames["Units"] 46 | for key, value in pairs(MultiBot.index.actives) do 47 | if(tUnits.buttons[value].name ~= UnitName("player")) then 48 | tUnits.frames[value].getButton("Inventory").setDisable() 49 | end 50 | end 51 | 52 | pButton.setEnable() 53 | MultiBot.inventory.name = pButton.getName() 54 | tUnits.buttons[MultiBot.inventory.name].waitFor = "INVENTORY" 55 | SendChatMessage("items", "WHISPER", nil, pButton.getName()) 56 | end 57 | end 58 | 59 | pFrame.addButton("Spellbook", 244, 0, "inv_misc_book_09", MultiBot.tips.every.spellbook).setDisable() 60 | .doLeft = function(pButton) 61 | if(pButton.state) then 62 | MultiBot.spellbook:Hide() 63 | pButton.setDisable() 64 | else 65 | local tUnits = MultiBot.frames["MultiBar"].frames["Units"] 66 | for key, value in pairs(MultiBot.index.actives) do 67 | if(tUnits.buttons[value].name ~= UnitName("player")) then 68 | tUnits.frames[value].getButton("Spellbook").setDisable() 69 | end 70 | end 71 | 72 | pButton.setEnable() 73 | MultiBot.spellbook.name = pButton.getName() 74 | tUnits.buttons[MultiBot.spellbook.name].waitFor = "SPELLBOOK" 75 | SendChatMessage("spells", "WHISPER", nil, pButton.getName()) 76 | end 77 | end 78 | 79 | pFrame.addButton("Talent", 274, 0, "ability_marksmanship", MultiBot.tips.every.talent).setDisable() 80 | .doLeft = function(pButton) 81 | if(pButton.state) then 82 | pButton.setDisable() 83 | MultiBot.talent:Hide() 84 | elseif(UnitLevel(MultiBot.toUnit(pButton.getName())) < 10) then 85 | SendChatMessage(MultiBot.info.talent.Level, "SAY") 86 | elseif(CheckInteractDistance(MultiBot.toUnit(pButton.getName()), 1) == nil) then 87 | SendChatMessage(MultiBot.info.talent.OutOfRange, "SAY") 88 | else 89 | MultiBot.talent:Hide() 90 | MultiBot.talent.doClear() 91 | 92 | local tUnits = MultiBot.frames["MultiBar"].frames["Units"] 93 | for key, value in pairs(MultiBot.index.actives) do 94 | if(tUnits.buttons[value].name ~= UnitName("player")) then 95 | tUnits.frames[value].getButton("Talent").setDisable() 96 | end 97 | end 98 | 99 | InspectUnit(MultiBot.toUnit(pButton.getName())) 100 | pButton.setEnable() 101 | 102 | MultiBot.talent.name = pButton.getName() 103 | MultiBot.talent.class = pButton.getClass() 104 | MultiBot.auto.talent = true 105 | end 106 | end 107 | 108 | -- STRATEGIES -- 109 | 110 | if(MultiBot.isInside(pNormal, "food")) then pFrame.getButton("Food").setEnable() end 111 | if(MultiBot.isInside(pNormal, "loot")) then pFrame.getButton("Loot").setEnable() end 112 | if(MultiBot.isInside(pNormal, "gather")) then pFrame.getButton("Gather").setEnable() end 113 | end -------------------------------------------------------------------------------- /MultiBotHunter.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addHunter = function(pFrame, pCombat, pNormal) 2 | local tButton = pFrame.addButton("NonCombatAspect", 0, 0, "spell_nature_protectionformnature", MultiBot.tips.hunter.naspect.master) 3 | tButton.doLeft = function(pButton) 4 | MultiBot.ShowHideSwitch(pButton.parent.frames["NonCombatAspect"]) 5 | end 6 | 7 | local tFrame = pFrame.addFrame("NonCombatAspect", -2, 30) 8 | tFrame:Hide() 9 | 10 | tFrame.addButton("NonCombatNature", 0, 0, "spell_nature_protectionformnature", MultiBot.tips.hunter.naspect.rnature) 11 | .doLeft = function(pButton) 12 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAspect", pButton.texture, "nc +rnature,?", pButton.getName()) 13 | pButton.getButton("NonCombatAspect").doRight = function(pButton) 14 | MultiBot.OnOffActionToTarget(pButton, "nc +rnature,?", "nc -rnature,?", pButton.getName()) 15 | end 16 | end 17 | 18 | tFrame.addButton("NonCombatSpeed", 0, 26, "ability_mount_whitetiger", MultiBot.tips.hunter.naspect.bspeed) 19 | .doLeft = function(pButton) 20 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAspect", pButton.texture, "nc +bspeed,?", pButton.getName()) 21 | pButton.getButton("NonCombatAspect").doRight = function(pButton) 22 | MultiBot.OnOffActionToTarget(pButton, "nc +bspeed,?", "nc -bspeed,?", pButton.getName()) 23 | end 24 | end 25 | 26 | tFrame.addButton("NonCombatMana", 0, 52, "ability_hunter_aspectoftheviper", MultiBot.tips.hunter.naspect.bmana) 27 | .doLeft = function(pButton) 28 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAspect", pButton.texture, "nc +bmana,?", pButton.getName()) 29 | pButton.getButton("NonCombatAspect").doRight = function(pButton) 30 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 31 | end 32 | end 33 | 34 | tFrame.addButton("NonCombatDps", 0, 78, "ability_hunter_pet_dragonhawk", MultiBot.tips.hunter.naspect.bdps) 35 | .doLeft = function(pButton) 36 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAspect", pButton.texture, "nc +bdps,?", pButton.getName()) 37 | pButton.getButton("NonCombatAspect").doRight = function(pButton) 38 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 39 | end 40 | end 41 | 42 | -- STRATEGIES:NON-COMBAT-BUFF -- 43 | 44 | if(MultiBot.isInside(pNormal, "rnature")) then 45 | tButton.setTexture("spell_nature_protectionformnature").setEnable().doRight = function(pButton) 46 | MultiBot.OnOffActionToTarget(pButton, "nc +rnature,?", "nc -rnature,?", pButton.getName()) 47 | end 48 | elseif(MultiBot.isInside(pNormal, "bspeed")) then 49 | tButton.setTexture("ability_mount_whitetiger").setEnable().doRight = function(pButton) 50 | MultiBot.OnOffActionToTarget(pButton, "nc +bspeed,?", "nc -bspeed,?", pButton.getName()) 51 | end 52 | elseif(MultiBot.isInside(pNormal, "bmana")) then 53 | tButton.setTexture("ability_hunter_aspectoftheviper").setEnable().doRight = function(pButton) 54 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 55 | end 56 | elseif(MultiBot.isInside(pNormal, "bdps")) then 57 | tButton.setTexture("ability_hunter_pet_dragonhawk").setEnable().doRight = function(pButton) 58 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 59 | end 60 | end 61 | 62 | -- COMABT-BUFF -- 63 | 64 | local tButton = pFrame.addButton("CombatAspect", -30, 0, "spell_nature_protectionformnature", MultiBot.tips.hunter.caspect.master) 65 | tButton.doLeft = function(pButton) 66 | MultiBot.ShowHideSwitch(pButton.parent.frames["CombatAspect"]) 67 | end 68 | 69 | local tFrame = pFrame.addFrame("CombatAspect", -32, 30) 70 | tFrame:Hide() 71 | 72 | tFrame.addButton("CombatNature", 0, 0, "spell_nature_protectionformnature", MultiBot.tips.hunter.caspect.rnature) 73 | .doLeft = function(pButton) 74 | MultiBot.SelectToTarget(pButton.get(), "CombatAspect", pButton.texture, "co +rnature,?", pButton.getName()) 75 | pButton.getButton("CombatAspect").doRight = function(pButton) 76 | MultiBot.OnOffActionToTarget(pButton, "co +rnature,?", "co -rnature,?", pButton.getName()) 77 | end 78 | end 79 | 80 | tFrame.addButton("CombatSpeed", 0, 26, "ability_mount_whitetiger", MultiBot.tips.hunter.caspect.bspeed) 81 | .doLeft = function(pButton) 82 | MultiBot.SelectToTarget(pButton.get(), "CombatAspect", pButton.texture, "co +bspeed,?", pButton.getName()) 83 | pButton.getButton("NonCombatAspect").doRight = function(pButton) 84 | MultiBot.OnOffActionToTarget(pButton, "co +bspeed,?", "co -bspeed,?", pButton.getName()) 85 | end 86 | end 87 | 88 | tFrame.addButton("CombatMana", 0, 52, "ability_hunter_aspectoftheviper", MultiBot.tips.hunter.caspect.bmana) 89 | .doLeft = function(pButton) 90 | MultiBot.SelectToTarget(pButton.get(), "CombatAspect", pButton.texture, "co +bmana,?", pButton.getName()) 91 | pButton.getButton("CombatAspect").doRight = function(pButton) 92 | MultiBot.OnOffActionToTarget(pButton, "co +bmana,?", "co -bmana,?", pButton.getName()) 93 | end 94 | end 95 | 96 | tFrame.addButton("CombatDps", 0, 78, "ability_hunter_pet_dragonhawk", MultiBot.tips.hunter.caspect.bdps) 97 | .doLeft = function(pButton) 98 | MultiBot.SelectToTarget(pButton.get(), "CombatAspect", pButton.texture, "co +bdps,?", pButton.getName()) 99 | pButton.getButton("CombatAspect").doRight = function(pButton) 100 | MultiBot.OnOffActionToTarget(pButton, "co +bdps,?", "co -bdps,?", pButton.getName()) 101 | end 102 | end 103 | 104 | -- STRATEGIES:COMABT-ASPECT -- 105 | 106 | if(MultiBot.isInside(pCombat, "rnature")) then 107 | tButton.setTexture("spell_nature_protectionformnature").setEnable().doRight = function(pButton) 108 | MultiBot.OnOffActionToTarget(pButton, "co +rnature,?", "co -rnature,?", pButton.getName()) 109 | end 110 | elseif(MultiBot.isInside(pCombat, "bspeed")) then 111 | tButton.setTexture("ability_mount_whitetiger").setEnable().doRight = function(pButton) 112 | MultiBot.OnOffActionToTarget(pButton, "co +bspeed,?", "co -bspeed,?", pButton.getName()) 113 | end 114 | elseif(MultiBot.isInside(pCombat, "bmana")) then 115 | tButton.setTexture("ability_hunter_aspectoftheviper").setEnable().doRight = function(pButton) 116 | MultiBot.OnOffActionToTarget(pButton, "co +bmana,?", "co -bmana,?", pButton.getName()) 117 | end 118 | elseif(MultiBot.isInside(pCombat, "bdps")) then 119 | tButton.setTexture("ability_hunter_pet_dragonhawk").setEnable().doRight = function(pButton) 120 | MultiBot.OnOffActionToTarget(pButton, "co +bdps,?", "co -bdps,?", pButton.getName()) 121 | end 122 | end 123 | 124 | -- DPS -- 125 | 126 | pFrame.addButton("DpsControl", -60, 0, "ability_warrior_challange", MultiBot.tips.hunter.dps.master) 127 | .doLeft = function(pButton) 128 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 129 | end 130 | 131 | local tFrame = pFrame.addFrame("DpsControl", -62, 30) 132 | tFrame:Hide() 133 | 134 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.hunter.dps.dpsAssist).setDisable() 135 | .doLeft = function(pButton) 136 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 137 | pButton.getButton("TankAssist").setDisable() 138 | pButton.getButton("DpsAoe").setDisable() 139 | end 140 | end 141 | 142 | tFrame.addButton("DpsDebuff", 0, 26, "spell_holy_restoration", MultiBot.tips.hunter.dps.dpsDebuff).setDisable() 143 | .doLeft = function(pButton) 144 | MultiBot.OnOffActionToTarget(pButton, "co +dps debuff,?", "co -dps debuff,?", pButton.getName()) 145 | end 146 | 147 | tFrame.addButton("DpsAoe", 0, 52, "spell_holy_surgeoflight", MultiBot.tips.hunter.dps.dpsAoe).setDisable() 148 | .doLeft = function(pButton) 149 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 150 | pButton.getButton("TankAssist").setDisable() 151 | pButton.getButton("DpsAssist").setDisable() 152 | end 153 | end 154 | 155 | tFrame.addButton("Dps", 0, 78, "spell_holy_divinepurpose", MultiBot.tips.hunter.dps.dps).setDisable() 156 | .doLeft = function(pButton) 157 | MultiBot.OnOffActionToTarget(pButton, "co +dps,?", "co -dps,?", pButton.getName()) 158 | end 159 | 160 | -- ASSIST -- 161 | 162 | pFrame.addButton("TankAssist", -90, 0, "ability_warrior_innerrage", MultiBot.tips.hunter.tankAssist).setDisable() 163 | .doLeft = function(pButton) 164 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 165 | pButton.getButton("DpsAssist").setDisable() 166 | pButton.getButton("DpsAoe").setDisable() 167 | end 168 | end 169 | 170 | -- STRATEGIES -- 171 | 172 | if(MultiBot.isInside(pCombat, "dps,")) then pFrame.getButton("Dps").setEnable() end 173 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 174 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 175 | if(MultiBot.isInside(pCombat, "dps debuff")) then pFrame.getButton("DpsDebuff").setEnable() end 176 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 177 | end -------------------------------------------------------------------------------- /MultiBotItem.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addItem = function(pFrame, pInfo) 2 | local tInfo = MultiBot.doSplit(pInfo, "|") 3 | local tID = MultiBot.doSplit(tInfo[3], ":")[2] 4 | 5 | local tIcon = GetItemIcon(tID) 6 | local tName, tLink, tRare = GetItemInfo(tID) 7 | 8 | local tX = (pFrame.index%8) * 38 9 | local tY = math.floor(pFrame.index/8) * -37.1 10 | 11 | if(tName == nil) then tName = string.sub(tInfo[4], 3, string.len(tInfo[4]) - 1) end 12 | if(tLink == nil) then tLink = "|" .. tInfo[2] .. "|" .. tInfo[3] .. "|" .. tInfo[4] .. "|h|r" end 13 | if(tRare == nil) then tRare = 4 end -- for Security 14 | 15 | local tButton = pFrame.addButton(tName, tX, tY, tIcon, tLink) 16 | pFrame.catButton("Catecher", 270, -490, 308, 524) 17 | 18 | tButton.item = {} 19 | tButton.item.id = tID 20 | tButton.item.link = tLink 21 | tButton.item.name = tName 22 | tButton.item.info = pInfo 23 | tButton.item.rare = tRare 24 | 25 | tButton.doLeft = function(pButton) 26 | local tAction = MultiBot.inventory.action 27 | local tName = MultiBot.inventory.name 28 | 29 | if(tAction == "") then 30 | SendChatMessage(MultiBot.info.action, "SAY") 31 | return 32 | end 33 | 34 | if(tAction == "s" and MultiBot.isTarget()) then 35 | if(pButton.item.id == "6948") then return SendChatMessage("I cant sell this Item.", "SAY") end 36 | if(MultiBot.isInside(pButton.item.info, "key")) then return SendChatMessage("I will not sell Keys.", "SAY") end 37 | if(MultiBot.isInside(pButton.item.info, "Key")) then return SendChatMessage("I will not sell Keys.", "SAY") end 38 | SendChatMessage(tAction .. " " .. pButton.tip, "WHISPER", nil, tName) 39 | pButton:Hide() 40 | return 41 | end 42 | 43 | if(tAction == "e" or tAction == "u" or tAction == "give") then 44 | SendChatMessage(tAction .. " " .. pButton.tip, "WHISPER", nil, tName) 45 | return 46 | end 47 | 48 | if(tAction == "destroy") then 49 | if(pButton.item.id == "6948") then return SendChatMessage("I cant drop this Item.", "SAY") end 50 | if(MultiBot.isInside(pButton.item.info, "key")) then return SendChatMessage("I will not drop Keys.", "SAY") end 51 | if(MultiBot.isInside(pButton.item.info, "Key")) then return SendChatMessage("I will not drop Keys.", "SAY") end 52 | if(pButton.item.rare > 3) then return SendChatMessage("I will not drop that good Items.", "SAY") end 53 | SendChatMessage(tAction .. " " .. pButton.tip, "WHISPER", nil, tName) 54 | pButton:Hide() 55 | return 56 | end 57 | end 58 | 59 | if(string.sub(tInfo[6], 1, 2) == "rx") then 60 | tButton.setAmount(string.sub(MultiBot.doSplit(tInfo[6], " ")[1], 3)) 61 | end 62 | 63 | pFrame.index = pFrame.index + 1 64 | end -------------------------------------------------------------------------------- /MultiBotMage.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addMage = function(pFrame, pCombat, pNormal) 2 | local tButton = pFrame.addButton("Buff", 0, 0, "inv_elemental_primal_mana", MultiBot.tips.mage.buff.master) 3 | tButton.doLeft = function(pButton) 4 | MultiBot.ShowHideSwitch(pButton.parent.frames["Buff"]) 5 | end 6 | 7 | local tFrame = pFrame.addFrame("Buff", -2, 30) 8 | tFrame:Hide() 9 | 10 | tFrame.addButton("NonCombatMana", 0, 0, "inv_elemental_primal_mana", MultiBot.tips.mage.buff.bmana) 11 | .doLeft = function(pButton) 12 | MultiBot.SelectToTarget(pButton.get(), "Buff", pButton.texture, "nc +bmana,?", pButton.getName()) 13 | pButton.getButton("Buff").doRight = function(pButton) 14 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 15 | end 16 | end 17 | 18 | tFrame.addButton("NonCombatDps", 0, 26, "inv_elemental_primal_nether", MultiBot.tips.mage.buff.bdps) 19 | .doLeft = function(pButton) 20 | MultiBot.SelectToTarget(pButton.get(), "Buff", pButton.texture, "nc +bdps,?", pButton.getName()) 21 | pButton.getButton("Buff").doRight = function(pButton) 22 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 23 | end 24 | end 25 | 26 | -- STRATEGIES:BUFF -- 27 | 28 | if(MultiBot.isInside(pNormal, "bmana")) then 29 | tButton.setTexture("inv_elemental_primal_mana").setEnable().doRight = function(pButton) 30 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 31 | end 32 | elseif(MultiBot.isInside(pNormal, "bdps")) then 33 | tButton.setTexture("inv_elemental_primal_nether").setEnable().doRight = function(pButton) 34 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 35 | end 36 | end 37 | 38 | -- PLAYBOOK -- 39 | 40 | pFrame.addButton("Playbook", -30, 0, "inv_misc_book_06", MultiBot.tips.mage.playbook.master) 41 | .doLeft = function(pButton) 42 | MultiBot.ShowHideSwitch(pButton.getFrame("Playbook")) 43 | end 44 | 45 | tFrame = pFrame.addFrame("Playbook", -32, 30) 46 | tFrame:Hide() 47 | 48 | tFrame.addButton("ArcaneAoe", 0, 0, "spell_arcane_starfire", MultiBot.tips.mage.playbook.arcaneAoe).setDisable() 49 | .doLeft = function(pButton) 50 | MultiBot.OnOffActionToTarget(pButton, "co +arcane aoe,?", "co -arcane aoe,?", pButton.getName()) 51 | end 52 | 53 | tFrame.addButton("Arcane", 0, 26, "ability_mage_arcanebarrage", MultiBot.tips.mage.playbook.arcane).setDisable() 54 | .doLeft = function(pButton) 55 | if(MultiBot.OnOffActionToTarget(pButton, "co +arcane,?", "co -arcane,?", pButton.getName())) then 56 | pButton.getButton("Frost").setDisable() 57 | pButton.getButton("Fire").setDisable() 58 | end 59 | end 60 | 61 | tFrame.addButton("FrostAoe", 0, 52, "spell_frost_freezingbreath", MultiBot.tips.mage.playbook.frostAoe).setDisable() 62 | .doLeft = function(pButton) 63 | MultiBot.OnOffActionToTarget(pButton, "co +frost aoe,?", "co -frost aoe,?", pButton.getName()) 64 | end 65 | 66 | tFrame.addButton("Frost", 0, 78, "spell_frost_frostbolt02", MultiBot.tips.mage.playbook.frost).setDisable() 67 | .doLeft = function(pButton) 68 | if(MultiBot.OnOffActionToTarget(pButton, "co +frost,?", "co -frost,?", pButton.getName())) then 69 | pButton.getButton("Arcane").setDisable() 70 | pButton.getButton("Fire").setDisable() 71 | end 72 | end 73 | 74 | tFrame.addButton("FireAoe", 0, 104, "spell_shadow_rainoffire", MultiBot.tips.mage.playbook.fireAoe).setDisable() 75 | .doLeft = function(pButton) 76 | MultiBot.OnOffActionToTarget(pButton, "co +fire aoe,?", "co -fire aoe,?", pButton.getName()) 77 | end 78 | 79 | tFrame.addButton("Fire", 0, 130, "spell_fire_fireball02", MultiBot.tips.mage.playbook.fire).setDisable() 80 | .doLeft = function(pButton) 81 | if(MultiBot.OnOffActionToTarget(pButton, "co +fire,?", "co -fire,?", pButton.getName())) then 82 | pButton.getButton("Arcane").setDisable() 83 | pButton.getButton("Frost").setDisable() 84 | end 85 | end 86 | 87 | -- STRATEGIES:PLAYBOOK -- 88 | 89 | if(MultiBot.isInside(pCombat, "arcane aoe")) then pFrame.getButton("ArcaneAoe").setEnable() end 90 | if(MultiBot.isInside(pCombat, "arcane,")) then pFrame.getButton("Arcane").setEnable() end 91 | if(MultiBot.isInside(pCombat, "frost aoe")) then pFrame.getButton("FrostAoe").setEnable() end 92 | if(MultiBot.isInside(pCombat, "frost,")) then pFrame.getButton("Frost").setEnable() end 93 | if(MultiBot.isInside(pCombat, "fire aoe")) then pFrame.getButton("FireAoe").setEnable() end 94 | if(MultiBot.isInside(pCombat, "fire,")) then pFrame.getButton("Fire").setEnable() end 95 | 96 | -- DPS -- 97 | 98 | pFrame.addButton("DpsControl", -60, 0, "ability_warrior_challange", MultiBot.tips.mage.dps.master) 99 | .doLeft = function(pButton) 100 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 101 | end 102 | 103 | local tFrame = pFrame.addFrame("DpsControl", -62, 30) 104 | tFrame:Hide() 105 | 106 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.mage.dps.dpsAssist).setDisable() 107 | .doLeft = function(pButton) 108 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 109 | pButton.getButton("TankAssist").setDisable() 110 | pButton.getButton("DpsAoe").setDisable() 111 | end 112 | end 113 | 114 | tFrame.addButton("DpsAoe", 0, 26, "spell_holy_surgeoflight", MultiBot.tips.mage.dps.dpsAoe).setDisable() 115 | .doLeft = function(pButton) 116 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 117 | pButton.getButton("TankAssist").setDisable() 118 | pButton.getButton("DpsAssist").setDisable() 119 | end 120 | end 121 | 122 | -- ASSIST -- 123 | 124 | pFrame.addButton("TankAssist", -90, 0, "ability_warrior_innerrage", MultiBot.tips.mage.tankAssist).setDisable() 125 | .doLeft = function(pButton) 126 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 127 | pButton.getButton("DpsAssist").setDisable() 128 | pButton.getButton("DpsAoe").setDisable() 129 | end 130 | end 131 | 132 | -- STRATEGIES -- 133 | 134 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 135 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 136 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 137 | end -------------------------------------------------------------------------------- /MultiBotNecronet.lua: -------------------------------------------------------------------------------- 1 | MultiBot.data.necronet = { 2 | [1078] = { 3, 476, 5, 35.9, 16.9 }, 3 | [1251] = { 3, 474, 4, 57.6, 59.2 }, 4 | [1450] = { 2, 24, 14, 15.8, 55.6 }, 5 | [509] = { 2, 23, 29, 45, 85.8 }, 6 | [1020] = { 3, 479, 7, 41, 83.1 }, 7 | [107] = { 2, 31, 27, 32.4, 52.4 }, 8 | [2] = { 2, 37, 15, 34.2, 42.8 }, 9 | [1302] = { 4, 491, 7, 59.8, 33.3 }, 10 | [1278] = { 1, 202, 14, 45.3, 7.8 }, 11 | [1084] = { 3, 476, 5, 61.5, 7 }, 12 | [1381] = { 4, 493, 6, 85.4, 80.3 }, 13 | [1451] = { 2, 23, 29, 49.8, 24.5 }, 14 | [1146] = { 3, 480, 3, 45.6, 74.3 }, 15 | [1307] = { 4, 489, 5, 82.1, 25.9 }, 16 | [1221] = { 3, 480, 3, 74.5, 34.7 }, 17 | [1280] = { 1, 82, 19, 40.1, 5.7 }, 18 | [1316] = { 4, 489, 5, 42.3, 29.7 }, 19 | [1473] = { 2, 36, 12, 64.7, 45.8 }, 20 | [1187] = { 3, 480, 3, 47.5, 31.5 }, 21 | [950] = { 3, 466, 1, 74.8, 35 }, 22 | [1023] = { 3, 479, 7, 54.7, 82.4 }, 23 | [1088] = { 3, 476, 5, 75.7, 18.7 }, 24 | [1151] = { 3, 480, 3, 32.1, 80.1 }, 25 | [1264] = { 1, 142, 11, 46.5, 57.1 }, 26 | [1043] = { 3, 468, 8, 43.6, 31.6 }, 27 | [1330] = { 4, 502, 11, 29.2, 31 }, 28 | [959] = { 3, 466, 1, 94.2, 59.6 }, 29 | [1006] = { 3, 478, 2, 33.5, 82.3 }, 30 | [952] = { 3, 466, 1, 81.1, 45.7 }, 31 | [1092] = { 3, 476, 5, 69, 48.5 }, 32 | [1459] = { 2, 38, 16, 44, 32.4 }, 33 | [1046] = { 3, 480, 3, 33.9, 65.2 }, 34 | [978] = { 3, 468, 8, 20.8, 15.6 }, 35 | [249] = { 1, 12, 4, 60.2, 39.9 }, 36 | [1080] = { 3, 476, 5, 43.5, 25.6 }, 37 | [1460] = { 2, 38, 16, 28.1, 19.6 }, 38 | [984] = { 3, 468, 8, 15.8, 17.6 }, 39 | [1061] = { 3, 474, 4, 73, 28.6 }, 40 | [99] = { 2, 17, 2, 64.6, 48.9 }, 41 | [850] = { 1, 5, 10, 47.3, 17.9 }, 42 | [962] = { 3, 466, 1, 82.6, 56.5 }, 43 | [947] = { 3, 466, 1, 72.8, 25.4 }, 44 | [1346] = { 4, 494, 10, 76.6, 60.9 }, 45 | [1391] = { 4, 511, 9, 28.5, 34.1 }, 46 | [6] = { 2, 36, 12, 32.2, 47 }, 47 | [1159] = { 3, 480, 3, 24, 63.6 }, 48 | [911] = { 2, 35, 4, 20, 49.5 }, 49 | [1325] = { 4, 487, 1, 33.2, 53.5 }, 50 | [1341] = { 4, 494, 10, 25, 57.4 }, 51 | [1267] = { 4, 492, 3, 26.4, 59.2 }, 52 | [1370] = { -1, 503, 0, 54.9, 57 }, 53 | [1289] = { 1, 12, 4, 45.8, 82.7 }, 54 | [1277] = { 1, 202, 14, 50, 56.1 }, 55 | [1089] = { 3, 476, 5, 80.7, 26.4 }, 56 | [1138] = { 3, 480, 3, 35.4, 52.1 }, 57 | [630] = { 1, 182, 1, 70.4, 16.4 }, 58 | [1101] = { 3, 476, 5, 71.8, 77.8 }, 59 | [409] = { 1, 82, 19, 57.6, 62 }, 60 | [3] = { 2, 35, 4, 74.9, 58.8 }, 61 | [1087] = { 3, 476, 5, 74.1, 13.3 }, 62 | [7] = { 2, 41, 22, 49.5, 41.4 }, 63 | [1086] = { 3, 476, 5, 73.7, 8.9 }, 64 | [1431] = { 1, 12, 4, 51, 12.2 }, 65 | [1375] = { 2, 302, 20, 18.4, 25.4 }, 66 | [1196] = { 3, 480, 3, 46.5, 65.5 }, 67 | [108] = { 2, 39, 21, 50.3, 61.9 }, 68 | [1401] = { 4, 496, 4, 28.9, 38.2 }, 69 | [1313] = { 4, 489, 5, 13.9, 52.8 }, 70 | [1682] = { 4, 493, 6, 53.9, 71.3 }, 71 | [450] = { 1, 202, 14, 80.3, 50.2 }, 72 | [1324] = { 4, 487, 1, 77.8, 34.4 }, 73 | [1052] = { 3, 474, 4, 49.8, 19.2 }, 74 | [1079] = { 3, 476, 5, 41.6, 15.7 }, 75 | [1239] = { 3, 480, 3, 61.3, 86.5 }, 76 | [943] = { 3, 466, 1, 50.1, 26.1 }, 77 | [1323] = { 4, 487, 1, 82, 48.3 }, 78 | [1201] = { 3, 480, 3, 65.2, 69.6 }, 79 | [1024] = { 3, 474, 4, 43.9, 12.8 }, 80 | [1308] = { 4, 489, 5, 83.3, 51 }, 81 | [1032] = { 3, 479, 7, 73.5, 30.5 }, 82 | [909] = { 2, 24, 14, 42.8, 39.3 }, 83 | [1095] = { 3, 476, 5, 76, 59 }, 84 | [1071] = { 3, 474, 4, 34.5, 67.1 }, 85 | [1403] = { 4, 496, 4, 42.5, 79.6 }, 86 | [1455] = { 2, 41, 22, 33.1, 29.2 }, 87 | [1051] = { 3, 479, 7, 62.9, 81.7 }, 88 | [1145] = { 3, 480, 3, 47.6, 71.1 }, 89 | [1181] = { 3, 480, 3, 50.6, 15.4 }, 90 | [1191] = { 3, 480, 3, 39.9, 42 }, 91 | [1332] = { 4, 502, 11, 72.2, 29.1 }, 92 | [960] = { 3, 466, 1, 91.7, 70.8 }, 93 | [1236] = { 3, 480, 3, 50.5, 88.6 }, 94 | [1436] = { 1, 10, 16, 61.9, 26.2 }, 95 | [149] = { 2, 25, 26, 51.8, 53.1 }, 96 | [1311] = { 4, 489, 5, 27.2, 55.5 }, 97 | [1210] = { 3, 480, 3, 50, 46.2 }, 98 | [1047] = { 3, 474, 4, 32.5, 28.7 }, 99 | [1069] = { 3, 474, 4, 40, 71.5 }, 100 | [979] = { 3, 468, 8, 34.1, 16 }, 101 | [1319] = { 4, 487, 1, 30.6, 33.2 }, 102 | [1284] = { 1, 282, 24, 29.1, 43 }, 103 | [1049] = { 3, 476, 5, 38.3, 67.8 }, 104 | [1013] = { 3, 479, 7, 16.2, 66.1 }, 105 | [1274] = { 4, 492, 3, 53.8, 75.9 }, 106 | [916] = { 2, 464, 8, 61.1, 56.9 }, 107 | [935] = { 3, 466, 1, 51.3, 21.4 }, 108 | [1240] = { 3, 466, 1, 68.6, 27 }, 109 | [1185] = { 3, 480, 3, 53.8, 27.4 }, 110 | [1439] = { 1, 162, 20, 36.3, 68.9 }, 111 | [1040] = { 3, 466, 1, 64.5, 22.7 }, 112 | [1140] = { 3, 480, 3, 38, 58.8 }, 113 | [1238] = { 3, 480, 3, 58.4, 90.8 }, 114 | [1173] = { 3, 480, 3, 31.8, 28.5 }, 115 | [1304] = { 4, 491, 7, 23, 44.3 }, 116 | [1273] = { 4, 492, 3, 75.2, 72.2 }, 117 | [1009] = { 3, 478, 2, 58.2, 89.2 }, 118 | [1334] = { 4, 502, 11, 36.8, 69.6 }, 119 | [1212] = { 3, 480, 3, 52.5, 42.9 }, 120 | [930] = { 3, 478, 2, 63.2, 68.9 }, 121 | [852] = { 2, 28, 5, 54.4, 39.2 }, 122 | [39] = { 1, 62, 21, 30.3, 23.5 }, 123 | [1376] = { 4, 492, 3, 59.2, 49.9 }, 124 | [928] = { 3, 468, 8, 36.8, 47.7 }, 125 | [1444] = { 1, 262, 18, 50.3, 86.5 }, 126 | [948] = { 3, 466, 1, 69.5, 32.7 }, 127 | [1222] = { 3, 480, 3, 71.7, 33.8 }, 128 | [926] = { 1, 477, 3, 30.4, 45.8 }, 129 | [1373] = { 1, 142, 11, 74.4, 49.6 }, 130 | [1018] = { 3, 479, 7, 31.1, 80.9 }, 131 | [1235] = { 3, 480, 3, 46.3, 87.4 }, 132 | [709] = { 1, 5, 10, 44.1, 69.3 }, 133 | [1070] = { 3, 474, 4, 35.3, 70.7 }, 134 | [915] = { 2, 464, 8, 43.8, 26 }, 135 | [1290] = { 4, 487, 1, 73.8, 48.3 }, 136 | [1102] = { 3, 476, 5, 69.5, 77.2 }, 137 | [1193] = { 3, 480, 3, 39.3, 53.3 }, 138 | [1427] = { 1, 44, 12, 59.5, 62 }, 139 | [1333] = { 4, 502, 11, 64.6, 70.5 }, 140 | [1393] = { 4, 489, 5, 87.5, 57.6 }, 141 | [1067] = { 3, 474, 4, 57.1, 77.6 }, 142 | [1033] = { 3, 479, 7, 70.5, 29.1 }, 143 | [1034] = { 3, 479, 7, 65.2, 29.4 }, 144 | [1429] = { 1, 82, 19, 45.1, 37.4 }, 145 | [1303] = { 4, 491, 7, 70.6, 40 }, 146 | [1045] = { 3, 480, 3, 42.9, 29.4 }, 147 | [1134] = { 3, 480, 3, 24.3, 52.9 }, 148 | [1030] = { 3, 479, 7, 78.4, 38.2 }, 149 | [1090] = { 3, 476, 5, 80, 30 }, 150 | [1135] = { 3, 480, 3, 27.4, 50.5 }, 151 | [1017] = { 3, 479, 7, 27.1, 77.8 }, 152 | [1471] = { 2, 28, 5, 35.8, 45.9 }, 153 | [1286] = { 2, 23, 29, 59.7, 53.3 }, 154 | [1243] = { 3, 476, 5, 33.6, 58.4 }, 155 | [449] = { 1, 183, 23, 56.4, 86.8 }, 156 | [1446] = { 2, 17, 2, 32.8, 50.4 }, 157 | [1216] = { 3, 480, 3, 66.7, 52.4 }, 158 | [914] = { 2, 463, 10, 59.9, 64.1 }, 159 | [1452] = { 2, 25, 26, 29.6, 45.8 }, 160 | [980] = { 3, 468, 8, 26.6, 18.4 }, 161 | [1152] = { 3, 480, 3, 29.6, 81.3 }, 162 | [977] = { 3, 468, 8, 34.2, 16.1 }, 163 | [1409] = { 2, 21, 23, 50.1, 68.5 }, 164 | [1183] = { 3, 480, 3, 57.3, 20.9 }, 165 | [1380] = { 4, 511, 9, 76.6, 80.5 }, 166 | [1166] = { 3, 480, 3, 32.1, 37.8 }, 167 | [1198] = { 3, 480, 3, 52.8, 69.8 }, 168 | [1094] = { 3, 476, 5, 72.6, 59.6 }, 169 | [1270] = { 4, 492, 3, 53.8, 21.7 }, 170 | [1447] = { 2, 25, 26, 79.4, 60.9 }, 171 | [1217] = { 3, 480, 3, 67.6, 48.7 }, 172 | [349] = { 2, 27, 9, 16.9, 44.5 }, 173 | [934] = { 3, 466, 1, 27.5, 63.2 }, 174 | [1233] = { 3, 480, 3, 49.7, 77.2 }, 175 | [1253] = { 3, 476, 5, 60.3, 66.3 }, 176 | [1337] = { 4, 492, 3, 56, 44.2 }, 177 | [1074] = { 3, 476, 5, 29.1, 44 }, 178 | [990] = { 3, 468, 8, 7.1, 56.8 }, 179 | [35] = { 1, 43, 9, 41.7, 36.5 }, 180 | [1456] = { 2, 41, 22, 59.5, 66.5 }, 181 | [1154] = { 3, 480, 3, 23.9, 80.1 }, 182 | [1438] = { 1, 62, 21, 77.6, 73.3 }, 183 | [1318] = { 4, 487, 1, 45.7, 75.2 }, 184 | [1148] = { 3, 480, 3, 39.6, 79.2 }, 185 | [1164] = { 3, 480, 3, 26.5, 45.5 }, 186 | [33] = { 1, 5, 10, 46.3, 12.8 }, 187 | [1209] = { 3, 480, 3, 50.3, 50.2 }, 188 | [1448] = { 2, 24, 14, 62.4, 21.8 }, 189 | [1383] = { 4, 496, 4, 27.9, 65.7 }, 190 | [1418] = { 1, 282, 24, 55.9, 86.1 }, 191 | [1073] = { 3, 476, 5, 27.7, 56.7 }, 192 | [1098] = { 3, 476, 5, 78.5, 72.9 }, 193 | [1249] = { 1, 162, 20, 63.9, 49.7 }, 194 | [1230] = { 3, 480, 3, 60.2, 77.6 }, 195 | [609] = { 1, 182, 1, 54.4, 70.9 }, 196 | [1268] = { 4, 492, 3, 38.1, 74.4 }, 197 | [1048] = { 3, 474, 4, 39.6, 56.6 }, 198 | [633] = { 1, 242, 15, 61.9, 69.2 }, 199 | [1463] = { 2, 40, 28, 36, 24.9 }, 200 | [1057] = { 3, 474, 4, 59.3, 22 }, 201 | [631] = { 1, 142, 11, 39.5, 31.3 }, 202 | [1291] = { 3, 479, 7, 50.4, 11.8 }, 203 | [1055] = { 3, 474, 4, 57.3, 14.1 }, 204 | [961] = { 3, 466, 1, 84.1, 67 }, 205 | [1163] = { 3, 480, 3, 22.9, 44.5 }, 206 | [1336] = { 4, 494, 10, 33.6, 84.7 }, 207 | [1021] = { 3, 479, 7, 46.1, 80.7 }, 208 | [1137] = { 3, 480, 3, 35.2, 48.8 }, 209 | [1202] = { 3, 480, 3, 67.7, 68.9 }, 210 | [789] = { 2, 27, 9, 72.7, 68.5 }, 211 | [1441] = { 1, 122, 13, 57.4, 68.2 }, 212 | [1144] = { 3, 480, 3, 45.3, 70.2 }, 213 | [851] = { 1, 363, 8, 56.7, 19 }, 214 | [1466] = { 2, 39, 21, 15.8, 47.5 }, 215 | [1263] = { 3, 476, 5, 42.9, 21.7 }, 216 | [1227] = { 3, 480, 3, 56.5, 36 }, 217 | [1379] = { 4, 494, 10, 29.5, 32.2 }, 218 | [649] = { 1, 5, 10, 57.2, 73.4 }, 219 | [635] = { 1, 183, 23, 49.7, 31.2 }, 220 | [1299] = { 3, 479, 7, 44.9, 39.8 }, 221 | [129] = { 1, 42, 22, 56, 92.1 }, 222 | [1189] = { 3, 480, 3, 48, 39.8 }, 223 | [1306] = { 4, 491, 7, 47.6, 34.1 }, 224 | [1063] = { 3, 474, 4, 75.8, 62.3 }, 225 | [102] = { 2, 28, 5, 53, 35.7 }, 226 | [98] = { 2, 25, 26, 64, 19.6 }, 227 | [1395] = { 4, 493, 6, 41.2, 29.6 }, 228 | [951] = { 3, 466, 1, 77.4, 41.2 }, 229 | [969] = { 3, 468, 8, 47.5, 50.3 }, 230 | [1266] = { 4, 492, 3, 37.8, 28.7 }, 231 | [1207] = { 3, 480, 3, 55.7, 55.7 }, 232 | [1279] = { 1, 82, 19, 36.4, 75 }, 233 | [1453] = { 2, 27, 9, 58.5, 34.5 }, 234 | [1228] = { 3, 480, 3, 54.6, 39.8 }, 235 | [1474] = { 4, 502, 11, 50, 12.7 }, 236 | [1402] = { 4, 496, 4, 33.6, 68.6 }, 237 | [189] = { 1, 142, 11, 63.6, 42.6 }, 238 | [1360] = { -1, 503, 0, 54.5, 34.3 }, 239 | [1437] = { 1, 62, 21, 43.9, 47.6 }, 240 | [1353] = { 4, 497, 12, 20.3, 63.4 }, 241 | [1476] = { 1, 82, 19, 80.7, 92.7 }, 242 | [963] = { 3, 466, 1, 77.9, 62.4 }, 243 | [1225] = { 3, 480, 3, 59.9, 29.8 }, 244 | [1184] = { 3, 480, 3, 57.5, 25.1 }, 245 | [927] = { 2, 24, 14, 33.9, 64.2 }, 246 | [1136] = { 3, 480, 3, 31.7, 50.3 }, 247 | [97] = { 2, 22, 19, 44.3, 41.1 }, 248 | [289] = { 2, 21, 23, 56.2, 49.4 }, 249 | [1075] = { 3, 476, 5, 29.1, 33.4 }, 250 | [209] = { 1, 162, 20, 54, 28.6 }, 251 | [1180] = { 3, 480, 3, 48.2, 11.7 }, 252 | [1468] = { 2, 31, 27, 61.7, 70.2 }, 253 | [1465] = { 2, 39, 21, 82.8, 45.7 }, 254 | [1237] = { 3, 480, 3, 55.2, 90.9 }, 255 | [917] = { 2, 464, 8, 80.4, 69.8 }, 256 | [1265] = { 1, 142, 11, 41, 74.3 }, 257 | [1435] = { 1, 10, 16, 61.6, 71.6 }, 258 | [1493] = { 1, 12, 4, 36.9, 33.4 }, 259 | [953] = { 3, 466, 1, 83.4, 39.1 }, 260 | [975] = { 3, 468, 8, 89.3, 34.4 }, 261 | [1068] = { 3, 474, 4, 43.2, 72.8 }, 262 | [1179] = { 3, 480, 3, 46.9, 6.8 }, 263 | [1171] = { 3, 480, 3, 34.9, 39.3 }, 264 | [1352] = { 4, 497, 12, 37.4, 59 }, 265 | [1053] = { 3, 474, 4, 51.6, 14.4 }, 266 | [1027] = { 3, 474, 4, 46.5, 19.2 }, 267 | [981] = { 3, 468, 8, 21.2, 6.8 }, 268 | [1044] = { 3, 468, 8, 17.1, 47.7 }, 269 | [104] = { 2, 37, 15, 21.5, 57.2 }, 270 | [1372] = { 1, 202, 14, 50.6, 6 }, 271 | [853] = { 2, 383, 24, 67.9, 15.3 }, 272 | [1007] = { 3, 478, 2, 40.1, 85.9 }, 273 | [1099] = { 3, 476, 5, 78.9, 77.1 }, 274 | [1085] = { 3, 476, 5, 66.9, 8 }, 275 | [1419] = { 1, 182, 1, 45.3, 30.2 }, 276 | [1252] = { 3, 480, 3, 56.6, 83.2 }, 277 | [1433] = { 1, 12, 4, 47, 45.8 }, 278 | [985] = { 3, 468, 8, 13.8, 24.8 }, 279 | [1213] = { 3, 480, 3, 55, 48.6 }, 280 | [1139] = { 3, 480, 3, 37.4, 55.3 }, 281 | [1011] = { 3, 478, 2, 63.3, 81.6 }, 282 | [1208] = { 3, 480, 3, 52.2, 52.8 }, 283 | [1430] = { 1, 12, 4, 42.6, 21.5 }, 284 | [1331] = { 4, 502, 11, 20.8, 34.5 }, 285 | [1470] = { 2, 30, 3, 71.8, 49 }, 286 | [369] = { 1, 182, 1, 14.4, 78.7 }, 287 | [1081] = { 3, 476, 5, 48.6, 20.8 }, 288 | [1398] = { 4, 491, 7, 16.6, 31.3 }, 289 | [511] = { 1, 282, 24, 61.2, 35 }, 290 | [1091] = { 3, 476, 5, 75.7, 42.3 }, 291 | [1142] = { 3, 480, 3, 41.6, 65.5 }, 292 | [1223] = { 3, 480, 3, 68.3, 32.2 }, 293 | [1424] = { 1, 102, 6, 72.3, 66.9 }, 294 | [10] = { 1, 12, 4, 50.8, 32.6 }, 295 | [429] = { 2, 21, 23, 79.2, 40.9 }, 296 | [993] = { 3, 478, 2, 42.7, 46 }, 297 | [1029] = { 3, 479, 7, 75.2, 45.8 }, 298 | [1405] = { 2, 24, 14, 83.7, 50 }, 299 | [946] = { 3, 466, 1, 74.6, 18.3 }, 300 | [1160] = { 3, 480, 3, 25.4, 60.1 }, 301 | [4] = { 2, 40, 28, 52, 49.2 }, 302 | [1355] = { 4, 497, 12, 47.2, 82 }, 303 | [1150] = { 3, 480, 3, 34.9, 79 }, 304 | [1005] = { 3, 478, 2, 28.9, 82.1 }, 305 | [229] = { 1, 12, 4, 45.4, 61.1 }, 306 | [1165] = { 3, 480, 3, 30.7, 44.7 }, 307 | [1272] = { 4, 492, 3, 74.1, 59.5 }, 308 | [1425] = { 1, 102, 6, 67, 31.2 }, 309 | [1014] = { 3, 479, 7, 15.9, 72.8 }, 310 | [569] = { 2, 21, 23, 82, 69.3 }, 311 | [1282] = { 1, 162, 20, 49.4, 59.1 }, 312 | [1220] = { 3, 480, 3, 74.4, 40 }, 313 | [1186] = { 3, 480, 3, 50.7, 27.1 }, 314 | [329] = { 1, 62, 21, 68.8, 53.3 }, 315 | [1408] = { 4, 496, 4, 46.2, 65.5 }, 316 | [1060] = { 3, 474, 4, 68.1, 28.8 }, 317 | [1010] = { 3, 478, 2, 58.8, 82.2 }, 318 | [634] = { 2, 24, 14, 35.1, 86 }, 319 | [849] = { 1, 122, 13, 54.8, 48 }, 320 | [1147] = { 3, 480, 3, 42.1, 77.6 }, 321 | [1141] = { 3, 480, 3, 39.9, 61 }, 322 | [1301] = { 4, 491, 7, 33.7, 56.6 }, 323 | [1292] = { 2, 500, 11, 46.7, 32.3 }, 324 | [91] = { 1, 42, 22, 56.3, 62.8 }, 325 | [954] = { 3, 466, 1, 83.5, 34.3 }, 326 | [1066] = { 3, 474, 4, 61.1, 68.1 }, 327 | [1004] = { 3, 478, 2, 27.3, 77.1 }, 328 | [1016] = { 3, 479, 7, 21.3, 79 }, 329 | [1206] = { 3, 480, 3, 59.2, 57.6 }, 330 | [1028] = { 3, 479, 7, 67.7, 87.5 }, 331 | [1100] = { 3, 476, 5, 74.7, 77.5 }, 332 | [1001] = { 3, 478, 2, 17.2, 53.6 }, 333 | [34] = { 1, 10, 16, 42.8, 78 }, 334 | [1281] = { 1, 162, 20, 68.9, 40.9 }, 335 | [1285] = { 4, 502, 11, 47.9, 9 }, 336 | [999] = { 3, 478, 2, 25.6, 20.1 }, 337 | [1157] = { 3, 480, 3, 18.6, 68.3 }, 338 | [1077] = { 3, 476, 5, 31.8, 18.1 }, 339 | [1457] = { 2, 41, 22, 73.4, 43.4 }, 340 | [1002] = { 3, 478, 2, 17.6, 59.6 }, 341 | [1250] = { 3, 474, 4, 63.7, 32.4 }, 342 | [1357] = { 4, 497, 12, 70.1, 64.5 }, 343 | [1321] = { 4, 487, 1, 56.1, 17.5 }, 344 | [1224] = { 3, 480, 3, 63.8, 29.4 }, 345 | [1256] = { 2, 22, 19, 55.5, 73.2 }, 346 | [1356] = { 4, 497, 12, 53.8, 56.2 }, 347 | [1454] = { 2, 27, 9, 38.2, 64.6 }, 348 | [994] = { 3, 479, 7, 39.8, 22 }, 349 | [31] = { 1, 102, 6, 38.3, 30 }, 350 | [1378] = { 1, 5, 10, 67.4, 13.2 }, 351 | [918] = { 1, 465, 2, 77.6, 49 }, 352 | [1093] = { 3, 476, 5, 69.6, 57.1 }, 353 | [1219] = { 3, 480, 3, 72.6, 45.2 }, 354 | [1472] = { 2, 28, 5, 74.1, 48.7 }, 355 | [991] = { 3, 468, 8, 8.4, 62.5 }, 356 | [1050] = { 3, 476, 5, 52.1, 60.5 }, 357 | [1371] = { -1, 503, 0, 39.2, 46.1 }, 358 | [1178] = { 3, 480, 3, 45, 8.1 }, 359 | [1283] = { 1, 282, 24, 62.6, 61.3 }, 360 | [989] = { 3, 468, 8, 6.8, 51.1 }, 361 | [988] = { 3, 468, 8, 10.9, 36.8 }, 362 | [933] = { 3, 466, 1, 22.8, 37.7 }, 363 | [1440] = { 1, 162, 20, 40.4, 40.8 }, 364 | [1354] = { 4, 497, 12, 30.7, 72.8 }, 365 | [1156] = { 3, 480, 3, 18.7, 73.9 }, 366 | [992] = { 3, 478, 2, 40.3, 30.1 }, 367 | [1276] = { 4, 492, 3, 69.6, 32.4 }, 368 | [1369] = { 2, 24, 14, 86.5, 49.8 }, 369 | [94] = { 2, 21, 23, 31.1, 64.9 }, 370 | [986] = { 3, 468, 8, 15.4, 35.4 }, 371 | [1062] = { 3, 474, 4, 74.6, 58.3 }, 372 | [1205] = { 3, 480, 3, 62.7, 57.1 }, 373 | [983] = { 3, 468, 8, 19.5, 2.9 }, 374 | [982] = { 3, 468, 8, 15.9, 17.5 }, 375 | [970] = { 3, 468, 8, 65.1, 51.4 }, 376 | [1204] = { 3, 480, 3, 67.4, 58.7 }, 377 | [974] = { 3, 468, 8, 88.2, 27.6 }, 378 | [1384] = { 4, 496, 4, 42.3, 24.8 }, 379 | [1392] = { 4, 511, 9, 74.9, 49.9 }, 380 | [1175] = { 3, 480, 3, 35.1, 17.8 }, 381 | [1170] = { 3, 480, 3, 36, 43.6 }, 382 | [968] = { 3, 466, 1, 43.7, 86.9 }, 383 | [958] = { 3, 466, 1, 93.1, 49.2 }, 384 | [1162] = { 3, 480, 3, 21.9, 39.7 }, 385 | [1388] = { 4, 496, 4, 72.6, 57.7 }, 386 | [1254] = { 3, 476, 5, 37.3, 24.5 }, 387 | [1257] = { 3, 479, 7, 22, 4.1 }, 388 | [1168] = { 3, 480, 3, 25.2, 32.9 }, 389 | [957] = { 3, 466, 1, 93.2, 41.3 }, 390 | [956] = { 3, 466, 1, 90.7, 33.2 }, 391 | [955] = { 3, 466, 1, 87, 31.8 }, 392 | [972] = { 3, 468, 8, 31.7, 19.4 }, 393 | [945] = { 3, 466, 1, 72.4, 9.7 }, 394 | [1434] = { 1, 12, 4, 58.6, 19.8 }, 395 | [469] = { 1, 43, 9, 43.4, 92.6 }, 396 | [1300] = { 4, 491, 7, 16.6, 69 }, 397 | [1215] = { 3, 480, 3, 62.4, 51.3 }, 398 | [1244] = { 3, 476, 5, 69.3, 58 }, 399 | [1058] = { 3, 474, 4, 63.9, 21.1 }, 400 | [1155] = { 3, 480, 3, 19.5, 78.6 }, 401 | [1190] = { 3, 480, 3, 44.2, 41 }, 402 | [1469] = { 2, 30, 3, 37.1, 45.7 }, 403 | [1039] = { 3, 478, 2, 32.9, 56.3 }, 404 | [489] = { 2, 41, 22, 11.3, 43.5 }, 405 | [1042] = { 3, 479, 7, 44.8, 71.2 }, 406 | [1312] = { 4, 489, 5, 46.1, 75 }, 407 | [965] = { 3, 466, 1, 59.3, 80.9 }, 408 | [1076] = { 3, 476, 5, 28.3, 27 }, 409 | [1153] = { 3, 480, 3, 26.7, 82.1 }, 410 | [925] = { 1, 477, 3, 58.5, 58 }, 411 | [966] = { 3, 466, 1, 55.8, 86.5 }, 412 | [949] = { 3, 466, 1, 71.6, 39.9 }, 413 | [913] = { 1, 262, 18, 28.1, 87.5 }, 414 | [1203] = { 3, 480, 3, 69.2, 63.1 }, 415 | [1377] = { 2, 22, 19, 51, 24.5 }, 416 | [1329] = { 4, 502, 11, 68.1, 30.9 }, 417 | [1445] = { 1, 262, 18, 35.8, 47.1 }, 418 | [1461] = { 2, 35, 4, 48.7, 62.4 }, 419 | [1322] = { 4, 487, 1, 50.5, 10 }, 420 | [1192] = { 3, 480, 3, 42.8, 49.2 }, 421 | [1231] = { 3, 480, 3, 56.1, 75.6 }, 422 | [1320] = { 4, 487, 1, 47.7, 34.8 }, 423 | [1199] = { 3, 480, 3, 57.2, 70 }, 424 | [976] = { 3, 468, 8, 74.8, 27.8 }, 425 | [1022] = { 3, 479, 7, 49.3, 84 }, 426 | [1681] = { 1, 142, 11, 50, 72.1 }, 427 | [1432] = { 1, 12, 4, 56, 51.8 }, 428 | [921] = { 2, 463, 10, 47.9, 49.8 }, 429 | [1072] = { 3, 476, 5, 26.9, 68.4 }, 430 | [1056] = { 3, 474, 4, 57.9, 17.7 }, 431 | [1310] = { 4, 489, 5, 39.3, 46.3 }, 432 | [1397] = { 4, 493, 6, 75.3, 36.9 }, 433 | [1200] = { 3, 480, 3, 61.8, 70.5 }, 434 | [910] = { 1, 262, 18, 47.3, 37.6 }, 435 | [1211] = { 3, 480, 3, 46.4, 46.2 }, 436 | [93] = { 1, 42, 22, 59, 42.6 }, 437 | [967] = { 3, 466, 1, 48.2, 85 }, 438 | [1143] = { 3, 480, 3, 43.5, 67.6 }, 439 | [854] = { 2, 31, 27, 83.8, 69.7 }, 440 | [869] = { 2, 23, 29, 65.8, 74.3 }, 441 | [70] = { 1, 262, 18, 80.8, 20.4 }, 442 | [1015] = { 3, 479, 7, 17.3, 80.5 }, 443 | [924] = { 1, 465, 2, 39.1, 19.5 }, 444 | [1158] = { 3, 480, 3, 20.2, 64.2 }, 445 | [1161] = { 3, 480, 3, 23.9, 56.5 }, 446 | [36] = { 2, 33, 7, 40, 74.6 }, 447 | [1478] = { 4, 493, 6, 79.6, 23 }, 448 | [1059] = { 3, 474, 4, 67.6, 21.9 }, 449 | [1232] = { 3, 480, 3, 52.7, 75.3 }, 450 | [987] = { 3, 468, 8, 7.2, 46.4 }, 451 | [1064] = { 3, 474, 4, 72.7, 68.1 }, 452 | [1275] = { 4, 492, 3, 58.4, 60.7 }, 453 | [1411] = { 2, 16, 1, 43.1, 37.8 }, 454 | [1234] = { 3, 480, 3, 45.2, 80.2 }, 455 | [1226] = { 3, 480, 3, 54.4, 32.5 }, 456 | [103] = { 2, 18, 13, 8.4, 55.2 }, 457 | [101] = { 2, 28, 5, 47.1, 54.9 }, 458 | [100] = { 2, 28, 5, 29.8, 69.7 }, 459 | [1000] = { 3, 478, 2, 22.6, 28.3 }, 460 | [1359] = { 4, 505, 2, 34.8, 39.3 }, 461 | [512] = { 1, 44, 12, 80.7, 58.6 }, 462 | [5] = { 2, 28, 5, 47, 55.1 }, 463 | [510] = { 2, 24, 14, 67.8, 61.3 }, 464 | [1315] = { 4, 489, 5, 46.4, 20.4 }, 465 | [920] = { 3, 466, 1, 54.9, 66.3 }, 466 | [1248] = { 3, 466, 1, 60.1, 80 }, 467 | [1309] = { 4, 489, 5, 77.2, 63 }, 468 | [1026] = { 3, 474, 4, 47.5, 13.6 }, 469 | [1031] = { 3, 479, 7, 76.2, 33.5 }, 470 | [1287] = { 2, 29, 17, 54.5, 51.6 }, 471 | [1400] = { 4, 496, 4, 54.3, 50 }, 472 | [1172] = { 3, 480, 3, 33.2, 33.5 }, 473 | [1720] = { 4, 492, 3, 73, 13.2 }, 474 | [1358] = { 4, 497, 12, 84, 31.5 }, 475 | [1065] = { 3, 474, 4, 66.8, 69.8 }, 476 | [1255] = { 3, 476, 5, 74.5, 26.6 }, 477 | [1038] = { 3, 478, 2, 66.9, 24.4 }, 478 | [1037] = { 3, 478, 2, 20.4, 36.1 }, 479 | [1041] = { 3, 466, 1, 87.4, 50.3 }, 480 | [1008] = { 3, 478, 2, 53.9, 86.8 }, 481 | [1464] = { 2, 20, 25, 51.4, 55.5 }, 482 | [1247] = { 3, 480, 3, 64.8, 66.6 }, 483 | [1174] = { 3, 480, 3, 34.1, 23.6 }, 484 | [109] = { 2, 38, 16, 30.3, 73.3 }, 485 | [1467] = { 2, 37, 15, 66.3, 62 }, 486 | [1462] = { 2, 40, 28, 37.3, 77.9 }, 487 | [370] = { 2, 20, 25, 51, 12.5 }, 488 | [1082] = { 3, 476, 5, 50.8, 11.4 }, 489 | [1035] = { 3, 479, 7, 62.6, 24.3 }, 490 | [923] = { 1, 465, 2, 47.7, 56 }, 491 | [1025] = { 3, 474, 4, 45, 10.1 }, 492 | [1262] = { 3, 474, 4, 65.9, 45.7 }, 493 | [1443] = { 1, 122, 13, 45.5, 20.8 }, 494 | [1404] = { 4, 494, 10, 55.9, 77.5 }, 495 | [106] = { 2, 31, 27, 39.3, 60.5 }, 496 | [1083] = { 3, 476, 5, 55.9, 8.7 }, 497 | [1269] = { 4, 492, 3, 44.9, 47.7 }, 498 | [1420] = { 1, 182, 1, 32.9, 63.2 }, 499 | [1197] = { 3, 480, 3, 49.3, 69.8 }, 500 | [1241] = { 3, 476, 5, 63, 37.1 }, 501 | [96] = { 2, 383, 24, 68.6, 8.6 }, 502 | [1271] = { 4, 492, 3, 75.9, 29.6 }, 503 | [1054] = { 3, 474, 4, 53.6, 13.9 }, 504 | [1428] = { 1, 82, 19, 72.6, 50.1 }, 505 | [1421] = { 1, 102, 6, 50.3, 63.1 }, 506 | [1149] = { 3, 480, 3, 37.8, 80.9 }, 507 | [1416] = { 1, 282, 24, 53.3, 16.2 }, 508 | [942] = { 3, 466, 1, 46.4, 27.3 }, 509 | [1417] = { 1, 282, 24, 45.4, 40.4 }, 510 | [1096] = { 3, 476, 5, 76.7, 63.8 }, 511 | [1177] = { 3, 480, 3, 42.6, 13.7 }, 512 | [1396] = { 4, 493, 6, 52.4, 52.5 }, 513 | [1195] = { 3, 480, 3, 44.7, 60.3 }, 514 | [964] = { 3, 466, 1, 80.5, 80.1 }, 515 | [912] = { 2, 463, 10, 38.1, 17.8 }, 516 | [1169] = { 3, 480, 3, 22.9, 34.6 }, 517 | [1394] = { 4, 489, 5, 27.9, 47.6 }, 518 | [1342] = { 4, 494, 10, 47.7, 60.2 }, 519 | [973] = { 3, 468, 8, 77.5, 64.1 }, 520 | [1326] = { 4, 487, 1, 56.9, 62.9 }, 521 | [1182] = { 3, 480, 3, 56.1, 16.2 }, 522 | [922] = { 2, 463, 10, 44.4, 71 }, 523 | [1387] = { 4, 496, 4, 39.9, 44.1 }, 524 | [1242] = { 3, 476, 5, 61.4, 14.8 }, 525 | [8] = { 2, 18, 13, 56.8, 24.1 }, 526 | [310] = { 1, 122, 13, 73, 44.7 }, 527 | [1385] = { 4, 496, 4, 60.4, 48.1 }, 528 | [1317] = { 4, 487, 1, 45.1, 53.5 }, 529 | [1194] = { 3, 480, 3, 41.5, 56.7 }, 530 | [1288] = { 2, 18, 13, 56.7, 73 }, 531 | [1176] = { 3, 480, 3, 38.7, 14.9 }, 532 | [1229] = { 3, 480, 3, 62.8, 79.5 }, 533 | [105] = { 2, 31, 27, 49.7, 43 }, 534 | [32] = { 1, 5, 10, 53.5, 44.7 }, 535 | [1442] = { 1, 122, 13, 83.8, 42.5 }, 536 | [309] = { 1, 122, 13, 31.8, 48.1 }, 537 | [1449] = { 2, 24, 14, 23.4, 13.6 }, 538 | [995] = { 3, 479, 7, 59.6, 42.8 }, 539 | [1477] = { 4, 489, 5, 63.8, 23.9 }, 540 | [1097] = { 3, 476, 5, 76.8, 69 }, 541 | [1188] = { 3, 480, 3, 49.9, 35.5 }, 542 | [1343] = { 4, 494, 10, 40.5, 35.8 }, 543 | [1261] = { 3, 474, 4, 65.6, 43 }, 544 | [90] = { 1, 382, 5, 77.6, 26.1 }, 545 | [389] = { 2, 38, 16, 38.4, 8.8 }, 546 | [1374] = { 1, 5, 10, 64.9, 12.6 }, 547 | [1167] = { 3, 480, 3, 28.6, 35.1 }, 548 | [89] = { 1, 10, 16, 46.5, 55.5 }, 549 | [1314] = { 4, 489, 5, 59.8, 54.5 }, 550 | [1305] = { 4, 491, 7, 32.9, 73.8 }, 551 | [1214] = { 3, 480, 3, 58.5, 51.4 }, 552 | [1407] = { 4, 493, 6, 27.9, 54.5 }, 553 | [636] = { 2, 29, 17, 35.4, 23.6 }, 554 | [1019] = { 3, 479, 7, 35.8, 80.2 }, 555 | [1012] = { 3, 478, 2, 68.5, 83.8 }, 556 | [919] = { 3, 466, 1, 57.6, 38.4 }, 557 | [1218] = { 3, 480, 3, 70.4, 47.8 }, 558 | [1003] = { 3, 478, 2, 24.3, 72.2 }, 559 | [1426] = { 1, 44, 12, 22.9, 45.4 }, 560 | [92] = { 1, 44, 12, 40.4, 53.1 } 561 | } 562 | 563 | MultiBot.necronet = {} 564 | MultiBot.necronet.index = {} 565 | MultiBot.necronet.buttons = {} 566 | MultiBot.necronet.state = false 567 | 568 | for key, value in pairs(MultiBot.data.necronet) do 569 | if(MultiBot.necronet.index[value[1]] == nil) then MultiBot.necronet.index[value[1]] = {} end 570 | if(MultiBot.necronet.index[value[1]][value[2]] == nil) then MultiBot.necronet.index[value[1]][value[2]] = {} end 571 | 572 | local tX = WorldMapButton:GetWidth() * value[4] / 100 - WorldMapButton:GetWidth() + 12 573 | local tY = WorldMapButton:GetHeight() * -value[5] / 100 + WorldMapButton:GetHeight() - 12 574 | 575 | local tButton = MultiBot.newButton(WorldMapButton, tX, tY, 24, "achievement_bg_xkills_avgraveyard", key) 576 | tButton.graveyard = key 577 | tButton:Hide() 578 | 579 | tButton.doLeft = function(pButton) 580 | MultiBot.doDot(".go graveyard", pButton.graveyard) 581 | end 582 | 583 | table.insert(MultiBot.necronet.index[value[1]][value[2]], tButton) 584 | table.insert(MultiBot.necronet.buttons, tButton) 585 | end -------------------------------------------------------------------------------- /MultiBotPaladin.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addPaladin = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("Heal", 0, 0, "spell_holy_aspiration", MultiBot.tips.paladin.heal).setDisable() 3 | .doLeft = function(pButton) 4 | if(MultiBot.OnOffActionToTarget(pButton, "co +heal,?", "co -heal,?", pButton.getName())) then 5 | pButton.getButton("Tank").setDisable() 6 | pButton.getButton("Dps").setDisable() 7 | end 8 | end 9 | 10 | -- SEAL -- 11 | 12 | local tButton = pFrame.addButton("Seal", -30, 0, "spell_holy_healingaura", MultiBot.tips.paladin.seal.master) 13 | tButton.doLeft = function(pButton) 14 | MultiBot.ShowHideSwitch(pButton.parent.frames["Seal"]) 15 | end 16 | 17 | local tFrame = pFrame.addFrame("Seal", -32, 30) 18 | tFrame:Hide() 19 | 20 | tFrame.addButton("SealHealth", 0, 0, "spell_holy_healingaura", MultiBot.tips.paladin.seal.bhealth) 21 | .doLeft = function(pButton) 22 | MultiBot.SelectToTarget(pButton.get(), "Seal", pButton.texture, "nc +bhealth,?", pButton.getName()) 23 | pButton.getButton("Seal").doRight = function(pButton) 24 | MultiBot.OnOffActionToTarget(pButton, "nc +bhealth,?", "nc -bhealth,?", pButton.getName()) 25 | end 26 | end 27 | 28 | tFrame.addButton("SealMana", 0, 26, "spell_holy_sealofwisdom", MultiBot.tips.paladin.seal.bmana) 29 | .doLeft = function(pButton) 30 | MultiBot.SelectToTarget(pButton.get(), "Seal", pButton.texture, "nc +bmana,?", pButton.getName()) 31 | pButton.getButton("Seal").doRight = function(pButton) 32 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 33 | end 34 | end 35 | 36 | tFrame.addButton("SealStats", 0, 52, "spell_magic_magearmor", MultiBot.tips.paladin.seal.bstats) 37 | .doLeft = function(pButton) 38 | MultiBot.SelectToTarget(pButton.get(), "Seal", pButton.texture, "nc +bstats,?", pButton.getName()) 39 | pButton.getButton("Seal").doRight = function(pButton) 40 | MultiBot.OnOffActionToTarget(pButton, "nc +bstats,?", "nc -bstats,?", pButton.getName()) 41 | end 42 | end 43 | 44 | tFrame.addButton("SealDps", 0, 78, "inv_hammer_01", MultiBot.tips.paladin.seal.bdps) 45 | .doLeft = function(pButton) 46 | MultiBot.SelectToTarget(pButton.get(), "Seal", pButton.texture, "nc +bdps,?", pButton.getName()) 47 | pButton.getButton("Seal").doRight = function(pButton) 48 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 49 | end 50 | end 51 | 52 | -- STRATEGIES:SEAL -- 53 | 54 | if(MultiBot.isInside(pNormal, "bhealth")) then 55 | tButton.setTexture("spell_holy_healingaura").setEnable().doRight = function(pButton) 56 | MultiBot.OnOffActionToTarget(pButton, "nc +bhealth,?", "nc -bhealth,?", pButton.getName()) 57 | end 58 | elseif(MultiBot.isInside(pNormal, "bmana")) then 59 | tButton.setTexture("spell_holy_sealofwisdom").setEnable().doRight = function(pButton) 60 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 61 | end 62 | elseif(MultiBot.isInside(pNormal, "bstats")) then 63 | tButton.setTexture("spell_magic_magearmor").setEnable().doRight = function(pButton) 64 | MultiBot.OnOffActionToTarget(pButton, "nc +bstats,?", "nc -bstats,?", pButton.getName()) 65 | end 66 | elseif(MultiBot.isInside(pNormal, "bdps")) then 67 | tButton.setTexture("inv_hammer_01").setEnable().doRight = function(pButton) 68 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 69 | end 70 | end 71 | 72 | -- NON-COMBAT-AURA -- 73 | 74 | local tButton = pFrame.addButton("NonCombatAura", -60, 0, "spell_holy_crusaderaura", MultiBot.tips.paladin.naura.master) 75 | tButton.doLeft = function(pButton) 76 | MultiBot.ShowHideSwitch(pButton.parent.frames["NonCombatAura"]) 77 | end 78 | 79 | local tFrame = pFrame.addFrame("NonCombatAura", -62, 30) 80 | tFrame:Hide() 81 | 82 | tFrame.addButton("NonCombatSpeed", 0, 0, "spell_holy_crusaderaura", MultiBot.tips.paladin.naura.bspeed) 83 | .doLeft = function(pButton) 84 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +bspeed,?", pButton.getName()) 85 | pButton.getButton("NonCombatAura").doRight = function(pButton) 86 | MultiBot.OnOffActionToTarget(pButton, "nc +bspeed,?", "nc -bspeed,?", pButton.getName()) 87 | end 88 | end 89 | 90 | tFrame.addButton("NonCombatFire", 0, 26, "spell_fire_sealoffire", MultiBot.tips.paladin.naura.rfire) 91 | .doLeft = function(pButton) 92 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +rfire,?", pButton.getName()) 93 | pButton.getButton("NonCombatAura").doRight = function(pButton) 94 | MultiBot.OnOffActionToTarget(pButton, "nc +rfire,?", "nc -rfire,?", pButton.getName()) 95 | end 96 | end 97 | 98 | tFrame.addButton("NonCombatFrost", 0, 52, "spell_frost_wizardmark", MultiBot.tips.paladin.naura.rfrost) 99 | .doLeft = function(pButton) 100 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +rfrost,?", pButton.getName()) 101 | pButton.getButton("NonCombatAura").doRight = function(pButton) 102 | MultiBot.OnOffActionToTarget(pButton, "nc +rfrost,?", "nc -rfrost,?", pButton.getName()) 103 | end 104 | end 105 | 106 | tFrame.addButton("NonCombatShadow", 0, 78, "spell_shadow_sealofkings", MultiBot.tips.paladin.naura.rshadow) 107 | .doLeft = function(pButton) 108 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +rshadow,?", pButton.getName()) 109 | pButton.getButton("NonCombatAura").doRight = function(pButton) 110 | MultiBot.OnOffActionToTarget(pButton, "nc +rshadow,?", "nc -rshadow,?", pButton.getName()) 111 | end 112 | end 113 | 114 | tFrame.addButton("NonCombatDamage", 0, 104, "spell_holy_auraoflight", MultiBot.tips.paladin.naura.baoe) 115 | .doLeft = function(pButton) 116 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +baoe,?", pButton.getName()) 117 | pButton.getButton("NonCombatAura").doRight = function(pButton) 118 | MultiBot.OnOffActionToTarget(pButton, "nc +baoe,?", "nc -baoe,?", pButton.getName()) 119 | end 120 | end 121 | 122 | tFrame.addButton("NonCombatArmor", 0, 130, "spell_holy_devotionaura", MultiBot.tips.paladin.naura.barmor) 123 | .doLeft = function(pButton) 124 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +barmor,?", pButton.getName()) 125 | pButton.getButton("NonCombatAura").doRight = function(pButton) 126 | MultiBot.OnOffActionToTarget(pButton, "nc +barmor,?", "nc -barmor,?", pButton.getName()) 127 | end 128 | end 129 | 130 | tFrame.addButton("NonCombatCast", 0, 156, "spell_holy_mindsooth", MultiBot.tips.paladin.naura.bcast) 131 | .doLeft = function(pButton) 132 | MultiBot.SelectToTarget(pButton.get(), "NonCombatAura", pButton.texture, "nc +bcast,?", pButton.getName()) 133 | pButton.getButton("NonCombatAura").doRight = function(pButton) 134 | MultiBot.OnOffActionToTarget(pButton, "nc +bcast,?", "nc -bcast,?", pButton.getName()) 135 | end 136 | end 137 | 138 | -- STRATEGIES:NON-COMBAT-AURA -- 139 | 140 | if(MultiBot.isInside(pNormal, "bspeed")) then 141 | tButton.setTexture("spell_holy_crusaderaura").setEnable().doRight = function(pButton) 142 | MultiBot.OnOffActionToTarget(pButton, "nc +bspeed,?", "nc -bspeed,?", pButton.getName()) 143 | end 144 | elseif(MultiBot.isInside(pNormal, "rfire")) then 145 | tButton.setTexture("spell_fire_sealoffire").setEnable().doRight = function(pButton) 146 | MultiBot.OnOffActionToTarget(pButton, "nc +rfire,?", "nc -rfire,?", pButton.getName()) 147 | end 148 | elseif(MultiBot.isInside(pNormal, "rfrost")) then 149 | tButton.setTexture("spell_frost_wizardmark").setEnable().doRight = function(pButton) 150 | MultiBot.OnOffActionToTarget(pButton, "nc +rfrost,?", "nc -rfrost,?", pButton.getName()) 151 | end 152 | elseif(MultiBot.isInside(pNormal, "rshadow")) then 153 | tButton.setTexture("spell_shadow_sealofkings").setEnable().doRight = function(pButton) 154 | MultiBot.OnOffActionToTarget(pButton, "nc +rshadow,?", "nc -rshadow,?", pButton.getName()) 155 | end 156 | elseif(MultiBot.isInside(pNormal, "baoe")) then 157 | tButton.setTexture("spell_holy_auraoflight").setEnable().doRight = function(pButton) 158 | MultiBot.OnOffActionToTarget(pButton, "nc +baoe,?", "nc -baoe,?", pButton.getName()) 159 | end 160 | elseif(MultiBot.isInside(pNormal, "barmor")) then 161 | tButton.setTexture("spell_holy_devotionaura").setEnable().doRight = function(pButton) 162 | MultiBot.OnOffActionToTarget(pButton, "nc +barmor,?", "nc -barmor,?", pButton.getName()) 163 | end 164 | elseif(MultiBot.isInside(pNormal, "bcast")) then 165 | tButton.setTexture("spell_holy_mindsooth").setEnable().doRight = function(pButton) 166 | MultiBot.OnOffActionToTarget(pButton, "nc +bcast,?", "nc -bcast,?", pButton.getName()) 167 | end 168 | end 169 | 170 | -- COMBAT-AURA -- 171 | 172 | local tButton = pFrame.addButton("CombatAura", -90, 0, "spell_holy_crusaderaura", MultiBot.tips.paladin.caura.master) 173 | tButton.doLeft = function(pButton) 174 | MultiBot.ShowHideSwitch(pButton.parent.frames["CombatAura"]) 175 | end 176 | 177 | local tFrame = pFrame.addFrame("CombatAura", -92, 30) 178 | tFrame:Hide() 179 | 180 | tFrame.addButton("CombatSpeed", 0, 0, "spell_holy_crusaderaura", MultiBot.tips.paladin.caura.bspeed) 181 | .doLeft = function(pButton) 182 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +bspeed,?", pButton.getName()) 183 | pButton.getButton("CombatAura").doRight = function(pButton) 184 | MultiBot.OnOffActionToTarget(pButton, "co +bspeed,?", "co -bspeed,?", pButton.getName()) 185 | end 186 | end 187 | 188 | tFrame.addButton("CombatFire", 0, 26, "spell_fire_sealoffire", MultiBot.tips.paladin.caura.rfire) 189 | .doLeft = function(pButton) 190 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +rfire,?", pButton.getName()) 191 | pButton.getButton("CombatAura").doRight = function(pButton) 192 | MultiBot.OnOffActionToTarget(pButton, "co +rfire,?", "co -rfire,?", pButton.getName()) 193 | end 194 | end 195 | 196 | tFrame.addButton("CombatFrost", 0, 52, "spell_frost_wizardmark", MultiBot.tips.paladin.caura.rfrost) 197 | .doLeft = function(pButton) 198 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +rfrost,?", pButton.getName()) 199 | pButton.getButton("CombatAura").doRight = function(pButton) 200 | MultiBot.OnOffActionToTarget(pButton, "co +rfrost,?", "co -rfrost,?", pButton.getName()) 201 | end 202 | end 203 | 204 | tFrame.addButton("CombatShadow", 0, 78, "spell_shadow_sealofkings", MultiBot.tips.paladin.caura.rshadow) 205 | .doLeft = function(pButton) 206 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +rshadow,?", pButton.getName()) 207 | pButton.getButton("CombatAura").doRight = function(pButton) 208 | MultiBot.OnOffActionToTarget(pButton, "co +rshadow,?", "co -rshadow,?", pButton.getName()) 209 | end 210 | end 211 | 212 | tFrame.addButton("CombatDamage", 0, 104, "spell_holy_auraoflight", MultiBot.tips.paladin.caura.baoe) 213 | .doLeft = function(pButton) 214 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +baoe,?", pButton.getName()) 215 | pButton.getButton("CombatAura").doRight = function(pButton) 216 | MultiBot.OnOffActionToTarget(pButton, "co +baoe,?", "co -baoe,?", pButton.getName()) 217 | end 218 | end 219 | 220 | tFrame.addButton("CombatArmor", 0, 130, "spell_holy_devotionaura", MultiBot.tips.paladin.caura.barmor) 221 | .doLeft = function(pButton) 222 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +barmor,?", pButton.getName()) 223 | pButton.getButton("CombatAura").doRight = function(pButton) 224 | MultiBot.OnOffActionToTarget(pButton, "co +barmor,?", "co -barmor,?", pButton.getName()) 225 | end 226 | end 227 | 228 | tFrame.addButton("CombatCast", 0, 156, "spell_holy_mindsooth", MultiBot.tips.paladin.caura.bcast) 229 | .doLeft = function(pButton) 230 | MultiBot.SelectToTarget(pButton.get(), "CombatAura", pButton.texture, "co +bcast,?", pButton.getName()) 231 | pButton.getButton("CombatAura").doRight = function(pButton) 232 | MultiBot.OnOffActionToTarget(pButton, "co +bcast,?", "co -bcast,?", pButton.getName()) 233 | end 234 | end 235 | 236 | -- STRATEGIES:COMBAT-AURA -- 237 | 238 | if(MultiBot.isInside(pCombat, "bspeed")) then 239 | tButton.setTexture("spell_holy_crusaderaura").setEnable().doRight = function(pButton) 240 | MultiBot.OnOffActionToTarget(pButton, "co +bspeed,?", "co -bspeed,?", pButton.getName()) 241 | end 242 | elseif(MultiBot.isInside(pCombat, "rfire")) then 243 | tButton.setTexture("spell_fire_sealoffire").setEnable().doRight = function(pButton) 244 | MultiBot.OnOffActionToTarget(pButton, "co +rfire,?", "co -rfire,?", pButton.getName()) 245 | end 246 | elseif(MultiBot.isInside(pCombat, "rfrost")) then 247 | tButton.setTexture("spell_frost_wizardmark").setEnable().doRight = function(pButton) 248 | MultiBot.OnOffActionToTarget(pButton, "co +rfrost,?", "co -rfrost,?", pButton.getName()) 249 | end 250 | elseif(MultiBot.isInside(pCombat, "rshadow")) then 251 | tButton.setTexture("spell_shadow_sealofkings").setEnable().doRight = function(pButton) 252 | MultiBot.OnOffActionToTarget(pButton, "co +rshadow,?", "co -rshadow,?", pButton.getName()) 253 | end 254 | elseif(MultiBot.isInside(pCombat, "baoe")) then 255 | tButton.setTexture("spell_holy_auraoflight").setEnable().doRight = function(pButton) 256 | MultiBot.OnOffActionToTarget(pButton, "co +baoe,?", "co -baoe,?", pButton.getName()) 257 | end 258 | elseif(MultiBot.isInside(pCombat, "barmor")) then 259 | tButton.setTexture("spell_holy_devotionaura").setEnable().doRight = function(pButton) 260 | MultiBot.OnOffActionToTarget(pButton, "co +barmor,?", "co -barmor,?", pButton.getName()) 261 | end 262 | elseif(MultiBot.isInside(pCombat, "bcast")) then 263 | tButton.setTexture("spell_holy_mindsooth").setEnable().doRight = function(pButton) 264 | MultiBot.OnOffActionToTarget(pButton, "co +bcast,?", "co -bcast,?", pButton.getName()) 265 | end 266 | end 267 | 268 | -- DPS -- 269 | 270 | pFrame.addButton("DpsControl", -120, 0, "ability_warrior_challange", MultiBot.tips.paladin.dps.master) 271 | .doLeft = function(pButton) 272 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 273 | end 274 | 275 | local tFrame = pFrame.addFrame("DpsControl", -122, 30) 276 | tFrame:Hide() 277 | 278 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.paladin.dps.dpsAssist).setDisable() 279 | .doLeft = function(pButton) 280 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 281 | pButton.getButton("TankAssist").setDisable() 282 | pButton.getButton("DpsAoe").setDisable() 283 | end 284 | end 285 | 286 | tFrame.addButton("DpsAoe", 0, 26, "spell_holy_surgeoflight", MultiBot.tips.paladin.dps.dpsAoe).setDisable() 287 | .doLeft = function(pButton) 288 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 289 | pButton.getButton("TankAssist").setDisable() 290 | pButton.getButton("DpsAssist").setDisable() 291 | end 292 | end 293 | 294 | tFrame.addButton("Dps", 0, 52, "spell_holy_divinepurpose", MultiBot.tips.paladin.dps.dps).setDisable() 295 | .doLeft = function(pButton) 296 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps,?", "co -dps,?", pButton.getName())) then 297 | pButton.getButton("Heal").setDisable() 298 | pButton.getButton("Tank").setDisable() 299 | end 300 | end 301 | 302 | -- ASSIST -- 303 | 304 | pFrame.addButton("TankAssist", -150, 0, "ability_warrior_innerrage", MultiBot.tips.paladin.tankAssist).setDisable() 305 | .doLeft = function(pButton) 306 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 307 | pButton.getButton("DpsAssist").setDisable() 308 | pButton.getButton("DpsAoe").setDisable() 309 | end 310 | end 311 | 312 | -- TANK -- 313 | 314 | pFrame.addButton("Tank", -180, 0, "ability_warrior_shieldmastery", MultiBot.tips.paladin.tank).setDisable() 315 | .doLeft = function(pButton) 316 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank,?", "co -tank,?", pButton.getName())) then 317 | pButton.getButton("Heal").setDisable() 318 | pButton.getButton("Dps").setDisable() 319 | end 320 | end 321 | 322 | -- STRATEGIES -- 323 | 324 | if(MultiBot.isInside(pCombat, "dps,")) then pFrame.getButton("Dps").setEnable() end 325 | if(MultiBot.isInside(pCombat, "heal")) then pFrame.getButton("Heal").setEnable() end 326 | if(MultiBot.isInside(pCombat, "tank,")) then pFrame.getButton("Tank").setEnable() end 327 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 328 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 329 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 330 | end -------------------------------------------------------------------------------- /MultiBotPriest.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addPriest = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("Heal", 0, 0, "spell_holy_aspiration", MultiBot.tips.priest.heal).setDisable() 3 | .doLeft = function(pButton) 4 | if(MultiBot.OnOffActionToTarget(pButton, "co +heal,?", "co -heal,?", pButton.getName())) then 5 | pButton.getButton("Shadow").setDisable() 6 | pButton.getButton("Dps").setDisable() 7 | end 8 | end 9 | 10 | -- BUFF -- 11 | 12 | pFrame.addButton("Buff", -30, 0, "spell_holy_power", MultiBot.tips.priest.buff).setDisable() 13 | .doLeft = function(pButton) 14 | MultiBot.OnOffActionToTarget(pButton, "co +buff,?", "co -buff,?", pButton.getName()) 15 | end 16 | 17 | -- PLAYBOOK -- 18 | 19 | pFrame.addButton("Playbook", -60, 0, "inv_misc_book_06", MultiBot.tips.priest.playbook.master) 20 | .doLeft = function(pButton) 21 | MultiBot.ShowHideSwitch(pButton.getFrame("Playbook")) 22 | end 23 | 24 | local tFrame = pFrame.addFrame("Playbook", -62, 30) 25 | tFrame:Hide() 26 | 27 | tFrame.addButton("ShadowDebuff", 0, 0, "spell_shadow_demonicempathy", MultiBot.tips.priest.playbook.shadowDebuff).setDisable() 28 | .doLeft = function(pButton) 29 | if(MultiBot.OnOffActionToTarget(pButton, "co +shadow debuff,?", "co -shadow debuff,?", pButton.getName())) then 30 | pButton.getButton("DpsDebuff").setEnable() 31 | else 32 | pButton.getButton("DpsDebuff").setDisable() 33 | end 34 | end 35 | 36 | tFrame.addButton("ShadowAoe", 0, 26, "spell_arcane_arcanetorrent", MultiBot.tips.priest.playbook.shadowAoe).setDisable() 37 | .doLeft = function(pButton) 38 | MultiBot.OnOffActionToTarget(pButton, "co +shadow aoe,?", "co -shadow aoe,?", pButton.getName()) 39 | end 40 | 41 | tFrame.addButton("Shadow", 0, 52, "spell_holy_devotion", MultiBot.tips.priest.playbook.shadow).setDisable() 42 | .doLeft = function(pButton) 43 | if(MultiBot.OnOffActionToTarget(pButton, "co +shadow,?", "co -shadow,?", pButton.getName())) then 44 | pButton.getButton("Heal").setDisable() 45 | pButton.getButton("Dps").setEnable() 46 | else 47 | pButton.getButton("Dps").setDisable() 48 | end 49 | end 50 | 51 | -- DPS -- 52 | 53 | pFrame.addButton("DpsControl", -90, 0, "ability_warrior_challange", MultiBot.tips.priest.dps.master) 54 | .doLeft = function(pButton) 55 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 56 | end 57 | 58 | local tFrame = pFrame.addFrame("DpsControl", -92, 30) 59 | tFrame:Hide() 60 | 61 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.priest.dps.dpsAssist).setDisable() 62 | .doLeft = function(pButton) 63 | if(MultiBot.OnOffActionToTarget(pButton, "co +healer dps,?", "co -healer dps,?", pButton.getName())) then 64 | pButton.getButton("TankAssist").setDisable() 65 | pButton.getButton("DpsAoe").setDisable() 66 | end 67 | end 68 | 69 | tFrame.addButton("DpsDebuff", 0, 26, "spell_holy_restoration", MultiBot.tips.priest.dps.dpsDebuff).setDisable() 70 | .doLeft = function(pButton) 71 | if(MultiBot.OnOffActionToTarget(pButton, "co +shadow debuff,?", "co -shadow debuff,?", pButton.getName())) then 72 | pButton.getButton("ShadowDebuff").setEnable() 73 | else 74 | pButton.getButton("ShadowDebuff").setDisable() 75 | end 76 | end 77 | 78 | tFrame.addButton("DpsAoe", 0, 52, "spell_holy_surgeoflight", MultiBot.tips.priest.dps.dpsAoe).setDisable() 79 | .doLeft = function(pButton) 80 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 81 | pButton.getButton("TankAssist").setDisable() 82 | pButton.getButton("DpsAssist").setDisable() 83 | end 84 | end 85 | 86 | tFrame.addButton("Dps", 0, 78, "spell_holy_divinepurpose", MultiBot.tips.priest.dps.dps).setDisable() 87 | .doLeft = function(pButton) 88 | if(MultiBot.OnOffActionToTarget(pButton, "co +shadow,?", "co -shadow,?", pButton.getName())) then 89 | pButton.getButton("Shadow").setEnable() 90 | pButton.getButton("Heal").setDisable() 91 | else 92 | pButton.getButton("Shadow").setDisable() 93 | end 94 | end 95 | 96 | -- ASSIST -- 97 | 98 | pFrame.addButton("TankAssist", -120, 0, "ability_warrior_innerrage", MultiBot.tips.priest.tankAssist).setDisable() 99 | .doLeft = function(pButton) 100 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 101 | pButton.getButton("DpsAssist").setDisable() 102 | pButton.getButton("DpsAoe").setDisable() 103 | end 104 | end 105 | 106 | -- STRATEGIES -- 107 | 108 | if(MultiBot.isInside(pCombat, "heal")) then pFrame.getButton("Heal").setEnable() end 109 | if(MultiBot.isInside(pNormal, "buff,")) then pFrame.getButton("Buff").setEnable() end 110 | if(MultiBot.isInside(pCombat, "shadow debuff")) then pFrame.getButton("ShadowDebuff").setEnable() end 111 | if(MultiBot.isInside(pCombat, "shadow aoe")) then pFrame.getButton("ShadowAoe").setEnable() end 112 | if(MultiBot.isInside(pCombat, "shadow,")) then pFrame.getButton("Shadow").setEnable() end 113 | if(MultiBot.isInside(pCombat, "healer dps")) then pFrame.getButton("DpsAssist").setEnable() end 114 | if(MultiBot.isInside(pCombat, "shadow debuff")) then pFrame.getButton("DpsDebuff").setEnable() end 115 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 116 | if(MultiBot.isInside(pCombat, "shadow,")) then pFrame.getButton("Shadow").setEnable() end 117 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 118 | end -------------------------------------------------------------------------------- /MultiBotRaidus.lua: -------------------------------------------------------------------------------- 1 | MultiBot.raidus = MultiBot.newFrame(MultiBot, -340, -126, 32, 884, 884) 2 | MultiBot.raidus.addTexture("Interface\\AddOns\\MultiBot\\Textures\\Raidus.blp") 3 | MultiBot.raidus:SetMovable(true) 4 | MultiBot.raidus:Hide() 5 | 6 | MultiBot.raidus.addFrame("Pool", -20, 360, 28, 160, 490) 7 | MultiBot.raidus.addFrame("Btop", -35, 822, 24, 128, 32).addTexture("Interface\\AddOns\\MultiBot\\Textures\\Raidus_Banner_Top.blp") 8 | MultiBot.raidus.addFrame("Bbot", -35, 354, 24, 128, 32).addTexture("Interface\\AddOns\\MultiBot\\Textures\\Raidus_Banner_Bottom.blp") 9 | MultiBot.raidus.addFrame("Group8", -185, 364, 28, 160, 240) 10 | MultiBot.raidus.addFrame("Group7", -350, 364, 28, 160, 240) 11 | MultiBot.raidus.addFrame("Group6", -515, 364, 28, 160, 240) 12 | MultiBot.raidus.addFrame("Group5", -680, 364, 28, 160, 240) 13 | MultiBot.raidus.addFrame("Group4", -185, 604, 28, 160, 240) 14 | MultiBot.raidus.addFrame("Group3", -350, 604, 28, 160, 240) 15 | MultiBot.raidus.addFrame("Group2", -515, 604, 28, 160, 240) 16 | MultiBot.raidus.addFrame("Group1", -680, 604, 28, 160, 240) 17 | MultiBot.raidus.save = "" 18 | MultiBot.raidus.from = 1 19 | MultiBot.raidus.to = 11 20 | 21 | MultiBot.raidus.movButton("Move", -780, 790, 90, MultiBot.tips.move.raidus) 22 | 23 | MultiBot.raidus.wowButton("x", -13, 841, 16, 20, 12) 24 | .doLeft = function(pButton) 25 | local tButton = MultiBot.frames["MultiBar"].frames["Main"].buttons["Raidus"] 26 | tButton.doLeft(tButton) 27 | end 28 | 29 | MultiBot.raidus.wowButton("Load", -762, 360, 80, 20, 12) 30 | .doLeft = function(pButton) 31 | local tPool = MultiBot.raidus.frames["Pool"] 32 | local tLoad = MultiBot.doSplit(MultiBotSave["Raidus" .. MultiBot.raidus.save], ";") 33 | 34 | for i = 1, 8, 1 do 35 | local tGroup = MultiBot.doSplit(tLoad[i], ",") 36 | 37 | for j = 1, 5, 1 do 38 | local tDrop = MultiBot.raidus.frames["Group" .. i].frames["Slot" .. j] 39 | local tName = tGroup[j] 40 | 41 | if(tName ~= "-") then 42 | for tIndex, tDrag in pairs(tPool.frames) do 43 | if(tDrag.name ~= nil and tDrag.name == tName) then 44 | local tVisible = tDrag:IsVisible() 45 | local tParent = tDrag.parent 46 | local tHeight = tDrag.height 47 | local tWidth = tDrag.width 48 | local tSlot = tDrag.slot 49 | local tX = tDrag.x 50 | local tY = tDrag.y 51 | 52 | MultiBot.raidus.doDrop(tDrag, tDrop.parent, tDrop.x, tDrop.y, tDrop.width, tDrop.height, tDrop.slot) 53 | if(tDrop:IsVisible()) then tDrag:Show() else tDrag:Hide() end 54 | 55 | MultiBot.raidus.doDrop(tDrop, tParent, tX, tY, tWidth, tHeight, tSlot) 56 | if(tVisible) then tDrop:Show() else tDrop:Hide() end 57 | end 58 | end 59 | end 60 | end 61 | end 62 | end 63 | 64 | MultiBot.raidus.wowButton("1", -734, 360, 22, 20, 12).setDisable() 65 | .doLeft = function(pButton) 66 | if(pButton.state) then 67 | pButton.parent.save = "" 68 | pButton.setDisable() 69 | MultiBot.raidus.setRaidus() 70 | else 71 | pButton.parent.save = "1" 72 | pButton.parent.buttons["2"].setDisable() 73 | pButton.parent.buttons["3"].setDisable() 74 | pButton.setEnable() 75 | MultiBot.raidus.setRaidus() 76 | end 77 | end 78 | 79 | MultiBot.raidus.wowButton("2", -707, 360, 22, 20, 12).setDisable() 80 | .doLeft = function(pButton) 81 | if(pButton.state) then 82 | pButton.parent.save = "" 83 | pButton.setDisable() 84 | MultiBot.raidus.setRaidus() 85 | else 86 | pButton.parent.save = "2" 87 | pButton.parent.buttons["1"].setDisable() 88 | pButton.parent.buttons["3"].setDisable() 89 | pButton.setEnable() 90 | MultiBot.raidus.setRaidus() 91 | end 92 | end 93 | 94 | MultiBot.raidus.wowButton("3", -680, 360, 22, 20, 12).setDisable() 95 | .doLeft = function(pButton) 96 | if(pButton.state) then 97 | pButton.parent.save = "" 98 | pButton.setDisable() 99 | MultiBot.raidus.setRaidus() 100 | else 101 | pButton.parent.save = "3" 102 | pButton.parent.buttons["1"].setDisable() 103 | pButton.parent.buttons["2"].setDisable() 104 | pButton.setEnable() 105 | MultiBot.raidus.setRaidus() 106 | end 107 | end 108 | 109 | MultiBot.raidus.wowButton("Save", -597, 360, 80, 20, 12) 110 | .doLeft = function(pButton) 111 | local tSave = "" 112 | 113 | for i = 1, 8, 1 do 114 | local tGroup = "" 115 | 116 | for j = 1, 5, 1 do 117 | local tSlot = MultiBot.raidus.frames["Group" .. i].frames["Slot" .. j] 118 | local tName = MultiBot.IF(tSlot.name == nil, "-", tSlot.name) 119 | tGroup = tGroup .. MultiBot.IF(tGroup == "", "", ",") 120 | tGroup = tGroup .. tName 121 | end 122 | 123 | tSave = tSave .. MultiBot.IF(tSave == "", "", ";") 124 | tSave = tSave .. tGroup 125 | end 126 | 127 | MultiBotSave["Raidus" .. MultiBot.raidus.save] = tSave 128 | SendChatMessage("I wrote it down.", "SAY") 129 | end 130 | 131 | 132 | 133 | MultiBot.raidus.wowButton("Apply", -514, 360, 80, 20, 12) 134 | .doLeft = function(pButton) 135 | local tRaidByIndex, tRaidByName = MultiBot.raidus.getRaidTarget() 136 | if(tRaidByIndex == nil or tRaidByName == nil) then return end 137 | 138 | local tSelf = UnitName("player") 139 | MultiBot.index.raidus = {} 140 | 141 | for tName, tValue in pairs(MultiBot.frames["MultiBar"].frames["Units"].buttons) do 142 | if(tValue.state) then 143 | if(tName ~= tSelf and tRaidByName[tName] == nil) then 144 | if(UnitInGroup(tName) or UnitInRaid(tName)) then UninviteUnit(tName) end 145 | SendChatMessage(".playerbot bot remove " .. tName, "SAY") 146 | end 147 | else 148 | if(tName ~= tSelf and tRaidByName[tName] ~= nil) then 149 | table.insert(MultiBot.index.raidus, tName) 150 | end 151 | end 152 | end 153 | 154 | local tNeeds = table.getn(MultiBot.index.raidus) 155 | 156 | if(tNeeds > 0) then 157 | SendChatMessage(MultiBot.info.starting, "SAY") 158 | MultiBot.timer.invite.roster = "raidus" 159 | MultiBot.timer.invite.needs = tNeeds 160 | MultiBot.timer.invite.index = 1 161 | MultiBot.auto.invite = true 162 | else 163 | MultiBot.raidus.doRaidSort() 164 | end 165 | end 166 | 167 | MultiBot.raidus.wowButton("<", -40, 360, 16, 20, 12) 168 | .doLeft = function(pButton) 169 | for k,v in pairs(MultiBot.raidus.frames["Pool"].frames) do v:Hide() end 170 | 171 | MultiBot.raidus.from = MultiBot.raidus.from - 11 172 | MultiBot.raidus.to = MultiBot.raidus.to - 11 173 | 174 | if(MultiBot.raidus.to < 1) then 175 | MultiBot.raidus.from = MultiBot.raidus.slots - 10 176 | MultiBot.raidus.to = MultiBot.raidus.slots 177 | end 178 | 179 | for i = 1, MultiBot.raidus.slots, 1 do 180 | local tSlot = MultiBot.raidus.frames["Pool"].frames["Slot" .. i] 181 | if(i >= MultiBot.raidus.from and i <= MultiBot.raidus.to) then tSlot:Show() else tSlot:Hide() end 182 | end 183 | end 184 | 185 | MultiBot.raidus.wowButton(">", -20, 360, 16, 20, 12) 186 | .doLeft = function(pButton) 187 | MultiBot.raidus.from = MultiBot.raidus.from + 11 188 | MultiBot.raidus.to = MultiBot.raidus.to + 11 189 | 190 | if(MultiBot.raidus.from > MultiBot.raidus.slots) then 191 | MultiBot.raidus.from = 1 192 | MultiBot.raidus.to = 11 193 | end 194 | 195 | for i = 1, MultiBot.raidus.slots, 1 do 196 | local tSlot = MultiBot.raidus.frames["Pool"].frames["Slot" .. i] 197 | if(i >= MultiBot.raidus.from and i <= MultiBot.raidus.to) then tSlot:Show() else tSlot:Hide() end 198 | end 199 | end 200 | 201 | MultiBot.raidus.getDrop = function() 202 | for i = 1, 8, 1 do 203 | local tGroup = MultiBot.raidus.frames["Group" .. i] 204 | 205 | if(MouseIsOver(tGroup)) then 206 | for j = 1, 5, 1 do 207 | local tSlot = tGroup.frames["Slot" .. j] 208 | if(MouseIsOver(tSlot)) then return tSlot end 209 | end 210 | end 211 | end 212 | 213 | for i = 1, MultiBot.raidus.slots, 1 do 214 | local tSlot = MultiBot.raidus.frames["Pool"].frames["Slot" .. i] 215 | if(MouseIsOver(tSlot)) then return tSlot end 216 | end 217 | 218 | return nil 219 | end 220 | 221 | -- SETTTER -- 222 | 223 | MultiBot.raidus.setRaidus = function() 224 | local tPool = MultiBot.raidus.frames["Pool"] 225 | local tSlot = 1 226 | local tY = 426 227 | 228 | for k,v in pairs(tPool.frames) do v:Hide() end 229 | 230 | local tBots = {} 231 | local tIndex = 1 232 | 233 | for tName, tValue in pairs(MultiBotGlobalSave) do 234 | local tDetails = MultiBot.doSplit(tValue, ",") 235 | local tBot = {} 236 | 237 | tBot.name = tName 238 | tBot.race = tDetails[1] 239 | tBot.gender = tDetails[2] 240 | tBot.special = tDetails[3] 241 | tBot.talents = tDetails[4] 242 | tBot.class = tDetails[5] 243 | tBot.level = tonumber(tDetails[6]) 244 | tBot.score = tonumber(tDetails[7]) 245 | 246 | local tClass = MultiBot.toClass(tBot.class) 247 | 248 | tBot.sort = tonumber(tBot.level) * 1000 249 | + MultiBot.IF(tClass == "DeathKnight", 1100000 250 | , MultiBot.IF(tClass == "Druid", 1200000 251 | , MultiBot.IF(tClass == "Hunter", 1300000 252 | , MultiBot.IF(tClass == "Mage", 1400000 253 | , MultiBot.IF(tClass == "Paladin", 1500000 254 | , MultiBot.IF(tClass == "Priest", 1600000 255 | , MultiBot.IF(tClass == "Rogue", 1700000 256 | , MultiBot.IF(tClass == "Shaman", 1800000 257 | , MultiBot.IF(tClass == "Warlock", 1900000 258 | , MultiBot.IF(tClass == "Warrior", 2000000 259 | , 1000000)))))))))) + tonumber(tBot.score); 260 | 261 | tBots[tIndex] = tBot 262 | tIndex = tIndex + 1 263 | end 264 | 265 | for tIndex = 1, table.getn(tBots) do 266 | local tMax = tIndex 267 | 268 | for tSearch = tIndex + 1, table.getn(tBots) do 269 | if(tBots[tMax].sort < tBots[tSearch].sort) then 270 | tMax = tSearch 271 | end 272 | end 273 | 274 | tBots[tIndex], tBots[tMax] = tBots[tMax], tBots[tIndex] 275 | end 276 | 277 | for tIndex = 1, table.getn(tBots) do 278 | local tBot = tBots[tIndex] 279 | 280 | local tFrame = tPool.addFrame("Slot" .. tSlot, 0, tY, 28, 160, 36) 281 | tFrame.addTexture("Interface\\AddOns\\MultiBot\\Textures\\grey.blp") 282 | tFrame:SetResizable(false) 283 | tFrame:SetMovable(true) 284 | tFrame.class = MultiBot.toClass(tBot.class) 285 | tFrame.slot = "Slot" .. tSlot 286 | tFrame.name = tBot.name 287 | tFrame.bot = tBot 288 | 289 | local tButton = tFrame.addButton("Icon", -128, 3, "Interface\\AddOns\\MultiBot\\Icons\\class_" .. strlower(tFrame.class) .. ".blp", "") 290 | tButton.doRight = function(pButton) 291 | SendChatMessage(".playerbot bot add " .. pButton.parent.name, "SAY") 292 | end 293 | 294 | tButton:SetScript("OnEnter", function(pButton) 295 | local tBot = pButton.parent.bot 296 | local tReward = tBot.level .. "." .. MultiBot.IF(tBot.score < 100, "0", MultiBot.IF(tBot.score < 10, "00", "")) .. tBot.score 297 | pButton.tip = MultiBot.newFrame(pButton, -pButton.size, 160, 28, 256, 512, "TOPRIGHT") 298 | pButton.tip.addTexture("Interface\\AddOns\\MultiBot\\Textures\\Raidus_Wanted.blp") 299 | pButton.tip.addModel(tBot.name, 0, 64, 160, 240, 1.0) 300 | pButton.tip.addText("1", "|cff555555- WANTED -|h", "TOP", 0, -30, 24) 301 | pButton.tip.addText("2", "|cff555555-DEAD OR ALIVE-|h", "TOP", 0, -55, 24) 302 | pButton.tip.addText("3", "|cff333333" .. tBot.name .. " - " .. tBot.gender .. " - " .. tBot.race .. "|h", "BOTTOM", 0, 220, 15) 303 | pButton.tip.addText("4", "|cff333333" .. tBot.class .. " - " .. tBot.talents .. " - " .. tBot.special .. "|h", "BOTTOM", 0, 200, 15) 304 | pButton.tip.addText("5", "|cff555555--------------------------------------------|h", "BOTTOM", 0, 188, 15) 305 | pButton.tip.addText("6", "|cff555555CASH - " .. tReward .. " - GOLD|h", "BOTTOM", 0, 170, 20) 306 | pButton.tip.addText("7", "|cff555555--------------------------------------------|h", "BOTTOM", 0, 160, 15) 307 | pButton.tip:Show() 308 | end) 309 | 310 | tButton:SetScript("OnMouseDown", function(pButton) 311 | pButton.parent:StartMoving() 312 | pButton.parent.isMoving = true 313 | end) 314 | 315 | tButton:SetScript("OnMouseUp", function(pButton) 316 | pButton.parent:StopMovingOrSizing() 317 | pButton.parent.isMoving = false 318 | 319 | local tDrag = pButton.parent 320 | local tDrop = MultiBot.raidus.getDrop() 321 | 322 | if(tDrop ~= nil) then 323 | local tParent = tDrag.parent 324 | local tHeight = tDrag.height 325 | local tWidth = tDrag.width 326 | local tSlot = tDrag.slot 327 | local tX = tDrag.x 328 | local tY = tDrag.y 329 | 330 | MultiBot.raidus.doDrop(tDrag, tDrop.parent, tDrop.x, tDrop.y, tDrop.width, tDrop.height, tDrop.slot) 331 | MultiBot.raidus.doDrop(tDrop, tParent, tX, tY, tWidth, tHeight, tSlot) 332 | else 333 | pButton.parent:ClearAllPoints() 334 | pButton.parent:SetPoint(pButton.parent.align, pButton.parent.x, pButton.parent.y) 335 | pButton.parent:SetSize(pButton.parent.width, pButton.parent.height) 336 | end 337 | end) 338 | 339 | tFrame.addText("1", tBot.level .. " - " .. tBot.class, "BOTTOMLEFT", 36, 18, 12) 340 | tFrame.addText("2", tBot.score .. " - " .. tBot.special, "BOTTOMLEFT", 36, 6, 12) 341 | 342 | if(tSlot > 11) then tFrame:Hide() else tFrame:Show() end 343 | tY = MultiBot.IF(mod(tSlot, 11) == 0, 426, tY - 40) 344 | tSlot = tSlot + 1 345 | end 346 | 347 | for i = mod(tSlot, 11), 11, 1 do 348 | local tFrame = tPool.addFrame("Slot" .. tSlot, 0, tY, 28, 160, 36) 349 | tFrame.addTexture("Interface\\AddOns\\MultiBot\\Textures\\grey.blp") 350 | tFrame.slot = "Slot" .. tSlot 351 | if(tSlot > 11) then tFrame:Hide() else tFrame:Show() end 352 | tSlot = tSlot + 1 353 | tY = tY - 40 354 | end 355 | 356 | MultiBot.raidus.slots = tSlot - 1 357 | 358 | for i = 1, 8, 1 do 359 | local tGroup = MultiBot.raidus.frames["Group" .. i] 360 | local tY = 182 361 | 362 | tGroup.addText("Title", "- Group" .. i .. " -", "BOTTOM", 0, 223, 12) 363 | tGroup.group = "Group" .. i 364 | 365 | for j = 1, 5, 1 do 366 | local tFrame = tGroup.addFrame("Slot" .. j, 0, tY, 28, 160, 36) 367 | tFrame.addTexture("Interface\\AddOns\\MultiBot\\Textures\\grey.blp") 368 | tFrame.slot = "Slot" .. j 369 | tY = tY - 40 370 | end 371 | end 372 | end 373 | 374 | -- GETTER -- 375 | 376 | MultiBot.raidus.getRaidState = function() 377 | local tRaidByMembers = {} 378 | local tRaidByGroups = {} 379 | 380 | local tRaid = GetNumRaidMembers() 381 | local tGroup = GetNumPartyMembers() 382 | local tAmount = MultiBot.IF(tRaid > tGroup, tRaid, tGroup) 383 | 384 | for tIndex = 1, tAmount do 385 | local xName, xRank, xGroup = GetRaidRosterInfo(tIndex) 386 | if(xName and xRank and xGroup) then 387 | tRaidByMembers[xName] = { index = tIndex, group = xGroup } 388 | tRaidByGroups[xGroup] = (tRaidByGroups[xGroup] or 0) + 1 389 | end 390 | end 391 | 392 | return tRaidByMembers, tRaidByGroups 393 | end 394 | 395 | MultiBot.raidus.getRaidTarget = function() 396 | local tRaidByIndex = {} 397 | local tRaidByName = {} 398 | local tIndex = 1 399 | 400 | local tSelf = UnitName("player") 401 | local tUser = true 402 | local tBots = true 403 | 404 | for tGroup = 1, 8 do 405 | for tSlot = 1, 5 do 406 | local tName = MultiBot.raidus.frames["Group" .. tGroup].frames["Slot" .. tSlot].name 407 | if(tName ~= nil) then 408 | if(tName == tSelf) then tUser = false end 409 | tRaidByIndex[tIndex] = { name = tName, group = tGroup } 410 | tRaidByName[tName] = tGroup 411 | tIndex = tIndex + 1 412 | tBots = false 413 | end 414 | end 415 | end 416 | 417 | if(tBots) then return SendChatMessage("There is no Bot in the Raid", "SAY") end 418 | if(tUser) then return SendChatMessage("I must be in the Raid!", "SAY") end 419 | return tRaidByIndex, tRaidByName 420 | end 421 | 422 | -- EVENTS -- 423 | 424 | MultiBot.raidus.doRaidSortCheck = function() 425 | local tRaidByIndex, tRaidByName = MultiBot.raidus.getRaidTarget() 426 | local tRaidByMembers, tRaidByGroups = MultiBot.raidus.getRaidState() 427 | 428 | for tName, tGroup in pairs(tRaidByName) do 429 | if(tRaidByMembers[tName] ~= nil and tRaidByMembers[tName].group ~= tGroup) then return 1 end 430 | end 431 | 432 | return nil 433 | end 434 | 435 | MultiBot.raidus.doRaidSort = function(pIndex) 436 | local tRaidByIndex, tRaidByName = MultiBot.raidus.getRaidTarget() 437 | local tRaidByMembers, tRaidByGroups = MultiBot.raidus.getRaidState() 438 | 439 | if(pIndex > table.getn(tRaidByIndex)) then return nil end 440 | 441 | local tName = tRaidByIndex[pIndex].name 442 | local tGroup = tRaidByIndex[pIndex].group 443 | 444 | if(tRaidByMembers[tName] ~= nil and tRaidByMembers[tName].group ~= tGroup) then 445 | if(tRaidByGroups[tGroup] == nil) then 446 | SetRaidSubgroup(tRaidByMembers[tName].index, tGroup) 447 | else 448 | if(tRaidByGroups[tGroup] < 5) then 449 | SetRaidSubgroup(tRaidByMembers[tName].index, tGroup) 450 | else 451 | for xName, xValue in pairs(tRaidByMembers) do 452 | if(xValue.group == tGroup and tRaidByName[xName] ~= tGroup) then 453 | SwapRaidSubgroup(tRaidByMembers[tName].index, xValue.index) 454 | break 455 | end 456 | end 457 | end 458 | end 459 | end 460 | 461 | return pIndex + 1 462 | end 463 | 464 | MultiBot.raidus.doDrop = function(pObject, pParent, pX, pY, pWidth, pHeight, pSlot) 465 | pParent.frames[pSlot] = pObject 466 | pObject:ClearAllPoints() 467 | pObject:SetParent(pParent) 468 | pObject:SetPoint("BOTTOMRIGHT", pX, pY) 469 | pObject:SetSize(pWidth, pHeight) 470 | pObject.parent = pParent 471 | pObject.height = pHeight 472 | pObject.width = pWidth 473 | pObject.slot = pSlot 474 | pObject.x = pX 475 | pObject.y = pY 476 | end -------------------------------------------------------------------------------- /MultiBotReward.lua: -------------------------------------------------------------------------------- 1 | MultiBot.setRewards = function() 2 | if(MultiBot.reward.state == false) then return end 3 | local tChoices = MultiBot.IF(GetNumQuestChoices() > 6, 6, GetNumQuestChoices()) 4 | table.wipe(MultiBot.reward.rewards) 5 | table.wipe(MultiBot.reward.units) 6 | MultiBot.reward.rewards = {} 7 | MultiBot.reward.units = {} 8 | 9 | for i = 1, tChoices do 10 | local tLink = GetQuestItemLink("CHOICE", i) 11 | local tName, tIcon = GetQuestItemInfo("CHOICE", i) 12 | MultiBot.reward.rewards[i] = { tLink, tName, tIcon } 13 | end 14 | 15 | for i = 1, 12 do 16 | local tID = "U" .. MultiBot.IF(i < 10, "0", "") .. i 17 | local tUnit = MultiBot.reward.frames["Overlay"].frames[tID] 18 | for j = 1, 6 do tUnit.buttons["R" .. j]:Hide() end 19 | tUnit:Hide() 20 | end 21 | 22 | if(GetNumRaidMembers() > 0) then 23 | for i = 1, 40 do 24 | local tUnit = UnitName("raid" .. i) 25 | if(tUnit ~= nil) then 26 | local tBot = MultiBot.getBot(tUnit) 27 | if(tBot ~= nil and tBot.name ~= UnitName("player")) then table.insert(MultiBot.reward.units, tBot) end 28 | end 29 | end 30 | elseif(GetNumPartyMembers() > 0) then 31 | for i = 1, 5 do 32 | local tUnit = UnitName("party" .. i) 33 | if(tUnit ~= nil) then 34 | local tBot = MultiBot.getBot(tUnit) 35 | if(tBot ~= nil and tBot.name ~= UnitName("player")) then table.insert(MultiBot.reward.units, tBot) end 36 | end 37 | end 38 | end 39 | 40 | if(table.getn(MultiBot.reward.units) > 0 and tChoices > 0) then 41 | local tOverlay = MultiBot.reward.frames["Overlay"] 42 | local tUnits = table.getn(MultiBot.reward.units) 43 | 44 | MultiBot.reward.max = math.ceil(tUnits / MultiBot.reward.to) 45 | tOverlay.setText("Pages", MultiBot.reward.now .. "/" .. MultiBot.reward.max) 46 | tOverlay.buttons["<"]:Show() 47 | tOverlay.buttons[">"]:Show() 48 | 49 | if(MultiBot.reward.now == 1) then tOverlay.buttons["<"]:Hide() end 50 | if(MultiBot.reward.now == MultiBot.reward.max) then tOverlay.buttons[">"]:Hide() end 51 | 52 | if(tUnits > MultiBot.reward.to) then tUnits = MultiBot.reward.to end 53 | 54 | for i = 1, tUnits do 55 | local tBot = MultiBot.reward.units[i] 56 | local tUnit = MultiBot.setReward(i, tBot, false) 57 | 58 | for j = 1, tChoices do 59 | local tReward = tUnit.buttons["R" .. j] 60 | tReward:Show() 61 | tReward.link = MultiBot.reward.rewards[j][1] 62 | tReward.setButton(MultiBot.reward.rewards[j][3], MultiBot.reward.rewards[j][1]) 63 | tReward.doLeft = function(pButton) 64 | pButton.parent:Hide() 65 | SendChatMessage("r " .. pButton.link, "WHISPER", nil, pButton.getName()) 66 | MultiBot.getBot(pButton.getName()).rewarded = true 67 | MultiBot.reward.doClose() 68 | end 69 | end 70 | end 71 | 72 | MultiBot.reward:Show() 73 | end 74 | end 75 | 76 | MultiBot.setReward = function(pIndex, pBot, oRewarded) 77 | local tID = "U" .. MultiBot.IF(pIndex < 10, "0", "") .. pIndex 78 | local tUnit = MultiBot.reward.frames["Overlay"].frames[tID] 79 | if(oRewarded ~= nil) then pBot.rewarded = oRewarded end 80 | if(pBot.rewarded) then tUnit:Hide() else tUnit:Show() end 81 | tUnit.setText(tID, "|cffffcc00" .. pBot.name .. " - " .. pBot.class .. "|r") 82 | tUnit.class = pBot.class 83 | tUnit.name = pBot.name 84 | return tUnit 85 | end -------------------------------------------------------------------------------- /MultiBotRogue.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addRogue = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("DpsControl", 0, 0, "ability_warrior_challange", MultiBot.tips.rogue.dps.master) 3 | .doLeft = function(pButton) 4 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 5 | end 6 | 7 | local tFrame = pFrame.addFrame("DpsControl", -2, 30) 8 | tFrame:Hide() 9 | 10 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.rogue.dps.dpsAssist).setDisable() 11 | .doLeft = function(pButton) 12 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 13 | pButton.getButton("TankAssist").setDisable() 14 | pButton.getButton("DpsAoe").setDisable() 15 | end 16 | end 17 | 18 | tFrame.addButton("DpsAoe", 0, 26, "spell_holy_surgeoflight", MultiBot.tips.rogue.dps.dpsAoe).setDisable() 19 | .doLeft = function(pButton) 20 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 21 | pButton.getButton("TankAssist").setDisable() 22 | pButton.getButton("DpsAssist").setDisable() 23 | end 24 | end 25 | 26 | tFrame.addButton("Dps", 0, 52, "spell_holy_divinepurpose", MultiBot.tips.rogue.dps.dps).setDisable() 27 | .doLeft = function(pButton) 28 | MultiBot.OnOffActionToTarget(pButton, "co +dps,?", "co -dps,?", pButton.getName()) 29 | end 30 | 31 | -- ASSIST -- 32 | 33 | pFrame.addButton("TankAssist", -30, 0, "ability_warrior_innerrage", MultiBot.tips.rogue.tankAssist).setDisable() 34 | .doLeft = function(pButton) 35 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 36 | pButton.getButton("DpsAssist").setDisable() 37 | pButton.getButton("DpsAoe").setDisable() 38 | end 39 | end 40 | 41 | -- STRATEGIES -- 42 | 43 | if(MultiBot.isInside(pCombat, "dps")) then pFrame.getButton("Dps").setEnable() end 44 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 45 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 46 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 47 | end -------------------------------------------------------------------------------- /MultiBotShaman.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addShaman = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("Heal", 0, 0, "spell_holy_aspiration", MultiBot.tips.shaman.heal).setDisable() 3 | .doLeft = function(pButton) 4 | if(MultiBot.OnOffActionToTarget(pButton, "co +heal,?", "co -heal,?", pButton.getName())) then 5 | pButton.getButton("Caster").setDisable() 6 | pButton.getButton("Melee").setDisable() 7 | end 8 | end 9 | 10 | -- NON-COMBAT-TOTEM -- 11 | 12 | local tButton = pFrame.addButton("NonCombatTotem", -30, 0, "spell_nature_manaregentotem", MultiBot.tips.shaman.ntotem.master) 13 | tButton.doLeft = function(pButton) 14 | MultiBot.ShowHideSwitch(pButton.parent.frames["NonCombatTotem"]) 15 | end 16 | 17 | local tFrame = pFrame.addFrame("NonCombatTotem", -32, 30) 18 | tFrame:Hide() 19 | 20 | tFrame.addButton("NonCombatMana", 0, 0, "spell_nature_manaregentotem", MultiBot.tips.shaman.ntotem.bmana) 21 | .doLeft = function(pButton) 22 | MultiBot.SelectToTarget(pButton.get(), "NonCombatTotem", pButton.texture, "nc +bmana,?", pButton.getName()) 23 | pButton.getButton("NonCombatTotem").doRight = function(pButton) 24 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 25 | end 26 | end 27 | 28 | tFrame.addButton("NonCombatDps", 0, 26, "spell_nature_windfury", MultiBot.tips.shaman.ntotem.bdps) 29 | .doLeft = function(pButton) 30 | MultiBot.SelectToTarget(pButton.get(), "NonCombatTotem", pButton.texture, "nc +bdps,?", pButton.getName()) 31 | pButton.getButton("NonCombatTotem").doRight = function(pButton) 32 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 33 | end 34 | end 35 | 36 | -- STRATEGIES:NON-COMBAT-TOTEM -- 37 | 38 | if(MultiBot.isInside(pNormal, "bmana")) then 39 | tButton.setTexture("spell_nature_manaregentotem").setEnable().doRight = function(pButton) 40 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 41 | end 42 | elseif(MultiBot.isInside(pNormal, "bdps")) then 43 | tButton.setTexture("spell_nature_windfury").setEnable().doRight = function(pButton) 44 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 45 | end 46 | end 47 | 48 | -- COMBAT-TOTEM -- 49 | 50 | local tButton = pFrame.addButton("CombatTotem", -60, 0, "spell_nature_manaregentotem", MultiBot.tips.shaman.ctotem.master) 51 | tButton.doLeft = function(pButton) 52 | MultiBot.ShowHideSwitch(pButton.parent.frames["CombatTotem"]) 53 | end 54 | 55 | local tFrame = pFrame.addFrame("CombatTotem", -62, 30) 56 | tFrame:Hide() 57 | 58 | tFrame.addButton("CombatMana", 0, 0, "spell_nature_manaregentotem", MultiBot.tips.shaman.ctotem.bmana) 59 | .doLeft = function(pButton) 60 | MultiBot.SelectToTarget(pButton.get(), "CombatTotem", pButton.texture, "co +bmana,?", pButton.getName()) 61 | pButton.getButton("CombatTotem").doRight = function(pButton) 62 | MultiBot.OnOffActionToTarget(pButton, "co +bmana,?", "co -bmana,?", pButton.getName()) 63 | end 64 | end 65 | 66 | tFrame.addButton("CombatDps", 0, 26, "spell_nature_windfury", MultiBot.tips.shaman.ctotem.bdps) 67 | .doLeft = function(pButton) 68 | MultiBot.SelectToTarget(pButton.get(), "CombatTotem", pButton.texture, "co +bdps,?", pButton.getName()) 69 | pButton.getButton("CombatTotem").doRight = function(pButton) 70 | MultiBot.OnOffActionToTarget(pButton, "co +bdps,?", "co -bdps,?", pButton.getName()) 71 | end 72 | end 73 | 74 | -- STRATEGIES:COMBAT-TOTEM -- 75 | 76 | if(MultiBot.isInside(pCombat, "bmana")) then 77 | tButton.setTexture("spell_nature_manaregentotem").setEnable().doRight = function(pButton) 78 | MultiBot.OnOffActionToTarget(pButton, "co +bmana,?", "co -bmana,?", pButton.getName()) 79 | end 80 | elseif(MultiBot.isInside(pCombat, "bdps")) then 81 | tButton.setTexture("spell_nature_windfury").setEnable().doRight = function(pButton) 82 | MultiBot.OnOffActionToTarget(pButton, "co +bdps,?", "co -bdps,?", pButton.getName()) 83 | end 84 | end 85 | 86 | -- PLAYBOOK -- 87 | 88 | pFrame.addButton("Playbook", -90, 0, "inv_misc_book_06", MultiBot.tips.shaman.playbook.master) 89 | .doLeft = function(pButton) 90 | MultiBot.ShowHideSwitch(pButton.getFrame("Playbook")) 91 | end 92 | 93 | tFrame = pFrame.addFrame("Playbook", -92, 30) 94 | tFrame:Hide() 95 | 96 | tFrame.addButton("Totems", 0, 0, "inv_relics_totemofrebirth", MultiBot.tips.shaman.playbook.totems).setDisable() 97 | .doLeft = function(pButton) 98 | MultiBot.OnOffActionToTarget(pButton, "co +totems,?", "co -totems,?", pButton.getName()) 99 | end 100 | 101 | tFrame.addButton("CasterAoe", 0, 26, "spell_nature_lightningoverload", MultiBot.tips.shaman.playbook.casterAoe).setDisable() 102 | .doLeft = function(pButton) 103 | MultiBot.OnOffActionToTarget(pButton, "co +caster aoe,?", "co -caster aoe,?", pButton.getName()) 104 | end 105 | 106 | tFrame.addButton("Caster", 0, 52, "spell_nature_lightning", MultiBot.tips.shaman.playbook.caster).setDisable() 107 | .doLeft = function(pButton) 108 | if(MultiBot.OnOffActionToTarget(pButton, "co +caster,?", "co -caster,?", pButton.getName())) then 109 | pButton.getButton("Melee").setDisable() 110 | pButton.getButton("Heal").setDisable() 111 | end 112 | end 113 | 114 | tFrame.addButton("MeleeAoe", 0, 78, "ability_warrior_shockwave", MultiBot.tips.shaman.playbook.meleeAoe).setDisable() 115 | .doLeft = function(pButton) 116 | MultiBot.OnOffActionToTarget(pButton, "co +melee aoe,?", "co -melee aoe,?", pButton.getName()) 117 | end 118 | 119 | tFrame.addButton("Melee", 0, 104, "ability_parry", MultiBot.tips.shaman.playbook.melee).setDisable() 120 | .doLeft = function(pButton) 121 | if(MultiBot.OnOffActionToTarget(pButton, "co +melee,?", "co -melee,?", pButton.getName())) then 122 | pButton.getButton("Caster").setDisable() 123 | pButton.getButton("Heal").setDisable() 124 | end 125 | end 126 | 127 | -- STRATEGIES:PLAYBOOK -- 128 | 129 | if(MultiBot.isInside(pCombat, "heal")) then pFrame.getButton("Heal").setEnable() end 130 | if(MultiBot.isInside(pCombat, "melee,")) then pFrame.getButton("Melee").setEnable() end 131 | if(MultiBot.isInside(pCombat, "totems")) then pFrame.getButton("Totems").setEnable() end 132 | if(MultiBot.isInside(pCombat, "caster,")) then pFrame.getButton("Caster").setEnable() end 133 | if(MultiBot.isInside(pCombat, "melee aoe")) then pFrame.getButton("MeleeAoe").setEnable() end 134 | if(MultiBot.isInside(pCombat, "caster aoe")) then pFrame.getButton("CasterAoe").setEnable() end 135 | 136 | -- DPS -- 137 | 138 | pFrame.addButton("DpsControl", -120, 0, "ability_warrior_challange", MultiBot.tips.shaman.dps.master) 139 | .doLeft = function(pButton) 140 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 141 | end 142 | 143 | local tFrame = pFrame.addFrame("DpsControl", -122, 30) 144 | tFrame:Hide() 145 | 146 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.shaman.dps.dpsAssist).setDisable() 147 | .doLeft = function(pButton) 148 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 149 | pButton.getButton("TankAssist").setDisable() 150 | pButton.getButton("DpsAoe").setDisable() 151 | end 152 | end 153 | 154 | tFrame.addButton("DpsAoe", 0, 26, "spell_holy_surgeoflight", MultiBot.tips.shaman.dps.dpsAoe).setDisable() 155 | .doLeft = function(pButton) 156 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 157 | pButton.getButton("TankAssist").setDisable() 158 | pButton.getButton("DpsAssist").setDisable() 159 | end 160 | end 161 | 162 | -- ASSIST -- 163 | 164 | pFrame.addButton("TankAssist", -150, 0, "ability_warrior_innerrage", MultiBot.tips.shaman.tankAssist).setDisable() 165 | .doLeft = function(pButton) 166 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 167 | pButton.getButton("DpsAssist").setDisable() 168 | pButton.getButton("DpsAoe").setDisable() 169 | end 170 | end 171 | 172 | -- STRATEGIES -- 173 | 174 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 175 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 176 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 177 | end -------------------------------------------------------------------------------- /MultiBotSpell.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addSpell = function(pInfo, pName) 2 | local tInfo = MultiBot.doSplit(pInfo, "|") 3 | local tID = MultiBot.doSplit(tInfo[3], ":")[2] 4 | 5 | local tName, tRank, tIcon = GetSpellInfo(tID) 6 | local tLink = GetSpellLink(tID) 7 | 8 | if(tName == nil) then tName = "" end 9 | if(tRank == nil) then tRank = "" end 10 | if(tIcon == nil) then tIcon = "inv_misc_questionmark" end 11 | if(tLink == nil) then tLink = tName end 12 | 13 | local tSpell = { tID, tName, tRank, tIcon, tLink } 14 | 15 | table.insert(MultiBot.spellbook.spells, tSpell) 16 | MultiBot.spellbook.index = MultiBot.spellbook.index + 1 17 | 18 | if(MultiBot.spells[pName] == nil) then MultiBot.spells[pName] = {} end 19 | if(MultiBot.spells[pName][tID] == nil) then MultiBot.spells[pName][tID] = true end 20 | 21 | if(MultiBot.spellbook.index < 17) then 22 | MultiBot.setSpell(MultiBot.spellbook.index, tSpell, MultiBot.spells[pName][tID]) 23 | end 24 | end 25 | 26 | MultiBot.setSpell = function(pIndex, pSpell, pState) 27 | local tIndex = MultiBot.IF(pIndex < 10, "0", "") .. pIndex 28 | local tOverlay = MultiBot.spellbook.frames["Overlay"] 29 | 30 | if(pSpell ~= nil) then 31 | local tTitle = MultiBot.IF(string.len(pSpell[2]) > 16, string.sub(pSpell[2], 1, 16) .. "...", pSpell[2]) 32 | tOverlay.setButton("S" .. tIndex, pSpell[4], pSpell[5]) 33 | tOverlay.setText("T" .. tIndex, "|cffffcc00" .. tTitle .. "|r") 34 | tOverlay.setText("R" .. tIndex, "|cff402000" .. pSpell[3] .. "|r") 35 | tOverlay.buttons["S" .. tIndex].spell = pSpell[1] 36 | tOverlay.buttons["C" .. tIndex].spell = pSpell[1] 37 | tOverlay.buttons["S" .. tIndex].doShow() 38 | tOverlay.buttons["C" .. tIndex].doShow() 39 | tOverlay.texts["T" .. tIndex]:Show() 40 | tOverlay.texts["R" .. tIndex]:Show() 41 | 42 | tOverlay.buttons["C" .. tIndex]:SetChecked(pState) 43 | tOverlay.buttons["C" .. tIndex].doClick = function(pButton) 44 | local tName = pButton.getName() 45 | local tAction = "" 46 | 47 | MultiBot.spells[tName][pButton.spell] = MultiBot.IF(MultiBot.spells[tName][pButton.spell], false, true) 48 | pButton:SetChecked(MultiBot.spells[tName][pButton.spell]) 49 | 50 | for id, state in pairs(MultiBot.spells[tName]) do 51 | if(state == false) then tAction = tAction .. MultiBot.IF(tAction == "", "ss +", ", +") .. id end 52 | end 53 | 54 | MultiBot.ActionToTarget(MultiBot.IF(tAction == "", "ss -" .. pButton.spell, tAction), tName) 55 | end 56 | else 57 | tOverlay.buttons["S" .. tIndex].spell = 0 58 | tOverlay.buttons["C" .. tIndex].spell = 0 59 | tOverlay.buttons["S" .. tIndex].doHide() 60 | tOverlay.buttons["C" .. tIndex].doHide() 61 | tOverlay.texts["T" .. tIndex]:Hide() 62 | tOverlay.texts["R" .. tIndex]:Hide() 63 | end 64 | end -------------------------------------------------------------------------------- /MultiBotStats.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addStats = function(pFrame, pIndex, pX, pY, pSize, pWidth, pHeight) 2 | local tFrame = pFrame.addFrame(pIndex, pX, pY, pSize, pWidth, pHeight) 3 | local tAddon = tFrame.addFrame("Addon", -2, 46, 48) 4 | tAddon.addTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_99_percent.blp") 5 | tFrame.addTexture("Interface\\AddOns\\MultiBot\\Textures\\Stats.blp") 6 | tFrame:Hide() 7 | 8 | tFrame.addText("Name", "", "TOPLEFT", 54, -11, 11) 9 | tFrame.addText("Values", "", "TOPLEFT", 54, -27, 11) 10 | tAddon.addText("Percent", "", "CENTER", 0, 0, 11) 11 | tFrame.addText("Level", "", "CENTER", 85.25, 5, 11) 12 | 13 | tFrame.setProgress = function(pFrame, pProgress) 14 | pFrame.frames["Addon"].texture:Hide() 15 | 16 | if(pProgress >= 99) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_99_percent.blp") 17 | elseif(pProgress >= 90) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_90_percent.blp") 18 | elseif(pProgress >= 81) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_81_percent.blp") 19 | elseif(pProgress >= 72) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_72_percent.blp") 20 | elseif(pProgress >= 63) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_63_percent.blp") 21 | elseif(pProgress >= 54) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_54_percent.blp") 22 | elseif(pProgress >= 45) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_45_percent.blp") 23 | elseif(pProgress >= 36) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_36_percent.blp") 24 | elseif(pProgress >= 27) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_27_percent.blp") 25 | elseif(pProgress >= 18) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_18_percent.blp") 26 | elseif(pProgress >= 9) then pFrame.frames["Addon"].setTexture("Interface\\AddOns\\MultiBot\\Icons\\xp_progress_9_percent.blp") 27 | end 28 | 29 | return pProgress 30 | end 31 | 32 | tFrame.setStats = function(pName, pLevel, pStats, oPlayer) 33 | local tFrame = MultiBot.stats.frames[MultiBot.toUnit(pName)] 34 | local tAddon = tFrame.frames["Addon"] 35 | local tChina = GetLocale() == "zhCN" 36 | 37 | if(oPlayer ~= nil and oPlayer == true) then 38 | local tStats = MultiBot.doSplit(pStats, ", ") 39 | local tMana = tonumber(tStats[5]) 40 | local tXP = tonumber(tStats[4]) 41 | 42 | tFrame.texts["Name"]:SetText(pName) 43 | tFrame.texts["Level"]:SetText(pLevel) 44 | tFrame.texts["Values"]:SetText("Player") 45 | 46 | if(pLevel == 80) then 47 | tAddon.texts["Percent"]:SetText(tFrame.setProgress(tFrame, tMana) .. "%\n" .. MultiBot.info.shorts.mp) 48 | else 49 | tAddon.texts["Percent"]:SetText(tFrame.setProgress(tFrame, tXP) .. "%\n" .. MultiBot.info.shorts.xp) 50 | end 51 | 52 | tFrame:Show() 53 | return 54 | end 55 | 56 | local tStats = MultiBot.doSplit(pStats, ", ") 57 | local tMoney = "|cffffdd55" .. tStats[1] .. "|r, " 58 | local tBag = MultiBot.IF(tChina, MultiBot.doReplace(tStats[2], "Bag", MultiBot.info.shorts.bag), tStats[2]) 59 | 60 | tFrame.texts["Name"]:SetText(pName) 61 | tFrame.texts["Level"]:SetText(pLevel) 62 | tFrame.texts["Values"]:SetText(tMoney .. tBag) 63 | 64 | if(pLevel == 80) then 65 | local tDur = MultiBot.doSplit(string.sub(MultiBot.doSplit(tStats[3], "|")[2], 10), " ") 66 | local tQuality = tonumber(string.sub(tDur[1], 1, string.len(tDur[1]) - 1)) 67 | local tRepair = tonumber(string.sub(tDur[2], 2, string.len(tDur[2]) - 1)) 68 | if(tQuality == 0 and tRepair == 0) then tQuality = 100 end 69 | tAddon.texts["Percent"]:SetText(tFrame.setProgress(tFrame, tQuality) .. "%\n" .. MultiBot.info.shorts.dur) 70 | else 71 | local tXP = tonumber(string.sub(MultiBot.doSplit(tStats[4], "|")[2], 10)) 72 | tAddon.texts["Percent"]:SetText(tFrame.setProgress(tFrame, tXP) .. "%\n" .. MultiBot.info.shorts.xp) 73 | end 74 | 75 | tFrame:Show() 76 | return 77 | end 78 | end -------------------------------------------------------------------------------- /MultiBotWarlock.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addWarlock = function(pFrame, pCombat, pNormal) 2 | local tButton = pFrame.addButton("Buff", 0, 0, "spell_shadow_lifedrain02", MultiBot.tips.warlock.buff.master) 3 | tButton.doLeft = function(pButton) 4 | MultiBot.ShowHideSwitch(pButton.parent.frames["Buff"]) 5 | end 6 | 7 | local tFrame = pFrame.addFrame("Buff", -2, 30) 8 | tFrame:Hide() 9 | 10 | tFrame.addButton("BuffHealth", 0, 0, "spell_shadow_lifedrain02", MultiBot.tips.warlock.buff.bhealth) 11 | .doLeft = function(pButton) 12 | MultiBot.SelectToTarget(pButton.get(), "Buff", pButton.texture, "nc +bhealth,?", pButton.getName()) 13 | pButton.getButton("Buff").doRight = function(pButton) 14 | MultiBot.OnOffActionToTarget(pButton, "nc +bhealth,?", "nc -bhealth,?", pButton.getName()) 15 | end 16 | end 17 | 18 | tFrame.addButton("BuffMana", 0, 26, "spell_shadow_siphonmana", MultiBot.tips.warlock.buff.bmana) 19 | .doLeft = function(pButton) 20 | MultiBot.SelectToTarget(pButton.get(), "Buff", pButton.texture, "nc +bmana,?", pButton.getName()) 21 | pButton.getButton("Buff").doRight = function(pButton) 22 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 23 | end 24 | end 25 | 26 | tFrame.addButton("BuffDps", 0, 52, "spell_shadow_haunting", MultiBot.tips.warlock.buff.bdps) 27 | .doLeft = function(pButton) 28 | MultiBot.SelectToTarget(pButton.get(), "Buff", pButton.texture, "nc +bdps,?", pButton.getName()) 29 | pButton.getButton("Buff").doRight = function(pButton) 30 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 31 | end 32 | end 33 | 34 | -- STRATEGIES:BUFF -- 35 | 36 | if(MultiBot.isInside(pNormal, "bhealth")) then 37 | tButton.setTexture("spell_shadow_lifedrain02").setEnable().doRight = function(pButton) 38 | MultiBot.OnOffActionToTarget(pButton, "nc +bhealth,?", "nc -bhealth,?", pButton.getName()) 39 | end 40 | elseif(MultiBot.isInside(pNormal, "bmana")) then 41 | tButton.setTexture("spell_shadow_siphonmana").setEnable().doRight = function(pButton) 42 | MultiBot.OnOffActionToTarget(pButton, "nc +bmana,?", "nc -bmana,?", pButton.getName()) 43 | end 44 | elseif(MultiBot.isInside(pNormal, "bdps")) then 45 | tButton.setTexture("spell_shadow_haunting").setEnable().doRight = function(pButton) 46 | MultiBot.OnOffActionToTarget(pButton, "nc +bdps,?", "nc -bdps,?", pButton.getName()) 47 | end 48 | end 49 | 50 | -- DPS -- 51 | 52 | pFrame.addButton("DpsControl", -30, 0, "ability_warrior_challange", MultiBot.tips.warlock.dps.master) 53 | .doLeft = function(pButton) 54 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 55 | end 56 | 57 | local tFrame = pFrame.addFrame("DpsControl", -32, 30) 58 | tFrame:Hide() 59 | 60 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.warlock.dps.dpsAssist).setDisable() 61 | .doLeft = function(pButton) 62 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 63 | pButton.getButton("TankAssist").setDisable() 64 | pButton.getButton("DpsAoe").setDisable() 65 | end 66 | end 67 | 68 | tFrame.addButton("DpsDebuff", 0, 26, "spell_holy_restoration", MultiBot.tips.warlock.dps.dpsDebuff).setDisable() 69 | .doLeft = function(pButton) 70 | MultiBot.OnOffActionToTarget(pButton, "co +dps debuff,?", "co -dps debuff,?", pButton.getName()) 71 | end 72 | 73 | tFrame.addButton("DpsAoe", 0, 52, "spell_holy_surgeoflight", MultiBot.tips.warlock.dps.dpsAoe).setDisable() 74 | .doLeft = function(pButton) 75 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 76 | pButton.getButton("TankAssist").setDisable() 77 | pButton.getButton("DpsAssist").setDisable() 78 | end 79 | end 80 | 81 | tFrame.addButton("Dps", 0, 78, "spell_holy_divinepurpose", MultiBot.tips.warlock.dps.dps).setDisable() 82 | .doLeft = function(pButton) 83 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps,?", "co -dps,?", pButton.getName())) then 84 | pButton.getButton("Tank").setDisable() 85 | end 86 | end 87 | 88 | -- ASSIST -- 89 | 90 | pFrame.addButton("TankAssist", -60, 0, "ability_warrior_innerrage", MultiBot.tips.warlock.tankAssist).setDisable() 91 | .doLeft = function(pButton) 92 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 93 | pButton.getButton("DpsAssist").setDisable() 94 | pButton.getButton("DpsAoe").setDisable() 95 | end 96 | end 97 | 98 | -- TANK -- 99 | 100 | pFrame.addButton("Tank", -90, 0, "ability_warrior_shieldmastery", MultiBot.tips.warlock.tank).setDisable() 101 | .doLeft = function(pButton) 102 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank,?", "co -tank,?", pButton.getName())) then 103 | pButton.getButton("Dps").setDisable() 104 | end 105 | end 106 | 107 | -- STRATEGIES -- 108 | 109 | if(MultiBot.isInside(pCombat, "dps")) then pFrame.getButton("Dps").setEnable() end 110 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 111 | if(MultiBot.isInside(pCombat, "dps debuff")) then pFrame.getButton("DpsDebuff").setEnable() end 112 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 113 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 114 | if(MultiBot.isInside(pCombat, "tank")) then pFrame.getButton("Tank").setEnable() end 115 | end -------------------------------------------------------------------------------- /MultiBotWarrior.lua: -------------------------------------------------------------------------------- 1 | MultiBot.addWarrior = function(pFrame, pCombat, pNormal) 2 | pFrame.addButton("DpsControl", 0, 0, "ability_warrior_challange", MultiBot.tips.warrior.dps.master) 3 | .doLeft = function(pButton) 4 | MultiBot.ShowHideSwitch(pButton.getFrame("DpsControl")) 5 | end 6 | 7 | local tFrame = pFrame.addFrame("DpsControl", -2, 30) 8 | tFrame:Hide() 9 | 10 | tFrame.addButton("DpsAssist", 0, 0, "spell_holy_heroism", MultiBot.tips.warrior.dps.dpsAssist).setDisable() 11 | .doLeft = function(pButton) 12 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps assist,?", "co -dps assist,?", pButton.getName())) then 13 | pButton.getButton("TankAssist").setDisable() 14 | pButton.getButton("DpsAoe").setDisable() 15 | end 16 | end 17 | 18 | tFrame.addButton("DpsAoe", 0, 26, "spell_holy_surgeoflight", MultiBot.tips.warrior.dps.dpsAoe).setDisable() 19 | .doLeft = function(pButton) 20 | if(MultiBot.OnOffActionToTarget(pButton, "co +dps aoe,?", "co -dps aoe,?", pButton.getName())) then 21 | pButton.getButton("TankAssist").setDisable() 22 | pButton.getButton("DpsAssist").setDisable() 23 | end 24 | end 25 | 26 | -- ASSIST -- 27 | 28 | pFrame.addButton("TankAssist", -30, 0, "ability_warrior_innerrage", MultiBot.tips.warrior.tankAssist).setDisable() 29 | .doLeft = function(pButton) 30 | if(MultiBot.OnOffActionToTarget(pButton, "co +tank assist,?", "co -tank assist,?", pButton.getName())) then 31 | pButton.getButton("DpsAssist").setDisable() 32 | pButton.getButton("DpsAoe").setDisable() 33 | end 34 | end 35 | 36 | -- TANK -- 37 | 38 | pFrame.addButton("Tank", -60, 0, "ability_warrior_shieldmastery", MultiBot.tips.warrior.tank).setDisable() 39 | .doLeft = function(pButton) 40 | MultiBot.OnOffActionToTarget(pButton, "co +tank,?", "co -tank,?", pButton.getName()) 41 | end 42 | 43 | -- STRATEGIES -- 44 | 45 | if(MultiBot.isInside(pCombat, "dps aoe")) then pFrame.getButton("DpsAoe").setEnable() end 46 | if(MultiBot.isInside(pCombat, "dps assist")) then pFrame.getButton("DpsAssist").setEnable() end 47 | if(MultiBot.isInside(pCombat, "tank assist")) then pFrame.getButton("TankAssist").setEnable() end 48 | if(MultiBot.isInside(pCombat, "tank")) then pFrame.getButton("Tank").setEnable() end 49 | end -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MultiBot 2 | User interface for AzerothCore-Module "Playerbot" by Liyunfan1223.
3 | Tested with American and German 3.3.5 Wotlk-Client. 4 | # Installation 5 | Simply place the files in a folder called "MultiBot" in your World of Warcraft AddOns directory.
6 | Example: "C:\WorldOfWarcraft\Interface\AddOns\MultiBot" 7 | # Use 8 | Start World of Warcraft and enter "/multibot" or "/mbot" or "/mb" in the chat. 9 | # Current Status 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 32 | 33 | 34 | 35 | 39 | 40 | 41 | 42 | 46 | 47 | 48 | 49 | 52 | 53 | 54 | 55 | 58 | 59 | 60 | 61 | 64 | 65 | 66 | 67 | 70 | 71 | 72 | 73 | 76 | 77 | 78 | 79 | 83 | 84 | 85 | 86 | 91 | 92 | 93 | 94 | 99 | 100 | 101 | 102 | 107 | 108 | 109 | 110 | 115 | 116 | 117 | 118 | 122 | 123 | 124 | 125 | 128 | 129 | 130 | 131 | 134 | 135 | 136 | 137 | 140 | 141 | 142 | 143 | 148 | 149 | 150 | 151 | 156 | 157 | 158 | 159 | 162 | 163 | 164 | 165 | 168 | 169 | 170 | 171 | 175 | 176 | 177 | 178 | 182 | 183 | 184 | 185 | 190 | 191 | 192 | 193 | 197 | 198 | 199 | 200 | 208 | 209 | 210 | 211 | 219 | 220 | 221 | 222 | 229 | 230 | 231 | 232 | 239 | 240 | 241 | 242 | 248 | 249 | 250 | 251 | 258 | 259 | 260 | 261 | 267 | 268 | 269 | 270 | 273 | 274 | 275 | 276 | 279 | 280 | 281 | 282 | 285 | 286 | 287 | 288 | 291 | 292 |
14 | This Picture shows the default MultiBot-Interface after start. 15 |
20 | The horizontal Buttonbar is the Main-Control. 21 | Commands from the Main-Control go to all bots in a Group or Raid. 22 | Differences in functionality are commented on in the tooltips. 23 |
28 | The vertical Buttonbar is the Playerbot-Selection. 29 | Here you will find the Characters of your Account. 30 | There is a button for each Character. 31 |
36 | The Tooltip of a Character-Button shows you the Class and Name of the Character. 37 | This should allow you to identify your characters. 38 |
43 | With a Left-Click you can load your Character and have him automatically added to the Party or Raid. 44 | The horizontal Buttonbar that appears is the Playerbot-Control. 45 |
50 | You can use the Buttons on the left to adjust the Combat-Behavior of your Playerbot. 51 |
56 | With the first Button on the right you can summon your Playerbot. 57 |
62 | With the second Button on the right you can add or dismiss your Playerbot from the Party or Raid. 63 |
68 | With the next three the Buttons you can adjust the Non-Combat-Behavior of your Playerbot. 69 |
74 | The last button on the right opens the Inventory of the Playerbot. 75 |
80 | A Left-Click on the Inventory-Button opens the Inspect- and Inventory-Window of your Playerbot. 81 | Notice: The Inspect-Window only will be open if the Playerbot is in reach. 82 |
87 | The Inventory will automatically open in Sell-Mode. 88 | In the Sell-Mode a left click on a Item will sell it. 89 | Notice: You must have a Merchent as Target. 90 |
95 | With this Button you can switch to the Equip-Mode. 96 | In the Equip-Mode a left click on a Item will equip it. 97 | Notice: Only works with Equipment. 98 |
103 | With this Button you can switch to the Use-Mode. 104 | In the Use-Mode a left click on a Item will use it. 105 | Notice: Only works with usable Items. 106 |
111 | With this Button you can switch to the Destroy-Mode. 112 | In the Destroy-Mode a left click on a Item will destroy it. 113 | Important: There is no security Quest and it will work with every Item. 114 |
119 | Items can be viewed regardless of the selected Mode. 120 | Means: View-Mode is always active. 121 |
126 | With a left click on the Character-Button you can hide and show the Playerbot-Control. 127 |
132 | With a left click on the left Scroll-Button you can hide and show the Playerbots. 133 |
138 | With a left click on the right Scroll-Button you can hide and show the Friendbots. 139 |
144 | The vertical Buttonbar is the Friend-Selection. 145 | Here you will find the Characters of your Friendlist. 146 | There are max 10 Buttons visible. 147 |
152 | With this Button you could browse throu your Friendlist. 153 | Each click will show the next 10 Characters. 154 | If you reach the End it starts from the Beginning. 155 |
160 | You can limit the Selection to make it easier to find the wished Friendbot. 161 |
166 | Simply press one of these Filter-Buttons to narrow down the Selection. 167 |
172 | As you can see, the browse button has disappeared. 173 | This is because the Filter reduced the Selection to less than 10 Friendbots. 174 |
179 | The filter shows you the current limitation. 180 | In this example, we filtered to Warrior. 181 |
186 | This button is the result of our filter. 187 | The functionality is almost identical to that of the Playerbots. 188 | Therefore we save ourselves a further explanation. 189 |
194 | This is the Tank-Attack-Button. 195 | A left click on the Button let all Tanks attack you Target. 196 |
201 | This is the Attack-Actionbar. 202 | A left click on the Button executes the selected Action. 203 | A right click on the Button will show and hide the Optional-Actions. 204 | To replace the selected Action, right click a Optional-Action. 205 | To execute a Optional-Action, left click it. 206 | The default Action is "All attack my target". 207 |
212 | This is the Modebar. 213 | A left click on the Button enables and disables the selected Mode. 214 | A right click on the Button will show and hide the Mode-Selection. 215 | To select another Mode, left click the Mode-Option. 216 | The Mode will activated by selection. 217 | The default Mode-Toggle is "passive". 218 |
223 | This is the Stay-Follow-Toggle-Button. 224 | A left click on the Button sends the Stay-Command to the Party or Raid. 225 | Another left click on the Button sends the Follow-Command to the Party or Raid. 226 | The Icon will show the current State. 227 | The default State is "Follow". 228 |
233 | This is the Flee-Actionbar. 234 | A left click on the Button executes the selected Action. 235 | A right click on the Button will show and hide the Optional-Actions. 236 | To replace the selected Action, right click a Optional-Action. 237 | To execute a Optional-Action, left click it. 238 |
243 | This is the Formation-Selector. 244 | A left click on the Button will show and hide the Options. 245 | A left click on the Option-Button will send the corresponding Formation-Command to the Party or Raid. 246 | A right click on the Button will ask the Party or Raid for the current Formation. 247 |
252 | This is the Beastmaster-Control. 253 | A left click on the Button will show and hide the Actions. 254 | A left click on the Action will send the corresponding Command to your Target, Party or Raid. 255 | It supports the "mod-beastmaster"-Module of the Azerothcore. 256 | These Buttons work with Target, Group and Raid. 257 |
262 | This is the MultiBot-Control. 263 | A left click on the Button will show and hide the Controls. 264 | Here you will find the "reset", "reset botAI" and "naxx"-Commands for your Bots. 265 | These Buttons works with Target, Group and Raid. 266 |
271 | This Button will send the "drink"-Command to the Party or Raid. 272 |
277 | This Button will send the "release"-Command to the Party or Raid. 278 |
283 | This Button will send the "revive"-Command to the Party or Raid. 284 |
289 | This Button will summon all active Friend- and Playerbots. 290 |
293 | 294 | # Comming soon 295 | Currently i am working on the Group- and Raid-Controls. 296 | 297 | # Currently not supported 298 | QUEST 299 | -------------------------------------------------------------------------------- /Screenshots/Handout-00-Character-Info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-00-Character-Info.png -------------------------------------------------------------------------------- /Screenshots/Handout-00-Main-Control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-00-Main-Control.png -------------------------------------------------------------------------------- /Screenshots/Handout-00-Playerbots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-00-Playerbots.png -------------------------------------------------------------------------------- /Screenshots/Handout-00-Start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-00-Start.png -------------------------------------------------------------------------------- /Screenshots/Handout-01-Combat-Behaviour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-01-Combat-Behaviour.png -------------------------------------------------------------------------------- /Screenshots/Handout-01-Group-And-Ungroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-01-Group-And-Ungroup.png -------------------------------------------------------------------------------- /Screenshots/Handout-01-Inventory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-01-Inventory.png -------------------------------------------------------------------------------- /Screenshots/Handout-01-Non-Combat-Behaviour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-01-Non-Combat-Behaviour.png -------------------------------------------------------------------------------- /Screenshots/Handout-01-Playerbot-Online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-01-Playerbot-Online.png -------------------------------------------------------------------------------- /Screenshots/Handout-01-Summon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-01-Summon.png -------------------------------------------------------------------------------- /Screenshots/Handout-02-Inspect-And-Inventory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-02-Inspect-And-Inventory.png -------------------------------------------------------------------------------- /Screenshots/Handout-03-Destroy-Mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-03-Destroy-Mode.png -------------------------------------------------------------------------------- /Screenshots/Handout-03-Equip-Mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-03-Equip-Mode.png -------------------------------------------------------------------------------- /Screenshots/Handout-03-Sell-Mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-03-Sell-Mode.png -------------------------------------------------------------------------------- /Screenshots/Handout-03-Use-Mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-03-Use-Mode.png -------------------------------------------------------------------------------- /Screenshots/Handout-03-View-Mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-03-View-Mode.png -------------------------------------------------------------------------------- /Screenshots/Handout-04-Hide-Playerbot-Control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-04-Hide-Playerbot-Control.png -------------------------------------------------------------------------------- /Screenshots/Handout-05-Hide-Playerbots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-05-Hide-Playerbots.png -------------------------------------------------------------------------------- /Screenshots/Handout-06-Browse-Friendbots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-06-Browse-Friendbots.png -------------------------------------------------------------------------------- /Screenshots/Handout-06-Firendbots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-06-Firendbots.png -------------------------------------------------------------------------------- /Screenshots/Handout-06-Show-Friendbots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-06-Show-Friendbots.png -------------------------------------------------------------------------------- /Screenshots/Handout-07-Filter-By-Classes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-07-Filter-By-Classes.png -------------------------------------------------------------------------------- /Screenshots/Handout-07-Filter-Selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-07-Filter-Selection.png -------------------------------------------------------------------------------- /Screenshots/Handout-08-Friendbot-Button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-08-Friendbot-Button.png -------------------------------------------------------------------------------- /Screenshots/Handout-08-No-Browse-Button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-08-No-Browse-Button.png -------------------------------------------------------------------------------- /Screenshots/Handout-08-Shows-Filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-08-Shows-Filter.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Actionbar-Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Actionbar-Attack.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Actionbar-Flee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Actionbar-Flee.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Beastmaster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Beastmaster.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Control.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Drink.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Formation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Formation.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Modebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Modebar.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Release.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Revive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Revive.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Stay-Follow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Stay-Follow.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Summon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Summon.png -------------------------------------------------------------------------------- /Screenshots/Handout-09-Tank-Attack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Screenshots/Handout-09-Tank-Attack.png -------------------------------------------------------------------------------- /Textures/Black.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Black.blp -------------------------------------------------------------------------------- /Textures/Grey.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Grey.blp -------------------------------------------------------------------------------- /Textures/Iconos.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Iconos.blp -------------------------------------------------------------------------------- /Textures/Inventory.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Inventory.blp -------------------------------------------------------------------------------- /Textures/Raidus.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Raidus.blp -------------------------------------------------------------------------------- /Textures/Raidus_Banner_Bottom.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Raidus_Banner_Bottom.blp -------------------------------------------------------------------------------- /Textures/Raidus_Banner_Top.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Raidus_Banner_Top.blp -------------------------------------------------------------------------------- /Textures/Raidus_Wanted.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Raidus_Wanted.blp -------------------------------------------------------------------------------- /Textures/Reward.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Reward.blp -------------------------------------------------------------------------------- /Textures/Stats.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Stats.blp -------------------------------------------------------------------------------- /Textures/Talent.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent.blp -------------------------------------------------------------------------------- /Textures/Talent_Black.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Black.blp -------------------------------------------------------------------------------- /Textures/Talent_DeathKnight1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_DeathKnight1.blp -------------------------------------------------------------------------------- /Textures/Talent_DeathKnight2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_DeathKnight2.blp -------------------------------------------------------------------------------- /Textures/Talent_DeathKnight3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_DeathKnight3.blp -------------------------------------------------------------------------------- /Textures/Talent_Druid1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Druid1.blp -------------------------------------------------------------------------------- /Textures/Talent_Druid2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Druid2.blp -------------------------------------------------------------------------------- /Textures/Talent_Druid3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Druid3.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down_Arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down_Arrow.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down_Arrow_Short.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down_Arrow_Short.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down_Left.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down_Left.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down_Left_Arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down_Left_Arrow.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down_Right.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down_Right.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Down_Right_Arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Down_Right_Arrow.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Left_Arrow_Short.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Left_Arrow_Short.blp -------------------------------------------------------------------------------- /Textures/Talent_Gold_Right_Arrow_Short.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Gold_Right_Arrow_Short.blp -------------------------------------------------------------------------------- /Textures/Talent_Hunter1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Hunter1.blp -------------------------------------------------------------------------------- /Textures/Talent_Hunter2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Hunter2.blp -------------------------------------------------------------------------------- /Textures/Talent_Hunter3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Hunter3.blp -------------------------------------------------------------------------------- /Textures/Talent_Mage1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Mage1.blp -------------------------------------------------------------------------------- /Textures/Talent_Mage2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Mage2.blp -------------------------------------------------------------------------------- /Textures/Talent_Mage3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Mage3.blp -------------------------------------------------------------------------------- /Textures/Talent_Paladin1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Paladin1.blp -------------------------------------------------------------------------------- /Textures/Talent_Paladin2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Paladin2.blp -------------------------------------------------------------------------------- /Textures/Talent_Paladin3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Paladin3.blp -------------------------------------------------------------------------------- /Textures/Talent_Priest1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Priest1.blp -------------------------------------------------------------------------------- /Textures/Talent_Priest2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Priest2.blp -------------------------------------------------------------------------------- /Textures/Talent_Priest3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Priest3.blp -------------------------------------------------------------------------------- /Textures/Talent_Rogue1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Rogue1.blp -------------------------------------------------------------------------------- /Textures/Talent_Rogue2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Rogue2.blp -------------------------------------------------------------------------------- /Textures/Talent_Rogue3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Rogue3.blp -------------------------------------------------------------------------------- /Textures/Talent_Shaman1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Shaman1.blp -------------------------------------------------------------------------------- /Textures/Talent_Shaman2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Shaman2.blp -------------------------------------------------------------------------------- /Textures/Talent_Shaman3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Shaman3.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down_Arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down_Arrow.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down_Arrow_Short.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down_Arrow_Short.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down_Left.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down_Left.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down_Left_Arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down_Left_Arrow.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down_Right.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down_Right.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Down_Right_Arrow.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Down_Right_Arrow.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Left_Arrow_Short.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Left_Arrow_Short.blp -------------------------------------------------------------------------------- /Textures/Talent_Silver_Right_Arrow_Short.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Silver_Right_Arrow_Short.blp -------------------------------------------------------------------------------- /Textures/Talent_Warlock1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Warlock1.blp -------------------------------------------------------------------------------- /Textures/Talent_Warlock2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Warlock2.blp -------------------------------------------------------------------------------- /Textures/Talent_Warlock3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Warlock3.blp -------------------------------------------------------------------------------- /Textures/Talent_Warrior1.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Warrior1.blp -------------------------------------------------------------------------------- /Textures/Talent_Warrior2.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Warrior2.blp -------------------------------------------------------------------------------- /Textures/Talent_Warrior3.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/Talent_Warrior3.blp -------------------------------------------------------------------------------- /Textures/White.blp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Macx-Lio/MultiBot/b063d74cd95dd6c3fbdc8a57db750f85d50a4af4/Textures/White.blp --------------------------------------------------------------------------------