Browse Source

Dedupe SP/MP logic when killing archbishop lazarus

pull/4695/head
ephphatha 4 years ago committed by Anders Jenbo
parent
commit
c859ec57d0
  1. 40
      Source/quests.cpp

40
Source/quests.cpp

@ -487,35 +487,33 @@ void CheckQuestKill(const Monster &monster, bool sendmsg)
} else if (monster._uniqtype - 1 == UMT_ZHAR) { //"Zhar the Mad"
Quests[Q_ZHAR]._qactive = QUEST_DONE;
myPlayer.Say(HeroSpeech::ImSorryDidIBreakYourConcentration, 30);
} else if (monster._uniqtype - 1 == UMT_LAZARUS && gbIsMultiplayer) { //"Arch-Bishop Lazarus"
} else if (monster._uniqtype - 1 == UMT_LAZARUS) { //"Arch-Bishop Lazarus"
auto &betrayerQuest = Quests[Q_BETRAYER];
auto &diabloQuest = Quests[Q_DIABLO];
betrayerQuest._qactive = QUEST_DONE;
myPlayer.Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30);
betrayerQuest._qvar1 = 7;
auto &diabloQuest = Quests[Q_DIABLO];
diabloQuest._qactive = QUEST_ACTIVE;
for (int j = 0; j < MAXDUNY; j++) {
for (int i = 0; i < MAXDUNX; i++) {
if (dPiece[i][j] == 370) {
trigs[numtrigs].position = { i, j };
trigs[numtrigs]._tmsg = WM_DIABNEXTLVL;
numtrigs++;
if (gbIsMultiplayer) {
for (int j = 0; j < MAXDUNY; j++) {
for (int i = 0; i < MAXDUNX; i++) {
if (dPiece[i][j] == 370) {
trigs[numtrigs].position = { i, j };
trigs[numtrigs]._tmsg = WM_DIABNEXTLVL;
numtrigs++;
}
}
}
if (sendmsg) {
NetSendCmdQuest(true, betrayerQuest);
NetSendCmdQuest(true, diabloQuest);
}
} else {
InitVPTriggers();
betrayerQuest._qvar2 = 4;
AddMissile({ 35, 32 }, { 35, 32 }, Direction::South, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0);
}
myPlayer.Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30);
if (sendmsg) {
NetSendCmdQuest(true, betrayerQuest);
NetSendCmdQuest(true, diabloQuest);
}
} else if (monster._uniqtype - 1 == UMT_LAZARUS && !gbIsMultiplayer) { //"Arch-Bishop Lazarus"
Quests[Q_BETRAYER]._qactive = QUEST_DONE;
InitVPTriggers();
Quests[Q_BETRAYER]._qvar1 = 7;
Quests[Q_BETRAYER]._qvar2 = 4;
Quests[Q_DIABLO]._qactive = QUEST_ACTIVE;
AddMissile({ 35, 32 }, { 35, 32 }, Direction::South, MIS_RPORTAL, TARGET_MONSTERS, MyPlayerId, 0, 0);
myPlayer.Say(HeroSpeech::YourMadnessEndsHereBetrayer, 30);
} else if (monster._uniqtype - 1 == UMT_WARLORD) { //"Warlord of Blood"
Quests[Q_WARLORD]._qactive = QUEST_DONE;
myPlayer.Say(HeroSpeech::YourReignOfPainHasEnded, 30);

Loading…
Cancel
Save