Changeset 63
- Timestamp:
- 11/19/08 13:30:46 (17 years ago)
- Location:
- trunk/src
- Files:
-
- 3 added
- 8 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bindings/scripts/Makefile.am
r53 r63 324 324 scripts/zone/stratholme/instance_stratholme.cpp \ 325 325 scripts/zone/stratholme/stratholme.cpp \ 326 scripts/zone/sunwell_plateau/boss_eredar_twins.cpp \ 327 scripts/zone/sunwell_plateau/boss_felmyst.cpp \ 326 328 scripts/zone/sunwell_plateau/boss_brutallus.cpp \ 327 329 scripts/zone/sunwell_plateau/boss_kalecgos.cpp \ -
trunk/src/bindings/scripts/VC71/71ScriptDev2.vcproj
r53 r63 1924 1924 <File 1925 1925 RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp" 1926 > 1927 </File> 1928 <File 1929 RelativePath="..\scripts\zone\sunwell_plateau\boss_eredar_twins.cpp" 1930 > 1931 </File> 1932 <File 1933 RelativePath="..\scripts\zone\sunwell_plateau\boss_felmyst.cpp" 1926 1934 > 1927 1935 </File> -
trunk/src/bindings/scripts/VC80/80ScriptDev2.vcproj
r53 r63 2157 2157 <File 2158 2158 RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp" 2159 > 2160 </File> 2161 <File 2162 RelativePath="..\scripts\zone\sunwell_plateau\boss_eredar_twins.cpp" 2163 > 2164 </File> 2165 <File 2166 RelativePath="..\scripts\zone\sunwell_plateau\boss_felmyst.cpp" 2159 2167 > 2160 2168 </File> -
trunk/src/bindings/scripts/VC90/90ScriptDev2.vcproj
r53 r63 2155 2155 <File 2156 2156 RelativePath="..\scripts\zone\sunwell_plateau\boss_brutallus.cpp" 2157 > 2158 </File> 2159 <File 2160 RelativePath="..\scripts\zone\sunwell_plateau\boss_eredar_twins.cpp" 2161 > 2162 </File> 2163 <File 2164 RelativePath="..\scripts\zone\sunwell_plateau\boss_felmyst.cpp" 2157 2165 > 2158 2166 </File> -
trunk/src/bindings/scripts/scripts/zone/black_temple/boss_warlord_najentus.cpp
r58 r63 169 169 if(TidalShieldTimer < diff) 170 170 { 171 m_creature->InterruptNonMeleeSpells(false); 172 DoCast(m_creature, SPELL_TIDAL_SHIELD, true); 171 m_creature->CastSpell(m_creature, SPELL_TIDAL_SHIELD, true); 173 172 ResetTimer(45000); 174 173 }else TidalShieldTimer -= diff; … … 187 186 for(uint8 i = 0; i < 3; ++i) 188 187 { 189 Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1); 190 if(!target) target = m_creature->getVictim(); 191 m_creature->CastSpell(target, SPELL_NEEDLE_SPINE, true); 192 } 193 m_creature->SetInFront(m_creature->getVictim()); 188 if(Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0)) 189 m_creature->CastSpell(target, SPELL_NEEDLE_SPINE, true); 190 } 194 191 NeedleSpineTimer = 30000; 195 192 }else NeedleSpineTimer -= diff; … … 214 211 Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 1); 215 212 if(!target) target = m_creature->getVictim(); 216 m_creature->CastSpell(target, SPELL_IMPALING_SPINE, true); 217 m_creature->SetInFront(m_creature->getVictim()); 218 SpineTargetGUID = target->GetGUID(); 219 //must let target summon, otherwise you cannot click the spine 220 target->SummonGameObject(GOBJECT_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), m_creature->GetOrientation(), 0, 0, 0, 0, 30); 221 222 switch(rand()%2) 223 { 224 case 0: 225 DoYell(SAY_NEEDLE1, LANG_UNIVERSAL, NULL); 226 DoPlaySoundToSet(m_creature, SOUND_NEEDLE1); 227 break; 228 case 1: 229 DoYell(SAY_NEEDLE2, LANG_UNIVERSAL, NULL); 230 DoPlaySoundToSet(m_creature, SOUND_NEEDLE2); 231 break; 232 } 233 ImpalingSpineTimer = 21000; 213 if(target) 214 { 215 m_creature->CastSpell(target, SPELL_IMPALING_SPINE, true); 216 SpineTargetGUID = target->GetGUID(); 217 //must let target summon, otherwise you cannot click the spine 218 target->SummonGameObject(GOBJECT_SPINE, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), m_creature->GetOrientation(), 0, 0, 0, 0, 30); 219 220 switch(rand()%2) 221 { 222 case 0: 223 DoYell(SAY_NEEDLE1, LANG_UNIVERSAL, NULL); 224 DoPlaySoundToSet(m_creature, SOUND_NEEDLE1); 225 break; 226 case 1: 227 DoYell(SAY_NEEDLE2, LANG_UNIVERSAL, NULL); 228 DoPlaySoundToSet(m_creature, SOUND_NEEDLE2); 229 break; 230 } 231 ImpalingSpineTimer = 21000; 232 } 234 233 }else ImpalingSpineTimer -= diff; 235 234 -
trunk/src/bindings/scripts/scripts/zone/sunwell_plateau/boss_brutallus.cpp
r48 r63 1 /* Copyright ©2006,2007 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>1 /* Copyright ?2006,2007 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> 2 2 * This program is free software; you can redistribute it and/or modify 3 3 * it under the terms of the GNU General Public License as published by … … 17 17 /* ScriptData 18 18 SDName: Boss_Brutallus 19 SD%Complete: 8020 SDComment: Needs intro. Talk to the dragon.19 SD%Complete: 90 20 SDComment: Burn gets casted on himself and intro is missing. 21 21 EndScriptData */ 22 22 … … 25 25 26 26 // Yells and Sounds used by boss. 27 #define YELL_AGGRO 28 #define SOUND_AGGRO 1246327 #define YELL_AGGRO "Ahh! More lambs to the slaughter!" 28 #define SOUND_AGGRO 12463 29 29 30 #define YELL_BERSERK "So much for a real challenge... Die!"31 #define SOUND_BERSERK 1247030 #define YELL_BERSERK "So much for a real challenge... Die!" 31 #define SOUND_BERSERK 12470 32 32 33 #define YELL_KILL1 "Perish, insect!"34 #define SOUND_KILL1 1246433 #define YELL_KILL1 "Perish, insect!" 34 #define SOUND_KILL1 12464 35 35 36 #define YELL_KILL2 "You are meat!" 37 #define SOUND_KILL2 12465 36 #define YELL_KILL2 "You are meat!" 37 #define SOUND_KILL2 12465 38 39 #define YELL_KILL3 "Too easy!" 40 #define SOUND_KILL3 12466 38 41 39 #define YELL_ KILL3 "Too easy!"40 #define SOUND_ KILL3 1246642 #define YELL_CHARGE "I will crush you!" 43 #define SOUND_CHARGE 12460 41 44 42 #define YELL_ CHARGE "I will crush you!" //I think it use this for stomp. No?43 #define SOUND_ CHARGE 1246045 #define YELL_DEATH "Gah! Well done... Now... this gets... interesting..." 46 #define SOUND_DEATH 12471 44 47 45 #define YELL_ DEATH "Gah! Well done... Now... this gets... interesting..."46 #define SOUND_ DEATH 1247148 #define YELL_LOVE1 "Bring the fight to me!" 49 #define SOUND_LOVE1 12467 47 50 48 #define YELL_LOVE 1 "Bring the fight to me!"49 #define SOUND_LOVE 1 1246751 #define YELL_LOVE2 "Another day, another glorious battle!" 52 #define SOUND_LOVE2 12468 50 53 51 #define YELL_LOVE2 "Another day, another glorious battle!" 52 #define SOUND_LOVE2 12468 53 54 #define YELL_LOVE3 "I live for this!" 55 #define SOUND_LOVE3 12469 54 #define YELL_LOVE3 "I live for this!" 55 #define SOUND_LOVE3 12469 56 56 57 57 // Boss spells. 58 #define METEOR_SLASH4515059 #define BURN4639460 #define S TOMP4518561 #define BERSERK2666258 #define SPELL_METEOR_SLASH 45150 59 #define SPELL_BURN 46394 60 #define SPELL_STOMP 45185 61 #define SPELL_BERSERK 26662 62 62 63 63 struct TRINITY_DLL_DECL boss_brutallusAI : public ScriptedAI … … 69 69 uint32 StompTimer; 70 70 uint32 BerserkTimer; 71 uint32 LoveTimer;72 71 73 72 void Reset() … … 77 76 BurnTimer = 60000; 78 77 BerserkTimer = 360000; 79 LoveTimer = 10000 + rand()%7000;80 78 } 81 79 … … 116 114 return; 117 115 118 if(LoveTimer < diff)119 {120 switch(rand()%3)121 {122 case 0:123 DoYell(YELL_LOVE1,LANG_UNIVERSAL, NULL);124 DoPlaySoundToSet(m_creature, SOUND_LOVE1);125 break;126 case 1:127 DoYell(YELL_LOVE2,LANG_UNIVERSAL, NULL);128 DoPlaySoundToSet(m_creature, SOUND_LOVE2);129 break;130 case 2:131 DoYell(YELL_LOVE3,LANG_UNIVERSAL, NULL);132 DoPlaySoundToSet(m_creature, SOUND_LOVE3);133 break;134 }135 LoveTimer = 15000 + rand()%8000;136 }else LoveTimer -= diff;137 138 116 if(SlashTimer < diff) 139 117 { 140 DoCast(m_creature->getVictim(), METEOR_SLASH);118 DoCast(m_creature->getVictim(),SPELL_METEOR_SLASH); 141 119 SlashTimer = 11000; 142 120 }else SlashTimer -= diff; … … 144 122 if(StompTimer < diff) 145 123 { 146 DoYell(YELL_CHARGE,LANG_UNIVERSAL, NULL); 147 DoPlaySoundToSet(m_creature, SOUND_CHARGE); 148 Unit *Target = m_creature->getVictim(); 149 DoCast(Target,STOMP); 124 switch(rand()%3) 125 { 126 case 0: 127 DoYell(YELL_LOVE1,LANG_UNIVERSAL, NULL); 128 DoPlaySoundToSet(m_creature, SOUND_LOVE1); 129 break; 130 case 1: 131 DoYell(YELL_LOVE2,LANG_UNIVERSAL, NULL); 132 DoPlaySoundToSet(m_creature, SOUND_LOVE2); 133 break; 134 case 2: 135 DoYell(YELL_LOVE3,LANG_UNIVERSAL, NULL); 136 DoPlaySoundToSet(m_creature, SOUND_LOVE3); 137 break; 138 } 139 140 Unit *Target = m_creature->getVictim(); 141 DoCast(Target,SPELL_STOMP); 150 142 if(Target->HasAura(45151,0)) Target->RemoveAura(45151,0); 151 143 StompTimer = 30000; … … 155 147 { 156 148 Unit *target = SelectUnit(SELECT_TARGET_RANDOM, 0); 157 DoCast(target,BURN);158 149 //DoCast(target,SPELL_BURN); 150 BurnTimer = 60000; 159 151 } 160 152 else BurnTimer -= diff; … … 166 158 DoYell(YELL_BERSERK,LANG_UNIVERSAL, NULL); 167 159 DoPlaySoundToSet(m_creature, SOUND_BERSERK); 168 DoCast(m_creature, BERSERK);160 DoCast(m_creature,SPELL_BERSERK); 169 161 BerserkTimer = 20000; 170 162 } -
trunk/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp
r57 r63 27 27 #define SPELL_POUNDING 34162 28 28 #define SPELL_ARCANE_ORB 34172 29 #define SPELL_KNOCK_AWAY 1113029 #define SPELL_KNOCK_AWAY 25778 30 30 #define SPELL_BERSERK 27680 31 31 -
trunk/src/game/Unit.cpp
r61 r63 10648 10648 void Unit::ApplyAttackTimePercentMod( WeaponAttackType att,float val, bool apply ) 10649 10649 { 10650 float remainingTimePct = (float)m_attackTimer[att] / (GetAttackTime(att) * m_modAttackSpeedPct[att]); 10650 10651 if(val > 0) 10651 10652 { … … 10658 10659 ApplyPercentModFloatValue(UNIT_FIELD_BASEATTACKTIME+att,-val,apply); 10659 10660 } 10661 m_attackTimer[att] = uint32(GetAttackTime(att) * m_modAttackSpeedPct[att] * remainingTimePct); 10660 10662 } 10661 10663