diff options
author | Kudlaty <none@none> | 2009-06-15 00:10:42 +0200 |
---|---|---|
committer | Kudlaty <none@none> | 2009-06-15 00:10:42 +0200 |
commit | 09d0f77b8cb7a8f3a62f15067a205d75c20ed4b4 (patch) | |
tree | 98233da4804b5deef376214296421eb6b9e73872 | |
parent | 54eb0096fda52d62956e9a2d280f6331c68fa2e4 (diff) |
merge sd2
r998 Added support for quest 11129
r999 Remove obsolete code
r1000 Summon pet of sharkkis in different way, to also allow summon if pet dies during fight. - skip
--HG--
branch : trunk
-rw-r--r-- | sql/trinityscript_script_texts.sql | 51 | ||||
-rw-r--r-- | sql/updates/3998_sd2.sql | 7 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp | 161 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp | 2 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp | 3 |
5 files changed, 125 insertions, 99 deletions
diff --git a/sql/trinityscript_script_texts.sql b/sql/trinityscript_script_texts.sql index b9ec2b11a4b..b0dd3ce636e 100644 --- a/sql/trinityscript_script_texts.sql +++ b/sql/trinityscript_script_texts.sql @@ -88,22 +88,22 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content (-1000145, 'Captain Helios, I''ve been rescued from the Amani Catacombs. Reporting for duty, sir!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 1, 0, 'lilatha SAY_END2'), (-1000146, 'Liatha, get someone to look at those injuries. Thank you for bringing her back safely.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 1, 0, 'lilatha CAPTAIN_ANSWER'), (-1000147, 'Lets go $N. I am ready to start to Whitereach Post.', NULL, NULL, 'Gehen wir $N.Ich bin bereit,mich zum Weissgipfelposten aufzumachen.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), -(-1000148, 'This seems to me trusted. If we move to the east, we are probably... Aah! Wyvern attack !', NULL, NULL, 'Das kommt mir vertraut vor.Wenn wir nach Osten ziehen,können wir wahrscheinlich...Aah!Flügeldrachen im Angriff!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), -(-1000149, 'Thanks so much... From here I find the way back to the Whitereach Post. Speak with Motega Firemane, maybe you can persuade him to send me home.', NULL, NULL, 'Tausend Dank...Von hier aus finde ich den Rückweg zum Weissgipfelposten.Sprecht unbedingt mit Motega Feuermähne,vielleicht könnt ihr ihn überreden,mich nach Hause zu schicken.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), -(-1000150, 'Greetings, $N. I will guide you through the cavern. Please try and keep up.', NULL, 'Salutations, $N. Je vais vous guider à travers cette grotte. Veuillez me suivre.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_1'), -(-1000151, 'We do not know if the Caverns of Time have always been accessible to mortals. Truly, it is impossible to tell as the Timeless One is in perpetual motion, changing our timeways as he sees fit. What you see now may very well not exist tomorrow. You may wake up and have no memory of this place.', NULL, 'Nous ne savons pas si les Grottes du Temps ont toujours été accessibles aux mortels. Vraiment, c''est impossible à dire étant donné que l''Intemporel est en mouvement perpétuel, changeant nos spirales temporelles comme bon lui semble. Ce que vous voyez aujourd''hui peut très bien ne plus exister demain. Vous pourriez vous réveiller sans aucun souvenir de cet endroit.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_2'), -(-1000152, 'It is strange, I know... Most mortals cannot actually comprehend what they see here, as often, what they see is not anchored within their own perception of reality.', NULL, 'C''est étrange, je sais... La plupart des mortels ne peuvent pas réellement comprendre ce quils voient ici, comme souvent, ce qu''ils voient n''est pas ancré dans leur propre perception de la réalité.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_3'), +(-1000148, 'This seems to me trusted. If we move to the east, we are probably... Aah! Wyvern attack !', NULL, NULL, 'Das kommt mir vertraut vor.Wenn wir nach Osten ziehen,können wir wahrscheinlich...Aah!Flügeldrachen im Angriff!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), +(-1000149, 'Thanks so much... From here I find the way back to the Whitereach Post. Speak with Motega Firemane, maybe you can persuade him to send me home.', NULL, NULL, 'Tausend Dank...Von hier aus finde ich den Rückweg zum Weissgipfelposten.Sprecht unbedingt mit Motega Feuermähne,vielleicht könnt ihr ihn überreden,mich nach Hause zu schicken.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), +(-1000150, 'Greetings, $N. I will guide you through the cavern. Please try and keep up.', NULL, 'Salutations, $N. Je vais vous guider Å• travers cette grotte. Veuillez me suivre.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_1'), +(-1000151, 'We do not know if the Caverns of Time have always been accessible to mortals. Truly, it is impossible to tell as the Timeless One is in perpetual motion, changing our timeways as he sees fit. What you see now may very well not exist tomorrow. You may wake up and have no memory of this place.', NULL, 'Nous ne savons pas si les Grottes du Temps ont toujours été accessibles aux mortels. Vraiment, c''est impossible Å• dire étant donné que l''Intemporel est en mouvement perpétuel, changeant nos spirales temporelles comme bon lui semble. Ce que vous voyez aujourd''hui peut trÄs bien ne plus exister demain. Vous pourriez vous réveiller sans aucun souvenir de cet endroit.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_2'), +(-1000152, 'It is strange, I know... Most mortals cannot actually comprehend what they see here, as often, what they see is not anchored within their own perception of reality.', NULL, 'C''est étrange, je sais... La plupart des mortels ne peuvent pas réellement comprendre ce quils voient ici, comme souvent, ce qu''ils voient n''est pas ancré dans leur propre perception de la réalité.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_3'), (-1000153, 'Follow me, please.', NULL, 'Veuillez me suivre.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_4'), -(-1000154, 'There are only two truths to be found here: First, that time is chaotic, always in flux, and completely malleable and second, perception does not dictate reality.', NULL, 'Il n''y a que deux vérités qui peuvent être trouvées ici : premièrement, ce temps est chaotique, toujours en mouvement, et complètement malléable, et ensuite, la perception ne détermine pas la réalité.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_5'), -(-1000155, 'As custodians of time, we watch over and care for Nozdormu''s realm. The master is away at the moment, which means that attempts are being made to dramatically alter time. The master never meddles in the affairs of mortals but instead corrects the alterations made to time by others. He is reactionary in this regard.', NULL, 'En tant que protecteurs du temps, nous observons et veillons sur le royaume de Nozdormu. Le maître est absent en ce moment, ce qui signifie que des tentatives sont faites pour altérer fortement le temps. Le maître ne se mêle jamais des affaires des mortels mais il corrige les altérations faites au temps par d''autres. Il est réactionnaire à cet égard.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_6'), -(-1000156, 'For normal maintenance of time, the Keepers of Time are sufficient caretakers. We are able to deal with most ordinary disturbances. I speak of little things, such as rogue mages changing something in the past to elevate their status or wealth in the present.', NULL, 'Pour le maintien normal du temps, les Gardiens du temps suffisent à la tâche. Nous sommes capables de gérer les perturbations les plus ordinaires. Je parle de petites choses, comme des mages voleurs qui changent quelque chose dans le passé pour élever leur statut ou leur richesse dans le présent.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_7'), -(-1000157, 'These tunnels that you see are called timeways. They are infinite in number. The ones that currently exist in your reality are what the master has deemed as ''trouble spots.'' These trouble spots may differ completely in theme but they always share a cause. That is, their existence is a result of the same temporal disturbance. Remember that should you venture inside one...', NULL, 'Ces tunnels que vous voyez sont appelés Voies Temporelles. Leur nombre est infini. Ceux qui existent actuellement dans votre réalité sont ceux que le maître a considérés comme ''points sensibles''. Ces points sensibles peuvent différer complètement de part leur thème, mais partagent toujours une cause. C''est-à-dire, leur existence est le résultat des mêmes perturbations temporelles. Rappelez-vous en si vous osez vous aventurer dans l''un d''eux...', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_8'), -(-1000158, 'This timeway is in great disarray! We have agents inside right now attempting to restore order. What information I have indicates that Thrall''s freedom is in jeopardy. A malevolent organization known as the Infinite Dragonflight is trying to prevent his escape. I fear without outside assistance, all will be lost.', NULL, 'Cette voie temporelle est en grand désarroi ! Nous avons actuellement des agents à lintérieur qui tentent de restaurer l''ordre. Les informations que j''ai indiquent que la liberté de Thrall est en péril. Une organisation malveillante connue sous le nom de Vol du Dragon Infini essaye d''empêcher son évasion. J''ai peur que sans assistance extérieure, tout soit perdu.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_9'), -(-1000159, 'We have very little information on this timeway. Sa''at has been dispatched and is currently inside. The data we have gathered from his correspondence is that the Infinite Dragonflight are once again attempting to alter time. Could it be that the opening of the Dark Portal is being targeted for sabotage? Let us hope not...', NULL, 'Nous avons très peu d''informations sur cette voie. Sa''at a été envoyé et est actuellement sur place. Les données que nous avons recueillies de sa correspondance est que le Vol du Dragon Infini tente une fois de plus d''altérer le temps. Se pourrait-il que l''ouverture de la Porte des Ténèbres soit la cible d''un sabotage. Espérons que non...', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_10'), -(-1000160, 'This timeway is currently collapsing. What that may hold for the past, present and future is currently unknown...', NULL, 'Cette voie est en train de s''effondrer. Ce qu''elle peut avoir contenu dans le passé, le présent et le futur nous est actuellement inconnu...', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_11'), -(-1000161, 'The timeways are currently ranked in order from least catastrophic to most catastrophic. Note that they are all classified as catastrophic, meaning that any single one of these timeways collapsing would mean that your world would end. We only classify them in such a way so that the heroes and adventurers that are sent here know which timeway best suits their abilities.', NULL, 'Les voies sont pour le moment classées de la moins catastrophique à la plus catastrophique, ce qui veut dire que la moindre de celles-ci qui s''effondre signifierait la fin de votre monde. Nous les classons seulement de cette façon pour que les héros et aventuriers qui y sont envoyés sachent quelle voie est la plus adaptée à leurs compétences.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_12'), -(-1000162, 'All we know of this timeway is that it leads to Mount Hyjal. The Infinite Dragonflight have gone to great lengths to prevent our involvement. We know next to nothing, mortal. Soridormi is currently attempting to break through the timeway''s defenses but has thus far been unsuccessful. You might be our only hope of breaking through and resolving the conflict.', NULL, 'Tout ce que nous savons sur cette voie temporelle est qu''elle mène au Mont Hyjal. Le Vol du Dragon Infini s''est donné beaucoup de peine pour empêcher notre participation. Soridormi est actuellement en train de tenter de briser les défenses de cette voie, mais ses efforts ont été vain jusqu''ici. Vous pourriez être notre seul espoir de les briser et de résoudre le conflit.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_13'), -(-1000163, 'Our time is at an end $N. I would wish you luck, if such a thing existed.', NULL, 'Notre entretien touche à sa fin, $N. Je vous souhaite bonne chance, si tant est qu''une telle chose a jamais existé.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_14'), +(-1000154, 'There are only two truths to be found here: First, that time is chaotic, always in flux, and completely malleable and second, perception does not dictate reality.', NULL, 'Il n''y a que deux vérités qui peuvent Ä™tre trouvées ici : premiÄrement, ce temps est chaotique, toujours en mouvement, et complÄtement malléable, et ensuite, la perception ne détermine pas la réalité.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_5'), +(-1000155, 'As custodians of time, we watch over and care for Nozdormu''s realm. The master is away at the moment, which means that attempts are being made to dramatically alter time. The master never meddles in the affairs of mortals but instead corrects the alterations made to time by others. He is reactionary in this regard.', NULL, 'En tant que protecteurs du temps, nous observons et veillons sur le royaume de Nozdormu. Le maître est absent en ce moment, ce qui signifie que des tentatives sont faites pour altérer fortement le temps. Le maître ne se mÄ™le jamais des affaires des mortels mais il corrige les altérations faites au temps par d''autres. Il est réactionnaire Å• cet égard.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_6'), +(-1000156, 'For normal maintenance of time, the Keepers of Time are sufficient caretakers. We are able to deal with most ordinary disturbances. I speak of little things, such as rogue mages changing something in the past to elevate their status or wealth in the present.', NULL, 'Pour le maintien normal du temps, les Gardiens du temps suffisent Å• la tâche. Nous sommes capables de gérer les perturbations les plus ordinaires. Je parle de petites choses, comme des mages voleurs qui changent quelque chose dans le passé pour élever leur statut ou leur richesse dans le présent.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_7'), +(-1000157, 'These tunnels that you see are called timeways. They are infinite in number. The ones that currently exist in your reality are what the master has deemed as ''trouble spots.'' These trouble spots may differ completely in theme but they always share a cause. That is, their existence is a result of the same temporal disturbance. Remember that should you venture inside one...', NULL, 'Ces tunnels que vous voyez sont appelés Voies Temporelles. Leur nombre est infini. Ceux qui existent actuellement dans votre réalité sont ceux que le maître a considérés comme ''points sensibles''. Ces points sensibles peuvent différer complÄtement de part leur thÄme, mais partagent toujours une cause. C''est-Å•-dire, leur existence est le résultat des mÄ™mes perturbations temporelles. Rappelez-vous en si vous osez vous aventurer dans l''un d''eux...', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_8'), +(-1000158, 'This timeway is in great disarray! We have agents inside right now attempting to restore order. What information I have indicates that Thrall''s freedom is in jeopardy. A malevolent organization known as the Infinite Dragonflight is trying to prevent his escape. I fear without outside assistance, all will be lost.', NULL, 'Cette voie temporelle est en grand désarroi ! Nous avons actuellement des agents Å• lintérieur qui tentent de restaurer l''ordre. Les informations que j''ai indiquent que la liberté de Thrall est en péril. Une organisation malveillante connue sous le nom de Vol du Dragon Infini essaye d''empÄ™cher son évasion. J''ai peur que sans assistance extérieure, tout soit perdu.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_9'), +(-1000159, 'We have very little information on this timeway. Sa''at has been dispatched and is currently inside. The data we have gathered from his correspondence is that the Infinite Dragonflight are once again attempting to alter time. Could it be that the opening of the Dark Portal is being targeted for sabotage? Let us hope not...', NULL, 'Nous avons trÄs peu d''informations sur cette voie. Sa''at a été envoyé et est actuellement sur place. Les données que nous avons recueillies de sa correspondance est que le Vol du Dragon Infini tente une fois de plus d''altérer le temps. Se pourrait-il que l''ouverture de la Porte des TénÄbres soit la cible d''un sabotage. Espérons que non...', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_10'), +(-1000160, 'This timeway is currently collapsing. What that may hold for the past, present and future is currently unknown...', NULL, 'Cette voie est en train de s''effondrer. Ce qu''elle peut avoir contenu dans le passé, le présent et le futur nous est actuellement inconnu...', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_11'), +(-1000161, 'The timeways are currently ranked in order from least catastrophic to most catastrophic. Note that they are all classified as catastrophic, meaning that any single one of these timeways collapsing would mean that your world would end. We only classify them in such a way so that the heroes and adventurers that are sent here know which timeway best suits their abilities.', NULL, 'Les voies sont pour le moment classées de la moins catastrophique Å• la plus catastrophique, ce qui veut dire que la moindre de celles-ci qui s''effondre signifierait la fin de votre monde. Nous les classons seulement de cette façon pour que les héros et aventuriers qui y sont envoyés sachent quelle voie est la plus adaptée Å• leurs compétences.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_12'), +(-1000162, 'All we know of this timeway is that it leads to Mount Hyjal. The Infinite Dragonflight have gone to great lengths to prevent our involvement. We know next to nothing, mortal. Soridormi is currently attempting to break through the timeway''s defenses but has thus far been unsuccessful. You might be our only hope of breaking through and resolving the conflict.', NULL, 'Tout ce que nous savons sur cette voie temporelle est qu''elle mÄne au Mont Hyjal. Le Vol du Dragon Infini s''est donné beaucoup de peine pour empÄ™cher notre participation. Soridormi est actuellement en train de tenter de briser les défenses de cette voie, mais ses efforts ont été vain jusqu''ici. Vous pourriez Ä™tre notre seul espoir de les briser et de résoudre le conflit.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_13'), +(-1000163, 'Our time is at an end $N. I would wish you luck, if such a thing existed.', NULL, 'Notre entretien touche Å• sa fin, $N. Je vous souhaite bonne chance, si tant est qu''une telle chose a jamais existé.', NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, 0, 0, 'WHISPER_CUSTODIAN_14'), (-1000164, 'Ah, $GPriest:Priestess; you came along just in time. I appreciate it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 2, 'garments SAY_COMMON_HEALED'), (-1000165, 'Thank you! Thank you, $GPriest:Priestess;. Now I can take on those gnolls with your power to back me!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 1, 1, 'garments SAY_DG_KEL_THANKS'), (-1000166, 'Farewell to you, and may shadow always protect you!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 1, 3, 'garments SAY_DG_KEL_GOODBYE'), @@ -117,10 +117,10 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content (-1000174, 'Farewell to you, and may Elune be with you always.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 2, 3, 'garments SAY_SHAYA_GOODBYE'); INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES (-1000200, 'A-Me good.Good A-me.Follow...A-ME follow.Home.A-ME go home.', NULL, NULL, 'A-ME gut.Gut A-Me.Folgen...Heim.A-ME geht heim.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), -(-1000201, 'Bad Un´Goro Stomper.Stomper evil.', NULL, NULL, 'Böser Stampfer von Un´Goro. Stampfer von Un´Goro böse.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), +(-1000201, 'Bad Un´Goro Stomper.Stomper evil.', NULL, NULL, 'Böser Stampfer von Un´Goro. Stampfer von Un´Goro böse.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), (-1000202, 'Good..good,A-ME. Home. Search way.', NULL, NULL, 'Gut...gut.A-ME.A-ME gut.Heim.Heim suchen.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), -(-1000203, 'A-Me home.A-ME go home!Tar Lord dont disturb A-ME.', NULL, NULL, 'A-ME daheim.A-ME geht heim!Teerfürst A-ME nicht aufhalten.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), -(-1000204, 'Tar Lord A-ME no hurt.A-ME good.', NULL, NULL, 'Teerfürst A-ME nicht wehtun.A-ME gut.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), +(-1000203, 'A-Me home.A-ME go home!Tar Lord dont disturb A-ME.', NULL, NULL, 'A-ME daheim.A-ME geht heim!Teerfürst A-ME nicht aufhalten.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), +(-1000204, 'Tar Lord A-ME no hurt.A-ME good.', NULL, NULL, 'Teerfürst A-ME nicht wehtun.A-ME gut.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), (-1000205, 'A-ME at home!A-ME good!Good A-ME.At home.Home.Home', NULL, NULL, 'A-ME daheim!A-ME gut!Gute A-ME.Daheim.Daheim.Daheim', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NULL), (-1000206, 'Come, $N. Lord Stormrage awaits.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 1, 'OVERLORD_SAY_1'), (-1000207, 'Lord Illidan will be here shortly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 1, 'OVERLORD_SAY_2'), @@ -323,6 +323,9 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content (-1000404, 'One more down!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 7, 0, 'stilwell SAY_DS_DOWN_2'), (-1000405, 'We\'ve done it! We won!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 7, 0, 'stilwell SAY_DS_DOWN_3'), (-1000406, 'Meet me down by the orchard--I just need to put my gun away.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 7, 0, 'stilwell SAY_DS_PROLOGUE'), +(-1000407, '%s howls in delight at the sight of his lunch!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'kyle EMOTE_SEE_LUNCH'), +(-1000408, '%s eats his lunch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'kyle EMOTE_EAT_LUNCH'), +(-1000409, '%s thanks you with a special dance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'kyle EMOTE_DANCE'); (-1000411, 'Mist! I feared I would never see you again! Yes, I am well, do not worry for me. You must rest and recover your health.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 7, 0, 'mist SAY_AT_HOME'), (-1000412, 'growls in acknowledgement before straightening and making her way off into the forest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'mist EMOTE_AT_HOME'), (-1000413, 'Threshwackonator First Mate unit prepared to follow', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, 0, 0, 'threshwackonator EMOTE_START'), @@ -379,11 +382,11 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content -- -1 060 000 863_world_scripts.sql INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES -(-1060005, 'Cloaking systems online! CLUCK! Engaging cloak for transport to Booty Bay!', NULL, NULL, 'Tarnsysteme online! GLUCK! Tarnung für Transport nach Beutebucht wird aktiviert.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_END'), -(-1060004, 'No one challenges the wastevander nomads -- not even robotic chickens! ATTACK!', NULL, NULL, 'Niemand fordert die Wüsenläufernomaden heraus - auch keine Robothühner! ANGRIFF!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AMBUSH_REPLY'), -(-1060003, 'CLUCK! Sensors detect spatial anomaly -- danger imminent! CLUCK', NULL, NULL, 'GLUCK! Sensoren haben räumliche Anomalie entdeckt - Gefahr im Verzug! GLUCK!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AMBUSH'), +(-1060005, 'Cloaking systems online! CLUCK! Engaging cloak for transport to Booty Bay!', NULL, NULL, 'Tarnsysteme online! GLUCK! Tarnung für Transport nach Beutebucht wird aktiviert.', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_END'), +(-1060004, 'No one challenges the wastevander nomads -- not even robotic chickens! ATTACK!', NULL, NULL, 'Niemand fordert die Wüsenläufernomaden heraus - auch keine Robothühner! ANGRIFF!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AMBUSH_REPLY'), +(-1060003, 'CLUCK! Sensors detect spatial anomaly -- danger imminent! CLUCK', NULL, NULL, 'GLUCK! Sensoren haben räumliche Anomalie entdeckt - Gefahr im Verzug! GLUCK!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AMBUSH'), (-1060002, 'Threat analyzed! Activating combat plan beta! CLUCK!', NULL, NULL, 'Bedrohung analysiert! Gefechtsplan Beta wird aktiviert! GLUCK!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AGGRO2'), -(-1060001, 'Physical threat detected! Evasive action! CLUCK!', NULL, NULL, 'Körperliche Bedrohung entdeckt! Ausweichmanöver! GLUCK!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AGGRO1'), +(-1060001, 'Physical threat detected! Evasive action! CLUCK!', NULL, NULL, 'Körperliche Bedrohung entdeckt! Ausweichmanöver! GLUCK!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_AGGRO1'), (-1060000, 'Emergency power activated! Initializing ambulatory motor! CLUCK!', NULL, NULL, 'Notfallenergie aktiviert! Ambulatorenantrieb wird gestartet! GLUCK!', NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 'oox17 SAY_START'); -- -1 070 000 ULDAMAN @@ -867,7 +870,7 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content (-1533116, 'The end is upon you.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8833, 1, 0, 0, 'heigan SAY_TAUNT4'), (-1533117, 'Hungry worms will feast on your rotten flesh!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8834, 1, 0, 0, 'heigan SAY_TAUNT5'), (-1533118, 'Noo... o...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8828, 1, 0, 0, 'heigan SAY_DEATH'); - + -- -1 534 000 THE BATTLE OF MT. HYJAL INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`, `sound`, `type`, `language`, `emote`, `comment`) VALUES (-1534000, 'I''m in jeopardy, help me if you can!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 11007, 1, 0, 0, 'jaina hyjal ATTACKED 1'), @@ -1783,5 +1786,3 @@ REPLACE INTO `script_texts` (`entry`, `content_default`, `sound`, `type`, `langu (-1576042,'Finish it! FINISH IT! Kill me, or I swear by the Dragonqueen you\'ll never see daylight again!',13452,1,0,0,'keristrasza SAY_ENRAGE'), (-1576043,'Dragonqueen... Life-Binder... preserve... me.',13454,1,0,0,'keristrasza SAY_DEATH'), (-1576044,'Stay. Enjoy your final moments.',13451,1,0,0,'keristrasza SAY_CRYSTAL_NOVA'); - -
\ No newline at end of file diff --git a/sql/updates/3998_sd2.sql b/sql/updates/3998_sd2.sql new file mode 100644 index 00000000000..8f3dd9c73bd --- /dev/null +++ b/sql/updates/3998_sd2.sql @@ -0,0 +1,7 @@ +DELETE FROM script_texts WHERE entry BETWEEN -1000342 AND -1000340; +INSERT INTO script_texts (entry,content_default,sound,type,language,emote,comment) VALUES +(-1000407, '%s howls in delight at the sight of his lunch!',0,2,0,0,'kyle EMOTE_SEE_LUNCH'), +(-1000408, '%s eats his lunch.',0,2,0,0,'kyle EMOTE_EAT_LUNCH'), +(-1000409, '%s thanks you with a special dance.',0,2,0,0,'kyle EMOTE_DANCE'); + +UPDATE creature_template SET ScriptName='npc_kyle_frenzied' WHERE entry=23616; diff --git a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp index 49317b34ce8..377a12bd512 100644 --- a/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp +++ b/src/bindings/scripts/scripts/zone/mulgore/mulgore.cpp @@ -61,97 +61,120 @@ bool GossipSelect_npc_skorn_whitecloud(Player *player, Creature *_Creature, uint # npc_kyle_frenzied ######*/ +enum +{ + EMOTE_SEE_LUNCH = -1000407, + EMOTE_EAT_LUNCH = -1000408, + EMOTE_DANCE = -1000409, + + SPELL_LUNCH = 42222, + NPC_KYLE_FRENZIED = 23616, + NPC_KYLE_FRIENDLY = 23622, + POINT_ID = 1 +}; + struct TRINITY_DLL_DECL npc_kyle_frenziedAI : public ScriptedAI { npc_kyle_frenziedAI(Creature *c) : ScriptedAI(c) {} - int STATE; - uint32 wait; - uint64 player; + bool bEvent; + uint64 uiPlayerGUID; + uint32 uiEventTimer; + uint8 uiEventPhase; void Reset() { - STATE = 0; - m_creature->SetDefaultMovementType(WAYPOINT_MOTION_TYPE); - m_creature->GetMotionMaster()->Initialize(); - } - void EnterCombat(Unit* who){} + bEvent = false; + uiPlayerGUID = 0; + uiEventTimer = 5000; + uiEventPhase = 1; - void SpellHit(Unit *caster, const SpellEntry* spell) - { // we can feed him without any quest - if(spell->Id == 42222 && caster->GetTypeId() == TYPEID_PLAYER && CAST_PLR(caster)->GetTeam() == HORDE) - { - STATE = 1; - player = caster->GetGUID(); - float x, y, z, z2; - caster->GetPosition(x, y, z); - x = x + 3.7*cos(caster->GetOrientation()); - y = y + 3.7*sin(caster->GetOrientation()); - z2 = m_creature->GetBaseMap()->GetHeight(x,y,z,false); - z = (z2 <= INVALID_HEIGHT) ? z : z2; - m_creature->SetDefaultMovementType(IDLE_MOTION_TYPE); //there is other way to stop waypoint movement? - m_creature->GetMotionMaster()->Initialize(); - m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE); - m_creature->GetMotionMaster()->MovePoint(0,x, y, z); - } + if (m_creature->GetEntry() == NPC_KYLE_FRIENDLY) + m_creature->UpdateEntry(NPC_KYLE_FRENZIED); } - void MovementInform(uint32 type, uint32 id) + void Aggro(Unit* who) { } + + void SpellHit(Unit* pCaster, SpellEntry const* pSpell) { - if(type == POINT_MOTION_TYPE) + if (!InCombat && !bEvent && pSpell->Id == SPELL_LUNCH) { - switch(STATE) + if (pCaster->GetTypeId() == TYPEID_PLAYER) + uiPlayerGUID = pCaster->GetGUID(); + + if (m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == WAYPOINT_MOTION_TYPE) { - case 1: - { - Unit *plr = Unit::GetUnit((*m_creature),player); - if(plr) - m_creature->SetOrientation(m_creature->GetAngle(plr)); - m_creature->HandleEmoteCommand(EMOTE_STATE_USESTANDING); //eat - WorldPacket data; - m_creature->BuildHeartBeatMsg(&data); - m_creature->SendMessageToSet(&data,true); - wait = 3000; - STATE = 2; - break; - } - case 4: - m_creature->setDeathState(JUST_DIED); - m_creature->Respawn(); - break; + m_creature->GetMotionMaster()->MovementExpired(); + m_creature->GetMotionMaster()->MoveIdle(); + m_creature->StopMoving(); } + + bEvent = true; + DoScriptText(EMOTE_SEE_LUNCH, m_creature); + m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_CREATURE_SPECIAL); } } - void UpdateAI(const uint32 diff) + void MovementInform(uint32 uiType, uint32 uiPointId) { - if (!STATE || STATE == 4) + if (uiType != POINT_MOTION_TYPE || !bEvent) return; - if(wait < diff) + + if (uiPointId == POINT_ID) + uiEventTimer = 5000; + } + + void UpdateAI(const uint32 diff) + { + if (bEvent) { - switch(STATE) + if (!uiEventTimer) + return; + + if (uiEventTimer < diff) { - case 2: - STATE = 3; wait = 7000; - m_creature->UpdateEntry(23622,HORDE); - m_creature->HandleEmoteCommand(EMOTE_ONESHOT_DANCE); - break; - case 3: - STATE = 4; //go home - Unit *plr = Unit::GetUnit((*m_creature),player); - if(plr && CAST_PLR(plr)->GetQuestStatus(11129) == QUEST_STATUS_INCOMPLETE) - CAST_PLR(plr)->CompleteQuest(11129); - float x, y, z, z2, angle; - angle = m_creature->GetAngle(-2146, -430); - m_creature->GetPosition(x,y,z); - x = x + 40*cos(angle); - y = y + 40*sin(angle); - z2 = m_creature->GetBaseMap()->GetHeight(x,y,MAX_HEIGHT,false); - z = (z2 <= INVALID_HEIGHT) ? z : z2; - m_creature->GetMotionMaster()->MovePoint(0,x,y,z); - break; + switch(uiEventPhase) + { + case 1: + uiEventTimer = 0; + + if (Unit* pUnit = Unit::GetUnit(*m_creature,uiPlayerGUID)) + { + if (GameObject* pGo = pUnit->GetGameObject(SPELL_LUNCH)) + m_creature->GetMotionMaster()->MovePoint(POINT_ID, pGo->GetPositionX(), pGo->GetPositionY(), pGo->GetPositionZ()); + } + break; + case 2: + uiEventTimer = 5000; + DoScriptText(EMOTE_EAT_LUNCH, m_creature); + m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_USESTANDING); + break; + case 3: + uiEventTimer = 5000; + + if (Unit* pUnit = Unit::GetUnit(*m_creature,uiPlayerGUID)) + ((Player*)pUnit)->TalkedToCreature(m_creature->GetEntry(), m_creature->GetGUID()); + + m_creature->UpdateEntry(NPC_KYLE_FRIENDLY); + break; + case 4: + uiEventTimer = 30000; + DoScriptText(EMOTE_DANCE, m_creature); + m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCESPECIAL); + break; + case 5: + m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); + Reset(); + m_creature->GetMotionMaster()->Clear(); + break; + } + + if (uiEventPhase != 5) + ++uiEventPhase; } - }else wait -= diff; + else + uiEventTimer -= diff; + } } }; diff --git a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp index 36f09218093..5cd9b01b7c3 100644 --- a/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp +++ b/src/bindings/scripts/scripts/zone/stormwind/stormwind_city.cpp @@ -74,7 +74,6 @@ struct TRINITY_DLL_DECL npc_bartlebyAI : public ScriptedAI void Reset() { m_creature->setFaction(11); - m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 7); PlayerGUID = 0; } @@ -131,7 +130,6 @@ struct TRINITY_DLL_DECL npc_dashel_stonefistAI : public ScriptedAI void Reset() { m_creature->setFaction(11); - m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 7); } void DamageTaken(Unit *done_by, uint32 & damage) diff --git a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp index 584e87a3f97..ec1756083ce 100644 --- a/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp +++ b/src/bindings/scripts/scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp @@ -301,7 +301,6 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI DoCast(m_creature,SPELL_RED_COLORATION); //Freeze animation - m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 53); //Darkbeam for 35 seconds PhaseTimer = 35000; @@ -351,7 +350,6 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI m_creature->RemoveAurasDueToSpell(SPELL_RED_COLORATION); //Freeze animation - m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); m_creature->SetUInt32Value(UNIT_FIELD_FLAGS, 0); //Eye Beam for 50 seconds @@ -397,7 +395,6 @@ struct TRINITY_DLL_DECL eye_of_cthunAI : public Scripted_NoMovementAI m_creature->RemoveAurasDueToSpell(SPELL_RED_COLORATION); //Reset to normal emote state and prevent select and attack - m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); //Remove Target field |