* Fix crash bug in new ticket system - Thanks Machiavelli
--HG-- branch : trunk
This commit is contained in:
+9
-9
@@ -272,7 +272,7 @@ bool ChatHandler::HandleGMTicketListCommand(const char* args)
|
|||||||
SendSysMessage(LANG_COMMAND_TICKETSHOWLIST);
|
SendSysMessage(LANG_COMMAND_TICKETSHOWLIST);
|
||||||
for(GmTicketList::iterator itr = ticketmgr.GM_TicketList.begin(); itr != ticketmgr.GM_TicketList.end(); ++itr)
|
for(GmTicketList::iterator itr = ticketmgr.GM_TicketList.begin(); itr != ticketmgr.GM_TicketList.end(); ++itr)
|
||||||
{
|
{
|
||||||
if((*itr)->closed)
|
if((*itr)->closed == 1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
std::stringstream message;
|
std::stringstream message;
|
||||||
@@ -295,7 +295,7 @@ bool ChatHandler::HandleGMTicketListOnlineCommand(const char* args)
|
|||||||
SendSysMessage(LANG_COMMAND_TICKETSHOWONLINELIST);
|
SendSysMessage(LANG_COMMAND_TICKETSHOWONLINELIST);
|
||||||
for(GmTicketList::iterator itr = ticketmgr.GM_TicketList.begin(); itr != ticketmgr.GM_TicketList.end(); ++itr)
|
for(GmTicketList::iterator itr = ticketmgr.GM_TicketList.begin(); itr != ticketmgr.GM_TicketList.end(); ++itr)
|
||||||
{
|
{
|
||||||
if((*itr)->closed || !objmgr.GetPlayer((*itr)->playerGuid))
|
if((*itr)->closed == 1 || !objmgr.GetPlayer((*itr)->playerGuid))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
std::stringstream message;
|
std::stringstream message;
|
||||||
@@ -380,7 +380,7 @@ bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args)
|
|||||||
|
|
||||||
uint64 tguid = atoi(args);
|
uint64 tguid = atoi(args);
|
||||||
GM_Ticket *ticket = ticketmgr.GetGMTicket(tguid);
|
GM_Ticket *ticket = ticketmgr.GetGMTicket(tguid);
|
||||||
if(!ticket || ticket->closed)
|
if(!ticket || ticket->closed == 1)
|
||||||
{
|
{
|
||||||
SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
|
SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
|
||||||
return true;
|
return true;
|
||||||
@@ -388,9 +388,9 @@ bool ChatHandler::HandleGMTicketCloseByIdCommand(const char* args)
|
|||||||
if(ticket && ticket->assignedToGM != m_session->GetPlayer()->GetGUID())
|
if(ticket && ticket->assignedToGM != m_session->GetPlayer()->GetGUID())
|
||||||
{
|
{
|
||||||
PSendSysMessage(LANG_COMMAND_TICKETCANNOTCLOSE, ticket->guid);
|
PSendSysMessage(LANG_COMMAND_TICKETCANNOTCLOSE, ticket->guid);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
sWorld.SendGMText(LANG_COMMAND_TICKETCLOSED, ticket->name, ticket->guid);
|
sWorld.SendGMText(LANG_COMMAND_TICKETCLOSED, ticket->name.c_str(), ticket->guid);
|
||||||
ticketmgr.RemoveGMTicket(ticket->guid);
|
ticketmgr.RemoveGMTicket(ticket->guid);
|
||||||
Player *plr = objmgr.GetPlayer(ticket->playerGuid);
|
Player *plr = objmgr.GetPlayer(ticket->playerGuid);
|
||||||
|
|
||||||
@@ -425,7 +425,7 @@ bool ChatHandler::HandleGMTicketAssignToCommand(const char* args)
|
|||||||
std::string gmname;
|
std::string gmname;
|
||||||
GM_Ticket *ticket = ticketmgr.GetGMTicket(ticketGuid);
|
GM_Ticket *ticket = ticketmgr.GetGMTicket(ticketGuid);
|
||||||
|
|
||||||
if(!ticket || ticket->closed)
|
if(!ticket || ticket->closed == 1)
|
||||||
{
|
{
|
||||||
SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
|
SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
|
||||||
return true;
|
return true;
|
||||||
@@ -517,12 +517,12 @@ bool ChatHandler::HandleGMTicketCommentCommand(const char* args)
|
|||||||
Player *cplr = m_session->GetPlayer();
|
Player *cplr = m_session->GetPlayer();
|
||||||
GM_Ticket *ticket = ticketmgr.GetGMTicket(ticketGuid);
|
GM_Ticket *ticket = ticketmgr.GetGMTicket(ticketGuid);
|
||||||
|
|
||||||
if(!ticket || ticket->closed)
|
if(!ticket || ticket->closed == 1)
|
||||||
{
|
{
|
||||||
PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
|
PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if(ticket->assignedToGM = 0 && ticket->assignedToGM != cplr->GetGUID())
|
if(ticket->assignedToGM == 0 && ticket->assignedToGM != cplr->GetGUID())
|
||||||
{
|
{
|
||||||
gmname = objmgr.GetPlayer(ticket->assignedToGM)->GetName();
|
gmname = objmgr.GetPlayer(ticket->assignedToGM)->GetName();
|
||||||
PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->guid, gmname.c_str());
|
PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->guid, gmname.c_str());
|
||||||
@@ -552,7 +552,7 @@ bool ChatHandler::HandleGMTicketDeleteByIdCommand(const char* args)
|
|||||||
PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST, ticketGuid);
|
PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST, ticketGuid);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if(!ticket->closed)
|
if(!ticket->closed == 1)
|
||||||
{
|
{
|
||||||
SendSysMessage(LANG_COMMAND_TICKETCLOSEFIRST);
|
SendSysMessage(LANG_COMMAND_TICKETCLOSEFIRST);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ void WorldSession::HandleGMTicketCreateOpcode( WorldPacket & recv_data )
|
|||||||
ticket->playerGuid = GetPlayer()->GetGUID();
|
ticket->playerGuid = GetPlayer()->GetGUID();
|
||||||
ticket->message = ticketText;
|
ticket->message = ticketText;
|
||||||
ticket->timestamp = time(NULL);
|
ticket->timestamp = time(NULL);
|
||||||
ticket->closed = false;
|
ticket->closed = 0;
|
||||||
ticket->assignedToGM = 0;
|
ticket->assignedToGM = 0;
|
||||||
ticket->comment = "";
|
ticket->comment = "";
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ GM_Ticket* TicketMgr::GetGMTicketByPlayer(uint64 playerGuid)
|
|||||||
{
|
{
|
||||||
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
||||||
{
|
{
|
||||||
if((*i)->playerGuid == playerGuid && !(*i)->closed)
|
if((*i)->playerGuid == playerGuid && (*i)->closed == 0)
|
||||||
{
|
{
|
||||||
return (*i);
|
return (*i);
|
||||||
}
|
}
|
||||||
@@ -72,7 +72,7 @@ GM_Ticket* TicketMgr::GetGMTicketByName(const char* name)
|
|||||||
|
|
||||||
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
||||||
{
|
{
|
||||||
if((*i)->playerGuid == playerGuid && !(*i)->closed)
|
if((*i)->playerGuid == playerGuid && (*i)->closed == 0)
|
||||||
{
|
{
|
||||||
return (*i);
|
return (*i);
|
||||||
}
|
}
|
||||||
@@ -147,9 +147,9 @@ void TicketMgr::RemoveGMTicket(uint64 ticketGuid)
|
|||||||
{
|
{
|
||||||
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
||||||
{
|
{
|
||||||
if((*i)->guid == ticketGuid && !(*i)->closed)
|
if((*i)->guid == ticketGuid && (*i)->closed == 0)
|
||||||
{
|
{
|
||||||
(*i)->closed = true;
|
(*i)->closed = 1;
|
||||||
SaveGMTicket((*i));
|
SaveGMTicket((*i));
|
||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
@@ -161,7 +161,7 @@ void TicketMgr::RemoveGMTicketByPlayer(uint64 playerGuid)
|
|||||||
{
|
{
|
||||||
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
for(GmTicketList::iterator i = GM_TicketList.begin(); i != GM_TicketList.end();)
|
||||||
{
|
{
|
||||||
if((*i)->playerGuid == playerGuid && !(*i)->closed)
|
if((*i)->playerGuid == playerGuid && (*i)->closed == 0)
|
||||||
{
|
{
|
||||||
(*i)->closed = true;
|
(*i)->closed = true;
|
||||||
SaveGMTicket((*i));
|
SaveGMTicket((*i));
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ struct GM_Ticket
|
|||||||
std::string name;
|
std::string name;
|
||||||
std::string message;
|
std::string message;
|
||||||
uint64 timestamp;
|
uint64 timestamp;
|
||||||
bool closed;
|
uint16 closed;
|
||||||
uint64 assignedToGM;
|
uint64 assignedToGM;
|
||||||
std::string comment;
|
std::string comment;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user