示例#1
0
void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & recv_data )
{
    WorldPacket data( SMSG_QUERY_TIME_RESPONSE, 4 );
    //    data << (uint32)20;
    data << (uint32)getMSTime();
    SendPacket( &data );

    uint64 guid;
    Field *fields;
    guid = GetPlayer()->GetGUID();

    QueryResult *result = sDatabase.PQuery("SELECT COUNT(`ticket_id`) FROM `character_ticket` WHERE `guid` = '%u'", GUID_LOPART(guid));

    if (result)
    {
        int cnt;
        fields = result->Fetch();
        cnt = fields[0].GetUInt32();
        delete result;

        if ( cnt > 0 )
        {
            QueryResult *result2 = sDatabase.PQuery("SELECT `ticket_text` FROM `character_ticket` WHERE `guid` = '%u'", GUID_LOPART(guid));
            assert(result2);
            Field *fields2 = result2->Fetch();

            SendGMTicketGetTicket(6,fields2[0].GetString());
            delete result2;
        }
        else
            SendGMTicketGetTicket(1,0);
    }
}
示例#2
0
void WorldSession::HandleGMTicketGetTicketOpcode(WorldPacket & /*recv_data*/)
{
    SendQueryTimeResponse();

    GMTicket* ticket = sTicketMgr.GetGMTicket(GetPlayer()->GetObjectGuid());
    if (ticket)
        SendGMTicketGetTicket(0x06, ticket);
    else
        SendGMTicketGetTicket(0x0A);
}
示例#3
0
void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/)
{
    SendQueryTimeResponse();

    GM_Ticket *ticket = sObjectMgr.GetGMTicketByPlayer(GetPlayer()->GetGUID());
    if (ticket)
        SendGMTicketGetTicket(0x06, ticket->message.c_str());
    else
        SendGMTicketGetTicket(0x0A, 0);

}
示例#4
0
void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/ )
{
    WorldPacket data( SMSG_QUERY_TIME_RESPONSE, 4+4 );
    data << (uint32)time(NULL);
    data << (uint32)0;
    SendPacket( &data );

    GMTicket* ticket = ticketmgr.GetGMTicket(GetPlayer()->GetGUIDLow());
    if(ticket)
        SendGMTicketGetTicket(0x06,ticket->GetText());
    else
        SendGMTicketGetTicket(0x0A,0);
}
示例#5
0
void WorldSession::HandleGMTicketGetTicketOpcode(WorldPacket & /*recv_data*/)
{
    SendQueryTimeResponse();

    if (GM_Ticket *ticket = sTicketMgr->GetGMTicketByPlayer(GetPlayer()->GetGUID()))
    {
        if (ticket->completed)
            SendGMTicketResponse(ticket);
        else
            SendGMTicketGetTicket(GMTICKET_STATUS_HASTEXT, ticket->message.c_str(), ticket);
    }
    else
        SendGMTicketGetTicket(GMTICKET_STATUS_DEFAULT, NULL);
}
示例#6
0
void WorldSession::HandleGMTicketDeleteTicketOpcode(WorldPacket& /*recv_data*/)
{
    sTicketMgr.Delete(GetPlayer()->GetObjectGuid());

    WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
    data << uint32(9);
    SendPacket(&data);

    SendGMTicketGetTicket(0x0A);
}
示例#7
0
void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/ )
{
    ticketmgr.Delete(GetPlayer()->GetGUIDLow());

    WorldPacket data( SMSG_GMTICKET_DELETETICKET, 4 );
    data << uint32(9);
    SendPacket( &data );

    SendGMTicketGetTicket(0x0A, 0);
}
示例#8
0
void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & recv_data )
{
    uint32 guid = GetPlayer()->GetGUIDLow();

    sDatabase.PExecute("DELETE FROM `character_ticket` WHERE `guid` = '%u' LIMIT 1",guid);

    WorldPacket data( SMSG_GMTICKET_DELETETICKET, 8 );
    data << uint32(1);
    data << uint32(0);
    SendPacket( &data );

    SendGMTicketGetTicket(1,0);
}
示例#9
0
void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/)
{
    GM_Ticket* ticket = sObjectMgr.GetGMTicketByPlayer(GetPlayer()->GetGUID());

    if (ticket)
    {
        WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
        data << uint32(9);
        SendPacket(&data);

        sWorld.SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid );
        sObjectMgr.RemoveGMTicket(ticket, GetPlayer()->GetGUID(), false);
        SendGMTicketGetTicket(0x0A, 0);
    }
}
示例#10
0
void WorldSession::HandleGMTicketDeleteOpcode(WorldPacket & /*recv_data*/)
{
    GM_Ticket* ticket = sTicketMgr->GetGMTicketByPlayer(GetPlayer()->GetGUID());

    if (ticket)
    {
        WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4);
        data << uint32(GMTICKET_RESPONSE_TICKET_DELETED);
        SendPacket(&data);

        sWorld->SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid);
        sTicketMgr->RemoveGMTicket(ticket, GetPlayer()->GetGUID(), false);
        SendGMTicketGetTicket(GMTICKET_STATUS_DEFAULT, NULL);
    }
}
示例#11
0
void WorldSession::HandleGMTicketDeleteTicketOpcode( WorldPacket & /*recv_data*/ )
{
    sTicketMgr.Delete(GetPlayer()->GetGUIDLow());

    WorldPacket data( SMSG_GMTICKET_DELETETICKET, 4 );
    data << uint32(9);
    SendPacket( &data );

    SendGMTicketGetTicket(0x0A);

    /* IRC Additions */
    std::string name = GetPlayer()->GetName();
    std::string channel = std::string("#") + sIRC._irc_chan[sIRC.Status];
    sIRC.Send_IRC_Channel(channel, sIRC.MakeMsg("\00304,08\037/!\\\037\017\00304 GM Ticket Deleted For:\00304,08\037/!\\\037\017 %s", "%s", name.c_str()), true);
}
示例#12
0
void WorldSession::HandleGMResponseResolve(WorldPacket& /*recvPacket*/)
{
    // empty packet
    GM_Ticket* ticket = sTicketMgr->GetGMTicketByPlayer(GetPlayer()->GetGUID());

    if (ticket)
    {
        uint8 getSurvey = 0;
        if ((float)rand_chance() < sWorld->getFloatConfig(CONFIG_CHANCE_OF_GM_SURVEY))
            getSurvey = 1;

        WorldPacket data(SMSG_GMRESPONSE_STATUS_UPDATE, 4);
        data << uint8(getSurvey);
        SendPacket(&data);

        WorldPacket data2(SMSG_GMTICKET_DELETETICKET, 4);
        data2 << uint32(GMTICKET_RESPONSE_TICKET_DELETED);
        SendPacket(&data2);
        sTicketMgr->RemoveGMTicket(ticket, GetPlayer()->GetGUID(), true);
        SendGMTicketGetTicket(GMTICKET_STATUS_DEFAULT, NULL);
    }
}