mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 01:37:37 +01:00
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/scripts/Commands/cs_misc.cpp
This commit is contained in:
@@ -239,18 +239,20 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recvData)
|
||||
recvData.ReadPackedTime(unkPackedTime);
|
||||
recvData >> flags;
|
||||
|
||||
CalendarEvent* calendarEvent = new CalendarEvent(sCalendarMgr->GetFreeEventId(), guid, 0, CalendarEventType(type), dungeonId,
|
||||
CalendarEvent calendarEvent(sCalendarMgr->GetFreeEventId(), guid, 0, CalendarEventType(type), dungeonId,
|
||||
time_t(eventPackedTime), flags, time_t(unkPackedTime), title, description);
|
||||
|
||||
if (calendarEvent->IsGuildEvent() || calendarEvent->IsGuildAnnouncement())
|
||||
if (calendarEvent.IsGuildEvent() || calendarEvent.IsGuildAnnouncement())
|
||||
if (Player* creator = ObjectAccessor::FindPlayer(guid))
|
||||
calendarEvent->SetGuildId(creator->GetGuildId());
|
||||
calendarEvent.SetGuildId(creator->GetGuildId());
|
||||
|
||||
if (calendarEvent->IsGuildAnnouncement())
|
||||
if (calendarEvent.IsGuildAnnouncement())
|
||||
{
|
||||
// 946684800 is 01/01/2000 00:00:00 - default response time
|
||||
CalendarInvite* invite = new CalendarInvite(0, calendarEvent->GetEventId(), 0, guid, 946684800, CALENDAR_STATUS_NOT_SIGNED_UP, CALENDAR_RANK_PLAYER, "");
|
||||
sCalendarMgr->AddInvite(calendarEvent, invite);
|
||||
CalendarInvite invite(0, calendarEvent.GetEventId(), 0, guid, 946684800, CALENDAR_STATUS_NOT_SIGNED_UP, CALENDAR_RANK_PLAYER, "");
|
||||
// WARNING: By passing pointer to a local variable, the underlying method(s) must NOT perform any kind
|
||||
// of storage of the pointer as it will lead to memory corruption
|
||||
sCalendarMgr->AddInvite(&calendarEvent, &invite);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -266,12 +268,12 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recvData)
|
||||
recvData >> status >> rank;
|
||||
|
||||
// 946684800 is 01/01/2000 00:00:00 - default response time
|
||||
CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent->GetEventId(), invitee, guid, 946684800, CalendarInviteStatus(status), CalendarModerationRank(rank), "");
|
||||
sCalendarMgr->AddInvite(calendarEvent, invite);
|
||||
CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent.GetEventId(), invitee, guid, 946684800, CalendarInviteStatus(status), CalendarModerationRank(rank), "");
|
||||
sCalendarMgr->AddInvite(&calendarEvent, invite);
|
||||
}
|
||||
}
|
||||
|
||||
sCalendarMgr->AddEvent(calendarEvent, CALENDAR_SENDTYPE_ADD);
|
||||
sCalendarMgr->AddEvent(new CalendarEvent(calendarEvent, calendarEvent.GetEventId()), CALENDAR_SENDTYPE_ADD);
|
||||
}
|
||||
|
||||
void WorldSession::HandleCalendarUpdateEvent(WorldPacket& recvData)
|
||||
|
||||
@@ -1697,9 +1697,6 @@ void WorldSession::HandleEquipmentSetDelete(WorldPacket &recvData)
|
||||
|
||||
void WorldSession::HandleEquipmentSetUse(WorldPacket& recvData)
|
||||
{
|
||||
if (_player->IsInCombat())
|
||||
return;
|
||||
|
||||
TC_LOG_DEBUG("network", "CMSG_EQUIPMENT_SET_USE");
|
||||
|
||||
for (uint32 i = 0; i < EQUIPMENT_SLOT_END; ++i)
|
||||
@@ -1716,6 +1713,10 @@ void WorldSession::HandleEquipmentSetUse(WorldPacket& recvData)
|
||||
if (itemGuid == 1)
|
||||
continue;
|
||||
|
||||
// Only equip weapons in combat
|
||||
if (_player->IsInCombat() && i != EQUIPMENT_SLOT_MAINHAND && i != EQUIPMENT_SLOT_OFFHAND && i != EQUIPMENT_SLOT_RANGED)
|
||||
continue;
|
||||
|
||||
Item* item = _player->GetItemByGuid(itemGuid);
|
||||
|
||||
uint16 dstpos = i | (INVENTORY_SLOT_BAG_0 << 8);
|
||||
|
||||
@@ -4785,6 +4785,7 @@ void Spell::EffectResurrectPet(SpellEffIndex /*effIndex*/)
|
||||
hadPet = false;
|
||||
}
|
||||
|
||||
// TODO: Better to fail Hunter's "Revive Pet" at cast instead of here when casting ends
|
||||
Pet* pet = player->GetPet(); // Attempt to get current pet
|
||||
if (!pet || pet->IsAlive())
|
||||
return;
|
||||
|
||||
@@ -1336,23 +1336,20 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string tNameLink = handler->GetNameLink(target);
|
||||
bool targetHasSkill = target->GetSkillValue(skill);
|
||||
|
||||
if (!target->GetSkillValue(skill))
|
||||
{
|
||||
handler->PSendSysMessage(LANG_SET_SKILL_ERROR, tNameLink.c_str(), skill, skillLine->name);
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
uint16 max = maxPureSkill ? atol (maxPureSkill) : target->GetPureMaxSkillValue(skill);
|
||||
// If our target does not yet have the skill they are trying to add to them, the chosen level also becomes
|
||||
// the max level of the new profession.
|
||||
uint16 max = maxPureSkill ? atol(maxPureSkill) : targetHasSkill ? target->GetPureMaxSkillValue(skill) : uint16(level);
|
||||
|
||||
if (level <= 0 || level > max || max <= 0)
|
||||
return false;
|
||||
|
||||
target->SetSkill(skill, target->GetSkillStep(skill), level, max);
|
||||
handler->PSendSysMessage(LANG_SET_SKILL, skill, skillLine->name, tNameLink.c_str(), level, max);
|
||||
|
||||
// If the player has the skill, we get the current skill step. If they don't have the skill, we
|
||||
// add the skill to the player's book with step 1 (which is the first rank, in most cases something
|
||||
// like 'Apprentice <skill>'.
|
||||
target->SetSkill(skill, targetHasSkill ? target->GetSkillStep(skill) : 1, level, max);
|
||||
handler->PSendSysMessage(LANG_SET_SKILL, skill, skillLine->name, handler->GetNameLink(target).c_str(), level, max);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1839,7 +1836,7 @@ public:
|
||||
target->GetSession()->m_muteTime = muteTime;
|
||||
stmt->setInt64(0, muteTime);
|
||||
std::string nameLink = handler->playerLink(targetName);
|
||||
|
||||
|
||||
if (sWorld->getBoolConfig(CONFIG_SHOW_MUTE_IN_WORLD))
|
||||
{
|
||||
sWorld->SendWorldText(LANG_COMMAND_MUTEMESSAGE_WORLD, (handler->GetSession() ? handler->GetSession()->GetPlayerName().c_str() : "Server"), nameLink.c_str(), notSpeakTime, muteReasonStr.c_str());
|
||||
|
||||
Reference in New Issue
Block a user