diff options
author | Machiavelli <none@none> | 2009-08-16 03:25:27 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2009-08-16 03:25:27 +0200 |
commit | bcd0656b0d6d023c31eedf707db2d9dc044c3482 (patch) | |
tree | 6d9da9fa8a6d0a3949d8b726263c51da9e4cfdf5 /src | |
parent | 28449378508d21cbf5bedb4fada26d86c91ab987 (diff) | |
parent | 71c69e3460c3a5f62aaa739955342ce57072c529 (diff) |
*Merge
--HG--
branch : trunk
Diffstat (limited to 'src')
77 files changed, 1558 insertions, 1946 deletions
diff --git a/src/bindings/scripts/CMakeLists.txt b/src/bindings/scripts/CMakeLists.txt index bdb9291e4fd..9736d172850 100644 --- a/src/bindings/scripts/CMakeLists.txt +++ b/src/bindings/scripts/CMakeLists.txt @@ -4,20 +4,19 @@ SET(trinityscript_LIB_SRCS ScriptMgr.cpp ScriptMgr.h + base/escortAI.cpp + base/escortAI.h + base/guard_ai.cpp + base/guard_ai.h + base/simple_ai.cpp + base/simple_ai.h include/precompiled.cpp include/precompiled.h include/sc_creature.cpp include/sc_creature.h include/sc_gossip.h include/sc_instance.h - scripts/areatrigger/areatrigger_scripts.cpp - scripts/boss/boss_emeriss.cpp - scripts/boss/boss_lethon.cpp - scripts/boss/boss_taerar.cpp - scripts/boss/boss_ysondre.cpp - scripts/creature/mob_generic_creature.cpp - scripts/creature/simple_ai.cpp - scripts/creature/simple_ai.h + scripts/eastern_kingdoms/scarlet_enclave/the_scarlet_enclave.cpp scripts/eastern_kingdoms/alterac_mountains.cpp scripts/eastern_kingdoms/arathi_highlands.cpp scripts/eastern_kingdoms/blasted_lands.cpp @@ -30,6 +29,7 @@ SET(trinityscript_LIB_SRCS scripts/eastern_kingdoms/ghostlands.cpp scripts/eastern_kingdoms/hinterlands.cpp scripts/eastern_kingdoms/ironforge.cpp + scripts/eastern_kingdoms/isle_of_queldanas.cpp scripts/eastern_kingdoms/loch_modan.cpp scripts/eastern_kingdoms/searing_gorge.cpp scripts/eastern_kingdoms/silvermoon_city.cpp @@ -44,11 +44,6 @@ SET(trinityscript_LIB_SRCS scripts/examples/example_escort.cpp scripts/examples/example_gossip_codebox.cpp scripts/examples/example_misc.cpp - scripts/go/go_scripts.cpp - scripts/guard/guard_ai.cpp - scripts/guard/guard_ai.h - scripts/guard/guards.cpp - scripts/item/item_scripts.cpp scripts/kalimdor/ashenvale.cpp scripts/kalimdor/azshara.cpp scripts/kalimdor/azuremyst_isle.cpp @@ -76,17 +71,10 @@ SET(trinityscript_LIB_SRCS scripts/northrend/icecrown.cpp scripts/northrend/sholazar_basin.cpp scripts/northrend/zuldrak.cpp - scripts/npc/npc_escortAI.cpp - scripts/npc/npc_escortAI.h - scripts/npc/npc_innkeeper.cpp - scripts/npc/npc_professions.cpp - scripts/npc/npcs_special.cpp - scripts/npc/npc_taxi.cpp scripts/outland/blades_edge_mountains.cpp scripts/outland/boss_doomlord_kazzak.cpp scripts/outland/boss_doomwalker.cpp scripts/outland/hellfire_peninsula.cpp - scripts/outland/isle_of_queldanas.cpp scripts/outland/nagrand.cpp scripts/outland/netherstorm.cpp scripts/outland/shadowmoon_valley.cpp @@ -197,7 +185,6 @@ SET(trinityscript_LIB_SRCS scripts/zone/coilfang_resevoir/underbog/boss_the_black_stalker.cpp scripts/zone/deadmines/def_deadmines.h scripts/zone/deadmines/deadmines.cpp - scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp scripts/zone/gruuls_lair/boss_gruul.cpp scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp scripts/zone/gruuls_lair/def_gruuls_lair.h @@ -508,6 +495,21 @@ SET(trinityscript_LIB_SRCS scripts/zone/ulduar/ulduar/boss_yoggsaron.cpp scripts/zone/ulduar/ulduar/def_ulduar.h scripts/zone/ulduar/ulduar/instance_ulduar.cpp + scripts/world/areatrigger_scripts.cpp + scripts/world/boss_emeriss.cpp + scripts/world/boss_lethon.cpp + scripts/world/boss_taerar.cpp + scripts/world/boss_ysondre.cpp + scripts/world/go_scripts.cpp + scripts/world/guards.cpp + scripts/world/item_scripts.cpp + scripts/world/mob_generic_creature.cpp + scripts/world/npc_innkeeper.cpp + scripts/world/npc_professions.cpp + scripts/world/npcs_special.cpp + scripts/world/npc_taxi.cpp + system/ScriptLoader.cpp + system/ScriptLoader.h system.cpp ) diff --git a/src/bindings/scripts/ScriptMgr.cpp b/src/bindings/scripts/ScriptMgr.cpp index 50a502e98ed..84215e01a0c 100644 --- a/src/bindings/scripts/ScriptMgr.cpp +++ b/src/bindings/scripts/ScriptMgr.cpp @@ -8,6 +8,7 @@ #include "DBCStores.h" #include "ObjectMgr.h" #include "ProgressBar.h" +#include "../system/ScriptLoader.h" #define _FULLVERSION "TrinityScript" @@ -42,647 +43,6 @@ void FillSpellSummary(); void LoadOverridenSQLData(); void LoadOverridenDBCData(); -// -- Scripts to be added -- - -// -- Areatrigger -- -extern void AddSC_areatrigger_scripts(); - -// -- Boss -- -extern void AddSC_boss_emeriss(); -extern void AddSC_boss_taerar(); -extern void AddSC_boss_ysondre(); - -// -- Creature -- -extern void AddSC_generic_creature(); - -// -- Custom -- - -// -- Examples -- -extern void AddSC_example_creature(); -extern void AddSC_example_escort(); -extern void AddSC_example_gossip_codebox(); -extern void AddSC_example_misc(); - -// -- GO -- -extern void AddSC_go_scripts(); - -// -- Guard -- -extern void AddSC_guards(); - -// -- Honor -- - -// -- Item -- -extern void AddSC_item_scripts(); - -// -- NPC -- -extern void AddSC_npc_professions(); -extern void AddSC_npcs_special(); -extern void AddSC_npc_taxi(); - -// -- Servers -- - -//-------------------- -//------ ZONE -------- - -//Alterac Mountains -//extern void AddSC_alterac_mountains(); - -//Arathi Highlands -extern void AddSC_arathi_highlands(); - -//Ashenvale Forest -extern void AddSC_ashenvale(); - -//Aunchindoun -//--Auchenai Crypts -extern void AddSC_boss_exarch_maladaar(); -extern void AddSC_boss_shirrak_the_dead_watcher(); - -//--Mana Tombs -extern void AddSC_boss_nexusprince_shaffar(); -extern void AddSC_boss_pandemonius(); - -//--Sekketh Halls -extern void AddSC_boss_darkweaver_syth(); -extern void AddSC_boss_talon_king_ikiss(); -extern void AddSC_instance_sethekk_halls(); - -//--Shadow Labyrinth -extern void AddSC_boss_ambassador_hellmaw(); -extern void AddSC_boss_blackheart_the_inciter(); -extern void AddSC_boss_grandmaster_vorpil(); -extern void AddSC_boss_murmur(); -extern void AddSC_instance_shadow_labyrinth(); - -//Azjol-Nerub -//--Ahn'kahet -extern void AddSC_instance_ahnkahet(); -extern void AddSC_boss_elder_nadox(); - -//Azshara -extern void AddSC_boss_azuregos(); -extern void AddSC_azshara(); - -//Azuremyst Isle -extern void AddSC_azuremyst_isle(); - -//Badlands -//Barrens -extern void AddSC_the_barrens(); - -//Black Temple -extern void AddSC_black_temple(); -extern void AddSC_boss_illidan(); -extern void AddSC_boss_shade_of_akama(); -extern void AddSC_boss_supremus(); -extern void AddSC_boss_gurtogg_bloodboil(); -extern void AddSC_boss_mother_shahraz(); -extern void AddSC_boss_reliquary_of_souls(); -extern void AddSC_boss_teron_gorefiend(); -extern void AddSC_boss_najentus(); -extern void AddSC_boss_illidari_council(); -extern void AddSC_instance_black_temple(); - -//Blackfathom Depths -extern void AddSC_instance_blackfathom_deeps(); - -//Blackrock Depths -extern void AddSC_blackrock_depths(); -extern void AddSC_boss_ambassador_flamelash(); -extern void AddSC_boss_anubshiah(); -extern void AddSC_boss_draganthaurissan(); -extern void AddSC_boss_general_angerforge(); -extern void AddSC_boss_gorosh_the_dervish(); -extern void AddSC_boss_grizzle(); -extern void AddSC_boss_high_interrogator_gerstahn(); -extern void AddSC_boss_magmus(); -extern void AddSC_boss_moira_bronzebeard(); -extern void AddSC_boss_tomb_of_seven(); -extern void AddSC_instance_blackrock_depths(); - -//Blackrock Spire -extern void AddSC_boss_drakkisath(); -extern void AddSC_boss_halycon(); -extern void AddSC_boss_highlordomokk(); -extern void AddSC_boss_mothersmolderweb(); -extern void AddSC_boss_overlordwyrmthalak(); -extern void AddSC_boss_shadowvosh(); -extern void AddSC_boss_thebeast(); -extern void AddSC_boss_warmastervoone(); -extern void AddSC_boss_quatermasterzigris(); -extern void AddSC_boss_pyroguard_emberseer(); -extern void AddSC_boss_gyth(); -extern void AddSC_boss_rend_blackhand(); - -//Blackwing lair -extern void AddSC_boss_razorgore(); -extern void AddSC_boss_vael(); -extern void AddSC_boss_broodlord(); -extern void AddSC_boss_firemaw(); -extern void AddSC_boss_ebonroc(); -extern void AddSC_boss_flamegor(); -extern void AddSC_boss_chromaggus(); -extern void AddSC_boss_nefarian(); -extern void AddSC_boss_victor_nefarius(); - -//Blade's Edge Mountains -extern void AddSC_blades_edge_mountains(); - -//Blasted lands -extern void AddSC_boss_kruul(); -extern void AddSC_blasted_lands(); - -//Bloodmyst Isle -extern void AddSC_bloodmyst_isle(); - -//Borean Tundra -extern void AddSC_borean_tundra(); - -//Burning steppes -extern void AddSC_burning_steppes(); - -//Caverns of Time -//--Battle for Mt. Hyjal -extern void AddSC_hyjal(); -extern void AddSC_boss_archimonde(); -extern void AddSC_instance_mount_hyjal(); -extern void AddSC_hyjal_trash(); -extern void AddSC_boss_rage_winterchill(); -extern void AddSC_boss_anetheron(); -extern void AddSC_boss_kazrogal(); -extern void AddSC_boss_azgalor(); - -//--Old Hillsbrad -extern void AddSC_boss_captain_skarloc(); -extern void AddSC_boss_epoch_hunter(); -extern void AddSC_boss_lieutenant_drake(); -extern void AddSC_instance_old_hillsbrad(); -extern void AddSC_old_hillsbrad(); - -//--The Dark Portal -extern void AddSC_boss_aeonus(); -extern void AddSC_boss_chrono_lord_deja(); -extern void AddSC_boss_temporus(); -extern void AddSC_dark_portal(); -extern void AddSC_instance_dark_portal(); - -//Coilfang Resevoir -//--Serpent Shrine Cavern -extern void AddSC_boss_fathomlord_karathress(); -extern void AddSC_boss_hydross_the_unstable(); -extern void AddSC_boss_lady_vashj(); -extern void AddSC_boss_leotheras_the_blind(); -extern void AddSC_boss_morogrim_tidewalker(); -extern void AddSC_instance_serpentshrine_cavern(); -extern void AddSC_boss_the_lurker_below(); - -//--Slave Pens - -//--Steam Vault -extern void AddSC_boss_hydromancer_thespia(); -extern void AddSC_boss_mekgineer_steamrigger(); -extern void AddSC_boss_warlord_kalithresh(); -extern void AddSC_instance_steam_vault(); - -//--Underbog -extern void AddSC_boss_hungarfen(); -extern void AddSC_boss_the_black_stalker(); - -//Darkshore -extern void AddSC_darkshore(); - -//Darnassus -//Deadmines -extern void AddSC_instance_deadmines(); - -//Deadwind pass -//Desolace -extern void AddSC_desolace(); - -//Dire Maul - -extern void AddSC_dragonblight(); - -//Dun Morogh -extern void AddSC_dun_morogh(); - -//Durotar -//Duskwood -//Dustwallow marsh -extern void AddSC_dustwallow_marsh(); - -//Eversong Woods -extern void AddSC_eversong_woods(); - -//Exodar -//Eastern Plaguelands -extern void AddSC_eastern_plaguelands(); -extern void AddSC_the_scarlet_enclave(); - -//Elwynn Forest -extern void AddSC_elwynn_forest(); - -//Felwood -extern void AddSC_felwood(); - -//Feralas -extern void AddSC_feralas(); - -//Ghostlands -extern void AddSC_ghostlands(); - -//Gnomeregan - -//Grizzly Hills -extern void AddSC_grizzly_hills(); - -//Gruul's Lair -extern void AddSC_boss_gruul(); -extern void AddSC_boss_high_king_maulgar(); -extern void AddSC_instance_gruuls_lair(); - -//Hellfire Citadel -//--Blood Furnace -extern void AddSC_boss_broggok(); -extern void AddSC_boss_kelidan_the_breaker(); -extern void AddSC_boss_the_maker(); -extern void AddSC_instance_blood_furnace(); - -//--Magtheridon's Lair -extern void AddSC_boss_magtheridon(); -extern void AddSC_instance_magtheridons_lair(); - -//--Shattered Halls -extern void AddSC_boss_grand_warlock_nethekurse(); -extern void AddSC_boss_warbringer_omrogg(); -extern void AddSC_boss_warchief_kargath_bladefist(); -extern void AddSC_instance_shattered_halls(); - -//--Ramparts -extern void AddSC_boss_watchkeeper_gargolmar(); -extern void AddSC_boss_omor_the_unscarred(); -extern void AddSC_boss_vazruden_the_herald(); -extern void AddSC_instance_ramparts(); - -//Hellfire Peninsula -extern void AddSC_boss_doomlordkazzak(); -extern void AddSC_hellfire_peninsula(); - -//Hillsbrad Foothills -//Hinterlands -extern void AddSC_hinterlands(); - -//Icecrown -extern void AddSC_icecrown(); - -//Ironforge -extern void AddSC_ironforge(); - -//Isle of Quel'Danas -extern void AddSC_isle_of_queldanas(); - -//Karazhan -extern void AddSC_boss_attumen(); -extern void AddSC_boss_curator(); -extern void AddSC_boss_maiden_of_virtue(); -extern void AddSC_boss_shade_of_aran(); -extern void AddSC_boss_malchezaar(); -extern void AddSC_boss_terestian_illhoof(); -extern void AddSC_boss_moroes(); -extern void AddSC_bosses_opera(); -extern void AddSC_boss_netherspite(); -extern void AddSC_instance_karazhan(); -extern void AddSC_karazhan(); -extern void AddSC_boss_nightbane(); - -//Loch Modan -extern void AddSC_loch_modan(); - -//Lower Blackrock Spire - -// Magister's Terrace -extern void AddSC_boss_felblood_kaelthas(); -extern void AddSC_boss_selin_fireheart(); -extern void AddSC_boss_vexallus(); -extern void AddSC_boss_priestess_delrissa(); -extern void AddSC_instance_magisters_terrace(); -extern void AddSC_magisters_terrace(); - -//Maraudon -extern void AddSC_boss_celebras_the_cursed(); -extern void AddSC_boss_landslide(); -extern void AddSC_boss_noxxion(); -extern void AddSC_boss_ptheradras(); - -//Molten core -extern void AddSC_boss_lucifron(); -extern void AddSC_boss_magmadar(); -extern void AddSC_boss_gehennas(); -extern void AddSC_boss_garr(); -extern void AddSC_boss_baron_geddon(); -extern void AddSC_boss_shazzrah(); -extern void AddSC_boss_golemagg(); -extern void AddSC_boss_sulfuron(); -extern void AddSC_boss_majordomo(); -extern void AddSC_boss_ragnaros(); -extern void AddSC_instance_molten_core(); -extern void AddSC_molten_core(); - -//Moonglade -extern void AddSC_moonglade(); - -//Mulgore -extern void AddSC_mulgore(); - -//Nagrand -extern void AddSC_nagrand(); - -//Naxxramas -extern void AddSC_boss_anubrekhan(); -extern void AddSC_boss_maexxna(); -extern void AddSC_boss_patchwerk(); -extern void AddSC_boss_grobbulus(); -extern void AddSC_boss_razuvious(); -extern void AddSC_boss_kelthuzad(); -extern void AddSC_boss_loatheb(); -extern void AddSC_boss_noth(); -extern void AddSC_boss_gluth(); -extern void AddSC_boss_sapphiron(); -extern void AddSC_boss_four_horsemen(); -extern void AddSC_boss_faerlina(); -extern void AddSC_boss_heigan(); -extern void AddSC_boss_gothik(); -extern void AddSC_boss_thaddius(); -extern void AddSC_instance_naxxramas(); - -//Netherstorm -extern void AddSC_netherstorm(); - -//The Nexus -extern void AddSC_boss_magus_telestra(); -extern void AddSC_boss_anomalus(); -extern void AddSC_boss_ormorok(); -extern void AddSC_boss_keristrasza(); -extern void AddSC_instance_nexus(); - -//Obsidian Sanctum -extern void AddSC_instance_obsidian_sanctum(); - -//Onyxia's Lair -extern void AddSC_boss_onyxia(); - -//Orgrimmar -extern void AddSC_orgrimmar(); - -//Ragefire Chasm -//Razorfen Downs -extern void AddSC_boss_amnennar_the_coldbringer(); -extern void AddSC_razorfen_downs(); - -//Razorfen Kraul -extern void AddSC_razorfen_kraul(); - -//Redridge Mountains -//Ruins of Ahn'Qiraj -//Scarlet Monastery -extern void AddSC_boss_arcanist_doan(); -extern void AddSC_boss_azshir_the_sleepless(); -extern void AddSC_boss_bloodmage_thalnos(); -extern void AddSC_boss_headless_horseman(); -extern void AddSC_boss_herod(); -extern void AddSC_boss_high_inquisitor_fairbanks(); -extern void AddSC_boss_houndmaster_loksey(); -extern void AddSC_boss_interrogator_vishas(); -extern void AddSC_boss_scorn(); -extern void AddSC_instance_scarlet_monastery(); -extern void AddSC_boss_mograine_and_whitemane(); - -//Scholomance -extern void AddSC_boss_darkmaster_gandling(); -extern void AddSC_boss_death_knight_darkreaver(); -extern void AddSC_boss_theolenkrastinov(); -extern void AddSC_boss_illuciabarov(); -extern void AddSC_boss_instructormalicia(); -extern void AddSC_boss_jandicebarov(); -extern void AddSC_boss_kormok(); -extern void AddSC_boss_lordalexeibarov(); -extern void AddSC_boss_lorekeeperpolkelt(); -extern void AddSC_boss_rasfrost(); -extern void AddSC_boss_theravenian(); -extern void AddSC_boss_vectus(); -extern void AddSC_instance_scholomance(); - -//Searing gorge -extern void AddSC_searing_gorge(); - -//Shadowfang keep -extern void AddSC_shadowfang_keep(); -extern void AddSC_instance_shadowfang_keep(); - -//Shadowmoon Valley -extern void AddSC_boss_doomwalker(); -extern void AddSC_shadowmoon_valley(); - -//Shattrath -extern void AddSC_shattrath_city(); - -//Sholazar Basin -extern void AddSC_sholazar_basin(); - -//Silithus -extern void AddSC_silithus(); - -//Silvermoon -extern void AddSC_silvermoon_city(); - -//Silverpine forest -extern void AddSC_silverpine_forest(); - -//Stockade -//Stonetalon mountains -extern void AddSC_stonetalon_mountains(); - -//Stormwind City -extern void AddSC_stormwind_city(); - -//Stranglethorn Vale -extern void AddSC_stranglethorn_vale(); - -//Stratholme -extern void AddSC_boss_magistrate_barthilas(); -extern void AddSC_boss_maleki_the_pallid(); -extern void AddSC_boss_nerubenkan(); -extern void AddSC_boss_cannon_master_willey(); -extern void AddSC_boss_baroness_anastari(); -extern void AddSC_boss_ramstein_the_gorger(); -extern void AddSC_boss_timmy_the_cruel(); -extern void AddSC_boss_postmaster_malown(); -extern void AddSC_boss_baron_rivendare(); -extern void AddSC_boss_dathrohan_balnazzar(); -extern void AddSC_boss_order_of_silver_hand(); -extern void AddSC_instance_stratholme(); -extern void AddSC_stratholme(); - -//Sunken Temple -//Sunwell Plateau -extern void AddSC_instance_sunwell_plateau(); -extern void AddSC_boss_kalecgos(); -extern void AddSC_boss_brutallus(); -extern void AddSC_boss_felmyst(); -extern void AddSC_boss_eredar_twins(); -extern void AddSC_boss_muru(); -extern void AddSC_boss_kiljaeden(); -extern void AddSC_sunwell_plateau(); - -//Tanaris -extern void AddSC_tanaris(); - -//Teldrassil - extern void AddSC_teldrassil(); - -//Tempest Keep -//--Arcatraz -extern void AddSC_arcatraz(); -extern void AddSC_boss_harbinger_skyriss(); -extern void AddSC_instance_arcatraz(); - -//--Botanica -extern void AddSC_boss_high_botanist_freywinn(); -extern void AddSC_boss_laj(); -extern void AddSC_boss_warp_splinter(); - -//--The Eye -extern void AddSC_boss_alar(); -extern void AddSC_boss_kaelthas(); -extern void AddSC_boss_void_reaver(); -extern void AddSC_boss_high_astromancer_solarian(); -extern void AddSC_instance_the_eye(); -extern void AddSC_the_eye(); - -//--The Mechanar -extern void AddSC_boss_gatewatcher_iron_hand(); -extern void AddSC_boss_nethermancer_sepethrea(); -extern void AddSC_boss_pathaleon_the_calculator(); -extern void AddSC_instance_mechanar(); - -//Temple of ahn'qiraj -extern void AddSC_boss_cthun(); -extern void AddSC_boss_fankriss(); -extern void AddSC_boss_huhuran(); -extern void AddSC_bug_trio(); -extern void AddSC_boss_sartura(); -extern void AddSC_boss_skeram(); -extern void AddSC_boss_twinemperors(); -extern void AddSC_mob_anubisath_sentinel(); -extern void AddSC_instance_temple_of_ahnqiraj(); - -//Terokkar Forest -extern void AddSC_terokkar_forest(); - -//Thousand Needles -extern void AddSC_thousand_needles(); - -//Thunder Bluff -extern void AddSC_thunder_bluff(); - -//Tirisfal Glades -extern void AddSC_tirisfal_glades(); - -//Uldaman -extern void AddSC_boss_archaedas(); -extern void AddSC_boss_ironaya(); -extern void AddSC_uldaman(); -extern void AddSC_instance_uldaman(); - -//Undercity -extern void AddSC_undercity(); - -//Un'Goro Crater -extern void AddSC_ungoro_crater(); - -//Upper blackrock spire - -//Utgarde Keep -extern void AddSC_boss_keleseth(); -extern void AddSC_boss_skarvald_dalronn(); -extern void AddSC_boss_ingvar_the_plunderer(); -extern void AddSC_instance_utgarde_keep(); -extern void AddSC_utgarde_keep(); - -//Wailing caverns -extern void AddSC_wailing_caverns(); -extern void AddSC_instance_wailing_caverns(); - -//Western plaguelands -extern void AddSC_western_plaguelands(); - -//Westfall -extern void AddSC_westfall(); - -//Wetlands -//Winterspring -extern void AddSC_winterspring(); - -//Zangarmarsh -extern void AddSC_zangarmarsh(); - -//Zul'Farrak -extern void AddSC_zulfarrak(); - -//Zul'Gurub -extern void AddSC_boss_jeklik(); -extern void AddSC_boss_venoxis(); -extern void AddSC_boss_marli(); -extern void AddSC_boss_mandokir(); -extern void AddSC_boss_gahzranka(); -extern void AddSC_boss_thekal(); -extern void AddSC_boss_arlokk(); -extern void AddSC_boss_jindo(); -extern void AddSC_boss_hakkar(); -extern void AddSC_boss_grilek(); -extern void AddSC_boss_hazzarah(); -extern void AddSC_boss_renataki(); -extern void AddSC_boss_wushoolay(); -extern void AddSC_instance_zulgurub(); - -//Zul'Aman -extern void AddSC_boss_akilzon(); -extern void AddSC_boss_halazzi(); -extern void AddSC_boss_hex_lord_malacrass(); -extern void AddSC_boss_janalai(); -extern void AddSC_boss_nalorakk(); -extern void AddSC_boss_zuljin(); -extern void AddSC_instance_zulaman(); -extern void AddSC_zulaman(); - -//Zul'Drak -extern void AddSC_zuldrak(); - -//Northrend -//Dungeon - -//Vault of Archavon -extern void AddSC_boss_archavon(); -extern void AddSC_boss_emalon(); -extern void AddSC_instance_archavon(); - -//Ulduar -extern void AddSC_boss_auriaya(); -extern void AddSC_boss_flame_leviathan(); -extern void AddSC_boss_ignis(); -extern void AddSC_boss_razorscale(); -extern void AddSC_boss_xt002(); -//extern void AddSC_instance_ulduar(); - -//Halls of Lightning -extern void AddSC_boss_bjarngrim(); -extern void AddSC_boss_loken(); -extern void AddSC_instance_halls_of_lightning(); - -//Region -extern void AddSC_wintergrasp(); - -// ------------------- void LoadDatabase() { //Get db string from file @@ -979,646 +339,7 @@ void ScriptsInit(char const* cfg_file = "trinitycore.conf") FillSpellSummary(); - // -- Scripts to be added -- - - // -- Areatrigger -- - AddSC_areatrigger_scripts(); - - // -- Boss -- - AddSC_boss_emeriss(); - AddSC_boss_taerar(); - AddSC_boss_ysondre(); - - // -- Creature -- - AddSC_generic_creature(); - - // -- Custom -- - - // -- Examples -- - AddSC_example_creature(); - AddSC_example_escort(); - AddSC_example_gossip_codebox(); - AddSC_example_misc(); - - // -- GO -- - AddSC_go_scripts(); - - // -- Guard -- - AddSC_guards(); - - // -- Honor -- - - // -- Item -- - AddSC_item_scripts(); - - // -- NPC -- - AddSC_npc_professions(); - AddSC_npcs_special(); - AddSC_npc_taxi(); - - // -- Servers -- - - //-------------------- - //------ ZONE -------- - - //Alterac Mountains - //AddSC_alterac_mountains(); - - //Arathi Highlands - AddSC_arathi_highlands(); - - //Ashenvale Forest - AddSC_ashenvale(); - - //Aunchindoun - //--Auchenai Crypts - AddSC_boss_exarch_maladaar(); - AddSC_boss_shirrak_the_dead_watcher(); - - //--Mana Tombs - AddSC_boss_nexusprince_shaffar(); - AddSC_boss_pandemonius(); - - //--Sekketh Halls - AddSC_boss_darkweaver_syth(); - AddSC_boss_talon_king_ikiss(); - AddSC_instance_sethekk_halls(); - - //--Shadow Labyrinth - AddSC_boss_ambassador_hellmaw(); - AddSC_boss_blackheart_the_inciter(); - AddSC_boss_grandmaster_vorpil(); - AddSC_boss_murmur(); - AddSC_instance_shadow_labyrinth(); - - //Azjol-Nerub - //--Ahn'kahet - AddSC_instance_ahnkahet(); - AddSC_boss_elder_nadox(); - - //Azshara - AddSC_boss_azuregos(); - AddSC_azshara(); - - //Azuremyst Isle - AddSC_azuremyst_isle(); - - //Badlands - //Barrens - AddSC_the_barrens(); - - //Black Temple - AddSC_black_temple(); - AddSC_boss_illidan(); - AddSC_boss_shade_of_akama(); - AddSC_boss_supremus(); - AddSC_boss_gurtogg_bloodboil(); - AddSC_boss_mother_shahraz(); - AddSC_boss_reliquary_of_souls(); - AddSC_boss_teron_gorefiend(); - AddSC_boss_najentus(); - AddSC_boss_illidari_council(); - AddSC_instance_black_temple(); - - //Blackfathom Depths - AddSC_instance_blackfathom_deeps(); - - //Blackrock Depths - AddSC_blackrock_depths(); - AddSC_boss_ambassador_flamelash(); - AddSC_boss_anubshiah(); - AddSC_boss_draganthaurissan(); - AddSC_boss_general_angerforge(); - AddSC_boss_gorosh_the_dervish(); - AddSC_boss_grizzle(); - AddSC_boss_high_interrogator_gerstahn(); - AddSC_boss_magmus(); - AddSC_boss_moira_bronzebeard(); - AddSC_boss_tomb_of_seven(); - AddSC_instance_blackrock_depths(); - - //Blackrock Spire - AddSC_boss_drakkisath(); - AddSC_boss_halycon(); - AddSC_boss_highlordomokk(); - AddSC_boss_mothersmolderweb(); - AddSC_boss_overlordwyrmthalak(); - AddSC_boss_shadowvosh(); - AddSC_boss_thebeast(); - AddSC_boss_warmastervoone(); - AddSC_boss_quatermasterzigris(); - AddSC_boss_pyroguard_emberseer(); - AddSC_boss_gyth(); - AddSC_boss_rend_blackhand(); - - //Blackwing lair - AddSC_boss_razorgore(); - AddSC_boss_vael(); - AddSC_boss_broodlord(); - AddSC_boss_firemaw(); - AddSC_boss_ebonroc(); - AddSC_boss_flamegor(); - AddSC_boss_chromaggus(); - AddSC_boss_nefarian(); - AddSC_boss_victor_nefarius(); - - //Blade's Edge Mountains - AddSC_blades_edge_mountains(); - - //Blasted lands - AddSC_boss_kruul(); - AddSC_blasted_lands(); - - //Bloodmyst Isle - AddSC_bloodmyst_isle(); - - //Borean Tundra - AddSC_borean_tundra(); - - //Burning steppes - AddSC_burning_steppes(); - - //Caverns of Time - //--Battle for Mt. Hyjal - AddSC_hyjal(); - AddSC_boss_archimonde(); - AddSC_instance_mount_hyjal(); - AddSC_hyjal_trash(); - AddSC_boss_rage_winterchill(); - AddSC_boss_anetheron(); - AddSC_boss_kazrogal(); - AddSC_boss_azgalor(); - - //--Old Hillsbrad - AddSC_boss_captain_skarloc(); - AddSC_boss_epoch_hunter(); - AddSC_boss_lieutenant_drake(); - AddSC_instance_old_hillsbrad(); - AddSC_old_hillsbrad(); - - //--The Dark Portal - AddSC_boss_aeonus(); - AddSC_boss_chrono_lord_deja(); - AddSC_boss_temporus(); - AddSC_dark_portal(); - AddSC_instance_dark_portal(); - - //Coilfang Resevoir - //--Serpent Shrine Cavern - AddSC_boss_fathomlord_karathress(); - AddSC_boss_hydross_the_unstable(); - AddSC_boss_lady_vashj(); - AddSC_boss_leotheras_the_blind(); - AddSC_boss_morogrim_tidewalker(); - AddSC_instance_serpentshrine_cavern(); - AddSC_boss_the_lurker_below(); - - //--Slave Pens - //--Steam Vault - AddSC_boss_hydromancer_thespia(); - AddSC_boss_mekgineer_steamrigger(); - AddSC_boss_warlord_kalithresh(); - AddSC_instance_steam_vault(); - - //--Underbog - AddSC_boss_hungarfen(); - AddSC_boss_the_black_stalker(); - - //Darkshore - AddSC_darkshore(); - - //Darnassus - //Deadmines - AddSC_instance_deadmines(); - - //Deadwind pass - //Desolace - AddSC_desolace(); - - //Dire Maul - - AddSC_dragonblight(); - - //Dun Morogh - AddSC_dun_morogh(); - - //Durotar - //Duskwood - //Dustwallow marsh - AddSC_dustwallow_marsh(); - - //Eversong Woods - AddSC_eversong_woods(); - - //Exodar - //Eastern Plaguelands - AddSC_eastern_plaguelands(); - AddSC_the_scarlet_enclave(); - - //Elwynn Forest - AddSC_elwynn_forest(); - - //Felwood - AddSC_felwood(); - - //Feralas - AddSC_feralas(); - - //Ghostlands - AddSC_ghostlands(); - - //Gnomeregan - - //Grizzly Hills - AddSC_grizzly_hills(); - - //Gruul's Lair - AddSC_boss_gruul(); - AddSC_boss_high_king_maulgar(); - AddSC_instance_gruuls_lair(); - - //Hellfire Citadel - //--Blood Furnace - AddSC_boss_broggok(); - AddSC_boss_kelidan_the_breaker(); - AddSC_boss_the_maker(); - AddSC_instance_blood_furnace(); - - //--Magtheridon's Lair - AddSC_boss_magtheridon(); - AddSC_instance_magtheridons_lair(); - - //--Shattered Halls - AddSC_boss_grand_warlock_nethekurse(); - AddSC_boss_warbringer_omrogg(); - AddSC_boss_warchief_kargath_bladefist(); - AddSC_instance_shattered_halls(); - - //--Ramparts - AddSC_boss_watchkeeper_gargolmar(); - AddSC_boss_omor_the_unscarred(); - AddSC_boss_vazruden_the_herald(); - AddSC_instance_ramparts(); - - //Hellfire Peninsula - AddSC_boss_doomlordkazzak(); - AddSC_hellfire_peninsula(); - - //Hillsbrad Foothills - //Hinterlands - AddSC_hinterlands(); - - //Icecrown - AddSC_icecrown(); - - //Ironforge - AddSC_ironforge(); - - //Isle of Quel'Danas - AddSC_isle_of_queldanas(); - - //Karazhan - AddSC_boss_attumen(); - AddSC_boss_curator(); - AddSC_boss_maiden_of_virtue(); - AddSC_boss_shade_of_aran(); - AddSC_boss_malchezaar(); - AddSC_boss_terestian_illhoof(); - AddSC_boss_moroes(); - AddSC_bosses_opera(); - AddSC_boss_netherspite(); - AddSC_instance_karazhan(); - AddSC_karazhan(); - AddSC_boss_nightbane(); - - //Loch Modan - AddSC_loch_modan(); - - //Lower Blackrock Spire - - // Magister's Terrace - AddSC_boss_felblood_kaelthas(); - AddSC_boss_selin_fireheart(); - AddSC_boss_vexallus(); - AddSC_boss_priestess_delrissa(); - AddSC_instance_magisters_terrace(); - AddSC_magisters_terrace(); - - //Maraudon - AddSC_boss_celebras_the_cursed(); - AddSC_boss_landslide(); - AddSC_boss_noxxion(); - AddSC_boss_ptheradras(); - - //Molten core - AddSC_boss_lucifron(); - AddSC_boss_magmadar(); - AddSC_boss_gehennas(); - AddSC_boss_garr(); - AddSC_boss_baron_geddon(); - AddSC_boss_shazzrah(); - AddSC_boss_golemagg(); - AddSC_boss_sulfuron(); - AddSC_boss_majordomo(); - AddSC_boss_ragnaros(); - AddSC_instance_molten_core(); - AddSC_molten_core(); - - //Moonglade - AddSC_moonglade(); - - //Mulgore - AddSC_mulgore(); - - //Nagrand - AddSC_nagrand(); - - //Naxxramas - AddSC_boss_anubrekhan(); - AddSC_boss_faerlina(); - AddSC_boss_maexxna(); - AddSC_boss_patchwerk(); - AddSC_boss_grobbulus(); - AddSC_boss_razuvious(); - AddSC_boss_kelthuzad(); - AddSC_boss_loatheb(); - AddSC_boss_noth(); - AddSC_boss_gluth(); - AddSC_boss_sapphiron(); - AddSC_boss_four_horsemen(); - AddSC_boss_heigan(); - AddSC_boss_gothik(); - AddSC_boss_thaddius(); - AddSC_instance_naxxramas(); - - //Netherstorm - AddSC_netherstorm(); - - //The Nexus - AddSC_boss_magus_telestra(); - AddSC_boss_anomalus(); - AddSC_boss_ormorok(); - AddSC_boss_keristrasza(); - AddSC_instance_nexus(); - - //Obsidian Sanctum - AddSC_instance_obsidian_sanctum(); - - //Onyxia's Lair - AddSC_boss_onyxia(); - - //Orgrimmar - AddSC_orgrimmar(); - - //Ragefire Chasm - //Razorfen Downs - AddSC_boss_amnennar_the_coldbringer(); - AddSC_razorfen_downs(); - - //Razorfen Kraul - AddSC_razorfen_kraul(); - - //Redridge Mountains - //Ruins of Ahn'Qiraj - //Scarlet Monastery - AddSC_boss_arcanist_doan(); - AddSC_boss_azshir_the_sleepless(); - AddSC_boss_bloodmage_thalnos(); - AddSC_boss_headless_horseman(); - AddSC_boss_herod(); - AddSC_boss_high_inquisitor_fairbanks(); - AddSC_boss_houndmaster_loksey(); - AddSC_boss_interrogator_vishas(); - AddSC_boss_scorn(); - AddSC_instance_scarlet_monastery(); - AddSC_boss_mograine_and_whitemane(); - - //Scholomance - AddSC_boss_darkmaster_gandling(); - AddSC_boss_death_knight_darkreaver(); - AddSC_boss_theolenkrastinov(); - AddSC_boss_illuciabarov(); - AddSC_boss_instructormalicia(); - AddSC_boss_jandicebarov(); - AddSC_boss_kormok(); - AddSC_boss_lordalexeibarov(); - AddSC_boss_lorekeeperpolkelt(); - AddSC_boss_rasfrost(); - AddSC_boss_theravenian(); - AddSC_boss_vectus(); - AddSC_instance_scholomance(); - - //Searing gorge - AddSC_searing_gorge(); - - //Shadowfang keep - AddSC_shadowfang_keep(); - AddSC_instance_shadowfang_keep(); - - //Shadowmoon Valley - AddSC_boss_doomwalker(); - AddSC_shadowmoon_valley(); - - //Shattrath - AddSC_shattrath_city(); - - //Sholazar Basin - AddSC_sholazar_basin(); - - //Silithus - AddSC_silithus(); - - //Silvermoon - AddSC_silvermoon_city(); - - //Silverpine forest - AddSC_silverpine_forest(); - - //Stockade - //Stonetalon mountains - AddSC_stonetalon_mountains(); - - //Stormwind City - AddSC_stormwind_city(); - - //Stranglethorn Vale - AddSC_stranglethorn_vale(); - - //Stratholme - AddSC_boss_magistrate_barthilas(); - AddSC_boss_maleki_the_pallid(); - AddSC_boss_nerubenkan(); - AddSC_boss_cannon_master_willey(); - AddSC_boss_baroness_anastari(); - AddSC_boss_ramstein_the_gorger(); - AddSC_boss_timmy_the_cruel(); - AddSC_boss_postmaster_malown(); - AddSC_boss_baron_rivendare(); - AddSC_boss_dathrohan_balnazzar(); - AddSC_boss_order_of_silver_hand(); - AddSC_instance_stratholme(); - AddSC_stratholme(); - - //Sunken Temple - //Sunwell Plateau - AddSC_instance_sunwell_plateau(); - AddSC_boss_kalecgos(); - AddSC_boss_brutallus(); - AddSC_boss_felmyst(); - AddSC_boss_eredar_twins(); - AddSC_boss_muru(); - AddSC_boss_kiljaeden(); - AddSC_sunwell_plateau(); - - //Tanaris - AddSC_tanaris(); - - //Teldrassil - AddSC_teldrassil(); - - //Tempest Keep - //--Arcatraz - AddSC_arcatraz(); - AddSC_boss_harbinger_skyriss(); - AddSC_instance_arcatraz(); - - //--Botanica - AddSC_boss_high_botanist_freywinn(); - AddSC_boss_laj(); - AddSC_boss_warp_splinter(); - - //--The Eye - AddSC_boss_alar(); - AddSC_boss_kaelthas(); - AddSC_boss_void_reaver(); - AddSC_boss_high_astromancer_solarian(); - AddSC_instance_the_eye(); - AddSC_the_eye(); - - //--The Mechanar - AddSC_boss_gatewatcher_iron_hand(); - AddSC_boss_nethermancer_sepethrea(); - AddSC_boss_pathaleon_the_calculator(); - AddSC_instance_mechanar(); - - //Temple of ahn'qiraj - AddSC_boss_cthun(); - AddSC_boss_fankriss(); - AddSC_boss_huhuran(); - AddSC_bug_trio(); - AddSC_boss_sartura(); - AddSC_boss_skeram(); - AddSC_boss_twinemperors(); - AddSC_mob_anubisath_sentinel(); - AddSC_instance_temple_of_ahnqiraj(); - - //Terokkar Forest - AddSC_terokkar_forest(); - - //Thousand Needles - AddSC_thousand_needles(); - - //Thunder Bluff - AddSC_thunder_bluff(); - - //Tirisfal Glades - AddSC_tirisfal_glades(); - - //Uldaman - AddSC_boss_archaedas(); - AddSC_boss_ironaya(); - AddSC_uldaman(); - AddSC_instance_uldaman(); - - //Undercity - AddSC_undercity(); - - //Un'Goro Crater - AddSC_ungoro_crater(); - - //Upper blackrock spire - - //Utgarde Keep - AddSC_boss_keleseth(); - AddSC_boss_skarvald_dalronn(); - AddSC_boss_ingvar_the_plunderer(); - AddSC_instance_utgarde_keep(); - AddSC_utgarde_keep(); - - //Wailing caverns - AddSC_wailing_caverns(); - AddSC_instance_wailing_caverns(); - - //Western plaguelands - AddSC_western_plaguelands(); - - //Westfall - AddSC_westfall(); - - //Wetlands - //Winterspring - AddSC_winterspring(); - - //Zangarmarsh - AddSC_zangarmarsh(); - - //Zul'Farrak - AddSC_zulfarrak(); - - //Zul'Gurub - AddSC_boss_jeklik(); - AddSC_boss_venoxis(); - AddSC_boss_marli(); - AddSC_boss_mandokir(); - AddSC_boss_gahzranka(); - AddSC_boss_thekal(); - AddSC_boss_arlokk(); - AddSC_boss_jindo(); - AddSC_boss_hakkar(); - AddSC_boss_grilek(); - AddSC_boss_hazzarah(); - AddSC_boss_renataki(); - AddSC_boss_wushoolay(); - AddSC_instance_zulgurub(); - - //Zul'Aman - AddSC_boss_akilzon(); - AddSC_boss_halazzi(); - AddSC_boss_hex_lord_malacrass(); - AddSC_boss_janalai(); - AddSC_boss_nalorakk(); - AddSC_boss_zuljin(); - AddSC_instance_zulaman(); - AddSC_zulaman(); - - //Zul'Drak - AddSC_zuldrak(); - - //Northrend - //Dungeon - - //Vault of Archavon - AddSC_boss_archavon(); - AddSC_boss_emalon(); - AddSC_instance_archavon(); - - //Ulduar - AddSC_boss_auriaya(); - AddSC_boss_flame_leviathan(); - AddSC_boss_ignis(); - AddSC_boss_razorscale(); - AddSC_boss_xt002(); - //AddSC_instance_ulduar(); - - //Halls of Lightning - AddSC_boss_bjarngrim(); - AddSC_boss_loken(); - AddSC_instance_halls_of_lightning(); - - //Region - AddSC_wintergrasp(); - - // ------------------- + AddScripts(); outstring_log(">> Loaded %i C++ Scripts.", num_sc_scripts); diff --git a/src/bindings/scripts/ScriptMgr.h b/src/bindings/scripts/ScriptMgr.h index 06830532c9b..ad341a98098 100644 --- a/src/bindings/scripts/ScriptMgr.h +++ b/src/bindings/scripts/ScriptMgr.h @@ -5,8 +5,8 @@ * This program is free software licensed under GPL version 2 * Please see the included DOCS/LICENSE.TXT for more information */ -#ifndef SCRIPTMGR_H -#define SCRIPTMGR_H +#ifndef SC_SCRIPTMGR_H +#define SC_SCRIPTMGR_H #include "Common.h" #include "Platform/CompilerDefs.h" diff --git a/src/bindings/scripts/VC80/80ScriptDev2.vcproj b/src/bindings/scripts/VC80/80ScriptDev2.vcproj index e4a32705566..2ddcba982b5 100644 --- a/src/bindings/scripts/VC80/80ScriptDev2.vcproj +++ b/src/bindings/scripts/VC80/80ScriptDev2.vcproj @@ -46,7 +46,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;_DEBUG;TRINITY_DEBUG;_WINDOWS;_USRDLL;SCRIPT" MinimalRebuild="true" BasicRuntimeChecks="3" @@ -131,7 +131,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;_DEBUG;TRINITY_DEBUG;_WINDOWS;_USRDLL;SCRIPT" MinimalRebuild="true" BasicRuntimeChecks="3" @@ -215,7 +215,7 @@ <Tool Name="VCCLCompilerTool" AdditionalOptions="/MP" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0" RuntimeLibrary="2" UsePrecompiledHeader="2" @@ -300,7 +300,7 @@ <Tool Name="VCCLCompilerTool" AdditionalOptions="/MP" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0" RuntimeLibrary="2" UsePrecompiledHeader="2" @@ -361,55 +361,47 @@ </References> <Files> <Filter - Name="scripts" + Name="base" > - <Filter - Name="areatrigger" + <File + RelativePath="..\base\escortAI.cpp" > - <File - RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp" - > - </File> - </Filter> - <Filter - Name="boss" + </File> + <File + RelativePath="..\base\escortAI.h" > - <File - RelativePath="..\scripts\boss\boss_emeriss.cpp" - > - </File> - <File - RelativePath="..\scripts\boss\boss_lethon.cpp" - > - </File> - <File - RelativePath="..\scripts\boss\boss_taerar.cpp" - > - </File> - <File - RelativePath="..\scripts\boss\boss_ysondre.cpp" - > - </File> - </Filter> - <Filter - Name="creature" + </File> + <File + RelativePath="..\base\guard_ai.cpp" > - <File - RelativePath="..\scripts\creature\mob_generic_creature.cpp" - > - </File> - <File - RelativePath="..\scripts\creature\simple_ai.cpp" - > - </File> - <File - RelativePath="..\scripts\creature\simple_ai.h" - > - </File> - </Filter> + </File> + <File + RelativePath="..\base\guard_ai.h" + > + </File> + <File + RelativePath="..\base\simple_ai.cpp" + > + </File> + <File + RelativePath="..\base\simple_ai.h" + > + </File> + </Filter> + <Filter + Name="scripts" + > <Filter Name="eastern_kingdoms" > + <Filter + Name="scarlet_enclave" + > + <File + RelativePath="..\scripts\eastern_kingdoms\scarlet_enclave\the_scarlet_enclave.cpp" + > + </File> + </Filter> <File RelativePath="..\scripts\eastern_kingdoms\alterac_mountains.cpp" > @@ -459,6 +451,10 @@ > </File> <File + RelativePath="..\scripts\eastern_kingdoms\isle_of_queldanas.cpp" + > + </File> + <File RelativePath="..\scripts\eastern_kingdoms\loch_modan.cpp" > </File> @@ -520,38 +516,6 @@ </File> </Filter> <Filter - Name="go" - > - <File - RelativePath="..\scripts\go\go_scripts.cpp" - > - </File> - </Filter> - <Filter - Name="guard" - > - <File - RelativePath="..\scripts\guard\guard_ai.cpp" - > - </File> - <File - RelativePath="..\scripts\guard\guard_ai.h" - > - </File> - <File - RelativePath="..\scripts\guard\guards.cpp" - > - </File> - </Filter> - <Filter - Name="item" - > - <File - RelativePath="..\scripts\item\item_scripts.cpp" - > - </File> - </Filter> - <Filter Name="kalimdor" > <File @@ -667,34 +631,6 @@ </File> </Filter> <Filter - Name="npc" - > - <File - RelativePath="..\scripts\npc\npc_escortAI.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npc_escortAI.h" - > - </File> - <File - RelativePath="..\scripts\npc\npc_innkeeper.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npc_professions.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npc_taxi.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npcs_special.cpp" - > - </File> - </Filter> - <Filter Name="outland" > <File @@ -714,10 +650,6 @@ > </File> <File - RelativePath="..\scripts\outland\isle_of_queldanas.cpp" - > - </File> - <File RelativePath="..\scripts\outland\nagrand.cpp" > </File> @@ -1402,22 +1334,6 @@ </File> </Filter> <Filter - Name="Duskwood" - > - </Filter> - <Filter - Name="Eastern Plaguelands" - > - <File - RelativePath="..\scripts\zone\eastern_plaguelands\the_scarlet_enclave.cpp" - > - </File> - </Filter> - <Filter - Name="Redridge Mountains" - > - </Filter> - <Filter Name="Scarlet Monastery" > <File @@ -2776,14 +2692,6 @@ </Filter> </Filter> <Filter - Name="honor" - > - </Filter> - <Filter - Name="servers" - > - </Filter> - <Filter Name="custom" > <File @@ -2796,6 +2704,62 @@ </File> </Filter> </Filter> + <Filter + Name="world" + > + <File + RelativePath="..\scripts\world\areatrigger_scripts.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_emeriss.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_lethon.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_taerar.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_ysondre.cpp" + > + </File> + <File + RelativePath="..\scripts\world\go_scripts.cpp" + > + </File> + <File + RelativePath="..\scripts\world\guards.cpp" + > + </File> + <File + RelativePath="..\scripts\world\item_scripts.cpp" + > + </File> + <File + RelativePath="..\scripts\world\mob_generic_creature.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npc_innkeeper.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npc_professions.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npc_taxi.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npcs_special.cpp" + > + </File> + </Filter> <Filter Name="Include" > @@ -2860,6 +2824,18 @@ > </File> </Filter> + <Filter + Name="system" + > + <File + RelativePath="..\system\ScriptLoader.cpp" + > + </File> + <File + RelativePath="..\system\ScriptLoader.h" + > + </File> + </Filter> <File RelativePath="..\ScriptMgr.cpp" > diff --git a/src/bindings/scripts/VC90/90ScriptDev2.vcproj b/src/bindings/scripts/VC90/90ScriptDev2.vcproj index 8aa552725ed..85946ca217c 100644 --- a/src/bindings/scripts/VC90/90ScriptDev2.vcproj +++ b/src/bindings/scripts/VC90/90ScriptDev2.vcproj @@ -46,7 +46,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;_DEBUG;TRINITY_DEBUG;_WINDOWS;_USRDLL;SCRIPT" MinimalRebuild="true" BasicRuntimeChecks="3" @@ -130,7 +130,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;_DEBUG;TRINITY_DEBUG;_WINDOWS;_USRDLL;SCRIPT" MinimalRebuild="true" BasicRuntimeChecks="3" @@ -213,7 +213,7 @@ <Tool Name="VCCLCompilerTool" AdditionalOptions="/MP" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0" MinimalRebuild="false" RuntimeLibrary="2" @@ -297,7 +297,7 @@ <Tool Name="VCCLCompilerTool" AdditionalOptions="/MP" - AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\..\..\..\dep\ACE_wrappers" + AdditionalIncludeDirectories="..\..\..\..\dep\include\;..\..\..\shared\;..\..\..\framework\;..\..\..\game\;..\include\;..\base\;..\..\..\..\dep\ACE_wrappers" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SCRIPT;_SECURE_SCL=0" MinimalRebuild="false" RuntimeLibrary="2" @@ -358,55 +358,47 @@ </References> <Files> <Filter - Name="scripts" + Name="base" > - <Filter - Name="areatrigger" + <File + RelativePath="..\base\escortAI.cpp" > - <File - RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp" - > - </File> - </Filter> - <Filter - Name="boss" + </File> + <File + RelativePath="..\base\escortAI.h" > - <File - RelativePath="..\scripts\boss\boss_emeriss.cpp" - > - </File> - <File - RelativePath="..\scripts\boss\boss_lethon.cpp" - > - </File> - <File - RelativePath="..\scripts\boss\boss_taerar.cpp" - > - </File> - <File - RelativePath="..\scripts\boss\boss_ysondre.cpp" - > - </File> - </Filter> - <Filter - Name="creature" + </File> + <File + RelativePath="..\base\guard_ai.cpp" > - <File - RelativePath="..\scripts\creature\mob_generic_creature.cpp" - > - </File> - <File - RelativePath="..\scripts\creature\simple_ai.cpp" - > - </File> - <File - RelativePath="..\scripts\creature\simple_ai.h" - > - </File> - </Filter> + </File> + <File + RelativePath="..\base\guard_ai.h" + > + </File> + <File + RelativePath="..\base\simple_ai.cpp" + > + </File> + <File + RelativePath="..\base\simple_ai.h" + > + </File> + </Filter> + <Filter + Name="scripts" + > <Filter Name="eastern_kingdoms" > + <Filter + Name="scarlet_enclave" + > + <File + RelativePath="..\scripts\eastern_kingdoms\scarlet_enclave\the_scarlet_enclave.cpp" + > + </File> + </Filter> <File RelativePath="..\scripts\eastern_kingdoms\alterac_mountains.cpp" > @@ -456,6 +448,10 @@ > </File> <File + RelativePath="..\scripts\eastern_kingdoms\isle_of_queldanas.cpp" + > + </File> + <File RelativePath="..\scripts\eastern_kingdoms\loch_modan.cpp" > </File> @@ -517,38 +513,6 @@ </File> </Filter> <Filter - Name="go" - > - <File - RelativePath="..\scripts\go\go_scripts.cpp" - > - </File> - </Filter> - <Filter - Name="guard" - > - <File - RelativePath="..\scripts\guard\guard_ai.cpp" - > - </File> - <File - RelativePath="..\scripts\guard\guard_ai.h" - > - </File> - <File - RelativePath="..\scripts\guard\guards.cpp" - > - </File> - </Filter> - <Filter - Name="item" - > - <File - RelativePath="..\scripts\item\item_scripts.cpp" - > - </File> - </Filter> - <Filter Name="kalimdor" > <File @@ -664,34 +628,6 @@ </File> </Filter> <Filter - Name="npc" - > - <File - RelativePath="..\scripts\npc\npc_escortAI.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npc_escortAI.h" - > - </File> - <File - RelativePath="..\scripts\npc\npc_innkeeper.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npc_professions.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npc_taxi.cpp" - > - </File> - <File - RelativePath="..\scripts\npc\npcs_special.cpp" - > - </File> - </Filter> - <Filter Name="outland" > <File @@ -711,10 +647,6 @@ > </File> <File - RelativePath="..\scripts\outland\isle_of_queldanas.cpp" - > - </File> - <File RelativePath="..\scripts\outland\nagrand.cpp" > </File> @@ -1399,22 +1331,6 @@ </File> </Filter> <Filter - Name="Duskwood" - > - </Filter> - <Filter - Name="Eastern Plaguelands" - > - <File - RelativePath="..\scripts\zone\eastern_plaguelands\the_scarlet_enclave.cpp" - > - </File> - </Filter> - <Filter - Name="Redridge Mountains" - > - </Filter> - <Filter Name="Scarlet Monastery" > <File @@ -2773,14 +2689,6 @@ </Filter> </Filter> <Filter - Name="honor" - > - </Filter> - <Filter - Name="servers" - > - </Filter> - <Filter Name="custom" > <File @@ -2793,6 +2701,62 @@ </File> </Filter> </Filter> + <Filter + Name="world" + > + <File + RelativePath="..\scripts\world\areatrigger_scripts.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_emeriss.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_lethon.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_taerar.cpp" + > + </File> + <File + RelativePath="..\scripts\world\boss_ysondre.cpp" + > + </File> + <File + RelativePath="..\scripts\world\go_scripts.cpp" + > + </File> + <File + RelativePath="..\scripts\world\guards.cpp" + > + </File> + <File + RelativePath="..\scripts\world\item_scripts.cpp" + > + </File> + <File + RelativePath="..\scripts\world\mob_generic_creature.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npc_innkeeper.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npc_professions.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npc_taxi.cpp" + > + </File> + <File + RelativePath="..\scripts\world\npcs_special.cpp" + > + </File> + </Filter> <Filter Name="Include" > @@ -2857,6 +2821,18 @@ > </File> </Filter> + <Filter + Name="system" + > + <File + RelativePath="..\system\ScriptLoader.cpp" + > + </File> + <File + RelativePath="..\system\ScriptLoader.h" + > + </File> + </Filter> <File RelativePath="..\ScriptMgr.cpp" > diff --git a/src/bindings/scripts/scripts/npc/npc_escortAI.cpp b/src/bindings/scripts/base/escortAI.cpp index b04c349eb96..52b398cd59c 100644 --- a/src/bindings/scripts/scripts/npc/npc_escortAI.cpp +++ b/src/bindings/scripts/base/escortAI.cpp @@ -10,7 +10,7 @@ SDCategory: Npc EndScriptData */ #include "precompiled.h" -#include "npc_escortAI.h" +#include "escortAI.h" enum { @@ -345,6 +345,11 @@ void npc_escortAI::Start(bool bIsActiveAttacker, bool bRun, uint64 uiPlayerGUID, return; } + if (!WaypointList.empty()) + WaypointList.clear(); + + FillPointMovementListForCreature(); + if (WaypointList.empty()) { error_db_log("TSCR: EscortAI Start with 0 waypoints (possible missing entry in script_waypoint)"); diff --git a/src/bindings/scripts/scripts/npc/npc_escortAI.h b/src/bindings/scripts/base/escortAI.h index 90a99152b68..90a99152b68 100644 --- a/src/bindings/scripts/scripts/npc/npc_escortAI.h +++ b/src/bindings/scripts/base/escortAI.h diff --git a/src/bindings/scripts/scripts/guard/guard_ai.cpp b/src/bindings/scripts/base/guard_ai.cpp index 7f1daa1e2df..7f1daa1e2df 100644 --- a/src/bindings/scripts/scripts/guard/guard_ai.cpp +++ b/src/bindings/scripts/base/guard_ai.cpp diff --git a/src/bindings/scripts/scripts/guard/guard_ai.h b/src/bindings/scripts/base/guard_ai.h index 85baa30fb9d..85baa30fb9d 100644 --- a/src/bindings/scripts/scripts/guard/guard_ai.h +++ b/src/bindings/scripts/base/guard_ai.h diff --git a/src/bindings/scripts/scripts/creature/simple_ai.cpp b/src/bindings/scripts/base/simple_ai.cpp index d4755cfac8b..d4755cfac8b 100644 --- a/src/bindings/scripts/scripts/creature/simple_ai.cpp +++ b/src/bindings/scripts/base/simple_ai.cpp diff --git a/src/bindings/scripts/scripts/creature/simple_ai.h b/src/bindings/scripts/base/simple_ai.h index 3a2e8a9341a..3a2e8a9341a 100644 --- a/src/bindings/scripts/scripts/creature/simple_ai.h +++ b/src/bindings/scripts/base/simple_ai.h diff --git a/src/bindings/scripts/include/sc_gossip.h b/src/bindings/scripts/include/sc_gossip.h index 183c8487a74..454aef99de0 100644 --- a/src/bindings/scripts/include/sc_gossip.h +++ b/src/bindings/scripts/include/sc_gossip.h @@ -5,8 +5,8 @@ * This program is free software licensed under GPL version 2 * Please see the included DOCS/LICENSE.TXT for more information */ -#ifndef SC_PLAYER_H -#define SC_PLAYER_H +#ifndef SC_GOSSIP_H +#define SC_GOSSIP_H #include "Player.h" #include "GossipDef.h" diff --git a/src/bindings/scripts/scripts/custom/test.cpp b/src/bindings/scripts/scripts/custom/test.cpp index 221411e994b..20a3e2a20e3 100644 --- a/src/bindings/scripts/scripts/custom/test.cpp +++ b/src/bindings/scripts/scripts/custom/test.cpp @@ -22,7 +22,7 @@ SDCategory: Script Examples EndScriptData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" struct TRINITY_DLL_DECL npc_testAI : public npc_escortAI { diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/arathi_highlands.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/arathi_highlands.cpp index 18656ca4d98..bc33d9841eb 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/arathi_highlands.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/arathi_highlands.cpp @@ -26,7 +26,7 @@ npc_professor_phizzlethorpe EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_professor_phizzlethorpe @@ -114,11 +114,7 @@ bool QuestAccept_npc_professor_phizzlethorpe(Player* pPlayer, Creature* pCreatur CreatureAI* GetAI_npc_professor_phizzlethorpeAI(Creature* pCreature) { - npc_professor_phizzlethorpeAI* professor_phizzlethorpeAI = new npc_professor_phizzlethorpeAI(pCreature); - - professor_phizzlethorpeAI->FillPointMovementListForCreature(); - - return professor_phizzlethorpeAI; + return new npc_professor_phizzlethorpeAI(pCreature); } void AddSC_arathi_highlands() diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/eversong_woods.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/eversong_woods.cpp index 543dd75b499..6c76adeaecb 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/eversong_woods.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/eversong_woods.cpp @@ -30,7 +30,7 @@ go_harbinger_second_trial EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_prospector_anvilward @@ -85,11 +85,7 @@ struct TRINITY_DLL_DECL npc_prospector_anvilwardAI : public npc_escortAI CreatureAI* GetAI_npc_prospector_anvilward(Creature* pCreature) { - npc_prospector_anvilwardAI* thisAI = new npc_prospector_anvilwardAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new npc_prospector_anvilwardAI(pCreature); } bool GossipHello_npc_prospector_anvilward(Player* pPlayer, Creature* pCreature) diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/ghostlands.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/ghostlands.cpp index f2fbb26ea70..c96923661de 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/ghostlands.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/ghostlands.cpp @@ -29,7 +29,7 @@ npc_ranger_lilatha EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_blood_knight_dawnstar @@ -234,11 +234,7 @@ bool QuestAccept_npc_ranger_lilatha(Player* pPlayer, Creature* pCreature, Quest CreatureAI* GetAI_npc_ranger_lilathaAI(Creature* pCreature) { - npc_ranger_lilathaAI* ranger_lilathaAI = new npc_ranger_lilathaAI(pCreature); - - ranger_lilathaAI->FillPointMovementListForCreature(); - - return ranger_lilathaAI; + return new npc_ranger_lilathaAI(pCreature); } void AddSC_ghostlands() diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/hinterlands.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/hinterlands.cpp index 3398daf64c6..46f12159acf 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/hinterlands.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/hinterlands.cpp @@ -26,7 +26,7 @@ npc_rinji EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_rinji @@ -215,11 +215,7 @@ bool QuestAccept_npc_rinji(Player* pPlayer, Creature* pCreature, const Quest* pQ CreatureAI* GetAI_npc_rinji(Creature* pCreature) { - npc_rinjiAI* pTempAI = new npc_rinjiAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_rinjiAI(pCreature); } void AddSC_hinterlands() diff --git a/src/bindings/scripts/scripts/outland/isle_of_queldanas.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/isle_of_queldanas.cpp index 469e2f712f1..469e2f712f1 100644 --- a/src/bindings/scripts/scripts/outland/isle_of_queldanas.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/isle_of_queldanas.cpp diff --git a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/the_scarlet_enclave.cpp index c4eed5c0d24..247a0084e77 100644 --- a/src/bindings/scripts/scripts/zone/eastern_plaguelands/the_scarlet_enclave.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/the_scarlet_enclave.cpp @@ -19,7 +19,7 @@ #include "precompiled.h" #include "Vehicle.h" #include "ObjectMgr.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #define GCD_CAST 1 @@ -647,11 +647,7 @@ struct TRINITY_DLL_DECL npc_koltira_deathweaverAI : public npc_escortAI CreatureAI* GetAI_npc_koltira_deathweaver(Creature* pCreature) { - npc_koltira_deathweaverAI* pTempAI = new npc_koltira_deathweaverAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_koltira_deathweaverAI(pCreature); } bool QuestAccept_npc_koltira_deathweaver(Player* pPlayer, Creature* pCreature, const Quest* pQuest) diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/silverpine_forest.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/silverpine_forest.cpp index 2511a931e9c..bd8b2906c92 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/silverpine_forest.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/silverpine_forest.cpp @@ -27,7 +27,7 @@ npc_deathstalker_erland EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_astor_hadren diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/westfall.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/westfall.cpp index 93b2bbf049c..3ddaffe6e25 100644 --- a/src/bindings/scripts/scripts/eastern_kingdoms/westfall.cpp +++ b/src/bindings/scripts/scripts/eastern_kingdoms/westfall.cpp @@ -27,7 +27,7 @@ npc_defias_traitor EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_daphne_stilwell @@ -176,11 +176,7 @@ bool QuestAccept_npc_daphne_stilwell(Player* pPlayer, Creature* pCreature, const CreatureAI* GetAI_npc_daphne_stilwell(Creature* pCreature) { - npc_daphne_stilwellAI* thisAI = new npc_daphne_stilwellAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new npc_daphne_stilwellAI(pCreature); } /*###### @@ -250,11 +246,7 @@ bool QuestAccept_npc_defias_traitor(Player* pPlayer, Creature* pCreature, Quest CreatureAI* GetAI_npc_defias_traitor(Creature* pCreature) { - npc_defias_traitorAI* thisAI = new npc_defias_traitorAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new npc_defias_traitorAI(pCreature); } void AddSC_westfall() diff --git a/src/bindings/scripts/scripts/examples/example_escort.cpp b/src/bindings/scripts/scripts/examples/example_escort.cpp index fa1a8432837..23c97fb9b60 100644 --- a/src/bindings/scripts/scripts/examples/example_escort.cpp +++ b/src/bindings/scripts/scripts/examples/example_escort.cpp @@ -22,7 +22,7 @@ SDCategory: Script Examples EndScriptData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" enum { @@ -169,18 +169,7 @@ struct TRINITY_DLL_DECL example_escortAI : public npc_escortAI CreatureAI* GetAI_example_escort(Creature* pCreature) { - example_escortAI* pTestAI = new example_escortAI(pCreature); - - // this should be done over the db table scriptdev2.script_waypoint - // when using the db, you have to call this line instead of the ->AddWaypoint(): - // pTestAI->FillPointMovementListForCreature(); - pTestAI->AddWaypoint(0, 1231.0f, -4419.0f, 23.0f); - pTestAI->AddWaypoint(1, 1198.0f, -4440.0f, 23.0f); - pTestAI->AddWaypoint(2, 1208.0f, -4392.0f, 23.0f); - pTestAI->AddWaypoint(3, 1231.0f, -4419.0f, 23.0f, 5000); - pTestAI->AddWaypoint(4, 1208.0f, -4392.0f, 23.0f, 5000); - - return pTestAI; + return new example_escortAI(pCreature); } bool GossipHello_example_escort(Player* pPlayer, Creature* pCreature) diff --git a/src/bindings/scripts/scripts/item/item_test.cpp b/src/bindings/scripts/scripts/item/item_test.cpp deleted file mode 100644 index 0c2d9ac2793..00000000000 --- a/src/bindings/scripts/scripts/item/item_test.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/* 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: Item_Test -SD%Complete: 100 -SDComment: Used for Testing Item Scripts -SDCategory: Items -EndScriptData */ - -#include "precompiled.h" - -extern void LoadDatabase(); - -bool ItemUse_item_test(Player* pPlayer, Item* _Item, SpellCastTargets const& targets) -{ - LoadDatabase(); - return true; -} - -void AddSC_item_test() -{ - Script *newscript; - - newscript = new Script; - newscript->Name="item_test"; - newscript->pItemUse = &ItemUse_item_test; - newscript->RegisterSelf(); -} - diff --git a/src/bindings/scripts/scripts/kalimdor/ashenvale.cpp b/src/bindings/scripts/scripts/kalimdor/ashenvale.cpp index 5cd150bb5a2..86f3286c92f 100644 --- a/src/bindings/scripts/scripts/kalimdor/ashenvale.cpp +++ b/src/bindings/scripts/scripts/kalimdor/ashenvale.cpp @@ -27,7 +27,7 @@ npc_ruul_snowhoof EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*#### # npc_torek @@ -144,11 +144,7 @@ bool QuestAccept_npc_torek(Player* pPlayer, Creature* pCreature, Quest const* qu CreatureAI* GetAI_npc_torek(Creature* pCreature) { - npc_torekAI* thisAI = new npc_torekAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new npc_torekAI(pCreature); } /*#### @@ -230,11 +226,7 @@ bool QuestAccept_npc_ruul_snowhoof(Player* pPlayer, Creature* pCreature, Quest c CreatureAI* GetAI_npc_ruul_snowhoofAI(Creature* pCreature) { - npc_ruul_snowhoofAI* ruul_snowhoofAI = new npc_ruul_snowhoofAI(pCreature); - - ruul_snowhoofAI->FillPointMovementListForCreature(); - - return ruul_snowhoofAI; + return new npc_ruul_snowhoofAI(pCreature); } void AddSC_ashenvale() diff --git a/src/bindings/scripts/scripts/kalimdor/azuremyst_isle.cpp b/src/bindings/scripts/scripts/kalimdor/azuremyst_isle.cpp index 8d88a4fcb86..71341f4d0ee 100644 --- a/src/bindings/scripts/scripts/kalimdor/azuremyst_isle.cpp +++ b/src/bindings/scripts/scripts/kalimdor/azuremyst_isle.cpp @@ -31,7 +31,7 @@ mob_nestlewood_owlkin EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" #include <cmath> /*###### @@ -383,11 +383,7 @@ bool QuestAccept_npc_magwin(Player* pPlayer, Creature* pCreature, Quest const* q CreatureAI* GetAI_npc_magwinAI(Creature* pCreature) { - npc_magwinAI* magwinAI = new npc_magwinAI(pCreature); - - magwinAI->FillPointMovementListForCreature(); - - return magwinAI; + return new npc_magwinAI(pCreature); } /*###### diff --git a/src/bindings/scripts/scripts/kalimdor/darkshore.cpp b/src/bindings/scripts/scripts/kalimdor/darkshore.cpp index 5c81489df3c..fef5cf36e43 100644 --- a/src/bindings/scripts/scripts/kalimdor/darkshore.cpp +++ b/src/bindings/scripts/scripts/kalimdor/darkshore.cpp @@ -27,7 +27,7 @@ npc_threshwackonator EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*#### # npc_prospector_remtravel @@ -145,11 +145,7 @@ struct TRINITY_DLL_DECL npc_prospector_remtravelAI : public npc_escortAI CreatureAI* GetAI_npc_prospector_remtravel(Creature* pCreature) { - npc_prospector_remtravelAI* tempAI = new npc_prospector_remtravelAI(pCreature); - - tempAI->FillPointMovementListForCreature(); - - return tempAI; + return new npc_prospector_remtravelAI(pCreature); } bool QuestAccept_npc_prospector_remtravel(Player* pPlayer, Creature* pCreature, const Quest* pQuest) diff --git a/src/bindings/scripts/scripts/kalimdor/feralas.cpp b/src/bindings/scripts/scripts/kalimdor/feralas.cpp index bcbf3689d2e..826d9cf19f8 100644 --- a/src/bindings/scripts/scripts/kalimdor/feralas.cpp +++ b/src/bindings/scripts/scripts/kalimdor/feralas.cpp @@ -22,7 +22,7 @@ SDCategory: Feralas EndScriptData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_gregan_brewspewer @@ -143,11 +143,7 @@ struct TRINITY_DLL_DECL npc_oox22feAI : public npc_escortAI CreatureAI* GetAI_npc_oox22fe(Creature* pCreature) { - npc_oox22feAI* oox22AI = new npc_oox22feAI(pCreature); - - oox22AI->FillPointMovementListForCreature(); - - return oox22AI; + return new npc_oox22feAI(pCreature); } bool QuestAccept_npc_oox22fe(Player* pPlayer, Creature* pCreature, const Quest* pQuest) diff --git a/src/bindings/scripts/scripts/kalimdor/moonglade.cpp b/src/bindings/scripts/scripts/kalimdor/moonglade.cpp index 38e754ff6bf..4206e370f4c 100644 --- a/src/bindings/scripts/scripts/kalimdor/moonglade.cpp +++ b/src/bindings/scripts/scripts/kalimdor/moonglade.cpp @@ -30,7 +30,7 @@ npc_clintar_dreamwalker EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_bunthen_plainswind diff --git a/src/bindings/scripts/scripts/kalimdor/mulgore.cpp b/src/bindings/scripts/scripts/kalimdor/mulgore.cpp index 9a4cc9a1fbd..544cce69d28 100644 --- a/src/bindings/scripts/scripts/kalimdor/mulgore.cpp +++ b/src/bindings/scripts/scripts/kalimdor/mulgore.cpp @@ -28,7 +28,7 @@ npc_plains_vision EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### # npc_skorn_whitecloud diff --git a/src/bindings/scripts/scripts/kalimdor/stonetalon_mountains.cpp b/src/bindings/scripts/scripts/kalimdor/stonetalon_mountains.cpp index 13269f1e46f..5c9dbe0b199 100644 --- a/src/bindings/scripts/scripts/kalimdor/stonetalon_mountains.cpp +++ b/src/bindings/scripts/scripts/kalimdor/stonetalon_mountains.cpp @@ -27,7 +27,7 @@ npc_kaya_flathoof EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_braug_dimspirit @@ -146,11 +146,7 @@ bool QuestAccept_npc_kaya_flathoof(Player* pPlayer, Creature* pCreature, Quest c CreatureAI* GetAI_npc_kaya_flathoofAI(Creature* pCreature) { - npc_kaya_flathoofAI* kayaAI = new npc_kaya_flathoofAI(pCreature); - - kayaAI->FillPointMovementListForCreature(); - - return kayaAI; + return new npc_kaya_flathoofAI(pCreature); } /*###### diff --git a/src/bindings/scripts/scripts/kalimdor/tanaris.cpp b/src/bindings/scripts/scripts/kalimdor/tanaris.cpp index fd8258cdf49..be97636270e 100644 --- a/src/bindings/scripts/scripts/kalimdor/tanaris.cpp +++ b/src/bindings/scripts/scripts/kalimdor/tanaris.cpp @@ -32,7 +32,7 @@ npc_tooga EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## mob_aquementas @@ -214,11 +214,7 @@ struct TRINITY_DLL_DECL npc_custodian_of_timeAI : public npc_escortAI CreatureAI* GetAI_npc_custodian_of_time(Creature* pCreature) { - npc_custodian_of_timeAI* custodian_of_timeAI = new npc_custodian_of_timeAI(pCreature); - - custodian_of_timeAI->FillPointMovementListForCreature(); - - return custodian_of_timeAI; + return new npc_custodian_of_timeAI(pCreature); } /*###### diff --git a/src/bindings/scripts/scripts/kalimdor/the_barrens.cpp b/src/bindings/scripts/scripts/kalimdor/the_barrens.cpp index 34a89d8daa2..aff67963445 100644 --- a/src/bindings/scripts/scripts/kalimdor/the_barrens.cpp +++ b/src/bindings/scripts/scripts/kalimdor/the_barrens.cpp @@ -31,7 +31,7 @@ npc_wizzlecrank_shredder EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_beaten_corpse @@ -146,11 +146,7 @@ struct TRINITY_DLL_DECL npc_giltharesAI : public npc_escortAI CreatureAI* GetAI_npc_gilthares(Creature* pCreature) { - npc_giltharesAI* pTempAI = new npc_giltharesAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_giltharesAI(pCreature); } bool QuestAccept_npc_gilthares(Player* pPlayer, Creature* pCreature, const Quest* pQuest) diff --git a/src/bindings/scripts/scripts/kalimdor/thousand_needles.cpp b/src/bindings/scripts/scripts/kalimdor/thousand_needles.cpp index 7dd273757ed..6ec4a1403ab 100644 --- a/src/bindings/scripts/scripts/kalimdor/thousand_needles.cpp +++ b/src/bindings/scripts/scripts/kalimdor/thousand_needles.cpp @@ -29,7 +29,7 @@ npc_plucky EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*##### # npc_kanati @@ -82,11 +82,7 @@ struct TRINITY_DLL_DECL npc_kanatiAI : public npc_escortAI CreatureAI* GetAI_npc_kanati(Creature* pCreature) { - npc_kanatiAI* pTempAI = new npc_kanatiAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_kanatiAI(pCreature); } bool QuestAccept_npc_kanati(Player* pPlayer, Creature* pCreature, const Quest* pQuest) @@ -170,11 +166,7 @@ struct TRINITY_DLL_DECL npc_lakota_windsongAI : public npc_escortAI CreatureAI* GetAI_npc_lakota_windsong(Creature* pCreature) { - npc_lakota_windsongAI* pTempAI = new npc_lakota_windsongAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_lakota_windsongAI(pCreature); } bool QuestAccept_npc_lakota_windsong(Player* pPlayer, Creature* pCreature, const Quest* pQuest) @@ -247,11 +239,7 @@ struct TRINITY_DLL_DECL npc_paoka_swiftmountainAI : public npc_escortAI CreatureAI* GetAI_npc_paoka_swiftmountain(Creature* pCreature) { - npc_paoka_swiftmountainAI* pTempAI = new npc_paoka_swiftmountainAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_paoka_swiftmountainAI(pCreature); } bool QuestAccept_npc_paoka_swiftmountain(Player* pPlayer, Creature* pCreature, const Quest* pQuest) diff --git a/src/bindings/scripts/scripts/northrend/sholazar_basin.cpp b/src/bindings/scripts/scripts/northrend/sholazar_basin.cpp index 7691ffbf004..da370ac4978 100644 --- a/src/bindings/scripts/scripts/northrend/sholazar_basin.cpp +++ b/src/bindings/scripts/scripts/northrend/sholazar_basin.cpp @@ -26,7 +26,7 @@ npc_injured_rainspeaker_oracle EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_injured_rainspeaker_oracle @@ -160,11 +160,7 @@ bool QuestAccept_npc_injured_rainspeaker_oracle(Player* pPlayer, Creature* pCrea CreatureAI* GetAI_npc_injured_rainspeaker_oracle(Creature* pCreature) { - npc_injured_rainspeaker_oracleAI* thisAI = new npc_injured_rainspeaker_oracleAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new npc_injured_rainspeaker_oracleAI(pCreature); } void AddSC_sholazar_basin() diff --git a/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp b/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp index 3688372eff6..da5d0e15699 100644 --- a/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp +++ b/src/bindings/scripts/scripts/outland/hellfire_peninsula.cpp @@ -24,11 +24,12 @@ EndScriptData */ /* ContentData npc_aeranas go_haaleshi_altar +npc_naladu npc_wounded_blood_elf EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_aeranas @@ -127,6 +128,35 @@ bool GOHello_go_haaleshi_altar(Player* pPlayer, GameObject* pGo) } /*###### +## npc_naladu +######*/ + +#define GOSSIP_NALADU_ITEM1 "Why don't you escape?" + +enum +{ + GOSSIP_TEXTID_NALADU1 = 9788 +}; + +bool GossipHello_npc_naladu(Player* pPlayer, Creature* pCreature) +{ + if (pCreature->isQuestGiver()) + pPlayer->PrepareQuestMenu(pCreature->GetGUID()); + + pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_NALADU_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1); + pPlayer->SEND_GOSSIP_MENU(pCreature->GetNpcTextId(), pCreature->GetGUID()); + return true; +} + +bool GossipSelect_npc_naladu(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction) +{ + if (uiAction == GOSSIP_ACTION_INFO_DEF+1) + pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_NALADU1, pCreature->GetGUID()); + + return true; +} + +/*###### ## npc_wounded_blood_elf ######*/ @@ -197,11 +227,7 @@ struct TRINITY_DLL_DECL npc_wounded_blood_elfAI : public npc_escortAI CreatureAI* GetAI_npc_wounded_blood_elf(Creature* pCreature) { - npc_wounded_blood_elfAI* welfAI = new npc_wounded_blood_elfAI(pCreature); - - welfAI->FillPointMovementListForCreature(); - - return welfAI; + return new npc_wounded_blood_elfAI(pCreature); } bool QuestAccept_npc_wounded_blood_elf(Player* pPlayer, Creature* pCreature, Quest const* quest) @@ -237,6 +263,12 @@ void AddSC_hellfire_peninsula() newscript->RegisterSelf(); newscript = new Script; + newscript->Name = "npc_naladu"; + newscript->pGossipHello = &GossipHello_npc_naladu; + newscript->pGossipSelect = &GossipSelect_npc_naladu; + newscript->RegisterSelf(); + + newscript = new Script; newscript->Name="npc_wounded_blood_elf"; newscript->GetAI = &GetAI_npc_wounded_blood_elf; newscript->pQuestAccept = &QuestAccept_npc_wounded_blood_elf; diff --git a/src/bindings/scripts/scripts/outland/netherstorm.cpp b/src/bindings/scripts/scripts/outland/netherstorm.cpp index 17f545ee5f4..e251951f4aa 100644 --- a/src/bindings/scripts/scripts/outland/netherstorm.cpp +++ b/src/bindings/scripts/scripts/outland/netherstorm.cpp @@ -29,7 +29,7 @@ npc_bessy EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_manaforge_control_console diff --git a/src/bindings/scripts/scripts/outland/shadowmoon_valley.cpp b/src/bindings/scripts/scripts/outland/shadowmoon_valley.cpp index 4772cb04c8d..41b1ec159b8 100644 --- a/src/bindings/scripts/scripts/outland/shadowmoon_valley.cpp +++ b/src/bindings/scripts/scripts/outland/shadowmoon_valley.cpp @@ -40,7 +40,7 @@ npc_enraged_spirit EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*##### # mob_mature_netherwing_drake @@ -1017,11 +1017,7 @@ struct TRINITY_DLL_DECL npc_earthmender_wildaAI : public npc_escortAI CreatureAI* GetAI_npc_earthmender_wilda(Creature* pCreature) { - npc_earthmender_wildaAI* pTempAI = new npc_earthmender_wildaAI(pCreature); - - pTempAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pTempAI; + return new npc_earthmender_wildaAI(pCreature); } bool QuestAccept_npc_earthmender_wilda(Player* pPlayer, Creature* pCreature, const Quest* pQuest) diff --git a/src/bindings/scripts/scripts/outland/shattrath_city.cpp b/src/bindings/scripts/scripts/outland/shattrath_city.cpp index 389671c5756..e44aea2e0a0 100644 --- a/src/bindings/scripts/scripts/outland/shattrath_city.cpp +++ b/src/bindings/scripts/scripts/outland/shattrath_city.cpp @@ -33,7 +33,7 @@ npc_khadgar EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npc_raliq_the_drunk @@ -356,11 +356,7 @@ public: }; CreatureAI* GetAI_npc_kservantAI(Creature* pCreature) { - npc_kservantAI* kservantAI = new npc_kservantAI(pCreature); - - kservantAI->FillPointMovementListForCreature(); - - return kservantAI; + return new npc_kservantAI(pCreature); } /*###### diff --git a/src/bindings/scripts/scripts/outland/terokkar_forest.cpp b/src/bindings/scripts/scripts/outland/terokkar_forest.cpp index 6b5d828d83d..ebe8c0b944f 100644 --- a/src/bindings/scripts/scripts/outland/terokkar_forest.cpp +++ b/src/bindings/scripts/scripts/outland/terokkar_forest.cpp @@ -32,7 +32,7 @@ npc_slim EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## mob_unkor_the_ruthless @@ -221,11 +221,7 @@ public: CreatureAI* GetAI_npc_skywingAI(Creature* pCreature) { - npc_skywingAI* skywingAI = new npc_skywingAI(pCreature); - - skywingAI->FillPointMovementListForCreature(); - - return skywingAI; + return new npc_skywingAI(pCreature); } /*###### @@ -675,11 +671,7 @@ bool QuestAccept_npc_akuno(Player* pPlayer, Creature* pCreature, Quest const* pQ CreatureAI* GetAI_npc_akuno(Creature* pCreature) { - npc_akunoAI* thisAI = new npc_akunoAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return(CreatureAI*)thisAI; + return new npc_akunoAI(pCreature); } void AddSC_terokkar_forest() diff --git a/src/bindings/scripts/scripts/outland/zangarmarsh.cpp b/src/bindings/scripts/scripts/outland/zangarmarsh.cpp index b5b7e9a7991..5267767c544 100644 --- a/src/bindings/scripts/scripts/outland/zangarmarsh.cpp +++ b/src/bindings/scripts/scripts/outland/zangarmarsh.cpp @@ -30,7 +30,7 @@ npc_kayra_longmane EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## npcs_ashyen_and_keleth @@ -331,11 +331,7 @@ bool QuestAccept_npc_kayra_longmane(Player* pPlayer, Creature* pCreature, Quest CreatureAI* GetAI_npc_kayra_longmaneAI(Creature* pCreature) { - npc_kayra_longmaneAI* thisAI = new npc_kayra_longmaneAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new npc_kayra_longmaneAI(pCreature); } /*###### ## AddSC diff --git a/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp b/src/bindings/scripts/scripts/world/areatrigger_scripts.cpp index 9ed608ce97b..9ed608ce97b 100644 --- a/src/bindings/scripts/scripts/areatrigger/areatrigger_scripts.cpp +++ b/src/bindings/scripts/scripts/world/areatrigger_scripts.cpp diff --git a/src/bindings/scripts/scripts/boss/boss_emeriss.cpp b/src/bindings/scripts/scripts/world/boss_emeriss.cpp index 9881525e3ad..9881525e3ad 100644 --- a/src/bindings/scripts/scripts/boss/boss_emeriss.cpp +++ b/src/bindings/scripts/scripts/world/boss_emeriss.cpp diff --git a/src/bindings/scripts/scripts/boss/boss_lethon.cpp b/src/bindings/scripts/scripts/world/boss_lethon.cpp index e387891efed..e387891efed 100644 --- a/src/bindings/scripts/scripts/boss/boss_lethon.cpp +++ b/src/bindings/scripts/scripts/world/boss_lethon.cpp diff --git a/src/bindings/scripts/scripts/boss/boss_taerar.cpp b/src/bindings/scripts/scripts/world/boss_taerar.cpp index 3f45ab26331..3f45ab26331 100644 --- a/src/bindings/scripts/scripts/boss/boss_taerar.cpp +++ b/src/bindings/scripts/scripts/world/boss_taerar.cpp diff --git a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp b/src/bindings/scripts/scripts/world/boss_ysondre.cpp index 1b93f54c047..1b93f54c047 100644 --- a/src/bindings/scripts/scripts/boss/boss_ysondre.cpp +++ b/src/bindings/scripts/scripts/world/boss_ysondre.cpp diff --git a/src/bindings/scripts/scripts/go/go_scripts.cpp b/src/bindings/scripts/scripts/world/go_scripts.cpp index d0818fe8dc0..d0818fe8dc0 100644 --- a/src/bindings/scripts/scripts/go/go_scripts.cpp +++ b/src/bindings/scripts/scripts/world/go_scripts.cpp diff --git a/src/bindings/scripts/scripts/guard/guards.cpp b/src/bindings/scripts/scripts/world/guards.cpp index fa5592f7c32..fa5592f7c32 100644 --- a/src/bindings/scripts/scripts/guard/guards.cpp +++ b/src/bindings/scripts/scripts/world/guards.cpp diff --git a/src/bindings/scripts/scripts/item/item_scripts.cpp b/src/bindings/scripts/scripts/world/item_scripts.cpp index f103dc86cdc..f103dc86cdc 100644 --- a/src/bindings/scripts/scripts/item/item_scripts.cpp +++ b/src/bindings/scripts/scripts/world/item_scripts.cpp diff --git a/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp b/src/bindings/scripts/scripts/world/mob_generic_creature.cpp index 30a57e56dd5..30a57e56dd5 100644 --- a/src/bindings/scripts/scripts/creature/mob_generic_creature.cpp +++ b/src/bindings/scripts/scripts/world/mob_generic_creature.cpp diff --git a/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp b/src/bindings/scripts/scripts/world/npc_innkeeper.cpp index 8a99ea7fc7a..8a99ea7fc7a 100644 --- a/src/bindings/scripts/scripts/npc/npc_innkeeper.cpp +++ b/src/bindings/scripts/scripts/world/npc_innkeeper.cpp diff --git a/src/bindings/scripts/scripts/npc/npc_professions.cpp b/src/bindings/scripts/scripts/world/npc_professions.cpp index 07b40555fd5..07b40555fd5 100644 --- a/src/bindings/scripts/scripts/npc/npc_professions.cpp +++ b/src/bindings/scripts/scripts/world/npc_professions.cpp diff --git a/src/bindings/scripts/scripts/npc/npc_taxi.cpp b/src/bindings/scripts/scripts/world/npc_taxi.cpp index 161b663fbb1..161b663fbb1 100644 --- a/src/bindings/scripts/scripts/npc/npc_taxi.cpp +++ b/src/bindings/scripts/scripts/world/npc_taxi.cpp diff --git a/src/bindings/scripts/scripts/npc/npcs_special.cpp b/src/bindings/scripts/scripts/world/npcs_special.cpp index 64f89628528..2a56a825b11 100644 --- a/src/bindings/scripts/scripts/npc/npcs_special.cpp +++ b/src/bindings/scripts/scripts/world/npcs_special.cpp @@ -38,7 +38,7 @@ npc_snake_trap_serpents 80% AI for snakes that summoned by Snake Trap EndContentData */ #include "precompiled.h" -#include "../npc/npc_escortAI.h" +#include "escortAI.h" #include "ObjectMgr.h" /*######## @@ -1005,11 +1005,7 @@ struct TRINITY_DLL_DECL npc_garments_of_questsAI : public npc_escortAI CreatureAI* GetAI_npc_garments_of_quests(Creature* pCreature) { - npc_garments_of_questsAI* tempAI = new npc_garments_of_questsAI(pCreature); - - tempAI->FillPointMovementListForCreature(); - - return tempAI; + return new npc_garments_of_questsAI(pCreature); } /*###### 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 7266c0d5a2a..f9961e10174 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 @@ -22,7 +22,7 @@ SDCategory: Auchindoun, Shadow Labyrinth EndScriptData */ #include "precompiled.h" -#include "../../../npc/npc_escortAI.h" +#include "escortAI.h" #include "def_shadow_labyrinth.h" enum @@ -203,11 +203,7 @@ struct TRINITY_DLL_DECL boss_ambassador_hellmawAI : public npc_escortAI CreatureAI* GetAI_boss_ambassador_hellmaw(Creature* pCreature) { - boss_ambassador_hellmawAI* pHellAI = new boss_ambassador_hellmawAI(pCreature); - - pHellAI->FillPointMovementListForCreature(); - - return (CreatureAI*)pHellAI; + return new boss_ambassador_hellmawAI(pCreature); } void AddSC_boss_ambassador_hellmaw() 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 17390068f65..5eef2c90aa0 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/blackrock_depths.cpp @@ -37,7 +37,7 @@ npc_rocknot EndContentData */ #include "precompiled.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #include "def_blackrock_depths.h" /*###### @@ -330,11 +330,7 @@ struct TRINITY_DLL_DECL npc_grimstoneAI : public npc_escortAI CreatureAI* GetAI_npc_grimstone(Creature* pCreature) { - npc_grimstoneAI* Grimstone_AI = new npc_grimstoneAI(pCreature); - - Grimstone_AI->FillPointMovementListForCreature(); - - return Grimstone_AI; + return new npc_grimstoneAI(pCreature); } /*###### @@ -1191,11 +1187,7 @@ struct TRINITY_DLL_DECL npc_rocknotAI : public npc_escortAI CreatureAI* GetAI_npc_rocknot(Creature* pCreature) { - npc_rocknotAI* Rocknot_AI = new npc_rocknotAI(pCreature); - - Rocknot_AI->FillPointMovementListForCreature(); - - return Rocknot_AI; + return new npc_rocknotAI(pCreature); } bool ChooseReward_npc_rocknot(Player* pPlayer, Creature* pCreature, const Quest *_Quest, uint32 item) diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.h b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.h index 5663516460d..3b0ff32a429 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.h +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjalAI.h @@ -6,7 +6,7 @@ #define SC_HYJALAI_H #include "def_hyjal.h" -#include "../../../npc/npc_escortAI.h" +#include "escortAI.h" // Trash Mobs summoned in waves #define NECROMANCER 17899//done diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.h b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.h index 30b84c2e180..9eeff8a03f4 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.h +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/hyjal_trash.h @@ -3,7 +3,7 @@ #define SC_HYJAL_TRASH_AI_H #include "def_hyjal.h" -#include "../../../npc/npc_escortAI.h" +#include "escortAI.h" #define MINRAIDDAMAGE 700000//minimal damage before trash can drop loot and reputation, resets if faction leader dies 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 d8fe0694367..266f61354c0 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 @@ -23,7 +23,7 @@ EndScriptData */ #include "precompiled.h" #include "def_old_hillsbrad.h" -#include "../../../npc/npc_escortAI.h" +#include "escortAI.h" /*###### ## go_barrel_old_hillsbrad 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 71309b41825..5559989ef65 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 @@ -28,7 +28,7 @@ npc_taretha EndContentData */ #include "precompiled.h" -#include "../../../npc/npc_escortAI.h" +#include "escortAI.h" #include "def_old_hillsbrad.h" #define QUEST_ENTRY_HILLSBRAD 10282 @@ -483,11 +483,7 @@ struct TRINITY_DLL_DECL npc_thrall_old_hillsbradAI : public npc_escortAI CreatureAI* GetAI_npc_thrall_old_hillsbrad(Creature* pCreature) { - npc_thrall_old_hillsbradAI* thrall_walkAI = new npc_thrall_old_hillsbradAI(pCreature); - - thrall_walkAI->FillPointMovementListForCreature(); - - return thrall_walkAI; + return new npc_thrall_old_hillsbradAI(pCreature); } bool GossipHello_npc_thrall_old_hillsbrad(Player* pPlayer, Creature* pCreature) @@ -611,11 +607,7 @@ struct TRINITY_DLL_DECL npc_tarethaAI : public npc_escortAI }; CreatureAI* GetAI_npc_taretha(Creature* pCreature) { - npc_tarethaAI* taretha_walkAI = new npc_tarethaAI(pCreature); - - taretha_walkAI->FillPointMovementListForCreature(); - - return taretha_walkAI; + return new npc_tarethaAI(pCreature); } bool GossipHello_npc_taretha(Player* pPlayer, Creature* pCreature) 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 5650a68b500..1e62083f1f9 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 @@ -23,7 +23,7 @@ EndScriptData */ #include "precompiled.h" #include "def_serpent_shrine.h" -#include "../../../npc/npc_escortAI.h" +#include "escortAI.h" #define SAY_AGGRO -1548021 #define SAY_GAIN_BLESSING -1548022 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 f1bc6ce0cf1..c1a2280653c 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 @@ -23,7 +23,7 @@ EndScriptData */ #include "precompiled.h" #include "def_serpent_shrine.h" -#include "../../../creature/simple_ai.h" +#include "simple_ai.h" #include "Spell.h" #define SAY_INTRO -1548042 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 073af7212ec..38abc8f1507 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 @@ -23,7 +23,7 @@ EndScriptData */ #include "precompiled.h" #include "def_serpent_shrine.h" -#include "../../../creature/simple_ai.h" +#include "simple_ai.h" #include "Spell.h" #define SPELL_SPOUT 37433 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 2e3e943d3e6..d672851315e 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 @@ -22,7 +22,7 @@ SDCategory: Karazhan EndScriptData */ #include "precompiled.h" -#include "../../creature/simple_ai.h" +#include "simple_ai.h" #include "def_karazhan.h" #include "GameObject.h" diff --git a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp index 9f6983251c5..91dd4e44ad3 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/karazhan.cpp @@ -29,7 +29,7 @@ EndContentData */ #include "precompiled.h" #include "def_karazhan.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" /*###### # npc_barnesAI @@ -320,11 +320,7 @@ struct TRINITY_DLL_DECL npc_barnesAI : public npc_escortAI CreatureAI* GetAI_npc_barnesAI(Creature* pCreature) { - npc_barnesAI* Barnes_AI = new npc_barnesAI(pCreature); - - Barnes_AI->FillPointMovementListForCreature(); - - return (CreatureAI*)Barnes_AI; + return new npc_barnesAI(pCreature); } bool GossipHello_npc_barnes(Player* pPlayer, Creature* pCreature) 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 c9dc16b67d6..800a838aabc 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/boss_golemagg.cpp @@ -17,98 +17,101 @@ /* ScriptData SDName: Boss_Golemagg SD%Complete: 90 -SDComment: +SDComment: Timers need to be confirmed, Golemagg's Trust need to be checked SDCategory: Molten Core EndScriptData */ #include "precompiled.h" #include "def_molten_core.h" -#define EMOTE_AEGIS -1409002 - -#define SPELL_MAGMASPLASH 13879 -#define SPELL_PYROBLAST 20228 -#define SPELL_EARTHQUAKE 19798 -#define SPELL_ENRAGE 19953 -#define SPELL_BUFF 20553 - -//-- CoreRager Spells -- -#define SPELL_MANGLE 19820 -#define SPELL_AEGIS 20620 //This is self casted whenever we are below 50% +enum +{ + SPELL_MAGMASPLASH = 13879, + SPELL_PYROBLAST = 20228, + SPELL_EARTHQUAKE = 19798, + SPELL_ENRAGE = 19953, + SPELL_GOLEMAGG_TRUST = 20553, + + // Core Rager + EMOTE_LOWHP = -1409002, + SPELL_MANGLE = 19820 +}; struct TRINITY_DLL_DECL boss_golemaggAI : public ScriptedAI { - boss_golemaggAI(Creature *c) : ScriptedAI(c) + boss_golemaggAI(Creature* pCreature) : ScriptedAI(pCreature) { - pInstance = c->GetInstanceData(); + m_pInstance = pCreature->GetInstanceData(); } - ScriptedInstance *pInstance; - uint32 Pyroblast_Timer; - uint32 EarthQuake_Timer; - uint32 Enrage_Timer; - uint32 Buff_Timer; + ScriptedInstance* m_pInstance; + + uint32 m_uiPyroblastTimer; + uint32 m_uiEarthquakeTimer; + uint32 m_uiBuffTimer; + bool m_bEnraged; void Reset() { - Pyroblast_Timer = 7000; //These times are probably wrong - EarthQuake_Timer = 3000; - Buff_Timer = 2500; - Enrage_Timer = 0; - - m_creature->CastSpell(m_creature,SPELL_MAGMASPLASH,true); - } + m_uiPyroblastTimer = 7*IN_MILISECONDS; // These timers are probably wrong + m_uiEarthquakeTimer = 3*IN_MILISECONDS; + m_uiBuffTimer = 2.5*IN_MILISECONDS; + m_bEnraged = false; - void EnterCombat(Unit *who) - { + m_creature->CastSpell(m_creature, SPELL_MAGMASPLASH, true); } - void JustDied(Unit* Killer) + void JustDied(Unit* pKiller) { - if (pInstance) - pInstance->SetData(DATA_GOLEMAGG_DEATH, 0); + if (m_pInstance) + m_pInstance->SetData(DATA_GOLEMAGG_DEATH, 0); } - void UpdateAI(const uint32 diff) + void UpdateAI(const uint32 uiDiff) { if (!UpdateVictim()) return; - //Pyroblast_Timer - if (Pyroblast_Timer < diff) + //Pyroblast + if (m_uiPyroblastTimer < uiDiff) { - if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0)) - DoCast(target,SPELL_PYROBLAST); + if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) + DoCast(pTarget, SPELL_PYROBLAST); - Pyroblast_Timer = 7000; - }else Pyroblast_Timer -= diff; + m_uiPyroblastTimer = 7*IN_MILISECONDS; + } + else + m_uiPyroblastTimer -= uiDiff; - //Enrage_Timer - if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 11) + // Enrage + if (!m_bEnraged && m_creature->GetHealth()*100 < m_creature->GetMaxHealth()*10) { - if (Enrage_Timer < diff) - { - DoCast(m_creature,SPELL_ENRAGE); - Enrage_Timer = 62000; - }else Enrage_Timer -= diff; + DoCast(m_creature, SPELL_ENRAGE); + m_bEnraged = true; } - //EarthQuake_Timer - if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 11) + // Earthquake + if (m_bEnraged) { - if (EarthQuake_Timer < diff) + if (m_uiEarthquakeTimer < uiDiff) { - DoCast(m_creature->getVictim(),SPELL_EARTHQUAKE); - EarthQuake_Timer = 3000; - }else EarthQuake_Timer -= diff; + DoCast(m_creature->getVictim(), SPELL_EARTHQUAKE); + m_uiEarthquakeTimer = 3*IN_MILISECONDS; + } + else + m_uiEarthquakeTimer -= uiDiff; } - //Casting Buff for Coreragers. Spell is not working right. Players get the buff... - // if (Buff_Timer < diff) - // { - // DoCast(m_creature, SPELL_BUFF); - // Buff_Timer = 2500; - // }else Buff_Timer -= diff; + /* + // Golemagg's Trust + if (m_uiBuffTimer < uiDiff) + { + DoCast(m_creature, SPELL_GOLEMAGG_TRUST); + m_uiBuffTimer = 2.5*IN_MILISECONDS; + } + else + m_uiBuffTimer -= uiDiff; + */ DoMeleeAttackIfReady(); } @@ -118,60 +121,56 @@ struct TRINITY_DLL_DECL mob_core_ragerAI : public ScriptedAI { mob_core_ragerAI(Creature *c) : ScriptedAI(c) { - pInstance = c->GetInstanceData(); + m_pInstance = c->GetInstanceData(); } - uint32 Mangle_Timer; - uint32 Check_Timer; - ScriptedInstance *pInstance; + ScriptedInstance* m_pInstance; + + uint32 m_uiMangleTimer; void Reset() { - Mangle_Timer = 7000; //These times are probably wrong - Check_Timer = 1000; + m_uiMangleTimer = 7*IN_MILISECONDS; // These times are probably wrong } - void EnterCombat(Unit *who) + void DamageTaken(Unit* pDoneBy, uint32& uiDamage) { + if (m_creature->GetHealth()*100 < m_creature->GetMaxHealth()*50) + { + if (m_pInstance) + { + if (Creature* pGolemagg = m_pInstance->instance->GetCreature(m_pInstance->GetData64(DATA_GOLEMAGG))) + { + if (pGolemagg->isAlive()) + { + DoScriptText(EMOTE_LOWHP, m_creature); + m_creature->SetHealth(m_creature->GetMaxHealth()); + } + else + uiDamage = m_creature->GetHealth(); + } + } + } } - void UpdateAI(const uint32 diff) + void UpdateAI(const uint32 uiDiff) { if (!UpdateVictim()) return; - //Mangle_Timer - if (Mangle_Timer < diff) - { - DoCast(m_creature->getVictim(),SPELL_MANGLE); - Mangle_Timer = 10000; - }else Mangle_Timer -= diff; - - //Cast AEGIS - if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 50) + // Mangle + if (m_uiMangleTimer < uiDiff) { - DoCast(m_creature,SPELL_AEGIS); - DoScriptText(EMOTE_AEGIS, m_creature); + DoCast(m_creature->getVictim(), SPELL_MANGLE); + m_uiMangleTimer = 10*IN_MILISECONDS; } - - //Check_Timer - if (Check_Timer < diff) - { - if (pInstance) - { - Unit *pGolemagg = Unit::GetUnit((*m_creature), pInstance->GetData64(DATA_GOLEMAGG)); - if (!pGolemagg || !pGolemagg->isAlive()) - { - m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, true); - } - } - - Check_Timer = 1000; - }else Check_Timer -= diff; + else + m_uiMangleTimer -= uiDiff; DoMeleeAttackIfReady(); } }; + CreatureAI* GetAI_boss_golemagg(Creature* pCreature) { return new boss_golemaggAI (pCreature); @@ -184,7 +183,7 @@ CreatureAI* GetAI_mob_core_rager(Creature* pCreature) void AddSC_boss_golemagg() { - Script *newscript; + Script* newscript; newscript = new Script; newscript->Name="boss_golemagg"; 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 0cb6150b1aa..2ea052f0a90 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 @@ -183,7 +183,7 @@ struct TRINITY_DLL_DECL instance_molten_core : public ScriptedInstance case DATA_SULFURON: return Sulfuron; case DATA_GOLEMAGG: - return Sulfuron; + return Golemagg; case DATA_FLAMEWAKERPRIEST: return FlamewakerPriest; 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 945631665ec..7af3bcce6b6 100644 --- a/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp +++ b/src/bindings/scripts/scripts/zone/molten_core/molten_core.cpp @@ -26,7 +26,7 @@ mob_ancient_core_hound EndContentData */ #include "precompiled.h" -#include "../../creature/simple_ai.h" +#include "simple_ai.h" #define SPELL_CONE_OF_FIRE 19630 #define SPELL_BITE 19771 diff --git a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp index 0c5f01ac52c..a6bd845b13e 100644 --- a/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp +++ b/src/bindings/scripts/scripts/zone/razorfen_kraul/razorfen_kraul.cpp @@ -26,7 +26,7 @@ npc_willix EndContentData */ #include "precompiled.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #include "def_razorfen_kraul.h" #define SAY_READY -1047000 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 b56a60c0a1e..5a1c8e6d364 100644 --- a/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp +++ b/src/bindings/scripts/scripts/zone/scarlet_monastery/boss_herod.cpp @@ -22,7 +22,7 @@ SDCategory: Scarlet Monastery EndScriptData */ #include "precompiled.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #define SAY_AGGRO -1189000 #define SAY_WHIRLWIND -1189001 @@ -140,11 +140,7 @@ struct TRINITY_DLL_DECL mob_scarlet_traineeAI : public npc_escortAI CreatureAI* GetAI_mob_scarlet_trainee(Creature* pCreature) { - mob_scarlet_traineeAI* thisAI = new mob_scarlet_traineeAI(pCreature); - - thisAI->FillPointMovementListForCreature(); - - return thisAI; + return new mob_scarlet_traineeAI(pCreature); } void AddSC_boss_herod() 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 12c4bf2d3eb..5f9d42ea65e 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/shadowfang_keep.cpp @@ -26,7 +26,7 @@ npc_shadowfang_prisoner EndContentData */ #include "precompiled.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #include "def_shadowfang_keep.h" /*###### @@ -102,11 +102,7 @@ struct TRINITY_DLL_DECL npc_shadowfang_prisonerAI : public npc_escortAI CreatureAI* GetAI_npc_shadowfang_prisoner(Creature* pCreature) { - npc_shadowfang_prisonerAI* prisonerAI = new npc_shadowfang_prisonerAI(pCreature); - - prisonerAI->FillPointMovementListForCreature(); - - return prisonerAI; + return new npc_shadowfang_prisonerAI(pCreature); } bool GossipHello_npc_shadowfang_prisoner(Player* pPlayer, Creature* pCreature) diff --git a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp index a94e253c255..426b7fa2217 100644 --- a/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp +++ b/src/bindings/scripts/scripts/zone/ungoro_crater/ungoro_crater.cpp @@ -26,7 +26,7 @@ npc_a-me EndContentData */ #include "precompiled.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #define SAY_READY -1000200 #define SAY_AGGRO1 -1000201 diff --git a/src/bindings/scripts/scripts/zone/wailing_caverns/wailing_caverns.cpp b/src/bindings/scripts/scripts/zone/wailing_caverns/wailing_caverns.cpp index 864e0eb2a9b..622800127db 100644 --- a/src/bindings/scripts/scripts/zone/wailing_caverns/wailing_caverns.cpp +++ b/src/bindings/scripts/scripts/zone/wailing_caverns/wailing_caverns.cpp @@ -25,7 +25,7 @@ EndScriptData */ EndContentData */ #include "precompiled.h" -#include "../../npc/npc_escortAI.h" +#include "escortAI.h" #include "def_wailing_caverns.h" /*###### @@ -348,11 +348,7 @@ struct TRINITY_DLL_DECL npc_disciple_of_naralexAI : public npc_escortAI CreatureAI* GetAI_npc_disciple_of_naralex(Creature* pCreature) { - npc_disciple_of_naralexAI *disciple_of_naralexAI = new npc_disciple_of_naralexAI(pCreature); - - disciple_of_naralexAI->FillPointMovementListForCreature(); - - return disciple_of_naralexAI; + return new npc_disciple_of_naralexAI(pCreature); } bool GossipHello_npc_disciple_of_naralex(Player* pPlayer, Creature* pCreature) diff --git a/src/bindings/scripts/system/ScriptLoader.cpp b/src/bindings/scripts/system/ScriptLoader.cpp new file mode 100644 index 00000000000..8d2e4466a41 --- /dev/null +++ b/src/bindings/scripts/system/ScriptLoader.cpp @@ -0,0 +1,1026 @@ +/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> +* This program is free software licensed under GPL version 2 +* Please see the included DOCS/LICENSE.TXT for more information */ + +#include "precompiled.h" + +//custom + +//examples +extern void AddSC_example_creature(); +extern void AddSC_example_escort(); +extern void AddSC_example_gossip_codebox(); +extern void AddSC_example_misc(); + +//world +extern void AddSC_areatrigger_scripts(); +extern void AddSC_boss_emeriss(); +extern void AddSC_boss_taerar(); +extern void AddSC_boss_ysondre(); +extern void AddSC_generic_creature(); +extern void AddSC_go_scripts(); +extern void AddSC_guards(); +extern void AddSC_item_scripts(); +extern void AddSC_npc_professions(); +extern void AddSC_npcs_special(); +extern void AddSC_npc_taxi(); + +//eastern kingdoms +extern void AddSC_the_scarlet_enclave(); +//extern void AddSC_alterac_mountains(); +extern void AddSC_arathi_highlands(); +extern void AddSC_blasted_lands(); +extern void AddSC_boss_kruul(); +extern void AddSC_burning_steppes(); +extern void AddSC_dun_morogh(); +extern void AddSC_eastern_plaguelands(); +extern void AddSC_elwynn_forest(); +extern void AddSC_eversong_woods(); +extern void AddSC_ghostlands(); +extern void AddSC_hinterlands(); +extern void AddSC_ironforge(); +extern void AddSC_isle_of_queldanas(); +extern void AddSC_loch_modan(); +extern void AddSC_searing_gorge(); +extern void AddSC_silvermoon_city(); +extern void AddSC_silverpine_forest(); +extern void AddSC_stormwind_city(); +extern void AddSC_stranglethorn_vale(); +extern void AddSC_tirisfal_glades(); +extern void AddSC_undercity(); +extern void AddSC_western_plaguelands(); +extern void AddSC_westfall(); + +//kalimdor +extern void AddSC_ashenvale(); +extern void AddSC_azshara(); +extern void AddSC_azuremyst_isle(); +extern void AddSC_bloodmyst_isle(); +extern void AddSC_boss_azuregos(); +extern void AddSC_darkshore(); +extern void AddSC_desolace(); +extern void AddSC_dustwallow_marsh(); +extern void AddSC_felwood(); +extern void AddSC_feralas(); +extern void AddSC_moonglade(); +extern void AddSC_mulgore(); +extern void AddSC_orgrimmar(); +extern void AddSC_silithus(); +extern void AddSC_stonetalon_mountains(); +extern void AddSC_tanaris(); +extern void AddSC_teldrassil(); +extern void AddSC_the_barrens(); +extern void AddSC_thousand_needles(); +extern void AddSC_thunder_bluff(); +extern void AddSC_winterspring(); + +//northrend +extern void AddSC_borean_tundra(); +extern void AddSC_dragonblight(); +extern void AddSC_grizzly_hills(); +extern void AddSC_icecrown(); +extern void AddSC_sholazar_basin(); +extern void AddSC_zuldrak(); + +//outland +extern void AddSC_blades_edge_mountains(); +extern void AddSC_boss_doomlordkazzak(); +extern void AddSC_boss_doomwalker(); +extern void AddSC_hellfire_peninsula(); +extern void AddSC_nagrand(); +extern void AddSC_netherstorm(); +extern void AddSC_shadowmoon_valley(); +extern void AddSC_shattrath_city(); +extern void AddSC_terokkar_forest(); +extern void AddSC_zangarmarsh(); + +//-------------------- +//------ ZONE -------- + +//Aunchindoun +//--Auchenai Crypts +extern void AddSC_boss_exarch_maladaar(); +extern void AddSC_boss_shirrak_the_dead_watcher(); +//--Mana Tombs +extern void AddSC_boss_nexusprince_shaffar(); +extern void AddSC_boss_pandemonius(); + +//--Sekketh Halls +extern void AddSC_boss_darkweaver_syth(); +extern void AddSC_boss_talon_king_ikiss(); +extern void AddSC_instance_sethekk_halls(); + +//--Shadow Labyrinth +extern void AddSC_instance_shadow_labyrinth(); +extern void AddSC_boss_ambassador_hellmaw(); +extern void AddSC_boss_blackheart_the_inciter(); +extern void AddSC_boss_grandmaster_vorpil(); +extern void AddSC_boss_murmur(); + +//Azjol-Nerub +//--Ahn'kahet +extern void AddSC_instance_ahnkahet(); +extern void AddSC_boss_elder_nadox(); + +//Black Temple +extern void AddSC_black_temple(); +extern void AddSC_boss_illidan(); +extern void AddSC_boss_shade_of_akama(); +extern void AddSC_boss_supremus(); +extern void AddSC_boss_gurtogg_bloodboil(); +extern void AddSC_boss_mother_shahraz(); +extern void AddSC_boss_reliquary_of_souls(); +extern void AddSC_boss_teron_gorefiend(); +extern void AddSC_boss_najentus(); +extern void AddSC_boss_illidari_council(); +extern void AddSC_instance_black_temple(); + +//Blackfathom Depths +extern void AddSC_instance_blackfathom_deeps(); + +//Blackrock Depths +extern void AddSC_blackrock_depths(); +extern void AddSC_boss_ambassador_flamelash(); +extern void AddSC_boss_anubshiah(); +extern void AddSC_boss_draganthaurissan(); +extern void AddSC_boss_general_angerforge(); +extern void AddSC_boss_gorosh_the_dervish(); +extern void AddSC_boss_grizzle(); +extern void AddSC_boss_high_interrogator_gerstahn(); +extern void AddSC_boss_magmus(); +extern void AddSC_boss_moira_bronzebeard(); +extern void AddSC_boss_tomb_of_seven(); +extern void AddSC_instance_blackrock_depths(); + +//Blackrock Spire +extern void AddSC_boss_drakkisath(); +extern void AddSC_boss_halycon(); +extern void AddSC_boss_highlordomokk(); +extern void AddSC_boss_mothersmolderweb(); +extern void AddSC_boss_overlordwyrmthalak(); +extern void AddSC_boss_shadowvosh(); +extern void AddSC_boss_thebeast(); +extern void AddSC_boss_warmastervoone(); +extern void AddSC_boss_quatermasterzigris(); +extern void AddSC_boss_pyroguard_emberseer(); +extern void AddSC_boss_gyth(); +extern void AddSC_boss_rend_blackhand(); + +//Blackwing lair +extern void AddSC_boss_razorgore(); +extern void AddSC_boss_vael(); +extern void AddSC_boss_broodlord(); +extern void AddSC_boss_firemaw(); +extern void AddSC_boss_ebonroc(); +extern void AddSC_boss_flamegor(); +extern void AddSC_boss_chromaggus(); +extern void AddSC_boss_nefarian(); +extern void AddSC_boss_victor_nefarius(); + +//Caverns of Time +//--Battle for Mt. Hyjal +extern void AddSC_hyjal(); +extern void AddSC_boss_archimonde(); +extern void AddSC_instance_mount_hyjal(); +extern void AddSC_hyjal_trash(); +extern void AddSC_boss_rage_winterchill(); +extern void AddSC_boss_anetheron(); +extern void AddSC_boss_kazrogal(); +extern void AddSC_boss_azgalor(); + +//--Old Hillsbrad +extern void AddSC_boss_captain_skarloc(); +extern void AddSC_boss_epoch_hunter(); +extern void AddSC_boss_lieutenant_drake(); +extern void AddSC_instance_old_hillsbrad(); +extern void AddSC_old_hillsbrad(); + +//--The Dark Portal +extern void AddSC_boss_aeonus(); +extern void AddSC_boss_chrono_lord_deja(); +extern void AddSC_boss_temporus(); +extern void AddSC_dark_portal(); +extern void AddSC_instance_dark_portal(); + +//Coilfang Resevoir +//--Serpent Shrine Cavern +extern void AddSC_boss_fathomlord_karathress(); +extern void AddSC_boss_hydross_the_unstable(); +extern void AddSC_boss_lady_vashj(); +extern void AddSC_boss_leotheras_the_blind(); +extern void AddSC_boss_morogrim_tidewalker(); +extern void AddSC_instance_serpentshrine_cavern(); +extern void AddSC_boss_the_lurker_below(); + +//--Slave Pens + +//--Steam Vault +extern void AddSC_boss_hydromancer_thespia(); +extern void AddSC_boss_mekgineer_steamrigger(); +extern void AddSC_boss_warlord_kalithresh(); +extern void AddSC_instance_steam_vault(); + +//--Underbog +extern void AddSC_boss_hungarfen(); +extern void AddSC_boss_the_black_stalker(); + +//Deadmines +extern void AddSC_instance_deadmines(); + +//Gruul's Lair +extern void AddSC_boss_gruul(); +extern void AddSC_boss_high_king_maulgar(); +extern void AddSC_instance_gruuls_lair(); + +//Hellfire Citadel +//--Blood Furnace +extern void AddSC_boss_broggok(); +extern void AddSC_boss_kelidan_the_breaker(); +extern void AddSC_boss_the_maker(); +extern void AddSC_instance_blood_furnace(); + +//--Magtheridon's Lair +extern void AddSC_boss_magtheridon(); +extern void AddSC_instance_magtheridons_lair(); + +//--Shattered Halls +extern void AddSC_boss_grand_warlock_nethekurse(); +extern void AddSC_boss_warbringer_omrogg(); +extern void AddSC_boss_warchief_kargath_bladefist(); +extern void AddSC_instance_shattered_halls(); + +//--Ramparts +extern void AddSC_boss_watchkeeper_gargolmar(); +extern void AddSC_boss_omor_the_unscarred(); +extern void AddSC_boss_vazruden_the_herald(); +extern void AddSC_instance_ramparts(); + +//Karazhan +extern void AddSC_boss_attumen(); +extern void AddSC_boss_curator(); +extern void AddSC_boss_maiden_of_virtue(); +extern void AddSC_boss_shade_of_aran(); +extern void AddSC_boss_malchezaar(); +extern void AddSC_boss_terestian_illhoof(); +extern void AddSC_boss_moroes(); +extern void AddSC_bosses_opera(); +extern void AddSC_boss_netherspite(); +extern void AddSC_instance_karazhan(); +extern void AddSC_karazhan(); +extern void AddSC_boss_nightbane(); + +//Lower Blackrock Spire + +// Magister's Terrace +extern void AddSC_boss_felblood_kaelthas(); +extern void AddSC_boss_selin_fireheart(); +extern void AddSC_boss_vexallus(); +extern void AddSC_boss_priestess_delrissa(); +extern void AddSC_instance_magisters_terrace(); +extern void AddSC_magisters_terrace(); + +//Maraudon +extern void AddSC_boss_celebras_the_cursed(); +extern void AddSC_boss_landslide(); +extern void AddSC_boss_noxxion(); +extern void AddSC_boss_ptheradras(); + +//Molten core +extern void AddSC_boss_lucifron(); +extern void AddSC_boss_magmadar(); +extern void AddSC_boss_gehennas(); +extern void AddSC_boss_garr(); +extern void AddSC_boss_baron_geddon(); +extern void AddSC_boss_shazzrah(); +extern void AddSC_boss_golemagg(); +extern void AddSC_boss_sulfuron(); +extern void AddSC_boss_majordomo(); +extern void AddSC_boss_ragnaros(); +extern void AddSC_instance_molten_core(); +extern void AddSC_molten_core(); + +//Naxxramas +extern void AddSC_boss_anubrekhan(); +extern void AddSC_boss_maexxna(); +extern void AddSC_boss_patchwerk(); +extern void AddSC_boss_grobbulus(); +extern void AddSC_boss_razuvious(); +extern void AddSC_boss_kelthuzad(); +extern void AddSC_boss_loatheb(); +extern void AddSC_boss_noth(); +extern void AddSC_boss_gluth(); +extern void AddSC_boss_sapphiron(); +extern void AddSC_boss_four_horsemen(); +extern void AddSC_boss_faerlina(); +extern void AddSC_boss_heigan(); +extern void AddSC_boss_gothik(); +extern void AddSC_boss_thaddius(); +extern void AddSC_instance_naxxramas(); + +//The Nexus +//Eye of Eternety + +//Nexus +extern void AddSC_boss_magus_telestra(); +extern void AddSC_boss_anomalus(); +extern void AddSC_boss_ormorok(); +extern void AddSC_boss_keristrasza(); +extern void AddSC_instance_nexus(); + +//Oculus + +//Obsidian Sanctum +extern void AddSC_boss_sartharion(); +extern void AddSC_instance_obsidian_sanctum(); + +//Onyxia's Lair +extern void AddSC_boss_onyxia(); + +//Ragefire Chasm +//Razorfen Downs +extern void AddSC_boss_amnennar_the_coldbringer(); +extern void AddSC_razorfen_downs(); + +//Razorfen Kraul +extern void AddSC_razorfen_kraul(); + +//Ruins of Ahn'Qiraj +//Scarlet Monastery +extern void AddSC_boss_arcanist_doan(); +extern void AddSC_boss_azshir_the_sleepless(); +extern void AddSC_boss_bloodmage_thalnos(); +extern void AddSC_boss_headless_horseman(); +extern void AddSC_boss_herod(); +extern void AddSC_boss_high_inquisitor_fairbanks(); +extern void AddSC_boss_houndmaster_loksey(); +extern void AddSC_boss_interrogator_vishas(); +extern void AddSC_boss_scorn(); +extern void AddSC_instance_scarlet_monastery(); +extern void AddSC_boss_mograine_and_whitemane(); + +//Scholomance +extern void AddSC_boss_darkmaster_gandling(); +extern void AddSC_boss_death_knight_darkreaver(); +extern void AddSC_boss_theolenkrastinov(); +extern void AddSC_boss_illuciabarov(); +extern void AddSC_boss_instructormalicia(); +extern void AddSC_boss_jandicebarov(); +extern void AddSC_boss_kormok(); +extern void AddSC_boss_lordalexeibarov(); +extern void AddSC_boss_lorekeeperpolkelt(); +extern void AddSC_boss_rasfrost(); +extern void AddSC_boss_theravenian(); +extern void AddSC_boss_vectus(); +extern void AddSC_instance_scholomance(); + +//Shadowfang keep +extern void AddSC_shadowfang_keep(); +extern void AddSC_instance_shadowfang_keep(); + +//Stratholme +extern void AddSC_boss_magistrate_barthilas(); +extern void AddSC_boss_maleki_the_pallid(); +extern void AddSC_boss_nerubenkan(); +extern void AddSC_boss_cannon_master_willey(); +extern void AddSC_boss_baroness_anastari(); +extern void AddSC_boss_ramstein_the_gorger(); +extern void AddSC_boss_timmy_the_cruel(); +extern void AddSC_boss_postmaster_malown(); +extern void AddSC_boss_baron_rivendare(); +extern void AddSC_boss_dathrohan_balnazzar(); +extern void AddSC_boss_order_of_silver_hand(); +extern void AddSC_instance_stratholme(); +extern void AddSC_stratholme(); + +//Sunken Temple +//Sunwell Plateau +extern void AddSC_instance_sunwell_plateau(); +extern void AddSC_boss_kalecgos(); +extern void AddSC_boss_brutallus(); +extern void AddSC_boss_felmyst(); +extern void AddSC_boss_eredar_twins(); +extern void AddSC_boss_muru(); +extern void AddSC_boss_kiljaeden(); +extern void AddSC_sunwell_plateau(); + +//Tanaris + +//Tempest Keep +//--Arcatraz +extern void AddSC_arcatraz(); +extern void AddSC_boss_harbinger_skyriss(); +extern void AddSC_instance_arcatraz(); + +//--Botanica +extern void AddSC_boss_high_botanist_freywinn(); +extern void AddSC_boss_laj(); +extern void AddSC_boss_warp_splinter(); + +//--The Eye +extern void AddSC_boss_alar(); +extern void AddSC_boss_kaelthas(); +extern void AddSC_boss_void_reaver(); +extern void AddSC_boss_high_astromancer_solarian(); +extern void AddSC_instance_the_eye(); +extern void AddSC_the_eye(); + +//--The Mechanar +extern void AddSC_boss_gatewatcher_iron_hand(); +extern void AddSC_boss_nethermancer_sepethrea(); +extern void AddSC_boss_pathaleon_the_calculator(); +extern void AddSC_instance_mechanar(); + +//Temple of ahn'qiraj +extern void AddSC_boss_cthun(); +extern void AddSC_boss_fankriss(); +extern void AddSC_boss_huhuran(); +extern void AddSC_bug_trio(); +extern void AddSC_boss_sartura(); +extern void AddSC_boss_skeram(); +extern void AddSC_boss_twinemperors(); +extern void AddSC_mob_anubisath_sentinel(); +extern void AddSC_instance_temple_of_ahnqiraj(); + +//Uldaman +extern void AddSC_boss_archaedas(); +extern void AddSC_boss_ironaya(); +extern void AddSC_uldaman(); +extern void AddSC_instance_uldaman(); + +//Ulduar +extern void AddSC_boss_auriaya(); +extern void AddSC_boss_flame_leviathan(); +extern void AddSC_boss_ignis(); +extern void AddSC_boss_razorscale(); +extern void AddSC_boss_xt002(); +//extern void AddSC_instance_ulduar(); + +//Un'Goro Crater +extern void AddSC_ungoro_crater(); + +//Upper blackrock spire + +//Utgarde Keep +extern void AddSC_boss_keleseth(); +extern void AddSC_boss_skarvald_dalronn(); +extern void AddSC_boss_ingvar_the_plunderer(); +extern void AddSC_instance_utgarde_keep(); +extern void AddSC_utgarde_keep(); + +//Wailing caverns +extern void AddSC_wailing_caverns(); +extern void AddSC_instance_wailing_caverns(); + +//Zul'Farrak +extern void AddSC_zulfarrak(); + +//Zul'Gurub +extern void AddSC_boss_jeklik(); +extern void AddSC_boss_venoxis(); +extern void AddSC_boss_marli(); +extern void AddSC_boss_mandokir(); +extern void AddSC_boss_gahzranka(); +extern void AddSC_boss_thekal(); +extern void AddSC_boss_arlokk(); +extern void AddSC_boss_jindo(); +extern void AddSC_boss_hakkar(); +extern void AddSC_boss_grilek(); +extern void AddSC_boss_hazzarah(); +extern void AddSC_boss_renataki(); +extern void AddSC_boss_wushoolay(); +extern void AddSC_instance_zulgurub(); + +//Zul'Aman +extern void AddSC_boss_akilzon(); +extern void AddSC_boss_halazzi(); +extern void AddSC_boss_hex_lord_malacrass(); +extern void AddSC_boss_janalai(); +extern void AddSC_boss_nalorakk(); +extern void AddSC_boss_zuljin(); +extern void AddSC_instance_zulaman(); +extern void AddSC_zulaman(); + +//Vault of Archavon +extern void AddSC_boss_archavon(); +extern void AddSC_boss_emalon(); +extern void AddSC_instance_archavon(); + +//Halls of Lightning +extern void AddSC_boss_bjarngrim(); +extern void AddSC_boss_loken(); +extern void AddSC_instance_halls_of_lightning(); + +//Region +extern void AddSC_wintergrasp(); + +void AddScripts() +{ + //custom + + //examples + AddSC_example_creature(); + AddSC_example_escort(); + AddSC_example_gossip_codebox(); + AddSC_example_misc(); + + //world + AddSC_areatrigger_scripts(); + AddSC_boss_emeriss(); + AddSC_boss_taerar(); + AddSC_boss_ysondre(); + AddSC_generic_creature(); + AddSC_go_scripts(); + AddSC_guards(); + AddSC_item_scripts(); + AddSC_npc_professions(); + AddSC_npcs_special(); + AddSC_npc_taxi(); + + //eastern kingdoms + AddSC_the_scarlet_enclave(); + //AddSC_alterac_mountains(); + AddSC_arathi_highlands(); + AddSC_blasted_lands(); + AddSC_boss_kruul(); + AddSC_burning_steppes(); + AddSC_dun_morogh(); + AddSC_eastern_plaguelands(); + AddSC_elwynn_forest(); + AddSC_eversong_woods(); + AddSC_ghostlands(); + AddSC_hinterlands(); + AddSC_ironforge(); + AddSC_isle_of_queldanas(); + AddSC_loch_modan(); + AddSC_searing_gorge(); + AddSC_silvermoon_city(); + AddSC_silverpine_forest(); + AddSC_stormwind_city(); + AddSC_stranglethorn_vale(); + AddSC_tirisfal_glades(); + AddSC_undercity(); + AddSC_western_plaguelands(); + AddSC_westfall(); + + //kalimdor + AddSC_ashenvale(); + AddSC_azshara(); + AddSC_azuremyst_isle(); + AddSC_bloodmyst_isle(); + AddSC_boss_azuregos(); + AddSC_darkshore(); + AddSC_desolace(); + AddSC_dustwallow_marsh(); + AddSC_felwood(); + AddSC_feralas(); + AddSC_moonglade(); + AddSC_mulgore(); + AddSC_orgrimmar(); + AddSC_silithus(); + AddSC_stonetalon_mountains(); + AddSC_tanaris(); + AddSC_teldrassil(); + AddSC_the_barrens(); + AddSC_thousand_needles(); + AddSC_thunder_bluff(); + AddSC_winterspring(); + + //northrend + AddSC_borean_tundra(); + AddSC_dragonblight(); + AddSC_grizzly_hills(); + AddSC_icecrown(); + AddSC_sholazar_basin(); + AddSC_zuldrak(); + + //outland + AddSC_blades_edge_mountains(); + AddSC_boss_doomlordkazzak(); + AddSC_boss_doomwalker(); + AddSC_hellfire_peninsula(); + AddSC_nagrand(); + AddSC_netherstorm(); + AddSC_shadowmoon_valley(); + AddSC_shattrath_city(); + AddSC_terokkar_forest(); + AddSC_zangarmarsh(); + + //-------------------- + //------ ZONE -------- + + //Aunchindoun + //--Auchenai Crypts + AddSC_boss_exarch_maladaar(); + AddSC_boss_shirrak_the_dead_watcher(); + //--Mana Tombs + AddSC_boss_nexusprince_shaffar(); + AddSC_boss_pandemonius(); + + //--Sekketh Halls + AddSC_boss_darkweaver_syth(); + AddSC_boss_talon_king_ikiss(); + AddSC_instance_sethekk_halls(); + + //--Shadow Labyrinth + AddSC_instance_shadow_labyrinth(); + AddSC_boss_ambassador_hellmaw(); + AddSC_boss_blackheart_the_inciter(); + AddSC_boss_grandmaster_vorpil(); + AddSC_boss_murmur(); + + //Azjol-Nerub + //--Ahn'kahet + AddSC_instance_ahnkahet(); + AddSC_boss_elder_nadox(); + + //Black Temple + AddSC_black_temple(); + AddSC_boss_illidan(); + AddSC_boss_shade_of_akama(); + AddSC_boss_supremus(); + AddSC_boss_gurtogg_bloodboil(); + AddSC_boss_mother_shahraz(); + AddSC_boss_reliquary_of_souls(); + AddSC_boss_teron_gorefiend(); + AddSC_boss_najentus(); + AddSC_boss_illidari_council(); + AddSC_instance_black_temple(); + + //Blackfathom Depths + AddSC_instance_blackfathom_deeps(); + + //Blackrock Depths + AddSC_blackrock_depths(); + AddSC_boss_ambassador_flamelash(); + AddSC_boss_anubshiah(); + AddSC_boss_draganthaurissan(); + AddSC_boss_general_angerforge(); + AddSC_boss_gorosh_the_dervish(); + AddSC_boss_grizzle(); + AddSC_boss_high_interrogator_gerstahn(); + AddSC_boss_magmus(); + AddSC_boss_moira_bronzebeard(); + AddSC_boss_tomb_of_seven(); + AddSC_instance_blackrock_depths(); + + //Blackrock Spire + AddSC_boss_drakkisath(); + AddSC_boss_halycon(); + AddSC_boss_highlordomokk(); + AddSC_boss_mothersmolderweb(); + AddSC_boss_overlordwyrmthalak(); + AddSC_boss_shadowvosh(); + AddSC_boss_thebeast(); + AddSC_boss_warmastervoone(); + AddSC_boss_quatermasterzigris(); + AddSC_boss_pyroguard_emberseer(); + AddSC_boss_gyth(); + AddSC_boss_rend_blackhand(); + + //Blackwing lair + AddSC_boss_razorgore(); + AddSC_boss_vael(); + AddSC_boss_broodlord(); + AddSC_boss_firemaw(); + AddSC_boss_ebonroc(); + AddSC_boss_flamegor(); + AddSC_boss_chromaggus(); + AddSC_boss_nefarian(); + AddSC_boss_victor_nefarius(); + + //Caverns of Time + //--Battle for Mt. Hyjal + AddSC_hyjal(); + AddSC_boss_archimonde(); + AddSC_instance_mount_hyjal(); + AddSC_hyjal_trash(); + AddSC_boss_rage_winterchill(); + AddSC_boss_anetheron(); + AddSC_boss_kazrogal(); + AddSC_boss_azgalor(); + + //--Old Hillsbrad + AddSC_boss_captain_skarloc(); + AddSC_boss_epoch_hunter(); + AddSC_boss_lieutenant_drake(); + AddSC_instance_old_hillsbrad(); + AddSC_old_hillsbrad(); + + //--The Dark Portal + AddSC_boss_aeonus(); + AddSC_boss_chrono_lord_deja(); + AddSC_boss_temporus(); + AddSC_dark_portal(); + AddSC_instance_dark_portal(); + + //Coilfang Resevoir + //--Serpent Shrine Cavern + AddSC_boss_fathomlord_karathress(); + AddSC_boss_hydross_the_unstable(); + AddSC_boss_lady_vashj(); + AddSC_boss_leotheras_the_blind(); + AddSC_boss_morogrim_tidewalker(); + AddSC_instance_serpentshrine_cavern(); + AddSC_boss_the_lurker_below(); + + //--Slave Pens + + //--Steam Vault + AddSC_boss_hydromancer_thespia(); + AddSC_boss_mekgineer_steamrigger(); + AddSC_boss_warlord_kalithresh(); + AddSC_instance_steam_vault(); + + //--Underbog + AddSC_boss_hungarfen(); + AddSC_boss_the_black_stalker(); + + //Deadmines + AddSC_instance_deadmines(); + + //Gruul's Lair + AddSC_boss_gruul(); + AddSC_boss_high_king_maulgar(); + AddSC_instance_gruuls_lair(); + + //Hellfire Citadel + //--Blood Furnace + AddSC_boss_broggok(); + AddSC_boss_kelidan_the_breaker(); + AddSC_boss_the_maker(); + AddSC_instance_blood_furnace(); + + //--Magtheridon's Lair + AddSC_boss_magtheridon(); + AddSC_instance_magtheridons_lair(); + + //--Shattered Halls + AddSC_boss_grand_warlock_nethekurse(); + AddSC_boss_warbringer_omrogg(); + AddSC_boss_warchief_kargath_bladefist(); + AddSC_instance_shattered_halls(); + + //--Ramparts + AddSC_boss_watchkeeper_gargolmar(); + AddSC_boss_omor_the_unscarred(); + AddSC_boss_vazruden_the_herald(); + AddSC_instance_ramparts(); + + //Karazhan + AddSC_boss_attumen(); + AddSC_boss_curator(); + AddSC_boss_maiden_of_virtue(); + AddSC_boss_shade_of_aran(); + AddSC_boss_malchezaar(); + AddSC_boss_terestian_illhoof(); + AddSC_boss_moroes(); + AddSC_bosses_opera(); + AddSC_boss_netherspite(); + AddSC_instance_karazhan(); + AddSC_karazhan(); + AddSC_boss_nightbane(); + + //Lower Blackrock Spire + + // Magister's Terrace + AddSC_boss_felblood_kaelthas(); + AddSC_boss_selin_fireheart(); + AddSC_boss_vexallus(); + AddSC_boss_priestess_delrissa(); + AddSC_instance_magisters_terrace(); + AddSC_magisters_terrace(); + + //Maraudon + AddSC_boss_celebras_the_cursed(); + AddSC_boss_landslide(); + AddSC_boss_noxxion(); + AddSC_boss_ptheradras(); + + //Molten core + AddSC_boss_lucifron(); + AddSC_boss_magmadar(); + AddSC_boss_gehennas(); + AddSC_boss_garr(); + AddSC_boss_baron_geddon(); + AddSC_boss_shazzrah(); + AddSC_boss_golemagg(); + AddSC_boss_sulfuron(); + AddSC_boss_majordomo(); + AddSC_boss_ragnaros(); + AddSC_instance_molten_core(); + AddSC_molten_core(); + + //Naxxramas + AddSC_boss_anubrekhan(); + AddSC_boss_maexxna(); + AddSC_boss_patchwerk(); + AddSC_boss_grobbulus(); + AddSC_boss_razuvious(); + AddSC_boss_kelthuzad(); + AddSC_boss_loatheb(); + AddSC_boss_noth(); + AddSC_boss_gluth(); + AddSC_boss_sapphiron(); + AddSC_boss_four_horsemen(); + AddSC_boss_faerlina(); + AddSC_boss_heigan(); + AddSC_boss_gothik(); + AddSC_boss_thaddius(); + AddSC_instance_naxxramas(); + + //The Nexus + //Eye of Eternety + + //Nexus + AddSC_boss_magus_telestra(); + AddSC_boss_anomalus(); + AddSC_boss_ormorok(); + AddSC_boss_keristrasza(); + AddSC_instance_nexus(); + + //Oculus + + //Obsidian Sanctum + AddSC_boss_sartharion(); + AddSC_instance_obsidian_sanctum(); + + //Onyxia's Lair + AddSC_boss_onyxia(); + + //Ragefire Chasm + //Razorfen Downs + AddSC_boss_amnennar_the_coldbringer(); + AddSC_razorfen_downs(); + + //Razorfen Kraul + AddSC_razorfen_kraul(); + + //Ruins of Ahn'Qiraj + //Scarlet Monastery + AddSC_boss_arcanist_doan(); + AddSC_boss_azshir_the_sleepless(); + AddSC_boss_bloodmage_thalnos(); + AddSC_boss_headless_horseman(); + AddSC_boss_herod(); + AddSC_boss_high_inquisitor_fairbanks(); + AddSC_boss_houndmaster_loksey(); + AddSC_boss_interrogator_vishas(); + AddSC_boss_scorn(); + AddSC_instance_scarlet_monastery(); + AddSC_boss_mograine_and_whitemane(); + + //Scholomance + AddSC_boss_darkmaster_gandling(); + AddSC_boss_death_knight_darkreaver(); + AddSC_boss_theolenkrastinov(); + AddSC_boss_illuciabarov(); + AddSC_boss_instructormalicia(); + AddSC_boss_jandicebarov(); + AddSC_boss_kormok(); + AddSC_boss_lordalexeibarov(); + AddSC_boss_lorekeeperpolkelt(); + AddSC_boss_rasfrost(); + AddSC_boss_theravenian(); + AddSC_boss_vectus(); + AddSC_instance_scholomance(); + + //Shadowfang keep + AddSC_shadowfang_keep(); + AddSC_instance_shadowfang_keep(); + + //Stratholme + AddSC_boss_magistrate_barthilas(); + AddSC_boss_maleki_the_pallid(); + AddSC_boss_nerubenkan(); + AddSC_boss_cannon_master_willey(); + AddSC_boss_baroness_anastari(); + AddSC_boss_ramstein_the_gorger(); + AddSC_boss_timmy_the_cruel(); + AddSC_boss_postmaster_malown(); + AddSC_boss_baron_rivendare(); + AddSC_boss_dathrohan_balnazzar(); + AddSC_boss_order_of_silver_hand(); + AddSC_instance_stratholme(); + AddSC_stratholme(); + + //Sunken Temple + //Sunwell Plateau + AddSC_instance_sunwell_plateau(); + AddSC_boss_kalecgos(); + AddSC_boss_brutallus(); + AddSC_boss_felmyst(); + AddSC_boss_eredar_twins(); + AddSC_boss_muru(); + AddSC_boss_kiljaeden(); + AddSC_sunwell_plateau(); + + //Tanaris + + //Tempest Keep + //--Arcatraz + AddSC_arcatraz(); + AddSC_boss_harbinger_skyriss(); + AddSC_instance_arcatraz(); + + //--Botanica + AddSC_boss_high_botanist_freywinn(); + AddSC_boss_laj(); + AddSC_boss_warp_splinter(); + + //--The Eye + AddSC_boss_alar(); + AddSC_boss_kaelthas(); + AddSC_boss_void_reaver(); + AddSC_boss_high_astromancer_solarian(); + AddSC_instance_the_eye(); + AddSC_the_eye(); + + //--The Mechanar + AddSC_boss_gatewatcher_iron_hand(); + AddSC_boss_nethermancer_sepethrea(); + AddSC_boss_pathaleon_the_calculator(); + AddSC_instance_mechanar(); + + //Temple of ahn'qiraj + AddSC_boss_cthun(); + AddSC_boss_fankriss(); + AddSC_boss_huhuran(); + AddSC_bug_trio(); + AddSC_boss_sartura(); + AddSC_boss_skeram(); + AddSC_boss_twinemperors(); + AddSC_mob_anubisath_sentinel(); + AddSC_instance_temple_of_ahnqiraj(); + + //Uldaman + AddSC_boss_archaedas(); + AddSC_boss_ironaya(); + AddSC_uldaman(); + AddSC_instance_uldaman(); + + //Ulduar + AddSC_boss_auriaya(); + AddSC_boss_flame_leviathan(); + AddSC_boss_ignis(); + AddSC_boss_razorscale(); + AddSC_boss_xt002(); + // AddSC_instance_ulduar(); + + //Un'Goro Crater + AddSC_ungoro_crater(); + + //Upper blackrock spire + + //Utgarde Keep + AddSC_boss_keleseth(); + AddSC_boss_skarvald_dalronn(); + AddSC_boss_ingvar_the_plunderer(); + AddSC_instance_utgarde_keep(); + AddSC_utgarde_keep(); + + //Wailing caverns + AddSC_wailing_caverns(); + AddSC_instance_wailing_caverns(); + + //Zul'Farrak + AddSC_zulfarrak(); + + //Zul'Gurub + AddSC_boss_jeklik(); + AddSC_boss_venoxis(); + AddSC_boss_marli(); + AddSC_boss_mandokir(); + AddSC_boss_gahzranka(); + AddSC_boss_thekal(); + AddSC_boss_arlokk(); + AddSC_boss_jindo(); + AddSC_boss_hakkar(); + AddSC_boss_grilek(); + AddSC_boss_hazzarah(); + AddSC_boss_renataki(); + AddSC_boss_wushoolay(); + AddSC_instance_zulgurub(); + + //Zul'Aman + AddSC_boss_akilzon(); + AddSC_boss_halazzi(); + AddSC_boss_hex_lord_malacrass(); + AddSC_boss_janalai(); + AddSC_boss_nalorakk(); + AddSC_boss_zuljin(); + AddSC_instance_zulaman(); + AddSC_zulaman(); + + //Vault of Archavon + AddSC_boss_archavon(); + AddSC_boss_emalon(); + AddSC_instance_archavon(); + + //Halls of Lightning + AddSC_boss_bjarngrim(); + AddSC_boss_loken(); + AddSC_instance_halls_of_lightning(); + + //Region + AddSC_wintergrasp(); +} diff --git a/src/bindings/scripts/system/ScriptLoader.h b/src/bindings/scripts/system/ScriptLoader.h new file mode 100644 index 00000000000..57fb7d821f1 --- /dev/null +++ b/src/bindings/scripts/system/ScriptLoader.h @@ -0,0 +1,10 @@ +/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> +* This program is free software licensed under GPL version 2 +* Please see the included DOCS/LICENSE.TXT for more information */ + +#ifndef SC_SCRIPTLOADER_H +#define SC_SCRIPTLOADER_H + +void AddScripts(); + +#endif diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 48b4845f3f0..2bd8ab771ed 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -479,6 +479,8 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa m_isWorldObject = true; sWorld.IncreasePlayerCount(); + + m_ChampioningFaction = 0; } Player::~Player () @@ -6110,11 +6112,35 @@ void Player::RewardReputation(Unit *pVictim, float rate) if(!Rep) return; + uint32 ChampioningFaction = 0; + + if(GetChampioningFaction()) + { + // support for: Championing - http://www.wowwiki.com/Championing + + Map const *pMap = GetMap(); + if(pMap && pMap->IsDungeon()) + { + bool Heroic = pMap->IsHeroic(); + + InstanceTemplate const *pInstance = objmgr.GetInstanceTemplate(pMap->GetId()); + if(pInstance) + { + AccessRequirement const *pAccessRequirement = objmgr.GetAccessRequirement(pInstance->access_id); + if(pAccessRequirement) + { + if(!pMap->IsRaid() && ((!Heroic && pAccessRequirement->levelMin == 80) || (Heroic && pAccessRequirement->heroicLevelMin == 80))) + ChampioningFaction = GetChampioningFaction(); + } + } + } + } + if(Rep->repfaction1 && (!Rep->team_dependent || GetTeam()==ALLIANCE)) { - int32 donerep1 = CalculateReputationGain(pVictim->getLevel(), Rep->repvalue1, Rep->repfaction1, false); + int32 donerep1 = CalculateReputationGain(pVictim->getLevel(), Rep->repvalue1, ChampioningFaction ? ChampioningFaction : Rep->repfaction1, false); donerep1 = int32(donerep1*rate); - FactionEntry const *factionEntry1 = sFactionStore.LookupEntry(Rep->repfaction1); + FactionEntry const *factionEntry1 = sFactionStore.LookupEntry(ChampioningFaction ? ChampioningFaction : Rep->repfaction1); uint32 current_reputation_rank1 = GetReputationMgr().GetRank(factionEntry1); if (factionEntry1 && current_reputation_rank1 <= Rep->reputation_max_cap1) GetReputationMgr().ModifyReputation(factionEntry1, donerep1); @@ -6130,9 +6156,9 @@ void Player::RewardReputation(Unit *pVictim, float rate) if(Rep->repfaction2 && (!Rep->team_dependent || GetTeam()==HORDE)) { - int32 donerep2 = CalculateReputationGain(pVictim->getLevel(), Rep->repvalue2, Rep->repfaction2, false); + int32 donerep2 = CalculateReputationGain(pVictim->getLevel(), Rep->repvalue2, ChampioningFaction ? ChampioningFaction : Rep->repfaction2, false); donerep2 = int32(donerep2*rate); - FactionEntry const *factionEntry2 = sFactionStore.LookupEntry(Rep->repfaction2); + FactionEntry const *factionEntry2 = sFactionStore.LookupEntry(ChampioningFaction ? ChampioningFaction : Rep->repfaction2); uint32 current_reputation_rank2 = GetReputationMgr().GetRank(factionEntry2); if (factionEntry2 && current_reputation_rank2 <= Rep->reputation_max_cap2) GetReputationMgr().ModifyReputation(factionEntry2, donerep2); @@ -21833,6 +21859,7 @@ void Player::ActivateSpec(uint8 spec) _LoadActions(result); } UnsummonPetTemporaryIfAny(); + AutoUnequipOffhandIfNeed(); SendActionButtons(1); SetPower(getPowerType(), 0); } diff --git a/src/game/Player.h b/src/game/Player.h index 7d417ffda11..480e74079d5 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -2204,6 +2204,9 @@ class MANGOS_DLL_SPEC Player : public Unit //bool isActiveObject() const { return true; } bool canSeeSpellClickOn(Creature const* creature) const; + + inline uint32 GetChampioningFaction() const { return m_ChampioningFaction; } + inline void SetChampioningFaction(uint32 faction) { m_ChampioningFaction = faction; } protected: uint32 m_contestedPvPTimer; @@ -2479,6 +2482,8 @@ class MANGOS_DLL_SPEC Player : public Unit ReputationMgr m_reputationMgr; SpellCooldowns m_spellCooldowns; + + uint32 m_ChampioningFaction; }; void AddItemsSetItem(Player*player,Item *item); diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index d19d8120263..77946cf7bba 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2872,6 +2872,29 @@ void AuraEffect::HandleAuraDummy(bool apply, bool Real, bool changeAmount) } return; } + case 57819: // Argent Champion + case 57820: // Ebon Champion + case 57821: // Champion of the Kirin Tor + case 57822: // Wyrmrest Champion + { + if(!caster || caster->GetTypeId() != TYPEID_PLAYER) + return; + + uint32 FactionID = 0; + + if(apply) + { + switch(m_spellProto->Id) + { + case 57819: FactionID = 1106; break; // Argent Crusade + case 57820: FactionID = 1098; break; // Knights of the Ebon Blade + case 57821: FactionID = 1090; break; // Kirin Tor + case 57822: FactionID = 1091; break; // The Wyrmrest Accord + } + } + ((Player*)caster)->SetChampioningFaction(FactionID); + return; + } // LK Intro VO (1) case 58204: if(m_target->GetTypeId() == TYPEID_PLAYER) |