Core/Quests: Implemented player choices

This commit is contained in:
hondacrx
2018-01-01 12:18:52 -05:00
parent 904a7bc3a0
commit 45333097df
11 changed files with 441 additions and 91 deletions
+34
View File
@@ -4994,6 +4994,40 @@ namespace Game.Entities
SendMessageToSet(updateCollisionHeight, false);
}
public void SendPlayerChoice(ObjectGuid sender, uint choiceID)
{
PlayerChoice playerChoice = Global.ObjectMgr.GetPlayerChoice((int)choiceID);
if (playerChoice == null)
return;
PlayerChoice localizedPlayerChoice = playerChoice;
LocaleConstant locale = GetSession().GetSessionDbLocaleIndex();
if (locale != LocaleConstant.enUS)
{
PlayerChoiceLocale playerChoiceLocale = Global.ObjectMgr.GetPlayerChoiceLocale((uint)localizedPlayerChoice.ChoiceId);
if (playerChoiceLocale != null)
ObjectManager.GetLocaleString(playerChoiceLocale.Question, locale, ref localizedPlayerChoice.Question);
foreach (var playerChoiceResponse in localizedPlayerChoice.Responses)
{
PlayerChoiceResponseLocale playerChoiceResponseLocale = Global.ObjectMgr.GetPlayerChoiceResponseLocale((uint)localizedPlayerChoice.ChoiceId, (uint)playerChoiceResponse.Value.ResponseID);
if (playerChoiceResponseLocale != null)
{
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Header, locale, ref playerChoiceResponse.Value.Header);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Answer, locale, ref playerChoiceResponse.Value.Answer);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Description, locale, ref playerChoiceResponse.Value.Description);
ObjectManager.GetLocaleString(playerChoiceResponseLocale.Confirmation, locale, ref playerChoiceResponse.Value.Confirmation);
}
}
}
DisplayPlayerChoice displayPlayerChoice = new DisplayPlayerChoice();
displayPlayerChoice.Choice = localizedPlayerChoice;
displayPlayerChoice.SenderGUID = sender;
SendPacket(displayPlayerChoice);
}
public float GetCollisionHeight(bool mounted)
{
if (mounted)