Browse Source

Multiplayer: Enable Slain Hero

pull/5962/head
obligaron 3 years ago committed by Anders Jenbo
parent
commit
cb5e2b252c
  1. 25
      Source/objects.cpp

25
Source/objects.cpp

@ -2188,28 +2188,30 @@ void OperateInnSignChest(const Player &player, Object &questContainer, bool send
}
}
void OperateSlainHero(const Player &player, Object &corpse)
void OperateSlainHero(const Player &player, Object &corpse, bool sendmsg)
{
if (corpse._oSelFlag == 0) {
return;
}
corpse._oSelFlag = 0;
SetRndSeed(corpse._oRndSeed);
if (player._pClass == HeroClass::Warrior) {
CreateMagicArmor(corpse.position, ItemType::HeavyArmor, ICURS_BREAST_PLATE, true, false);
CreateMagicArmor(corpse.position, ItemType::HeavyArmor, ICURS_BREAST_PLATE, sendmsg, false);
} else if (player._pClass == HeroClass::Rogue) {
CreateMagicWeapon(corpse.position, ItemType::Bow, ICURS_LONG_BATTLE_BOW, true, false);
CreateMagicWeapon(corpse.position, ItemType::Bow, ICURS_LONG_BATTLE_BOW, sendmsg, false);
} else if (player._pClass == HeroClass::Sorcerer) {
CreateSpellBook(corpse.position, SpellID::Lightning, true, false);
CreateSpellBook(corpse.position, SpellID::Lightning, sendmsg, false);
} else if (player._pClass == HeroClass::Monk) {
CreateMagicWeapon(corpse.position, ItemType::Staff, ICURS_WAR_STAFF, true, false);
CreateMagicWeapon(corpse.position, ItemType::Staff, ICURS_WAR_STAFF, sendmsg, false);
} else if (player._pClass == HeroClass::Bard) {
CreateMagicWeapon(corpse.position, ItemType::Sword, ICURS_BASTARD_SWORD, true, false);
CreateMagicWeapon(corpse.position, ItemType::Sword, ICURS_BASTARD_SWORD, sendmsg, false);
} else if (player._pClass == HeroClass::Barbarian) {
CreateMagicWeapon(corpse.position, ItemType::Axe, ICURS_BATTLE_AXE, true, false);
CreateMagicWeapon(corpse.position, ItemType::Axe, ICURS_BATTLE_AXE, sendmsg, false);
}
MyPlayer->Say(HeroSpeech::RestInPeaceMyFriend);
if (&player == MyPlayer)
if (sendmsg)
NetSendCmdLoc(MyPlayerId, false, CMD_OPERATEOBJ, corpse.position);
}
@ -3821,7 +3823,7 @@ void InitObjects()
} else {
ApplyObjectLighting = true;
AdvanceRndSeed();
if (currlevel == 9 && !gbIsMultiplayer)
if (currlevel == 9 && !UseMultiplayerQuests())
AddSlainHero();
if (Quests[Q_MUSHROOM].IsAvailable())
AddMushPatch();
@ -4106,6 +4108,7 @@ Object *AddObject(_object_id objType, Point objPos)
case OBJ_GOATSHRINE:
case OBJ_CAULDRON:
case OBJ_TEARFTN:
case OBJ_SLAINHERO:
object._oRndSeed = AdvanceRndSeed();
break;
case OBJ_DECAP:
@ -4479,7 +4482,7 @@ void OperateObject(Player &player, Object &object)
OperateLazStand(object);
break;
case OBJ_SLAINHERO:
OperateSlainHero(player, object);
OperateSlainHero(player, object, sendmsg);
break;
case OBJ_SIGNCHEST:
OperateInnSignChest(player, object, sendmsg);
@ -4666,7 +4669,7 @@ void SyncOpObject(Player &player, int cmd, Object &object)
OperateMushroomPatch(player, object);
break;
case OBJ_SLAINHERO:
OperateSlainHero(player, object);
OperateSlainHero(player, object, sendmsg);
break;
case OBJ_SIGNCHEST:
OperateInnSignChest(player, object, sendmsg);

Loading…
Cancel
Save