aboutsummaryrefslogtreecommitdiff
path: root/src/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings')
-rw-r--r--src/bindings/scripts/ScriptMgr.cpp94
-rw-r--r--src/bindings/scripts/ScriptMgr.h59
-rw-r--r--src/bindings/scripts/include/sc_creature.cpp38
-rw-r--r--src/bindings/scripts/include/sc_creature.h1
-rw-r--r--src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp2
-rw-r--r--src/bindings/scripts/scripts/boss/boss_emeriss.cpp2
-rw-r--r--src/bindings/scripts/scripts/boss/boss_taerar.cpp4
-rw-r--r--src/bindings/scripts/scripts/boss/boss_ysondre.cpp4
-rw-r--r--src/bindings/scripts/scripts/creature/mob_event_ai.cpp2
-rw-r--r--src/bindings/scripts/scripts/creature/mob_generic_creature.cpp2
-rw-r--r--src/bindings/scripts/scripts/custom/custom_example.cpp2
-rw-r--r--src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp2
-rw-r--r--src/bindings/scripts/scripts/custom/test.cpp2
-rw-r--r--src/bindings/scripts/scripts/go/go_scripts.cpp18
-rw-r--r--src/bindings/scripts/scripts/guard/guards.cpp40
-rw-r--r--src/bindings/scripts/scripts/item/item_scripts.cpp38
-rw-r--r--src/bindings/scripts/scripts/item/item_test.cpp2
-rw-r--r--src/bindings/scripts/scripts/npc/npc_innkeeper.cpp2
-rw-r--r--src/bindings/scripts/scripts/npc/npc_professions.cpp10
-rw-r--r--src/bindings/scripts/scripts/npc/npcs_special.cpp1890
-rw-r--r--src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp17
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/azshara/azshara.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp20
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp24
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp35
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/felwood/felwood.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/feralas/feralas.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp73
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp22
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp86
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp24
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp16
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp26
-rw-r--r--src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/silithus/silithus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp34
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp21
-rw-r--r--src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp10
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp14
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp612
-rw-r--r--src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp180
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp41
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp12
-rw-r--r--src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/undercity/undercity.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/westfall/westfall.cpp358
-rw-r--r--src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp8
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp40
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp19
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp31
-rw-r--r--src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp4
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp6
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp2
-rw-r--r--src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp2
307 files changed, 2377 insertions, 2428 deletions
diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp
index 840cdc4be60..ad6bcf76c08 100644
--- a/src/bindings/scripts/ScriptMgr.cpp
+++ b/src/bindings/scripts/ScriptMgr.cpp
@@ -17,7 +17,8 @@
#endif _TRINITY_SCRIPT_CONFIG
//*** Global data ***
-int nrscripts;
+int num_db_scripts;
+int num_sc_scripts;
Script *m_scripts[MAX_SCRIPTS];
DatabaseType TScriptDB;
@@ -47,7 +48,6 @@ enum ChatType
// Text Maps
UNORDERED_MAP<int32, StringTextData> TextMap;
-
//*** End Global data ***
//*** EventAI data ***
@@ -1180,15 +1180,16 @@ struct TSpellSummary {
TRINITY_DLL_EXPORT
void ScriptsFree()
-{
+{
// Free Spell Summary
delete []SpellSummary;
// Free resources before library unload
- for(int i=0;i<nrscripts;i++)
+ for(int i=0;i<num_db_scripts;i++)
delete m_scripts[i];
- nrscripts = 0;
+ num_db_scripts = 0;
+ num_sc_scripts = 0;
}
TRINITY_DLL_EXPORT
@@ -1239,12 +1240,13 @@ void ScriptsInit()
if (CanLoadDB)
LoadDatabase();
+ num_db_scripts = GetScriptNames().size();
+
outstring_log("TSCR: Loading C++ scripts");
barGoLink bar(1);
bar.step();
outstring_log("");
- nrscripts = 0;
for(int i=0;i<MAX_SCRIPTS;i++)
m_scripts[i]=NULL;
@@ -1775,8 +1777,7 @@ void ScriptsInit()
// -------------------
- outstring_log("TSCR: Loaded %u C++ Scripts", nrscripts);
- outstring_log("");
+ outstring_log(">> Loaded %i C++ Scripts (of %i ScriptNames defined in Mangos database)", num_sc_scripts, num_db_scripts);
}
//*********************************
@@ -1848,32 +1849,29 @@ void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target)
//*********************************
//*** Functions used internally ***
-TRINITY_DLL_EXPORT
-char const* ScriptsVersion()
+void Script::RegisterSelf()
{
- return "Default Trinity scripting library";
-}
-
-Script* GetScriptByName(std::string Name)
-{
- if (Name.empty())
- return NULL;
-
- for(int i=0;i<MAX_SCRIPTS;i++)
+ int id = GetScriptId(Name.c_str());
+ if (id != 0)
{
- if (m_scripts[i] && m_scripts[i]->Name == Name)
- return m_scripts[i];
- }
- return NULL;
+ m_scripts[id] = this;
+ ++num_sc_scripts;
+ } else
+ debug_log("SD2: RegisterSelf, but script named %s does not have ScriptName assigned in database.",(this)->Name.c_str());
}
//********************************
//*** Functions to be Exported ***
TRINITY_DLL_EXPORT
+char const* ScriptsVersion()
+{
+ return "Default Trinity scripting library";
+}
+TRINITY_DLL_EXPORT
bool GossipHello ( Player * player, Creature *_Creature )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pGossipHello) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1885,7 +1883,7 @@ bool GossipSelect( Player *player, Creature *_Creature, uint32 sender, uint32 ac
{
debug_log("TSCR: Gossip selection, sender: %d, action: %d",sender, action);
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pGossipSelect) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1897,7 +1895,7 @@ bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, u
{
debug_log("TSCR: Gossip selection with code, sender: %d, action: %d",sender, action);
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pGossipSelectWithCode) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1907,7 +1905,7 @@ bool GossipSelectWithCode( Player *player, Creature *_Creature, uint32 sender, u
TRINITY_DLL_EXPORT
bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pQuestAccept) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1917,7 +1915,7 @@ bool QuestAccept( Player *player, Creature *_Creature, Quest const *_Quest )
TRINITY_DLL_EXPORT
bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pQuestSelect) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1927,7 +1925,7 @@ bool QuestSelect( Player *player, Creature *_Creature, Quest const *_Quest )
TRINITY_DLL_EXPORT
bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pQuestComplete) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1937,7 +1935,7 @@ bool QuestComplete( Player *player, Creature *_Creature, Quest const *_Quest )
TRINITY_DLL_EXPORT
bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uint32 opt )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pChooseReward) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1947,7 +1945,7 @@ bool ChooseReward( Player *player, Creature *_Creature, Quest const *_Quest, uin
TRINITY_DLL_EXPORT
uint32 NPCDialogStatus( Player *player, Creature *_Creature )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pNPCDialogStatus) return 100;
player->PlayerTalkClass->ClearMenus();
@@ -1957,8 +1955,8 @@ uint32 NPCDialogStatus( Player *player, Creature *_Creature )
TRINITY_DLL_EXPORT
uint32 GODialogStatus( Player *player, GameObject *_GO )
{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
- if(!tmpscript || !tmpscript->pGODialogStatus) return 100;
+ Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
+ if (!tmpscript || !tmpscript->pGODialogStatus) return 100;
player->PlayerTalkClass->ClearMenus();
return tmpscript->pGODialogStatus(player,_GO);
@@ -1967,7 +1965,7 @@ uint32 GODialogStatus( Player *player, GameObject *_GO )
TRINITY_DLL_EXPORT
bool ItemHello( Player *player, Item *_Item, Quest const *_Quest )
{
- Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
+ Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId];
if (!tmpscript || !tmpscript->pItemHello) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1977,7 +1975,7 @@ bool ItemHello( Player *player, Item *_Item, Quest const *_Quest )
TRINITY_DLL_EXPORT
bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest )
{
- Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
+ Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId];
if (!tmpscript || !tmpscript->pItemQuestAccept) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1987,7 +1985,7 @@ bool ItemQuestAccept( Player *player, Item *_Item, Quest const *_Quest )
TRINITY_DLL_EXPORT
bool GOHello( Player *player, GameObject *_GO )
{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
if (!tmpscript || !tmpscript->pGOHello) return false;
player->PlayerTalkClass->ClearMenus();
@@ -1997,7 +1995,7 @@ bool GOHello( Player *player, GameObject *_GO )
TRINITY_DLL_EXPORT
bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest )
{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
if (!tmpscript || !tmpscript->pGOQuestAccept) return false;
player->PlayerTalkClass->ClearMenus();
@@ -2007,7 +2005,7 @@ bool GOQuestAccept( Player *player, GameObject *_GO, Quest const *_Quest )
TRINITY_DLL_EXPORT
bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint32 opt )
{
- Script *tmpscript = GetScriptByName(_GO->GetGOInfo()->ScriptName);
+ Script *tmpscript = m_scripts[_GO->GetGOInfo()->ScriptId];
if (!tmpscript || !tmpscript->pGOChooseReward) return false;
player->PlayerTalkClass->ClearMenus();
@@ -2017,9 +2015,7 @@ bool GOChooseReward( Player *player, GameObject *_GO, Quest const *_Quest, uint3
TRINITY_DLL_EXPORT
bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry)
{
- Script *tmpscript = NULL;
-
- tmpscript = GetScriptByName(GetAreaTriggerScriptNameById(atEntry->id));
+ Script *tmpscript = m_scripts[GetAreaTriggerScriptId(atEntry->id)];
if (!tmpscript || !tmpscript->pAreaTrigger) return false;
return tmpscript->pAreaTrigger(player, atEntry);
@@ -2028,16 +2024,16 @@ bool AreaTrigger( Player *player, AreaTriggerEntry * atEntry)
TRINITY_DLL_EXPORT
CreatureAI* GetAI(Creature *_Creature)
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
-
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->GetAI) return NULL;
+
return tmpscript->GetAI(_Creature);
}
TRINITY_DLL_EXPORT
bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets)
{
- Script *tmpscript = GetScriptByName(_Item->GetProto()->ScriptName);
+ Script *tmpscript = m_scripts[_Item->GetProto()->ScriptId];
if (!tmpscript || !tmpscript->pItemUse) return false;
return tmpscript->pItemUse(player,_Item,targets);
@@ -2046,7 +2042,7 @@ bool ItemUse( Player *player, Item* _Item, SpellCastTargets const& targets)
TRINITY_DLL_EXPORT
bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote )
{
- Script *tmpscript = GetScriptByName(_Creature->GetScriptName());
+ Script *tmpscript = m_scripts[_Creature->GetScriptId()];
if (!tmpscript || !tmpscript->pReceiveEmote) return false;
return tmpscript->pReceiveEmote(player, _Creature, emote);
@@ -2055,12 +2051,10 @@ bool ReceiveEmote( Player *player, Creature *_Creature, uint32 emote )
TRINITY_DLL_EXPORT
InstanceData* CreateInstanceData(Map *map)
{
- Script *tmpscript = NULL;
-
- if (!map->IsDungeon()) return false;
+ if (!map->IsDungeon()) return NULL;
- tmpscript = GetScriptByName(((InstanceMap*)map)->GetScript());
- if (!tmpscript || !tmpscript->GetInstanceData) return false;
+ Script *tmpscript = m_scripts[((InstanceMap*)map)->GetScriptId()];
+ if (!tmpscript || !tmpscript->GetInstanceData) return NULL;
return tmpscript->GetInstanceData(map);
}
diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h
index 83b2c0dd7a0..ef7bdfd3cce 100644
--- a/src/bindings/scripts/ScriptMgr.h
+++ b/src/bindings/scripts/ScriptMgr.h
@@ -24,46 +24,45 @@ class Map;
class Unit;
class WorldObject;
-#define MAX_SCRIPTS 1000 //72 bytes each (approx 71kb)
+#define MAX_SCRIPTS 5000 //72 bytes each (approx 351kb)
#define VISIBLE_RANGE (166.0f) //MAX visible range (size of grid)
#define DEFAULT_TEXT "<Trinity Script Text Entry Missing!>"
struct Script
{
Script() :
-pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL),
-pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
-pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
-pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL)
-{}
+ pGossipHello(NULL), pQuestAccept(NULL), pGossipSelect(NULL), pGossipSelectWithCode(NULL),
+ pQuestSelect(NULL), pQuestComplete(NULL), pNPCDialogStatus(NULL), pGODialogStatus(NULL), pChooseReward(NULL),
+ pItemHello(NULL), pGOHello(NULL), pAreaTrigger(NULL), pItemQuestAccept(NULL), pGOQuestAccept(NULL),
+ pGOChooseReward(NULL),pReceiveEmote(NULL),pItemUse(NULL), GetAI(NULL), GetInstanceData(NULL)
+ {}
-std::string Name;
+ std::string Name;
-// Quest/gossip Methods to be scripted
-bool (*pGossipHello )(Player*, Creature*);
-bool (*pQuestAccept )(Player*, Creature*, Quest const* );
-bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 );
-bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* );
-bool (*pQuestSelect )(Player*, Creature*, Quest const* );
-bool (*pQuestComplete )(Player*, Creature*, Quest const* );
-uint32 (*pNPCDialogStatus )(Player*, Creature* );
-uint32 (*pGODialogStatus )(Player *player, GameObject * _GO );
-bool (*pChooseReward )(Player*, Creature*, Quest const*, uint32 );
-bool (*pItemHello )(Player*, Item*, Quest const* );
-bool (*pGOHello )(Player*, GameObject* );
-bool (*pAreaTrigger )(Player*, AreaTriggerEntry* );
-bool (*pItemQuestAccept )(Player*, Item *, Quest const* );
-bool (*pGOQuestAccept )(Player*, GameObject*, Quest const* );
-bool (*pGOChooseReward )(Player*, GameObject*_GO, Quest const*, uint32 );
-bool (*pReceiveEmote )(Player*, Creature*, uint32 );
-bool (*pItemUse )(Player*, Item*, SpellCastTargets const& );
+ //Methods to be scripted
+ bool (*pGossipHello )(Player*, Creature*);
+ bool (*pQuestAccept )(Player*, Creature*, Quest const* );
+ bool (*pGossipSelect )(Player*, Creature*, uint32 , uint32 );
+ bool (*pGossipSelectWithCode)(Player*, Creature*, uint32 , uint32 , const char* );
+ bool (*pQuestSelect )(Player*, Creature*, Quest const* );
+ bool (*pQuestComplete )(Player*, Creature*, Quest const* );
+ uint32 (*pNPCDialogStatus )(Player*, Creature* );
+ uint32 (*pGODialogStatus )(Player*, GameObject * _GO );
+ bool (*pChooseReward )(Player*, Creature*, Quest const*, uint32 );
+ bool (*pItemHello )(Player*, Item*, Quest const* );
+ bool (*pGOHello )(Player*, GameObject* );
+ bool (*pAreaTrigger )(Player*, AreaTriggerEntry* );
+ bool (*pItemQuestAccept )(Player*, Item *, Quest const* );
+ bool (*pGOQuestAccept )(Player*, GameObject*, Quest const* );
+ bool (*pGOChooseReward )(Player*, GameObject*, Quest const*, uint32 );
+ bool (*pReceiveEmote )(Player*, Creature*, uint32 );
+ bool (*pItemUse )(Player*, Item*, SpellCastTargets const& );
-CreatureAI* (*GetAI)(Creature*);
-InstanceData* (*GetInstanceData)(Map*);
-};
+ CreatureAI* (*GetAI)(Creature*);
+ InstanceData* (*GetInstanceData)(Map*);
-extern int nrscripts;
-extern Script *m_scripts[MAX_SCRIPTS];
+ void RegisterSelf();
+};
//Generic scripting text function
void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL);
diff --git a/src/bindings/scripts/include/sc_creature.cpp b/src/bindings/scripts/include/sc_creature.cpp
index 1ee90c41029..ca7dc435b09 100644
--- a/src/bindings/scripts/include/sc_creature.cpp
+++ b/src/bindings/scripts/include/sc_creature.cpp
@@ -73,17 +73,7 @@ bool ScriptedAI::IsVisible(Unit* who) const
void ScriptedAI::MoveInLineOfSight(Unit *who)
{
- if(m_creature->getVictim() || !m_creature->IsHostileTo(who) || !who->isInAccessiblePlaceFor(m_creature))
- return;
-
- if(!m_creature->canFly() && m_creature->GetDistanceZ(who) > CREATURE_Z_ATTACK_RANGE)
- return;
-
- if(!m_creature->IsWithinDistInMap(who, m_creature->GetAttackDistance(who)) || !m_creature->IsWithinLOSInMap(who))
- return;
-
- if(m_creature->canAttack(who))
- //who->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
+ if(!m_creature->getVictim() && m_creature->canStartAttack(who))
AttackStart(who);
}
@@ -679,13 +669,11 @@ void ScriptedAI::DoZoneInCombat(Unit* pUnit)
return;
}
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
- for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if((*i)->isAlive())
- pUnit->AddThreat(*i, 0.0f);
- }
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if (Player* i_pl = i->getSource())
+ if (!i_pl->isAlive())
+ pUnit->AddThreat(i_pl, 0.0f);
}
void ScriptedAI::DoResetThreat()
@@ -721,6 +709,20 @@ void ScriptedAI::DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float
((Player*)pUnit)->TeleportTo(pUnit->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
}
+void ScriptedAI::DoTeleportAll(float x, float y, float z, float o)
+{
+ Map *map = m_creature->GetMap();
+ if (!map->IsDungeon())
+ return;
+
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if (Player* i_pl = i->getSource())
+ if (!i_pl->isAlive())
+ i_pl->TeleportTo(m_creature->GetMapId(), x, y, z, o, TELE_TO_NOT_LEAVE_COMBAT);
+}
+
+
Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff)
{
CellPair p(Trinity::ComputeCellPair(m_creature->GetPositionX(), m_creature->GetPositionY()));
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h
index 99ca4672f65..c1d7f06f029 100644
--- a/src/bindings/scripts/include/sc_creature.h
+++ b/src/bindings/scripts/include/sc_creature.h
@@ -146,6 +146,7 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
//Teleports a player without dropping threat (only teleports to same map)
void DoTeleportPlayer(Unit* pUnit, float x, float y, float z, float o);
+ void DoTeleportAll(float x, float y, float z, float o);
//Returns friendly unit with the most amount of hp missing from max hp
Unit* DoSelectLowestHpFriendly(float range, uint32 MinHPDiff = 1);
diff --git a/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp b/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp
index 117121d8530..83dda669e1f 100644
--- a/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp
+++ b/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp
@@ -40,5 +40,5 @@ void AddSC_areatrigger_scripts()
newscript = new Script;
newscript->Name="at_test";
newscript->pAreaTrigger = ATtest;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/boss/boss_emeriss.cpp b/src/bindings/scripts/scripts/boss/boss_emeriss.cpp
index 99b3a845f95..a8af2b43e41 100644
--- a/src/bindings/scripts/scripts/boss/boss_emeriss.cpp
+++ b/src/bindings/scripts/scripts/boss/boss_emeriss.cpp
@@ -152,5 +152,5 @@ void AddSC_boss_emeriss()
newscript = new Script;
newscript->Name="boss_emeriss";
newscript->GetAI = GetAI_boss_emeriss;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/boss/boss_taerar.cpp b/src/bindings/scripts/scripts/boss/boss_taerar.cpp
index 67d3364dd66..faed723cb4d 100644
--- a/src/bindings/scripts/scripts/boss/boss_taerar.cpp
+++ b/src/bindings/scripts/scripts/boss/boss_taerar.cpp
@@ -297,10 +297,10 @@ void AddSC_boss_taerar()
newscript = new Script;
newscript->Name="boss_taerar";
newscript->GetAI = GetAI_boss_taerar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_shade_of_taerar";
newscript->GetAI = GetAI_boss_shadeoftaerar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp
index 3df1746bd76..b9fad649d71 100644
--- a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp
+++ b/src/bindings/scripts/scripts/boss/boss_ysondre.cpp
@@ -237,10 +237,10 @@ void AddSC_boss_ysondre()
newscript = new Script;
newscript->Name="boss_ysondre";
newscript->GetAI = GetAI_boss_ysondre;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_dementeddruids";
newscript->GetAI = GetAI_mob_dementeddruids;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/creature/mob_event_ai.cpp b/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
index d7578731e91..af945282935 100644
--- a/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
+++ b/src/bindings/scripts/scripts/creature/mob_event_ai.cpp
@@ -1400,5 +1400,5 @@ void AddSC_mob_event()
newscript = new Script;
newscript->Name="mob_eventai";
newscript->GetAI = GetAI_Mob_EventAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp b/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp
index 0e03915df0e..02e34a8fa1e 100644
--- a/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp
+++ b/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp
@@ -168,5 +168,5 @@ void AddSC_generic_creature()
newscript = new Script;
newscript->Name="generic_creature";
newscript->GetAI = GetAI_generic_creature;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/custom/custom_example.cpp b/src/bindings/scripts/scripts/custom/custom_example.cpp
index 133b2136a1c..d1a30fd06af 100644
--- a/src/bindings/scripts/scripts/custom/custom_example.cpp
+++ b/src/bindings/scripts/scripts/custom/custom_example.cpp
@@ -273,5 +273,5 @@ void AddSC_custom_example()
newscript->pGossipHello = &GossipHello_custom_example;
newscript->pGossipSelect = &GossipSelect_custom_example;
newscript->pReceiveEmote = &ReceiveEmote_custom_example;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp b/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp
index c8cfe711fc9..3963d31b98b 100644
--- a/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp
+++ b/src/bindings/scripts/scripts/custom/custom_gossip_codebox.cpp
@@ -77,5 +77,5 @@ void AddSC_custom_gossip_codebox()
newscript->pGossipHello = &GossipHello_custom_gossip_codebox;
newscript->pGossipSelect = &GossipSelect_custom_gossip_codebox;
newscript->pGossipSelectWithCode = &GossipSelectWithCode_custom_gossip_codebox;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/custom/test.cpp b/src/bindings/scripts/scripts/custom/test.cpp
index 52d5c7d6f4f..e54716afcf0 100644
--- a/src/bindings/scripts/scripts/custom/test.cpp
+++ b/src/bindings/scripts/scripts/custom/test.cpp
@@ -196,5 +196,5 @@ void AddSC_test()
newscript->GetAI = GetAI_test;
newscript->pGossipHello = &GossipHello_npc_test;
newscript->pGossipSelect = &GossipSelect_npc_test;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/go/go_scripts.cpp
index a06e588d916..511e283373a 100644
--- a/src/bindings/scripts/scripts/go/go_scripts.cpp
+++ b/src/bindings/scripts/scripts/go/go_scripts.cpp
@@ -165,45 +165,45 @@ void AddSC_go_scripts()
newscript = new Script;
newscript->Name="go_northern_crystal_pylon";
newscript->pGOHello = &GOHello_go_northern_crystal_pylon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_eastern_crystal_pylon";
newscript->pGOHello = &GOHello_go_eastern_crystal_pylon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_western_crystal_pylon";
newscript->pGOHello = &GOHello_go_western_crystal_pylon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_barov_journal";
newscript->pGOHello = &GOHello_go_barov_journal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_field_repair_bot_74A";
newscript->pGOHello = &GOHello_go_field_repair_bot_74A;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_orb_of_command";
newscript->pGOHello = &GOHello_go_orb_of_command;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_tablet_of_madness";
newscript->pGOHello = &GOHello_go_tablet_of_madness;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_tablet_of_the_seven";
newscript->pGOHello = &GOHello_go_tablet_of_the_seven;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_teleporter";
newscript->pGOHello = &GOHello_go_teleporter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/guard/guards.cpp b/src/bindings/scripts/scripts/guard/guards.cpp
index fdc541665d1..a96ded0ac70 100644
--- a/src/bindings/scripts/scripts/guard/guards.cpp
+++ b/src/bindings/scripts/scripts/guard/guards.cpp
@@ -3980,75 +3980,75 @@ void AddSC_guards()
newscript->pGossipHello = &GossipHello_guard_azuremyst;
newscript->pGossipSelect = &GossipSelect_guard_azuremyst;
newscript->GetAI = GetAI_guard_azuremyst;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_bluffwatcher";
newscript->pGossipHello = &GossipHello_guard_bluffwatcher;
newscript->pGossipSelect = &GossipSelect_guard_bluffwatcher;
newscript->GetAI = GetAI_guard_bluffwatcher;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_contested";
newscript->GetAI = GetAI_guard_contested;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_darnassus";
newscript->pGossipHello = &GossipHello_guard_darnassus;
newscript->pGossipSelect = &GossipSelect_guard_darnassus;
newscript->GetAI = GetAI_guard_darnassus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_dunmorogh";
newscript->pGossipHello = &GossipHello_guard_dunmorogh;
newscript->pGossipSelect = &GossipSelect_guard_dunmorogh;
newscript->GetAI = GetAI_guard_dunmorogh;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_durotar";
newscript->pGossipHello = &GossipHello_guard_durotar;
newscript->pGossipSelect = &GossipSelect_guard_durotar;
newscript->GetAI = GetAI_guard_durotar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_elwynnforest";
newscript->pGossipHello = &GossipHello_guard_elwynnforest;
newscript->pGossipSelect = &GossipSelect_guard_elwynnforest;
newscript->GetAI = GetAI_guard_elwynnforest;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_eversong";
newscript->pGossipHello = &GossipHello_guard_eversong;
newscript->pGossipSelect = &GossipSelect_guard_eversong;
newscript->GetAI = GetAI_guard_eversong;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_exodar";
newscript->pGossipHello = &GossipHello_guard_exodar;
newscript->pGossipSelect = &GossipSelect_guard_exodar;
newscript->GetAI = GetAI_guard_exodar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_ironforge";
newscript->pGossipHello = &GossipHello_guard_ironforge;
newscript->pGossipSelect = &GossipSelect_guard_ironforge;
newscript->GetAI = GetAI_guard_ironforge;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_mulgore";
newscript->pGossipHello = &GossipHello_guard_mulgore;
newscript->pGossipSelect = &GossipSelect_guard_mulgore;
newscript->GetAI = GetAI_guard_mulgore;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_orgrimmar";
@@ -4056,35 +4056,35 @@ void AddSC_guards()
newscript->pGossipSelect = &GossipSelect_guard_orgrimmar;
newscript->pReceiveEmote = &ReceiveEmote_guard_orgrimmar;
newscript->GetAI = GetAI_guard_orgrimmar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_shattrath";
newscript->pGossipHello = &GossipHello_guard_shattrath;
newscript->pGossipSelect = &GossipSelect_guard_shattrath;
newscript->GetAI = GetAI_guard_shattrath;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_shattrath_aldor";
newscript->GetAI = GetAI_guard_shattrath_aldor;
newscript->pGossipHello = &GossipHello_guard_shattrath_aldor;
newscript->pGossipSelect = &GossipSelect_guard_shattrath_aldor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_shattrath_scryer";
newscript->GetAI = GetAI_guard_shattrath_scryer;
newscript->pGossipHello = &GossipHello_guard_shattrath_scryer;
newscript->pGossipSelect = &GossipSelect_guard_shattrath_scryer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_silvermoon";
newscript->pGossipHello = &GossipHello_guard_silvermoon;
newscript->pGossipSelect = &GossipSelect_guard_silvermoon;
newscript->GetAI = GetAI_guard_silvermoon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_stormwind";
@@ -4092,26 +4092,26 @@ void AddSC_guards()
newscript->pGossipSelect = &GossipSelect_guard_stormwind;
newscript->pReceiveEmote = &ReceiveEmote_guard_stormwind;
newscript->GetAI = GetAI_guard_stormwind;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_teldrassil";
newscript->pGossipHello = &GossipHello_guard_teldrassil;
newscript->pGossipSelect = &GossipSelect_guard_teldrassil;
newscript->GetAI = GetAI_guard_teldrassil;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_tirisfal";
newscript->pGossipHello = &GossipHello_guard_tirisfal;
newscript->pGossipSelect = &GossipSelect_guard_tirisfal;
newscript->GetAI = GetAI_guard_tirisfal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="guard_undercity";
newscript->pGossipHello = &GossipHello_guard_undercity;
newscript->pGossipSelect = &GossipSelect_guard_undercity;
newscript->GetAI = GetAI_guard_undercity;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/item/item_scripts.cpp b/src/bindings/scripts/scripts/item/item_scripts.cpp
index 42ab5914262..372f438753c 100644
--- a/src/bindings/scripts/scripts/item/item_scripts.cpp
+++ b/src/bindings/scripts/scripts/item/item_scripts.cpp
@@ -455,95 +455,95 @@ void AddSC_item_scripts()
newscript = new Script;
newscript->Name="item_area_52_special";
newscript->pItemUse = ItemUse_item_area_52_special;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_arcane_charges";
newscript->pItemUse = ItemUse_item_arcane_charges;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_attuned_crystal_cores";
newscript->pItemUse = ItemUse_item_attuned_crystal_cores;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_blackwhelp_net";
newscript->pItemUse = ItemUse_item_blackwhelp_net;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_disciplinary_rod";
newscript->pItemUse = ItemUse_item_disciplinary_rod;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_draenei_fishing_net";
newscript->pItemUse = ItemUse_item_draenei_fishing_net;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_nether_wraith_beacon";
newscript->pItemUse = ItemUse_item_nether_wraith_beacon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_flying_machine";
newscript->pItemUse = ItemUse_item_flying_machine;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_gor_dreks_ointment";
newscript->pItemUse = ItemUse_item_gor_dreks_ointment;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_muiseks_vessel";
newscript->pItemUse = ItemUse_item_muiseks_vessel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_razorthorn_flayer_gland";
newscript->pItemUse = ItemUse_item_razorthorn_flayer_gland;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_tame_beast_rods";
newscript->pItemUse = ItemUse_item_tame_beast_rods;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_protovoltaic_magneto_collector";
newscript->pItemUse = ItemUse_item_protovoltaic_magneto_collector;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_soul_cannon";
newscript->pItemUse = ItemUse_item_soul_cannon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_sparrowhawk_net";
newscript->pItemUse = ItemUse_item_sparrowhawk_net;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_voodoo_charm";
newscript->pItemUse = ItemUse_item_voodoo_charm;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_vorenthals_presence";
newscript->pItemUse = ItemUse_item_vorenthals_presence;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_yehkinyas_bramble";
newscript->pItemUse = ItemUse_item_yehkinyas_bramble;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_zezzaks_shard";
newscript->pItemUse = ItemUse_item_zezzak_shard;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/item/item_test.cpp b/src/bindings/scripts/scripts/item/item_test.cpp
index a1e3b6c13c1..1dce7157e21 100644
--- a/src/bindings/scripts/scripts/item/item_test.cpp
+++ b/src/bindings/scripts/scripts/item/item_test.cpp
@@ -38,5 +38,5 @@ void AddSC_item_test()
newscript = new Script;
newscript->Name="item_test";
newscript->pItemUse = ItemUse_item_test;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp b/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp
index d0faf45c792..efc5e4b7b3a 100644
--- a/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp
+++ b/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp
@@ -140,5 +140,5 @@ void AddSC_npc_innkeeper()
newscript->Name="npc_innkeeper";
newscript->pGossipHello = &GossipHello_npc_innkeeper;
newscript->pGossipSelect = &GossipSelect_npc_innkeeper;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/npc/npc_professions.cpp b/src/bindings/scripts/scripts/npc/npc_professions.cpp
index 30ecfc6788d..5061f195910 100644
--- a/src/bindings/scripts/scripts/npc/npc_professions.cpp
+++ b/src/bindings/scripts/scripts/npc/npc_professions.cpp
@@ -1177,29 +1177,29 @@ void AddSC_npc_professions()
newscript->Name="npc_prof_alchemy";
newscript->pGossipHello = &GossipHello_npc_prof_alchemy;
newscript->pGossipSelect = &GossipSelect_npc_prof_alchemy;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_prof_blacksmith";
newscript->pGossipHello = &GossipHello_npc_prof_blacksmith;
newscript->pGossipSelect = &GossipSelect_npc_prof_blacksmith;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_prof_leather";
newscript->pGossipHello = &GossipHello_npc_prof_leather;
newscript->pGossipSelect = &GossipSelect_npc_prof_leather;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_prof_tailor";
newscript->pGossipHello = &GossipHello_npc_prof_tailor;
newscript->pGossipSelect = &GossipSelect_npc_prof_tailor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
/*newscript = new Script;
newscript->Name="go_soothsaying_for_dummies";
newscript->pGOHello = &GOHello_go_soothsaying_for_dummies;
//newscript->pGossipSelect = &GossipSelect_go_soothsaying_for_dummies;
- m_scripts[nrscripts++] = newscript;*/
+ newscript->RegisterSelf();*/
}
diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/npc/npcs_special.cpp
index e0e53ab55b1..61091ab54e2 100644
--- a/src/bindings/scripts/scripts/npc/npcs_special.cpp
+++ b/src/bindings/scripts/scripts/npc/npcs_special.cpp
@@ -1,945 +1,945 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: Npcs_Special
-SD%Complete: 100
-SDComment: To be used for special NPCs that are located globally. Support for quest 3861 (Cluck!), 6622 and 6624 (Triage)
-SDCategory: NPCs
-EndScriptData
-*/
-
-/* ContentData
-npc_chicken_cluck 100% support for quest 3861 (Cluck!)
-npc_dancing_flames 100% midsummer event NPC
-npc_guardian 100% guardianAI used to prevent players from accessing off-limits areas. Not in use by SD2
-npc_injured_patient 100% patients for triage-quests (6622 and 6624)
-npc_doctor 100% Gustaf Vanhowzen and Gregory Victor, quest 6622 and 6624 (Triage)
-npc_mount_vendor 100% Regular mount vendors all over the world. Display gossip if player doesn't meet the requirements to buy
-npc_rogue_trainer 80% Scripted trainers, so they are able to offer item 17126 for class quest 6681
-npc_sayge 100% Darkmoon event fortune teller, buff player based on answers given
-EndContentData */
-
-#include "precompiled.h"
-
-/*########
-# npc_chicken_cluck
-#########*/
-
-#define QUEST_CLUCK 3861
-#define EMOTE_A_HELLO "looks up at you quizzically. Maybe you should inspect it?"
-#define EMOTE_H_HELLO "looks at you unexpectadly."
-#define CLUCK_TEXT2 "starts pecking at the feed."
-#define FACTION_FRIENDLY 84
-#define FACTION_CHICKEN 31
-
-struct TRINITY_DLL_DECL npc_chicken_cluckAI : public ScriptedAI
-{
- npc_chicken_cluckAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- uint32 ResetFlagTimer;
-
- void Reset()
- {
- ResetFlagTimer = 120000;
-
- m_creature->setFaction(FACTION_CHICKEN);
- m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- }
-
- void Aggro(Unit *who) {}
-
- void UpdateAI(const uint32 diff)
- {
- // Reset flags after a certain time has passed so that the next player has to start the 'event' again
- if(m_creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
- {
- if(ResetFlagTimer < diff)
- EnterEvadeMode();
- else ResetFlagTimer -= diff;
- }
-
- if(m_creature->SelectHostilTarget() && m_creature->getVictim())
- DoMeleeAttackIfReady();
- }
-};
-
-CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature)
-{
- return new npc_chicken_cluckAI(_Creature);
-}
-
-bool ReceiveEmote_npc_chicken_cluck( Player *player, Creature *_Creature, uint32 emote )
-{
- if( emote == TEXTEMOTE_CHICKEN )
- {
- if( player->GetTeam() == ALLIANCE )
- {
- if( rand()%30 == 1 )
- {
- if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_NONE )
- {
- _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- _Creature->setFaction(FACTION_FRIENDLY);
- _Creature->MonsterTextEmote(EMOTE_A_HELLO, 0);
- }
- }
- } else
- _Creature->MonsterTextEmote(EMOTE_H_HELLO,0);
- }
- if( emote == TEXTEMOTE_CHEER && player->GetTeam() == ALLIANCE )
- if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_COMPLETE )
- {
- _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
- _Creature->setFaction(FACTION_FRIENDLY);
- _Creature->MonsterTextEmote(CLUCK_TEXT2, 0);
- }
-
- return true;
-}
-
-bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest )
-{
- if(_Quest->GetQuestId() == QUEST_CLUCK)
- ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
-
- return true;
-}
-
-bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest)
-{
- if(_Quest->GetQuestId() == QUEST_CLUCK)
- ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
-
- return true;
-}
-
-/*######
-## npc_dancing_flames
-######*/
-
-bool ReceiveEmote_npc_dancing_flames( Player *player, Creature *_Creature, uint32 emote )
-{
- if( emote == TEXTEMOTE_DANCE )
- _Creature->CastSpell(player,47057,false);
-
- return true;
-}
-
-/*######
-## Triage quest
-######*/
-
-#define SAY_DOC1 "I'm saved! Thank you, doctor!"
-#define SAY_DOC2 "HOORAY! I AM SAVED!"
-#define SAY_DOC3 "Sweet, sweet embrace... take me..."
-
-struct Location
-{
- float x, y, z, o;
-};
-
-#define DOCTOR_ALLIANCE 12939
-
-static Location AllianceCoords[]=
-{
- { // Top-far-right bunk as seen from entrance
- -3757.38, -4533.05, 14.16, 3.62
- },
- { // Top-far-left bunk
- -3754.36, -4539.13, 14.16, 5.13
- },
- { // Far-right bunk
- -3749.54, -4540.25, 14.28, 3.34
- },
- { // Right bunk near entrance
- -3742.10, -4536.85, 14.28, 3.64
- },
- { // Far-left bunk
- -3755.89, -4529.07, 14.05, 0.57
- },
- { // Mid-left bunk
- -3749.51, -4527.08, 14.07, 5.26
- },
- { // Left bunk near entrance
- -3746.37, -4525.35, 14.16, 5.22
- },
-};
-
-#define ALLIANCE_COORDS 7
-
-//alliance run to where
-#define A_RUNTOX -3742.96
-#define A_RUNTOY -4531.52
-#define A_RUNTOZ 11.91
-
-#define DOCTOR_HORDE 12920
-
-static Location HordeCoords[]=
-{
- { // Left, Behind
- -1013.75, -3492.59, 62.62, 4.34
- },
- { // Right, Behind
- -1017.72, -3490.92, 62.62, 4.34
- },
- { // Left, Mid
- -1015.77, -3497.15, 62.82, 4.34
- },
- { // Right, Mid
- -1019.51, -3495.49, 62.82, 4.34
- },
- { // Left, front
- -1017.25, -3500.85, 62.98, 4.34
- },
- { // Right, Front
- -1020.95, -3499.21, 62.98, 4.34
- }
-};
-
-#define HORDE_COORDS 6
-
-//horde run to where
-#define H_RUNTOX -1016.44
-#define H_RUNTOY -3508.48
-#define H_RUNTOZ 62.96
-
-const uint32 AllianceSoldierId[3] =
-{
- 12938, // 12938 Injured Alliance Soldier
- 12936, // 12936 Badly injured Alliance Soldier
- 12937 // 12937 Critically injured Alliance Soldier
-};
-
-const uint32 HordeSoldierId[3] =
-{
- 12923, //12923 Injured Soldier
- 12924, //12924 Badly injured Soldier
- 12925 //12925 Critically injured Soldier
-};
-
-/*######
-## npc_doctor (handles both Gustaf Vanhowzen and Gregory Victor)
-######*/
-
-struct TRINITY_DLL_DECL npc_doctorAI : public ScriptedAI
-{
- uint64 Playerguid;
-
- uint32 SummonPatient_Timer;
- uint32 SummonPatientCount;
- uint32 PatientDiedCount;
- uint32 PatientSavedCount;
-
- bool Event;
-
- std::list<uint64> Patients;
- std::vector<Location*> Coordinates;
-
- npc_doctorAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- void Reset(){}
-
- void BeginEvent(Player* player);
- void PatientDied(Location* Point);
- void PatientSaved(Creature* soldier, Player* player, Location* Point);
- void UpdateAI(const uint32 diff);
-
- void Aggro(Unit* who){}
-};
-
-/*#####
-## npc_injured_patient (handles all the patients, no matter Horde or Alliance)
-#####*/
-
-struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI
-{
- npc_injured_patientAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- uint64 Doctorguid;
-
- Location* Coord;
-
- void Reset()
- {
- Doctorguid = 0;
-
- Coord = NULL;
- //no select
- m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- //no regen health
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- //to make them lay with face down
- m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_DEAD);
-
- uint32 mobId = m_creature->GetEntry();
-
- switch (mobId)
- { //lower max health
- case 12923:
- case 12938: //Injured Soldier
- m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.75));
- break;
- case 12924:
- case 12936: //Badly injured Soldier
- m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.50));
- break;
- case 12925:
- case 12937: //Critically injured Soldier
- m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.25));
- break;
- }
- }
-
- void Aggro(Unit* who){}
-
- void SpellHit(Unit *caster, const SpellEntry *spell)
- {
- if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804)
- {
- if( (((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
- {
- if(Doctorguid)
- {
- Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid));
- if(Doctor)
- ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord);
- }
- }
- //make not selectable
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- //regen health
- m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- //stand up
- m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_NONE);
- DoSay(SAY_DOC1,LANG_UNIVERSAL,NULL);
-
- uint32 mobId = m_creature->GetEntry();
- m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
- switch (mobId)
- {
- case 12923:
- case 12924:
- case 12925:
- m_creature->GetMotionMaster()->MovePoint(0, H_RUNTOX, H_RUNTOY, H_RUNTOZ);
- break;
- case 12936:
- case 12937:
- case 12938:
- m_creature->GetMotionMaster()->MovePoint(0, A_RUNTOX, A_RUNTOY, A_RUNTOZ);
- break;
- }
- }
- return;
- }
-
- void UpdateAI(const uint32 diff)
- {
- if (m_creature->isAlive() && m_creature->GetHealth() > 6)
- { //lower HP on every world tick makes it a useful counter, not officlone though
- m_creature->SetHealth(uint32(m_creature->GetHealth()-5) );
- }
-
- if (m_creature->isAlive() && m_creature->GetHealth() <= 6)
- {
- m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- m_creature->setDeathState(JUST_DIED);
- m_creature->SetFlag(UNIT_DYNAMIC_FLAGS, 32);
-
- if(Doctorguid)
- {
- Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid));
- if(Doctor)
- ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord);
- }
- }
- }
-};
-
-CreatureAI* GetAI_npc_injured_patient(Creature *_Creature)
-{
- return new npc_injured_patientAI (_Creature);
-}
-
-/*
-npc_doctor (continue)
-*/
-
-void npc_doctorAI::BeginEvent(Player* player)
-{
- Playerguid = player->GetGUID();
-
- SummonPatient_Timer = 10000;
- SummonPatientCount = 0;
- PatientDiedCount = 0;
- PatientSavedCount = 0;
-
- switch(m_creature->GetEntry())
- {
- case DOCTOR_ALLIANCE:
- for(uint8 i = 0; i < ALLIANCE_COORDS; ++i)
- Coordinates.push_back(&AllianceCoords[i]);
- break;
-
- case DOCTOR_HORDE:
- for(uint8 i = 0; i < HORDE_COORDS; ++i)
- Coordinates.push_back(&HordeCoords[i]);
- break;
- }
-
- Event = true;
-
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
-}
-
-void npc_doctorAI::PatientDied(Location* Point)
-{
- Player* player = ((Player*)Unit::GetUnit((*m_creature), Playerguid));
- if(player && ((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)))
- {
- PatientDiedCount++;
- if (PatientDiedCount > 5 && Event)
- {
- if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE)
- player->FailQuest(6624);
- else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
- player->FailQuest(6622);
-
- Event = false;
- m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- Coordinates.push_back(Point);
- }
-}
-
-void npc_doctorAI::PatientSaved(Creature* soldier, Player* player, Location* Point)
-{
- if(player && Playerguid == player->GetGUID())
- {
- if((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
- {
- PatientSavedCount++;
- if(PatientSavedCount == 15)
- {
- if(!Patients.empty())
- {
- std::list<uint64>::iterator itr;
- for(itr = Patients.begin(); itr != Patients.end(); ++itr)
- {
- Creature* Patient = ((Creature*)Unit::GetUnit((*m_creature), *itr));
- if( Patient )
- Patient->setDeathState(JUST_DIED);
- }
- }
-
- if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE)
- player->AreaExploredOrEventHappens(6624);
- else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
- player->AreaExploredOrEventHappens(6622);
-
- Event = false;
- m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- Coordinates.push_back(Point);
- }
- }
-}
-
-void npc_doctorAI::UpdateAI(const uint32 diff)
-{
- if(Event && SummonPatientCount >= 20)
- {
- Event = false;
- m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- }
-
- if(Event)
- if(SummonPatient_Timer < diff)
- {
- Creature* Patient = NULL;
- Location* Point = NULL;
-
- if(Coordinates.empty())
- return;
-
- std::vector<Location*>::iterator itr = Coordinates.begin()+rand()%Coordinates.size();
- uint32 patientEntry = 0;
-
- switch(m_creature->GetEntry())
- {
- case DOCTOR_ALLIANCE: patientEntry = AllianceSoldierId[rand()%3]; break;
- case DOCTOR_HORDE: patientEntry = HordeSoldierId[rand()%3]; break;
- default:
- error_log("SD2: Invalid entry for Triage doctor. Please check your database");
- return;
- }
-
- Point = *itr;
-
- Patient = m_creature->SummonCreature(patientEntry, Point->x, Point->y, Point->z, Point->o, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
-
- if(Patient)
- {
- Patients.push_back(Patient->GetGUID());
- ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID();
- if(Point)
- ((npc_injured_patientAI*)Patient->AI())->Coord = Point;
- Coordinates.erase(itr);
- }
- SummonPatient_Timer = 10000;
- SummonPatientCount++;
- }else SummonPatient_Timer -= diff;
-}
-
-bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest )
-{
- if((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622))
- ((npc_doctorAI*)creature->AI())->BeginEvent(player);
-
- return true;
-}
-
-CreatureAI* GetAI_npc_doctor(Creature *_Creature)
-{
- return new npc_doctorAI (_Creature);
-}
-
-/*######
-## npc_guardian
-######*/
-
-#define SPELL_DEATHTOUCH 5
-#define SAY_AGGRO "This area is closed!"
-
-struct TRINITY_DLL_DECL npc_guardianAI : public ScriptedAI
-{
- npc_guardianAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- void Reset()
- {
- m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
-
- void Aggro(Unit *who)
- {
- DoYell(SAY_AGGRO,LANG_UNIVERSAL,NULL);
- }
-
- void UpdateAI(const uint32 diff)
- {
- if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
- return;
-
- if (m_creature->isAttackReady())
- {
- m_creature->CastSpell(m_creature->getVictim(),SPELL_DEATHTOUCH, true);
- m_creature->resetAttackTimer();
- }
- }
-};
-
-CreatureAI* GetAI_npc_guardian(Creature *_Creature)
-{
- return new npc_guardianAI (_Creature);
-}
-
-/*######
-## npc_mount_vendor
-######*/
-
-bool GossipHello_npc_mount_vendor(Player *player, Creature *_Creature)
-{
- if (_Creature->isQuestGiver())
- player->PrepareQuestMenu( _Creature->GetGUID() );
-
- bool canBuy;
- canBuy = false;
- uint32 vendor = _Creature->GetEntry();
- uint8 race = player->getRace();
-
- switch (vendor)
- {
- case 384: //Katie Hunter
- case 1460: //Unger Statforth
- case 2357: //Merideth Carlson
- case 4885: //Gregor MacVince
- if (player->GetReputationRank(72) != REP_EXALTED && race != RACE_HUMAN)
- player->SEND_GOSSIP_MENU(5855, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 1261: //Veron Amberstill
- if (player->GetReputationRank(47) != REP_EXALTED && race != RACE_DWARF)
- player->SEND_GOSSIP_MENU(5856, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 3362: //Ogunaro Wolfrunner
- if (player->GetReputationRank(76) != REP_EXALTED && race != RACE_ORC)
- player->SEND_GOSSIP_MENU(5841, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 3685: //Harb Clawhoof
- if (player->GetReputationRank(81) != REP_EXALTED && race != RACE_TAUREN)
- player->SEND_GOSSIP_MENU(5843, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 4730: //Lelanai
- if (player->GetReputationRank(69) != REP_EXALTED && race != RACE_NIGHTELF)
- player->SEND_GOSSIP_MENU(5844, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 4731: //Zachariah Post
- if (player->GetReputationRank(68) != REP_EXALTED && race != RACE_UNDEAD_PLAYER)
- player->SEND_GOSSIP_MENU(5840, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 7952: //Zjolnir
- if (player->GetReputationRank(530) != REP_EXALTED && race != RACE_TROLL)
- player->SEND_GOSSIP_MENU(5842, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 7955: //Milli Featherwhistle
- if (player->GetReputationRank(54) != REP_EXALTED && race != RACE_GNOME)
- player->SEND_GOSSIP_MENU(5857, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 16264: //Winaestra
- if (player->GetReputationRank(911) != REP_EXALTED && race != RACE_BLOODELF)
- player->SEND_GOSSIP_MENU(10305, _Creature->GetGUID());
- else canBuy = true;
- break;
- case 17584: //Torallius the Pack Handler
- if (player->GetReputationRank(930) != REP_EXALTED && race != RACE_DRAENEI)
- player->SEND_GOSSIP_MENU(10239, _Creature->GetGUID());
- else canBuy = true;
- break;
- }
-
- if (canBuy)
- {
- if (_Creature->isVendor())
- player->ADD_GOSSIP_ITEM( 1, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
- player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID());
- }
- return true;
-}
-
-bool GossipSelect_npc_mount_vendor(Player *player, Creature *_Creature, uint32 sender, uint32 action)
-{
- if (action == GOSSIP_ACTION_TRADE)
- player->SEND_VENDORLIST( _Creature->GetGUID() );
-
- return true;
-}
-
-/*######
-## npc_rogue_trainer
-######*/
-
-bool GossipHello_npc_rogue_trainer(Player *player, Creature *_Creature)
-{
- if( _Creature->isQuestGiver() )
- player->PrepareQuestMenu( _Creature->GetGUID() );
-
- if( _Creature->isTrainer() )
- player->ADD_GOSSIP_ITEM(2, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
-
- if( _Creature->isCanTrainingAndResetTalentsOf(player) )
- player->ADD_GOSSIP_ITEM(2, "I wish to unlearn my talents", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_UNLEARNTALENTS);
-
- if( player->getClass() == CLASS_ROGUE && player->getLevel() >= 24 && !player->HasItemCount(17126,1) && !player->GetQuestRewardStatus(6681) )
- {
- player->ADD_GOSSIP_ITEM(0, "<Take the letter>", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->SEND_GOSSIP_MENU(5996, _Creature->GetGUID());
- } else
- player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID());
-
- return true;
-}
-
-bool GossipSelect_npc_rogue_trainer(Player *player, Creature *_Creature, uint32 sender, uint32 action)
-{
- switch( action )
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->CLOSE_GOSSIP_MENU();
- player->CastSpell(player,21100,false);
- break;
- case GOSSIP_ACTION_TRAIN:
- player->SEND_TRAINERLIST( _Creature->GetGUID() );
- break;
- case GOSSIP_OPTION_UNLEARNTALENTS:
- player->CLOSE_GOSSIP_MENU();
- player->SendTalentWipeConfirm( _Creature->GetGUID() );
- break;
- }
- return true;
-}
-
-/*######
-## npc_sayge
-######*/
-
-#define SPELL_DMG 23768 //dmg
-#define SPELL_RES 23769 //res
-#define SPELL_ARM 23767 //arm
-#define SPELL_SPI 23738 //spi
-#define SPELL_INT 23766 //int
-#define SPELL_STM 23737 //stm
-#define SPELL_STR 23735 //str
-#define SPELL_AGI 23736 //agi
-#define SPELL_FORTUNE 23765 //faire fortune
-
-bool GossipHello_npc_sayge(Player *player, Creature *_Creature)
-{
- if(_Creature->isQuestGiver())
- player->PrepareQuestMenu( _Creature->GetGUID() );
-
- if( player->HasSpellCooldown(SPELL_INT) ||
- player->HasSpellCooldown(SPELL_ARM) ||
- player->HasSpellCooldown(SPELL_DMG) ||
- player->HasSpellCooldown(SPELL_RES) ||
- player->HasSpellCooldown(SPELL_STR) ||
- player->HasSpellCooldown(SPELL_AGI) ||
- player->HasSpellCooldown(SPELL_STM) ||
- player->HasSpellCooldown(SPELL_SPI) )
- player->SEND_GOSSIP_MENU(7393, _Creature->GetGUID());
- else
- {
- player->ADD_GOSSIP_ITEM(0, "Yes", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- player->SEND_GOSSIP_MENU(7339, _Creature->GetGUID());
- }
-
- return true;
-}
-
-void SendAction_npc_sayge(Player *player, Creature *_Creature, uint32 action)
-{
- switch(action)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- player->ADD_GOSSIP_ITEM(0, "Slay the Man", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- player->ADD_GOSSIP_ITEM(0, "Turn him over to liege", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- player->ADD_GOSSIP_ITEM(0, "Confiscate the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
- player->ADD_GOSSIP_ITEM(0, "Let him go and have the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
- player->SEND_GOSSIP_MENU(7340, _Creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2:
- player->ADD_GOSSIP_ITEM(0, "Execute your friend painfully", GOSSIP_SENDER_MAIN+1, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Execute your friend painlessly", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Let your friend go", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(7341, _Creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- player->ADD_GOSSIP_ITEM(0, "Confront the diplomat", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Show not so quiet defiance", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Remain quiet", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(7361, _Creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- player->ADD_GOSSIP_ITEM(0, "Speak against your brother openly", GOSSIP_SENDER_MAIN+6, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Help your brother in", GOSSIP_SENDER_MAIN+7, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Keep your brother out without letting him know", GOSSIP_SENDER_MAIN+8, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(7362, _Creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+5:
- player->ADD_GOSSIP_ITEM(0, "Take credit, keep gold", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Take credit, share the gold", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF);
- player->ADD_GOSSIP_ITEM(0, "Let the knight take credit", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF);
- player->SEND_GOSSIP_MENU(7363, _Creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF:
- player->ADD_GOSSIP_ITEM(0, "Thanks", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
- player->SEND_GOSSIP_MENU(7364, _Creature->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+6:
- _Creature->CastSpell(player, SPELL_FORTUNE, false);
- player->SEND_GOSSIP_MENU(7365, _Creature->GetGUID());
- break;
- }
-}
-
-bool GossipSelect_npc_sayge(Player *player, Creature *_Creature, uint32 sender, uint32 action )
-{
- switch(sender)
- {
- case GOSSIP_SENDER_MAIN:
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+1:
- _Creature->CastSpell(player, SPELL_DMG, false);
- player->AddSpellCooldown(SPELL_DMG,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+2:
- _Creature->CastSpell(player, SPELL_RES, false);
- player->AddSpellCooldown(SPELL_RES,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+3:
- _Creature->CastSpell(player, SPELL_ARM, false);
- player->AddSpellCooldown(SPELL_ARM,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+4:
- _Creature->CastSpell(player, SPELL_SPI, false);
- player->AddSpellCooldown(SPELL_SPI,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+5:
- _Creature->CastSpell(player, SPELL_INT, false);
- player->AddSpellCooldown(SPELL_INT,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+6:
- _Creature->CastSpell(player, SPELL_STM, false);
- player->AddSpellCooldown(SPELL_STM,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+7:
- _Creature->CastSpell(player, SPELL_STR, false);
- player->AddSpellCooldown(SPELL_STR,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- case GOSSIP_SENDER_MAIN+8:
- _Creature->CastSpell(player, SPELL_AGI, false);
- player->AddSpellCooldown(SPELL_AGI,0,time(NULL) + 7200);
- SendAction_npc_sayge(player, _Creature, action);
- break;
- }
- return true;
-}
-
-struct TRINITY_DLL_DECL npc_steam_tonkAI : public ScriptedAI
-{
- npc_steam_tonkAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- void Reset() {}
- void Aggro(Unit *who) {}
-
- void OnPossess(bool apply)
- {
- if (apply)
- {
- // Initialize the action bar without the melee attack command
- m_creature->InitCharmInfo(m_creature);
- m_creature->GetCharmInfo()->InitEmptyActionBar(false);
- }
- }
-
-};
-
-CreatureAI* GetAI_npc_steam_tonk(Creature *_Creature)
-{
- return new npc_steam_tonkAI(_Creature);
-}
-
-#define SPELL_TONK_MINE_DETONATE 25099
-
-struct TRINITY_DLL_DECL npc_tonk_mineAI : public ScriptedAI
-{
- npc_tonk_mineAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- uint32 ExplosionTimer;
-
- void Reset()
- {
- ExplosionTimer = 3000;
- }
-
- void Aggro(Unit *who) {}
- void AttackStart(Unit *who) {}
- void MoveInLineOfSight(Unit *who) {}
-
- void UpdateAI(const uint32 diff)
- {
- if (ExplosionTimer < diff)
- {
- m_creature->CastSpell(m_creature, SPELL_TONK_MINE_DETONATE, true);
- m_creature->setDeathState(DEAD); // unsummon it
- } else
- ExplosionTimer -= diff;
- }
-};
-
-CreatureAI* GetAI_npc_tonk_mine(Creature *_Creature)
-{
- return new npc_tonk_mineAI(_Creature);
-}
-
-void AddSC_npcs_special()
-{
- Script *newscript;
-
- newscript = new Script;
- newscript->Name="npc_chicken_cluck";
- newscript->GetAI = GetAI_npc_chicken_cluck;
- newscript->pReceiveEmote = &ReceiveEmote_npc_chicken_cluck;
- newscript->pQuestAccept = &QuestAccept_npc_chicken_cluck;
- newscript->pQuestComplete = &QuestComplete_npc_chicken_cluck;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_dancing_flames";
- newscript->pReceiveEmote = &ReceiveEmote_npc_dancing_flames;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_injured_patient";
- newscript->GetAI = GetAI_npc_injured_patient;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_doctor";
- newscript->GetAI = GetAI_npc_doctor;
- newscript->pQuestAccept = &QuestAccept_npc_doctor;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_guardian";
- newscript->GetAI = GetAI_npc_guardian;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_mount_vendor";
- newscript->pGossipHello = &GossipHello_npc_mount_vendor;
- newscript->pGossipSelect = &GossipSelect_npc_mount_vendor;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_rogue_trainer";
- newscript->pGossipHello = &GossipHello_npc_rogue_trainer;
- newscript->pGossipSelect = &GossipSelect_npc_rogue_trainer;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_sayge";
- newscript->pGossipHello = &GossipHello_npc_sayge;
- newscript->pGossipSelect = &GossipSelect_npc_sayge;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_steam_tonk";
- newscript->GetAI = &GetAI_npc_steam_tonk;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="npc_tonk_mine";
- newscript->GetAI = &GetAI_npc_tonk_mine;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ScriptData
+SDName: Npcs_Special
+SD%Complete: 100
+SDComment: To be used for special NPCs that are located globally. Support for quest 3861 (Cluck!), 6622 and 6624 (Triage)
+SDCategory: NPCs
+EndScriptData
+*/
+
+/* ContentData
+npc_chicken_cluck 100% support for quest 3861 (Cluck!)
+npc_dancing_flames 100% midsummer event NPC
+npc_guardian 100% guardianAI used to prevent players from accessing off-limits areas. Not in use by SD2
+npc_injured_patient 100% patients for triage-quests (6622 and 6624)
+npc_doctor 100% Gustaf Vanhowzen and Gregory Victor, quest 6622 and 6624 (Triage)
+npc_mount_vendor 100% Regular mount vendors all over the world. Display gossip if player doesn't meet the requirements to buy
+npc_rogue_trainer 80% Scripted trainers, so they are able to offer item 17126 for class quest 6681
+npc_sayge 100% Darkmoon event fortune teller, buff player based on answers given
+EndContentData */
+
+#include "precompiled.h"
+
+/*########
+# npc_chicken_cluck
+#########*/
+
+#define QUEST_CLUCK 3861
+#define EMOTE_A_HELLO "looks up at you quizzically. Maybe you should inspect it?"
+#define EMOTE_H_HELLO "looks at you unexpectadly."
+#define CLUCK_TEXT2 "starts pecking at the feed."
+#define FACTION_FRIENDLY 84
+#define FACTION_CHICKEN 31
+
+struct TRINITY_DLL_DECL npc_chicken_cluckAI : public ScriptedAI
+{
+ npc_chicken_cluckAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ uint32 ResetFlagTimer;
+
+ void Reset()
+ {
+ ResetFlagTimer = 120000;
+
+ m_creature->setFaction(FACTION_CHICKEN);
+ m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ }
+
+ void Aggro(Unit *who) {}
+
+ void UpdateAI(const uint32 diff)
+ {
+ // Reset flags after a certain time has passed so that the next player has to start the 'event' again
+ if(m_creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
+ {
+ if(ResetFlagTimer < diff)
+ EnterEvadeMode();
+ else ResetFlagTimer -= diff;
+ }
+
+ if(m_creature->SelectHostilTarget() && m_creature->getVictim())
+ DoMeleeAttackIfReady();
+ }
+};
+
+CreatureAI* GetAI_npc_chicken_cluck(Creature *_Creature)
+{
+ return new npc_chicken_cluckAI(_Creature);
+}
+
+bool ReceiveEmote_npc_chicken_cluck( Player *player, Creature *_Creature, uint32 emote )
+{
+ if( emote == TEXTEMOTE_CHICKEN )
+ {
+ if( player->GetTeam() == ALLIANCE )
+ {
+ if( rand()%30 == 1 )
+ {
+ if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_NONE )
+ {
+ _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ _Creature->setFaction(FACTION_FRIENDLY);
+ _Creature->MonsterTextEmote(EMOTE_A_HELLO, 0);
+ }
+ }
+ } else
+ _Creature->MonsterTextEmote(EMOTE_H_HELLO,0);
+ }
+ if( emote == TEXTEMOTE_CHEER && player->GetTeam() == ALLIANCE )
+ if( player->GetQuestStatus(QUEST_CLUCK) == QUEST_STATUS_COMPLETE )
+ {
+ _Creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
+ _Creature->setFaction(FACTION_FRIENDLY);
+ _Creature->MonsterTextEmote(CLUCK_TEXT2, 0);
+ }
+
+ return true;
+}
+
+bool QuestAccept_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest )
+{
+ if(_Quest->GetQuestId() == QUEST_CLUCK)
+ ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
+
+ return true;
+}
+
+bool QuestComplete_npc_chicken_cluck(Player *player, Creature *_Creature, const Quest *_Quest)
+{
+ if(_Quest->GetQuestId() == QUEST_CLUCK)
+ ((npc_chicken_cluckAI*)_Creature->AI())->Reset();
+
+ return true;
+}
+
+/*######
+## npc_dancing_flames
+######*/
+
+bool ReceiveEmote_npc_dancing_flames( Player *player, Creature *_Creature, uint32 emote )
+{
+ if( emote == TEXTEMOTE_DANCE )
+ _Creature->CastSpell(player,47057,false);
+
+ return true;
+}
+
+/*######
+## Triage quest
+######*/
+
+#define SAY_DOC1 "I'm saved! Thank you, doctor!"
+#define SAY_DOC2 "HOORAY! I AM SAVED!"
+#define SAY_DOC3 "Sweet, sweet embrace... take me..."
+
+struct Location
+{
+ float x, y, z, o;
+};
+
+#define DOCTOR_ALLIANCE 12939
+
+static Location AllianceCoords[]=
+{
+ { // Top-far-right bunk as seen from entrance
+ -3757.38, -4533.05, 14.16, 3.62
+ },
+ { // Top-far-left bunk
+ -3754.36, -4539.13, 14.16, 5.13
+ },
+ { // Far-right bunk
+ -3749.54, -4540.25, 14.28, 3.34
+ },
+ { // Right bunk near entrance
+ -3742.10, -4536.85, 14.28, 3.64
+ },
+ { // Far-left bunk
+ -3755.89, -4529.07, 14.05, 0.57
+ },
+ { // Mid-left bunk
+ -3749.51, -4527.08, 14.07, 5.26
+ },
+ { // Left bunk near entrance
+ -3746.37, -4525.35, 14.16, 5.22
+ },
+};
+
+#define ALLIANCE_COORDS 7
+
+//alliance run to where
+#define A_RUNTOX -3742.96
+#define A_RUNTOY -4531.52
+#define A_RUNTOZ 11.91
+
+#define DOCTOR_HORDE 12920
+
+static Location HordeCoords[]=
+{
+ { // Left, Behind
+ -1013.75, -3492.59, 62.62, 4.34
+ },
+ { // Right, Behind
+ -1017.72, -3490.92, 62.62, 4.34
+ },
+ { // Left, Mid
+ -1015.77, -3497.15, 62.82, 4.34
+ },
+ { // Right, Mid
+ -1019.51, -3495.49, 62.82, 4.34
+ },
+ { // Left, front
+ -1017.25, -3500.85, 62.98, 4.34
+ },
+ { // Right, Front
+ -1020.95, -3499.21, 62.98, 4.34
+ }
+};
+
+#define HORDE_COORDS 6
+
+//horde run to where
+#define H_RUNTOX -1016.44
+#define H_RUNTOY -3508.48
+#define H_RUNTOZ 62.96
+
+const uint32 AllianceSoldierId[3] =
+{
+ 12938, // 12938 Injured Alliance Soldier
+ 12936, // 12936 Badly injured Alliance Soldier
+ 12937 // 12937 Critically injured Alliance Soldier
+};
+
+const uint32 HordeSoldierId[3] =
+{
+ 12923, //12923 Injured Soldier
+ 12924, //12924 Badly injured Soldier
+ 12925 //12925 Critically injured Soldier
+};
+
+/*######
+## npc_doctor (handles both Gustaf Vanhowzen and Gregory Victor)
+######*/
+
+struct TRINITY_DLL_DECL npc_doctorAI : public ScriptedAI
+{
+ uint64 Playerguid;
+
+ uint32 SummonPatient_Timer;
+ uint32 SummonPatientCount;
+ uint32 PatientDiedCount;
+ uint32 PatientSavedCount;
+
+ bool Event;
+
+ std::list<uint64> Patients;
+ std::vector<Location*> Coordinates;
+
+ npc_doctorAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ void Reset(){}
+
+ void BeginEvent(Player* player);
+ void PatientDied(Location* Point);
+ void PatientSaved(Creature* soldier, Player* player, Location* Point);
+ void UpdateAI(const uint32 diff);
+
+ void Aggro(Unit* who){}
+};
+
+/*#####
+## npc_injured_patient (handles all the patients, no matter Horde or Alliance)
+#####*/
+
+struct TRINITY_DLL_DECL npc_injured_patientAI : public ScriptedAI
+{
+ npc_injured_patientAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ uint64 Doctorguid;
+
+ Location* Coord;
+
+ void Reset()
+ {
+ Doctorguid = 0;
+
+ Coord = NULL;
+ //no select
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ //no regen health
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ //to make them lay with face down
+ m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_DEAD);
+
+ uint32 mobId = m_creature->GetEntry();
+
+ switch (mobId)
+ { //lower max health
+ case 12923:
+ case 12938: //Injured Soldier
+ m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.75));
+ break;
+ case 12924:
+ case 12936: //Badly injured Soldier
+ m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.50));
+ break;
+ case 12925:
+ case 12937: //Critically injured Soldier
+ m_creature->SetHealth(uint32(m_creature->GetMaxHealth()*.25));
+ break;
+ }
+ }
+
+ void Aggro(Unit* who){}
+
+ void SpellHit(Unit *caster, const SpellEntry *spell)
+ {
+ if (caster->GetTypeId() == TYPEID_PLAYER && m_creature->isAlive() && spell->Id == 20804)
+ {
+ if( (((Player*)caster)->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (((Player*)caster)->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
+ {
+ if(Doctorguid)
+ {
+ Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid));
+ if(Doctor)
+ ((npc_doctorAI*)Doctor->AI())->PatientSaved(m_creature, ((Player*)caster), Coord);
+ }
+ }
+ //make not selectable
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ //regen health
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ //stand up
+ m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1, PLAYER_STATE_NONE);
+ DoSay(SAY_DOC1,LANG_UNIVERSAL,NULL);
+
+ uint32 mobId = m_creature->GetEntry();
+ m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
+ switch (mobId)
+ {
+ case 12923:
+ case 12924:
+ case 12925:
+ m_creature->GetMotionMaster()->MovePoint(0, H_RUNTOX, H_RUNTOY, H_RUNTOZ);
+ break;
+ case 12936:
+ case 12937:
+ case 12938:
+ m_creature->GetMotionMaster()->MovePoint(0, A_RUNTOX, A_RUNTOY, A_RUNTOZ);
+ break;
+ }
+ }
+ return;
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (m_creature->isAlive() && m_creature->GetHealth() > 6)
+ { //lower HP on every world tick makes it a useful counter, not officlone though
+ m_creature->SetHealth(uint32(m_creature->GetHealth()-5) );
+ }
+
+ if (m_creature->isAlive() && m_creature->GetHealth() <= 6)
+ {
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ m_creature->setDeathState(JUST_DIED);
+ m_creature->SetFlag(UNIT_DYNAMIC_FLAGS, 32);
+
+ if(Doctorguid)
+ {
+ Creature* Doctor = ((Creature*)Unit::GetUnit((*m_creature), Doctorguid));
+ if(Doctor)
+ ((npc_doctorAI*)Doctor->AI())->PatientDied(Coord);
+ }
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_injured_patient(Creature *_Creature)
+{
+ return new npc_injured_patientAI (_Creature);
+}
+
+/*
+npc_doctor (continue)
+*/
+
+void npc_doctorAI::BeginEvent(Player* player)
+{
+ Playerguid = player->GetGUID();
+
+ SummonPatient_Timer = 10000;
+ SummonPatientCount = 0;
+ PatientDiedCount = 0;
+ PatientSavedCount = 0;
+
+ switch(m_creature->GetEntry())
+ {
+ case DOCTOR_ALLIANCE:
+ for(uint8 i = 0; i < ALLIANCE_COORDS; ++i)
+ Coordinates.push_back(&AllianceCoords[i]);
+ break;
+
+ case DOCTOR_HORDE:
+ for(uint8 i = 0; i < HORDE_COORDS; ++i)
+ Coordinates.push_back(&HordeCoords[i]);
+ break;
+ }
+
+ Event = true;
+
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+}
+
+void npc_doctorAI::PatientDied(Location* Point)
+{
+ Player* player = ((Player*)Unit::GetUnit((*m_creature), Playerguid));
+ if(player && ((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)))
+ {
+ PatientDiedCount++;
+ if (PatientDiedCount > 5 && Event)
+ {
+ if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE)
+ player->FailQuest(6624);
+ else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
+ player->FailQuest(6622);
+
+ Event = false;
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ Coordinates.push_back(Point);
+ }
+}
+
+void npc_doctorAI::PatientSaved(Creature* soldier, Player* player, Location* Point)
+{
+ if(player && Playerguid == player->GetGUID())
+ {
+ if((player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE) || (player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE))
+ {
+ PatientSavedCount++;
+ if(PatientSavedCount == 15)
+ {
+ if(!Patients.empty())
+ {
+ std::list<uint64>::iterator itr;
+ for(itr = Patients.begin(); itr != Patients.end(); ++itr)
+ {
+ Creature* Patient = ((Creature*)Unit::GetUnit((*m_creature), *itr));
+ if( Patient )
+ Patient->setDeathState(JUST_DIED);
+ }
+ }
+
+ if(player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE)
+ player->AreaExploredOrEventHappens(6624);
+ else if(player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)
+ player->AreaExploredOrEventHappens(6622);
+
+ Event = false;
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ Coordinates.push_back(Point);
+ }
+ }
+}
+
+void npc_doctorAI::UpdateAI(const uint32 diff)
+{
+ if(Event && SummonPatientCount >= 20)
+ {
+ Event = false;
+ m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
+ }
+
+ if(Event)
+ if(SummonPatient_Timer < diff)
+ {
+ Creature* Patient = NULL;
+ Location* Point = NULL;
+
+ if(Coordinates.empty())
+ return;
+
+ std::vector<Location*>::iterator itr = Coordinates.begin()+rand()%Coordinates.size();
+ uint32 patientEntry = 0;
+
+ switch(m_creature->GetEntry())
+ {
+ case DOCTOR_ALLIANCE: patientEntry = AllianceSoldierId[rand()%3]; break;
+ case DOCTOR_HORDE: patientEntry = HordeSoldierId[rand()%3]; break;
+ default:
+ error_log("SD2: Invalid entry for Triage doctor. Please check your database");
+ return;
+ }
+
+ Point = *itr;
+
+ Patient = m_creature->SummonCreature(patientEntry, Point->x, Point->y, Point->z, Point->o, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
+
+ if(Patient)
+ {
+ Patients.push_back(Patient->GetGUID());
+ ((npc_injured_patientAI*)Patient->AI())->Doctorguid = m_creature->GetGUID();
+ if(Point)
+ ((npc_injured_patientAI*)Patient->AI())->Coord = Point;
+ Coordinates.erase(itr);
+ }
+ SummonPatient_Timer = 10000;
+ SummonPatientCount++;
+ }else SummonPatient_Timer -= diff;
+}
+
+bool QuestAccept_npc_doctor(Player *player, Creature *creature, Quest const *quest )
+{
+ if((quest->GetQuestId() == 6624) || (quest->GetQuestId() == 6622))
+ ((npc_doctorAI*)creature->AI())->BeginEvent(player);
+
+ return true;
+}
+
+CreatureAI* GetAI_npc_doctor(Creature *_Creature)
+{
+ return new npc_doctorAI (_Creature);
+}
+
+/*######
+## npc_guardian
+######*/
+
+#define SPELL_DEATHTOUCH 5
+#define SAY_AGGRO "This area is closed!"
+
+struct TRINITY_DLL_DECL npc_guardianAI : public ScriptedAI
+{
+ npc_guardianAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ void Reset()
+ {
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ }
+
+ void Aggro(Unit *who)
+ {
+ DoYell(SAY_AGGRO,LANG_UNIVERSAL,NULL);
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
+ return;
+
+ if (m_creature->isAttackReady())
+ {
+ m_creature->CastSpell(m_creature->getVictim(),SPELL_DEATHTOUCH, true);
+ m_creature->resetAttackTimer();
+ }
+ }
+};
+
+CreatureAI* GetAI_npc_guardian(Creature *_Creature)
+{
+ return new npc_guardianAI (_Creature);
+}
+
+/*######
+## npc_mount_vendor
+######*/
+
+bool GossipHello_npc_mount_vendor(Player *player, Creature *_Creature)
+{
+ if (_Creature->isQuestGiver())
+ player->PrepareQuestMenu( _Creature->GetGUID() );
+
+ bool canBuy;
+ canBuy = false;
+ uint32 vendor = _Creature->GetEntry();
+ uint8 race = player->getRace();
+
+ switch (vendor)
+ {
+ case 384: //Katie Hunter
+ case 1460: //Unger Statforth
+ case 2357: //Merideth Carlson
+ case 4885: //Gregor MacVince
+ if (player->GetReputationRank(72) != REP_EXALTED && race != RACE_HUMAN)
+ player->SEND_GOSSIP_MENU(5855, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 1261: //Veron Amberstill
+ if (player->GetReputationRank(47) != REP_EXALTED && race != RACE_DWARF)
+ player->SEND_GOSSIP_MENU(5856, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 3362: //Ogunaro Wolfrunner
+ if (player->GetReputationRank(76) != REP_EXALTED && race != RACE_ORC)
+ player->SEND_GOSSIP_MENU(5841, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 3685: //Harb Clawhoof
+ if (player->GetReputationRank(81) != REP_EXALTED && race != RACE_TAUREN)
+ player->SEND_GOSSIP_MENU(5843, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 4730: //Lelanai
+ if (player->GetReputationRank(69) != REP_EXALTED && race != RACE_NIGHTELF)
+ player->SEND_GOSSIP_MENU(5844, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 4731: //Zachariah Post
+ if (player->GetReputationRank(68) != REP_EXALTED && race != RACE_UNDEAD_PLAYER)
+ player->SEND_GOSSIP_MENU(5840, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 7952: //Zjolnir
+ if (player->GetReputationRank(530) != REP_EXALTED && race != RACE_TROLL)
+ player->SEND_GOSSIP_MENU(5842, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 7955: //Milli Featherwhistle
+ if (player->GetReputationRank(54) != REP_EXALTED && race != RACE_GNOME)
+ player->SEND_GOSSIP_MENU(5857, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 16264: //Winaestra
+ if (player->GetReputationRank(911) != REP_EXALTED && race != RACE_BLOODELF)
+ player->SEND_GOSSIP_MENU(10305, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ case 17584: //Torallius the Pack Handler
+ if (player->GetReputationRank(930) != REP_EXALTED && race != RACE_DRAENEI)
+ player->SEND_GOSSIP_MENU(10239, _Creature->GetGUID());
+ else canBuy = true;
+ break;
+ }
+
+ if (canBuy)
+ {
+ if (_Creature->isVendor())
+ player->ADD_GOSSIP_ITEM( 1, GOSSIP_TEXT_BROWSE_GOODS, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRADE);
+ player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID());
+ }
+ return true;
+}
+
+bool GossipSelect_npc_mount_vendor(Player *player, Creature *_Creature, uint32 sender, uint32 action)
+{
+ if (action == GOSSIP_ACTION_TRADE)
+ player->SEND_VENDORLIST( _Creature->GetGUID() );
+
+ return true;
+}
+
+/*######
+## npc_rogue_trainer
+######*/
+
+bool GossipHello_npc_rogue_trainer(Player *player, Creature *_Creature)
+{
+ if( _Creature->isQuestGiver() )
+ player->PrepareQuestMenu( _Creature->GetGUID() );
+
+ if( _Creature->isTrainer() )
+ player->ADD_GOSSIP_ITEM(2, GOSSIP_TEXT_TRAIN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_TRAIN);
+
+ if( _Creature->isCanTrainingAndResetTalentsOf(player) )
+ player->ADD_GOSSIP_ITEM(2, "I wish to unlearn my talents", GOSSIP_SENDER_MAIN, GOSSIP_OPTION_UNLEARNTALENTS);
+
+ if( player->getClass() == CLASS_ROGUE && player->getLevel() >= 24 && !player->HasItemCount(17126,1) && !player->GetQuestRewardStatus(6681) )
+ {
+ player->ADD_GOSSIP_ITEM(0, "<Take the letter>", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ player->SEND_GOSSIP_MENU(5996, _Creature->GetGUID());
+ } else
+ player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID());
+
+ return true;
+}
+
+bool GossipSelect_npc_rogue_trainer(Player *player, Creature *_Creature, uint32 sender, uint32 action)
+{
+ switch( action )
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ player->CLOSE_GOSSIP_MENU();
+ player->CastSpell(player,21100,false);
+ break;
+ case GOSSIP_ACTION_TRAIN:
+ player->SEND_TRAINERLIST( _Creature->GetGUID() );
+ break;
+ case GOSSIP_OPTION_UNLEARNTALENTS:
+ player->CLOSE_GOSSIP_MENU();
+ player->SendTalentWipeConfirm( _Creature->GetGUID() );
+ break;
+ }
+ return true;
+}
+
+/*######
+## npc_sayge
+######*/
+
+#define SPELL_DMG 23768 //dmg
+#define SPELL_RES 23769 //res
+#define SPELL_ARM 23767 //arm
+#define SPELL_SPI 23738 //spi
+#define SPELL_INT 23766 //int
+#define SPELL_STM 23737 //stm
+#define SPELL_STR 23735 //str
+#define SPELL_AGI 23736 //agi
+#define SPELL_FORTUNE 23765 //faire fortune
+
+bool GossipHello_npc_sayge(Player *player, Creature *_Creature)
+{
+ if(_Creature->isQuestGiver())
+ player->PrepareQuestMenu( _Creature->GetGUID() );
+
+ if( player->HasSpellCooldown(SPELL_INT) ||
+ player->HasSpellCooldown(SPELL_ARM) ||
+ player->HasSpellCooldown(SPELL_DMG) ||
+ player->HasSpellCooldown(SPELL_RES) ||
+ player->HasSpellCooldown(SPELL_STR) ||
+ player->HasSpellCooldown(SPELL_AGI) ||
+ player->HasSpellCooldown(SPELL_STM) ||
+ player->HasSpellCooldown(SPELL_SPI) )
+ player->SEND_GOSSIP_MENU(7393, _Creature->GetGUID());
+ else
+ {
+ player->ADD_GOSSIP_ITEM(0, "Yes", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
+ player->SEND_GOSSIP_MENU(7339, _Creature->GetGUID());
+ }
+
+ return true;
+}
+
+void SendAction_npc_sayge(Player *player, Creature *_Creature, uint32 action)
+{
+ switch(action)
+ {
+ case GOSSIP_ACTION_INFO_DEF+1:
+ player->ADD_GOSSIP_ITEM(0, "Slay the Man", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
+ player->ADD_GOSSIP_ITEM(0, "Turn him over to liege", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
+ player->ADD_GOSSIP_ITEM(0, "Confiscate the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
+ player->ADD_GOSSIP_ITEM(0, "Let him go and have the corn", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
+ player->SEND_GOSSIP_MENU(7340, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+2:
+ player->ADD_GOSSIP_ITEM(0, "Execute your friend painfully", GOSSIP_SENDER_MAIN+1, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Execute your friend painlessly", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Let your friend go", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7341, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+3:
+ player->ADD_GOSSIP_ITEM(0, "Confront the diplomat", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Show not so quiet defiance", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Remain quiet", GOSSIP_SENDER_MAIN+2, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7361, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+4:
+ player->ADD_GOSSIP_ITEM(0, "Speak against your brother openly", GOSSIP_SENDER_MAIN+6, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Help your brother in", GOSSIP_SENDER_MAIN+7, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Keep your brother out without letting him know", GOSSIP_SENDER_MAIN+8, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7362, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+5:
+ player->ADD_GOSSIP_ITEM(0, "Take credit, keep gold", GOSSIP_SENDER_MAIN+5, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Take credit, share the gold", GOSSIP_SENDER_MAIN+4, GOSSIP_ACTION_INFO_DEF);
+ player->ADD_GOSSIP_ITEM(0, "Let the knight take credit", GOSSIP_SENDER_MAIN+3, GOSSIP_ACTION_INFO_DEF);
+ player->SEND_GOSSIP_MENU(7363, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF:
+ player->ADD_GOSSIP_ITEM(0, "Thanks", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
+ player->SEND_GOSSIP_MENU(7364, _Creature->GetGUID());
+ break;
+ case GOSSIP_ACTION_INFO_DEF+6:
+ _Creature->CastSpell(player, SPELL_FORTUNE, false);
+ player->SEND_GOSSIP_MENU(7365, _Creature->GetGUID());
+ break;
+ }
+}
+
+bool GossipSelect_npc_sayge(Player *player, Creature *_Creature, uint32 sender, uint32 action )
+{
+ switch(sender)
+ {
+ case GOSSIP_SENDER_MAIN:
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+1:
+ _Creature->CastSpell(player, SPELL_DMG, false);
+ player->AddSpellCooldown(SPELL_DMG,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+2:
+ _Creature->CastSpell(player, SPELL_RES, false);
+ player->AddSpellCooldown(SPELL_RES,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+3:
+ _Creature->CastSpell(player, SPELL_ARM, false);
+ player->AddSpellCooldown(SPELL_ARM,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+4:
+ _Creature->CastSpell(player, SPELL_SPI, false);
+ player->AddSpellCooldown(SPELL_SPI,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+5:
+ _Creature->CastSpell(player, SPELL_INT, false);
+ player->AddSpellCooldown(SPELL_INT,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+6:
+ _Creature->CastSpell(player, SPELL_STM, false);
+ player->AddSpellCooldown(SPELL_STM,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+7:
+ _Creature->CastSpell(player, SPELL_STR, false);
+ player->AddSpellCooldown(SPELL_STR,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ case GOSSIP_SENDER_MAIN+8:
+ _Creature->CastSpell(player, SPELL_AGI, false);
+ player->AddSpellCooldown(SPELL_AGI,0,time(NULL) + 7200);
+ SendAction_npc_sayge(player, _Creature, action);
+ break;
+ }
+ return true;
+}
+
+struct TRINITY_DLL_DECL npc_steam_tonkAI : public ScriptedAI
+{
+ npc_steam_tonkAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ void Reset() {}
+ void Aggro(Unit *who) {}
+
+ void OnPossess(bool apply)
+ {
+ if (apply)
+ {
+ // Initialize the action bar without the melee attack command
+ m_creature->InitCharmInfo(m_creature);
+ m_creature->GetCharmInfo()->InitEmptyActionBar(false);
+ }
+ }
+
+};
+
+CreatureAI* GetAI_npc_steam_tonk(Creature *_Creature)
+{
+ return new npc_steam_tonkAI(_Creature);
+}
+
+#define SPELL_TONK_MINE_DETONATE 25099
+
+struct TRINITY_DLL_DECL npc_tonk_mineAI : public ScriptedAI
+{
+ npc_tonk_mineAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ uint32 ExplosionTimer;
+
+ void Reset()
+ {
+ ExplosionTimer = 3000;
+ }
+
+ void Aggro(Unit *who) {}
+ void AttackStart(Unit *who) {}
+ void MoveInLineOfSight(Unit *who) {}
+
+ void UpdateAI(const uint32 diff)
+ {
+ if (ExplosionTimer < diff)
+ {
+ m_creature->CastSpell(m_creature, SPELL_TONK_MINE_DETONATE, true);
+ m_creature->setDeathState(DEAD); // unsummon it
+ } else
+ ExplosionTimer -= diff;
+ }
+};
+
+CreatureAI* GetAI_npc_tonk_mine(Creature *_Creature)
+{
+ return new npc_tonk_mineAI(_Creature);
+}
+
+void AddSC_npcs_special()
+{
+ Script *newscript;
+
+ newscript = new Script;
+ newscript->Name="npc_chicken_cluck";
+ newscript->GetAI = GetAI_npc_chicken_cluck;
+ newscript->pReceiveEmote = &ReceiveEmote_npc_chicken_cluck;
+ newscript->pQuestAccept = &QuestAccept_npc_chicken_cluck;
+ newscript->pQuestComplete = &QuestComplete_npc_chicken_cluck;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_dancing_flames";
+ newscript->pReceiveEmote = &ReceiveEmote_npc_dancing_flames;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_injured_patient";
+ newscript->GetAI = GetAI_npc_injured_patient;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_doctor";
+ newscript->GetAI = GetAI_npc_doctor;
+ newscript->pQuestAccept = &QuestAccept_npc_doctor;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_guardian";
+ newscript->GetAI = GetAI_npc_guardian;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_mount_vendor";
+ newscript->pGossipHello = &GossipHello_npc_mount_vendor;
+ newscript->pGossipSelect = &GossipSelect_npc_mount_vendor;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_rogue_trainer";
+ newscript->pGossipHello = &GossipHello_npc_rogue_trainer;
+ newscript->pGossipSelect = &GossipSelect_npc_rogue_trainer;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_sayge";
+ newscript->pGossipHello = &GossipHello_npc_sayge;
+ newscript->pGossipSelect = &GossipSelect_npc_sayge;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_steam_tonk";
+ newscript->GetAI = &GetAI_npc_steam_tonk;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="npc_tonk_mine";
+ newscript->GetAI = &GetAI_npc_tonk_mine;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp
index 98597afae3a..bb43a989a6b 100644
--- a/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/alterac_mountains/alterac_mountains.cpp
@@ -58,5 +58,5 @@ void AddSC_alterac_mountains()
newscript = new Script;
newscript->Name="npc_ravenholdt";
newscript->GetAI = GetAI_npc_ravenholdt;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp
index 055e0cbdbb9..810486aede7 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp
@@ -348,15 +348,15 @@ void AddSC_boss_exarch_maladaar()
newscript = new Script;
newscript->Name="boss_exarch_maladaar";
newscript->GetAI = GetAI_boss_exarch_maladaar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_avatar_of_martyred";
newscript->GetAI = GetAI_mob_avatar_of_martyred;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_stolen_soul";
newscript->GetAI = GetAI_mob_stolen_soul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp
index 3db39e4f477..a9589736784 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp
@@ -271,10 +271,10 @@ void AddSC_boss_nexusprince_shaffar()
newscript = new Script;
newscript->Name="boss_nexusprince_shaffar";
newscript->GetAI = GetAI_boss_nexusprince_shaffar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_ethereal_beacon";
newscript->GetAI = GetAI_mob_ethereal_beacon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp
index d4c950c754b..3542c3e484a 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp
@@ -134,5 +134,5 @@ void AddSC_boss_pandemonius()
newscript = new Script;
newscript->Name="boss_pandemonius";
newscript->GetAI = GetAI_boss_pandemonius;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp
index 1b77d81a908..0581e9ac3af 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp
@@ -392,25 +392,25 @@ void AddSC_boss_darkweaver_syth()
newscript = new Script;
newscript->Name="boss_darkweaver_syth";
newscript->GetAI = GetAI_boss_darkweaver_syth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_syth_fire";
newscript->GetAI = GetAI_mob_syth_arcane;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_syth_arcane";
newscript->GetAI = GetAI_mob_syth_arcane;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_syth_frost";
newscript->GetAI = GetAI_mob_syth_frost;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_syth_shadow";
newscript->GetAI = GetAI_mob_syth_shadow;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp
index ab9cd0f083b..be69ee79844 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp
@@ -219,5 +219,5 @@ void AddSC_boss_talon_king_ikiss()
newscript = new Script;
newscript->Name="boss_talon_king_ikiss";
newscript->GetAI = GetAI_boss_talon_king_ikiss;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp
index b49d18445c2..4ae6ad5c7a4 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp
@@ -70,5 +70,5 @@ void AddSC_instance_sethekk_halls()
newscript = new Script;
newscript->Name = "instance_sethekk_halls";
newscript->GetInstanceData = GetInstanceData_instance_sethekk_halls;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp
index e565becfaba..20bf7c2d95e 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp
@@ -194,5 +194,5 @@ void AddSC_boss_ambassador_hellmaw()
newscript = new Script;
newscript->Name="boss_ambassador_hellmaw";
newscript->GetAI = GetAI_boss_ambassador_hellmaw;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp
index ed2784471b3..8dd0a5f7060 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp
@@ -173,5 +173,5 @@ void AddSC_boss_blackheart_the_inciter()
newscript = new Script;
newscript->Name="boss_blackheart_the_inciter";
newscript->GetAI = GetAI_boss_blackheart_the_inciter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
index 16bd012e576..ed7108ad3e7 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp
@@ -220,18 +220,7 @@ struct TRINITY_DLL_DECL boss_grandmaster_vorpilAI : public ScriptedAI
if ( DrawnShadows_Timer < diff)
{
- Map *map = m_creature->GetMap();
- if(map->IsDungeon())
- {
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if((*i)->isAlive())
- {
- (*i)->TeleportTo(555,VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0);
- }
- }
- }
+ DoTeleportAll(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0);
m_creature->Relocate(VorpilPosition[0][0],VorpilPosition[0][1],VorpilPosition[0][2],0);
DoCast(m_creature,SPELL_DRAWN_SHADOWS,true);
@@ -374,10 +363,10 @@ void AddSC_boss_grandmaster_vorpil()
newscript = new Script;
newscript->Name="boss_grandmaster_vorpil";
newscript->GetAI = GetAI_boss_grandmaster_vorpil;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_voidtraveler";
newscript->GetAI = GetAI_mob_voidtraveler;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp
index 5b223b8d5ad..a5c387dc317 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp
@@ -148,5 +148,5 @@ void AddSC_boss_murmur()
newscript = new Script;
newscript->Name="boss_murmur";
newscript->GetAI = GetAI_boss_murmur;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp
index 1d482754cbc..ff5afc179e2 100644
--- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp
+++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp
@@ -174,5 +174,5 @@ void AddSC_instance_shadow_labyrinth()
newscript = new Script;
newscript->Name = "instance_shadow_labyrinth";
newscript->GetInstanceData = GetInstanceData_instance_shadow_labyrinth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp
index 92c522fba60..5a62f5ee6c5 100644
--- a/src/bindings/scripts/scripts/zone/azshara/azshara.cpp
+++ b/src/bindings/scripts/scripts/zone/azshara/azshara.cpp
@@ -492,23 +492,23 @@ void AddSC_azshara()
newscript = new Script;
newscript->Name="mobs_spitelashes";
newscript->GetAI = GetAI_mobs_spitelashes;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_loramus_thalipedes";
newscript->pGossipHello = &GossipHello_npc_loramus_thalipedes;
newscript->pGossipSelect = &GossipSelect_npc_loramus_thalipedes;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_rizzle_sprysprocket";
newscript->GetAI = GetAI_mob_rizzle_sprysprocket;
newscript->pGossipHello = &GossipHello_mob_rizzle_sprysprocket;
newscript->pGossipSelect = &GossipSelect_mob_rizzle_sprysprocket;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_depth_charge";
newscript->GetAI = GetAI_mob_depth_charge;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp b/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp
index 2908dc04285..f688892d709 100644
--- a/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp
+++ b/src/bindings/scripts/scripts/zone/azshara/boss_azuregos.cpp
@@ -149,5 +149,5 @@ void AddSC_boss_azuregos()
newscript = new Script;
newscript->Name="boss_azuregos";
newscript->GetAI = GetAI_boss_azuregos;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp
index 43209b64ba8..03e26504228 100644
--- a/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp
+++ b/src/bindings/scripts/scripts/zone/azuremyst_isle/azuremyst_isle.cpp
@@ -350,23 +350,23 @@ void AddSC_azuremyst_isle()
newscript = new Script;
newscript->Name="npc_draenei_survivor";
newscript->GetAI = GetAI_npc_draenei_survivor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_engineer_spark_overgrind";
newscript->GetAI = GetAI_npc_engineer_spark_overgrind;
newscript->pGossipHello = &GossipHello_npc_engineer_spark_overgrind;
newscript->pGossipSelect = &GossipSelect_npc_engineer_spark_overgrind;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_injured_draenei";
newscript->GetAI = GetAI_npc_injured_draenei;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_susurrus";
newscript->pGossipHello = &GossipHello_npc_susurrus;
newscript->pGossipSelect = &GossipSelect_npc_susurrus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp
index 788f4e2b8ce..468efc4d6a3 100644
--- a/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp
+++ b/src/bindings/scripts/scripts/zone/barrens/the_barrens.cpp
@@ -369,22 +369,22 @@ void AddSC_the_barrens()
newscript->Name="npc_beaten_corpse";
newscript->pGossipHello = &GossipHello_npc_beaten_corpse;
newscript->pGossipSelect = &GossipSelect_npc_beaten_corpse;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_sputtervalve";
newscript->pGossipHello = &GossipHello_npc_sputtervalve;
newscript->pGossipSelect = &GossipSelect_npc_sputtervalve;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_taskmaster_fizzule";
newscript->GetAI = GetAI_npc_taskmaster_fizzule;
newscript->pReceiveEmote = &ReciveEmote_npc_taskmaster_fizzule;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_twiggy_flathead";
newscript->GetAI = GetAI_npc_twiggy_flathead;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp
index 757f6acef06..68b581bae1c 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/black_temple.cpp
@@ -64,5 +64,5 @@ void AddSC_black_temple()
newscript->Name = "npc_spirit_of_olum";
newscript->pGossipHello = GossipHello_npc_spirit_of_olum;
newscript->pGossipSelect = GossipSelect_npc_spirit_of_olum;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
index 44bf36cad93..3f56e3cd59b 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_bloodboil.cpp
@@ -361,5 +361,5 @@ void AddSC_boss_gurtogg_bloodboil()
newscript = new Script;
newscript->Name="boss_gurtogg_bloodboil";
newscript->GetAI = GetAI_boss_gurtogg_bloodboil;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
index ce03d8eac3a..c7f2ec460d9 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_illidan.cpp
@@ -2247,52 +2247,52 @@ void AddSC_boss_illidan()
newscript = new Script;
newscript->Name = "boss_illidan_stormrage";
newscript->GetAI = GetAI_boss_illidan_stormrage;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_akama_illidan";
newscript->GetAI = GetAI_npc_akama_at_illidan;
newscript->pGossipHello = GossipHello_npc_akama_at_illidan;
newscript->pGossipSelect = GossipSelect_npc_akama_at_illidan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "boss_maiev_shadowsong";
newscript->GetAI = GetAI_boss_maiev;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_flame_of_azzinoth";
newscript->GetAI = GetAI_mob_flame_of_azzinoth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_blade_of_azzinoth";
newscript->GetAI = GetAI_blade_of_azzinoth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "gameobject_cage_trap";
newscript->pGOHello = GOHello_cage_trap;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_cage_trap_trigger";
newscript->GetAI = &GetAI_cage_trap_trigger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_shadow_demon";
newscript->GetAI = GetAI_shadow_demon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_demon_fire";
newscript->GetAI = GetAI_demonfire;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_parasitic_shadowfiend";
newscript->GetAI = GetAI_parasitic_shadowfiend;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp
index 0f5d2af3c22..ee8a2c8348e 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_mother_shahraz.cpp
@@ -357,5 +357,5 @@ void AddSC_boss_mother_shahraz()
newscript = new Script;
newscript->Name="boss_mother_shahraz";
newscript->GetAI = GetAI_boss_shahraz;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp
index 3d6233ca3f7..8c5bdbc4a4a 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_reliquary_of_souls.cpp
@@ -723,25 +723,25 @@ void AddSC_boss_reliquary_of_souls()
newscript = new Script;
newscript->Name="boss_reliquary_of_souls";
newscript->GetAI = GetAI_boss_reliquary_of_souls;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_essence_of_suffering";
newscript->GetAI = GetAI_boss_essence_of_suffering;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_essence_of_desire";
newscript->GetAI = GetAI_boss_essence_of_desire;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_essence_of_anger";
newscript->GetAI = GetAI_boss_essence_of_anger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_enslaved_soul";
newscript->GetAI = GetAI_npc_enslaved_soul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp
index 9c1d50950dc..3cd73df1bc7 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_shade_of_akama.cpp
@@ -796,22 +796,22 @@ void AddSC_boss_shade_of_akama()
newscript = new Script;
newscript->Name="boss_shade_of_akama";
newscript->GetAI = GetAI_boss_shade_of_akama;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_ashtongue_channeler";
newscript->GetAI = GetAI_mob_ashtongue_channeler;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_ashtongue_sorcerer";
newscript->GetAI = GetAI_mob_ashtongue_sorcerer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_akama_shade";
newscript->GetAI = GetAI_npc_akama_shade;
newscript->pGossipHello = &GossipHello_npc_akama;
newscript->pGossipSelect = &GossipSelect_npc_akama;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp
index d6b2e08fac0..640977d0eb9 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_supremus.cpp
@@ -236,10 +236,10 @@ void AddSC_boss_supremus()
newscript = new Script;
newscript->Name="boss_supremus";
newscript->GetAI = GetAI_boss_supremus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="molten_flame";
newscript->GetAI = GetAI_molten_flame;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
index e2ab402c7ff..97fcde9265f 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_teron_gorefiend.cpp
@@ -575,15 +575,15 @@ void AddSC_boss_teron_gorefiend()
newscript = new Script;
newscript->Name = "mob_doom_blossom";
newscript->GetAI = GetAI_mob_doom_blossom;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_shadowy_construct";
newscript->GetAI = GetAI_mob_shadowy_construct;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_teron_gorefiend";
newscript->GetAI = GetAI_boss_teron_gorefiend;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
index f49c2ef17c7..f2fe6f64f2f 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
@@ -258,10 +258,10 @@ void AddSC_boss_najentus()
newscript = new Script;
newscript->Name="boss_najentus";
newscript->GetAI = GetAI_boss_najentus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "go_najentus_spine";
newscript->pGOHello = &GOHello_go_najentus_spine;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp
index 6e5cabc034c..42197029a89 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/illidari_council.cpp
@@ -855,30 +855,30 @@ void AddSC_boss_illidari_council()
newscript = new Script;
newscript->Name="mob_illidari_council";
newscript->GetAI = GetAI_mob_illidari_council;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_blood_elf_council_voice_trigger";
newscript->GetAI = GetAI_mob_blood_elf_council_voice_trigger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_gathios_the_shatterer";
newscript->GetAI = GetAI_boss_gathios_the_shatterer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lady_malande";
newscript->GetAI = GetAI_boss_lady_malande;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_veras_darkshadow";
newscript->GetAI = GetAI_boss_veras_darkshadow;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_high_nethermancer_zerevor";
newscript->GetAI = GetAI_boss_high_nethermancer_zerevor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp
index cfeb700282b..0ff92762389 100644
--- a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp
+++ b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp
@@ -332,5 +332,5 @@ void AddSC_instance_black_temple()
newscript = new Script;
newscript->Name = "instance_black_temple";
newscript->GetInstanceData = GetInstanceData_instance_black_temple;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp
index 95a920d39a3..c6e1cbcafe9 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp
@@ -221,17 +221,17 @@ void AddSC_blackrock_depths()
newscript = new Script;
newscript->Name="phalanx";
newscript->GetAI = GetAI_mob_phalanx;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_kharan_mighthammer";
newscript->pGossipHello = &GossipHello_npc_kharan_mighthammer;
newscript->pGossipSelect = &GossipSelect_npc_kharan_mighthammer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_lokhtos_darkbargainer";
newscript->pGossipHello = &GossipHello_npc_lokhtos_darkbargainer;
newscript->pGossipSelect = &GossipSelect_npc_lokhtos_darkbargainer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp
index b63691a3b6e..2bb2a2ae004 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp
@@ -102,5 +102,5 @@ void AddSC_boss_ambassador_flamelash()
newscript = new Script;
newscript->Name="boss_ambassador_flamelash";
newscript->GetAI = GetAI_boss_ambassador_flamelash;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp
index 13b9f31e734..cbf895cc3e4 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_angerrel.cpp
@@ -87,5 +87,5 @@ void AddSC_boss_angerrel()
newscript = new Script;
newscript->Name="boss_angerrel";
newscript->GetAI = GetAI_boss_angerrel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp
index 50cf2af8169..091863de655 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_anubshiah.cpp
@@ -111,5 +111,5 @@ void AddSC_boss_anubshiah()
newscript = new Script;
newscript->Name="boss_anubshiah";
newscript->GetAI = GetAI_boss_anubshiah;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp
index b58ebc7b97a..867afe417cd 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doomrel.cpp
@@ -135,5 +135,5 @@ void AddSC_boss_doomrel()
newscript = new Script;
newscript->Name="boss_doomrel";
newscript->GetAI = GetAI_boss_doomrel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp
index f9da16dd2fd..3c394476106 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_doperel.cpp
@@ -87,5 +87,5 @@ void AddSC_boss_doperel()
newscript = new Script;
newscript->Name="boss_doperel";
newscript->GetAI = GetAI_boss_doperel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp
index e8b1fb791ee..d463ed7f38f 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp
@@ -100,5 +100,5 @@ void AddSC_boss_draganthaurissan()
newscript = new Script;
newscript->Name="boss_emperor_dagran_thaurissan";
newscript->GetAI = GetAI_boss_draganthaurissan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp
index 0760bc65733..7e3b8d9fba7 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_general_angerforge.cpp
@@ -163,5 +163,5 @@ void AddSC_boss_general_angerforge()
newscript = new Script;
newscript->Name="boss_general_angerforge";
newscript->GetAI = GetAI_boss_general_angerforge;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp
index 30caa104b31..966fe4b8c22 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gloomrel.cpp
@@ -138,5 +138,5 @@ void AddSC_boss_gloomrel()
newscript->GetAI = GetAI_boss_gloomrel;
newscript->pGossipHello = &GossipHello_boss_gloomrel;
newscript->pGossipSelect = &GossipSelect_boss_gloomrel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp
index 91770069779..f2b617b73f0 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp
@@ -77,5 +77,5 @@ void AddSC_boss_gorosh_the_dervish()
newscript = new Script;
newscript->Name="boss_gorosh_the_dervish";
newscript->GetAI = GetAI_boss_gorosh_the_dervish;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp
index 7e489cca5a7..5005bb3935a 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_grizzle.cpp
@@ -82,5 +82,5 @@ void AddSC_boss_grizzle()
newscript = new Script;
newscript->Name="boss_grizzle";
newscript->GetAI = GetAI_boss_grizzle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp
index 778c68f73d3..53a94865002 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_haterel.cpp
@@ -101,5 +101,5 @@ void AddSC_boss_haterel()
newscript = new Script;
newscript->Name="boss_haterel";
newscript->GetAI = GetAI_boss_haterel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp
index 8ee1a00c85b..43aa38ba4d4 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp
@@ -101,5 +101,5 @@ void AddSC_boss_high_interrogator_gerstahn()
newscript = new Script;
newscript->Name="boss_high_interrogator_gerstahn";
newscript->GetAI = GetAI_boss_high_interrogator_gerstahn;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp
index 0d163d31775..7703d6b2b31 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_magmus.cpp
@@ -80,5 +80,5 @@ void AddSC_boss_magmus()
newscript = new Script;
newscript->Name="boss_magmus";
newscript->GetAI = GetAI_boss_magmus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp
index 208353e66f3..68923722380 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp
@@ -95,5 +95,5 @@ void AddSC_boss_moira_bronzebeard()
newscript = new Script;
newscript->Name="boss_moira_bronzebeard";
newscript->GetAI = GetAI_boss_moira_bronzebeard;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp
index 93f3c124f29..e8753971898 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_seethrel.cpp
@@ -111,5 +111,5 @@ void AddSC_boss_seethrel()
newscript = new Script;
newscript->Name="boss_seethrel";
newscript->GetAI = GetAI_boss_seethrel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp
index 0ecf70148fe..db1b0923f4c 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_vilerel.cpp
@@ -97,5 +97,5 @@ void AddSC_boss_vilerel()
newscript = new Script;
newscript->Name="boss_vilerel";
newscript->GetAI = GetAI_boss_vilerel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp
index c26ba2ed6b9..56f4b3f385f 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_drakkisath.cpp
@@ -97,5 +97,5 @@ void AddSC_boss_drakkisath()
newscript = new Script;
newscript->Name="boss_drakkisath";
newscript->GetAI = GetAI_boss_drakkisath;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp
index 68107e820bf..d6089c269e7 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_gyth.cpp
@@ -201,5 +201,5 @@ void AddSC_boss_gyth()
newscript = new Script;
newscript->Name="boss_gyth";
newscript->GetAI = GetAI_boss_gyth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp
index 0b2c09acccf..e0c5d69d631 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_halycon.cpp
@@ -91,5 +91,5 @@ void AddSC_boss_halycon()
newscript = new Script;
newscript->Name="boss_halycon";
newscript->GetAI = GetAI_boss_halycon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp
index afaedcc4ad8..0ee0a9df7f8 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_highlord_omokk.cpp
@@ -127,5 +127,5 @@ void AddSC_boss_highlordomokk()
newscript = new Script;
newscript->Name="boss_highlord_omokk";
newscript->GetAI = GetAI_boss_highlordomokk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp
index 8c1d3096597..c9686346057 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp
@@ -82,5 +82,5 @@ void AddSC_boss_mothersmolderweb()
newscript = new Script;
newscript->Name="boss_mother_smolderweb";
newscript->GetAI = GetAI_boss_mothersmolderweb;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp
index 5ab5847e38a..5852a12302e 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp
@@ -123,5 +123,5 @@ void AddSC_boss_overlordwyrmthalak()
newscript = new Script;
newscript->Name="boss_overlord_wyrmthalak";
newscript->GetAI = GetAI_boss_overlordwyrmthalak;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp
index f7705c647af..cbabb24d752 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp
@@ -89,5 +89,5 @@ void AddSC_boss_pyroguard_emberseer()
newscript = new Script;
newscript->Name="boss_pyroguard_emberseer";
newscript->GetAI = GetAI_boss_pyroguard_emberseer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp
index 7c0901e1f40..82561cb954f 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp
@@ -81,5 +81,5 @@ void AddSC_boss_quatermasterzigris()
newscript = new Script;
newscript->Name="quartermaster_zigris";
newscript->GetAI = GetAI_boss_quatermasterzigris;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp
index 7ca84b3c429..b80a941ad17 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_rend_blackhand.cpp
@@ -87,5 +87,5 @@ void AddSC_boss_rend_blackhand()
newscript = new Script;
newscript->Name="boss_rend_blackhand";
newscript->GetAI = GetAI_boss_rend_blackhand;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp
index 17c73e43c82..83a324a2c38 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp
@@ -91,5 +91,5 @@ void AddSC_boss_shadowvosh()
newscript = new Script;
newscript->Name="boss_shadow_hunter_voshgajin";
newscript->GetAI = GetAI_boss_shadowvosh;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp
index d7e403d0e72..586addd9d76 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_the_beast.cpp
@@ -89,5 +89,5 @@ void AddSC_boss_thebeast()
newscript = new Script;
newscript->Name="boss_the_beast";
newscript->GetAI = GetAI_boss_thebeast;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp
index 7377b46526f..bcc1469ccd9 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_spire/boss_warmaster_voone.cpp
@@ -117,5 +117,5 @@ void AddSC_boss_warmastervoone()
newscript = new Script;
newscript->Name="boss_warmaster_voone";
newscript->GetAI = GetAI_boss_warmastervoone;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp
index 0e40276903a..2c69e8ff599 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp
@@ -124,5 +124,5 @@ void AddSC_boss_broodlord()
newscript = new Script;
newscript->Name="boss_broodlord";
newscript->GetAI = GetAI_boss_broodlord;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp
index ea683bd1a13..920a50d4e49 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_chromaggus.cpp
@@ -310,5 +310,5 @@ void AddSC_boss_chromaggus()
newscript = new Script;
newscript->Name="boss_chromaggus";
newscript->GetAI = GetAI_boss_chromaggus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp
index 703dec09536..0dd8095a94b 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_ebonroc.cpp
@@ -99,5 +99,5 @@ void AddSC_boss_ebonroc()
newscript = new Script;
newscript->Name="boss_ebonroc";
newscript->GetAI = GetAI_boss_ebonroc;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp
index 05a3e36948b..c1915d45a15 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_firemaw.cpp
@@ -90,5 +90,5 @@ void AddSC_boss_firemaw()
newscript = new Script;
newscript->Name="boss_firemaw";
newscript->GetAI = GetAI_boss_firemaw;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp
index fa34406b1fe..fbc8f4fa51a 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_flamegor.cpp
@@ -90,5 +90,5 @@ void AddSC_boss_flamegor()
newscript = new Script;
newscript->Name="boss_flamegor";
newscript->GetAI = GetAI_boss_flamegor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp
index b819fde0bd5..741e61ba4de 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_nefarian.cpp
@@ -223,5 +223,5 @@ void AddSC_boss_nefarian()
newscript = new Script;
newscript->Name="boss_nefarian";
newscript->GetAI = GetAI_boss_nefarian;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp
index bf76a08897f..98615b47758 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_razorgore.cpp
@@ -127,5 +127,5 @@ void AddSC_boss_razorgore()
newscript = new Script;
newscript->Name="boss_razorgore";
newscript->GetAI = GetAI_boss_razorgore;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp
index 05e4b39af7d..a708a7de195 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_vaelastrasz.cpp
@@ -257,5 +257,5 @@ void AddSC_boss_vael()
newscript->GetAI = GetAI_boss_vael;
newscript->pGossipHello = &GossipHello_boss_vael;
newscript->pGossipSelect = &GossipSelect_boss_vael;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp
index c9e92c7b75f..70bb6c15113 100644
--- a/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp
+++ b/src/bindings/scripts/scripts/zone/blackwing_lair/boss_victor_nefarius.cpp
@@ -390,5 +390,5 @@ void AddSC_boss_victor_nefarius()
newscript->GetAI = GetAI_boss_victor_nefarius;
newscript->pGossipHello = &GossipHello_boss_victor_nefarius;
newscript->pGossipSelect = &GossipSelect_boss_victor_nefarius;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp
index 99dc4dbc82c..c47153aed7a 100644
--- a/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp
@@ -406,33 +406,33 @@ void AddSC_blades_edge_mountains()
newscript = new Script;
newscript->Name="mobs_bladespire_ogre";
newscript->GetAI = GetAI_mobs_bladespire_ogre;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mobs_nether_drake";
newscript->GetAI = GetAI_mobs_nether_drake;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_daranelle";
newscript->GetAI = GetAI_npc_daranelle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_overseer_nuaar";
newscript->pGossipHello = &GossipHello_npc_overseer_nuaar;
newscript->pGossipSelect = &GossipSelect_npc_overseer_nuaar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_saikkal_the_elder";
newscript->pGossipHello = &GossipHello_npc_saikkal_the_elder;
newscript->pGossipSelect = &GossipSelect_npc_saikkal_the_elder;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_skyguard_handler_irena";
newscript->pGossipHello = &GossipHello_npc_skyguard_handler_irena;
newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_irena;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp
index 9212f13946a..b47abcb4c15 100644
--- a/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp
+++ b/src/bindings/scripts/scripts/zone/blasted_lands/blasted_lands.cpp
@@ -149,11 +149,11 @@ void AddSC_blasted_lands()
newscript->Name="npc_deathly_usher";
newscript->pGossipHello = &GossipHello_npc_deathly_usher;
newscript->pGossipSelect = &GossipSelect_npc_deathly_usher;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_fallen_hero_of_horde";
newscript->pGossipHello = &GossipHello_npc_fallen_hero_of_horde;
newscript->pGossipSelect = &GossipSelect_npc_fallen_hero_of_horde;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp
index 9de7b6d6085..250c382f028 100644
--- a/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp
+++ b/src/bindings/scripts/scripts/zone/blasted_lands/boss_kruul.cpp
@@ -178,5 +178,5 @@ void AddSC_boss_kruul()
newscript = new Script;
newscript->Name="boss_kruul";
newscript->GetAI = GetAI_boss_kruul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp
index e52386fc020..3705d195ca3 100644
--- a/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp
+++ b/src/bindings/scripts/scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp
@@ -131,11 +131,11 @@ void AddSC_bloodmyst_isle()
newscript = new Script;
newscript->Name="mob_webbed_creature";
newscript->GetAI = GetAI_mob_webbed_creature;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_captured_sunhawk_agent";
newscript->pGossipHello = &GossipHello_npc_captured_sunhawk_agent;
newscript->pGossipSelect = &GossipSelect_npc_captured_sunhawk_agent;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp
index bd926a2e7cc..7f0c2f45118 100644
--- a/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp
+++ b/src/bindings/scripts/scripts/zone/burning_steppes/burning_steppes.cpp
@@ -147,5 +147,5 @@ void AddSC_burning_steppes()
newscript->GetAI = GetAI_npc_ragged_john;
newscript->pGossipHello = &GossipHello_npc_ragged_john;
newscript->pGossipSelect = &GossipSelect_npc_ragged_john;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp
index f6dd7a167ff..db167ff5ab9 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp
@@ -117,5 +117,5 @@ void AddSC_boss_aeonus()
newscript = new Script;
newscript->Name="boss_aeonus";
newscript->GetAI = GetAI_boss_aeonus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
index b6d00be0889..fcaade46067 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp
@@ -105,5 +105,5 @@ void AddSC_boss_chrono_lord_deja()
newscript = new Script;
newscript->Name="boss_chrono_lord_deja";
newscript->GetAI = GetAI_boss_chrono_lord_deja;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp
index a59ecc8e4b6..2dad8913576 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp
@@ -139,5 +139,5 @@ void AddSC_boss_temporus()
newscript = new Script;
newscript->Name="boss_temporus";
newscript->GetAI = GetAI_boss_temporus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
index 7e25c0c9b15..ab208aafba9 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp
@@ -769,20 +769,20 @@ void AddSC_boss_archimonde()
newscript = new Script;
newscript->Name="boss_archimonde";
newscript->GetAI = GetAI_boss_archimonde;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_doomfire";
newscript->GetAI = GetAI_mob_doomfire;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_doomfire_targetting";
newscript->GetAI = GetAI_mob_doomfire_targetting;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_ancient_wisp";
newscript->GetAI = GetAI_mob_ancient_wisp;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp
index 837f1f09872..51f147badc2 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal.cpp
@@ -200,18 +200,18 @@ void AddSC_hyjal()
newscript->GetAI = GetAI_npc_jaina_proudmoore;
newscript->pGossipHello = &GossipHello_npc_jaina_proudmoore;
newscript->pGossipSelect = &GossipSelect_npc_jaina_proudmoore;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_thrall";
newscript->GetAI = GetAI_npc_thrall;
newscript->pGossipHello = &GossipHello_npc_thrall;
newscript->pGossipSelect = &GossipSelect_npc_thrall;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_tyrande_whisperwind";
newscript->pGossipHello = &GossipHello_npc_tyrande_whisperwind;
newscript->pGossipSelect = &GossipSelect_npc_tyrande_whisperwind;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp
index a6f8e3a7305..3c3971d6036 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp
@@ -199,5 +199,5 @@ void AddSC_instance_mount_hyjal()
newscript = new Script;
newscript->Name = "instance_hyjal";
newscript->GetInstanceData = GetInstanceData_instance_mount_hyjal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp
index 19aff777b23..c43f5c2471c 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp
@@ -152,5 +152,5 @@ void AddSC_boss_captain_skarloc()
newscript = new Script;
newscript->Name="boss_captain_skarloc";
newscript->GetAI = GetAI_boss_captain_skarloc;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp
index 734ea93ffbe..510ef7a039f 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp
@@ -146,5 +146,5 @@ void AddSC_boss_epoch_hunter()
newscript = new Script;
newscript->Name="boss_epoch_hunter";
newscript->GetAI = GetAI_boss_epoch_hunter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp
index 6733e4b8d41..76d96775056 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp
@@ -194,10 +194,10 @@ void AddSC_boss_lieutenant_drake()
newscript = new Script;
newscript->Name="go_barrel_old_hillsbrad";
newscript->pGOHello = &GOHello_go_barrel_old_hillsbrad;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lieutenant_drake";
newscript->GetAI = GetAI_boss_lieutenant_drake;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
index a6e4b377358..38a20c8adaf 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp
@@ -174,5 +174,5 @@ void AddSC_instance_old_hillsbrad()
newscript = new Script;
newscript->Name = "instance_old_hillsbrad";
newscript->GetInstanceData = GetInstanceData_instance_old_hillsbrad;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
index 659636e1d35..596d327bc42 100644
--- a/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
+++ b/src/bindings/scripts/scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp
@@ -893,24 +893,24 @@ void AddSC_old_hillsbrad()
newscript->Name="npc_brazen";
newscript->pGossipHello = &GossipHello_npc_brazen;
newscript->pGossipSelect = &GossipSelect_npc_brazen;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_erozion";
newscript->pGossipHello = &GossipHello_npc_erozion;
newscript->pGossipSelect = &GossipSelect_npc_erozion;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_thrall_old_hillsbrad";
newscript->pGossipHello = &GossipHello_npc_thrall_old_hillsbrad;
newscript->pGossipSelect = &GossipSelect_npc_thrall_old_hillsbrad;
newscript->GetAI = GetAI_npc_thrall_old_hillsbrad;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_taretha";
newscript->pGossipHello = &GossipHello_npc_taretha;
newscript->pGossipSelect = &GossipSelect_npc_taretha;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp
index 9199bcadaf1..42a707ff930 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp
@@ -744,20 +744,20 @@ void AddSC_boss_fathomlord_karathress()
newscript = new Script;
newscript->Name="boss_fathomlord_karathress";
newscript->GetAI = GetAI_boss_fathomlord_karathress;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_fathomguard_sharkkis";
newscript->GetAI = GetAI_boss_fathomguard_sharkkis;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_fathomguard_tidalvess";
newscript->GetAI = GetAI_boss_fathomguard_tidalvess;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_fathomguard_caribdis";
newscript->GetAI = GetAI_boss_fathomguard_caribdis;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
index 13b8ebbf312..07adcf4b225 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp
@@ -382,5 +382,5 @@ void AddSC_boss_hydross_the_unstable()
newscript = new Script;
newscript->Name="boss_hydross_the_unstable";
newscript->GetAI = GetAI_boss_hydross_the_unstable;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
index 6adc833e8a8..232a828150c 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp
@@ -250,12 +250,12 @@ struct TRINITY_DLL_DECL boss_lady_vashjAI : public ScriptedAI
{
//remove old tainted cores to prevent cheating in phase 2
Map *map = m_creature->GetMap();
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i)
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i)
{
- if((*i))
+ if(Player* i_pl = i->getSource())
{
- (*i)->DestroyItemCount(31088, 1, true);
+ i_pl->DestroyItemCount(31088, 1, true);
}
}
}
@@ -1029,42 +1029,42 @@ void AddSC_boss_lady_vashj()
newscript = new Script;
newscript->Name="boss_lady_vashj";
newscript->GetAI = GetAI_boss_lady_vashj;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_enchanted_elemental";
newscript->GetAI = GetAI_mob_enchanted_elemental;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_tainted_elemental";
newscript->GetAI = GetAI_mob_tainted_elemental;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_toxic_sporebat";
newscript->GetAI = GetAI_mob_toxic_sporebat;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_coilfang_elite";
newscript->GetAI = GetAI_mob_coilfang_elite;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_coilfang_strider";
newscript->GetAI = GetAI_mob_coilfang_strider;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_shield_generator_channel";
newscript->GetAI = GetAI_mob_shield_generator_channel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="item_tainted_core";
newscript->pItemUse = ItemUse_item_tainted_core;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
index 53aa7c48d35..70d4d6d2c56 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp
@@ -754,19 +754,22 @@ struct TRINITY_DLL_DECL mob_greyheart_spellbinderAI : public ScriptedAI
if(Earthshock_Timer < diff)
{
Map *map = m_creature->GetMap();
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- for(InstanceMap::PlayerList::const_iterator itr = PlayerList.begin();itr != PlayerList.end(); ++itr)
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator itr = PlayerList.begin();itr != PlayerList.end(); ++itr)
{
- bool isCasting = false;
- for(uint8 i = 0; i < CURRENT_MAX_SPELL; ++i)
- if((*itr)->m_currentSpells[i])
- isCasting = true;
-
- if(isCasting)
- {
- DoCast((*itr), SPELL_EARTHSHOCK);
- break;
- }
+ if (Player* i_pl = itr->getSource())
+ {
+ bool isCasting = false;
+ for(uint8 i = 0; i < CURRENT_MAX_SPELL; ++i)
+ if(i_pl->m_currentSpells[i])
+ isCasting = true;
+
+ if(isCasting)
+ {
+ DoCast(i_pl, SPELL_EARTHSHOCK);
+ break;
+ }
+ }
}
Earthshock_Timer = 8000 + rand()%7000;
}else Earthshock_Timer -= diff;
@@ -801,20 +804,20 @@ void AddSC_boss_leotheras_the_blind()
newscript = new Script;
newscript->Name="boss_leotheras_the_blind";
newscript->GetAI = GetAI_boss_leotheras_the_blind;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_leotheras_the_blind_demonform";
newscript->GetAI = GetAI_boss_leotheras_the_blind_demonform;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_greyheart_spellbinder";
newscript->GetAI = GetAI_mob_greyheart_spellbinder;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_inner_demon";
newscript->GetAI = GetAI_mob_inner_demon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
index 924b15397ed..509eadc2006 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp
@@ -167,16 +167,16 @@ void AddSC_boss_the_lurker_below()
newscript = new Script;
newscript->Name="boss_the_lurker_below";
newscript->GetAI = GetAI_boss_the_lurker_below;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_coilfang_guardian";
newscript->GetAI = GetAI_mob_coilfang_guardian;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_coilfang_ambusher";
newscript->GetAI = GetAI_mob_coilfang_ambusher;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
index fa6a57a7fe4..900c3aad6d9 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp
@@ -350,10 +350,10 @@ void AddSC_boss_morogrim_tidewalker()
newscript = new Script;
newscript->Name="boss_morogrim_tidewalker";
newscript->GetAI = GetAI_boss_morogrim_tidewalker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_water_globule";
newscript->GetAI = GetAI_mob_water_globule;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp
index de0f829c3d1..25b6a1a54d5 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp
@@ -215,5 +215,5 @@ void AddSC_instance_serpentshrine_cavern()
newscript = new Script;
newscript->Name = "instance_serpent_shrine";
newscript->GetInstanceData = GetInstanceData_instance_serpentshrine_cavern;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
index f51a28d61b3..cb09a94044f 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp
@@ -188,10 +188,10 @@ void AddSC_boss_hydromancer_thespia()
newscript = new Script;
newscript->Name="boss_hydromancer_thespia";
newscript->GetAI = GetAI_boss_thespiaAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_coilfang_waterelemental";
newscript->GetAI = GetAI_mob_coilfang_waterelementalAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
index d769b44d9cf..6f839359d0a 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp
@@ -271,10 +271,10 @@ void AddSC_boss_mekgineer_steamrigger()
newscript = new Script;
newscript->Name="boss_mekgineer_steamrigger";
newscript->GetAI = GetAI_boss_mekgineer_steamrigger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_steamrigger_mechanic";
newscript->GetAI = GetAI_mob_steamrigger_mechanic;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
index 85c6657bebb..a3b3c68ba82 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp
@@ -226,10 +226,10 @@ void AddSC_boss_warlord_kalithresh()
newscript = new Script;
newscript->Name="mob_naga_distiller";
newscript->GetAI = GetAI_mob_naga_distiller;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_warlord_kalithresh";
newscript->GetAI = GetAI_boss_warlord_kalithresh;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp
index 798d04d6cfb..dc082244846 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp
@@ -166,5 +166,5 @@ void AddSC_instance_steam_vault()
newscript = new Script;
newscript->Name = "instance_steam_vault";
newscript->GetInstanceData = GetInstanceData_instance_steam_vault;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp
index 13ac880295b..34c854ad8bf 100644
--- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp
+++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp
@@ -147,10 +147,10 @@ void AddSC_boss_hungarfen()
newscript = new Script;
newscript->Name="boss_hungarfen";
newscript->GetAI = GetAI_boss_hungarfen;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_underbog_mushroom";
newscript->GetAI = GetAI_mob_underbog_mushroom;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp b/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp
index c5f7bf6fc07..ee8c531593b 100644
--- a/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp
+++ b/src/bindings/scripts/scripts/zone/dun_morogh/dun_morogh.cpp
@@ -94,5 +94,5 @@ void AddSC_dun_morogh()
newscript = new Script;
newscript->Name="npc_narm_faulk";
newscript->GetAI = GetAI_npc_narm_faulk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp
index 7a8c1329b36..16e5d3fc62e 100644
--- a/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp
+++ b/src/bindings/scripts/scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp
@@ -204,28 +204,28 @@ void AddSC_dustwallow_marsh()
newscript = new Script;
newscript->Name="mobs_risen_husk_spirit";
newscript->GetAI = GetAI_mobs_risen_husk_spirit;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_restless_apparition";
newscript->pGossipHello = &GossipHello_npc_restless_apparition;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_deserter_agitator";
newscript->GetAI = GetAI_npc_deserter_agitator;
newscript->pGossipHello = &GossipHello_npc_deserter_agitator;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_lady_jaina_proudmoore";
newscript->pGossipHello = &GossipHello_npc_lady_jaina_proudmoore;
newscript->pGossipSelect = &GossipSelect_npc_lady_jaina_proudmoore;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_nat_pagle";
newscript->pGossipHello = &GossipHello_npc_nat_pagle;
newscript->pGossipSelect = &GossipSelect_npc_nat_pagle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp b/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp
index e8d44931f11..125fdf44817 100644
--- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp
+++ b/src/bindings/scripts/scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp
@@ -158,23 +158,23 @@ void AddSC_eastern_plaguelands()
newscript = new Script;
newscript->Name="mobs_ghoul_flayer";
newscript->GetAI = GetAI_mobs_ghoul_flayer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_augustus_the_touched";
newscript->pGossipHello = &GossipHello_npc_augustus_the_touched;
newscript->pGossipSelect = &GossipSelect_npc_augustus_the_touched;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_darrowshire_spirit";
newscript->GetAI = GetAI_npc_darrowshire_spirit;
newscript->pGossipHello = &GossipHello_npc_darrowshire_spirit;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_tirion_fordring";
newscript->pGossipHello = &GossipHello_npc_tirion_fordring;
newscript->pGossipSelect = &GossipSelect_npc_tirion_fordring;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp b/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp
index d91b4533de2..b1061213649 100644
--- a/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/elwynn_forest/elwynn_forest.cpp
@@ -94,5 +94,5 @@ void AddSC_elwynn_forest()
newscript = new Script;
newscript->Name="npc_henze_faulk";
newscript->GetAI = GetAI_npc_henze_faulk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
index 932dea11a60..4f9c2a775af 100644
--- a/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
+++ b/src/bindings/scripts/scripts/zone/eversong_woods/eversong_woods.cpp
@@ -152,12 +152,12 @@ void AddSC_eversong_woods()
newscript = new Script;
newscript->Name="mobs_mana_tapped";
newscript->GetAI = GetAI_mobs_mana_tapped;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name= "npc_prospector_anvilward";
newscript->GetAI = GetAI_npc_prospector_anvilward;
newscript->pGossipHello = &GossipHello_npc_prospector_anvilward;
newscript->pGossipSelect = &GossipSelect_npc_prospector_anvilward;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/felwood/felwood.cpp b/src/bindings/scripts/scripts/zone/felwood/felwood.cpp
index 59dc03456a4..2cd6d05579e 100644
--- a/src/bindings/scripts/scripts/zone/felwood/felwood.cpp
+++ b/src/bindings/scripts/scripts/zone/felwood/felwood.cpp
@@ -85,5 +85,5 @@ void AddSC_felwood()
newscript->Name="npcs_riverbreeze_and_silversky";
newscript->pGossipHello = &GossipHello_npcs_riverbreeze_and_silversky;
newscript->pGossipSelect = &GossipSelect_npcs_riverbreeze_and_silversky;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp
index ca8c5d0a02d..e0a89fe5905 100644
--- a/src/bindings/scripts/scripts/zone/feralas/feralas.cpp
+++ b/src/bindings/scripts/scripts/zone/feralas/feralas.cpp
@@ -76,10 +76,10 @@ void AddSC_feralas()
newscript->Name="npc_gregan_brewspewer";
newscript->pGossipHello = &GossipHello_npc_gregan_brewspewer;
newscript->pGossipSelect = &GossipSelect_npc_gregan_brewspewer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_screecher_spirit";
newscript->pGossipHello = &GossipHello_npc_screecher_spirit;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
index 35c7213d033..ade3931c75d 100644
--- a/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
+++ b/src/bindings/scripts/scripts/zone/ghostlands/ghostlands.cpp
@@ -133,22 +133,22 @@ void AddSC_ghostlands()
newscript->Name="npc_blood_knight_dawnstar";
newscript->pGossipHello = &GossipHello_npc_blood_knight_dawnstar;
newscript->pGossipSelect = &GossipSelect_npc_blood_knight_dawnstar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_budd_nedreck";
newscript->pGossipHello = &GossipHello_npc_budd_nedreck;
newscript->pGossipSelect = &GossipSelect_npc_budd_nedreck;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_rathis_tomber";
newscript->pGossipHello = &GossipHello_npc_rathis_tomber;
newscript->pGossipSelect = &GossipSelect_npc_rathis_tomber;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "go_gilded_brazier";
newscript->pGOHello = &GOHello_gilded_brazier;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp
index bb2487b892e..1616d75e376 100644
--- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp
+++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_gruul.cpp
@@ -300,5 +300,5 @@ void AddSC_boss_gruul()
newscript = new Script;
newscript->Name="boss_gruul";
newscript->GetAI = GetAI_boss_gruul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
index 3c77b1a0acf..b0e53373a2f 100644
--- a/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
+++ b/src/bindings/scripts/scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp
@@ -817,25 +817,25 @@ void AddSC_boss_high_king_maulgar()
newscript = new Script;
newscript->Name="boss_high_king_maulgar";
newscript->GetAI = GetAI_boss_high_king_maulgar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_kiggler_the_crazed";
newscript->GetAI = GetAI_boss_kiggler_the_crazed;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_blindeye_the_seer";
newscript->GetAI = GetAI_boss_blindeye_the_seer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_olm_the_summoner";
newscript->GetAI = GetAI_boss_olm_the_summoner;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_krosh_firehand";
newscript->GetAI = GetAI_boss_krosh_firehand;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp
index 062800da3f6..3d058060722 100644
--- a/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp
+++ b/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp
@@ -184,5 +184,5 @@ void AddSC_instance_gruuls_lair()
newscript = new Script;
newscript->Name = "instance_gruuls_lair";
newscript->GetInstanceData = GetInstanceData_instance_gruuls_lair;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp
index 2237a85077a..1431be7dd51 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp
@@ -123,10 +123,10 @@ void AddSC_boss_broggok()
newscript = new Script;
newscript->Name="boss_broggok";
newscript->GetAI = GetAI_boss_broggokAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_broggok_poisoncloud";
newscript->GetAI = GetAI_mob_broggok_poisoncloudAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
index bc5799ffe7e..092dfcd17be 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp
@@ -225,10 +225,10 @@ void AddSC_boss_kelidan_the_breaker()
newscript = new Script;
newscript->Name="boss_kelidan_the_breaker";
newscript->GetAI = GetAI_boss_kelidan_the_breaker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_shadowmoon_channeler";
newscript->GetAI = GetAI_mob_shadowmoon_channeler;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp
index ec85747032d..0c30651c9d5 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp
@@ -127,5 +127,5 @@ void AddSC_boss_the_maker()
newscript = new Script;
newscript->Name="boss_the_maker";
newscript->GetAI = GetAI_boss_the_makerAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
index 676fbddf48c..1d8b1ec2c22 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp
@@ -209,5 +209,5 @@ void AddSC_boss_omor_the_unscarred()
newscript = new Script;
newscript->Name="boss_omor_the_unscarred";
newscript->GetAI = GetAI_boss_omor_the_unscarredAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp
index 21e9362a762..0d9e200c6e7 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp
@@ -164,5 +164,5 @@ void AddSC_boss_watchkeeper_gargolmar()
newscript = new Script;
newscript->Name="boss_watchkeeper_gargolmar";
newscript->GetAI = GetAI_boss_watchkeeper_gargolmarAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
index 4d7fe35891d..4d819b3537b 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp
@@ -545,21 +545,21 @@ void AddSC_boss_magtheridon()
newscript = new Script;
newscript->Name="boss_magtheridon";
newscript->GetAI = GetAI_boss_magtheridon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_hellfire_channeler";
newscript->GetAI = GetAI_mob_hellfire_channeler;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_manticron_cube";
newscript->pGOHello = &GOHello_go_Manticron_Cube;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_abyssal";
newscript->GetAI = GetAI_mob_abyssalAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
} \ No newline at end of file
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp
index 8a6815e068a..51f22a1ff54 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp
@@ -118,9 +118,6 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
void SetData(uint32 type, uint32 data)
{
- Player *player = GetPlayer();
- if(!player) return;
-
switch(type)
{
case DATA_MAGTHERIDON_EVENT:
@@ -129,7 +126,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
RespawnTimer = 10000;
if(data != IN_PROGRESS)
{
- if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID))
+ if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID))
Door->SetGoState(0);
}
break;
@@ -142,7 +139,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
Encounters[1] = NOT_STARTED;
for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
{
- if(Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i))
+ if(Creature *Channeler = instance->GetCreatureInMap(*i))
{
if(Channeler->isAlive())
Channeler->AI()->EnterEvadeMode();
@@ -151,7 +148,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
}
}
CageTimer = 0;
- if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID))
+ if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID))
Door->SetGoState(0);
}break;
case IN_PROGRESS: // Event start.
@@ -161,7 +158,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
// Let all five channelers aggro.
for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
{
- Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i);
+ Creature *Channeler = instance->GetCreatureInMap(*i);
if(Channeler && Channeler->isAlive())
{
//if(Unit *target = Channeler->SelectNearbyTarget())
@@ -170,19 +167,19 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
}
}
// Release Magtheridon after two minutes.
- Creature *Magtheridon = (Creature*)Unit::GetUnit(*player, MagtheridonGUID);
+ Creature *Magtheridon = instance->GetCreatureInMap(MagtheridonGUID);
if(Magtheridon && Magtheridon->isAlive())
{
Magtheridon->TextEmote("'s bonds begin to weaken!", 0);
CageTimer = 120000;
}
- if(GameObject *Door = GameObject::GetGameObject(*player, DoorGUID))
+ if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID))
Door->SetGoState(1);
}break;
case DONE: // Add buff and check if all channelers are dead.
for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
{
- Unit *Channeler = Unit::GetUnit(*player, *i);
+ Creature *Channeler = instance->GetCreatureInMap(*i);
if(Channeler && Channeler->isAlive())
{
//Channeler->CastSpell(Channeler, SPELL_SOUL_TRANSFER, true);
@@ -197,7 +194,7 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
// true - collapse / false - reset
for(std::set<uint64>::iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i)
{
- if(GameObject *Column = GameObject::GetGameObject(*player, *i))
+ if(GameObject *Column = instance->GetGameObjectInMap(*i))
Column->SetGoState(!data);
}
break;
@@ -213,30 +210,26 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
return 0;
}
- Player* GetPlayer()
- {
- if(((InstanceMap*)instance)->GetPlayers().size())
- return ((InstanceMap*)instance)->GetPlayers().front();
- return NULL;
- }
-
void AttackNearestTarget(Creature *creature)
{
float minRange = 999.0f;
float range;
Player* target = NULL;
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)instance)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
+ Map::PlayerList const &PlayerList = instance->GetPlayers();
+ Map::PlayerList::const_iterator i;
for(i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if((*i)->isTargetableForAttack())
+ if(Player* i_pl = i->getSource())
{
- range = (*i)->GetDistance(creature);
- if(range < minRange)
+ if(i_pl->isTargetableForAttack())
{
- minRange = range;
- target = *i;
- }
+ range = i_pl->GetDistance(creature);
+ if(range < minRange)
+ {
+ minRange = range;
+ target = i_pl;
+ }
+ }
}
}
creature->AI()->AttackStart(target);
@@ -248,14 +241,11 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
{
if(CageTimer <= diff)
{
- if(Player *player = GetPlayer())
+ Creature *Magtheridon = instance->GetCreatureInMap(MagtheridonGUID);
+ if(Magtheridon && Magtheridon->isAlive())
{
- Creature *Magtheridon = (Creature*)Unit::GetUnit(*player, MagtheridonGUID);
- if(Magtheridon && Magtheridon->isAlive())
- {
- Magtheridon->clearUnitState(UNIT_STAT_STUNNED);
- AttackNearestTarget(Magtheridon);
- }
+ Magtheridon->clearUnitState(UNIT_STAT_STUNNED);
+ AttackNearestTarget(Magtheridon);
}
CageTimer = 0;
}else CageTimer -= diff;
@@ -265,17 +255,14 @@ struct TRINITY_DLL_DECL instance_magtheridons_lair : public ScriptedInstance
{
if(RespawnTimer <= diff)
{
- if(Player *player = GetPlayer())
+ for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
{
- for(std::set<uint64>::iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i)
+ if(Creature *Channeler = instance->GetCreatureInMap(*i))
{
- if(Creature *Channeler = (Creature*)Unit::GetUnit(*player, *i))
- {
- if(Channeler->isAlive())
- Channeler->AI()->EnterEvadeMode();
- else
- Channeler->Respawn();
- }
+ if(Channeler->isAlive())
+ Channeler->AI()->EnterEvadeMode();
+ else
+ Channeler->Respawn();
}
}
RespawnTimer = 0;
@@ -295,5 +282,5 @@ void AddSC_instance_magtheridons_lair()
newscript = new Script;
newscript->Name = "instance_magtheridons_lair";
newscript->GetInstanceData = GetInstanceData_instance_magtheridons_lair;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
index 9d8335c527b..299f72a041b 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp
@@ -444,15 +444,15 @@ void AddSC_boss_grand_warlock_nethekurse()
newscript = new Script;
newscript->Name="boss_grand_warlock_nethekurse";
newscript->GetAI = GetAI_boss_grand_warlock_nethekurse;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_fel_orc_convert";
newscript->GetAI = GetAI_mob_fel_orc_convert;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_lesser_shadow_fissure";
newscript->GetAI = GetAI_mob_lesser_shadow_fissure;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
index 092e82df0ed..2c128b3c047 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp
@@ -394,10 +394,10 @@ void AddSC_boss_warbringer_omrogg()
newscript = new Script;
newscript->Name="boss_warbringer_omrogg";
newscript->GetAI = GetAI_boss_warbringer_omrogg;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_omrogg_heads";
newscript->GetAI = GetAI_mob_omrogg_heads;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp
index 9dc78cb82cb..bee90392fe3 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp
@@ -110,5 +110,5 @@ void AddSC_instance_shattered_halls()
newscript = new Script;
newscript->Name = "instance_shattered_halls";
newscript->GetInstanceData = GetInstanceData_instance_shattered_halls;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp
index 51b4017b707..9b1822226a7 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp
@@ -137,5 +137,5 @@ void AddSC_boss_doomlordkazzak()
newscript = new Script;
newscript->Name="boss_doomlord_kazzak";
newscript->GetAI = GetAI_boss_doomlordkazzak;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
index 1c3a4c71725..81d23457aab 100644
--- a/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
+++ b/src/bindings/scripts/scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp
@@ -171,17 +171,17 @@ void AddSC_hellfire_peninsula()
newscript->Name="npc_wing_commander_dabiree";
newscript->pGossipHello = &GossipHello_npc_wing_commander_dabiree;
newscript->pGossipSelect = &GossipSelect_npc_wing_commander_dabiree;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_gryphoneer_windbellow";
newscript->pGossipHello = &GossipHello_npc_gryphoneer_windbellow;
newscript->pGossipSelect = &GossipSelect_npc_gryphoneer_windbellow;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_wing_commander_brack";
newscript->pGossipHello = &GossipHello_npc_wing_commander_brack;
newscript->pGossipSelect = &GossipSelect_npc_wing_commander_brack;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp b/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp
index 7bb51ad499c..701f208f2a3 100644
--- a/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp
+++ b/src/bindings/scripts/scripts/zone/ironforge/ironforge.cpp
@@ -89,5 +89,5 @@ void AddSC_ironforge()
newscript->Name="npc_royal_historian_archesonus";
newscript->pGossipHello = &GossipHello_npc_royal_historian_archesonus;
newscript->pGossipSelect = &GossipSelect_npc_royal_historian_archesonus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
index 9b2c1cda518..2690ecfa0ac 100644
--- a/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
+++ b/src/bindings/scripts/scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp
@@ -140,16 +140,16 @@ void AddSC_isle_of_queldanas()
newscript->Name="npc_ayren_cloudbreaker";
newscript->pGossipHello = &GossipHello_npc_ayren_cloudbreaker;
newscript->pGossipSelect = &GossipSelect_npc_ayren_cloudbreaker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_converted_sentry";
newscript->GetAI = GetAI_npc_converted_sentry;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_unrestrained_dragonhawk";
newscript->pGossipHello = &GossipHello_npc_unrestrained_dragonhawk;
newscript->pGossipSelect = &GossipSelect_npc_unrestrained_dragonhawk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp
index b560caad0d1..3c83b618604 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_curator.cpp
@@ -196,5 +196,5 @@ void AddSC_boss_curator()
newscript = new Script;
newscript->Name="boss_curator";
newscript->GetAI = GetAI_boss_curator;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp
index e0bbadf5650..b4075e72b73 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_maiden_of_virtue.cpp
@@ -179,5 +179,5 @@ void AddSC_boss_maiden_of_virtue()
newscript = new Script;
newscript->Name="boss_maiden_of_virtue";
newscript->GetAI = GetAI_boss_maiden_of_virtue;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp
index 1be1a2df16f..1331e59c2f2 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_midnight.cpp
@@ -362,10 +362,10 @@ void AddSC_boss_attumen()
newscript = new Script;
newscript->Name="boss_attumen";
newscript->GetAI = GetAI_boss_attumen;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_midnight";
newscript->GetAI = GetAI_boss_midnight;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp
index 06a47787fa0..ce8f26ff0e5 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_moroes.cpp
@@ -835,35 +835,35 @@ void AddSC_boss_moroes()
newscript = new Script;
newscript->Name="boss_moroes";
newscript->GetAI = GetAI_boss_moroes;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_baroness_dorothea_millstipe";
newscript->GetAI = GetAI_baroness_dorothea_millstipe;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_baron_rafe_dreuger";
newscript->GetAI = GetAI_baron_rafe_dreuger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lady_catriona_von_indi";
newscript->GetAI = GetAI_lady_catriona_von_indi;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lady_keira_berrybuck";
newscript->GetAI = GetAI_lady_keira_berrybuck;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lord_robin_daris";
newscript->GetAI = GetAI_lord_robin_daris;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lord_crispin_ference";
newscript->GetAI = GetAI_lord_crispin_ference;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
index 6dfa4cb01b7..6d4e75afdb9 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_prince_malchezaar.cpp
@@ -666,10 +666,10 @@ void AddSC_boss_malchezaar()
newscript = new Script;
newscript->Name="boss_malchezaar";
newscript->GetAI = GetAI_boss_malchezaar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="netherspite_infernal";
newscript->GetAI = GetAI_netherspite_infernal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp
index 20cdb5b2d7d..71325d21f22 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_shade_of_aran.cpp
@@ -654,20 +654,20 @@ void AddSC_boss_shade_of_aran()
newscript = new Script;
newscript->Name="boss_shade_of_aran";
newscript->GetAI = GetAI_boss_aran;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_shadow_of_aran";
newscript->GetAI = GetAI_shadow_of_aran;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_aran_elemental";
newscript->GetAI = GetAI_water_elemental;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
//newscript = new Script;
//newscript->Name="mob_aran_blizzard";
//newscript->GetAI = GetAI_boss_aran;
- //m_scripts[nrscripts++] = newscript;
+ //newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp
index ddf6e9cb451..00a8cd46281 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_terestian_illhoof.cpp
@@ -436,20 +436,20 @@ void AddSC_boss_terestian_illhoof()
newscript = new Script;
newscript->Name="boss_terestian_illhoof";
newscript->GetAI = GetAI_boss_terestian_illhoof;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_karazhan_imp";
newscript->GetAI = GetAI_mob_karazhan_imp;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_kilrek";
newscript->GetAI = GetAI_mob_kilrek;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_demon_chain";
newscript->GetAI = GetAI_mob_demon_chain;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
index 91dab811d00..2509445f3d0 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/bosses_opera.cpp
@@ -1414,58 +1414,58 @@ void AddSC_bosses_opera()
newscript = new Script;
newscript->GetAI = GetAI_boss_dorothee;
newscript->Name = "boss_dorothee";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_boss_strawman;
newscript->Name = "boss_strawman";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_boss_tinhead;
newscript->Name = "boss_tinhead";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_boss_roar;
newscript->Name = "boss_roar";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_boss_crone;
newscript->Name = "boss_crone";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_mob_tito;
newscript->Name = "mob_tito";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_mob_cyclone;
newscript->Name = "mob_cyclone";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
// Hood
newscript = new Script;
newscript->pGossipHello = GossipHello_npc_grandmother;
newscript->pGossipSelect = GossipSelect_npc_grandmother;
newscript->Name = "npc_grandmother";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_boss_bigbadwolf;
newscript->Name = "boss_bigbadwolf";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
// Romeo And Juliet
newscript = new Script;
newscript->GetAI = GetAI_boss_julianne;
newscript->Name = "boss_julianne";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->GetAI = GetAI_boss_romulo;
newscript->Name = "boss_romulo";
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
index f683eea5336..29e07fe254f 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
@@ -249,5 +249,5 @@ void AddSC_instance_karazhan()
newscript = new Script;
newscript->Name = "instance_karazhan";
newscript->GetInstanceData = GetInstanceData_instance_karazhan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
index b0ab0d86db5..404014565e6 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp
@@ -285,14 +285,14 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI
Map *map = m_creature->GetMap();
if(!map->IsDungeon()) return;
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- if(PlayerList.empty())
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ if(PlayerList.isEmpty())
return;
RaidWiped = true;
- for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i)
+ for(Map::PlayerList::const_iterator i = PlayerList.begin();i != PlayerList.end(); ++i)
{
- if((*i)->isAlive() && !(*i)->isGameMaster())
+ if (i->getSource()->isAlive() && !i->getSource()->isGameMaster())
{
RaidWiped = false;
break;
@@ -460,11 +460,11 @@ void AddSC_karazhan()
newscript->Name = "npc_barnes";
newscript->pGossipHello = GossipHello_npc_barnes;
newscript->pGossipSelect = GossipSelect_npc_barnes;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_berthold";
newscript->pGossipHello = GossipHello_npc_berthold;
newscript->pGossipSelect = GossipSelect_npc_berthold;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp b/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp
index 966bf7c40a3..0e48a72535f 100644
--- a/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp
+++ b/src/bindings/scripts/scripts/zone/loch_modan/loch_modan.cpp
@@ -87,5 +87,5 @@ void AddSC_loch_modan()
newscript->Name="npc_mountaineer_pebblebitty";
newscript->pGossipHello = &GossipHello_npc_mountaineer_pebblebitty;
newscript->pGossipSelect = &GossipSelect_npc_mountaineer_pebblebitty;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
index 7a44e04dd6d..f08ff848237 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp
@@ -231,17 +231,17 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
float x,y,z;
m_creature->Relocate(KaelLocations[0][0], KaelLocations[0][1], LOCATION_Z, 0);
Map *map = m_creature->GetMap();
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ Map::PlayerList::const_iterator i;
for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- //if(!(*i)->isGameMaster())
- if((*i) && (*i)->isAlive())
- {
- (*i)->CastSpell((*i), SPELL_TELEPORT_CENTER, true);
- m_creature->GetNearPoint(m_creature,x,y,z,5,5,0);
- (*i)->TeleportTo(m_creature->GetMapId(),x,y,LOCATION_Z,(*i)->GetOrientation());
- }
+ if (Player* i_pl = i->getSource())
+ if(i_pl->isAlive())
+ {
+ i_pl->CastSpell(i_pl, SPELL_TELEPORT_CENTER, true);
+ m_creature->GetNearPoint(m_creature,x,y,z,5,5,0);
+ i_pl->TeleportTo(m_creature->GetMapId(),x,y,LOCATION_Z,i_pl->GetOrientation());
+ }
}
DoCast(m_creature, SPELL_TELEPORT_CENTER, true);
}
@@ -249,34 +249,38 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
void CastGravityLapseKnockUp()
{
Map *map = m_creature->GetMap();
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ Map::PlayerList::const_iterator i;
for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if((*i) && (*i)->isAlive())
+ {
+ if (Player* i_pl = i->getSource())
+ if(i_pl->isAlive())
// Knockback into the air
- (*i)->CastSpell((*i), SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, m_creature->GetGUID());
+ i_pl->CastSpell(i_pl, SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, m_creature->GetGUID());
}
}
void CastGravityLapseFly() // Use Fly Packet hack for now as players can't cast "fly" spells unless in map 530. Has to be done a while after they get knocked into the air...
{
Map *map = m_creature->GetMap();
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ Map::PlayerList::const_iterator i;
for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if((*i) && (*i)->isAlive())
+ {
+ if (Player* i_pl = i->getSource())
{
- // Also needs an exception in spell system.
- (*i)->CastSpell((*i), SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, m_creature->GetGUID());
- // Use packet hack
- WorldPacket data(12);
- data.SetOpcode(SMSG_MOVE_SET_CAN_FLY);
- data.append((*i)->GetPackGUID());
- data << uint32(0);
- (*i)->SendMessageToSet(&data, true);
- (*i)->SetSpeed(MOVE_FLY, 2.0f);
+ if(i_pl->isAlive())
+ {
+ // Also needs an exception in spell system.
+ i_pl->CastSpell(i_pl, SPELL_GRAVITY_LAPSE_FLY, true, 0, 0, m_creature->GetGUID());
+ // Use packet hack
+ WorldPacket data(12);
+ data.SetOpcode(SMSG_MOVE_SET_CAN_FLY);
+ data.append(i_pl->GetPackGUID());
+ data << uint32(0);
+ i_pl->SendMessageToSet(&data, true);
+ i_pl->SetSpeed(MOVE_FLY, 2.0f);
+ }
}
}
}
@@ -284,19 +288,19 @@ struct TRINITY_DLL_DECL boss_felblood_kaelthasAI : public ScriptedAI
void RemoveGravityLapse()
{
Map *map = m_creature->GetMap();
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ Map::PlayerList::const_iterator i;
for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if((*i))
+ if(Player* i_pl = i->getSource())
{
- (*i)->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY);
- (*i)->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT);
+ i_pl->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY);
+ i_pl->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_DOT);
WorldPacket data(12);
data.SetOpcode(SMSG_MOVE_UNSET_CAN_FLY);
- data.append((*i)->GetPackGUID());
+ data.append(i_pl->GetPackGUID());
data << uint32(0);
- (*i)->SendMessageToSet(&data, true);
+ i_pl->SendMessageToSet(&data, true);
}
}
}
@@ -757,35 +761,35 @@ void AddSC_boss_felblood_kaelthas()
newscript = new Script;
newscript->Name = "boss_felblood_kaelthas";
newscript->GetAI = GetAI_boss_felblood_kaelthas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_arcane_sphere";
newscript->GetAI = GetAI_mob_arcane_sphere;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_felkael_phoenix";
newscript->GetAI = GetAI_mob_felkael_phoenix;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_felkael_phoenix_egg";
newscript->GetAI = GetAI_mob_felkael_phoenix_egg;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_felkael_flamestrike";
newscript->GetAI = GetAI_mob_felkael_flamestrike;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_kael_orb";
newscript->pGOHello = &GOHello_go_kael_orb;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="go_movie_orb";
newscript->pGOHello = &GOHello_go_movie_orb;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
index bd4a336eff4..afae183a4ec 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp
@@ -1355,60 +1355,60 @@ void AddSC_boss_priestess_delrissa()
newscript = new Script;
newscript->Name="boss_priestess_delrissa";
newscript->GetAI = GetAI_boss_priestess_delrissa;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_kagani_nightstrike";
newscript->GetAI = GetAI_boss_kagani_nightstrike;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_ellris_duskhallow";
newscript->GetAI = GetAI_ellris_duskhallow;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_eramas_brightblaze";
newscript->GetAI = GetAI_eramas_brightblaze;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_yazzai";
newscript->GetAI = GetAI_yazzai;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_warlord_salaris";
newscript->GetAI = GetAI_warlord_salaris;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_garaxxas";
newscript->GetAI = GetAI_garaxxas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_apoko";
newscript->GetAI = GetAI_apoko;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_zelfan";
newscript->GetAI = GetAI_zelfan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
/*newscript = new Script;
newscript->Name="mob_high_explosive_sheep";
newscript->GetAI = GetAI_mob_high_explosive_sheep;
- m_scripts[nrscripts++] = newscript;*/
+ newscript->RegisterSelf();*/
/*newscript = new Script;
newscript->Name="mob_fizzle";
newscript->GetAI = GetAI_mob_fizzle;
- m_scripts[nrscripts++] = newscript;*/
+ newscript->RegisterSelf();*/
/*newscript = new Script;
newscript->Name="mob_sliver";
newscript->GetAI = GetAI_mob_sliver;
- m_scripts[nrscripts++] = newscript;*/
+ newscript->RegisterSelf();*/
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp
index 24526dac185..83174dd5a4c 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_selin_fireheart.cpp
@@ -403,10 +403,10 @@ void AddSC_boss_selin_fireheart()
newscript = new Script;
newscript->Name="boss_selin_fireheart";
newscript->GetAI = GetAI_boss_selin_fireheart;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_fel_crystal";
newscript->GetAI = GetAI_mob_fel_crystal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp
index ff11b425bd2..4f073cb884d 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/boss_vexallus.cpp
@@ -238,10 +238,10 @@ void AddSC_boss_vexallus()
newscript = new Script;
newscript->Name="boss_vexallus";
newscript->GetAI = GetAI_boss_vexallus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_pure_energy";
newscript->GetAI = GetAI_mob_pure_energy;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp b/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp
index 8afecdc32e9..70d12865158 100644
--- a/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp
+++ b/src/bindings/scripts/scripts/zone/magisters_terrace/instance_magisters_terrace.cpp
@@ -249,5 +249,5 @@ void AddSC_instance_magisters_terrace()
newscript = new Script;
newscript->Name = "instance_magisters_terrace";
newscript->GetInstanceData = GetInstanceData_instance_magisters_terrace;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp
index 543686e2648..8830b7f3e4b 100644
--- a/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp
+++ b/src/bindings/scripts/scripts/zone/maraudon/boss_celebras_the_cursed.cpp
@@ -93,5 +93,5 @@ void AddSC_boss_celebras_the_cursed()
newscript = new Script;
newscript->Name="celebras_the_cursed";
newscript->GetAI = GetAI_celebras_the_cursed;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp
index 20b93fe64b3..ab68f68c6e3 100644
--- a/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp
+++ b/src/bindings/scripts/scripts/zone/maraudon/boss_landslide.cpp
@@ -90,5 +90,5 @@ void AddSC_boss_landslide()
newscript = new Script;
newscript->Name="boss_landslide";
newscript->GetAI = GetAI_boss_landslide;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp
index c5d5a51ffb9..0ffe9cd7f56 100644
--- a/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp
+++ b/src/bindings/scripts/scripts/zone/maraudon/boss_noxxion.cpp
@@ -145,5 +145,5 @@ void AddSC_boss_noxxion()
newscript = new Script;
newscript->Name="boss_noxxion";
newscript->GetAI = GetAI_boss_noxxion;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp b/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp
index 1920109f3d8..01cfb86a372 100644
--- a/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp
+++ b/src/bindings/scripts/scripts/zone/maraudon/boss_princess_theradras.cpp
@@ -104,5 +104,5 @@ void AddSC_boss_ptheradras()
newscript = new Script;
newscript->Name="boss_princess_theradras";
newscript->GetAI = GetAI_boss_ptheradras;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp
index 163926881f6..75cf6cb0a45 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_baron_geddon.cpp
@@ -101,5 +101,5 @@ void AddSC_boss_baron_geddon()
newscript = new Script;
newscript->Name="boss_baron_geddon";
newscript->GetAI = GetAI_boss_baron_geddon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp
index 70e98d648ee..830af78c430 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_garr.cpp
@@ -140,10 +140,10 @@ void AddSC_boss_garr()
newscript = new Script;
newscript->Name="boss_garr";
newscript->GetAI = GetAI_boss_garr;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_firesworn";
newscript->GetAI = GetAI_mob_firesworn;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp
index f15c66f26af..dc8bd9a5d9c 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_gehennas.cpp
@@ -87,5 +87,5 @@ void AddSC_boss_gehennas()
newscript = new Script;
newscript->Name="boss_gehennas";
newscript->GetAI = GetAI_boss_gehennas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
index 6d17621ceb2..ebefd0185fc 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp
@@ -192,10 +192,10 @@ void AddSC_boss_golemagg()
newscript = new Script;
newscript->Name="boss_golemagg";
newscript->GetAI = GetAI_boss_golemagg;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_core_rager";
newscript->GetAI = GetAI_mob_core_rager;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp
index 6e8938bc542..f45657c8dae 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_lucifron.cpp
@@ -86,5 +86,5 @@ void AddSC_boss_lucifron()
newscript = new Script;
newscript->Name="boss_lucifron";
newscript->GetAI = GetAI_boss_lucifron;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp
index a892c83f175..d08f393fbee 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_magmadar.cpp
@@ -93,5 +93,5 @@ void AddSC_boss_magmadar()
newscript = new Script;
newscript->Name="boss_magmadar";
newscript->GetAI = GetAI_boss_magmadar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp
index d61f08ee7e7..43be23046ea 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_majordomo_executus.cpp
@@ -129,5 +129,5 @@ void AddSC_boss_majordomo()
newscript = new Script;
newscript->Name="boss_majordomo";
newscript->GetAI = GetAI_boss_majordomo;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
index 723fba0edf7..d357d9580e9 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_ragnaros.cpp
@@ -313,5 +313,5 @@ void AddSC_boss_ragnaros()
newscript = new Script;
newscript->Name="boss_ragnaros";
newscript->GetAI = GetAI_boss_ragnaros;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp
index c9d4f4f3eec..c78b9ac3c91 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_shazzrah.cpp
@@ -117,5 +117,5 @@ void AddSC_boss_shazzrah()
newscript = new Script;
newscript->Name="boss_shazzrah";
newscript->GetAI = GetAI_boss_shazzrah;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp
index 8a2a7764daa..0bc0e8e729e 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/boss_sulfuron_harbinger.cpp
@@ -206,10 +206,10 @@ void AddSC_boss_sulfuron()
newscript = new Script;
newscript->Name="boss_sulfuron";
newscript->GetAI = GetAI_boss_sulfuron;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_flamewaker_priest";
newscript->GetAI = GetAI_mob_flamewaker_priest;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp b/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp
index 42a2ec35678..efba77f41f0 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/instance_molten_core.cpp
@@ -253,5 +253,5 @@ void AddSC_instance_molten_core()
newscript = new Script;
newscript->Name="instance_molten_core";
newscript->GetInstanceData = &GetInstance_instance_molten_core;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp b/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp
index e36f56c7817..9446fb54a12 100644
--- a/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp
+++ b/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp
@@ -84,5 +84,5 @@ void AddSC_molten_core()
newscript = new Script;
newscript->Name="mob_ancient_core_hound";
newscript->GetAI = GetAI_mob_ancient_core_hound;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp
index 7ac2326327b..1b0afbaaf94 100644
--- a/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp
+++ b/src/bindings/scripts/scripts/zone/moonglade/moonglade.cpp
@@ -545,27 +545,27 @@ void AddSC_moonglade()
newscript->Name="npc_bunthen_plainswind";
newscript->pGossipHello = &GossipHello_npc_bunthen_plainswind;
newscript->pGossipSelect = &GossipSelect_npc_bunthen_plainswind;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_great_bear_spirit";
newscript->pGossipHello = &GossipHello_npc_great_bear_spirit;
newscript->pGossipSelect = &GossipSelect_npc_great_bear_spirit;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_silva_filnaveth";
newscript->pGossipHello = &GossipHello_npc_silva_filnaveth;
newscript->pGossipSelect = &GossipSelect_npc_silva_filnaveth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_clintar_dreamwalker";
newscript->pQuestAccept = &QuestAccept_npc_clintar_dreamwalker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_clintar_spirit";
newscript->GetAI = GetAI_npc_clintar_spirit;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
index d2fb6643423..44de5eab777 100644
--- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
+++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp
@@ -60,5 +60,5 @@ void AddSC_mulgore()
newscript->Name="npc_skorn_whitecloud";
newscript->pGossipHello = &GossipHello_npc_skorn_whitecloud;
newscript->pGossipSelect = &GossipSelect_npc_skorn_whitecloud;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
index dcd3f57bef3..f662fe4c2c4 100644
--- a/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
+++ b/src/bindings/scripts/scripts/zone/nagrand/nagrand.cpp
@@ -631,46 +631,46 @@ void AddSC_nagrand()
newscript = new Script;
newscript->Name="mob_shattered_rumbler";
newscript->GetAI = GetAI_mob_shattered_rumbler;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_lump";
newscript->GetAI = GetAI_mob_lump;
newscript->pGossipHello = &GossipHello_mob_lump;
newscript->pGossipSelect = &GossipSelect_mob_lump;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_sunspring_villager";
newscript->GetAI = GetAI_mob_sunspring_villager;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_altruis_the_sufferer";
newscript->pGossipHello = &GossipHello_npc_altruis_the_sufferer;
newscript->pGossipSelect = &GossipSelect_npc_altruis_the_sufferer;
newscript->pQuestAccept = &QuestAccept_npc_altruis_the_sufferer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_greatmother_geyah";
newscript->pGossipHello = &GossipHello_npc_greatmother_geyah;
newscript->pGossipSelect = &GossipSelect_npc_greatmother_geyah;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_lantresor_of_the_blade";
newscript->pGossipHello = &GossipHello_npc_lantresor_of_the_blade;
newscript->pGossipSelect = &GossipSelect_npc_lantresor_of_the_blade;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_creditmarker_visit_with_ancestors";
newscript->GetAI = GetAI_npc_creditmarker_visit_with_ancestors;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_sparrowhawk";
newscript->GetAI = GetAI_mob_sparrowhawk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp
index 50a4f867b4c..2b93e7828f9 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_anubrekhan.cpp
@@ -208,5 +208,5 @@ void AddSC_boss_anubrekhan()
newscript = new Script;
newscript->Name="boss_anubrekhan";
newscript->GetAI = GetAI_boss_anubrekhan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp
index 4add49e17b4..dbcf72510aa 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_faerlina.cpp
@@ -197,5 +197,5 @@ void AddSC_boss_faerlina()
newscript = new Script;
newscript->Name="boss_faerlina";
newscript->GetAI = GetAI_boss_faerlina;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp
index 09e3c1ecf25..b5b40a4b245 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gluth.cpp
@@ -170,5 +170,5 @@ void AddSC_boss_gluth()
newscript = new Script;
newscript->Name="boss_gluth";
newscript->GetAI = GetAI_boss_gluth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp
index 96d94ad51ad..d21e2a2119f 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_highlord_mograine.cpp
@@ -174,5 +174,5 @@ void AddSC_boss_highlord_mograine()
newscript = new Script;
newscript->Name="boss_highlord_mograine";
newscript->GetAI = GetAI_boss_highlord_mograine;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp
index 3a47f6f5c27..e65bfb62fdd 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_kelthuzad.cpp
@@ -537,6 +537,6 @@ void AddSC_boss_kelthuzad()
newscript = new Script;
newscript->Name="boss_kelthuzad";
newscript->GetAI = GetAI_boss_kelthuzadAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
*/
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp
index ee3b47e478d..770f880557d 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_lady_blaumeux.cpp
@@ -143,5 +143,5 @@ void AddSC_boss_lady_blaumeux()
newscript = new Script;
newscript->Name="boss_lady_blaumeux";
newscript->GetAI = GetAI_boss_lady_blaumeux;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp
index 56fe786e6c8..4da5c6626cb 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_loatheb.cpp
@@ -212,5 +212,5 @@ void AddSC_boss_loatheb()
newscript = new Script;
newscript->Name="boss_loatheb";
newscript->GetAI = GetAI_boss_loatheb;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp
index 4c65feb9c7b..821ca832e65 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_maexxna.cpp
@@ -237,10 +237,10 @@ void AddSC_boss_maexxna()
newscript = new Script;
newscript->Name="boss_maexxna";
newscript->GetAI = GetAI_boss_maexxna;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_webwrap";
newscript->GetAI = GetAI_mob_webwrap;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp
index cda01c57e40..43616311bb4 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp
@@ -176,5 +176,5 @@ void AddSC_boss_noth()
newscript = new Script;
newscript->Name="boss_noth";
newscript->GetAI = GetAI_boss_noth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp
index d0edc7f46b3..2f51c9c3064 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_patchwerk.cpp
@@ -156,5 +156,5 @@ void AddSC_boss_patchwerk()
newscript = new Script;
newscript->Name="boss_patchwerk";
newscript->GetAI = GetAI_boss_patchwerk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp
index d83f99bda43..ac7de1db7eb 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_razuvious.cpp
@@ -163,5 +163,5 @@ void AddSC_boss_razuvious()
newscript = new Script;
newscript->Name="boss_razuvious";
newscript->GetAI = GetAI_boss_razuvious;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp
index 0be1619ad74..75a2f20db14 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp
@@ -195,5 +195,5 @@ void AddSC_boss_sapphiron()
newscript = new Script;
newscript->Name="boss_sapphiron";
newscript->GetAI = GetAI_boss_sapphiron;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp
index 0a3ca7a951b..8dead488208 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sir_zeliek.cpp
@@ -142,5 +142,5 @@ void AddSC_boss_sir_zeliek()
newscript = new Script;
newscript->Name="boss_sir_zeliek";
newscript->GetAI = GetAI_boss_sir_zeliek;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp
index a040626258d..500f0955316 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_thane_korthazz.cpp
@@ -143,5 +143,5 @@ void AddSC_boss_thane_korthazz()
newscript = new Script;
newscript->Name="boss_thane_korthazz";
newscript->GetAI = GetAI_boss_thane_korthazz;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp
index 2d35802338e..4125c4e888e 100644
--- a/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp
+++ b/src/bindings/scripts/scripts/zone/netherstorm/netherstorm.cpp
@@ -400,22 +400,22 @@ void AddSC_netherstorm()
newscript = new Script;
newscript->Name="go_manaforge_control_console";
newscript->pGOHello = &GOHello_go_manaforge_control_console;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_manaforge_control_console";
newscript->GetAI = GetAI_npc_manaforge_control_console;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_protectorate_nether_drake";
newscript->pGossipHello = &GossipHello_npc_protectorate_nether_drake;
newscript->pGossipSelect = &GossipSelect_npc_protectorate_nether_drake;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_veronia";
newscript->pGossipHello = &GossipHello_npc_veronia;
newscript->pGossipSelect = &GossipSelect_npc_veronia;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp b/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp
index 7774f65411d..eb73f8bfb3a 100644
--- a/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp
+++ b/src/bindings/scripts/scripts/zone/onyxias_lair/boss_onyxia.cpp
@@ -229,5 +229,5 @@ void AddSC_boss_onyxia()
newscript = new Script;
newscript->Name="boss_onyxia";
newscript->GetAI = GetAI_boss_onyxiaAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp
index cb4be0499fc..76c7a5f3416 100644
--- a/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp
+++ b/src/bindings/scripts/scripts/zone/orgrimmar/orgrimmar.cpp
@@ -247,19 +247,19 @@ void AddSC_orgrimmar()
newscript->Name="npc_neeru_fireblade";
newscript->pGossipHello = &GossipHello_npc_neeru_fireblade;
newscript->pGossipSelect = &GossipSelect_npc_neeru_fireblade;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_shenthul";
newscript->GetAI = GetAI_npc_shenthul;
newscript->pQuestAccept = &QuestAccept_npc_shenthul;
newscript->pReceiveEmote = &ReciveEmote_npc_shenthul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_thrall_warchief";
newscript->GetAI = GetAI_npc_thrall_warchief;
newscript->pGossipHello = &GossipHello_npc_thrall_warchief;
newscript->pGossipSelect = &GossipSelect_npc_thrall_warchief;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp b/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
index 163db1c2756..e7f3184a60e 100644
--- a/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
+++ b/src/bindings/scripts/scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp
@@ -136,5 +136,5 @@ void AddSC_boss_amnennar_the_coldbringer()
newscript = new Script;
newscript->Name="boss_amnennar_the_coldbringer";
newscript->GetAI = GetAI_boss_amnennar_the_coldbringer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp
index 03a53d50297..374daab3344 100644
--- a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp
+++ b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp
@@ -103,5 +103,5 @@ void AddSC_boss_ayamiss()
newscript = new Script;
newscript->Name="boss_ayamiss";
newscript->GetAI = GetAI_boss_ayamiss;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp
index 3a287d8b6ae..124ebccbcbb 100644
--- a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp
+++ b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp
@@ -89,5 +89,5 @@ void AddSC_boss_kurinnaxx()
newscript = new Script;
newscript->Name="boss_kurinnaxx";
newscript->GetAI = GetAI_boss_kurinnaxx;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp
index 836dd3f8065..12e58066456 100644
--- a/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp
+++ b/src/bindings/scripts/scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp
@@ -113,5 +113,5 @@ void AddSC_boss_moam()
newscript = new Script;
newscript->Name="boss_moam";
newscript->GetAI = GetAI_boss_moam;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp
index 50764c4d022..aaa156b8092 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp
@@ -167,5 +167,5 @@ void AddSC_boss_arcanist_doan()
newscript = new Script;
newscript->Name="boss_arcanist_doan";
newscript->GetAI = GetAI_boss_arcanist_doan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp
index 4ea395a8038..10d340eae91 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp
@@ -93,5 +93,5 @@ void AddSC_boss_azshir_the_sleepless()
newscript = new Script;
newscript->Name="boss_azshir_the_sleepless";
newscript->GetAI = GetAI_boss_azshir_the_sleepless;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp
index 9fa5bee9714..ae2324d8615 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp
@@ -132,5 +132,5 @@ void AddSC_boss_bloodmage_thalnos()
newscript = new Script;
newscript->Name="boss_bloodmage_thalnos";
newscript->GetAI = GetAI_boss_bloodmage_thalnos;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp
index de1fd991c33..494def37c11 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp
@@ -193,5 +193,5 @@ void AddSC_boss_herod()
newscript = new Script;
newscript->Name="boss_herod";
newscript->GetAI = GetAI_boss_herod;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp
index 5742214e31d..a230629b871 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp
@@ -128,5 +128,5 @@ void AddSC_boss_high_inquisitor_fairbanks()
newscript = new Script;
newscript->Name="boss_high_inquisitor_fairbanks";
newscript->GetAI = GetAI_boss_high_inquisitor_fairbanks;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp
index 97fbce31b01..c10da64c4e9 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_high_inquisitor_whitemane.cpp
@@ -173,5 +173,5 @@ void AddSC_boss_high_inquisitor_whitemane()
newscript = new Script;
newscript->Name="boss_high_inquisitor_whitemane";
newscript->GetAI = GetAI_boss_high_inquisitor_whitemane;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp
index 6353f600460..e268d25c9d7 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp
@@ -74,5 +74,5 @@ void AddSC_boss_houndmaster_loksey()
newscript = new Script;
newscript->Name="boss_houndmaster_loksey";
newscript->GetAI = GetAI_boss_houndmaster_loksey;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp
index ede58d0997e..98cb742eb01 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp
@@ -109,5 +109,5 @@ void AddSC_boss_interrogator_vishas()
newscript = new Script;
newscript->Name="boss_interrogator_vishas";
newscript->GetAI = GetAI_boss_interrogator_vishas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp
index 5e87b1a2b77..1d8587d9f78 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scarlet_commander_mograine.cpp
@@ -156,5 +156,5 @@ void AddSC_boss_scarlet_commander_mograine()
newscript = new Script;
newscript->Name="boss_scarlet_commander_mograine";
newscript->GetAI = GetAI_boss_scarlet_commander_mograine;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp
index 1f9e3fb2487..95a206d1657 100644
--- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp
+++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_scorn.cpp
@@ -96,5 +96,5 @@ void AddSC_boss_scorn()
newscript = new Script;
newscript->Name="boss_scorn";
newscript->GetAI = GetAI_boss_scorn;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
index f67bf9fe594..38e6ad85d8c 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_darkmaster_gandling.cpp
@@ -188,5 +188,5 @@ void AddSC_boss_darkmaster_gandling()
newscript = new Script;
newscript->Name="boss_darkmaster_gandling";
newscript->GetAI = GetAI_boss_darkmaster_gandling;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp
index 747ec039363..fa410af2734 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_death_knight_darkreaver.cpp
@@ -55,5 +55,5 @@ void AddSC_boss_death_knight_darkreaver()
newscript = new Script;
newscript->Name="boss_death_knight_darkreaver";
newscript->GetAI = GetAI_boss_death_knight_darkreaver;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp
index 484a27dca98..3993a58f1cd 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp
@@ -104,5 +104,5 @@ void AddSC_boss_theolenkrastinov()
newscript = new Script;
newscript->Name="boss_doctor_theolen_krastinov";
newscript->GetAI = GetAI_boss_theolenkrastinov;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp
index 1edae02fcf3..4b871f8e173 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_illucia_barov.cpp
@@ -112,5 +112,5 @@ void AddSC_boss_illuciabarov()
newscript = new Script;
newscript->Name="boss_illucia_barov";
newscript->GetAI = GetAI_boss_illuciabarov;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp
index 705b2835843..15e5c93a982 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_instructor_malicia.cpp
@@ -148,5 +148,5 @@ void AddSC_boss_instructormalicia()
newscript = new Script;
newscript->Name="boss_instructor_malicia";
newscript->GetAI = GetAI_boss_instructormalicia;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
index dfae0432d12..e27dc31879e 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_jandice_barov.cpp
@@ -212,10 +212,10 @@ void AddSC_boss_jandicebarov()
newscript = new Script;
newscript->Name="boss_jandice_barov";
newscript->GetAI = GetAI_boss_jandicebarov;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_illusionofjandicebarov";
newscript->GetAI = GetAI_mob_illusionofjandicebarov;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
index b3cc6fd0530..1e1fb1ef685 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_kormok.cpp
@@ -151,5 +151,5 @@ void AddSC_boss_kormok()
newscript = new Script;
newscript->Name="boss_kormok";
newscript->GetAI = GetAI_boss_kormok;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp
index 49f3f733949..8d8f248aede 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lord_alexei_barov.cpp
@@ -94,5 +94,5 @@ void AddSC_boss_lordalexeibarov()
newscript = new Script;
newscript->Name="boss_lord_alexei_barov";
newscript->GetAI = GetAI_boss_lordalexeibarov;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp
index d17d2036d91..c05e4d64d1d 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp
@@ -109,5 +109,5 @@ void AddSC_boss_lorekeeperpolkelt()
newscript = new Script;
newscript->Name="boss_lorekeeper_polkelt";
newscript->GetAI = GetAI_boss_lorekeeperpolkelt;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp
index 0ea243c2d08..afe7eb8716a 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_ras_frostwhisper.cpp
@@ -121,5 +121,5 @@ void AddSC_boss_rasfrost()
newscript = new Script;
newscript->Name="boss_boss_ras_frostwhisper";
newscript->GetAI = GetAI_boss_rasfrost;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp
index f27e8aa458f..d16b0f917ce 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_the_ravenian.cpp
@@ -114,5 +114,5 @@ void AddSC_boss_theravenian()
newscript = new Script;
newscript->Name="boss_the_ravenian";
newscript->GetAI = GetAI_boss_theravenian;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp b/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp
index 954ee3b4eba..f92ae0732e1 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/boss_vectus.cpp
@@ -91,5 +91,5 @@ void AddSC_boss_vectus()
newscript = new Script;
newscript->Name="boss_vectus";
newscript->GetAI = GetAI_boss_vectus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp b/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp
index a48537068f8..036a34cd8fa 100644
--- a/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp
+++ b/src/bindings/scripts/scripts/zone/scholomance/instance_scholomance.cpp
@@ -98,5 +98,5 @@ void AddSC_instance_scholomance()
newscript = new Script;
newscript->Name = "instance_scholomance";
newscript->GetInstanceData = GetInstanceData_instance_scholomance;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp b/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp
index 7a9ef1a5449..23281eb9050 100644
--- a/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp
+++ b/src/bindings/scripts/scripts/zone/searing_gorge/searing_gorge.cpp
@@ -143,17 +143,17 @@ void AddSC_searing_gorge()
newscript->Name="npc_kalaran_windblade";
newscript->pGossipHello = &GossipHello_npc_kalaran_windblade;
newscript->pGossipSelect = &GossipSelect_npc_kalaran_windblade;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_lothos_riftwaker";
newscript->pGossipHello = &GossipHello_npc_lothos_riftwaker;
newscript->pGossipSelect = &GossipSelect_npc_lothos_riftwaker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_zamael_lunthistle";
newscript->pGossipHello = &GossipHello_npc_zamael_lunthistle;
newscript->pGossipSelect = &GossipSelect_npc_zamael_lunthistle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp
index dfae8457abc..a854cc96989 100644
--- a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp
@@ -148,5 +148,5 @@ void AddSC_instance_shadowfang_keep()
newscript = new Script;
newscript->Name = "instance_shadowfang_keep";
newscript->GetInstanceData = GetInstanceData_instance_shadowfang_keep;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp
index 65e1eaea8ba..d297ccbcdeb 100644
--- a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp
@@ -113,5 +113,5 @@ void AddSC_shadowfang_keep()
newscript->pGossipHello = &GossipHello_npc_shadowfang_prisoner;
newscript->pGossipSelect = &GossipSelect_npc_shadowfang_prisoner;
newscript->GetAI = GetAI_npc_shadowfang_prisoner;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp
index 89536b15ac2..a67318bc41c 100644
--- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/boss_doomwalker.cpp
@@ -212,5 +212,5 @@ void AddSC_boss_doomwalker()
newscript = new Script;
newscript->Name="boss_doomwalker";
newscript->GetAI = GetAI_boss_doomwalker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
index 7bc1ad312a9..534a853302d 100644
--- a/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
+++ b/src/bindings/scripts/scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp
@@ -1106,73 +1106,73 @@ void AddSC_shadowmoon_valley()
newscript = new Script;
newscript->Name = "mob_mature_netherwing_drake";
newscript->GetAI = GetAI_mob_mature_netherwing_drake;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_enslaved_netherwing_drake";
newscript->GetAI = GetAI_mob_enslaved_netherwing_drake;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "mob_dragonmaw_peon";
newscript->GetAI = GetAI_mob_dragonmaw_peon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_drake_dealer_hurlunk";
newscript->pGossipHello = &GossipHello_npc_drake_dealer_hurlunk;
newscript->pGossipSelect = &GossipSelect_npc_drake_dealer_hurlunk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_invis_legion_teleporter";
newscript->GetAI = GetAI_npc_invis_legion_teleporter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npcs_flanis_swiftwing_and_kagrosh";
newscript->pGossipHello = &GossipHello_npcs_flanis_swiftwing_and_kagrosh;
newscript->pGossipSelect = &GossipSelect_npcs_flanis_swiftwing_and_kagrosh;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_murkblood_overseer";
newscript->pGossipHello = &GossipHello_npc_murkblood_overseer;
newscript->pGossipSelect = &GossipSelect_npc_murkblood_overseer;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_neltharaku";
newscript->pGossipHello = &GossipHello_npc_neltharaku;
newscript->pGossipSelect = &GossipSelect_npc_neltharaku;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_karynaku";
newscript->pQuestAccept = &QuestAccept_npc_karynaku;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_oronok_tornheart";
newscript->pGossipHello = &GossipHello_npc_oronok_tornheart;
newscript->pGossipSelect = &GossipSelect_npc_oronok_tornheart;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_overlord_morghor";
newscript->GetAI = GetAI_Overlord_Morghor;
newscript->pQuestAccept = &QuestAccept_Overlord_Morghor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_lord_illidan_stormrage";
newscript->GetAI = GetAI_Lord_Illidan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_yarzill_the_merc";
newscript->GetAI = GetAI_Yarzill_The_Merc;
newscript->pGossipHello = &GossipHello_npc_yarzill_fly;
newscript->pGossipSelect = &GossipSelect_npc_yarzill_fly;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp
index 41cb56585ef..f974e0ec16d 100644
--- a/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp
+++ b/src/bindings/scripts/scripts/zone/shattrath/shattrath_city.cpp
@@ -414,28 +414,28 @@ void AddSC_shattrath_city()
newscript->Name="npc_raliq_the_drunk";
newscript->pGossipHello = &GossipHello_npc_raliq_the_drunk;
newscript->pGossipSelect = &GossipSelect_npc_raliq_the_drunk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_salsalabim";
newscript->GetAI = GetAI_npc_salsalabim;
newscript->pGossipHello = &GossipHello_npc_salsalabim;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_shattrathflaskvendors";
newscript->pGossipHello = &GossipHello_npc_shattrathflaskvendors;
newscript->pGossipSelect = &GossipSelect_npc_shattrathflaskvendors;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_zephyr";
newscript->pGossipHello = &GossipHello_npc_zephyr;
newscript->pGossipSelect = &GossipSelect_npc_zephyr;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_kservant";
newscript->GetAI = GetAI_npc_kservantAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/silithus/silithus.cpp b/src/bindings/scripts/scripts/zone/silithus/silithus.cpp
index 5e05fa60630..bf868318342 100644
--- a/src/bindings/scripts/scripts/zone/silithus/silithus.cpp
+++ b/src/bindings/scripts/scripts/zone/silithus/silithus.cpp
@@ -145,5 +145,5 @@ void AddSC_silithus()
newscript->Name="npcs_rutgar_and_frankal";
newscript->pGossipHello = &GossipHello_npcs_rutgar_and_frankal;
newscript->pGossipSelect = &GossipSelect_npcs_rutgar_and_frankal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp
index 077c078b64a..d50a1fcbdf8 100644
--- a/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp
+++ b/src/bindings/scripts/scripts/zone/silvermoon/silvermoon_city.cpp
@@ -99,5 +99,5 @@ void AddSC_silvermoon_city()
newscript = new Script;
newscript->Name="npc_blood_knight_stillblade";
newscript->GetAI = GetAI_npc_blood_knight_stillblade;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp
index 597ab1ccb8d..b511ccbba4e 100644
--- a/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/silverpine_forest/silverpine_forest.cpp
@@ -96,5 +96,5 @@ void AddSC_silverpine_forest()
newscript->pGossipHello = &GossipHello_npc_astor_hadren;
newscript->pGossipSelect = &GossipSelect_npc_astor_hadren;
newscript->GetAI = GetAI_npc_astor_hadren;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
index 40cb6367379..28f0c644726 100644
--- a/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
+++ b/src/bindings/scripts/scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp
@@ -76,5 +76,5 @@ void AddSC_stonetalon_mountains()
newscript->Name="npc_braug_dimspirit";
newscript->pGossipHello = &GossipHello_npc_braug_dimspirit;
newscript->pGossipSelect = &GossipSelect_npc_braug_dimspirit;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp
index b84b1d98cb6..9c34ec3d926 100644
--- a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp
+++ b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp
@@ -245,28 +245,28 @@ void AddSC_stormwind_city()
newscript->Name="npc_archmage_malin";
newscript->pGossipHello = &GossipHello_npc_archmage_malin;
newscript->pGossipSelect = &GossipSelect_npc_archmage_malin;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_bartleby";
newscript->GetAI = GetAI_npc_bartleby;
newscript->pQuestAccept = &QuestAccept_npc_bartleby;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_dashel_stonefist";
newscript->GetAI = GetAI_npc_dashel_stonefist;
newscript->pQuestAccept = &QuestAccept_npc_dashel_stonefist;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_general_marcus_jonathan";
newscript->pReceiveEmote = &ReceiveEmote_npc_general_marcus_jonathan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_lady_katrana_prestor";
newscript->pGossipHello = &GossipHello_npc_lady_katrana_prestor;
newscript->pGossipSelect = &GossipSelect_npc_lady_katrana_prestor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
index 40ff438cbd1..426c56c679d 100644
--- a/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
+++ b/src/bindings/scripts/scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp
@@ -103,5 +103,5 @@ void AddSC_stranglethorn_vale()
newscript = new Script;
newscript->Name = "mob_yenniku";
newscript->GetAI = GetAI_mob_yenniku;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
index d3cfa97be75..aac9c590c97 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baron_rivendare.cpp
@@ -211,5 +211,5 @@ void AddSC_boss_baron_rivendare()
newscript = new Script;
newscript->Name="boss_baron_rivendare";
newscript->GetAI = GetAI_boss_baron_rivendare;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
index f1315e66b83..8c88353878c 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_baroness_anastari.cpp
@@ -120,5 +120,5 @@ void AddSC_boss_baroness_anastari()
newscript = new Script;
newscript->Name="boss_baroness_anastari";
newscript->GetAI = GetAI_boss_baroness_anastari;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp
index 4c1bd05b432..d3e1c4e2a3a 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_cannon_master_willey.cpp
@@ -217,5 +217,5 @@ void AddSC_boss_cannon_master_willey()
newscript = new Script;
newscript->Name="boss_cannon_master_willey";
newscript->GetAI = GetAI_boss_cannon_master_willey;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp
index 3d084fe0736..67503358d9d 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp
@@ -312,5 +312,5 @@ void AddSC_boss_dathrohan_balnazzar()
newscript = new Script;
newscript->Name="boss_dathrohan_balnazzar";
newscript->GetAI = GetAI_boss_dathrohan_balnazzar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
index cbea76cf205..daa8da39a67 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_magistrate_barthilas.cpp
@@ -110,5 +110,5 @@ void AddSC_boss_magistrate_barthilas()
newscript = new Script;
newscript->Name="boss_magistrate_barthilas";
newscript->GetAI = GetAI_boss_magistrate_barthilas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
index e0f9c43cba7..d3d60121a87 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_maleki_the_pallid.cpp
@@ -115,5 +115,5 @@ void AddSC_boss_maleki_the_pallid()
newscript = new Script;
newscript->Name="boss_maleki_the_pallid";
newscript->GetAI = GetAI_boss_maleki_the_pallid;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
index 3929f2513dd..b56e643bdb2 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_nerubenkan.cpp
@@ -134,5 +134,5 @@ void AddSC_boss_nerubenkan()
newscript = new Script;
newscript->Name="boss_nerubenkan";
newscript->GetAI = GetAI_boss_nerubenkan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
index a76913b658c..ee92be7737d 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_order_of_silver_hand.cpp
@@ -157,5 +157,5 @@ void AddSC_boss_order_of_silver_hand()
newscript = new Script;
newscript->Name="boss_silver_hand_bosses";
newscript->GetAI = GetAI_boss_silver_hand_bossesAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp
index a4eddd46b5e..d0514bd2eb8 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_postmaster_malown.cpp
@@ -140,5 +140,5 @@ void AddSC_boss_postmaster_malown()
newscript = new Script;
newscript->Name="boss_postmaster_malown";
newscript->GetAI = GetAI_boss_postmaster_malown;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
index 674d4403266..b2965f09edf 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_ramstein_the_gorger.cpp
@@ -88,5 +88,5 @@ void AddSC_boss_ramstein_the_gorger()
newscript = new Script;
newscript->Name="boss_ramstein_the_gorger";
newscript->GetAI = GetAI_boss_ramstein_the_gorger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp b/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp
index 2256c064e11..4f526041e35 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/boss_timmy_the_cruel.cpp
@@ -96,5 +96,5 @@ void AddSC_boss_timmy_the_cruel()
newscript = new Script;
newscript->Name="boss_timmy_the_cruel";
newscript->GetAI = GetAI_boss_timmy_the_cruel;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp
index eff4edf91a8..74181d6a15e 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/instance_stratholme.cpp
@@ -73,5 +73,5 @@ void AddSC_instance_stratholme()
newscript = new Script;
newscript->Name = "instance_stratholme";
newscript->GetInstanceData = GetInstanceData_instance_stratholme;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp
index 5097648a04a..2a38abe9311 100644
--- a/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp
+++ b/src/bindings/scripts/scripts/zone/stratholme/stratholme.cpp
@@ -310,26 +310,26 @@ void AddSC_stratholme()
newscript = new Script;
newscript->Name="mob_freed_soul";
newscript->GetAI = GetAI_mob_freed_soul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_restless_soul";
newscript->GetAI = GetAI_mob_restless_soul;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mobs_spectral_ghostly_citizen";
newscript->GetAI = GetAI_mobs_spectral_ghostly_citizen;
newscript->pReceiveEmote = &ReciveEmote_mobs_spectral_ghostly_citizen;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_mindless_skeleton";
newscript->GetAI = GetAI_mob_mindless_skeleton;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_thuzadin_acolyte";
newscript->GetAI = GetAI_mob_thuzadin_acolyte;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
index fc1bca5233f..24ce8dc4a91 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
@@ -178,5 +178,5 @@ void AddSC_boss_brutallus()
newscript = new Script;
newscript->Name="boss_brutallus";
newscript->GetAI = GetAI_boss_brutallus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
index b49f0e391f3..b7e076b85d3 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_eredar_twins.cpp
@@ -761,15 +761,15 @@ void AddSC_boss_eredar_twins()
newscript = new Script;
newscript->Name="boss_sacrolash";
newscript->GetAI = GetAI_boss_sacrolash;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_alythess";
newscript->GetAI = GetAI_boss_alythess;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_shadow_image";
newscript->GetAI = GetAI_mob_shadow_image;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
index e703b4b6c26..9f2b89b44f2 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_felmyst.cpp
@@ -295,7 +295,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
Timer[EVENT_FLIGHT_SEQUENCE] = 0;
break;
case 2:
- if(Player* target = SelectRandomPlayer(150))
+ if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true))
{
Creature* Vapor = m_creature->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
if(Vapor)
@@ -311,7 +311,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
case 3:
DespawnSummons(MOB_VAPOR_TRAIL);
//m_creature->CastSpell(m_creature, SPELL_VAPOR_SELECT); need core support
- if(Player* target = SelectRandomPlayer(150))
+ if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true))
{
//target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support
Creature* Vapor = m_creature->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);
@@ -330,7 +330,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
Timer[EVENT_FLIGHT_SEQUENCE] = 1;
break;
case 5:
- if(Player* target = SelectRandomPlayer(150))
+ if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true))
{
BreathX = target->GetPositionX();
BreathY = target->GetPositionY();
@@ -433,7 +433,7 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
Timer[EVENT_GAS_NOVA] = 20000 + rand()%5 * 1000;
break;
case EVENT_ENCAPSULATE:
- if(Unit* target = SelectRandomPlayer(150))
+ if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 150, true))
{
m_creature->CastSpell(target, SPELL_ENCAPSULATE_CHANNEL, false);
target->CastSpell(target, SPELL_ENCAPSULATE_EFFECT, true);// linked aura, need core patch to remove this hack
@@ -515,26 +515,6 @@ struct TRINITY_DLL_DECL boss_felmystAI : public ScriptedAI
(*i)->RemoveCorpse();
}
}
-
- Player* SelectRandomPlayer(float range = 0.0f)
- {
- Map *map = m_creature->GetMap();
- if (!map->IsDungeon()) return NULL;
-
- InstanceMap::PlayerList PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::iterator i;
- while(PlayerList.size())
- {
- i = PlayerList.begin();
- advance(i, rand()%PlayerList.size());
- if((range == 0.0f || m_creature->IsWithinDistInMap(*i, range))
- && (*i)->isTargetableForAttack())
- return *i;
- else
- PlayerList.erase(i);
- }
- return NULL;
- }
};
struct TRINITY_DLL_DECL mob_felmyst_vaporAI : public ScriptedAI
@@ -594,15 +574,15 @@ void AddSC_boss_felmyst()
newscript = new Script;
newscript->Name="boss_felmyst";
newscript->GetAI = GetAI_boss_felmyst;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_felmyst_vapor";
newscript->GetAI = GetAI_mob_felmyst_vapor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_felmyst_trail";
newscript->GetAI = GetAI_mob_felmyst_trail;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
index f3911b9b865..79d0d3766b8 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_kalecgos.cpp
@@ -368,13 +368,12 @@ struct TRINITY_DLL_DECL boss_sathrovarrAI : public ScriptedAI
{
Map *map = m_creature->GetMap();
if(!map->IsDungeon()) return;
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::const_iterator i;
- for (i = PlayerList.begin(); i != PlayerList.end(); ++i)
- {
- if((*i)->HasAura(AURA_SPECTRAL_REALM,0))
- (*i)->RemoveAurasDueToSpell(AURA_SPECTRAL_REALM);
- }
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ Map::PlayerList::const_iterator i;
+ for(i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ if(Player* i_pl = i->getSource())
+ if(i_pl->HasAura(AURA_SPECTRAL_REALM,0))
+ i_pl->RemoveAurasDueToSpell(AURA_SPECTRAL_REALM);
}
void Enrage(); // demon and dragon should enrage at the same time
@@ -681,20 +680,20 @@ void AddSC_boss_kalecgos()
newscript = new Script;
newscript->Name="boss_kalecgos";
newscript->GetAI = GetAI_boss_kalecgos;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_sathrovarr";
newscript->GetAI = GetAI_boss_Sathrovarr;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_kalec";
newscript->GetAI = GetAI_boss_kalec;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="kalocegos_teleporter";
newscript->pGOHello = &GOkalocegos_teleporter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
} \ No newline at end of file
diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp
index a94cf460a83..98b0bd443b1 100644
--- a/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp
+++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp
@@ -192,5 +192,5 @@ void AddSC_instance_sunwell_plateau()
newscript = new Script;
newscript->Name = "instance_sunwell_plateau";
newscript->GetInstanceData = GetInstanceData_instance_sunwell_plateau;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
index 2eb6ab80335..c6700af3e67 100644
--- a/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
+++ b/src/bindings/scripts/scripts/zone/tanaris/tanaris.cpp
@@ -374,29 +374,29 @@ void AddSC_tanaris()
newscript = new Script;
newscript->Name="mob_aquementas";
newscript->GetAI = GetAI_mob_aquementas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_custodian_of_time";
newscript->GetAI = GetAI_npc_custodian_of_time;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_marin_noggenfogger";
newscript->pGossipHello = &GossipHello_npc_marin_noggenfogger;
newscript->pGossipSelect = &GossipSelect_npc_marin_noggenfogger;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_steward_of_time";
newscript->pGossipHello = &GossipHello_npc_steward_of_time;
newscript->pGossipSelect = &GossipSelect_npc_steward_of_time;
newscript->pQuestAccept = &QuestAccept_npc_steward_of_time;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_stone_watcher_of_norgannon";
newscript->pGossipHello = &GossipHello_npc_stone_watcher_of_norgannon;
newscript->pGossipSelect = &GossipSelect_npc_stone_watcher_of_norgannon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp
index f928a41e1e0..624ad419243 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/arcatraz.cpp
@@ -575,15 +575,15 @@ void AddSC_arcatraz()
newscript = new Script;
newscript->Name="npc_millhouse_manastorm";
newscript->GetAI = GetAI_npc_millhouse_manastorm;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_warden_mellichar";
newscript->GetAI = GetAI_npc_warden_mellichar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_zerekethvoidzone";
newscript->GetAI = GetAI_mob_zerekethvoidzoneAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
index fcd8cf2c607..808604d2375 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp
@@ -367,10 +367,10 @@ void AddSC_boss_harbinger_skyriss()
newscript = new Script;
newscript->Name="boss_harbinger_skyriss";
newscript->GetAI = GetAI_boss_harbinger_skyriss;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_harbinger_skyriss_illusion";
newscript->GetAI = GetAI_boss_harbinger_skyriss_illusion;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp
index 93f21f2a72f..2325680d53b 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp
@@ -220,5 +220,5 @@ void AddSC_instance_arcatraz()
newscript = new Script;
newscript->Name = "instance_arcatraz";
newscript->GetInstanceData = GetInstanceData_instance_arcatraz;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp
index 201b5936ee9..334fdf07b98 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp
@@ -211,5 +211,5 @@ void AddSC_boss_high_botanist_freywinn()
newscript = new Script;
newscript->Name="boss_high_botanist_freywinn";
newscript->GetAI = GetAI_boss_high_botanist_freywinn;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp
index c714c470c55..09a237f53cf 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_laj.cpp
@@ -194,5 +194,5 @@ void AddSC_boss_laj()
newscript = new Script;
newscript->Name="boss_laj";
newscript->GetAI = GetAI_boss_laj;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp
index 5f7c87adff4..f0dc111e896 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp
@@ -293,10 +293,10 @@ void AddSC_boss_warp_splinter()
newscript = new Script;
newscript->Name="boss_warp_splinter";
newscript->GetAI = GetAI_boss_warp_splinter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_warp_splinter_treant";
newscript->GetAI = GetAI_mob_treant;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
index 617fd29dbc2..138d3d19f99 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_alar.cpp
@@ -505,15 +505,15 @@ void AddSC_boss_alar()
newscript = new Script;
newscript->Name="boss_alar";
newscript->GetAI = GetAI_boss_alar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_ember_of_alar";
newscript->GetAI = GetAI_mob_ember_of_alar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_flame_patch_alar";
newscript->GetAI = GetAI_mob_flame_patch_alar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
index 477aab20241..9e93eac4693 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp
@@ -536,10 +536,10 @@ void AddSC_boss_high_astromancer_solarian()
newscript = new Script;
newscript->Name="boss_high_astromancer_solarian";
newscript->GetAI = GetAI_boss_high_astromancer_solarian;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_solarium_priest";
newscript->GetAI = GetAI_mob_solarium_priest;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
index ddbfbb65bf2..ca5d8dcf7dd 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp
@@ -1581,35 +1581,35 @@ void AddSC_boss_kaelthas()
newscript = new Script;
newscript->Name="boss_kaelthas";
newscript->GetAI = GetAI_boss_kaelthas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_thaladred_the_darkener";
newscript->GetAI = GetAI_boss_thaladred_the_darkener;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lord_sanguinar";
newscript->GetAI = GetAI_boss_lord_sanguinar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_grand_astromancer_capernian";
newscript->GetAI = GetAI_boss_grand_astromancer_capernian;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_master_engineer_telonicus";
newscript->GetAI = GetAI_boss_master_engineer_telonicus;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name= "mob_kael_flamestrike";
newscript->GetAI = GetAI_mob_kael_flamestrike;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_phoenix";
newscript->GetAI = GetAI_mob_phoenix;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
index 406e7e4d9ab..de6335e79e3 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
@@ -195,5 +195,5 @@ void AddSC_boss_void_reaver()
newscript = new Script;
newscript->Name="boss_void_reaver";
newscript->GetAI = GetAI_boss_void_reaver;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp
index 3f1316d45e8..1fa1030a991 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp
@@ -172,5 +172,5 @@ void AddSC_instance_the_eye()
newscript = new Script;
newscript->Name = "instance_the_eye";
newscript->GetInstanceData = GetInstanceData_instance_the_eye;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp
index cd2962b509a..18d37e88bdc 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/the_eye.cpp
@@ -94,5 +94,5 @@ void AddSC_the_eye()
newscript = new Script;
newscript->Name="mob_crystalcore_devastator";
newscript->GetAI = GetAI_mob_crystalcore_devastator;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
index 90ec4076d21..dfc5d70bb42 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp
@@ -157,5 +157,5 @@ void AddSC_boss_gatewatcher_iron_hand()
newscript = new Script;
newscript->Name="boss_gatewatcher_iron_hand";
newscript->GetAI = GetAI_boss_gatewatcher_iron_hand;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
index 866f641922c..d077f5b8c0c 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp
@@ -277,10 +277,10 @@ void AddSC_boss_nethermancer_sepethrea()
newscript = new Script;
newscript->Name="boss_nethermancer_sepethrea";
newscript->GetAI = GetAI_boss_nethermancer_sepethrea;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_ragin_flames";
newscript->GetAI = GetAI_mob_ragin_flames;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
index 06c57082357..842da61d9bf 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp
@@ -1,306 +1,306 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-/* ScriptData
-SDName: Boss Pathaleon the Calculator
-SD%Complete: 50
-SDComment: Event missing. Script for himself 99% blizzlike.
-SDCategory: Tempest Keep, The Mechanar
-EndScriptData */
-
-#include "precompiled.h"
-
-// Spells to be casted
-#define SPELL_SUMMON_NETHER_WRAITH 35287 //Spell not working. Summon is working but Pets dont attack and wrong HP.
-#define SPELL_MANA_TAP 36021
-#define SPELL_ARCANE_TORRENT 36022
-#define SPELL_DOMINATION 35280
-#define H_SPELL_ARCANE_EXPLOSION 34791 //Spell not right.
-#define SPELL_ENRAGE 36992
-
-// Add Spells
-#define SPELL_DETONATION 35058
-#define SPELL_ARCANE_MISSILES 35034
-
-// On Domination
-#define SAY_SPELL_DOMINATION_1 "I'm looking for a team player... "
-#define SOUND_SPELL_DOMINATION_1 11197
-#define SAY_SPELL_DOMINATION_2 "You work for me now!"
-#define SOUND_SPELL_DOMINATION_2 11198
-
-// On Summon
-#define SAY_SUMMON_1 "Time to supplement my work force."
-#define SOUND_SAY_SUMMON_1 11196
-
-// On Enrage
-#define SAY_ENRAGE_1 "A minor inconvenience."
-#define SOUND_SAY_ENRAGE_1 11199
-
-// On Aggro
-#define SAY_AGGRO_1 "We are on a strict timetable. You will not interfere!"
-#define SOUND_SAY_AGGRO_1 11193
-
-//On Kill Unit
-#define SAY_SLAY_1 "Looks like you lose"
-#define SOUND_SLAY_1 11195
-
-// On Death
-#define SAY_DEATH_1 "The project will... continue."
-#define SOUND_DEATH_1 11200
-
-
-struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI
-{
- boss_pathaleon_the_calculatorAI(Creature *c) : ScriptedAI(c)
- {
- HeroicMode = m_creature->GetMap()->IsHeroic();
- Reset();
- }
-
- uint32 Summon_Timer;
- uint32 ManaTap_Timer;
- uint32 ArcaneTorrent_Timer;
- uint32 Domination_Timer;
- uint32 ArcaneExplosion_Timer;
- bool HeroicMode;
- bool Enraged;
-
- uint32 Counter;
- Creature* Wraith;
-
- void Reset()
- {
- Summon_Timer = 30000;
- ManaTap_Timer = 12000 + rand()%8000;
- ArcaneTorrent_Timer = 16000 + rand()%9000;
- Domination_Timer = 25000 + rand()%15000;
- ArcaneExplosion_Timer = 8000 + rand()%5000;
-
- Enraged = false;
-
- Counter = 0;
-
- }
- void Aggro(Unit *who)
- {
- DoYell(SAY_AGGRO_1,LANG_UNIVERSAL,NULL);
- DoPlaySoundToSet(m_creature, SOUND_SAY_AGGRO_1);
- }
-
- // On Killed Unit
- void KilledUnit(Unit* victim)
- {
-
- DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature,SOUND_SLAY_1);
-
- }
-
- // On Death
- void JustDied(Unit* Killer)
- {
- DoYell(SAY_DEATH_1,LANG_UNIVERSAL,NULL);
- DoPlaySoundToSet(m_creature, SOUND_DEATH_1);
- }
-
- void UpdateAI(const uint32 diff)
- {
- //Return since we have no target
- if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() )
- return;
-
- if(Summon_Timer < diff)
- {
-
- Unit* target = NULL;
-
- for(int i = 0; i < 3;i++)
- {
- target = SelectUnit(SELECT_TARGET_RANDOM,0);
- Wraith = m_creature->SummonCreature(21062,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
- if (target)
- Wraith->AI()->AttackStart(target);
- }
-
- DoYell(SAY_SUMMON_1,LANG_UNIVERSAL,NULL);
- DoPlaySoundToSet(m_creature, SOUND_SAY_SUMMON_1);
-
- Summon_Timer = 30000 + rand()%15000;
- }else Summon_Timer -= diff;
-
- if(ManaTap_Timer < diff)
- {
- //time to cast
- DoCast(m_creature->getVictim(),SPELL_MANA_TAP);
-
- //Cast again on time
- ManaTap_Timer = 14000 + rand()%8000;
- }else ManaTap_Timer -= diff;
-
- if(ArcaneTorrent_Timer < diff)
- {
- //time to cast
- DoCast(m_creature->getVictim(),SPELL_ARCANE_TORRENT);
-
- //Cast again on time
- ArcaneTorrent_Timer = 12000 + rand()%6000;
- }else ArcaneTorrent_Timer -= diff;
-
- if(Domination_Timer < diff)
- {
- //time to cast
- switch(rand()%2)
- {
- case 0:
- DoYell(SAY_SPELL_DOMINATION_1, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_1);
- break;
-
- case 1:
- DoYell(SAY_SPELL_DOMINATION_2, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_2);
- break;
- }
-
- Unit* target = NULL;
- target = SelectUnit(SELECT_TARGET_RANDOM,1);
- if (target) DoCast(target,SPELL_DOMINATION);
-
- //Cast again on time
- Domination_Timer = 25000 + rand()%5000;
- }else Domination_Timer -= diff;
-
- //Only casting if Heroic Mode is used
- if (HeroicMode)
- {
- if(ArcaneExplosion_Timer < diff)
- {
- //time to cast
- DoCast(m_creature->getVictim(),H_SPELL_ARCANE_EXPLOSION);
-
- //Cast again on time
- ArcaneExplosion_Timer = 10000 + rand()%4000;
- }else ArcaneExplosion_Timer -= diff;
- }
-
- if (!Enraged && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 21)
- {
-
- DoCast(m_creature, SPELL_ENRAGE);
- DoYell(SAY_ENRAGE_1, LANG_UNIVERSAL, NULL);
- DoPlaySoundToSet(m_creature,SOUND_SAY_ENRAGE_1);
- Enraged = true;
-
- }
-
- DoMeleeAttackIfReady();
- }
-};
-CreatureAI* GetAI_boss_pathaleon_the_calculator(Creature *_Creature)
-{
- return new boss_pathaleon_the_calculatorAI (_Creature);
-}
-
-struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI
-{
- mob_nether_wraithAI(Creature *c) : ScriptedAI(c) {Reset();}
-
- ScriptedInstance *pInstance;
-
- uint32 ArcaneMissiles_Timer;
- uint32 Detonation_Timer;
- uint32 Die_Timer;
- bool Detonation;
-
- void Reset()
- {
- ArcaneMissiles_Timer = 1000 + rand()%3000;
- Detonation_Timer = 20000;
- Die_Timer = 2200;
- Detonation = false;
-
- }
-
- void Aggro(Unit* who)
- {
- }
-
- void UpdateAI(const uint32 diff)
- {
- Unit* target = NULL;
-
- if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
- return;
-
- if(ArcaneMissiles_Timer < diff)
- {
-
- Unit* target = NULL;
- target = SelectUnit(SELECT_TARGET_RANDOM,1);
- if (!target)
- target = m_creature->getVictim();
- if (target)
- {
- DoCast(target,SPELL_ARCANE_MISSILES);
- }
-
- ArcaneMissiles_Timer = 5000 + rand()%5000;
- }else ArcaneMissiles_Timer -=diff;
-
- if (!Detonation)
- {
- if(Detonation_Timer < diff)
- {
- //time to cast
- DoCast(m_creature,SPELL_DETONATION);
- Detonation = true;
-
- }else Detonation_Timer -= diff;
-
- }
-
- if (Detonation)
- {
- if (Die_Timer < diff)
- {
- m_creature->setDeathState(JUST_DIED);
- m_creature->RemoveCorpse();
- }else Die_Timer -= diff;
- }
-
-
- DoMeleeAttackIfReady();
- }
-
-};
-CreatureAI* GetAI_mob_nether_wraith(Creature *_Creature)
-{
- return new mob_nether_wraithAI (_Creature);
-}
-
-void AddSC_boss_pathaleon_the_calculator()
-{
- Script *newscript;
- newscript = new Script;
- newscript->Name="boss_pathaleon_the_calculator";
- newscript->GetAI = GetAI_boss_pathaleon_the_calculator;
- m_scripts[nrscripts++] = newscript;
-
- newscript = new Script;
- newscript->Name="mob_nether_wraith";
- newscript->GetAI = GetAI_mob_nether_wraith;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+/* ScriptData
+SDName: Boss Pathaleon the Calculator
+SD%Complete: 50
+SDComment: Event missing. Script for himself 99% blizzlike.
+SDCategory: Tempest Keep, The Mechanar
+EndScriptData */
+
+#include "precompiled.h"
+
+// Spells to be casted
+#define SPELL_SUMMON_NETHER_WRAITH 35287 //Spell not working. Summon is working but Pets dont attack and wrong HP.
+#define SPELL_MANA_TAP 36021
+#define SPELL_ARCANE_TORRENT 36022
+#define SPELL_DOMINATION 35280
+#define H_SPELL_ARCANE_EXPLOSION 34791 //Spell not right.
+#define SPELL_ENRAGE 36992
+
+// Add Spells
+#define SPELL_DETONATION 35058
+#define SPELL_ARCANE_MISSILES 35034
+
+// On Domination
+#define SAY_SPELL_DOMINATION_1 "I'm looking for a team player... "
+#define SOUND_SPELL_DOMINATION_1 11197
+#define SAY_SPELL_DOMINATION_2 "You work for me now!"
+#define SOUND_SPELL_DOMINATION_2 11198
+
+// On Summon
+#define SAY_SUMMON_1 "Time to supplement my work force."
+#define SOUND_SAY_SUMMON_1 11196
+
+// On Enrage
+#define SAY_ENRAGE_1 "A minor inconvenience."
+#define SOUND_SAY_ENRAGE_1 11199
+
+// On Aggro
+#define SAY_AGGRO_1 "We are on a strict timetable. You will not interfere!"
+#define SOUND_SAY_AGGRO_1 11193
+
+//On Kill Unit
+#define SAY_SLAY_1 "Looks like you lose"
+#define SOUND_SLAY_1 11195
+
+// On Death
+#define SAY_DEATH_1 "The project will... continue."
+#define SOUND_DEATH_1 11200
+
+
+struct TRINITY_DLL_DECL boss_pathaleon_the_calculatorAI : public ScriptedAI
+{
+ boss_pathaleon_the_calculatorAI(Creature *c) : ScriptedAI(c)
+ {
+ HeroicMode = m_creature->GetMap()->IsHeroic();
+ Reset();
+ }
+
+ uint32 Summon_Timer;
+ uint32 ManaTap_Timer;
+ uint32 ArcaneTorrent_Timer;
+ uint32 Domination_Timer;
+ uint32 ArcaneExplosion_Timer;
+ bool HeroicMode;
+ bool Enraged;
+
+ uint32 Counter;
+ Creature* Wraith;
+
+ void Reset()
+ {
+ Summon_Timer = 30000;
+ ManaTap_Timer = 12000 + rand()%8000;
+ ArcaneTorrent_Timer = 16000 + rand()%9000;
+ Domination_Timer = 25000 + rand()%15000;
+ ArcaneExplosion_Timer = 8000 + rand()%5000;
+
+ Enraged = false;
+
+ Counter = 0;
+
+ }
+ void Aggro(Unit *who)
+ {
+ DoYell(SAY_AGGRO_1,LANG_UNIVERSAL,NULL);
+ DoPlaySoundToSet(m_creature, SOUND_SAY_AGGRO_1);
+ }
+
+ // On Killed Unit
+ void KilledUnit(Unit* victim)
+ {
+
+ DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL);
+ DoPlaySoundToSet(m_creature,SOUND_SLAY_1);
+
+ }
+
+ // On Death
+ void JustDied(Unit* Killer)
+ {
+ DoYell(SAY_DEATH_1,LANG_UNIVERSAL,NULL);
+ DoPlaySoundToSet(m_creature, SOUND_DEATH_1);
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ //Return since we have no target
+ if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() )
+ return;
+
+ if(Summon_Timer < diff)
+ {
+
+ Unit* target = NULL;
+
+ for(int i = 0; i < 3;i++)
+ {
+ target = SelectUnit(SELECT_TARGET_RANDOM,0);
+ Wraith = m_creature->SummonCreature(21062,m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(),0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 25000);
+ if (target)
+ Wraith->AI()->AttackStart(target);
+ }
+
+ DoYell(SAY_SUMMON_1,LANG_UNIVERSAL,NULL);
+ DoPlaySoundToSet(m_creature, SOUND_SAY_SUMMON_1);
+
+ Summon_Timer = 30000 + rand()%15000;
+ }else Summon_Timer -= diff;
+
+ if(ManaTap_Timer < diff)
+ {
+ //time to cast
+ DoCast(m_creature->getVictim(),SPELL_MANA_TAP);
+
+ //Cast again on time
+ ManaTap_Timer = 14000 + rand()%8000;
+ }else ManaTap_Timer -= diff;
+
+ if(ArcaneTorrent_Timer < diff)
+ {
+ //time to cast
+ DoCast(m_creature->getVictim(),SPELL_ARCANE_TORRENT);
+
+ //Cast again on time
+ ArcaneTorrent_Timer = 12000 + rand()%6000;
+ }else ArcaneTorrent_Timer -= diff;
+
+ if(Domination_Timer < diff)
+ {
+ //time to cast
+ switch(rand()%2)
+ {
+ case 0:
+ DoYell(SAY_SPELL_DOMINATION_1, LANG_UNIVERSAL, NULL);
+ DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_1);
+ break;
+
+ case 1:
+ DoYell(SAY_SPELL_DOMINATION_2, LANG_UNIVERSAL, NULL);
+ DoPlaySoundToSet(m_creature, SOUND_SPELL_DOMINATION_2);
+ break;
+ }
+
+ Unit* target = NULL;
+ target = SelectUnit(SELECT_TARGET_RANDOM,1);
+ if (target) DoCast(target,SPELL_DOMINATION);
+
+ //Cast again on time
+ Domination_Timer = 25000 + rand()%5000;
+ }else Domination_Timer -= diff;
+
+ //Only casting if Heroic Mode is used
+ if (HeroicMode)
+ {
+ if(ArcaneExplosion_Timer < diff)
+ {
+ //time to cast
+ DoCast(m_creature->getVictim(),H_SPELL_ARCANE_EXPLOSION);
+
+ //Cast again on time
+ ArcaneExplosion_Timer = 10000 + rand()%4000;
+ }else ArcaneExplosion_Timer -= diff;
+ }
+
+ if (!Enraged && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 21)
+ {
+
+ DoCast(m_creature, SPELL_ENRAGE);
+ DoYell(SAY_ENRAGE_1, LANG_UNIVERSAL, NULL);
+ DoPlaySoundToSet(m_creature,SOUND_SAY_ENRAGE_1);
+ Enraged = true;
+
+ }
+
+ DoMeleeAttackIfReady();
+ }
+};
+CreatureAI* GetAI_boss_pathaleon_the_calculator(Creature *_Creature)
+{
+ return new boss_pathaleon_the_calculatorAI (_Creature);
+}
+
+struct TRINITY_DLL_DECL mob_nether_wraithAI : public ScriptedAI
+{
+ mob_nether_wraithAI(Creature *c) : ScriptedAI(c) {Reset();}
+
+ ScriptedInstance *pInstance;
+
+ uint32 ArcaneMissiles_Timer;
+ uint32 Detonation_Timer;
+ uint32 Die_Timer;
+ bool Detonation;
+
+ void Reset()
+ {
+ ArcaneMissiles_Timer = 1000 + rand()%3000;
+ Detonation_Timer = 20000;
+ Die_Timer = 2200;
+ Detonation = false;
+
+ }
+
+ void Aggro(Unit* who)
+ {
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ Unit* target = NULL;
+
+ if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())
+ return;
+
+ if(ArcaneMissiles_Timer < diff)
+ {
+
+ Unit* target = NULL;
+ target = SelectUnit(SELECT_TARGET_RANDOM,1);
+ if (!target)
+ target = m_creature->getVictim();
+ if (target)
+ {
+ DoCast(target,SPELL_ARCANE_MISSILES);
+ }
+
+ ArcaneMissiles_Timer = 5000 + rand()%5000;
+ }else ArcaneMissiles_Timer -=diff;
+
+ if (!Detonation)
+ {
+ if(Detonation_Timer < diff)
+ {
+ //time to cast
+ DoCast(m_creature,SPELL_DETONATION);
+ Detonation = true;
+
+ }else Detonation_Timer -= diff;
+
+ }
+
+ if (Detonation)
+ {
+ if (Die_Timer < diff)
+ {
+ m_creature->setDeathState(JUST_DIED);
+ m_creature->RemoveCorpse();
+ }else Die_Timer -= diff;
+ }
+
+
+ DoMeleeAttackIfReady();
+ }
+
+};
+CreatureAI* GetAI_mob_nether_wraith(Creature *_Creature)
+{
+ return new mob_nether_wraithAI (_Creature);
+}
+
+void AddSC_boss_pathaleon_the_calculator()
+{
+ Script *newscript;
+ newscript = new Script;
+ newscript->Name="boss_pathaleon_the_calculator";
+ newscript->GetAI = GetAI_boss_pathaleon_the_calculator;
+ newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name="mob_nether_wraith";
+ newscript->GetAI = GetAI_mob_nether_wraith;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp
index c58ab523b90..d25b9d05470 100644
--- a/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp
+++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp
@@ -1,90 +1,90 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: Instance_Mechanar
-SD%Complete: 100
-SDComment:
-SDCategory: Mechanar
-EndScriptData */
-
-#include "precompiled.h"
-#include "def_mechanar.h"
-
-struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance
-{
- instance_mechanar(Map *Map) : ScriptedInstance(Map) {Initialize();};
-
-
- bool IsBossDied[1];
-
- void OnCreatureCreate (Creature *creature, uint32 creature_entry)
- {
- }
-
- void Initialize()
- {
- IsBossDied[0] = false;
- }
-
- bool IsEncounterInProgress() const
- {
- //not active
- return false;
- }
-
- uint32 GetData(uint32 type)
- {
- switch(type)
- {
- case DATA_SEPETHREAISDEAD:
- if(IsBossDied[0])
- return 1;
- break;
- }
-
- return 0;
- }
-
- uint64 GetData64 (uint32 identifier)
- {
- return 0;
- }
-
- void SetData(uint32 type, uint32 data)
- {
- switch(type)
- {
- case DATA_SEPETHREA_DEATH:
- IsBossDied[0] = true;
- break;
- }
- }
-};
-
-InstanceData* GetInstanceData_instance_mechanar(Map* map)
-{
- return new instance_mechanar(map);
-}
-
-void AddSC_instance_mechanar()
-{
- Script *newscript;
- newscript = new Script;
- newscript->Name = "instance_mechanar";
- newscript->GetInstanceData = GetInstanceData_instance_mechanar;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ScriptData
+SDName: Instance_Mechanar
+SD%Complete: 100
+SDComment:
+SDCategory: Mechanar
+EndScriptData */
+
+#include "precompiled.h"
+#include "def_mechanar.h"
+
+struct TRINITY_DLL_DECL instance_mechanar : public ScriptedInstance
+{
+ instance_mechanar(Map *Map) : ScriptedInstance(Map) {Initialize();};
+
+
+ bool IsBossDied[1];
+
+ void OnCreatureCreate (Creature *creature, uint32 creature_entry)
+ {
+ }
+
+ void Initialize()
+ {
+ IsBossDied[0] = false;
+ }
+
+ bool IsEncounterInProgress() const
+ {
+ //not active
+ return false;
+ }
+
+ uint32 GetData(uint32 type)
+ {
+ switch(type)
+ {
+ case DATA_SEPETHREAISDEAD:
+ if(IsBossDied[0])
+ return 1;
+ break;
+ }
+
+ return 0;
+ }
+
+ uint64 GetData64 (uint32 identifier)
+ {
+ return 0;
+ }
+
+ void SetData(uint32 type, uint32 data)
+ {
+ switch(type)
+ {
+ case DATA_SEPETHREA_DEATH:
+ IsBossDied[0] = true;
+ break;
+ }
+ }
+};
+
+InstanceData* GetInstanceData_instance_mechanar(Map* map)
+{
+ return new instance_mechanar(map);
+}
+
+void AddSC_instance_mechanar()
+{
+ Script *newscript;
+ newscript = new Script;
+ newscript->Name = "instance_mechanar";
+ newscript->GetInstanceData = GetInstanceData_instance_mechanar;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
index 1dba25cd132..8f2f025f7f1 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp
@@ -334,15 +334,15 @@ void AddSC_bug_trio()
newscript = new Script;
newscript->Name="boss_kri";
newscript->GetAI = GetAI_boss_kri;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_vem";
newscript->GetAI = GetAI_boss_vem;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_yauj";
newscript->GetAI = GetAI_boss_yauj;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
index 0116947e390..b789f68e9aa 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp
@@ -577,20 +577,23 @@ struct TRINITY_DLL_DECL cthunAI : public Scripted_NoMovementAI
Map *map = m_creature->GetMap();
if(!map->IsDungeon()) return;
- InstanceMap::PlayerList const &PlayerList = ((InstanceMap*)map)->GetPlayers();
- for (InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- //Play random sound to the zone
- switch (rand()%8)
+ if (Player* i_pl = i->getSource())
{
- case 0: (*i)->SendPlaySound(RND_WISPER_1, true); break;
- case 1: (*i)->SendPlaySound(RND_WISPER_2, true); break;
- case 2: (*i)->SendPlaySound(RND_WISPER_3, true); break;
- case 3: (*i)->SendPlaySound(RND_WISPER_4, true); break;
- case 4: (*i)->SendPlaySound(RND_WISPER_5, true); break;
- case 5: (*i)->SendPlaySound(RND_WISPER_6, true); break;
- case 6: (*i)->SendPlaySound(RND_WISPER_7, true); break;
- case 7: (*i)->SendPlaySound(RND_WISPER_8, true); break;
+ //Play random sound to the zone
+ switch (rand()%8)
+ {
+ case 0: i_pl->SendPlaySound(RND_WISPER_1, true); break;
+ case 1: i_pl->SendPlaySound(RND_WISPER_2, true); break;
+ case 2: i_pl->SendPlaySound(RND_WISPER_3, true); break;
+ case 3: i_pl->SendPlaySound(RND_WISPER_4, true); break;
+ case 4: i_pl->SendPlaySound(RND_WISPER_5, true); break;
+ case 5: i_pl->SendPlaySound(RND_WISPER_6, true); break;
+ case 6: i_pl->SendPlaySound(RND_WISPER_7, true); break;
+ case 7: i_pl->SendPlaySound(RND_WISPER_8, true); break;
+ }
}
}
@@ -1326,35 +1329,35 @@ void AddSC_boss_cthun()
newscript = new Script;
newscript->Name="boss_eye_of_cthun";
newscript->GetAI = GetAI_eye_of_cthun;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_cthun";
newscript->GetAI = GetAI_cthun;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_eye_tentacle";
newscript->GetAI = GetAI_eye_tentacle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_claw_tentacle";
newscript->GetAI = GetAI_claw_tentacle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_giant_claw_tentacle";
newscript->GetAI = GetAI_giant_claw_tentacle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_giant_eye_tentacle";
newscript->GetAI = GetAI_giant_eye_tentacle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_giant_flesh_tentacle";
newscript->GetAI = GetAI_flesh_tentacle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
index 331e43d83ef..babd0ebf7c2 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp
@@ -186,5 +186,5 @@ void AddSC_boss_fankriss()
newscript = new Script;
newscript->Name="boss_fankriss";
newscript->GetAI = GetAI_boss_fankriss;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp
index 7fb10528dff..51e030fa49d 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp
@@ -139,5 +139,5 @@ void AddSC_boss_huhuran()
newscript = new Script;
newscript->Name="boss_huhuran";
newscript->GetAI = GetAI_boss_huhuran;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp
index df7efb8f123..1e0e8fbca6d 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp
@@ -136,5 +136,5 @@ void AddSC_boss_ouro()
newscript = new Script;
newscript->Name="boss_ouro";
newscript->GetAI = GetAI_boss_ouro;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp
index 3315e49732c..c9a732493f7 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp
@@ -259,10 +259,10 @@ void AddSC_boss_sartura()
newscript = new Script;
newscript->Name="boss_sartura";
newscript->GetAI = GetAI_boss_sartura;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_sartura_royal_guard";
newscript->GetAI = GetAI_mob_sartura_royal_guard;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
index 9d383ef0d61..9194354ddc0 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp
@@ -310,5 +310,5 @@ void AddSC_boss_skeram()
newscript = new Script;
newscript->Name="boss_skeram";
newscript->GetAI = GetAI_boss_skeram;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
index 2ddb8be73c7..93525ad7246 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp
@@ -689,10 +689,10 @@ void AddSC_boss_twinemperors()
newscript = new Script;
newscript->Name="boss_veknilash";
newscript->GetAI = GetAI_boss_veknilash;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_veklor";
newscript->GetAI = GetAI_boss_veklor;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp
index f502b2aa23d..84713b190cf 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp
@@ -161,5 +161,5 @@ void AddSC_instance_temple_of_ahnqiraj()
newscript = new Script;
newscript->Name = "instance_temple_of_ahnqiraj";
newscript->GetInstanceData = GetInstanceData_instance_temple_of_ahnqiraj;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp
index 1c009721428..f5a55d711b7 100644
--- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp
+++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp
@@ -309,7 +309,7 @@ void AddSC_mob_anubisath_sentinel()
newscript = new Script;
newscript->Name="mob_anubisath_sentinel";
newscript->GetAI = GetAI_mob_anubisath_sentinelAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
SentinelAbilityAura::~SentinelAbilityAura() {}
diff --git a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
index d38b7186172..d84c3c58133 100644
--- a/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
+++ b/src/bindings/scripts/scripts/zone/terokkar_forest/terokkar_forest.cpp
@@ -368,32 +368,32 @@ void AddSC_terokkar_forest()
newscript = new Script;
newscript->Name="mob_unkor_the_ruthless";
newscript->GetAI = GetAI_mob_unkor_the_ruthless;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_infested_root_walker";
newscript->GetAI = GetAI_mob_infested_root_walker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_rotting_forest_rager";
newscript->GetAI = GetAI_mob_rotting_forest_rager;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_netherweb_victim";
newscript->GetAI = GetAI_mob_netherweb_victim;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_floon";
newscript->pGossipHello = &GossipHello_npc_floon;
newscript->pGossipSelect = &GossipSelect_npc_floon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_skyguard_handler_deesak";
newscript->pGossipHello = &GossipHello_npc_skyguard_handler_deesak;
newscript->pGossipSelect = &GossipSelect_npc_skyguard_handler_deesak;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp b/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp
index ae65bd9d232..4b7dcd5a84a 100644
--- a/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp
+++ b/src/bindings/scripts/scripts/zone/thunder_bluff/thunder_bluff.cpp
@@ -132,5 +132,5 @@ void AddSC_thunder_bluff()
newscript->GetAI = GetAI_npc_cairne_bloodhoof;
newscript->pGossipHello = &GossipHello_npc_cairne_bloodhoof;
newscript->pGossipSelect = &GossipSelect_npc_cairne_bloodhoof;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp
index f95bc029752..d037b2b7e14 100644
--- a/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp
+++ b/src/bindings/scripts/scripts/zone/tirisfal_glades/tirisfal_glades.cpp
@@ -84,5 +84,5 @@ void AddSC_tirisfal_glades()
newscript->Name="npc_calvin_montague";
newscript->GetAI = GetAI_npc_calvin_montague;
newscript->pQuestAccept = &QuestAccept_npc_calvin_montague;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp b/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp
index 34f8fda78cf..db4b7c22df3 100644
--- a/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp
+++ b/src/bindings/scripts/scripts/zone/uldaman/boss_ironaya.cpp
@@ -103,5 +103,5 @@ void AddSC_boss_ironaya()
newscript = new Script;
newscript->Name="boss_ironaya";
newscript->GetAI = GetAI_boss_ironaya;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp b/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp
index 1e1a6eb8462..e8453db9f65 100644
--- a/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp
+++ b/src/bindings/scripts/scripts/zone/uldaman/uldaman.cpp
@@ -177,11 +177,11 @@ void AddSC_uldaman()
newscript = new Script;
newscript->Name="mob_jadespine_basilisk";
newscript->GetAI = GetAI_mob_jadespine_basilisk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_lore_keeper_of_norgannon";
newscript->pGossipHello = &GossipHello_npc_lore_keeper_of_norgannon;
newscript->pGossipSelect = &GossipSelect_npc_lore_keeper_of_norgannon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp
index b395121c73c..89ded786ce5 100644
--- a/src/bindings/scripts/scripts/zone/undercity/undercity.cpp
+++ b/src/bindings/scripts/scripts/zone/undercity/undercity.cpp
@@ -245,16 +245,16 @@ void AddSC_undercity()
newscript->Name="npc_lady_sylvanas_windrunner";
newscript->GetAI = GetAI_npc_lady_sylvanas_windrunner;
newscript->pChooseReward = &ChooseReward_npc_lady_sylvanas_windrunner;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_highborne_lamenter";
newscript->GetAI = GetAI_npc_highborne_lamenter;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_parqual_fintallas";
newscript->pGossipHello = &GossipHello_npc_parqual_fintallas;
newscript->pGossipSelect = &GossipSelect_npc_parqual_fintallas;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp
index c3725b0afc9..3f8dee012f4 100644
--- a/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp
+++ b/src/bindings/scripts/scripts/zone/western_plaguelands/western_plaguelands.cpp
@@ -167,10 +167,10 @@ void AddSC_western_plaguelands()
newscript->Name="npcs_dithers_and_arbington";
newscript->pGossipHello = &GossipHello_npcs_dithers_and_arbington;
newscript->pGossipSelect = &GossipSelect_npcs_dithers_and_arbington;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_the_scourge_cauldron";
newscript->GetAI = GetAI_npc_the_scourge_cauldron;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp
index 446f71f1c56..40faa01a9f0 100644
--- a/src/bindings/scripts/scripts/zone/westfall/westfall.cpp
+++ b/src/bindings/scripts/scripts/zone/westfall/westfall.cpp
@@ -1,179 +1,179 @@
-/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/* ScriptData
-SDName: Westfall
-SD%Complete: 90
-SDComment: Quest support: 155
-SDCategory: Westfall
-EndScriptData */
-
-/* ContentData
-npc_defias_traitor
-EndContentData */
-
-#include "precompiled.h"
-#include "../../npc/npc_escortAI.h"
-
-#define SAY_START -1000101
-#define SAY_PROGRESS -1000102
-#define SAY_END -1000103
-#define SAY_AGGRO_1 -1000104
-#define SAY_AGGRO_2 -1000105
-
-#define QUEST_DEFIAS_BROTHERHOOD 155
-
-struct TRINITY_DLL_DECL npc_defias_traitorAI : public npc_escortAI
-{
- npc_defias_traitorAI(Creature *c) : npc_escortAI(c) {Reset();}
-
- bool IsWalking;
-
- void WaypointReached(uint32 i)
- {
- Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
-
- if (!player)
- return;
-
- if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE))
- m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
-
- switch (i)
- {
- case 35:
- IsWalking = true;
- break;
- case 36:
- DoScriptText(SAY_PROGRESS, m_creature, player);
- break;
- case 44:
- DoScriptText(SAY_END, m_creature, player);
- {
- if (player && player->GetTypeId() == TYPEID_PLAYER)
- ((Player*)player)->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD,m_creature);
- }
- break;
- }
- }
- void Aggro(Unit* who)
- {
- switch(rand()%2)
- {
- case 0: DoScriptText(SAY_AGGRO_1, m_creature, who); break;
- case 1: DoScriptText(SAY_AGGRO_2, m_creature, who); break;
- }
- }
-
- void Reset()
- {
- if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE))
- {
- m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
- return;
- }
- IsWalking = false;
- }
-
- void JustDied(Unit* killer)
- {
- if (PlayerGUID)
- {
- if (Unit* player = Unit::GetUnit((*m_creature), PlayerGUID))
- ((Player*)player)->FailQuest(QUEST_DEFIAS_BROTHERHOOD);
- }
- }
-
- void UpdateAI(const uint32 diff)
- {
- npc_escortAI::UpdateAI(diff);
- }
-};
-
-bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest const* quest)
-{
- if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD)
- {
- ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID());
- DoScriptText(SAY_START, creature, player);
- }
-
- return true;
-}
-
-CreatureAI* GetAI_npc_defias_traitor(Creature *_Creature)
-{
- npc_defias_traitorAI* thisAI = new npc_defias_traitorAI(_Creature);
-
- thisAI->AddWaypoint(0, -10508.40, 1068.00, 55.21);
- thisAI->AddWaypoint(1, -10518.30, 1074.84, 53.96);
- thisAI->AddWaypoint(2, -10534.82, 1081.92, 49.88);
- thisAI->AddWaypoint(3, -10546.51, 1084.88, 50.13);
- thisAI->AddWaypoint(4, -10555.29, 1084.45, 45.75);
- thisAI->AddWaypoint(5, -10566.57, 1083.53, 42.10);
- thisAI->AddWaypoint(6, -10575.83, 1082.34, 39.46);
- thisAI->AddWaypoint(7, -10585.67, 1081.08, 37.77);
- thisAI->AddWaypoint(8, -10600.08, 1078.19, 36.23);
- thisAI->AddWaypoint(9, -10608.69, 1076.08, 35.88);
- thisAI->AddWaypoint(10, -10621.26, 1073.00, 35.40);
- thisAI->AddWaypoint(11, -10638.12, 1060.18, 33.61);
- thisAI->AddWaypoint(12, -10655.87, 1038.99, 33.48);
- thisAI->AddWaypoint(13, -10664.68, 1030.54, 32.70);
- thisAI->AddWaypoint(14, -10708.68, 1033.86, 33.32);
- thisAI->AddWaypoint(15, -10754.43, 1017.93, 32.79);
- thisAI->AddWaypoint(16, -10802.26, 1018.01, 32.16);
- thisAI->AddWaypoint(17, -10832.60, 1009.04, 32.71);
- thisAI->AddWaypoint(18, -10866.56, 1006.51, 31.71); // Fix waypoints from roughly this point, test first to get proper one
- thisAI->AddWaypoint(19, -10879.98, 1005.10, 32.84);
- thisAI->AddWaypoint(20, -10892.45, 1001.32, 34.46);
- thisAI->AddWaypoint(21, -10906.14, 997.11, 36.15);
- thisAI->AddWaypoint(22, -10922.26, 1002.23, 35.74);
- thisAI->AddWaypoint(23, -10936.32, 1023.38, 36.52);
- thisAI->AddWaypoint(24, -10933.35, 1052.61, 35.85);
- thisAI->AddWaypoint(25, -10940.25, 1077.66, 36.49);
- thisAI->AddWaypoint(26, -10957.09, 1099.33, 36.83);
- thisAI->AddWaypoint(27, -10956.53, 1119.90, 36.73);
- thisAI->AddWaypoint(28, -10939.30, 1150.75, 37.42);
- thisAI->AddWaypoint(29, -10915.14, 1202.09, 36.55);
- thisAI->AddWaypoint(30, -10892.59, 1257.03, 33.37);
- thisAI->AddWaypoint(31, -10891.93, 1306.66, 35.45);
- thisAI->AddWaypoint(32, -10896.17, 1327.86, 37.77);
- thisAI->AddWaypoint(33, -10906.03, 1368.05, 40.91);
- thisAI->AddWaypoint(34, -10910.18, 1389.33, 42.62);
- thisAI->AddWaypoint(35, -10915.42, 1417.72, 42.93);
- thisAI->AddWaypoint(36, -10926.37, 1421.18, 43.04); // walk here and say
- thisAI->AddWaypoint(37, -10952.31, 1421.74, 43.40);
- thisAI->AddWaypoint(38, -10980.04, 1411.38, 42.79);
- thisAI->AddWaypoint(39, -11006.06, 1420.47, 43.26);
- thisAI->AddWaypoint(40, -11021.98, 1450.59, 43.09);
- thisAI->AddWaypoint(41, -11025.36, 1491.59, 43.15);
- thisAI->AddWaypoint(42, -11036.09, 1508.32, 43.28);
- thisAI->AddWaypoint(43, -11060.68, 1526.72, 43.19);
- thisAI->AddWaypoint(44, -11072.75, 1527.77, 43.20, 5000);// say and quest credit
-
- return (CreatureAI*)thisAI;
-}
-
-void AddSC_westfall()
-{
- Script *newscript;
-
- newscript = new Script;
- newscript->Name="npc_defias_traitor";
- newscript->GetAI = &GetAI_npc_defias_traitor;
- newscript->pQuestAccept = &QuestAccept_npc_defias_traitor;
- m_scripts[nrscripts++] = newscript;
-}
+/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/* ScriptData
+SDName: Westfall
+SD%Complete: 90
+SDComment: Quest support: 155
+SDCategory: Westfall
+EndScriptData */
+
+/* ContentData
+npc_defias_traitor
+EndContentData */
+
+#include "precompiled.h"
+#include "../../npc/npc_escortAI.h"
+
+#define SAY_START -1000101
+#define SAY_PROGRESS -1000102
+#define SAY_END -1000103
+#define SAY_AGGRO_1 -1000104
+#define SAY_AGGRO_2 -1000105
+
+#define QUEST_DEFIAS_BROTHERHOOD 155
+
+struct TRINITY_DLL_DECL npc_defias_traitorAI : public npc_escortAI
+{
+ npc_defias_traitorAI(Creature *c) : npc_escortAI(c) {Reset();}
+
+ bool IsWalking;
+
+ void WaypointReached(uint32 i)
+ {
+ Unit* player = Unit::GetUnit((*m_creature), PlayerGUID);
+
+ if (!player)
+ return;
+
+ if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE))
+ m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
+
+ switch (i)
+ {
+ case 35:
+ IsWalking = true;
+ break;
+ case 36:
+ DoScriptText(SAY_PROGRESS, m_creature, player);
+ break;
+ case 44:
+ DoScriptText(SAY_END, m_creature, player);
+ {
+ if (player && player->GetTypeId() == TYPEID_PLAYER)
+ ((Player*)player)->GroupEventHappens(QUEST_DEFIAS_BROTHERHOOD,m_creature);
+ }
+ break;
+ }
+ }
+ void Aggro(Unit* who)
+ {
+ switch(rand()%2)
+ {
+ case 0: DoScriptText(SAY_AGGRO_1, m_creature, who); break;
+ case 1: DoScriptText(SAY_AGGRO_2, m_creature, who); break;
+ }
+ }
+
+ void Reset()
+ {
+ if (IsWalking && !m_creature->HasUnitMovementFlag(MOVEMENTFLAG_WALK_MODE))
+ {
+ m_creature->AddUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
+ return;
+ }
+ IsWalking = false;
+ }
+
+ void JustDied(Unit* killer)
+ {
+ if (PlayerGUID)
+ {
+ if (Unit* player = Unit::GetUnit((*m_creature), PlayerGUID))
+ ((Player*)player)->FailQuest(QUEST_DEFIAS_BROTHERHOOD);
+ }
+ }
+
+ void UpdateAI(const uint32 diff)
+ {
+ npc_escortAI::UpdateAI(diff);
+ }
+};
+
+bool QuestAccept_npc_defias_traitor(Player* player, Creature* creature, Quest const* quest)
+{
+ if (quest->GetQuestId() == QUEST_DEFIAS_BROTHERHOOD)
+ {
+ ((npc_escortAI*)(creature->AI()))->Start(true, true, true, player->GetGUID());
+ DoScriptText(SAY_START, creature, player);
+ }
+
+ return true;
+}
+
+CreatureAI* GetAI_npc_defias_traitor(Creature *_Creature)
+{
+ npc_defias_traitorAI* thisAI = new npc_defias_traitorAI(_Creature);
+
+ thisAI->AddWaypoint(0, -10508.40, 1068.00, 55.21);
+ thisAI->AddWaypoint(1, -10518.30, 1074.84, 53.96);
+ thisAI->AddWaypoint(2, -10534.82, 1081.92, 49.88);
+ thisAI->AddWaypoint(3, -10546.51, 1084.88, 50.13);
+ thisAI->AddWaypoint(4, -10555.29, 1084.45, 45.75);
+ thisAI->AddWaypoint(5, -10566.57, 1083.53, 42.10);
+ thisAI->AddWaypoint(6, -10575.83, 1082.34, 39.46);
+ thisAI->AddWaypoint(7, -10585.67, 1081.08, 37.77);
+ thisAI->AddWaypoint(8, -10600.08, 1078.19, 36.23);
+ thisAI->AddWaypoint(9, -10608.69, 1076.08, 35.88);
+ thisAI->AddWaypoint(10, -10621.26, 1073.00, 35.40);
+ thisAI->AddWaypoint(11, -10638.12, 1060.18, 33.61);
+ thisAI->AddWaypoint(12, -10655.87, 1038.99, 33.48);
+ thisAI->AddWaypoint(13, -10664.68, 1030.54, 32.70);
+ thisAI->AddWaypoint(14, -10708.68, 1033.86, 33.32);
+ thisAI->AddWaypoint(15, -10754.43, 1017.93, 32.79);
+ thisAI->AddWaypoint(16, -10802.26, 1018.01, 32.16);
+ thisAI->AddWaypoint(17, -10832.60, 1009.04, 32.71);
+ thisAI->AddWaypoint(18, -10866.56, 1006.51, 31.71); // Fix waypoints from roughly this point, test first to get proper one
+ thisAI->AddWaypoint(19, -10879.98, 1005.10, 32.84);
+ thisAI->AddWaypoint(20, -10892.45, 1001.32, 34.46);
+ thisAI->AddWaypoint(21, -10906.14, 997.11, 36.15);
+ thisAI->AddWaypoint(22, -10922.26, 1002.23, 35.74);
+ thisAI->AddWaypoint(23, -10936.32, 1023.38, 36.52);
+ thisAI->AddWaypoint(24, -10933.35, 1052.61, 35.85);
+ thisAI->AddWaypoint(25, -10940.25, 1077.66, 36.49);
+ thisAI->AddWaypoint(26, -10957.09, 1099.33, 36.83);
+ thisAI->AddWaypoint(27, -10956.53, 1119.90, 36.73);
+ thisAI->AddWaypoint(28, -10939.30, 1150.75, 37.42);
+ thisAI->AddWaypoint(29, -10915.14, 1202.09, 36.55);
+ thisAI->AddWaypoint(30, -10892.59, 1257.03, 33.37);
+ thisAI->AddWaypoint(31, -10891.93, 1306.66, 35.45);
+ thisAI->AddWaypoint(32, -10896.17, 1327.86, 37.77);
+ thisAI->AddWaypoint(33, -10906.03, 1368.05, 40.91);
+ thisAI->AddWaypoint(34, -10910.18, 1389.33, 42.62);
+ thisAI->AddWaypoint(35, -10915.42, 1417.72, 42.93);
+ thisAI->AddWaypoint(36, -10926.37, 1421.18, 43.04); // walk here and say
+ thisAI->AddWaypoint(37, -10952.31, 1421.74, 43.40);
+ thisAI->AddWaypoint(38, -10980.04, 1411.38, 42.79);
+ thisAI->AddWaypoint(39, -11006.06, 1420.47, 43.26);
+ thisAI->AddWaypoint(40, -11021.98, 1450.59, 43.09);
+ thisAI->AddWaypoint(41, -11025.36, 1491.59, 43.15);
+ thisAI->AddWaypoint(42, -11036.09, 1508.32, 43.28);
+ thisAI->AddWaypoint(43, -11060.68, 1526.72, 43.19);
+ thisAI->AddWaypoint(44, -11072.75, 1527.77, 43.20, 5000);// say and quest credit
+
+ return (CreatureAI*)thisAI;
+}
+
+void AddSC_westfall()
+{
+ Script *newscript;
+
+ newscript = new Script;
+ newscript->Name="npc_defias_traitor";
+ newscript->GetAI = &GetAI_npc_defias_traitor;
+ newscript->pQuestAccept = &QuestAccept_npc_defias_traitor;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp b/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp
index 7d6f8ea30fb..08ead2eb1de 100644
--- a/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp
+++ b/src/bindings/scripts/scripts/zone/winterspring/winterspring.cpp
@@ -141,17 +141,17 @@ void AddSC_winterspring()
newscript->Name="npc_lorax";
newscript->pGossipHello = &GossipHello_npc_lorax;
newscript->pGossipSelect = &GossipSelect_npc_lorax;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_rivern_frostwind";
newscript->pGossipHello = &GossipHello_npc_rivern_frostwind;
newscript->pGossipSelect = &GossipSelect_npc_rivern_frostwind;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_witch_doctor_mauari";
newscript->pGossipHello = &GossipHello_npc_witch_doctor_mauari;
newscript->pGossipSelect = &GossipSelect_npc_witch_doctor_mauari;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp
index 621d3e5da49..fdce0029e9d 100644
--- a/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp
+++ b/src/bindings/scripts/scripts/zone/zangarmarsh/zangarmarsh.cpp
@@ -261,23 +261,23 @@ void AddSC_zangarmarsh()
newscript->Name="npcs_ashyen_and_keleth";
newscript->pGossipHello = &GossipHello_npcs_ashyen_and_keleth;
newscript->pGossipSelect = &GossipSelect_npcs_ashyen_and_keleth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_cooshcoosh";
newscript->pGossipHello = &GossipHello_npc_cooshcoosh;
newscript->pGossipSelect = &GossipSelect_npc_cooshcoosh;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_elder_kuruti";
newscript->pGossipHello = &GossipHello_npc_elder_kuruti;
newscript->pGossipSelect = &GossipSelect_npc_elder_kuruti;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_mortog_steamhead";
newscript->pGossipHello = &GossipHello_npc_mortog_steamhead;
newscript->pGossipSelect = &GossipSelect_npc_mortog_steamhead;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp
index c7327376ae1..4b9eb2afa88 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_akilzon.cpp
@@ -461,10 +461,10 @@ void AddSC_boss_akilzon()
newscript = new Script;
newscript->Name="boss_akilzon";
newscript->GetAI = GetAI_boss_akilzon;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_akilzon_eagle";
newscript->GetAI = GetAI_mob_soaring_eagle;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp
index 8daab23c6b2..19235677831 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_halazzi.cpp
@@ -394,10 +394,10 @@ void AddSC_boss_halazzi()
newscript = new Script;
newscript->Name="boss_halazzi";
newscript->GetAI = GetAI_boss_halazziAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_halazzi_lynx";
newscript->GetAI = GetAI_boss_spiritlynxAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
index d0a78f3c848..4d36a138765 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_hexlord.cpp
@@ -371,7 +371,7 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
if(SiphonSoul_Timer < diff)
{
- Player* target = SelectRandomPlayer(50);
+ Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0, 70, true);
Unit *trigger = DoSpawnCreature(MOB_TEMP_TRIGGER, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 30000);
if(!target || !trigger) EnterEvadeMode();
else
@@ -435,26 +435,6 @@ struct TRINITY_DLL_DECL boss_hex_lord_malacrassAI : public ScriptedAI
}
m_creature->CastSpell(target, PlayerAbility[PlayerClass][random].spell, false);
}
-
- Player* SelectRandomPlayer(float range = 0.0f, bool alive = true)
- {
- Map *map = m_creature->GetMap();
- if (!map->IsDungeon()) return NULL;
-
- InstanceMap::PlayerList PlayerList = ((InstanceMap*)map)->GetPlayers();
- InstanceMap::PlayerList::iterator i;
- while(PlayerList.size())
- {
- i = PlayerList.begin();
- advance(i, rand()%PlayerList.size());
- if((range == 0.0f || m_creature->IsWithinDistInMap(*i, range))
- && (!alive || (*i)->isAlive()))
- return *i;
- else
- PlayerList.erase(i);
- }
- return NULL;
- }
};
#define SPELL_BLOODLUST 43578
@@ -888,45 +868,45 @@ void AddSC_boss_hex_lord_malacrass()
newscript = new Script;
newscript->Name="boss_hexlord_malacrass";
newscript->GetAI = GetAI_boss_hex_lord_malacrass;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_thurg";
newscript->GetAI = GetAI_boss_thurg;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_gazakroth";
newscript->GetAI = GetAI_boss_gazakroth;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_lord_raadan";
newscript->GetAI = GetAI_boss_lord_raadan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_darkheart";
newscript->GetAI = GetAI_boss_darkheart;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_slither";
newscript->GetAI = GetAI_boss_slither;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_fenstalker";
newscript->GetAI = GetAI_boss_fenstalker;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_koragg";
newscript->GetAI = GetAI_boss_koragg;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="boss_alyson_antille";
newscript->GetAI = GetAI_boss_alyson_antille;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
} \ No newline at end of file
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
index 0b460404f92..463425a5ef3 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
@@ -397,11 +397,12 @@ struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI
//Teleport every Player into the middle
Map *map = m_creature->GetMap();
if(!map->IsDungeon()) return;
- InstanceMap::PlayerList const &PlayerList =((InstanceMap*)map)->GetPlayers();
- for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ Map::PlayerList const &PlayerList = map->GetPlayers();
+ for(Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
{
- if((*i)->isAlive())
- DoTeleportPlayer(*i, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0);
+ if (Player* i_pl = i->getSource())
+ if(i_pl->isAlive())
+ DoTeleportPlayer(i_pl, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0);
}
//m_creature->CastSpell(Temp, SPELL_SUMMON_PLAYERS, true); // core bug, spell does not work if too far
return;
@@ -705,25 +706,25 @@ void AddSC_boss_janalai()
newscript = new Script;
newscript->Name="boss_janalai";
newscript->GetAI = GetAI_boss_janalaiAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_janalai_firebomb";
newscript->GetAI = GetAI_mob_jandalai_firebombAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_janalai_hatcher";
newscript->GetAI = GetAI_mob_amanishi_hatcherAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_janalai_hatchling";
newscript->GetAI = GetAI_mob_hatchlingAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_janalai_egg";
newscript->GetAI = GetAI_mob_eggAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
index d51e1cdfa00..359bf496043 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
@@ -300,5 +300,5 @@ void AddSC_boss_nalorakk()
newscript = new Script;
newscript->Name="boss_nalorakk";
newscript->GetAI = GetAI_boss_nalorakk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
index 0b41f591d06..2fa0b83432a 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/boss_zuljin.cpp
@@ -629,15 +629,15 @@ void AddSC_boss_zuljin()
newscript = new Script;
newscript->Name="boss_zuljin";
newscript->GetAI = GetAI_boss_zuljin;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="do_nothing";
newscript->GetAI = GetAI_do_nothing;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_zuljin_vortex";
newscript->GetAI = GetAI_feather_vortexAI;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp
index 2e9e481236f..c0c68c1a2e4 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp
@@ -139,21 +139,28 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance
void OpenDoor(uint64 DoorGUID, bool open)
{
- if(((InstanceMap*)instance)->GetPlayers().size())
- if(Player* first = ((InstanceMap*)instance)->GetPlayers().front())
- if(GameObject *Door = GameObject::GetGameObject(*first, DoorGUID))
- Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
+ if(GameObject *Door = instance->GetGameObjectInMap(DoorGUID))
+ Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
}
void SummonHostage(uint8 num)
{
- if(QuestMinute && ((InstanceMap*)instance)->GetPlayers().size())
- if(Player* first = ((InstanceMap*)instance)->GetPlayers().front())
- if(Unit* Hostage = first->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0))
- {
- Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- }
+ if(!QuestMinute)
+ return;
+
+ Map::PlayerList const &PlayerList = instance->GetPlayers();
+ if (PlayerList.isEmpty())
+ return;
+
+ Map::PlayerList::const_iterator i = PlayerList.begin();
+ if(Player* i_pl = i->getSource())
+ {
+ if(Unit* Hostage = i_pl->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0))
+ {
+ Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
+ }
+ }
}
void CheckInstanceStatus()
@@ -321,5 +328,5 @@ void AddSC_instance_zulaman()
newscript = new Script;
newscript->Name = "instance_zulaman";
newscript->GetInstanceData = GetInstanceData_instance_zulaman;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
index 4927ff4869a..b28b8a9bd06 100644
--- a/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
+++ b/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
@@ -171,12 +171,12 @@ void AddSC_zulaman()
newscript = new Script;
newscript->Name="npc_forest_frog";
newscript->GetAI = GetAI_npc_forest_frog;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_zulaman_hostage";
newscript->GetAI = GetAI_npc_zulaman_hostage;
newscript->pGossipHello = GossipHello_npc_zulaman_hostage;
newscript->pGossipSelect = GossipSelect_npc_zulaman_hostage;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp
index 6145f640634..a385314a12d 100644
--- a/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp
+++ b/src/bindings/scripts/scripts/zone/zulfarrak/zulfarrak.cpp
@@ -213,12 +213,12 @@ void AddSC_zulfarrak()
newscript->GetAI = GetAI_npc_sergeant_bly;
newscript->pGossipHello = &GossipHello_npc_sergeant_bly;
newscript->pGossipSelect = &GossipSelect_npc_sergeant_bly;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="npc_weegli_blastfuse";
newscript->GetAI = GetAI_npc_weegli_blastfuse;
newscript->pGossipHello = &GossipHello_npc_weegli_blastfuse;
newscript->pGossipSelect = &GossipSelect_npc_weegli_blastfuse;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
index e32538616f6..0d08f35c6a1 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_arlokk.cpp
@@ -207,5 +207,5 @@ void AddSC_boss_arlokk()
newscript = new Script;
newscript->Name="boss_arlokk";
newscript->GetAI = GetAI_boss_arlokk;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp
index 7168d647d49..bcbd8287c46 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_gahzranka.cpp
@@ -88,5 +88,5 @@ void AddSC_boss_gahzranka()
newscript = new Script;
newscript->Name="boss_gahzranka";
newscript->GetAI = GetAI_boss_gahzranka;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp
index c882aa3ae6f..d9ab005a8d5 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_grilek.cpp
@@ -88,5 +88,5 @@ void AddSC_boss_grilek()
newscript = new Script;
newscript->Name="boss_grilek";
newscript->GetAI = GetAI_boss_grilek;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp
index cdd4c42128b..93db797e25f 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hakkar.cpp
@@ -252,5 +252,5 @@ void AddSC_boss_hakkar()
newscript = new Script;
newscript->Name="boss_hakkar";
newscript->GetAI = GetAI_boss_hakkar;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
index 62140f5303d..166e5bb0467 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_hazzarah.cpp
@@ -96,5 +96,5 @@ void AddSC_boss_hazzarah()
newscript = new Script;
newscript->Name="boss_hazzarah";
newscript->GetAI = GetAI_boss_hazzarah;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
index 86b6068cb3a..ce63d6f1587 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jeklik.cpp
@@ -288,10 +288,10 @@ void AddSC_boss_jeklik()
newscript = new Script;
newscript->Name="boss_jeklik";
newscript->GetAI = GetAI_boss_jeklik;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_batrider";
newscript->GetAI = GetAI_mob_batrider;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
index a5752845b92..f133cc6bceb 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_jindo.cpp
@@ -258,15 +258,15 @@ void AddSC_boss_jindo()
newscript = new Script;
newscript->Name="boss_jindo";
newscript->GetAI = GetAI_boss_jindo;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_healing_ward";
newscript->GetAI = GetAI_mob_healing_ward;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_shade_of_jindo";
newscript->GetAI = GetAI_mob_shade_of_jindo;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp
index 9781fae1f2d..a70f39e2210 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_mandokir.cpp
@@ -302,10 +302,10 @@ void AddSC_boss_mandokir()
newscript = new Script;
newscript->Name="boss_mandokir";
newscript->GetAI = GetAI_boss_mandokir;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_ohgan";
newscript->GetAI = GetAI_mob_ohgan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
index de9a440ba38..5f276a6c3f8 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_marli.cpp
@@ -244,10 +244,10 @@ void AddSC_boss_marli()
newscript = new Script;
newscript->Name="boss_marli";
newscript->GetAI = GetAI_boss_marli;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_spawn_of_marli";
newscript->GetAI = GetAI_mob_spawn_of_marli;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp
index ada5cc6cdbc..7febe276dc1 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_renataki.cpp
@@ -147,5 +147,5 @@ void AddSC_boss_renataki()
newscript = new Script;
newscript->Name="boss_renataki";
newscript->GetAI = GetAI_boss_renataki;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
index b1b44f9b94d..0eebbc1dda6 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_thekal.cpp
@@ -531,15 +531,15 @@ void AddSC_boss_thekal()
newscript = new Script;
newscript->Name="boss_thekal";
newscript->GetAI = GetAI_boss_thekal;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_zealot_lorkhan";
newscript->GetAI = GetAI_mob_zealot_lorkhan;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
newscript = new Script;
newscript->Name="mob_zealot_zath";
newscript->GetAI = GetAI_mob_zealot_zath;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
index 771b61c372f..3d8657d1b67 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_venoxis.cpp
@@ -196,5 +196,5 @@ void AddSC_boss_venoxis()
newscript = new Script;
newscript->Name="boss_venoxis";
newscript->GetAI = GetAI_boss_venoxis;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp b/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp
index 3ac05c97b04..83e682917ae 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/boss_wushoolay.cpp
@@ -80,5 +80,5 @@ void AddSC_boss_wushoolay()
newscript = new Script;
newscript->Name="boss_wushoolay";
newscript->GetAI = GetAI_boss_wushoolay;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}
diff --git a/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp b/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp
index 501c200fa5c..0e9a14a05b9 100644
--- a/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp
+++ b/src/bindings/scripts/scripts/zone/zulgurub/instance_zulgurub.cpp
@@ -234,5 +234,5 @@ void AddSC_instance_zulgurub()
newscript = new Script;
newscript->Name = "instance_zulgurub";
newscript->GetInstanceData = GetInstanceData_instance_zulgurub;
- m_scripts[nrscripts++] = newscript;
+ newscript->RegisterSelf();
}