Changeset 53 for trunk/src/bindings/scripts
- Timestamp:
- 11/19/08 13:29:34 (17 years ago)
- Location:
- trunk/src/bindings/scripts
- Files:
-
- 5 added
- 10 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bindings/scripts/Makefile.am
r44 r53 367 367 scripts/zone/winterspring/winterspring.cpp \ 368 368 scripts/zone/zangarmarsh/zangarmarsh.cpp \ 369 scripts/zone/zulaman/boss_akilzon.cpp \ 370 scripts/zone/zulaman/boss_halazzi.cpp \ 371 scripts/zone/zulaman/boss_hexlord.cpp \ 369 372 scripts/zone/zulaman/boss_janalai.cpp \ 370 373 scripts/zone/zulaman/boss_nalorakk.cpp \ 374 scripts/zone/zulaman/boss_zuljin.cpp \ 371 375 scripts/zone/zulaman/def_zulaman.h \ 372 376 scripts/zone/zulaman/instance_zulaman.cpp \ -
trunk/src/bindings/scripts/ScriptMgr.cpp
r44 r53 581 581 extern void AddSC_boss_wushoolay(); 582 582 extern void AddSC_instance_zulgurub(); 583 583 584 //Zul'Aman 585 extern void AddSC_boss_akilzon(); 586 extern void AddSC_boss_halazzi(); 587 extern void AddSC_boss_hex_lord_malacrass(); 584 588 extern void AddSC_boss_janalai(); 585 589 extern void AddSC_boss_nalorakk(); 590 extern void AddSC_boss_zuljin(); 586 591 extern void AddSC_instance_zulaman(); 587 592 extern void AddSC_zulaman(); … … 1760 1765 1761 1766 //Zul'Aman 1762 AddSC_boss_janalai(); 1763 AddSC_boss_nalorakk(); 1764 AddSC_instance_zulaman(); 1765 AddSC_zulaman(); 1767 AddSC_boss_akilzon(); 1768 AddSC_boss_halazzi(); 1769 AddSC_boss_hex_lord_malacrass(); 1770 AddSC_boss_janalai(); 1771 AddSC_boss_nalorakk(); 1772 AddSC_boss_zuljin(); 1773 AddSC_instance_zulaman(); 1774 AddSC_zulaman(); 1766 1775 1767 1776 // ------------------- -
trunk/src/bindings/scripts/VC71/71ScriptDev2.vcproj
r43 r53 118 118 <Files> 119 119 <Filter 120 Name="Scripts"> 120 Name="Scripts" 121 > 121 122 <Filter 122 Name="boss"> 123 <File 124 RelativePath="..\scripts\boss\boss_emeriss.cpp"> 125 </File> 126 <File 127 RelativePath="..\scripts\boss\boss_lethon.cpp"> 128 </File> 129 <File 130 RelativePath="..\scripts\boss\boss_taerar.cpp"> 131 </File> 132 <File 133 RelativePath="..\scripts\boss\boss_ysondre.cpp"> 123 Name="boss" 124 > 125 <File 126 RelativePath="..\scripts\boss\boss_emeriss.cpp" 127 > 128 </File> 129 <File 130 RelativePath="..\scripts\boss\boss_lethon.cpp" 131 > 132 </File> 133 <File 134 RelativePath="..\scripts\boss\boss_taerar.cpp" 135 > 136 </File> 137 <File 138 RelativePath="..\scripts\boss\boss_ysondre.cpp" 139 > 134 140 </File> 135 141 </Filter> 136 142 <Filter 137 Name="creature"> 138 <File 139 RelativePath="..\scripts\creature\mob_event_ai.cpp"> 140 </File> 141 <File 142 RelativePath="..\scripts\creature\mob_event_ai.h"> 143 </File> 144 <File 145 RelativePath="..\scripts\creature\mob_generic_creature.cpp"> 146 </File> 147 <File 148 RelativePath="..\scripts\creature\simple_ai.cpp"> 149 </File> 150 <File 151 RelativePath="..\scripts\creature\simple_ai.h"> 143 Name="creature" 144 > 145 <File 146 RelativePath="..\scripts\creature\mob_event_ai.cpp" 147 > 148 </File> 149 <File 150 RelativePath="..\scripts\creature\mob_event_ai.h" 151 > 152 </File> 153 <File 154 RelativePath="..\scripts\creature\mob_generic_creature.cpp" 155 > 156 </File> 157 <File 158 RelativePath="..\scripts\creature\simple_ai.cpp" 159 > 160 </File> 161 <File 162 RelativePath="..\scripts\creature\simple_ai.h" 163 > 152 164 </File> 153 165 </Filter> 154 166 <Filter 155 Name="guard"> 156 <File 157 RelativePath="..\scripts\guard\guard_ai.cpp"> 158 </File> 159 <File 160 RelativePath="..\scripts\guard\guard_ai.h"> 161 </File> 162 <File 163 RelativePath="..\scripts\guard\guards.cpp"> 167 Name="guard" 168 > 169 <File 170 RelativePath="..\scripts\guard\guard_ai.cpp" 171 > 172 </File> 173 <File 174 RelativePath="..\scripts\guard\guard_ai.h" 175 > 176 </File> 177 <File 178 RelativePath="..\scripts\guard\guards.cpp" 179 > 164 180 </File> 165 181 </Filter> 166 182 <Filter 167 Name="honor"> 183 Name="honor" 184 > 168 185 </Filter> 169 186 <Filter 170 Name="npc"> 171 <File 172 RelativePath="..\scripts\npc\npc_escortAI.cpp"> 173 </File> 174 <File 175 RelativePath="..\scripts\npc\npc_escortAI.h"> 176 </File> 177 <File 178 RelativePath="..\scripts\npc\npc_innkeeper.cpp"> 179 </File> 180 <File 181 RelativePath="..\scripts\npc\npc_professions.cpp"> 182 </File> 183 <File 184 RelativePath="..\scripts\npc\npcs_special.cpp"> 187 Name="npc" 188 > 189 <File 190 RelativePath="..\scripts\npc\npc_escortAI.cpp" 191 > 192 </File> 193 <File 194 RelativePath="..\scripts\npc\npc_escortAI.h" 195 > 196 </File> 197 <File 198 RelativePath="..\scripts\npc\npc_innkeeper.cpp" 199 > 200 </File> 201 <File 202 RelativePath="..\scripts\npc\npc_professions.cpp" 203 > 204 </File> 205 <File 206 RelativePath="..\scripts\npc\npcs_special.cpp" 207 > 185 208 </File> 186 209 </Filter> 187 210 <Filter 188 Name="servers"> 211 Name="servers" 212 > 189 213 </Filter> 190 214 <Filter 191 Name="custom"> 192 <File 193 RelativePath="..\scripts\custom\custom_example.cpp"> 194 </File> 195 <File 196 RelativePath="..\scripts\custom\custom_gossip_codebox.cpp"> 197 </File> 198 <File 199 RelativePath="..\scripts\custom\test.cpp"> 215 Name="custom" 216 > 217 <File 218 RelativePath="..\scripts\custom\custom_example.cpp" 219 > 220 </File> 221 <File 222 RelativePath="..\scripts\custom\custom_gossip_codebox.cpp" 223 > 224 </File> 225 <File 226 RelativePath="..\scripts\custom\test.cpp" 227 > 200 228 </File> 201 229 </Filter> 202 230 <Filter 203 Name="areatrigger"> 204 <File 205 RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp"> 231 Name="areatrigger" 232 > 233 <File 234 RelativePath="..\scripts\areatrigger\areatrigger_scripts.cpp" 235 > 206 236 </File> 207 237 </Filter> 208 238 <Filter 209 Name="go"> 210 <File 211 RelativePath="..\scripts\go\go_scripts.cpp"> 239 Name="go" 240 > 241 <File 242 RelativePath="..\scripts\go\go_scripts.cpp" 243 > 212 244 </File> 213 245 </Filter> 214 246 <Filter 215 Name="item"> 216 <File 217 RelativePath="..\scripts\item\item_scripts.cpp"> 218 </File> 219 <File 220 RelativePath="..\scripts\item\item_test.cpp"> 247 Name="item" 248 > 249 <File 250 RelativePath="..\scripts\item\item_scripts.cpp" 251 > 252 </File> 253 <File 254 RelativePath="..\scripts\item\item_test.cpp" 255 > 221 256 </File> 222 257 </Filter> 223 258 <Filter 224 Name="zone"> 225 <Filter 226 Name="Alterac Mountains"> 227 <File 228 RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp"> 229 </File> 230 </Filter> 231 <Filter 232 Name="Ashenvale Forest"> 233 </Filter> 234 <Filter 235 Name="Azshara"> 236 <File 237 RelativePath="..\scripts\zone\azshara\azshara.cpp"> 238 </File> 239 <File 240 RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp"> 241 </File> 242 </Filter> 243 <Filter 244 Name="Badlands"> 245 </Filter> 246 <Filter 247 Name="Barrens"> 248 <File 249 RelativePath="..\scripts\zone\barrens\the_barrens.cpp"> 250 </File> 251 </Filter> 252 <Filter 253 Name="Blackfathom Depths"> 254 </Filter> 255 <Filter 256 Name="Arathi Highlands"> 257 </Filter> 258 <Filter 259 Name="Deadmines"> 260 <File 261 RelativePath="..\scripts\zone\deadmines\deadmines.cpp"> 262 </File> 263 </Filter> 264 <Filter 265 Name="Deadwind Pass"> 266 </Filter> 267 <Filter 268 Name="Desolace"> 269 </Filter> 270 <Filter 271 Name="Dire Maul"> 272 </Filter> 273 <Filter 274 Name="Dun Morogh"> 275 <File 276 RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp"> 277 </File> 278 </Filter> 279 <Filter 280 Name="Durotar"> 281 </Filter> 282 <Filter 283 Name="Duskwood"> 284 </Filter> 285 <Filter 286 Name="Dustwallow Marsh"> 287 <File 288 RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp"> 289 </File> 290 </Filter> 291 <Filter 292 Name="Blackwing Lair"> 293 <File 294 RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp"> 295 </File> 296 <File 297 RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp"> 298 </File> 299 <File 300 RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp"> 301 </File> 302 <File 303 RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp"> 304 </File> 305 <File 306 RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp"> 307 </File> 308 <File 309 RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp"> 310 </File> 311 <File 312 RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp"> 313 </File> 314 <File 315 RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp"> 316 </File> 317 <File 318 RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp"> 319 </File> 320 <File 321 RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp"> 322 </File> 323 </Filter> 324 <Filter 325 Name="Bloodmyst Isle"> 326 <File 327 RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp"> 328 </File> 329 </Filter> 330 <Filter 331 Name="Gruul's Lair"> 332 <File 333 RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp"> 334 </File> 335 <File 336 RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp"> 337 </File> 338 <File 339 RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h"> 340 </File> 341 <File 342 RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp"> 343 </File> 344 </Filter> 345 <Filter 346 Name="Burning Steppes"> 347 <File 348 RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp"> 349 </File> 350 </Filter> 351 <Filter 352 Name="Darkshore"> 353 <File 354 RelativePath="..\scripts\zone\darkshore\darkshore.cpp"> 355 </File> 356 </Filter> 357 <Filter 358 Name="Eastern Plaguelands"> 359 <File 360 RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp"> 361 </File> 362 </Filter> 363 <Filter 364 Name="Moonglade"> 365 <File 366 RelativePath="..\scripts\zone\moonglade\moonglade.cpp"> 367 </File> 368 </Filter> 369 <Filter 370 Name="Razorfen Kraul"> 371 </Filter> 372 <Filter 373 Name="Redridge Mountains"> 374 </Filter> 375 <Filter 376 Name="Ruins of Ahn'Qiraj"> 377 <File 378 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp"> 379 </File> 380 <File 381 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp"> 382 </File> 383 <File 384 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp"> 385 </File> 386 <File 387 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp"> 388 </File> 389 <File 390 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp"> 391 </File> 392 <File 393 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp"> 394 </File> 395 <File 396 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp"> 397 </File> 398 </Filter> 399 <Filter 400 Name="Swamp of Sorrows"> 401 </Filter> 402 <Filter 403 Name="Scarlet Monastery"> 404 <File 405 RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp"> 406 </File> 407 <File 408 RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp"> 409 </File> 410 <File 411 RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp"> 412 </File> 413 <File 414 RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp"> 415 </File> 416 <File 417 RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp"> 418 </File> 419 <File 420 RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp"> 421 </File> 422 <File 423 RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp"> 424 </File> 425 <File 426 RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp"> 427 </File> 428 <File 429 RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp"> 430 </File> 431 <File 432 RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp"> 433 </File> 434 </Filter> 435 <Filter 436 Name="Scholomance"> 437 <File 438 RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp"> 439 </File> 440 <File 441 RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp"> 442 </File> 443 <File 444 RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp"> 445 </File> 446 <File 447 RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp"> 448 </File> 449 <File 450 RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp"> 451 </File> 452 <File 453 RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp"> 454 </File> 455 <File 456 RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp"> 457 </File> 458 <File 459 RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp"> 460 </File> 461 <File 462 RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp"> 463 </File> 464 <File 465 RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp"> 466 </File> 467 <File 468 RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp"> 469 </File> 470 <File 471 RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp"> 472 </File> 473 <File 474 RelativePath="..\scripts\zone\scholomance\def_scholomance.h"> 475 </File> 476 <File 477 RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp"> 478 </File> 479 </Filter> 480 <Filter 481 Name="Searing Gorge"> 482 <File 483 RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp"> 484 </File> 485 </Filter> 486 <Filter 487 Name="Elwynn Forest"> 488 <File 489 RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp"> 490 </File> 491 </Filter> 492 <Filter 493 Name="Felwood"> 494 <File 495 RelativePath="..\scripts\zone\felwood\felwood.cpp"> 496 </File> 497 </Filter> 498 <Filter 499 Name="Feralas"> 500 <File 501 RelativePath="..\scripts\zone\feralas\feralas.cpp"> 502 </File> 503 </Filter> 504 <Filter 505 Name="Gnomeregan"> 506 </Filter> 507 <Filter 508 Name="Hillsbrad Foothills"> 509 </Filter> 510 <Filter 511 Name="Hinterlands"> 512 </Filter> 513 <Filter 514 Name="Maraudon"> 515 <File 516 RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp"> 517 </File> 518 <File 519 RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp"> 520 </File> 521 <File 522 RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp"> 523 </File> 524 <File 525 RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp"> 526 </File> 527 </Filter> 528 <Filter 529 Name="Molten Core"> 530 <File 531 RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp"> 532 </File> 533 <File 534 RelativePath="..\scripts\zone\molten_core\boss_garr.cpp"> 535 </File> 536 <File 537 RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp"> 538 </File> 539 <File 540 RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp"> 541 </File> 542 <File 543 RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp"> 544 </File> 545 <File 546 RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp"> 547 </File> 548 <File 549 RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp"> 550 </File> 551 <File 552 RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp"> 553 </File> 554 <File 555 RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp"> 556 </File> 557 <File 558 RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp"> 559 </File> 560 <File 561 RelativePath="..\scripts\zone\molten_core\def_molten_core.h"> 562 </File> 563 <File 564 RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp"> 565 </File> 566 <File 567 RelativePath="..\scripts\zone\molten_core\molten_core.cpp"> 568 </File> 569 </Filter> 570 <Filter 571 Name="Mulgore"> 572 <File 573 RelativePath="..\scripts\zone\mulgore\mulgore.cpp"> 574 </File> 575 </Filter> 576 <Filter 577 Name="Naxxramas"> 578 <File 579 RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp"> 580 </File> 581 <File 582 RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp"> 583 </File> 584 <File 585 RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp"> 586 </File> 587 <File 588 RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp"> 589 </File> 590 <File 591 RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp"> 592 </File> 593 <File 594 RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp"> 595 </File> 596 <File 597 RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp"> 598 </File> 599 <File 600 RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp"> 601 </File> 602 <File 603 RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp"> 604 </File> 605 <File 606 RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp"> 607 </File> 608 <File 609 RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp"> 610 </File> 611 <File 612 RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp"> 613 </File> 614 <File 615 RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp"> 616 </File> 617 <File 618 RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp"> 619 </File> 620 <File 621 RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp"> 622 </File> 623 <File 624 RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp"> 625 </File> 626 <File 627 RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp"> 628 </File> 629 <File 630 RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp"> 631 </File> 632 <File 633 RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp"> 634 </File> 635 <File 636 RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp"> 637 </File> 638 <File 639 RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp"> 640 </File> 641 </Filter> 642 <Filter 643 Name="Onyxia's Lair"> 644 <File 645 RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp"> 646 </File> 647 </Filter> 648 <Filter 649 Name="Ragefire Chasm"> 650 </Filter> 651 <Filter 652 Name="Razorfen Downs"> 653 <File 654 RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp"> 655 </File> 656 </Filter> 657 <Filter 658 Name="Shadowfang Keep"> 659 <File 660 RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h"> 661 </File> 662 <File 663 RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp"> 664 </File> 665 <File 666 RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp"> 667 </File> 668 </Filter> 669 <Filter 670 Name="Stonetalon Mountains"> 671 <File 672 RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp"> 673 </File> 674 </Filter> 675 <Filter 676 Name="Stranglethorn Vale"> 677 <File 678 RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp"> 679 </File> 680 </Filter> 681 <Filter 682 Name="Stratholme"> 683 <File 684 RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp"> 685 </File> 686 <File 687 RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp"> 688 </File> 689 <File 690 RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp"> 691 </File> 692 <File 693 RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp"> 694 </File> 695 <File 696 RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp"> 697 </File> 698 <File 699 RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp"> 700 </File> 701 <File 702 RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp"> 703 </File> 704 <File 705 RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp"> 706 </File> 707 <File 708 RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp"> 709 </File> 710 <File 711 RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp"> 712 </File> 713 <File 714 RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp"> 715 </File> 716 <File 717 RelativePath="..\scripts\zone\stratholme\def_stratholme.h"> 718 </File> 719 <File 720 RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp"> 721 </File> 722 <File 723 RelativePath="..\scripts\zone\stratholme\stratholme.cpp"> 724 </File> 725 </Filter> 726 <Filter 727 Name="Sunken Temple"> 728 </Filter> 729 <Filter 730 Name="Tanaris"> 731 <File 732 RelativePath="..\scripts\zone\tanaris\tanaris.cpp"> 733 </File> 734 </Filter> 735 <Filter 736 Name="Teldrassil"> 737 </Filter> 738 <Filter 739 Name="Temple of Ahn'Qiraj"> 740 <File 741 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp"> 742 </File> 743 <File 744 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp"> 745 </File> 746 <File 747 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp"> 748 </File> 749 <File 750 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp"> 751 </File> 752 <File 753 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp"> 754 </File> 755 <File 756 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp"> 757 </File> 758 <File 759 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp"> 760 </File> 761 <File 762 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp"> 763 </File> 764 <File 765 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp"> 766 </File> 767 <File 768 RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h"> 769 </File> 770 <File 771 RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp"> 772 </File> 773 <File 774 RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp"> 775 </File> 776 </Filter> 777 <Filter 778 Name="Thousand Needles"> 779 </Filter> 780 <Filter 781 Name="Silithus"> 782 <File 783 RelativePath="..\scripts\zone\silithus\silithus.cpp"> 784 </File> 785 </Filter> 786 <Filter 787 Name="Silverpine Forest"> 788 <File 789 RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp"> 790 </File> 791 </Filter> 792 <Filter 793 Name="Stockade"> 794 </Filter> 795 <Filter 796 Name="Tirisfal Glades"> 797 <File 798 RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp"> 799 </File> 800 </Filter> 801 <Filter 802 Name="Wailing Caverns"> 803 <File 804 RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp"> 805 </File> 806 </Filter> 807 <Filter 808 Name="Western Plaguelands"> 809 <File 810 RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp"> 811 </File> 812 </Filter> 813 <Filter 814 Name="Westfall"> 815 </Filter> 816 <Filter 817 Name="Wetlands"> 818 </Filter> 819 <Filter 820 Name="Winterspring"> 821 <File 822 RelativePath="..\scripts\zone\winterspring\winterspring.cpp"> 823 </File> 824 </Filter> 825 <Filter 826 Name="Zul'Farrak"> 827 <File 828 RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp"> 829 </File> 830 </Filter> 831 <Filter 832 Name="Zul'Gurub"> 833 <File 834 RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp"> 835 </File> 836 <File 837 RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp"> 838 </File> 839 <File 840 RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp"> 841 </File> 842 <File 843 RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp"> 844 </File> 845 <File 846 RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp"> 847 </File> 848 <File 849 RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp"> 850 </File> 851 <File 852 RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp"> 853 </File> 854 <File 855 RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp"> 856 </File> 857 <File 858 RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp"> 859 </File> 860 <File 861 RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp"> 862 </File> 863 <File 864 RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp"> 865 </File> 866 <File 867 RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp"> 868 </File> 869 <File 870 RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp"> 871 </File> 872 <File 873 RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h"> 874 </File> 875 <File 876 RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp"> 877 </File> 878 </Filter> 879 <Filter 880 Name="Uldaman"> 881 <File 882 RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp"> 883 </File> 884 <File 885 RelativePath="..\scripts\zone\uldaman\uldaman.cpp"> 886 </File> 887 </Filter> 888 <Filter 889 Name="Un'Goro Crater"> 890 </Filter> 891 <Filter 892 Name="Aunchindoun"> 259 Name="zone" 260 > 261 <Filter 262 Name="Alterac Mountains" 263 > 264 <File 265 RelativePath="..\scripts\zone\alterac_mountains\alterac_mountains.cpp" 266 > 267 </File> 268 </Filter> 269 <Filter 270 Name="Ashenvale Forest" 271 > 272 </Filter> 273 <Filter 274 Name="Azshara" 275 > 276 <File 277 RelativePath="..\scripts\zone\azshara\azshara.cpp" 278 > 279 </File> 280 <File 281 RelativePath="..\scripts\zone\azshara\boss_azuregos.cpp" 282 > 283 </File> 284 </Filter> 285 <Filter 286 Name="Badlands" 287 > 288 </Filter> 289 <Filter 290 Name="Barrens" 291 > 292 <File 293 RelativePath="..\scripts\zone\barrens\the_barrens.cpp" 294 > 295 </File> 296 </Filter> 297 <Filter 298 Name="Blackfathom Depths" 299 > 300 </Filter> 301 <Filter 302 Name="Arathi Highlands" 303 > 304 </Filter> 305 <Filter 306 Name="Deadmines" 307 > 308 <File 309 RelativePath="..\scripts\zone\deadmines\deadmines.cpp" 310 > 311 </File> 312 </Filter> 313 <Filter 314 Name="Deadwind Pass" 315 > 316 </Filter> 317 <Filter 318 Name="Desolace" 319 > 320 </Filter> 321 <Filter 322 Name="Dire Maul" 323 > 324 </Filter> 325 <Filter 326 Name="Dun Morogh" 327 > 328 <File 329 RelativePath="..\scripts\zone\dun_morogh\dun_morogh.cpp" 330 > 331 </File> 332 </Filter> 333 <Filter 334 Name="Durotar" 335 > 336 </Filter> 337 <Filter 338 Name="Duskwood" 339 > 340 </Filter> 341 <Filter 342 Name="Dustwallow Marsh" 343 > 344 <File 345 RelativePath="..\scripts\zone\dustwallow_marsh\dustwallow_marsh.cpp" 346 > 347 </File> 348 </Filter> 349 <Filter 350 Name="Blackwing Lair" 351 > 352 <File 353 RelativePath="..\scripts\zone\blackwing_lair\boss_broodlord_lashlayer.cpp" 354 > 355 </File> 356 <File 357 RelativePath="..\scripts\zone\blackwing_lair\boss_chromaggus.cpp" 358 > 359 </File> 360 <File 361 RelativePath="..\scripts\zone\blackwing_lair\boss_ebonroc.cpp" 362 > 363 </File> 364 <File 365 RelativePath="..\scripts\zone\blackwing_lair\boss_firemaw.cpp" 366 > 367 </File> 368 <File 369 RelativePath="..\scripts\zone\blackwing_lair\boss_flamegor.cpp" 370 > 371 </File> 372 <File 373 RelativePath="..\scripts\zone\blackwing_lair\boss_nefarian.cpp" 374 > 375 </File> 376 <File 377 RelativePath="..\scripts\zone\blackwing_lair\boss_razorgore.cpp" 378 > 379 </File> 380 <File 381 RelativePath="..\scripts\zone\blackwing_lair\boss_vaelastrasz.cpp" 382 > 383 </File> 384 <File 385 RelativePath="..\scripts\zone\blackwing_lair\boss_victor_nefarius.cpp" 386 > 387 </File> 388 <File 389 RelativePath="..\scripts\zone\blackwing_lair\instance_blackwing_lair.cpp" 390 > 391 </File> 392 </Filter> 393 <Filter 394 Name="Bloodmyst Isle" 395 > 396 <File 397 RelativePath="..\scripts\zone\bloodmyst_isle\bloodmyst_isle.cpp" 398 > 399 </File> 400 </Filter> 401 <Filter 402 Name="Gruul's Lair" 403 > 404 <File 405 RelativePath="..\scripts\zone\gruuls_lair\boss_gruul.cpp" 406 > 407 </File> 408 <File 409 RelativePath="..\scripts\zone\gruuls_lair\boss_high_king_maulgar.cpp" 410 > 411 </File> 412 <File 413 RelativePath="..\scripts\zone\gruuls_lair\def_gruuls_lair.h" 414 > 415 </File> 416 <File 417 RelativePath="..\scripts\zone\gruuls_lair\instance_gruuls_lair.cpp" 418 > 419 </File> 420 </Filter> 421 <Filter 422 Name="Burning Steppes" 423 > 424 <File 425 RelativePath="..\scripts\zone\burning_steppes\burning_steppes.cpp" 426 > 427 </File> 428 </Filter> 429 <Filter 430 Name="Darkshore" 431 > 432 <File 433 RelativePath="..\scripts\zone\darkshore\darkshore.cpp" 434 > 435 </File> 436 </Filter> 437 <Filter 438 Name="Eastern Plaguelands" 439 > 440 <File 441 RelativePath="..\scripts\zone\eastern_plaguelands\eastern_plaguelands.cpp" 442 > 443 </File> 444 </Filter> 445 <Filter 446 Name="Moonglade" 447 > 448 <File 449 RelativePath="..\scripts\zone\moonglade\moonglade.cpp" 450 > 451 </File> 452 </Filter> 453 <Filter 454 Name="Razorfen Kraul" 455 > 456 </Filter> 457 <Filter 458 Name="Redridge Mountains" 459 > 460 </Filter> 461 <Filter 462 Name="Ruins of Ahn'Qiraj" 463 > 464 <File 465 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ayamiss.cpp" 466 > 467 </File> 468 <File 469 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_buru.cpp" 470 > 471 </File> 472 <File 473 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_kurinnaxx.cpp" 474 > 475 </File> 476 <File 477 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_moam.cpp" 478 > 479 </File> 480 <File 481 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_ossirian.cpp" 482 > 483 </File> 484 <File 485 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\boss_rajaxx.cpp" 486 > 487 </File> 488 <File 489 RelativePath="..\scripts\zone\ruins_of_ahnqiraj\instance_ruins_of_ahnqiraj.cpp" 490 > 491 </File> 492 </Filter> 493 <Filter 494 Name="Swamp of Sorrows" 495 > 496 </Filter> 497 <Filter 498 Name="Scarlet Monastery" 499 > 500 <File 501 RelativePath="..\scripts\zone\scarlet_monastery\boss_arcanist_doan.cpp" 502 > 503 </File> 504 <File 505 RelativePath="..\scripts\zone\scarlet_monastery\boss_azshir_the_sleepless.cpp" 506 > 507 </File> 508 <File 509 RelativePath="..\scripts\zone\scarlet_monastery\boss_bloodmage_thalnos.cpp" 510 > 511 </File> 512 <File 513 RelativePath="..\scripts\zone\scarlet_monastery\boss_herod.cpp" 514 > 515 </File> 516 <File 517 RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_fairbanks.cpp" 518 > 519 </File> 520 <File 521 RelativePath="..\scripts\zone\scarlet_monastery\boss_high_inquisitor_whitemane.cpp" 522 > 523 </File> 524 <File 525 RelativePath="..\scripts\zone\scarlet_monastery\boss_houndmaster_loksey.cpp" 526 > 527 </File> 528 <File 529 RelativePath="..\scripts\zone\scarlet_monastery\boss_interrogator_vishas.cpp" 530 > 531 </File> 532 <File 533 RelativePath="..\scripts\zone\scarlet_monastery\boss_scarlet_commander_mograine.cpp" 534 > 535 </File> 536 <File 537 RelativePath="..\scripts\zone\scarlet_monastery\boss_scorn.cpp" 538 > 539 </File> 540 </Filter> 541 <Filter 542 Name="Scholomance" 543 > 544 <File 545 RelativePath="..\scripts\zone\scholomance\boss_darkmaster_gandling.cpp" 546 > 547 </File> 548 <File 549 RelativePath="..\scripts\zone\scholomance\boss_death_knight_darkreaver.cpp" 550 > 551 </File> 552 <File 553 RelativePath="..\scripts\zone\scholomance\boss_doctor_theolen_krastinov.cpp" 554 > 555 </File> 556 <File 557 RelativePath="..\scripts\zone\scholomance\boss_illucia_barov.cpp" 558 > 559 </File> 560 <File 561 RelativePath="..\scripts\zone\scholomance\boss_instructor_malicia.cpp" 562 > 563 </File> 564 <File 565 RelativePath="..\scripts\zone\scholomance\boss_jandice_barov.cpp" 566 > 567 </File> 568 <File 569 RelativePath="..\scripts\zone\scholomance\boss_kormok.cpp" 570 > 571 </File> 572 <File 573 RelativePath="..\scripts\zone\scholomance\boss_lord_alexei_barov.cpp" 574 > 575 </File> 576 <File 577 RelativePath="..\scripts\zone\scholomance\boss_lorekeeper_polkelt.cpp" 578 > 579 </File> 580 <File 581 RelativePath="..\scripts\zone\scholomance\boss_ras_frostwhisper.cpp" 582 > 583 </File> 584 <File 585 RelativePath="..\scripts\zone\scholomance\boss_the_ravenian.cpp" 586 > 587 </File> 588 <File 589 RelativePath="..\scripts\zone\scholomance\boss_vectus.cpp" 590 > 591 </File> 592 <File 593 RelativePath="..\scripts\zone\scholomance\def_scholomance.h" 594 > 595 </File> 596 <File 597 RelativePath="..\scripts\zone\scholomance\instance_scholomance.cpp" 598 > 599 </File> 600 </Filter> 601 <Filter 602 Name="Searing Gorge" 603 > 604 <File 605 RelativePath="..\scripts\zone\searing_gorge\searing_gorge.cpp" 606 > 607 </File> 608 </Filter> 609 <Filter 610 Name="Elwynn Forest" 611 > 612 <File 613 RelativePath="..\scripts\zone\elwynn_forest\elwynn_forest.cpp" 614 > 615 </File> 616 </Filter> 617 <Filter 618 Name="Felwood" 619 > 620 <File 621 RelativePath="..\scripts\zone\felwood\felwood.cpp" 622 > 623 </File> 624 </Filter> 625 <Filter 626 Name="Feralas" 627 > 628 <File 629 RelativePath="..\scripts\zone\feralas\feralas.cpp" 630 > 631 </File> 632 </Filter> 633 <Filter 634 Name="Gnomeregan" 635 > 636 </Filter> 637 <Filter 638 Name="Hillsbrad Foothills" 639 > 640 </Filter> 641 <Filter 642 Name="Hinterlands" 643 > 644 </Filter> 645 <Filter 646 Name="Maraudon" 647 > 648 <File 649 RelativePath="..\scripts\zone\maraudon\boss_celebras_the_cursed.cpp" 650 > 651 </File> 652 <File 653 RelativePath="..\scripts\zone\maraudon\boss_landslide.cpp" 654 > 655 </File> 656 <File 657 RelativePath="..\scripts\zone\maraudon\boss_noxxion.cpp" 658 > 659 </File> 660 <File 661 RelativePath="..\scripts\zone\maraudon\boss_princess_theradras.cpp" 662 > 663 </File> 664 </Filter> 665 <Filter 666 Name="Molten Core" 667 > 668 <File 669 RelativePath="..\scripts\zone\molten_core\boss_baron_geddon.cpp" 670 > 671 </File> 672 <File 673 RelativePath="..\scripts\zone\molten_core\boss_garr.cpp" 674 > 675 </File> 676 <File 677 RelativePath="..\scripts\zone\molten_core\boss_gehennas.cpp" 678 > 679 </File> 680 <File 681 RelativePath="..\scripts\zone\molten_core\boss_golemagg.cpp" 682 > 683 </File> 684 <File 685 RelativePath="..\scripts\zone\molten_core\boss_lucifron.cpp" 686 > 687 </File> 688 <File 689 RelativePath="..\scripts\zone\molten_core\boss_magmadar.cpp" 690 > 691 </File> 692 <File 693 RelativePath="..\scripts\zone\molten_core\boss_majordomo_executus.cpp" 694 > 695 </File> 696 <File 697 RelativePath="..\scripts\zone\molten_core\boss_ragnaros.cpp" 698 > 699 </File> 700 <File 701 RelativePath="..\scripts\zone\molten_core\boss_shazzrah.cpp" 702 > 703 </File> 704 <File 705 RelativePath="..\scripts\zone\molten_core\boss_sulfuron_harbinger.cpp" 706 > 707 </File> 708 <File 709 RelativePath="..\scripts\zone\molten_core\def_molten_core.h" 710 > 711 </File> 712 <File 713 RelativePath="..\scripts\zone\molten_core\instance_molten_core.cpp" 714 > 715 </File> 716 <File 717 RelativePath="..\scripts\zone\molten_core\molten_core.cpp" 718 > 719 </File> 720 </Filter> 721 <Filter 722 Name="Mulgore" 723 > 724 <File 725 RelativePath="..\scripts\zone\mulgore\mulgore.cpp" 726 > 727 </File> 728 </Filter> 729 <Filter 730 Name="Naxxramas" 731 > 732 <File 733 RelativePath="..\scripts\zone\naxxramas\boss_anubrekhan.cpp" 734 > 735 </File> 736 <File 737 RelativePath="..\scripts\zone\naxxramas\boss_faerlina.cpp" 738 > 739 </File> 740 <File 741 RelativePath="..\scripts\zone\naxxramas\boss_feugen.cpp" 742 > 743 </File> 744 <File 745 RelativePath="..\scripts\zone\naxxramas\boss_gluth.cpp" 746 > 747 </File> 748 <File 749 RelativePath="..\scripts\zone\naxxramas\boss_gothik.cpp" 750 > 751 </File> 752 <File 753 RelativePath="..\scripts\zone\naxxramas\boss_grobbulus.cpp" 754 > 755 </File> 756 <File 757 RelativePath="..\scripts\zone\naxxramas\boss_heigan.cpp" 758 > 759 </File> 760 <File 761 RelativePath="..\scripts\zone\naxxramas\boss_highlord_mograine.cpp" 762 > 763 </File> 764 <File 765 RelativePath="..\scripts\zone\naxxramas\boss_kelthuzad.cpp" 766 > 767 </File> 768 <File 769 RelativePath="..\scripts\zone\naxxramas\boss_lady_blaumeux.cpp" 770 > 771 </File> 772 <File 773 RelativePath="..\scripts\zone\naxxramas\boss_loatheb.cpp" 774 > 775 </File> 776 <File 777 RelativePath="..\scripts\zone\naxxramas\boss_maexxna.cpp" 778 > 779 </File> 780 <File 781 RelativePath="..\scripts\zone\naxxramas\boss_noth.cpp" 782 > 783 </File> 784 <File 785 RelativePath="..\scripts\zone\naxxramas\boss_patchwerk.cpp" 786 > 787 </File> 788 <File 789 RelativePath="..\scripts\zone\naxxramas\boss_razuvious.cpp" 790 > 791 </File> 792 <File 793 RelativePath="..\scripts\zone\naxxramas\boss_sapphiron.cpp" 794 > 795 </File> 796 <File 797 RelativePath="..\scripts\zone\naxxramas\boss_sir_zeliek.cpp" 798 > 799 </File> 800 <File 801 RelativePath="..\scripts\zone\naxxramas\boss_stalagg.cpp" 802 > 803 </File> 804 <File 805 RelativePath="..\scripts\zone\naxxramas\boss_thaddius.cpp" 806 > 807 </File> 808 <File 809 RelativePath="..\scripts\zone\naxxramas\boss_thane_korthazz.cpp" 810 > 811 </File> 812 <File 813 RelativePath="..\scripts\zone\naxxramas\instance_naxxramas.cpp" 814 > 815 </File> 816 </Filter> 817 <Filter 818 Name="Onyxia's Lair" 819 > 820 <File 821 RelativePath="..\scripts\zone\onyxias_lair\boss_onyxia.cpp" 822 > 823 </File> 824 </Filter> 825 <Filter 826 Name="Ragefire Chasm" 827 > 828 </Filter> 829 <Filter 830 Name="Razorfen Downs" 831 > 832 <File 833 RelativePath="..\scripts\zone\razorfen_downs\boss_amnennar_the_coldbringer.cpp" 834 > 835 </File> 836 </Filter> 837 <Filter 838 Name="Shadowfang Keep" 839 > 840 <File 841 RelativePath="..\scripts\zone\shadowfang_keep\def_shadowfang_keep.h" 842 > 843 </File> 844 <File 845 RelativePath="..\scripts\zone\shadowfang_keep\instance_shadowfang_keep.cpp" 846 > 847 </File> 848 <File 849 RelativePath="..\scripts\zone\shadowfang_keep\shadowfang_keep.cpp" 850 > 851 </File> 852 </Filter> 853 <Filter 854 Name="Stonetalon Mountains" 855 > 856 <File 857 RelativePath="..\scripts\zone\stonetalon_mountains\stonetalon_mountains.cpp" 858 > 859 </File> 860 </Filter> 861 <Filter 862 Name="Stranglethorn Vale" 863 > 864 <File 865 RelativePath="..\scripts\zone\stranglethorn_vale\stranglethorn_vale.cpp" 866 > 867 </File> 868 </Filter> 869 <Filter 870 Name="Stratholme" 871 > 872 <File 873 RelativePath="..\scripts\zone\stratholme\boss_baron_rivendare.cpp" 874 > 875 </File> 876 <File 877 RelativePath="..\scripts\zone\stratholme\boss_baroness_anastari.cpp" 878 > 879 </File> 880 <File 881 RelativePath="..\scripts\zone\stratholme\boss_cannon_master_willey.cpp" 882 > 883 </File> 884 <File 885 RelativePath="..\scripts\zone\stratholme\boss_dathrohan_balnazzar.cpp" 886 > 887 </File> 888 <File 889 RelativePath="..\scripts\zone\stratholme\boss_magistrate_barthilas.cpp" 890 > 891 </File> 892 <File 893 RelativePath="..\scripts\zone\stratholme\boss_maleki_the_pallid.cpp" 894 > 895 </File> 896 <File 897 RelativePath="..\scripts\zone\stratholme\boss_nerubenkan.cpp" 898 > 899 </File> 900 <File 901 RelativePath="..\scripts\zone\stratholme\boss_order_of_silver_hand.cpp" 902 > 903 </File> 904 <File 905 RelativePath="..\scripts\zone\stratholme\boss_postmaster_malown.cpp" 906 > 907 </File> 908 <File 909 RelativePath="..\scripts\zone\stratholme\boss_ramstein_the_gorger.cpp" 910 > 911 </File> 912 <File 913 RelativePath="..\scripts\zone\stratholme\boss_timmy_the_cruel.cpp" 914 > 915 </File> 916 <File 917 RelativePath="..\scripts\zone\stratholme\def_stratholme.h" 918 > 919 </File> 920 <File 921 RelativePath="..\scripts\zone\stratholme\instance_stratholme.cpp" 922 > 923 </File> 924 <File 925 RelativePath="..\scripts\zone\stratholme\stratholme.cpp" 926 > 927 </File> 928 </Filter> 929 <Filter 930 Name="Sunken Temple" 931 > 932 </Filter> 933 <Filter 934 Name="Tanaris" 935 > 936 <File 937 RelativePath="..\scripts\zone\tanaris\tanaris.cpp" 938 > 939 </File> 940 </Filter> 941 <Filter 942 Name="Teldrassil" 943 > 944 </Filter> 945 <Filter 946 Name="Temple of Ahn'Qiraj" 947 > 948 <File 949 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_bug_trio.cpp" 950 > 951 </File> 952 <File 953 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_cthun.cpp" 954 > 955 </File> 956 <File 957 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_fankriss.cpp" 958 > 959 </File> 960 <File 961 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_huhuran.cpp" 962 > 963 </File> 964 <File 965 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_ouro.cpp" 966 > 967 </File> 968 <File 969 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_sartura.cpp" 970 > 971 </File> 972 <File 973 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_skeram.cpp" 974 > 975 </File> 976 <File 977 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_twinemperors.cpp" 978 > 979 </File> 980 <File 981 RelativePath="..\scripts\zone\temple_of_ahnqiraj\boss_viscidus.cpp" 982 > 983 </File> 984 <File 985 RelativePath="..\scripts\zone\temple_of_ahnqiraj\def_temple_of_ahnqiraj.h" 986 > 987 </File> 988 <File 989 RelativePath="..\scripts\zone\temple_of_ahnqiraj\instance_temple_of_ahnqiraj.cpp" 990 > 991 </File> 992 <File 993 RelativePath="..\scripts\zone\temple_of_ahnqiraj\mob_anubisath_sentinel.cpp" 994 > 995 </File> 996 </Filter> 997 <Filter 998 Name="Thousand Needles" 999 > 1000 </Filter> 1001 <Filter 1002 Name="Silithus" 1003 > 1004 <File 1005 RelativePath="..\scripts\zone\silithus\silithus.cpp" 1006 > 1007 </File> 1008 </Filter> 1009 <Filter 1010 Name="Silverpine Forest" 1011 > 1012 <File 1013 RelativePath="..\scripts\zone\silverpine_forest\silverpine_forest.cpp" 1014 > 1015 </File> 1016 </Filter> 1017 <Filter 1018 Name="Stockade" 1019 > 1020 </Filter> 1021 <Filter 1022 Name="Tirisfal Glades" 1023 > 1024 <File 1025 RelativePath="..\scripts\zone\tirisfal_glades\tirisfal_glades.cpp" 1026 > 1027 </File> 1028 </Filter> 1029 <Filter 1030 Name="Wailing Caverns" 1031 > 1032 <File 1033 RelativePath="..\scripts\zone\wailing_caverns\instance_wailing_caverns.cpp" 1034 > 1035 </File> 1036 </Filter> 1037 <Filter 1038 Name="Western Plaguelands" 1039 > 1040 <File 1041 RelativePath="..\scripts\zone\western_plaguelands\western_plaguelands.cpp" 1042 > 1043 </File> 1044 </Filter> 1045 <Filter 1046 Name="Westfall" 1047 > 1048 </Filter> 1049 <Filter 1050 Name="Wetlands" 1051 > 1052 </Filter> 1053 <Filter 1054 Name="Winterspring" 1055 > 1056 <File 1057 RelativePath="..\scripts\zone\winterspring\winterspring.cpp" 1058 > 1059 </File> 1060 </Filter> 1061 <Filter 1062 Name="Zul'Farrak" 1063 > 1064 <File 1065 RelativePath="..\scripts\zone\zulfarrak\zulfarrak.cpp" 1066 > 1067 </File> 1068 </Filter> 1069 <Filter 1070 Name="Zul'Gurub" 1071 > 1072 <File 1073 RelativePath="..\scripts\zone\zulgurub\boss_arlokk.cpp" 1074 > 1075 </File> 1076 <File 1077 RelativePath="..\scripts\zone\zulgurub\boss_gahzranka.cpp" 1078 > 1079 </File> 1080 <File 1081 RelativePath="..\scripts\zone\zulgurub\boss_grilek.cpp" 1082 > 1083 </File> 1084 <File 1085 RelativePath="..\scripts\zone\zulgurub\boss_hakkar.cpp" 1086 > 1087 </File> 1088 <File 1089 RelativePath="..\scripts\zone\zulgurub\boss_hazzarah.cpp" 1090 > 1091 </File> 1092 <File 1093 RelativePath="..\scripts\zone\zulgurub\boss_jeklik.cpp" 1094 > 1095 </File> 1096 <File 1097 RelativePath="..\scripts\zone\zulgurub\boss_jindo.cpp" 1098 > 1099 </File> 1100 <File 1101 RelativePath="..\scripts\zone\zulgurub\boss_mandokir.cpp" 1102 > 1103 </File> 1104 <File 1105 RelativePath="..\scripts\zone\zulgurub\boss_marli.cpp" 1106 > 1107 </File> 1108 <File 1109 RelativePath="..\scripts\zone\zulgurub\boss_renataki.cpp" 1110 > 1111 </File> 1112 <File 1113 RelativePath="..\scripts\zone\zulgurub\boss_thekal.cpp" 1114 > 1115 </File> 1116 <File 1117 RelativePath="..\scripts\zone\zulgurub\boss_venoxis.cpp" 1118 > 1119 </File> 1120 <File 1121 RelativePath="..\scripts\zone\zulgurub\boss_wushoolay.cpp" 1122 > 1123 </File> 1124 <File 1125 RelativePath="..\scripts\zone\zulgurub\def_zulgurub.h" 1126 > 1127 </File> 1128 <File 1129 RelativePath="..\scripts\zone\zulgurub\instance_zulgurub.cpp" 1130 > 1131 </File> 1132 </Filter> 1133 <Filter 1134 Name="Uldaman" 1135 > 1136 <File 1137 RelativePath="..\scripts\zone\uldaman\boss_ironaya.cpp" 1138 > 1139 </File> 1140 <File 1141 RelativePath="..\scripts\zone\uldaman\uldaman.cpp" 1142 > 1143 </File> 1144 </Filter> 1145 <Filter 1146 Name="Un'Goro Crater" 1147 > 1148 </Filter> 1149 <Filter 1150 Name="Aunchindoun" 1151 > 893 1152 <Filter 894 Name="Auchenai Crypts"> 895 <File 896 RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp"> 1153 Name="Auchenai Crypts" 1154 > 1155 <File 1156 RelativePath="..\scripts\zone\aunchindoun\auchenai_crypts\boss_exarch_maladaar.cpp" 1157 > 897 1158 </File> 898 1159 </Filter> 899 1160 <Filter 900 Name="Mana Tombs"> 901 <File 902 RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp"> 903 </File> 904 <File 905 RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp"> 1161 Name="Mana Tombs" 1162 > 1163 <File 1164 RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_nexusprince_shaffar.cpp" 1165 > 1166 </File> 1167 <File 1168 RelativePath="..\scripts\zone\aunchindoun\mana_tombs\boss_pandemonius.cpp" 1169 > 906 1170 </File> 907 1171 </Filter> 908 1172 <Filter 909 Name="Sethekk Halls"> 910 <File 911 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp"> 912 </File> 913 <File 914 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp"> 915 </File> 916 <File 917 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h"> 918 </File> 919 <File 920 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp"> 1173 Name="Sethekk Halls" 1174 > 1175 <File 1176 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_darkweaver_syth.cpp" 1177 > 1178 </File> 1179 <File 1180 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\boss_tailonking_ikiss.cpp" 1181 > 1182 </File> 1183 <File 1184 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\def_sethekk_halls.h" 1185 > 1186 </File> 1187 <File 1188 RelativePath="..\scripts\zone\aunchindoun\sethekk_halls\instance_sethekk_halls.cpp" 1189 > 921 1190 </File> 922 1191 </Filter> 923 1192 <Filter 924 Name="Shadow Labyrinth"> 925 <File 926 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp"> 927 </File> 928 <File 929 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp"> 930 </File> 931 <File 932 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp"> 933 </File> 934 <File 935 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp"> 936 </File> 937 <File 938 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h"> 939 </File> 940 <File 941 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp"> 1193 Name="Shadow Labyrinth" 1194 > 1195 <File 1196 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_ambassador_hellmaw.cpp" 1197 > 1198 </File> 1199 <File 1200 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_blackheart_the_inciter.cpp" 1201 > 1202 </File> 1203 <File 1204 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_grandmaster_vorpil.cpp" 1205 > 1206 </File> 1207 <File 1208 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\boss_murmur.cpp" 1209 > 1210 </File> 1211 <File 1212 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\def_shadow_labyrinth.h" 1213 > 1214 </File> 1215 <File 1216 RelativePath="..\scripts\zone\aunchindoun\shadow_labyrinth\instance_shadow_labyrinth.cpp" 1217 > 942 1218 </File> 943 1219 </Filter> 944 1220 </Filter> 945 1221 <Filter 946 Name="Azuremyst Isle"> 947 <File 948 RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp"> 949 </File> 950 </Filter> 951 <Filter 952 Name="Black Temple"> 953 <File 954 RelativePath="..\scripts\zone\black_temple\black_temple.cpp"> 955 </File> 956 <File 957 RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp"> 958 </File> 959 <File 960 RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp"> 961 </File> 962 <File 963 RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp"> 964 </File> 965 <File 966 RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp"> 967 </File> 968 <File 969 RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp"> 970 </File> 971 <File 972 RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp"> 973 </File> 974 <File 975 RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp"> 976 </File> 977 <File 978 RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp"> 979 </File> 980 <File 981 RelativePath="..\scripts\zone\black_temple\def_black_temple.h"> 982 </File> 983 <File 984 RelativePath="..\scripts\zone\black_temple\illidari_council.cpp"> 985 </File> 986 <File 987 RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp"> 988 </File> 989 </Filter> 990 <Filter 991 Name="Eversong Woods"> 992 <File 993 RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp"> 994 </File> 995 </Filter> 996 <Filter 997 Name="Ghostlands"> 998 <File 999 RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp"> 1000 </File> 1001 </Filter> 1002 <Filter 1003 Name="Blade's Edge Mountains"> 1004 <File 1005 RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp"> 1006 </File> 1007 </Filter> 1008 <Filter 1009 Name="Blasted Lands"> 1010 <File 1011 RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp"> 1012 </File> 1013 <File 1014 RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp"> 1015 </File> 1016 </Filter> 1017 <Filter 1018 Name="Hellfire Citadel"> 1222 Name="Azuremyst Isle" 1223 > 1224 <File 1225 RelativePath="..\scripts\zone\azuremyst_isle\azuremyst_isle.cpp" 1226 > 1227 </File> 1228 </Filter> 1229 <Filter 1230 Name="Black Temple" 1231 > 1232 <File 1233 RelativePath="..\scripts\zone\black_temple\black_temple.cpp" 1234 > 1235 </File> 1236 <File 1237 RelativePath="..\scripts\zone\black_temple\boss_bloodboil.cpp" 1238 > 1239 </File> 1240 <File 1241 RelativePath="..\scripts\zone\black_temple\boss_illidan.cpp" 1242 > 1243 </File> 1244 <File 1245 RelativePath="..\scripts\zone\black_temple\boss_mother_shahraz.cpp" 1246 > 1247 </File> 1248 <File 1249 RelativePath="..\scripts\zone\black_temple\boss_reliquary_of_souls.cpp" 1250 > 1251 </File> 1252 <File 1253 RelativePath="..\scripts\zone\black_temple\boss_shade_of_akama.cpp" 1254 > 1255 </File> 1256 <File 1257 RelativePath="..\scripts\zone\black_temple\boss_supremus.cpp" 1258 > 1259 </File> 1260 <File 1261 RelativePath="..\scripts\zone\black_temple\boss_teron_gorefiend.cpp" 1262 > 1263 </File> 1264 <File 1265 RelativePath="..\scripts\zone\black_temple\boss_warlord_najentus.cpp" 1266 > 1267 </File> 1268 <File 1269 RelativePath="..\scripts\zone\black_temple\def_black_temple.h" 1270 > 1271 </File> 1272 <File 1273 RelativePath="..\scripts\zone\black_temple\illidari_council.cpp" 1274 > 1275 </File> 1276 <File 1277 RelativePath="..\scripts\zone\black_temple\instance_black_temple.cpp" 1278 > 1279 </File> 1280 </Filter> 1281 <Filter 1282 Name="Eversong Woods" 1283 > 1284 <File 1285 RelativePath="..\scripts\zone\eversong_woods\eversong_woods.cpp" 1286 > 1287 </File> 1288 </Filter> 1289 <Filter 1290 Name="Ghostlands" 1291 > 1292 <File 1293 RelativePath="..\scripts\zone\ghostlands\ghostlands.cpp" 1294 > 1295 </File> 1296 </Filter> 1297 <Filter 1298 Name="Blade's Edge Mountains" 1299 > 1300 <File 1301 RelativePath="..\scripts\zone\blades_edge_mountains\blades_edge_mountains.cpp" 1302 > 1303 </File> 1304 </Filter> 1305 <Filter 1306 Name="Blasted Lands" 1307 > 1308 <File 1309 RelativePath="..\scripts\zone\blasted_lands\blasted_lands.cpp" 1310 > 1311 </File> 1312 <File 1313 RelativePath="..\scripts\zone\blasted_lands\boss_kruul.cpp" 1314 > 1315 </File> 1316 </Filter> 1317 <Filter 1318 Name="Hellfire Citadel" 1319 > 1019 1320 <Filter 1020 Name="Blood Furnace"> 1021 <File 1022 RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp"> 1023 </File> 1024 <File 1025 RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp"> 1026 </File> 1027 <File 1028 RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp"> 1321 Name="Blood Furnace" 1322 > 1323 <File 1324 RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_broggok.cpp" 1325 > 1326 </File> 1327 <File 1328 RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_kelidan_the_breaker.cpp" 1329 > 1330 </File> 1331 <File 1332 RelativePath="..\scripts\zone\hellfire_citadel\blood_furnace\boss_the_maker.cpp" 1333 > 1029 1334 </File> 1030 1335 </Filter> 1031 1336 <Filter 1032 Name="Magtheridon's lair"> 1033 <File 1034 RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp"> 1035 </File> 1036 <File 1037 RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h"> 1038 </File> 1039 <File 1040 RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp"> 1337 Name="Magtheridon's lair" 1338 > 1339 <File 1340 RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\boss_magtheridon.cpp" 1341 > 1342 </File> 1343 <File 1344 RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\def_magtheridons_lair.h" 1345 > 1346 </File> 1347 <File 1348 RelativePath="..\scripts\zone\hellfire_citadel\magtheridons_lair\instance_magtheridons_lair.cpp" 1349 > 1041 1350 </File> 1042 1351 </Filter> 1043 1352 <Filter 1044 Name="Hellfire Ramparts"> 1045 <File 1046 RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp"> 1047 </File> 1048 <File 1049 RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp"> 1353 Name="Hellfire Ramparts" 1354 > 1355 <File 1356 RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_omor_the_unscarred.cpp" 1357 > 1358 </File> 1359 <File 1360 RelativePath="..\scripts\zone\hellfire_citadel\hellfire_ramparts\boss_watchkeeper_gargolmar.cpp" 1361 > 1050 1362 </File> 1051 1363 </Filter> 1052 1364 <Filter 1053 Name="Shattered Halls"> 1054 <File 1055 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp"> 1056 </File> 1057 <File 1058 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp"> 1059 </File> 1060 <File 1061 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h"> 1062 </File> 1063 <File 1064 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp"> 1365 Name="Shattered Halls" 1366 > 1367 <File 1368 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_nethekurse.cpp" 1369 > 1370 </File> 1371 <File 1372 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\boss_warbringer_omrogg.cpp" 1373 > 1374 </File> 1375 <File 1376 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\def_shattered_halls.h" 1377 > 1378 </File> 1379 <File 1380 RelativePath="..\scripts\zone\hellfire_citadel\shattered_halls\instance_shattered_halls.cpp" 1381 > 1065 1382 </File> 1066 1383 </Filter> 1067 1384 </Filter> 1068 1385 <Filter 1069 Name="Hellfire Peninsula"> 1070 <File 1071 RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp"> 1072 </File> 1073 <File 1074 RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp"> 1075 </File> 1076 </Filter> 1077 <Filter 1078 Name="Karazhan"> 1079 <File 1080 RelativePath="..\scripts\zone\karazhan\boss_curator.cpp"> 1081 </File> 1082 <File 1083 RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp"> 1084 </File> 1085 <File 1086 RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp"> 1087 </File> 1088 <File 1089 RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp"> 1090 </File> 1091 <File 1092 RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp"> 1093 </File> 1094 <File 1095 RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp"> 1096 </File> 1097 <File 1098 RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp"> 1099 </File> 1100 <File 1101 RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp"> 1102 </File> 1103 <File 1104 RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp"> 1105 </File> 1106 <File 1107 RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp"> 1108 </File> 1109 <File 1110 RelativePath="..\scripts\zone\karazhan\def_karazhan.h"> 1111 </File> 1112 <File 1113 RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp"> 1114 </File> 1115 <File 1116 RelativePath="..\scripts\zone\karazhan\karazhan.cpp"> 1117 </File> 1118 </Filter> 1119 <Filter 1120 Name="Nagrand"> 1121 <File 1122 RelativePath="..\scripts\zone\nagrand\nagrand.cpp"> 1123 </File> 1124 </Filter> 1125 <Filter 1126 Name="Netherstorm"> 1127 <File 1128 RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp"> 1129 </File> 1130 </Filter> 1131 <Filter 1132 Name="Shadowmoon Valley"> 1133 <File 1134 RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp"> 1135 </File> 1136 <File 1137 RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp"> 1138 </File> 1139 </Filter> 1140 <Filter 1141 Name="Tempest Keep"> 1386 Name="Hellfire Peninsula" 1387 > 1388 <File 1389 RelativePath="..\scripts\zone\hellfire_peninsula\boss_doomlord_kazzak.cpp" 1390 > 1391 </File> 1392 <File 1393 RelativePath="..\scripts\zone\hellfire_peninsula\hellfire_peninsula.cpp" 1394 > 1395 </File> 1396 </Filter> 1397 <Filter 1398 Name="Karazhan" 1399 > 1400 <File 1401 RelativePath="..\scripts\zone\karazhan\boss_curator.cpp" 1402 > 1403 </File> 1404 <File 1405 RelativePath="..\scripts\zone\karazhan\boss_maiden_of_virtue.cpp" 1406 > 1407 </File> 1408 <File 1409 RelativePath="..\scripts\zone\karazhan\boss_midnight.cpp" 1410 > 1411 </File> 1412 <File 1413 RelativePath="..\scripts\zone\karazhan\boss_moroes.cpp" 1414 > 1415 </File> 1416 <File 1417 RelativePath="..\scripts\zone\karazhan\boss_netherspite.cpp" 1418 > 1419 </File> 1420 <File 1421 RelativePath="..\scripts\zone\karazhan\boss_nightbane.cpp" 1422 > 1423 </File> 1424 <File 1425 RelativePath="..\scripts\zone\karazhan\boss_prince_malchezaar.cpp" 1426 > 1427 </File> 1428 <File 1429 RelativePath="..\scripts\zone\karazhan\boss_shade_of_aran.cpp" 1430 > 1431 </File> 1432 <File 1433 RelativePath="..\scripts\zone\karazhan\boss_terestian_illhoof.cpp" 1434 > 1435 </File> 1436 <File 1437 RelativePath="..\scripts\zone\karazhan\bosses_opera.cpp" 1438 > 1439 </File> 1440 <File 1441 RelativePath="..\scripts\zone\karazhan\def_karazhan.h" 1442 > 1443 </File> 1444 <File 1445 RelativePath="..\scripts\zone\karazhan\instance_karazhan.cpp" 1446 > 1447 </File> 1448 <File 1449 RelativePath="..\scripts\zone\karazhan\karazhan.cpp" 1450 > 1451 </File> 1452 </Filter> 1453 <Filter 1454 Name="Nagrand" 1455 > 1456 <File 1457 RelativePath="..\scripts\zone\nagrand\nagrand.cpp" 1458 > 1459 </File> 1460 </Filter> 1461 <Filter 1462 Name="Netherstorm" 1463 > 1464 <File 1465 RelativePath="..\scripts\zone\netherstorm\netherstorm.cpp" 1466 > 1467 </File> 1468 </Filter> 1469 <Filter 1470 Name="Shadowmoon Valley" 1471 > 1472 <File 1473 RelativePath="..\scripts\zone\shadowmoon_valley\boss_doomwalker.cpp" 1474 > 1475 </File> 1476 <File 1477 RelativePath="..\scripts\zone\shadowmoon_valley\shadowmoon_valley.cpp" 1478 > 1479 </File> 1480 </Filter> 1481 <Filter 1482 Name="Tempest Keep" 1483 > 1142 1484 <Filter 1143 Name="Arcatraz"> 1144 <File 1145 RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp"> 1146 </File> 1147 <File 1148 RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp"> 1149 </File> 1150 <File 1151 RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h"> 1152 </File> 1153 <File 1154 RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp"> 1485 Name="Arcatraz" 1486 > 1487 <File 1488 RelativePath="..\scripts\zone\tempest_keep\arcatraz\arcatraz.cpp" 1489 > 1490 </File> 1491 <File 1492 RelativePath="..\scripts\zone\tempest_keep\arcatraz\boss_harbinger_skyriss.cpp" 1493 > 1494 </File> 1495 <File 1496 RelativePath="..\scripts\zone\tempest_keep\arcatraz\def_arcatraz.h" 1497 > 1498 </File> 1499 <File 1500 RelativePath="..\scripts\zone\tempest_keep\arcatraz\instance_arcatraz.cpp" 1501 > 1155 1502 </File> 1156 1503 </Filter> 1157 1504 <Filter 1158 Name="Botanica"> 1159 <File 1160 RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp"> 1161 </File> 1162 <File 1163 RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp"> 1164 </File> 1165 <File 1166 RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp"> 1505 Name="Botanica" 1506 > 1507 <File 1508 RelativePath="..\scripts\zone\tempest_keep\botanica\boss_high_botanist_freywinn.cpp" 1509 > 1510 </File> 1511 <File 1512 RelativePath="..\scripts\zone\tempest_keep\botanica\boss_laj.cpp" 1513 > 1514 </File> 1515 <File 1516 RelativePath="..\scripts\zone\tempest_keep\botanica\boss_warp_splinter.cpp" 1517 > 1167 1518 </File> 1168 1519 </Filter> 1169 1520 <Filter 1170 Name="The Eye"> 1171 <File 1172 RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp"> 1173 </File> 1174 <File 1175 RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp"> 1176 </File> 1177 <File 1178 RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp"> 1179 </File> 1180 <File 1181 RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h"> 1182 </File> 1183 <File 1184 RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp"> 1185 </File> 1186 <File 1187 RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp"> 1521 Name="The Eye" 1522 > 1523 <File 1524 RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_astromancer.cpp" 1525 > 1526 </File> 1527 <File 1528 RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_kaelthas.cpp" 1529 > 1530 </File> 1531 <File 1532 RelativePath="..\scripts\zone\tempest_keep\the_eye\boss_void_reaver.cpp" 1533 > 1534 </File> 1535 <File 1536 RelativePath="..\scripts\zone\tempest_keep\the_eye\def_the_eye.h" 1537 > 1538 </File> 1539 <File 1540 RelativePath="..\scripts\zone\tempest_keep\the_eye\instance_the_eye.cpp" 1541 > 1542 </File> 1543 <File 1544 RelativePath="..\scripts\zone\tempest_keep\the_eye\the_eye.cpp" 1545 > 1188 1546 </File> 1189 1547 </Filter> 1190 1548 <Filter 1191 Name="The Mechanar"> 1192 <File 1193 RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp"> 1194 </File> 1195 <File 1196 RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp"> 1197 </File> 1198 <File 1199 RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp"> 1549 Name="The Mechanar" 1550 > 1551 <File 1552 RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_gyrokill.cpp" 1553 > 1554 </File> 1555 <File 1556 RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_gatewatcher_ironhand.cpp" 1557 > 1558 </File> 1559 <File 1560 RelativePath="..\scripts\zone\tempest_keep\the_mechanar\boss_nethermancer_sepethrea.cpp" 1561 > 1200 1562 </File> 1201 1563 </Filter> 1202 1564 </Filter> 1203 1565 <Filter 1204 Name="Terokkar Forest"> 1205 <File 1206 RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp"> 1207 </File> 1208 </Filter> 1209 <Filter 1210 Name="Zangarmarsh"> 1211 <File 1212 RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp"> 1213 </File> 1214 </Filter> 1215 <Filter 1216 Name="Blackrock Spire"> 1217 <File 1218 RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp"> 1219 </File> 1220 <File 1221 RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp"> 1222 </File> 1223 <File 1224 RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp"> 1225 </File> 1226 <File 1227 RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp"> 1228 </File> 1229 <File 1230 RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp"> 1231 </File> 1232 <File 1233 RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp"> 1234 </File> 1235 <File 1236 RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp"> 1237 </File> 1238 <File 1239 RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp"> 1240 </File> 1241 <File 1242 RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp"> 1243 </File> 1244 <File 1245 RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp"> 1246 </File> 1247 <File 1248 RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp"> 1249 </File> 1250 <File 1251 RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp"> 1252 </File> 1253 </Filter> 1254 <Filter 1255 Name="Stormwind City"> 1256 <File 1257 RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp"> 1258 </File> 1259 </Filter> 1260 <Filter 1261 Name="Coilfang Resevoir"> 1566 Name="Terokkar Forest" 1567 > 1568 <File 1569 RelativePath="..\scripts\zone\terokkar_forest\terokkar_forest.cpp" 1570 > 1571 </File> 1572 </Filter> 1573 <Filter 1574 Name="Zangarmarsh" 1575 > 1576 <File 1577 RelativePath="..\scripts\zone\zangarmarsh\zangarmarsh.cpp" 1578 > 1579 </File> 1580 </Filter> 1581 <Filter 1582 Name="Blackrock Spire" 1583 > 1584 <File 1585 RelativePath="..\scripts\zone\blackrock_spire\boss_drakkisath.cpp" 1586 > 1587 </File> 1588 <File 1589 RelativePath="..\scripts\zone\blackrock_spire\boss_gyth.cpp" 1590 > 1591 </File> 1592 <File 1593 RelativePath="..\scripts\zone\blackrock_spire\boss_halycon.cpp" 1594 > 1595 </File> 1596 <File 1597 RelativePath="..\scripts\zone\blackrock_spire\boss_highlord_omokk.cpp" 1598 > 1599 </File> 1600 <File 1601 RelativePath="..\scripts\zone\blackrock_spire\boss_mother_smolderweb.cpp" 1602 > 1603 </File> 1604 <File 1605 RelativePath="..\scripts\zone\blackrock_spire\boss_overlord_wyrmthalak.cpp" 1606 > 1607 </File> 1608 <File 1609 RelativePath="..\scripts\zone\blackrock_spire\boss_pyroguard_emberseer.cpp" 1610 > 1611 </File> 1612 <File 1613 RelativePath="..\scripts\zone\blackrock_spire\boss_quartermaster_zigris.cpp" 1614 > 1615 </File> 1616 <File 1617 RelativePath="..\scripts\zone\blackrock_spire\boss_rend_blackhand.cpp" 1618 > 1619 </File> 1620 <File 1621 RelativePath="..\scripts\zone\blackrock_spire\boss_shadow_hunter_voshgajin.cpp" 1622 > 1623 </File> 1624 <File 1625 RelativePath="..\scripts\zone\blackrock_spire\boss_the_beast.cpp" 1626 > 1627 </File> 1628 <File 1629 RelativePath="..\scripts\zone\blackrock_spire\boss_warmaster_voone.cpp" 1630 > 1631 </File> 1632 </Filter> 1633 <Filter 1634 Name="Stormwind City" 1635 > 1636 <File 1637 RelativePath="..\scripts\zone\stormwind\stormwind_city.cpp" 1638 > 1639 </File> 1640 </Filter> 1641 <Filter 1642 Name="Coilfang Resevoir" 1643 > 1262 1644 <Filter 1263 Name="Serpent Shrine Cavern"> 1264 <File 1265 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp"> 1266 </File> 1267 <File 1268 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp"> 1269 </File> 1270 <File 1271 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp"> 1272 </File> 1273 <File 1274 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp"> 1275 </File> 1276 <File 1277 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp"> 1278 </File> 1279 <File 1280 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h"> 1281 </File> 1282 <File 1283 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp"> 1645 Name="Serpent Shrine Cavern" 1646 > 1647 <File 1648 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_fathomlord_karathress.cpp" 1649 > 1650 </File> 1651 <File 1652 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_hydross_the_unstable.cpp" 1653 > 1654 </File> 1655 <File 1656 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_lady_vashj.cpp" 1657 > 1658 </File> 1659 <File 1660 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_leotheras_the_blind.cpp" 1661 > 1662 </File> 1663 <File 1664 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\boss_morogrim_tidewalker.cpp" 1665 > 1666 </File> 1667 <File 1668 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\def_serpent_shrine.h" 1669 > 1670 </File> 1671 <File 1672 RelativePath="..\scripts\zone\coilfang_resevoir\serpent_shrine\instance_serpent_shrine.cpp" 1673 > 1284 1674 </File> 1285 1675 </Filter> 1286 1676 <Filter 1287 Name="Slave Pens"> 1677 Name="Slave Pens" 1678 > 1288 1679 </Filter> 1289 1680 <Filter 1290 Name="Steam Vault"> 1291 <File 1292 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp"> 1293 </File> 1294 <File 1295 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp"> 1296 </File> 1297 <File 1298 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp"> 1299 </File> 1300 <File 1301 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h"> 1302 </File> 1303 <File 1304 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp"> 1681 Name="Steam Vault" 1682 > 1683 <File 1684 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_hydromancer_thespia.cpp" 1685 > 1686 </File> 1687 <File 1688 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_mekgineer_steamrigger.cpp" 1689 > 1690 </File> 1691 <File 1692 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\boss_warlord_kalithresh.cpp" 1693 > 1694 </File> 1695 <File 1696 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\def_steam_vault.h" 1697 > 1698 </File> 1699 <File 1700 RelativePath="..\scripts\zone\coilfang_resevoir\steam_vault\instance_steam_vault.cpp" 1701 > 1305 1702 </File> 1306 1703 </Filter> 1307 1704 <Filter 1308 Name="Underbog"> 1309 <File 1310 RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp"> 1705 Name="Underbog" 1706 > 1707 <File 1708 RelativePath="..\scripts\zone\coilfang_resevoir\underbog\boss_hungarfen.cpp" 1709 > 1311 1710 </File> 1312 1711 </Filter> 1313 1712 </Filter> 1314 1713 <Filter 1315 Name="Caverns of Time"> 1714 Name="Caverns of Time" 1715 > 1316 1716 <Filter 1317 Name="The Dark Portal"> 1318 <File 1319 RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp"> 1320 </File> 1321 <File 1322 RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp"> 1323 </File> 1324 <File 1325 RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp"> 1717 Name="The Dark Portal" 1718 > 1719 <File 1720 RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_aeonus.cpp" 1721 > 1722 </File> 1723 <File 1724 RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_chrono_lord_deja.cpp" 1725 > 1726 </File> 1727 <File 1728 RelativePath="..\scripts\zone\caverns_of_time\dark_portal\boss_temporus.cpp" 1729 > 1326 1730 </File> 1327 1731 </Filter> 1328 1732 <Filter 1329 Name="Battle for Mt. Hyjal"> 1330 <File 1331 RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp"> 1332 </File> 1333 <File 1334 RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h"> 1335 </File> 1336 <File 1337 RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp"> 1338 </File> 1339 <File 1340 RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp"> 1341 </File> 1342 <File 1343 RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h"> 1344 </File> 1345 <File 1346 RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp"> 1733 Name="Battle for Mt. Hyjal" 1734 > 1735 <File 1736 RelativePath="..\scripts\zone\caverns_of_time\hyjal\boss_archimonde.cpp" 1737 > 1738 </File> 1739 <File 1740 RelativePath="..\scripts\zone\caverns_of_time\hyjal\def_hyjal.h" 1741 > 1742 </File> 1743 <File 1744 RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjal.cpp" 1745 > 1746 </File> 1747 <File 1748 RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.cpp" 1749 > 1750 </File> 1751 <File 1752 RelativePath="..\scripts\zone\caverns_of_time\hyjal\hyjalAI.h" 1753 > 1754 </File> 1755 <File 1756 RelativePath="..\scripts\zone\caverns_of_time\hyjal\instance_hyjal.cpp" 1757 > 1347 1758 </File> 1348 1759 </Filter> 1349 1760 <Filter 1350 Name="Old Hillsbrad"> 1351 <File 1352 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp"> 1353 </File> 1354 <File 1355 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp"> 1356 </File> 1357 <File 1358 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp"> 1359 </File> 1360 <File 1361 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h"> 1362 </File> 1363 <File 1364 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp"> 1365 </File> 1366 <File 1367 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp"> 1761 Name="Old Hillsbrad" 1762 > 1763 <File 1764 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_captain_skarloc.cpp" 1765 > 1766 </File> 1767 <File 1768 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_epoch_hunter.cpp" 1769 > 1770 </File> 1771 <File 1772 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\boss_leutenant_drake.cpp" 1773 > 1774 </File> 1775 <File 1776 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\def_old_hillsbrad.h" 1777 > 1778 </File> 1779 <File 1780 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\instance_old_hillsbrad.cpp" 1781 > 1782 </File> 1783 <File 1784 RelativePath="..\scripts\zone\caverns_of_time\old_hillsbrad\old_hillsbrad.cpp" 1785 > 1368 1786 </File> 1369 1787 </Filter> 1370 1788 </Filter> 1371 1789 <Filter 1372 Name="Silvermoon City"> 1373 <File 1374 RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp"> 1375 </File> 1376 </Filter> 1377 <Filter 1378 Name="Darnassus"> 1379 </Filter> 1380 <Filter 1381 Name="Exodar"> 1382 </Filter> 1383 <Filter 1384 Name="Iron Forge"> 1385 <File 1386 RelativePath="..\scripts\zone\ironforge\ironforge.cpp"> 1387 </File> 1388 </Filter> 1389 <Filter 1390 Name="Orgrimmar"> 1391 <File 1392 RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp"> 1393 </File> 1394 </Filter> 1395 <Filter 1396 Name="Shattrath City"> 1397 <File 1398 RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp"> 1399 </File> 1400 </Filter> 1401 <Filter 1402 Name="Thunder Bluff"> 1403 <File 1404 RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp"> 1405 </File> 1406 </Filter> 1407 <Filter 1408 Name="Undercity"> 1409 <File 1410 RelativePath="..\scripts\zone\undercity\undercity.cpp"> 1411 </File> 1412 </Filter> 1413 <Filter 1414 Name="Zul'Aman"> 1415 <File 1416 RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp"> 1417 </File> 1418 <File 1419 RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp"> 1420 </File> 1421 <File 1422 RelativePath="..\scripts\zone\zulaman\def_zulaman.h"> 1423 </File> 1424 <File 1425 RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp"> 1426 </File> 1427 <File 1428 RelativePath="..\scripts\zone\zulaman\zulaman.cpp"> 1429 </File> 1430 </Filter> 1431 <Filter 1432 Name="Isle of Quel'Danas"> 1433 <File 1434 RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp"> 1435 </File> 1436 </Filter> 1437 <Filter 1438 Name="Magister's Terrace"> 1439 <File 1440 RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp"> 1441 </File> 1442 <File 1443 RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp"> 1444 </File> 1445 <File 1446 RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp"> 1447 </File> 1448 <File 1449 RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp"> 1450 </File> 1451 <File 1452 RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h"> 1453 </File> 1454 <File 1455 RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp"> 1456 </File> 1457 </Filter> 1458 <Filter 1459 Name="Sunwell Plateau"> 1460 <File 1461 RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp"> 1462 </File> 1463 <File 1464 RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp"> 1465 </File> 1466 <File 1467 RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h"> 1468 </File> 1469 <File 1470 RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp"> 1471 </File> 1472 </Filter> 1473 <Filter 1474 Name="Blackrock Depths"> 1475 <File 1476 RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp"> 1477 </File> 1478 <File 1479 RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp"> 1480 </File> 1481 <File 1482 RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp"> 1483 </File> 1484 <File 1485 RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp"> 1486 </File> 1487 <File 1488 RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp"> 1489 </File> 1490 <File 1491 RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp"> 1492 </File> 1493 <File 1494 RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp"> 1495 </File> 1496 <File 1497 RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp"> 1498 </File> 1499 <File 1500 RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp"> 1501 </File> 1502 <File 1503 RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp"> 1504 </File> 1505 <File 1506 RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp"> 1507 </File> 1508 <File 1509 RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp"> 1510 </File> 1511 <File 1512 RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp"> 1513 </File> 1514 <File 1515 RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp"> 1516 </File> 1517 <File 1518 RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp"> 1519 </File> 1520 <File 1521 RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp"> 1522 </File> 1523 <File 1524 RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp"> 1525 </File> 1526 </Filter> 1527 <Filter 1528 Name="Loch Modan"> 1529 <File 1530 RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp"> 1790 Name="Silvermoon City" 1791 > 1792 <File 1793 RelativePath="..\scripts\zone\silvermoon\silvermoon_city.cpp" 1794 > 1795 </File> 1796 </Filter> 1797 <Filter 1798 Name="Darnassus" 1799 > 1800 </Filter> 1801 <Filter 1802 Name="Exodar" 1803 > 1804 </Filter> 1805 <Filter 1806 Name="Iron Forge" 1807 > 1808 <File 1809 RelativePath="..\scripts\zone\ironforge\ironforge.cpp" 1810 > 1811 </File> 1812 </Filter> 1813 <Filter 1814 Name="Orgrimmar" 1815 > 1816 <File 1817 RelativePath="..\scripts\zone\orgrimmar\orgrimmar.cpp" 1818 > 1819 </File> 1820 </Filter> 1821 <Filter 1822 Name="Shattrath City" 1823 > 1824 <File 1825 RelativePath="..\scripts\zone\shattrath\shattrath_city.cpp" 1826 > 1827 </File> 1828 </Filter> 1829 <Filter 1830 Name="Thunder Bluff" 1831 > 1832 <File 1833 RelativePath="..\scripts\zone\thunder_bluff\thunder_bluff.cpp" 1834 > 1835 </File> 1836 </Filter> 1837 <Filter 1838 Name="Undercity" 1839 > 1840 <File 1841 RelativePath="..\scripts\zone\undercity\undercity.cpp" 1842 > 1843 </File> 1844 </Filter> 1845 <Filter 1846 Name="Zul'Aman" 1847 > 1848 <File 1849 RelativePath="..\scripts\zone\zulaman\boss_akilzon.cpp" 1850 > 1851 </File> 1852 <File 1853 RelativePath="..\scripts\zone\zulaman\boss_halazzi.cpp" 1854 > 1855 </File> 1856 <File 1857 RelativePath="..\scripts\zone\zulaman\boss_hexlord.cpp" 1858 > 1859 </File> 1860 <File 1861 RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp" 1862 > 1863 </File> 1864 <File 1865 RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp" 1866 > 1867 </File> 1868 <File 1869 RelativePath="..\scripts\zone\zulaman\boss_zuljin.cpp" 1870 > 1871 </File> 1872 <File 1873 RelativePath="..\scripts\zone\zulaman\def_zulaman.h" 1874 > 1875 </File> 1876 <File 1877 RelativePath="..\scripts\zone\zulaman\instance_zulaman.cpp" 1878 > 1879 </File> 1880 <File 1881 RelativePath="..\scripts\zone\zulaman\zulaman.cpp" 1882 > 1883 </File> 1884 </Filter> 1885 <Filter 1886 Name="Isle of Quel'Danas" 1887 > 1888 <File 1889 RelativePath="..\scripts\zone\isle_of_queldanas\isle_of_queldanas.cpp" 1890 > 1891 </File> 1892 </Filter> 1893 <Filter 1894 Name="Magister's Terrace" 1895 > 1896 <File 1897 RelativePath="..\scripts\zone\magisters_terrace\boss_felblood_kaelthas.cpp" 1898 > 1899 </File> 1900 <File 1901 RelativePath="..\scripts\zone\magisters_terrace\boss_priestess_delrissa.cpp" 1902 > 1903 </File> 1904 <File 1905 RelativePath="..\scripts\zone\magisters_terrace\boss_selin_fireheart.cpp" 1906 > 1907 </File> 1908 <File 1909 RelativePath="..\scripts\zone\magisters_terrace\boss_vexallus.cpp" 1910 > 1911 </File> 1912 <File 1913 RelativePath="..\scripts\zone\magisters_terrace\def_magisters_terrace.h" 1914 > 1915 </File> 1916 <File 1917 RelativePath="..\scripts\zone\magisters_terrace\instance_magisters_terrace.cpp" 1918 > 1919 </File> 1920 </Filter> 1921 <Filter 1922 Name="Sunwell Plateau" 1923 > 1924 <File 1925 RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp" 1926 > 1927 </File> 1928 <File 1929 RelativePath="..\scripts\zone\sunwell_plateau\boss_kalecgos.cpp" 1930 > 1931 </File> 1932 <File 1933 RelativePath="..\scripts\zone\sunwell_plateau\def_sunwell_plateau.h" 1934 > 1935 </File> 1936 <File 1937 RelativePath="..\scripts\zone\sunwell_plateau\instance_sunwell_plateau.cpp" 1938 > 1939 </File> 1940 </Filter> 1941 <Filter 1942 Name="Blackrock Depths" 1943 > 1944 <File 1945 RelativePath="..\scripts\zone\blackrock_depths\blackrock_depths.cpp" 1946 > 1947 </File> 1948 <File 1949 RelativePath="..\scripts\zone\blackrock_depths\boss_ambassador_flamelash.cpp" 1950 > 1951 </File> 1952 <File 1953 RelativePath="..\scripts\zone\blackrock_depths\boss_angerrel.cpp" 1954 > 1955 </File> 1956 <File 1957 RelativePath="..\scripts\zone\blackrock_depths\boss_anubshiah.cpp" 1958 > 1959 </File> 1960 <File 1961 RelativePath="..\scripts\zone\blackrock_depths\boss_doomrel.cpp" 1962 > 1963 </File> 1964 <File 1965 RelativePath="..\scripts\zone\blackrock_depths\boss_doperel.cpp" 1966 > 1967 </File> 1968 <File 1969 RelativePath="..\scripts\zone\blackrock_depths\boss_emperor_dagran_thaurissan.cpp" 1970 > 1971 </File> 1972 <File 1973 RelativePath="..\scripts\zone\blackrock_depths\boss_general_angerforge.cpp" 1974 > 1975 </File> 1976 <File 1977 RelativePath="..\scripts\zone\blackrock_depths\boss_gloomrel.cpp" 1978 > 1979 </File> 1980 <File 1981 RelativePath="..\scripts\zone\blackrock_depths\boss_gorosh_the_dervish.cpp" 1982 > 1983 </File> 1984 <File 1985 RelativePath="..\scripts\zone\blackrock_depths\boss_grizzle.cpp" 1986 > 1987 </File> 1988 <File 1989 RelativePath="..\scripts\zone\blackrock_depths\boss_haterel.cpp" 1990 > 1991 </File> 1992 <File 1993 RelativePath="..\scripts\zone\blackrock_depths\boss_high_interrogator_gerstahn.cpp" 1994 > 1995 </File> 1996 <File 1997 RelativePath="..\scripts\zone\blackrock_depths\boss_magmus.cpp" 1998 > 1999 </File> 2000 <File 2001 RelativePath="..\scripts\zone\blackrock_depths\boss_moira_bronzebeard.cpp" 2002 > 2003 </File> 2004 <File 2005 RelativePath="..\scripts\zone\blackrock_depths\boss_seethrel.cpp" 2006 > 2007 </File> 2008 <File 2009 RelativePath="..\scripts\zone\blackrock_depths\boss_vilerel.cpp" 2010 > 2011 </File> 2012 </Filter> 2013 <Filter 2014 Name="Loch Modan" 2015 > 2016 <File 2017 RelativePath="..\scripts\zone\loch_modan\loch_modan.cpp" 2018 > 1531 2019 </File> 1532 2020 </Filter> … … 1534 2022 </Filter> 1535 2023 <Filter 1536 Name="Include"> 2024 Name="Include" 2025 > 1537 2026 <File 1538 RelativePath="..\include\precompiled.cpp"> 2027 RelativePath="..\include\precompiled.cpp" 2028 > 1539 2029 <FileConfiguration 1540 Name="Debug|Win32"> 2030 Name="Debug|Win32" 2031 > 1541 2032 <Tool 1542 2033 Name="VCCLCompilerTool" 1543 UsePrecompiledHeader="1"/> 2034 UsePrecompiledHeader="1" 2035 /> 1544 2036 </FileConfiguration> 1545 2037 <FileConfiguration 1546 Name="Release|Win32"> 2038 Name="Debug|x64" 2039 > 1547 2040 <Tool 1548 2041 Name="VCCLCompilerTool" 1549 UsePrecompiledHeader="1"/> 2042 UsePrecompiledHeader="1" 2043 /> 2044 </FileConfiguration> 2045 <FileConfiguration 2046 Name="Release|Win32" 2047 > 2048 <Tool 2049 Name="VCCLCompilerTool" 2050 UsePrecompiledHeader="1" 2051 /> 2052 </FileConfiguration> 2053 <FileConfiguration 2054 Name="Release|x64" 2055 > 2056 <Tool 2057 Name="VCCLCompilerTool" 2058 UsePrecompiledHeader="1" 2059 /> 1550 2060 </FileConfiguration> 1551 2061 </File> 1552 2062 <File 1553 RelativePath="..\include\precompiled.h"> 2063 RelativePath="..\include\precompiled.h" 2064 > 1554 2065 </File> 1555 2066 <File 1556 RelativePath="..\include\sc_creature.cpp"> 2067 RelativePath="..\include\sc_creature.cpp" 2068 > 1557 2069 </File> 1558 2070 <File 1559 RelativePath="..\include\sc_creature.h"> 2071 RelativePath="..\include\sc_creature.h" 2072 > 1560 2073 </File> 1561 2074 <File 1562 RelativePath="..\include\sc_gossip.h"> 2075 RelativePath="..\include\sc_gossip.h" 2076 > 1563 2077 </File> 1564 2078 <File 1565 RelativePath="..\include\sc_instance.h"> 2079 RelativePath="..\include\sc_instance.h" 2080 > 1566 2081 </File> 1567 2082 <File 1568 RelativePath="..\include\sc_item.h"> 2083 RelativePath="..\include\sc_item.h" 2084 > 1569 2085 </File> 1570 2086 </Filter> 1571 2087 <File 1572 RelativePath="..\config.h"> 2088 RelativePath="..\config.h" 2089 > 1573 2090 </File> 1574 2091 <File 1575 RelativePath="..\ScriptMgr.cpp"> 2092 RelativePath="..\ScriptMgr.cpp" 2093 > 1576 2094 </File> 1577 2095 <File 1578 RelativePath="..\ScriptMgr.h"> 2096 RelativePath="..\ScriptMgr.h" 2097 > 1579 2098 </File> 1580 2099 <File 1581 RelativePath="..\svn_revision.h"> 2100 RelativePath="..\svn_revision.h" 2101 > 1582 2102 </File> 1583 2103 <File 1584 RelativePath="..\system.cpp"> 2104 RelativePath="..\system.cpp" 2105 > 1585 2106 </File> 1586 2107 </Files> -
trunk/src/bindings/scripts/VC80/80ScriptDev2.vcproj
r43 r53 2080 2080 > 2081 2081 <File 2082 RelativePath="..\scripts\zone\zulaman\boss_akilzon.cpp" 2083 > 2084 </File> 2085 <File 2086 RelativePath="..\scripts\zone\zulaman\boss_halazzi.cpp" 2087 > 2088 </File> 2089 <File 2090 RelativePath="..\scripts\zone\zulaman\boss_hexlord.cpp" 2091 > 2092 </File> 2093 <File 2082 2094 RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp" 2083 2095 > … … 2085 2097 <File 2086 2098 RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp" 2099 > 2100 </File> 2101 <File 2102 RelativePath="..\scripts\zone\zulaman\boss_zuljin.cpp" 2087 2103 > 2088 2104 </File> -
trunk/src/bindings/scripts/VC90/90ScriptDev2.vcproj
r43 r53 2078 2078 > 2079 2079 <File 2080 RelativePath="..\scripts\zone\zulaman\boss_akilzon.cpp" 2081 > 2082 </File> 2083 <File 2084 RelativePath="..\scripts\zone\zulaman\boss_halazzi.cpp" 2085 > 2086 </File> 2087 <File 2088 RelativePath="..\scripts\zone\zulaman\boss_hexlord.cpp" 2089 > 2090 </File> 2091 <File 2080 2092 RelativePath="..\scripts\zone\zulaman\boss_janalai.cpp" 2081 2093 > … … 2083 2095 <File 2084 2096 RelativePath="..\scripts\zone\zulaman\boss_nalorakk.cpp" 2097 > 2098 </File> 2099 <File 2100 RelativePath="..\scripts\zone\zulaman\boss_zuljin.cpp" 2085 2101 > 2086 2102 </File> -
trunk/src/bindings/scripts/scripts/zone/zulaman/boss_janalai.cpp
r48 r53 1 /* Copyright 2 3 4 5 *(at your option) any later version.6 7 8 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the10 11 12 13 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307USA15 1 /* Copyright(C) 2006,2007 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> 2 * This program is free software; you can redistribute it and/or modify 3 * it under the terms of the GNU General Public License as published by 4 * the Free Software Foundation; either version 2 of the License, or 5 *(at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 15 */ 16 16 17 17 /* ScriptData 18 18 SDName: Boss_Janalai 19 19 SD%Complete: 100 20 SDComment: 20 SDComment: 21 21 SDCategory: Zul'Aman 22 22 EndScriptData */ … … 24 24 #include "precompiled.h" 25 25 #include "def_zulaman.h" 26 #include "GridNotifiers.h" 26 27 27 28 // Jan'alai … … 30 31 #define SPELL_FIRE_WALL 43113 31 32 #define SPELL_ENRAGE 44779 32 #define SPELL_TELETOCENTER 43098 33 #define SPELL_SUMMONALL 43097 34 #define SPELL_BERSERK 47008 33 #define SPELL_SUMMON_PLAYERS 43097 34 #define SPELL_TELE_TO_CENTER 43098 // coord 35 #define SPELL_HATCH_ALL 43144 36 #define SPELL_BERSERK 45078 35 37 // -- Fire Bob Spells 36 #define MOB_FIRE_BOMB 23920 37 #define SPELL_FIRE_BOMB_CHANNEL 42621 38 #define SPELL_FIRE_BOMB_THROW 42628 39 #define SPELL_FIRE_BOMB_DUMMY 42629 40 #define SPELL_FIRE_BOMB_DAMAGE 42630 38 #define SPELL_FIRE_BOMB_CHANNEL 42621 // last forever 39 #define SPELL_FIRE_BOMB_THROW 42628 // throw visual 40 #define SPELL_FIRE_BOMB_DUMMY 42629 // bomb visual 41 #define SPELL_FIRE_BOMB_DAMAGE 42630 41 42 42 43 // -- SAYs 43 #define SOUND_AGGRO 12031 44 #define SOUND_AGGRO 12031 44 45 #define SAY_AGGRO "Spirits of da wind be your doom!" 45 46 #define SOUND_FIRE_BOMBS 12032 46 47 #define SAY_FIRE_BOMBS "I burn ya now!" 47 48 #define SOUND_SUMMON_HATCHER 12033 48 #define SAY_SUMMON_HATCHER "Where ma hatcha? Get to work on dem eggs!"49 #define SAY_SUMMON_HATCHER "Where ma hatcha? Get to work on dem templist!" 49 50 #define SOUND_ALL_EGGS 12034 50 51 #define SAY_ALL_EGGS "I show you strength... in numbers." … … 60 61 #define SAY_DEATH "Zul'jin... got a surprise for you..." 61 62 62 #define SOUND_AGGRO_1 12039 //NOT USED need more information 63 //NOT USED need more information (random say before aggro?) 64 #define SAY_AGGRO_1 "Come, strangers. The spirit of the dragonhawk hot be hungry for worthy souls." 65 #define SOUND_AGGRO_2 12040 //NOT USED need more information 66 //NOT USED need more information (random say before aggro?) 67 #define SAY_AGGRO_2 "Come, friends. Your bodies gonna feed ma hatchlings, and your souls are going to feed me with power!" 63 #define SOUND_AGGRO_1 12039 //NOT USED need more information 64 #define SAY_AGGRO_1 "Come, strangers. The spirit of the dragonhawk hot be hungry for worthy souls." //NOT USED need more information(random say before aggro?) 65 #define SOUND_AGGRO_2 12040 //NOT USED need more information 66 #define SAY_AGGRO_2 "Come, friends. Your bodies gonna feed ma HatchNum, and your souls are going to feed me with power!" //NOT USED need more information(random say before aggro?) 68 67 69 68 // --Summons 70 69 #define MOB_AMANI_HATCHER 23818 71 #define MOB_HATCHLING 23598 70 #define MOB_HATCHLING 23598 // 42493 71 #define MOB_EGG 23817 72 #define MOB_FIRE_BOMB 23920 72 73 73 74 // -- Hatcher Spells 74 #define SPELL_HATCH_EGG 43734 75 #define SPELL_HATCH_EGG 43734 // 42471 75 76 76 77 // -- Hatchling Spells 77 #define SPELL_FLAMEBUFFE D4329978 #define SPELL_FLAMEBUFFET 43299 78 79 79 80 const int area_dx = 44; 80 81 const int area_dy = 51; 81 82 82 float JanalainPos[1][3] = 83 float JanalainPos[1][3] = 83 84 { 84 85 {-33.93, 1149.27, 19} 85 86 }; 86 87 87 float FireWallCoords[4][4] = 88 float FireWallCoords[4][4] = 88 89 { 89 90 {-10.13, 1149.27, 19, 3.1415}, … … 93 94 }; 94 95 95 float hatcherway_l[5][3] = 96 { 97 {-87.46,1170.09,6}, 98 {-74.41,1154.75,6}, 99 {-52.74,1153.32,19}, 100 {-33.37,1172.46,19}, 101 {-33.09,1203.87,19} 96 float hatcherway[2][5][3] = 97 { 98 { 99 {-87.46,1170.09,6}, 100 {-74.41,1154.75,6}, 101 {-52.74,1153.32,19}, 102 {-33.37,1172.46,19}, 103 {-33.09,1203.87,19} 104 }, 105 { 106 {-86.57,1132.85,6}, 107 {-73.94,1146.00,6}, 108 {-52.29,1146.51,19}, 109 {-33.57,1125.72,19}, 110 {-34.29,1095.22,19} 111 } 102 112 }; 103 113 104 float hatcherway_r[5][3] =105 {106 {-86.57,1132.85,6},107 {-73.94,1146.00,6},108 {-52.29,1146.51,19},109 {-33.57,1125.72,19},110 {-34.29,1095.22,19}111 };112 113 114 struct TRINITY_DLL_DECL boss_janalaiAI : public ScriptedAI 114 115 { 115 116 boss_janalaiAI(Creature *c) : ScriptedAI(c) 116 { 117 pInstance = 117 { 118 pInstance =((ScriptedInstance*)c->GetInstanceData()); 118 119 Reset(); 119 120 } … … 121 122 ScriptedInstance *pInstance; 122 123 123 uint32 fire_breath_timer; 124 uint32 bomb_timer; 125 uint32 throw_timer; 126 uint32 enrage_timer; 127 uint32 finishedbomb_timer; 128 uint32 bombcounter; 129 uint32 hatchertime; 130 uint32 eggs; 131 uint32 wipetimer; 132 uint32 reset_timer; 124 uint32 FireBreathTimer; 125 uint32 BombTimer; 126 uint32 BombSequenceTimer; 127 uint32 BombCount; 128 uint32 HatcherTimer; 129 uint32 EnrageTimer; 130 uint32 ResetTimer; 131 133 132 bool noeggs; 134 133 bool enraged; 135 bool enragetime; 136 137 uint64 FireBombGUIDs[40]; 138 uint64 ThrowControllerGUID; 139 140 bool bombing; 134 bool isBombing; 135 136 bool isFlameBreathing; 137 138 uint64 FireBombGUIDs[40]; 141 139 142 140 void Reset() … … 145 143 pInstance->SetData(DATA_JANALAIEVENT, NOT_STARTED); 146 144 147 fire_breath_timer = 8000; 148 bomb_timer = 30000; 149 enrage_timer = 300000; // 5 minutes 150 finishedbomb_timer = 6000; 151 throw_timer = 1000; 152 bombcounter = 0; 145 FireBreathTimer = 8000; 146 BombTimer = 30000; 147 BombSequenceTimer = 1000; 148 BombCount = 0; 149 HatcherTimer = 10000; 150 EnrageTimer = 300000; 151 ResetTimer = 5000; 152 153 153 noeggs = false; 154 hatchertime = 10000; 155 wipetimer = 600000; // 10 mins 156 bombing =false; 157 reset_timer = 5000; 154 isBombing =false; 158 155 enraged = false; 159 enragetime = false; 160 161 ThrowControllerGUID = 0; 156 157 isFlameBreathing = false; 162 158 163 159 for(uint8 i = 0; i < 40; i++) 164 160 FireBombGUIDs[i] = 0; 161 162 HatchAllEggs(1); 165 163 } 166 164 … … 177 175 { 178 176 switch(rand()%2) 179 { 180 181 182 183 184 185 186 187 break;177 { 178 case 0: 179 DoYell(SAY_SLAY_1, LANG_UNIVERSAL, NULL); 180 DoPlaySoundToSet(m_creature,SOUND_SLAY_1); 181 break; 182 case 1: 183 DoYell(SAY_SLAY_2, LANG_UNIVERSAL, NULL); 184 DoPlaySoundToSet(m_creature,SOUND_SLAY_1); 185 break; 188 186 } 189 187 } … … 196 194 DoYell(SAY_AGGRO, LANG_UNIVERSAL, NULL); 197 195 DoPlaySoundToSet(m_creature,SOUND_AGGRO); 198 } 199 200 void FireWall() // Create Firewall 201 { 196 // DoZoneInCombat(); 197 } 198 199 void DamageDeal(Unit* target, uint32 &damage) 200 { 201 if(isFlameBreathing) 202 { 203 if(!m_creature->HasInArc(M_PI/6, target)) 204 damage = 0; 205 } 206 } 207 208 void FireWall() 209 { 210 uint8 WallNum; 202 211 Creature* wall = NULL; 203 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[0][0],FireWallCoords[0][1],FireWallCoords[0][2],FireWallCoords[0][3],TEMPSUMMON_TIMED_DESPAWN,11500); 204 if(wall) 205 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 206 207 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[0][0],FireWallCoords[0][1]+5,FireWallCoords[0][2],FireWallCoords[0][3],TEMPSUMMON_TIMED_DESPAWN,11500); 208 if(wall) 209 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 210 211 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[0][0],FireWallCoords[0][1]-5,FireWallCoords[0][2],FireWallCoords[0][3],TEMPSUMMON_TIMED_DESPAWN,11500); 212 if(wall) 213 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 214 215 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[1][0]-2,FireWallCoords[1][1]-2,FireWallCoords[1][2],FireWallCoords[1][3],TEMPSUMMON_TIMED_DESPAWN,11500); 216 if(wall) 217 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 218 219 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[1][0]+2,FireWallCoords[1][1]+2,FireWallCoords[1][2],FireWallCoords[1][3],TEMPSUMMON_TIMED_DESPAWN,11500); 220 if(wall) 221 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 222 223 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[2][0],FireWallCoords[2][1],FireWallCoords[2][2],FireWallCoords[2][3],TEMPSUMMON_TIMED_DESPAWN,11500); 224 if(wall) 225 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 226 227 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[2][0],FireWallCoords[2][1]-5,FireWallCoords[2][2],FireWallCoords[2][3],TEMPSUMMON_TIMED_DESPAWN,11500); 228 if(wall) 229 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 230 231 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[2][0],FireWallCoords[2][1]+5,FireWallCoords[2][2],FireWallCoords[2][3],TEMPSUMMON_TIMED_DESPAWN,11500); 232 if(wall) 233 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 234 235 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[3][0]-2,FireWallCoords[3][1],FireWallCoords[3][2],FireWallCoords[3][3],TEMPSUMMON_TIMED_DESPAWN,11500); 236 if(wall) 237 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 238 239 wall = m_creature->SummonCreature(MOB_FIRE_BOMB,FireWallCoords[3][0]+2,FireWallCoords[3][1],FireWallCoords[3][2],FireWallCoords[3][3],TEMPSUMMON_TIMED_DESPAWN,11500); 240 if(wall) 241 wall->CastSpell(wall,SPELL_FIRE_WALL,false); 242 } 243 244 void throwBombs() // create Bombs 245 { 246 float dx; 247 float dy; 248 for ( int i(0); i < 40; i++) 249 { 250 dx = (rand()%(area_dx))-(area_dx/2); 251 dy = (rand()%(area_dy))-(area_dy/2); 252 253 Creature* bomb = DoSpawnCreature(MOB_FIRE_BOMB, dx, dy, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 13000); 254 if(bomb) 255 FireBombGUIDs[i] = bomb->GetGUID(); 256 } 257 258 Creature* ThrowController = DoSpawnCreature(MOB_FIRE_BOMB,0,0,1,0,TEMPSUMMON_TIMED_DESPAWN,10000); 259 if(ThrowController) 260 ThrowControllerGUID = ThrowController->GetGUID(); 261 262 bombcounter = 0; 263 } 264 265 void throw5Bombs() //throwanimation 266 { 267 for ( int i(0); i < 5; i++) 268 { 269 Unit* ThrowController = NULL; 270 Unit* FireBomb = NULL; 271 if(ThrowControllerGUID) 272 ThrowController = Unit::GetUnit((*m_creature), ThrowControllerGUID); 273 274 if(FireBombGUIDs[bombcounter]) 275 FireBomb = Unit::GetUnit((*m_creature), FireBombGUIDs[bombcounter]); 276 277 if(ThrowController && FireBomb) 278 { 279 ThrowController->CastSpell(FireBomb,SPELL_FIRE_BOMB_THROW,true); 280 FireBomb->CastSpell(FireBomb,SPELL_FIRE_BOMB_DUMMY,false); 281 bombcounter ++; 282 } 212 for(uint8 i = 0; i < 4; i++) 213 { 214 if(i == 0 || i == 2) 215 WallNum = 3; 216 else 217 WallNum = 2; 218 219 for(uint8 j = 0; j < WallNum; j++) 220 { 221 if(WallNum == 3) 222 wall = m_creature->SummonCreature(MOB_FIRE_BOMB, FireWallCoords[i][0],FireWallCoords[i][1]+5*(j-1),FireWallCoords[i][2],FireWallCoords[i][3],TEMPSUMMON_TIMED_DESPAWN,15000); 223 else 224 wall = m_creature->SummonCreature(MOB_FIRE_BOMB, FireWallCoords[i][0]-2+4*j,FireWallCoords[i][1],FireWallCoords[i][2],FireWallCoords[i][3],TEMPSUMMON_TIMED_DESPAWN,15000); 225 if(wall) wall->CastSpell(wall, SPELL_FIRE_WALL, true); 226 } 227 } 228 } 229 230 void SpawnBombs() 231 { 232 float dx, dy; 233 for( int i(0); i < 40; i++) 234 { 235 dx =(rand()%(area_dx))-(area_dx/2); 236 dy =(rand()%(area_dy))-(area_dy/2); 237 238 Creature* bomb = DoSpawnCreature(MOB_FIRE_BOMB, dx, dy, 0, 0, TEMPSUMMON_TIMED_DESPAWN, 15000); 239 if(bomb) FireBombGUIDs[i] = bomb->GetGUID(); 240 } 241 BombCount = 0; 242 } 243 244 bool HatchAllEggs(uint32 action) //1: reset, 2: isHatching all 245 { 246 std::list<Creature*> templist; 247 float x, y, z; 248 m_creature->GetPosition(x, y, z); 249 250 { 251 CellPair pair(Trinity::ComputeCellPair(x, y)); 252 Cell cell(pair); 253 cell.data.Part.reserved = ALL_DISTRICT; 254 cell.SetNoCreate(); 255 256 Trinity::AllCreaturesOfEntryInRange check(m_creature, MOB_EGG, 100); 257 Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(templist, check); 258 259 TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); 260 261 CellLock<GridReadGuard> cell_lock(cell, pair); 262 cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap())); 263 } 264 265 //error_log("Eggs %d at middle", templist.size()); 266 if(!templist.size()) 267 return false; 268 269 for(std::list<Creature*>::iterator i = templist.begin(); i != templist.end(); ++i) 270 { 271 if(action == 1) 272 (*i)->SetDisplayId(10056); 273 else if(action == 2 &&(*i)->GetDisplayId() != 11686) 274 (*i)->CastSpell(*i, SPELL_HATCH_EGG, false); 275 } 276 return true; 277 } 278 279 void Boom() 280 { 281 std::list<Creature*> templist; 282 float x, y, z; 283 m_creature->GetPosition(x, y, z); 284 285 { 286 CellPair pair(Trinity::ComputeCellPair(x, y)); 287 Cell cell(pair); 288 cell.data.Part.reserved = ALL_DISTRICT; 289 cell.SetNoCreate(); 290 291 Trinity::AllCreaturesOfEntryInRange check(m_creature, MOB_FIRE_BOMB, 100); 292 Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(templist, check); 293 294 TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); 295 296 CellLock<GridReadGuard> cell_lock(cell, pair); 297 cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap())); 298 } 299 for(std::list<Creature*>::iterator i = templist.begin(); i != templist.end(); ++i) 300 { 301 (*i)->CastSpell(*i, SPELL_FIRE_BOMB_DAMAGE, true); 302 (*i)->RemoveAllAuras(); 303 } 304 } 305 306 void HandleBombSequence() 307 { 308 if(BombCount < 40) 309 { 310 if(Unit *FireBomb = Unit::GetUnit((*m_creature), FireBombGUIDs[BombCount])) 311 { 312 FireBomb->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); 313 DoCast(FireBomb, SPELL_FIRE_BOMB_THROW, true); 314 FireBomb->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); 315 } 316 BombCount++; 317 if(BombCount == 40) 318 { 319 BombSequenceTimer = 5000; 320 }else BombSequenceTimer = 100; 321 } 322 else 323 { 324 Boom(); 325 isBombing = false; 326 BombTimer = 20000+rand()%20000; 327 m_creature->RemoveAurasDueToSpell(SPELL_FIRE_BOMB_CHANNEL); 328 if(EnrageTimer <= 10000) 329 EnrageTimer = 0; 330 else 331 EnrageTimer -= 10000; 283 332 } 284 333 } … … 286 335 void UpdateAI(const uint32 diff) 287 336 { 288 if (!m_creature->SelectHostilTarget() || !m_creature->getVictim()) 337 if(isFlameBreathing) 338 { 339 if(!m_creature->IsNonMeleeSpellCasted(false)) 340 { 341 isFlameBreathing = false; 342 }else return; 343 } 344 345 if(isBombing) 346 { 347 if(BombSequenceTimer < diff) 348 { 349 HandleBombSequence(); 350 }else BombSequenceTimer -= diff; 289 351 return; 290 291 if(!bombing) // every Spell if NOT Bombing 292 { 293 //FIRE BREATH several videos says every 8Secounds 294 if(fire_breath_timer < diff) 295 { 296 Unit* target = NULL; 297 target = SelectUnit(SELECT_TARGET_RANDOM,0); 298 if(target) 299 DoCast(target,SPELL_FLAME_BREATH); 300 fire_breath_timer = 8000; 301 }else fire_breath_timer -=diff; 302 303 if(bomb_timer < diff) 304 { 305 FireWall(); 306 bomb_timer = 20000+rand()%20000; 352 } 353 354 if(!m_creature->SelectHostilTarget() && !m_creature->getVictim()) 355 return; 356 357 //enrage if under 25% hp before 5 min. 358 if(!enraged && m_creature->GetHealth() * 4 < m_creature->GetMaxHealth()) 359 EnrageTimer = 0; 360 361 if(EnrageTimer < diff) 362 { 363 if(!enraged) 364 { 365 m_creature->CastSpell(m_creature, SPELL_ENRAGE, true); 366 enraged = true; 367 EnrageTimer = 300000; 368 } 369 else 370 { 371 DoYell(SAY_BERSERK, LANG_UNIVERSAL, NULL); 372 DoPlaySoundToSet(m_creature,SOUND_BERSERK); 373 m_creature->CastSpell(m_creature, SPELL_BERSERK, true); 374 EnrageTimer = 300000; 375 } 376 }else EnrageTimer -= diff; 377 378 if(BombTimer < diff) 379 { 380 DoYell(SAY_FIRE_BOMBS, LANG_UNIVERSAL, NULL); 381 DoPlaySoundToSet(m_creature, SOUND_FIRE_BOMBS); 382 383 m_creature->AttackStop(); 384 m_creature->GetMotionMaster()->Clear(); 385 m_creature->Relocate(JanalainPos[0][0],JanalainPos[0][1],JanalainPos[0][2],0); 386 m_creature->SendMonsterMove(JanalainPos[0][0], JanalainPos[0][1],JanalainPos[0][2],0,0,0); 387 m_creature->StopMoving(); 388 m_creature->CastSpell(m_creature, SPELL_FIRE_BOMB_CHANNEL, false); 389 //DoTeleportPlayer(m_creature, JanalainPos[0][0], JanalainPos[0][1],JanalainPos[0][2], 0); 390 //m_creature->CastSpell(m_creature, SPELL_TELE_TO_CENTER, true); 391 392 FireWall(); 393 SpawnBombs(); 394 isBombing = true; 395 BombSequenceTimer = 100; 396 397 //Teleport every Player into the middle 398 Map *map = m_creature->GetMap(); 399 if(!map->IsDungeon()) return; 400 InstanceMap::PlayerList const &PlayerList =((InstanceMap*)map)->GetPlayers(); 401 for(InstanceMap::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) 402 { 403 if((*i)->isAlive()) 404 DoTeleportPlayer(*i, JanalainPos[0][0]-5+rand()%10, JanalainPos[0][1]-5+rand()%10, JanalainPos[0][2], 0); 405 } 406 //m_creature->CastSpell(Temp, SPELL_SUMMON_PLAYERS, true); // core bug, spell does not work if too far 407 return; 408 }else BombTimer -= diff; 409 410 if(!noeggs) 411 { 412 if(100 * m_creature->GetHealth() < 35 * m_creature->GetMaxHealth()) 413 { 414 m_creature->AttackStop(); 415 m_creature->GetMotionMaster()->Clear(); 307 416 m_creature->Relocate(JanalainPos[0][0],JanalainPos[0][1],JanalainPos[0][2],0); 308 m_creature->SendMonsterMove(JanalainPos[0][0], JanalainPos[0][1],JanalainPos[0][2],0,0,100); 309 DoYell(SAY_FIRE_BOMBS, LANG_UNIVERSAL, NULL); 310 DoPlaySoundToSet(m_creature,SOUND_FIRE_BOMBS); 311 throwBombs(); 312 bombing = true; 313 314 //Teleport every Player into the middle 315 Unit* Temp = NULL; 316 std::list<HostilReference*>::iterator i = m_creature->getThreatManager().getThreatList().begin(); 317 for (; i != m_creature->getThreatManager().getThreatList().end(); ++i) 318 { 319 Temp = Unit::GetUnit((*m_creature),(*i)->getUnitGuid()); 320 if (Temp && m_creature->GetDistance(Temp) > 30.0) 321 DoTeleportPlayer(Temp, m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 0); 322 } 323 DoCast(m_creature,SPELL_TELETOCENTER,true); // only Effect Spell 324 DoCast(m_creature,SPELL_FIRE_BOMB_CHANNEL,false); 325 finishedbomb_timer = 11000; 326 }else bomb_timer -=diff; 327 328 //enrage if under 25% hp before 5 min. 329 if (((m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) < 25) && !enraged) 330 { 331 enragetime = true; 332 enrage_timer = 600000; 333 } 334 335 //Enrage but only if not bombing 336 if(enragetime && !enraged) 337 { 338 DoYell(SAY_BERSERK, LANG_UNIVERSAL, NULL); 339 DoPlaySoundToSet(m_creature,SOUND_BERSERK); 340 m_creature->InterruptNonMeleeSpells(false); 341 DoCast(m_creature,SPELL_ENRAGE); 342 enraged = true; 343 } 344 } 345 346 //Enrage after 5 minutes 347 if(enrage_timer < diff) 348 { 349 enragetime = true; 350 enrage_timer = 600000; 351 }else enrage_timer -=diff; 352 353 if(bombing) // every Spell if Bombing 354 { 355 if(bombcounter < 40) 356 { 357 if(throw_timer < diff) 358 { 359 throw5Bombs(); 360 throw_timer = 1000; 361 }else throw_timer -=diff; 362 } 363 364 if(finishedbomb_timer < diff) 365 { 366 bombing = false; 367 finishedbomb_timer = 6000; 368 m_creature->RemoveAura(SPELL_FIRE_BOMB_CHANNEL,0); 369 m_creature->RemoveAura(SPELL_FIRE_BOMB_CHANNEL,1); 370 }else finishedbomb_timer -=diff; 371 } 372 373 //Call Hatcher 374 if(!noeggs) 375 { 376 if(hatchertime < diff) 377 { 378 if(pInstance->GetData(DATA_J_EGGSLEFT)>0 || pInstance->GetData(DATA_J_EGGSRIGHT) > 0) 379 { 380 Unit* hatcher = NULL; 417 m_creature->SendMonsterMove(JanalainPos[0][0], JanalainPos[0][1],JanalainPos[0][2],0,0,0); 418 m_creature->StopMoving(); 419 m_creature->CastSpell(m_creature, SPELL_HATCH_ALL, false); 420 HatchAllEggs(2); 421 noeggs = true; 422 } 423 else if(HatcherTimer < diff) 424 { 425 if(HatchAllEggs(0)) 426 { 381 427 DoYell(SAY_SUMMON_HATCHER, LANG_UNIVERSAL, NULL); 382 428 DoPlaySoundToSet(m_creature,SOUND_SUMMON_HATCHER); 383 hatcher = m_creature->SummonCreature(MOB_AMANI_HATCHER,hatcherway_l[0][0],hatcherway_l[0][1],hatcherway_l[0][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,10000); 384 if(hatcher) 385 hatcher->GetMotionMaster()->MovePoint(0, hatcherway_l[0][0], hatcherway_l[0][1], hatcherway_l[0][2]); 386 387 hatcher = m_creature->SummonCreature(MOB_AMANI_HATCHER,hatcherway_r[0][0],hatcherway_r[0][1],hatcherway_r[0][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,10000); 388 if(hatcher) 389 hatcher->GetMotionMaster()->MovePoint(0, hatcherway_r[0][0],hatcherway_r[0][1],hatcherway_r[0][2]); 390 hatchertime = 45000; 429 m_creature->SummonCreature(MOB_AMANI_HATCHER,hatcherway[0][0][0],hatcherway[0][0][1],hatcherway[0][0][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,10000); 430 m_creature->SummonCreature(MOB_AMANI_HATCHER,hatcherway[1][0][0],hatcherway[1][0][1],hatcherway[1][0][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,10000); 431 HatcherTimer = 90000; 432 } 433 else 434 noeggs = true; 435 }else HatcherTimer -= diff; 436 } 437 438 if(ResetTimer < diff) 439 { 440 /*float x, y, z; 441 m_creature->GetPosition(x, y, z); 442 if(x < -70 || x > 0 || y > 1176 || y < 1121 || z < 18) 443 EnterEvadeMode();*/ 444 ResetTimer = 5000; 445 }else ResetTimer -= diff; 446 447 DoMeleeAttackIfReady(); 448 449 if(FireBreathTimer < diff) 450 { 451 if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM,0)) 452 { 453 m_creature->AttackStop(); 454 m_creature->GetMotionMaster()->Clear(); 455 m_creature->CastSpell(target, SPELL_FLAME_BREATH, false); 456 m_creature->StopMoving(); 457 isFlameBreathing = true; 458 } 459 FireBreathTimer = 8000; 460 }else FireBreathTimer -= diff; 461 } 462 }; 463 464 CreatureAI* GetAI_boss_janalaiAI(Creature *_Creature) 465 { 466 return new boss_janalaiAI(_Creature); 467 } 468 469 struct TRINITY_DLL_DECL mob_jandalai_firebombAI : public ScriptedAI 470 { 471 mob_jandalai_firebombAI(Creature *c) : ScriptedAI(c){Reset();} 472 473 void Reset() {} 474 475 void SpellHit(Unit *caster, const SpellEntry *spell) 476 { 477 if(spell->Id == SPELL_FIRE_BOMB_THROW) 478 m_creature->CastSpell(m_creature, SPELL_FIRE_BOMB_DUMMY, true); 479 } 480 481 void Aggro(Unit* who) {} 482 483 void AttackStart(Unit* who) {} 484 485 void MoveInLineOfSight(Unit* who) {} 486 487 void UpdateAI(const uint32 diff) {} 488 }; 489 490 CreatureAI* GetAI_mob_jandalai_firebombAI(Creature *_Creature) 491 { 492 return new mob_jandalai_firebombAI(_Creature); 493 } 494 495 struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI 496 { 497 mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c) 498 { 499 pInstance =((ScriptedInstance*)c->GetInstanceData()); 500 Reset(); 501 } 502 503 ScriptedInstance *pInstance; 504 505 uint32 waypoint; 506 uint32 HatchNum; 507 uint32 WaitTimer; 508 509 bool side; 510 bool hasChangedSide; 511 bool isHatching; 512 513 void Reset() 514 { 515 side =(m_creature->GetPositionY() < 1150); 516 waypoint = 0; 517 isHatching = false; 518 hasChangedSide = false; 519 WaitTimer = 1; 520 HatchNum = 0; 521 } 522 523 bool HatchEggs(uint32 num) 524 { 525 std::list<Creature*> templist; 526 float x, y, z; 527 m_creature->GetPosition(x, y, z); 528 529 { 530 CellPair pair(Trinity::ComputeCellPair(x, y)); 531 Cell cell(pair); 532 cell.data.Part.reserved = ALL_DISTRICT; 533 cell.SetNoCreate(); 534 535 Trinity::AllCreaturesOfEntryInRange check(m_creature, 23817, 50); 536 Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(templist, check); 537 538 TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); 539 540 CellLock<GridReadGuard> cell_lock(cell, pair); 541 cell_lock->Visit(cell_lock, cSearcher, *(m_creature->GetMap())); 542 } 543 544 //error_log("Eggs %d at %d", templist.size(), side); 545 546 for(std::list<Creature*>::iterator i = templist.begin(); i != templist.end() && num > 0; ++i) 547 { 548 if((*i)->GetDisplayId() != 11686) 549 { 550 (*i)->CastSpell(*i, SPELL_HATCH_EGG, false); 551 num--; 552 } 553 } 554 555 if(num) 556 return false; // no more templist 557 else 558 return true; 559 } 560 561 void Aggro(Unit* who) {} 562 void AttackStart(Unit*) {} 563 void MoveInLineOfSight(Unit*) {} 564 void MovementInform(uint32, uint32) 565 { 566 if(waypoint == 5) 567 { 568 isHatching = true; 569 HatchNum = 1; 570 WaitTimer = 5000; 571 } 572 else 573 WaitTimer = 1; 574 } 575 576 void UpdateAI(const uint32 diff) 577 { 578 if(!pInstance || !(pInstance->GetData(DATA_JANALAIEVENT) == IN_PROGRESS)) 579 { 580 m_creature->SetVisibility(VISIBILITY_OFF); 581 m_creature->setDeathState(JUST_DIED); 582 return; 583 } 584 585 if(!isHatching) 586 { 587 if(WaitTimer) 588 { 589 m_creature->GetMotionMaster()->Clear(); 590 m_creature->GetMotionMaster()->MovePoint(0,hatcherway[side][waypoint][0],hatcherway[side][waypoint][1],hatcherway[side][waypoint][2]); 591 waypoint++; 592 WaitTimer = 0; 593 } 594 } 595 else 596 { 597 if(WaitTimer < diff) 598 { 599 if(HatchEggs(HatchNum)) 600 { 601 HatchNum++; 602 WaitTimer = 10000; 603 } 604 else if(!hasChangedSide) 605 { 606 side = side ? 0 : 1; 607 isHatching = false; 608 waypoint = 3; 609 WaitTimer = 1; 610 hasChangedSide = true; 391 611 } 392 612 else 393 613 { 394 noeggs = true; 614 m_creature->SetVisibility(VISIBILITY_OFF); 615 m_creature->setDeathState(JUST_DIED); 395 616 } 396 }else hatchertime -=diff; 397 } 398 399 //WIPE after 10 minutes 400 if(wipetimer < diff) 401 { 402 DoYell(SAY_BERSERK, LANG_UNIVERSAL, NULL); 403 DoPlaySoundToSet(m_creature,SOUND_BERSERK); 404 DoCast(m_creature,SPELL_ENRAGE); 405 406 wipetimer = 30000; 407 }else wipetimer -=diff; 408 409 //Hatch All 410 if(!noeggs && (m_creature->GetHealth()*100) / m_creature->GetMaxHealth() < 35) 411 { 412 DoYell(SAY_ALL_EGGS , LANG_UNIVERSAL, NULL); 413 DoPlaySoundToSet(m_creature,SOUND_BERSERK); 414 415 if(pInstance) 416 eggs = pInstance->GetData(DATA_J_EGGSLEFT); 417 418 int i; 419 for(i=1;i<=eggs;i=i+1) 420 { 421 int r = (rand()%20 - 10); 422 int s = (rand()%20 - 10); 423 m_creature->SummonCreature(MOB_HATCHLING,JanalainPos[0][0]+s,JanalainPos[0][1]+r,JanalainPos[0][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,15000); 424 425 if(pInstance) 426 pInstance->SetData(DATA_J_HATCHLEFT,1); 427 } 428 429 if(pInstance) 430 eggs = pInstance->GetData(DATA_J_EGGSRIGHT); 431 432 for(i=1;i<=eggs;i=i+1) 433 { 434 int r = (rand()%20 - 10); 435 int s = (rand()%20 - 10); 436 m_creature->SummonCreature(MOB_HATCHLING,JanalainPos[0][0]+s,JanalainPos[0][1]+r,JanalainPos[0][2],0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,15000); 437 if(pInstance) 438 pInstance->SetData(DATA_J_HATCHRIGHT,1); 439 } 440 441 noeggs = true; 442 } 443 444 //check for reset ... exploit preventing ... pulled from his podest 445 if(reset_timer < diff) 446 { 447 if(m_creature->GetPositionX() < -70 || m_creature->GetPositionX() > 0) 448 { 449 EnterEvadeMode(); 450 reset_timer = 5000; //every 5 Seca 451 } 452 }else reset_timer -=diff; 617 }else WaitTimer -= diff; 618 } 619 } 620 }; 621 622 CreatureAI* GetAI_mob_amanishi_hatcherAI(Creature *_Creature) 623 { 624 return new mob_amanishi_hatcherAI(_Creature); 625 } 626 627 struct TRINITY_DLL_DECL mob_hatchlingAI : public ScriptedAI 628 { 629 mob_hatchlingAI(Creature *c) : ScriptedAI(c) 630 { 631 pInstance =((ScriptedInstance*)c->GetInstanceData()); 632 Reset(); 633 } 634 635 ScriptedInstance *pInstance; 636 uint32 BuffetTimer; 637 638 void Reset() 639 { 640 BuffetTimer = 7000; 641 if(m_creature->GetPositionY() > 1150) 642 m_creature->GetMotionMaster()->MovePoint(0, hatcherway[0][3][0]+rand()%4-2,1150+rand()%4-2,hatcherway[0][3][2]); 643 else 644 m_creature->GetMotionMaster()->MovePoint(0,hatcherway[1][3][0]+rand()%4-2,1150+rand()%4-2,hatcherway[1][3][2]); 645 646 m_creature->SetUnitMovementFlags(MOVEMENTFLAG_LEVITATING); 647 } 648 649 void Aggro(Unit *who) {/*DoZoneInCombat();*/} 650 651 void UpdateAI(const uint32 diff) 652 { 653 if(!pInstance || !(pInstance->GetData(DATA_JANALAIEVENT) == IN_PROGRESS)) 654 { 655 m_creature->SetVisibility(VISIBILITY_OFF); 656 m_creature->setDeathState(JUST_DIED); 657 return; 658 } 659 660 if(!m_creature->SelectHostilTarget() || !m_creature->getVictim()) 661 return; 662 663 if(BuffetTimer < diff) 664 { 665 m_creature->CastSpell(m_creature->getVictim(), SPELL_FLAMEBUFFET, false); 666 BuffetTimer = 10000; 667 }else BuffetTimer -= diff; 453 668 454 669 DoMeleeAttackIfReady(); … … 456 671 }; 457 672 458 CreatureAI* GetAI_ boss_janalaiAI(Creature *_Creature)459 { 460 return new boss_janalaiAI(_Creature);673 CreatureAI* GetAI_mob_hatchlingAI(Creature *_Creature) 674 { 675 return new mob_hatchlingAI(_Creature); 461 676 } 462 677 463 struct TRINITY_DLL_DECL mob_jandalai_firebombAI : public ScriptedAI 464 { 465 mob_jandalai_firebombAI(Creature *c) : ScriptedAI(c){Reset();} 466 467 uint32 bomb_timer; 468 469 void Reset() 470 { 471 bomb_timer = 12000; 472 } 473 678 struct TRINITY_DLL_DECL mob_eggAI : public ScriptedAI 679 { 680 mob_eggAI(Creature *c) : ScriptedAI(c){} 681 void Reset() {} 474 682 void Aggro(Unit* who) {} 475 476 683 void AttackStart(Unit* who) {} 477 478 684 void MoveInLineOfSight(Unit* who) {} 479 480 void UpdateAI(const uint32 diff) 481 { 482 if(bomb_timer < diff) //Boom 483 { 484 m_creature->CastSpell(m_creature,SPELL_FIRE_BOMB_DAMAGE,false); 485 bomb_timer = 1800000; 486 }else bomb_timer -=diff; 685 void UpdateAI(const uint32 diff) {} 686 687 void SpellHit(Unit *caster, const SpellEntry *spell) 688 { 689 if(spell->Id == SPELL_HATCH_EGG) 690 { 691 DoSpawnCreature(MOB_HATCHLING, 0, 0, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000); 692 m_creature->SetDisplayId(11686); 693 } 487 694 } 488 695 }; 489 696 490 CreatureAI* GetAI_mob_ jandalai_firebombAI(Creature *_Creature)491 { 492 return new mob_ jandalai_firebombAI(_Creature);697 CreatureAI* GetAI_mob_eggAI(Creature *_Creature) 698 { 699 return new mob_eggAI(_Creature); 493 700 } 494 701 495 struct TRINITY_DLL_DECL mob_amanishi_hatcherAI : public ScriptedAI496 {497 mob_amanishi_hatcherAI(Creature *c) : ScriptedAI(c)498 {499 pInstance = ((ScriptedInstance*)c->GetInstanceData());500 Reset();501 }502 503 ScriptedInstance *pInstance;504 505 uint32 waypoint;506 bool waytype;507 bool start;508 bool hatch;509 bool wait;510 uint32 hatchlings;511 uint32 waittimer;512 uint32 eggs;513 uint32 delete_timer;514 515 void Reset()516 {517 waypoint = 0;518 waytype = 0;519 hatch = false;520 start = false;521 wait = false;522 waittimer = 4000;523 hatchlings = 0;524 eggs = 0;525 delete_timer = 10000;526 527 //m_creature->RemoveAllAuras();528 //m_creature->DeleteThreatList();529 //m_creature->CombatStop();530 //DoGoHome();531 }532 533 void Aggro(Unit* who)534 {535 }536 537 void UpdateAI(const uint32 diff)538 {539 if(pInstance && (pInstance->GetData(DATA_JANALAIEVENT) == 1))540 {541 if(!start && !hatch)542 {543 waytype = ( m_creature->GetPositionY() > 1150);544 waypoint = 1;545 start = true;546 }547 548 if(start && !hatch)549 {550 if(wait)551 {552 if(waittimer < diff)553 {554 wait = false;555 waittimer = 4000;556 waypoint++;557 558 if (waypoint == 5)559 {560 hatch = true;561 waittimer = 0;562 hatchlings = 1;563 }564 }565 else566 {567 waittimer -=diff;568 }569 }570 else571 {572 m_creature->GetMotionMaster()->Clear();573 if(waytype)574 m_creature->GetMotionMaster()->MovePoint(0,hatcherway_l[waypoint][0],hatcherway_l[waypoint][1],hatcherway_l[waypoint][2]);575 else576 m_creature->GetMotionMaster()->MovePoint(0,hatcherway_r[waypoint][0],hatcherway_r[waypoint][1],hatcherway_r[waypoint][2]);577 wait= true;578 }579 }580 581 if(start && hatch)582 {583 if(waittimer < diff)584 {585 if(!pInstance)586 return;587 588 waittimer = 4000;589 Unit* hatchling;590 591 if(waytype)592 {593 eggs = pInstance->GetData(DATA_J_EGGSLEFT);594 595 if(eggs > 0)596 DoCast(m_creature,SPELL_HATCH_EGG);597 598 int i;599 for(i=1;i<=hatchlings;i=i+1)600 {601 eggs = pInstance->GetData(DATA_J_EGGSLEFT);602 if(eggs <= 0)603 {604 if (waytype) waytype = false; else waytype = true;605 waittimer = 15000;606 hatch = false;607 waypoint = 4;608 wait = true;609 i = hatchlings;610 }611 else612 {613 hatchling = DoSpawnCreature(MOB_HATCHLING,rand()%4-2,rand()%4-2,0,0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,15000);614 pInstance->SetData(DATA_J_HATCHLEFT,1);615 }616 }617 618 DoCast(m_creature,SPELL_HATCH_EGG);619 620 if(hatchlings < 5)621 hatchlings++;622 }623 else624 {625 eggs = pInstance->GetData(DATA_J_EGGSRIGHT);626 627 if(eggs > 0)628 DoCast(m_creature,SPELL_HATCH_EGG);629 630 int i;631 for(i=1;i<=hatchlings;i=i+1)632 {633 eggs = pInstance->GetData(DATA_J_EGGSRIGHT);634 if(eggs <= 0)635 {636 if (waytype) waytype = false; else waytype = true;637 waittimer = 15000;638 hatch = false;639 waypoint = 4;640 wait = true;641 i = hatchlings;642 }643 else644 {645 hatchling = DoSpawnCreature(MOB_HATCHLING,rand()%4-2,rand()%4-2,0,0,TEMPSUMMON_CORPSE_TIMED_DESPAWN,15000);646 pInstance->SetData(DATA_J_HATCHRIGHT,1);647 }648 }649 650 DoCast(m_creature,SPELL_HATCH_EGG);651 hatchlings++;652 }653 }else waittimer -=diff;654 }655 }656 else657 {658 if(delete_timer < diff)659 {660 m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);661 delete_timer = 10000;662 }else delete_timer -=diff;663 }664 }665 };666 667 CreatureAI* GetAI_mob_amanishi_hatcherAI(Creature *_Creature)668 {669 return new mob_amanishi_hatcherAI (_Creature);670 }671 672 struct TRINITY_DLL_DECL mob_hatchlingAI : public ScriptedAI673 {674 mob_hatchlingAI(Creature *c) : ScriptedAI(c)675 {676 pInstance = ((ScriptedInstance*)c->GetInstanceData());677 Reset();678 }679 680 ScriptedInstance *pInstance;681 682 uint32 buffer_timer;683 uint32 delete_timer;684 bool start;685 686 void Reset()687 {688 buffer_timer = 7000;689 delete_timer = 10000;690 start = false;691 }692 693 void Aggro(Unit *who)694 {695 }696 697 void UpdateAI(const uint32 diff)698 {699 if(!start)700 {701 if(m_creature->GetPositionY() > 1150)702 m_creature->GetMotionMaster()->MovePoint(0, hatcherway_l[3][0]+rand()%4-2,hatcherway_l[3][1]+rand()%4-2,hatcherway_l[3][2]);703 else704 m_creature->GetMotionMaster()->MovePoint(0,hatcherway_r[3][0]+rand()%4-2,hatcherway_r[3][1]+rand()%4-2,hatcherway_r[3][2]);705 start = true;706 }707 708 if(delete_timer < diff && (pInstance && !(pInstance->GetData(DATA_JANALAIEVENT) == 1)))709 {710 if(!(m_creature->getVictim()))711 m_creature->DealDamage(m_creature, m_creature->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);712 delete_timer = 10000;713 }else delete_timer -=diff;714 715 if (!m_creature->SelectHostilTarget() || !m_creature->getVictim())716 return;717 718 if (buffer_timer < diff)719 {720 Unit* target = NULL;721 target = SelectUnit(SELECT_TARGET_RANDOM,0);722 if(target)723 DoCast(target,SPELL_FLAMEBUFFED);724 725 buffer_timer = 7000;726 }else buffer_timer -=diff;727 728 DoMeleeAttackIfReady();729 }730 };731 732 CreatureAI* GetAI_mob_hatchlingAI(Creature *_Creature)733 {734 return new mob_hatchlingAI (_Creature);735 }736 737 702 void AddSC_boss_janalai() 738 703 { 739 704 Script *newscript; 740 741 705 newscript = new Script; 742 706 newscript->Name="boss_janalai"; 743 707 newscript->GetAI = GetAI_boss_janalaiAI; 744 m_scripts[nrscripts++] = newscript; 708 m_scripts[nrscripts++] = newscript; 745 709 746 710 newscript = new Script; 747 newscript->Name="mob_jan dalai_firebomb";711 newscript->Name="mob_janalai_firebomb"; 748 712 newscript->GetAI = GetAI_mob_jandalai_firebombAI; 749 m_scripts[nrscripts++] = newscript; 713 m_scripts[nrscripts++] = newscript; 750 714 751 715 newscript = new Script; 752 newscript->Name="mob_ amanishi_hatcher";716 newscript->Name="mob_janalai_hatcher"; 753 717 newscript->GetAI = GetAI_mob_amanishi_hatcherAI; 754 m_scripts[nrscripts++] = newscript; 718 m_scripts[nrscripts++] = newscript; 755 719 756 720 newscript = new Script; 757 newscript->Name="mob_ hatchling";721 newscript->Name="mob_janalai_hatchling"; 758 722 newscript->GetAI = GetAI_mob_hatchlingAI; 759 723 m_scripts[nrscripts++] = newscript; 724 725 newscript = new Script; 726 newscript->Name="mob_janalai_egg"; 727 newscript->GetAI = GetAI_mob_eggAI; 728 m_scripts[nrscripts++] = newscript; 760 729 } -
trunk/src/bindings/scripts/scripts/zone/zulaman/boss_nalorakk.cpp
r48 r53 1 1 /* Copyright (C) 2006,2007 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> 2 3 4 5 6 7 8 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the10 11 12 13 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307USA15 2 * This program is free software; you can redistribute it and/or modify 3 * it under the terms of the GNU General Public License as published by 4 * the Free Software Foundation; either version 2 of the License, or 5 * (at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 15 */ 16 16 17 17 /* ScriptData … … 23 23 24 24 #include "precompiled.h" 25 #include "def_zulaman.h" 25 26 26 27 //TODO: Trash Waves … … 36 37 #define SOUND_NALORAKK_EVENT2 12079 37 38 */ 39 38 40 39 41 //General defines … … 46 48 #define YELL_DEATH "I... be waitin' on da udda side...." 47 49 #define SOUND_YELL_DEATH 12077 48 //Never seen this being used, so just guessing from what I hear. 49 #define YELL_BERSERK "You had your chance, now it be too late!" 50 #define YELL_BERSERK "You had your chance, now it be too late!" //Never seen this being used, so just guessing from what I hear. 50 51 #define SOUND_YELL_BERSERK 12074 51 52 52 #define SPELL_BERSERK 45078 //unsure, this increases damage, size and speed53 #define SPELL_BERSERK 45078 53 54 54 55 //Defines for Troll form 55 56 #define SPELL_BRUTALSWIPE 42384 56 //#define SPELL_MANGLE 42389 This doesn't seem to apply the mangle debuff after all 57 #define SPELL_MANGLE 42389 57 58 #define SPELL_MANGLEEFFECT 44955 58 59 #define SPELL_SURGE 42402 … … 73 74 #define SOUND_YELL_TOBEAR 12072 74 75 76 75 77 struct TRINITY_DLL_DECL boss_nalorakkAI : public ScriptedAI 76 78 { 77 boss_nalorakkAI(Creature *c) : ScriptedAI(c) {Reset();} 78 79 uint32 ChangeForm_Timer; 79 boss_nalorakkAI(Creature *c) : ScriptedAI(c) { 80 pInstance = ((ScriptedInstance*)c->GetInstanceData()); 81 Reset(); 82 } 83 84 ScriptedInstance *pInstance; 85 80 86 uint32 BrutalSwipe_Timer; 81 87 uint32 Mangle_Timer; 82 88 uint32 Surge_Timer; 89 83 90 uint32 LaceratingSlash_Timer; 84 91 uint32 RendFlesh_Timer; 85 92 uint32 DeafeningRoar_Timer; 86 uint32 ShapeShiftCheck_Timer; 93 94 uint32 ShapeShift_Timer; 87 95 uint32 Berserk_Timer; 96 97 uint64 ChargeTargetGUID; 98 uint64 TankGUID; 99 88 100 bool inBearForm; 89 bool Berserking;90 bool ChangedToBear;91 bool ChangedToTroll;92 101 93 102 void Reset() 94 103 { 95 ChangeForm_Timer = 45000; 96 BrutalSwipe_Timer = 12000; 97 Mangle_Timer = 15000; 98 Surge_Timer = 20000; 99 LaceratingSlash_Timer = 6000; 100 RendFlesh_Timer = 6000; 101 DeafeningRoar_Timer = 20000; 102 ShapeShiftCheck_Timer = 40000; 104 if(pInstance) 105 pInstance->SetData(DATA_NALORAKKEVENT, NOT_STARTED); 106 107 Surge_Timer = 15000 + rand()%5000; 108 BrutalSwipe_Timer = 7000 + rand()%5000; 109 Mangle_Timer = 10000 + rand()%5000; 110 ShapeShift_Timer = 45000 + rand()%5000; 103 111 Berserk_Timer = 600000; 112 113 ChargeTargetGUID = 0; 114 TankGUID = 0; 115 104 116 inBearForm = false; 105 Berserking = false; 106 ChangedToBear = false; 107 ChangedToTroll = true; 117 m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY + 1, 5122); 108 118 } 109 119 110 120 void Aggro(Unit *who) 111 121 { 122 if(pInstance) 123 pInstance->SetData(DATA_NALORAKKEVENT, IN_PROGRESS); 124 112 125 DoYell(YELL_AGGRO, LANG_UNIVERSAL, NULL); 113 126 DoPlaySoundToSet(m_creature, SOUND_YELL_AGGRO); 114 } 115 116 void KilledUnit(Unit* victim) 127 // DoZoneInCombat(); 128 } 129 130 void JustDied(Unit* Killer) 131 { 132 if(pInstance) 133 pInstance->SetData(DATA_NALORAKKEVENT, DONE); 134 135 DoYell(YELL_DEATH,LANG_UNIVERSAL,NULL); 136 DoPlaySoundToSet(m_creature, SOUND_YELL_DEATH); 137 } 138 139 void KilledUnit(Unit* victim) 117 140 { 118 141 switch(rand()%2) 119 142 { 120 case 0: 121 DoYell(YELL_KILL_ONE, LANG_UNIVERSAL, NULL); 122 DoPlaySoundToSet(m_creature, SOUND_YELL_KILL_ONE); 123 break; 124 case 1: 125 DoYell(YELL_KILL_TWO, LANG_UNIVERSAL, NULL); 126 DoPlaySoundToSet(m_creature, SOUND_YELL_KILL_TWO); 127 break; 128 } 129 } 130 131 void JustDied(Unit* Killer) 132 { 133 DoYell(YELL_DEATH,LANG_UNIVERSAL,NULL); 134 DoPlaySoundToSet(m_creature, SOUND_YELL_DEATH); 143 case 0: 144 DoYell(YELL_KILL_ONE, LANG_UNIVERSAL, NULL); 145 DoPlaySoundToSet(m_creature, SOUND_YELL_KILL_ONE); 146 break; 147 case 1: 148 DoYell(YELL_KILL_TWO, LANG_UNIVERSAL, NULL); 149 DoPlaySoundToSet(m_creature, SOUND_YELL_KILL_TWO); 150 break; 151 } 152 } 153 154 void MovementInform(uint32, uint32) 155 { 156 if(ChargeTargetGUID) 157 { 158 if(Unit* target = Unit::GetUnit(*m_creature, ChargeTargetGUID)) 159 m_creature->CastSpell(target, SPELL_SURGE, true); 160 ChargeTargetGUID = 0; 161 } 135 162 } 136 163 137 164 void UpdateAI(const uint32 diff) 138 165 { 139 //Return since we have no target 140 if (!m_creature->SelectHostilTarget() || !m_creature->getVictim() ) 166 if(TankGUID) 167 { 168 if(!ChargeTargetGUID) 169 { 170 m_creature->SetSpeed(MOVE_RUN, 1.2f); 171 m_creature->GetMotionMaster()->Clear(); 172 if(Unit* target = Unit::GetUnit(*m_creature, TankGUID)) 173 m_creature->GetMotionMaster()->MoveChase(target); 174 TankGUID = 0; 175 } 141 176 return; 142 143 //Berserking 144 if ((Berserk_Timer < diff) && (!Berserking)) 145 { 146 DoCast(m_creature, SPELL_BERSERK); 177 } 178 179 if(!m_creature->SelectHostilTarget() && !m_creature->getVictim()) 180 return; 181 182 if(Berserk_Timer < diff) 183 { 184 DoCast(m_creature, SPELL_BERSERK, true); 147 185 DoYell(YELL_BERSERK, LANG_UNIVERSAL, NULL); 148 186 DoPlaySoundToSet(m_creature, SOUND_YELL_BERSERK); 149 Berserk ing = true;187 Berserk_Timer = 600000; 150 188 }else Berserk_Timer -= diff; 151 189 152 //Don't check if we're shapeshifted every UpdateAI 153 if (ShapeShiftCheck_Timer < diff) 154 { 155 //This will return true if we have bearform aura 156 inBearForm = m_creature->HasAura(SPELL_BEARFORM, 0); 157 ShapeShiftCheck_Timer = 1000; 158 }else ShapeShiftCheck_Timer -= diff; 159 160 //Spells for Troll Form (only to be casted if we NOT have bear phase aura) 161 if (!inBearForm) 162 { 163 //We just changed to troll form! 164 if (!ChangedToTroll) 165 { 190 if(ShapeShift_Timer < diff) 191 { 192 if(inBearForm) 193 { 194 m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY + 1, 5122); 166 195 DoYell(YELL_SHIFTEDTOTROLL, LANG_UNIVERSAL, NULL); 167 196 DoPlaySoundToSet(m_creature, SOUND_YELL_TOTROLL); 168 ChangedToTroll = true; 169 ChangedToBear = false; 170 //Reset spell timers 171 LaceratingSlash_Timer = 6000 + rand()%19000; 172 RendFlesh_Timer = 6000 + rand()%19000; 173 DeafeningRoar_Timer = 15000 + rand()%10000; 174 ShapeShiftCheck_Timer = 40000; 197 m_creature->RemoveAurasDueToSpell(SPELL_BEARFORM); 198 Surge_Timer = 15000 + rand()%5000; 199 BrutalSwipe_Timer = 7000 + rand()%5000; 200 Mangle_Timer = 10000 + rand()%5000; 201 ShapeShift_Timer = 45000 + rand()%5000; 202 inBearForm = false; 175 203 } 176 177 //Brutal Swipe (some sources may say otherwise, but I've never seen this in Bear form) 178 if (BrutalSwipe_Timer < diff) 204 else 205 { 206 m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY + 1, 0); 207 DoYell(YELL_SHIFTEDTOBEAR, LANG_UNIVERSAL, NULL); 208 DoPlaySoundToSet(m_creature, SOUND_YELL_TOBEAR); 209 DoCast(m_creature, SPELL_BEARFORM, true); 210 LaceratingSlash_Timer = 2000; // dur 18s 211 RendFlesh_Timer = 3000; // dur 5s 212 DeafeningRoar_Timer = 5000 + rand()%5000; // dur 2s 213 ShapeShift_Timer = 20000 + rand()%5000; // dur 30s 214 inBearForm = true; 215 } 216 }else ShapeShift_Timer -= diff; 217 218 if(!inBearForm) 219 { 220 if(BrutalSwipe_Timer < diff) 179 221 { 180 222 DoCast(m_creature->getVictim(), SPELL_BRUTALSWIPE); 181 BrutalSwipe_Timer = 7000 + rand()% 13000;223 BrutalSwipe_Timer = 7000 + rand()%5000; 182 224 }else BrutalSwipe_Timer -= diff; 183 225 184 //Mangle 185 if (Mangle_Timer < diff) 186 { 187 DoCast(m_creature->getVictim(), SPELL_MANGLEEFFECT); 188 Mangle_Timer = 3000 + rand()%17000; 226 if(Mangle_Timer < diff) 227 { 228 if(!m_creature->getVictim()->HasAura(SPELL_MANGLEEFFECT, 0)) 229 { 230 DoCast(m_creature->getVictim(), SPELL_MANGLE); 231 Mangle_Timer = 1000; 232 } 233 else Mangle_Timer = 10000 + rand()%5000; 189 234 }else Mangle_Timer -= diff; 190 235 191 //Surge 192 if (Surge_Timer < diff) 193 { 194 //select a random unit other than the main tank 195 Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 1); 196 197 //if there aren't other units, cast on the tank 198 if(!target) 199 target = m_creature->getVictim(); 200 201 DoCast(target, SPELL_SURGE); 202 236 if(Surge_Timer < diff) 237 { 203 238 DoYell(YELL_SURGE, LANG_UNIVERSAL, NULL); 204 239 DoPlaySoundToSet(m_creature, SOUND_YELL_SURGE); 205 240 206 Surge_Timer = 15000 + rand()%17500; 241 Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 1); 242 if(!target) target = m_creature->getVictim(); 243 TankGUID = m_creature->getVictim()->GetGUID(); 244 ChargeTargetGUID = target->GetGUID(); 245 246 float x, y, z; 247 target->GetContactPoint(m_creature, x, y, z); 248 m_creature->SetSpeed(MOVE_RUN, 5.0f); 249 m_creature->GetMotionMaster()->Clear(); 250 m_creature->GetMotionMaster()->MovePoint(0, x, y, z); 251 252 Surge_Timer = 15000 + rand()%5000; 253 return; 207 254 }else Surge_Timer -= diff; 208 209 //Change to Bear Form if we're in Troll Form for 45sec 210 if (ChangeForm_Timer < diff) 211 { 212 DoCast(m_creature, SPELL_BEARFORM); 213 //And 30sec (bear form) + 45sec (troll form) before we should cast this again 214 ChangeForm_Timer = 75000; 215 }else ChangeForm_Timer -= diff; 216 } 217 //Spells for Bear Form (only to be casted if we have bear phase aura) 218 else 219 { 220 //We just changed to bear form! 221 if (!ChangedToBear) 222 { 223 DoYell(YELL_SHIFTEDTOBEAR, LANG_UNIVERSAL, NULL); 224 DoPlaySoundToSet(m_creature, SOUND_YELL_TOBEAR); 225 ChangedToBear = true; 226 ChangedToTroll = false; 227 //Reset spell timers 228 Surge_Timer = 15000 + rand()%17500; 229 BrutalSwipe_Timer = 7000 + rand()%13000; 230 Mangle_Timer = 3000 + rand()%17000; 231 ShapeShiftCheck_Timer = 25000; 232 } 233 234 //Lacerating Slash 235 if (LaceratingSlash_Timer < diff) 236 { 237 DoCast(m_creature->getVictim(), SPELL_LACERATINGSLASH); 238 LaceratingSlash_Timer = 6000 + rand()%19000; 255 } 256 else { 257 if(LaceratingSlash_Timer < diff) 258 { 259 if(!m_creature->getVictim()->HasAura(SPELL_MANGLEEFFECT, 0)) 260 DoCast(m_creature->getVictim(), SPELL_LACERATINGSLASH); 261 else 262 { 263 int32 bp0 = 3470; 264 m_creature->CastCustomSpell(m_creature->getVictim(), SPELL_LACERATINGSLASH, &bp0, NULL, NULL, false); 265 } 266 LaceratingSlash_Timer = 18000 + rand()%5000; 239 267 }else LaceratingSlash_Timer -= diff; 240 268 241 //Rend Flesh 242 if (RendFlesh_Timer < diff) 243 { 244 DoCast(m_creature->getVictim(), SPELL_RENDFLESH); 245 RendFlesh_Timer = 6000 + rand()%19000; 269 if(RendFlesh_Timer < diff) 270 { 271 if(!m_creature->getVictim()->HasAura(SPELL_MANGLEEFFECT, 0)) 272 DoCast(m_creature->getVictim(), SPELL_RENDFLESH); 273 else 274 { 275 int32 bp1 = 4670; 276 m_creature->CastCustomSpell(m_creature->getVictim(), SPELL_RENDFLESH, NULL, &bp1, NULL, false); 277 } 278 RendFlesh_Timer = 5000 + rand()%5000; 246 279 }else RendFlesh_Timer -= diff; 247 280 248 //Deafening Roar 249 if (DeafeningRoar_Timer < diff) 281 if(DeafeningRoar_Timer < diff) 250 282 { 251 283 DoCast(m_creature->getVictim(), SPELL_DEAFENINGROAR); 252 DeafeningRoar_Timer = 15000 + rand()% 10000;284 DeafeningRoar_Timer = 15000 + rand()%5000; 253 285 }else DeafeningRoar_Timer -= diff; 254 286 } -
trunk/src/bindings/scripts/scripts/zone/zulaman/def_zulaman.h
r46 r53 1 1 /* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> 2 3 2 * This program is free software licensed under GPL version 2 3 * Please see the included DOCS/LICENSE.TXT for more information */ 4 4 5 5 #ifndef DEF_ZULAMAN_H 6 6 #define DEF_ZULAMAN_H 7 7 8 #define DATA_JANALAI 1 9 #define DATA_JANALAIEVENT 2 10 #define DATA_J_EGGSLEFT 3 11 #define DATA_J_EGGSRIGHT 4 12 #define DATA_J_HATCHLEFT 5 13 #define DATA_J_HATCHRIGHT 6 8 #define DATA_NALORAKKEVENT 1 9 #define DATA_AKILZONEVENT 2 10 #define DATA_JANALAIEVENT 3 11 #define DATA_HALAZZIEVENT 4 12 #define DATA_HEXLORDEVENT 5 13 #define DATA_ZULJINEVENT 6 14 #define DATA_CHESTLOOTED 7 15 #define TYPE_RAND_VENDOR_1 8 16 #define TYPE_RAND_VENDOR_2 9 14 17 15 #define TYPE_RAND_VENDOR_1 716 #define TYPE_RAND_VENDOR_2 817 18 #endif -
trunk/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp
r48 r53 1 1 /* Copyright (C) 2006,2007 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> 2 3 4 5 6 7 8 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the10 11 12 13 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307USA15 2 * This program is free software; you can redistribute it and/or modify 3 * it under the terms of the GNU General Public License as published by 4 * the Free Software Foundation; either version 2 of the License, or 5 * (at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 15 */ 16 16 17 17 /* ScriptData 18 SDName: Instance_Zulaman18 SDName: instance_zulaman 19 19 SD%Complete: 80 20 SDComment: 20 SDComment: 21 21 SDCategory: Zul'Aman 22 22 EndScriptData */ … … 25 25 #include "def_zulaman.h" 26 26 27 #define ENCOUNTERS 127 #define ENCOUNTERS 6 28 28 #define RAND_VENDOR 2 29 29 30 //187021 //Harkor's Satchel 31 //186648 //Tanzar's Trunk 32 //186672 //Ashli's Bag 33 //186667 //Kraz's Package 34 // Chests spawn at bear/eagle/dragonhawk/lynx bosses 35 // The loots depend on how many bosses have been killed, but not the entries of the chests 36 // But we cannot add loots to gameobject, so we have to use the fixed loot_template 37 struct SHostageInfo 38 { 39 uint32 npc, go; 40 float x, y, z, o; 41 }; 42 43 static SHostageInfo HostageInfo[] = 44 { 45 {23790, 186648, -57, 1343, 40.77, 3.2}, // bear 46 {23999, 187021, 400, 1414, 74.36, 3.3}, // eagle 47 {24001, 186672, -35, 1134, 18.71, 1.9}, // dragonhawk 48 {24024, 186667, 413, 1117, 6.32, 3.1} // lynx 49 50 }; 51 30 52 struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance 31 53 { 32 54 instance_zulaman(Map *Map) : ScriptedInstance(Map) {Initialize();}; 33 55 34 uint64 janalai; 35 uint32 janalai_eggs_l; 36 uint32 janalai_eggs_r; 56 uint64 HarkorsSatchelGUID; 57 uint64 TanzarsTrunkGUID; 58 uint64 AshlisBagGUID; 59 uint64 KrazsPackageGUID; 60 61 uint64 HexLordGateGUID; 62 uint64 ZulJinGateGUID; 63 uint64 AkilzonDoorGUID; 64 uint64 ZulJinDoorGUID; 65 uint64 HalazziDoorGUID; 66 67 uint32 QuestTimer; 68 uint16 BossKilled; 69 uint16 QuestMinute; 70 uint16 ChestLooted; 37 71 38 72 uint32 Encounters[ENCOUNTERS]; … … 41 75 void Initialize() 42 76 { 43 janalai = 0; 44 janalai_eggs_l = 20; 45 janalai_eggs_r = 20; 77 HarkorsSatchelGUID = 0; 78 TanzarsTrunkGUID = 0; 79 AshlisBagGUID = 0; 80 KrazsPackageGUID = 0; 81 82 uint64 HexLordGateGUID = 0; 83 uint64 ZulJinGateGUID = 0; 84 uint64 AkilzonDoorGUID = 0; 85 uint64 HalazziDoorGUID = 0; 86 uint64 ZulJinDoorGUID = 0; 87 88 QuestTimer = 0; 89 QuestMinute = 21; 90 BossKilled = 0; 91 ChestLooted = 0; 46 92 47 93 for(uint8 i = 0; i < ENCOUNTERS; i++) … … 51 97 } 52 98 53 bool IsEncounterInProgress() const 99 bool IsEncounterInProgress() const 54 100 { 55 101 for(uint8 i = 0; i < ENCOUNTERS; i++) … … 60 106 61 107 void OnCreatureCreate(Creature *creature, uint32 creature_entry) 62 { 108 { 63 109 switch(creature_entry) 64 110 { 65 case 23578: 66 janalai = creature->GetGUID(); 67 break; 68 } 69 } 70 71 uint64 GetData64(uint32 identifier) 72 { 73 if(identifier == DATA_JANALAI && janalai) 74 return janalai; 75 76 return 0; 111 case 23578://janalai 112 case 23863://zuljin 113 case 24239://hexlord 114 case 23577://halazzi 115 case 23576://nalorakk 116 default: break; 117 } 118 } 119 120 void OnObjectCreate(GameObject *go) 121 { 122 switch(go->GetEntry()) 123 { 124 case 186303: HalazziDoorGUID = go->GetGUID(); break; 125 case 186304: ZulJinGateGUID = go->GetGUID(); break; 126 case 186305: HexLordGateGUID = go->GetGUID(); break; 127 case 186858: AkilzonDoorGUID = go->GetGUID(); break; 128 case 186859: ZulJinDoorGUID = go->GetGUID(); break; 129 130 case 187021: HarkorsSatchelGUID = go->GetGUID(); break; 131 case 186648: TanzarsTrunkGUID = go->GetGUID(); break; 132 case 186672: AshlisBagGUID = go->GetGUID(); break; 133 case 186667: KrazsPackageGUID = go->GetGUID(); break; 134 default: break; 135 136 } 137 CheckInstanceStatus(); 138 } 139 140 void OpenDoor(uint64 DoorGUID, bool open) 141 { 142 if(((InstanceMap*)instance)->GetPlayers().size()) 143 if(Player* first = ((InstanceMap*)instance)->GetPlayers().front()) 144 if(GameObject *Door = GameObject::GetGameObject(*first, DoorGUID)) 145 Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1); 146 } 147 148 void SummonHostage(uint8 num) 149 { 150 if(QuestMinute && ((InstanceMap*)instance)->GetPlayers().size()) 151 if(Player* first = ((InstanceMap*)instance)->GetPlayers().front()) 152 if(Unit* Hostage = first->SummonCreature(HostageInfo[num].npc, HostageInfo[num].x, HostageInfo[num].y, HostageInfo[num].z, HostageInfo[num].o, TEMPSUMMON_DEAD_DESPAWN, 0)) 153 { 154 Hostage->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); 155 Hostage->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); 156 } 157 } 158 159 void CheckInstanceStatus() 160 { 161 if(BossKilled >= 4) 162 OpenDoor(HexLordGateGUID, true); 163 164 if(BossKilled >= 5) 165 OpenDoor(ZulJinGateGUID, true); 166 } 167 168 void UpdateWorldState(uint32 field, uint32 value) 169 { 170 WorldPacket data(SMSG_UPDATE_WORLD_STATE, 8); 171 data << field << value; 172 ((InstanceMap*)instance)->SendToPlayers(&data); 173 } 174 175 const char* Save() 176 { 177 std::ostringstream ss; 178 ss << "S " << BossKilled << " " << ChestLooted << " " << QuestMinute; 179 char* data = new char[ss.str().length()+1]; 180 strcpy(data, ss.str().c_str()); 181 //error_log("SD2: Zul'aman saved, %s.", data); 182 return data; 183 } 184 185 void Load(const char* load) 186 { 187 if(!load) return; 188 std::istringstream ss(load); 189 //error_log("SD2: Zul'aman loaded, %s.", ss.str().c_str()); 190 char dataHead; // S 191 uint16 data1, data2, data3; 192 ss >> dataHead >> data1 >> data2 >> data3; 193 //error_log("SD2: Zul'aman loaded, %d %d %d.", data1, data2, data3); 194 if(dataHead == 'S') 195 { 196 BossKilled = data1; 197 ChestLooted = data2; 198 QuestMinute = data3; 199 }else error_log("SD2: Zul'aman: corrupted save data."); 77 200 } 78 201 … … 81 204 switch(type) 82 205 { 83 case DATA_JANALAIEVENT: 84 if(data == 0) 206 case DATA_NALORAKKEVENT: 207 Encounters[0] = data; 208 if(data == DONE) 209 { 210 if(QuestMinute) 85 211 { 86 janalai_eggs_l = 20;87 janalai_eggs_r = 20;212 QuestMinute += 15; 213 UpdateWorldState(3106, QuestMinute); 88 214 } 89 Encounters[0] = data; 90 break; 91 case DATA_J_HATCHLEFT: 92 janalai_eggs_l -= data; 93 break; 94 case DATA_J_HATCHRIGHT: 95 janalai_eggs_r -= data; 96 break; 97 case TYPE_RAND_VENDOR_1: 98 RandVendor[0] = data; 99 break; 100 case TYPE_RAND_VENDOR_2: 101 RandVendor[1] = data; 102 break; 215 SummonHostage(0); 216 } 217 break; 218 case DATA_AKILZONEVENT: 219 Encounters[1] = data; 220 OpenDoor(AkilzonDoorGUID, data != IN_PROGRESS); 221 if(data == DONE) 222 { 223 if(QuestMinute) 224 { 225 QuestMinute += 10; 226 UpdateWorldState(3106, QuestMinute); 227 } 228 SummonHostage(1); 229 } 230 break; 231 case DATA_JANALAIEVENT: 232 Encounters[2] = data; 233 if(data == DONE) SummonHostage(2); 234 break; 235 case DATA_HALAZZIEVENT: 236 Encounters[3] = data; 237 OpenDoor(HalazziDoorGUID, data != IN_PROGRESS); 238 if(data == DONE) SummonHostage(3); 239 break; 240 case DATA_HEXLORDEVENT: 241 Encounters[4] = data; 242 if(data == IN_PROGRESS) 243 OpenDoor(HexLordGateGUID, false); 244 else if(data == NOT_STARTED) 245 CheckInstanceStatus(); 246 break; 247 case DATA_ZULJINEVENT: 248 Encounters[5] = data; 249 OpenDoor(ZulJinDoorGUID, data != IN_PROGRESS); 250 break; 251 case DATA_CHESTLOOTED: 252 ChestLooted++; 253 SaveToDB(); 254 break; 255 case TYPE_RAND_VENDOR_1: 256 RandVendor[0] = data; 257 break; 258 case TYPE_RAND_VENDOR_2: 259 RandVendor[1] = data; 260 break; 261 } 262 263 if(data == DONE) 264 { 265 BossKilled++; 266 if(QuestMinute && BossKilled >= 4) 267 { 268 QuestMinute = 0; 269 UpdateWorldState(3104, 0); 270 } 271 CheckInstanceStatus(); 272 SaveToDB(); 103 273 } 104 274 } … … 108 278 switch(type) 109 279 { 110 case DATA_JANALAIEVENT: 111 return Encounters[0]; 112 case DATA_J_EGGSLEFT: 113 return janalai_eggs_l; 114 case DATA_J_EGGSRIGHT: 115 return janalai_eggs_r; 116 case TYPE_RAND_VENDOR_1: 117 return RandVendor[0]; 118 case TYPE_RAND_VENDOR_2: 119 return RandVendor[1]; 120 } 121 return 0; 280 case DATA_NALORAKKEVENT: return Encounters[0]; 281 case DATA_AKILZONEVENT: return Encounters[1]; 282 case DATA_JANALAIEVENT: return Encounters[2]; 283 case DATA_HALAZZIEVENT: return Encounters[3]; 284 case DATA_HEXLORDEVENT: return Encounters[4]; 285 case DATA_ZULJINEVENT: return Encounters[5]; 286 case DATA_CHESTLOOTED: return ChestLooted; 287 case TYPE_RAND_VENDOR_1: return RandVendor[0]; 288 case TYPE_RAND_VENDOR_2: return RandVendor[1]; 289 default: return 0; 290 } 291 } 292 293 void Update(uint32 diff) 294 { 295 if(QuestMinute) 296 { 297 if(QuestTimer < diff) 298 { 299 QuestMinute--; 300 SaveToDB(); 301 QuestTimer += 60000; 302 if(QuestMinute) 303 { 304 UpdateWorldState(3104, 1); 305 UpdateWorldState(3106, QuestMinute); 306 }else UpdateWorldState(3104, 0); 307 } 308 QuestTimer -= diff; 309 } 122 310 } 123 311 }; -
trunk/src/bindings/scripts/scripts/zone/zulaman/zulaman.cpp
r48 r53 1 1 /* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> 2 3 4 5 6 7 8 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the10 11 12 13 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307USA15 2 * This program is free software; you can redistribute it and/or modify 3 * it under the terms of the GNU General Public License as published by 4 * the Free Software Foundation; either version 2 of the License, or 5 * (at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 15 */ 16 16 17 17 /* ScriptData … … 40 40 { 41 41 npc_forest_frogAI(Creature* c) : ScriptedAI(c) 42 { 42 { 43 43 pInstance = ((ScriptedInstance*)c->GetInstanceData()); 44 44 Reset(); … … 58 58 switch(rand()%11) 59 59 { 60 case 0: cEntry = 24024; break; 61 case 1: cEntry = 24397; break; 62 case 2: cEntry = 24403; break; 63 case 3: cEntry = 24404; break; 64 case 4: cEntry = 24405; break; 65 case 5: cEntry = 24406; break; 66 case 6: cEntry = 24407; break; 67 case 7: cEntry = 24445; break; 68 case 8: cEntry = 24448; break; 69 case 9: cEntry = 24453; break; 70 case 10: cEntry = 24455; break; 60 case 0: cEntry = 24024; break; //Kraz 61 case 1: cEntry = 24397; break; //Mannuth 62 case 2: cEntry = 24403; break; //Deez 63 case 3: cEntry = 24404; break; //Galathryn 64 case 4: cEntry = 24405; break; //Adarrah 65 case 5: cEntry = 24406; break; //Fudgerick 66 case 6: cEntry = 24407; break; //Darwen 67 case 7: cEntry = 24445; break; //Mitzi 68 case 8: cEntry = 24448; break; //Christian 69 case 9: cEntry = 24453; break; //Brennan 70 case 10: cEntry = 24455; break; //Hollee 71 71 } 72 72 73 73 if( !pInstance->GetData(TYPE_RAND_VENDOR_1) ) 74 if(rand()%10 == 1) cEntry = 24408; 74 if(rand()%10 == 1) cEntry = 24408; //Gunter 75 75 if( !pInstance->GetData(TYPE_RAND_VENDOR_2) ) 76 if(rand()%10 == 1) cEntry = 24409; 76 if(rand()%10 == 1) cEntry = 24409; //Kyren 77 77 78 78 if( cEntry ) m_creature->UpdateEntry(cEntry); … … 98 98 } 99 99 100 /*###### 101 ## npc_zulaman_hostage 102 ######*/ 103 104 #define GOSSIP_HOSTAGE1 "I am glad to help you." 105 106 static uint32 HostageInfo[] = {23790, 23999, 24024, 24001}; 107 108 struct TRINITY_DLL_DECL npc_zulaman_hostageAI : public ScriptedAI 109 { 110 npc_zulaman_hostageAI(Creature *c) : ScriptedAI(c) {IsLoot = false;} 111 bool IsLoot; 112 uint64 PlayerGUID; 113 void Reset() {} 114 void Aggro(Unit *who) {} 115 void JustDied(Unit *) 116 { 117 Player* player = (Player*)Unit::GetUnit(*m_creature, PlayerGUID); 118 if(player) player->SendLoot(m_creature->GetGUID(), LOOT_CORPSE); 119 } 120 void UpdateAI(const uint32 diff) 121 { 122 if(IsLoot) m_creature->CastSpell(m_creature, 7, false); 123 } 124 }; 125 126 bool GossipHello_npc_zulaman_hostage(Player* player, Creature* _Creature) 127 { 128 player->ADD_GOSSIP_ITEM(0, GOSSIP_HOSTAGE1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); 129 player->SEND_GOSSIP_MENU(_Creature->GetNpcTextId(), _Creature->GetGUID()); 130 return true; 131 } 132 133 bool GossipSelect_npc_zulaman_hostage(Player* player, Creature* _Creature, uint32 sender, uint32 action) 134 { 135 if(action == GOSSIP_ACTION_INFO_DEF + 1) 136 player->CLOSE_GOSSIP_MENU(); 137 138 if(!_Creature->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP)) 139 return true; 140 _Creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); 141 142 ScriptedInstance* pInstance = ((ScriptedInstance*)_Creature->GetInstanceData()); 143 if(pInstance) 144 { 145 uint8 progress = pInstance->GetData(DATA_CHESTLOOTED); 146 pInstance->SetData(DATA_CHESTLOOTED, 0); 147 float x, y, z; 148 _Creature->GetPosition(x, y, z); 149 Creature* summon = _Creature->SummonCreature(HostageInfo[progress], x-2, y, z, 0, TEMPSUMMON_DEAD_DESPAWN, 0); 150 if(summon) 151 { 152 ((npc_zulaman_hostageAI*)summon->AI())->PlayerGUID = player->GetGUID(); 153 ((npc_zulaman_hostageAI*)summon->AI())->IsLoot = true; 154 summon->SetDisplayId(10056); 155 summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); 156 summon->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); 157 } 158 } 159 return true; 160 } 161 162 CreatureAI* GetAI_npc_zulaman_hostage(Creature *_Creature) 163 { 164 return new npc_zulaman_hostageAI(_Creature); 165 } 166 100 167 void AddSC_zulaman() 101 168 { … … 106 173 newscript->GetAI = GetAI_npc_forest_frog; 107 174 m_scripts[nrscripts++] = newscript; 175 176 newscript = new Script; 177 newscript->Name = "npc_zulaman_hostage"; 178 newscript->GetAI = GetAI_npc_zulaman_hostage; 179 newscript->pGossipHello = GossipHello_npc_zulaman_hostage; 180 newscript->pGossipSelect = GossipSelect_npc_zulaman_hostage; 181 m_scripts[nrscripts++] = newscript; 108 182 }