mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
[12054] Add grayard linking/ unlinking support
This commit is contained in:
parent
c9d98e8c96
commit
754634fe42
5 changed files with 61 additions and 42 deletions
|
|
@ -4047,7 +4047,7 @@ bool ChatHandler::HandleLinkGraveCommand(char* args)
|
|||
|
||||
Team g_team;
|
||||
if (!teamStr)
|
||||
g_team = TEAM_NONE;
|
||||
g_team = TEAM_BOTH_ALLOWED;
|
||||
else if (strncmp(teamStr, "horde", strlen(teamStr))==0)
|
||||
g_team = HORDE;
|
||||
else if (strncmp(teamStr, "alliance", strlen(teamStr))==0)
|
||||
|
|
@ -4055,8 +4055,7 @@ bool ChatHandler::HandleLinkGraveCommand(char* args)
|
|||
else
|
||||
return false;
|
||||
|
||||
WorldSafeLocsEntry const* graveyard = sWorldSafeLocsStore.LookupEntry(g_id);
|
||||
|
||||
WorldSafeLocsEntry const* graveyard = sWorldSafeLocsStore.LookupEntry(g_id);
|
||||
if (!graveyard )
|
||||
{
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDNOEXIST, g_id);
|
||||
|
|
@ -4068,10 +4067,10 @@ bool ChatHandler::HandleLinkGraveCommand(char* args)
|
|||
|
||||
uint32 zoneId = player->GetZoneId();
|
||||
|
||||
AreaTableEntry const *areaEntry = GetAreaEntryByAreaID(zoneId);
|
||||
AreaTableEntry const* areaEntry = GetAreaEntryByAreaID(zoneId);
|
||||
if (!areaEntry || areaEntry->zone !=0)
|
||||
{
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDWRONGZONE, g_id,zoneId);
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDWRONGZONE, g_id, zoneId);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
|
@ -4091,7 +4090,7 @@ bool ChatHandler::HandleNearGraveCommand(char* args)
|
|||
size_t argslen = strlen(args);
|
||||
|
||||
if(!*args)
|
||||
g_team = TEAM_NONE;
|
||||
g_team = TEAM_BOTH_ALLOWED;
|
||||
else if (strncmp(args, "horde", argslen) == 0)
|
||||
g_team = HORDE;
|
||||
else if (strncmp(args, "alliance", argslen) == 0)
|
||||
|
|
@ -4102,49 +4101,48 @@ bool ChatHandler::HandleNearGraveCommand(char* args)
|
|||
Player* player = m_session->GetPlayer();
|
||||
uint32 zone_id = player->GetZoneId();
|
||||
|
||||
WorldSafeLocsEntry const* graveyard = sObjectMgr.GetClosestGraveYard(
|
||||
player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), g_team);
|
||||
WorldSafeLocsEntry const* graveyard = sObjectMgr.GetClosestGraveYard(player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetMapId(), g_team);
|
||||
|
||||
if(graveyard)
|
||||
if (graveyard)
|
||||
{
|
||||
uint32 g_id = graveyard->ID;
|
||||
|
||||
GraveYardData const* data = sObjectMgr.FindGraveYardData(g_id,zone_id);
|
||||
GraveYardData const* data = sObjectMgr.FindGraveYardData(g_id, zone_id);
|
||||
if (!data)
|
||||
{
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDERROR,g_id);
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDERROR, g_id);
|
||||
SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
g_team = data->team;
|
||||
std::string team_name;
|
||||
|
||||
std::string team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_NOTEAM);
|
||||
|
||||
if(g_team == 0)
|
||||
if (data->team == TEAM_BOTH_ALLOWED)
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_ANY);
|
||||
else if(g_team == HORDE)
|
||||
else if (data->team == HORDE)
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_HORDE);
|
||||
else if(g_team == ALLIANCE)
|
||||
else if (data->team == ALLIANCE)
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
|
||||
else // Actually, this case cannot happen
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_NOTEAM);
|
||||
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDNEAREST, g_id,team_name.c_str(),zone_id);
|
||||
PSendSysMessage(LANG_COMMAND_GRAVEYARDNEAREST, g_id, team_name.c_str(), zone_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string team_name;
|
||||
|
||||
if(g_team == 0)
|
||||
if (g_team == TEAM_BOTH_ALLOWED)
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_ANY);
|
||||
else if(g_team == HORDE)
|
||||
else if (g_team == HORDE)
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_HORDE);
|
||||
else if(g_team == ALLIANCE)
|
||||
else if (g_team == ALLIANCE)
|
||||
team_name = GetMangosString(LANG_COMMAND_GRAVEYARD_ALLIANCE);
|
||||
|
||||
if(g_team == ~uint32(0))
|
||||
if (g_team == TEAM_BOTH_ALLOWED)
|
||||
PSendSysMessage(LANG_COMMAND_ZONENOGRAVEYARDS, zone_id);
|
||||
else
|
||||
PSendSysMessage(LANG_COMMAND_ZONENOGRAFACTION, zone_id,team_name.c_str());
|
||||
PSendSysMessage(LANG_COMMAND_ZONENOGRAFACTION, zone_id, team_name.c_str());
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue