|
|
|
|
@ -2266,10 +2266,19 @@ void OperatePedestal(Player &player, Object &pedestal, bool sendmsg)
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (pedestal._oVar6 == 3 || !RemoveInventoryItemById(player, IDI_BLDSTONE)) { |
|
|
|
|
if (pedestal._oVar6 == 3 || (sendmsg && !RemoveInventoryItemById(player, IDI_BLDSTONE))) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (sendmsg) { |
|
|
|
|
NetSendCmdLoc(MyPlayerId, false, CMD_OPERATEOBJ, pedestal.position); |
|
|
|
|
if (gbIsMultiplayer) { |
|
|
|
|
// Store added stones to pedestal in qvar2, cause we get only one CMD_OPERATEOBJ from DeltaLoadLevel even if we add multiple stones
|
|
|
|
|
Quests[Q_BLOOD]._qvar2++; |
|
|
|
|
NetSendCmdQuest(true, Quests[Q_BLOOD]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pedestal._oAnimFrame++; |
|
|
|
|
pedestal._oVar6++; |
|
|
|
|
if (pedestal._oVar6 == 1) { |
|
|
|
|
@ -2292,15 +2301,6 @@ void OperatePedestal(Player &player, Object &pedestal, bool sendmsg)
|
|
|
|
|
SpawnUnique(UITEM_ARMOFVAL, SetPiece.position.megaToWorld() + Displacement { 9, 3 }); |
|
|
|
|
pedestal._oSelFlag = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (sendmsg) { |
|
|
|
|
NetSendCmdLoc(MyPlayerId, false, CMD_OPERATEOBJ, pedestal.position); |
|
|
|
|
if (gbIsMultiplayer) { |
|
|
|
|
// Store added stones to pedestal in qvar2, cause we get only one CMD_OPERATEOBJ from DeltaLoadLevel even if we add multiple stones
|
|
|
|
|
Quests[Q_BLOOD]._qvar2++; |
|
|
|
|
NetSendCmdQuest(true, Quests[Q_BLOOD]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void OperateShrineMysterious(Player &player) |
|
|
|
|
@ -4467,7 +4467,8 @@ void OperateObject(Player &player, Object &object)
|
|
|
|
|
OperateStoryBook(object); |
|
|
|
|
break; |
|
|
|
|
case OBJ_PEDESTAL: |
|
|
|
|
OperatePedestal(player, object, sendmsg); |
|
|
|
|
if (sendmsg) |
|
|
|
|
OperatePedestal(player, object, sendmsg); |
|
|
|
|
break; |
|
|
|
|
case OBJ_WARWEAP: |
|
|
|
|
case OBJ_WEAPONRACK: |
|
|
|
|
@ -4657,7 +4658,8 @@ void SyncOpObject(Player &player, int cmd, Object &object)
|
|
|
|
|
OperateStoryBook(object); |
|
|
|
|
break; |
|
|
|
|
case OBJ_PEDESTAL: |
|
|
|
|
OperatePedestal(player, object, sendmsg); |
|
|
|
|
if (!sendmsg) |
|
|
|
|
OperatePedestal(player, object, sendmsg); |
|
|
|
|
break; |
|
|
|
|
case OBJ_WARWEAP: |
|
|
|
|
case OBJ_WEAPONRACK: |
|
|
|
|
|