MaNGOS Core

Форум любителей MaNGOS


    [bug] Ритуал призыва

    Поделиться

    fedr

    Сообщения : 2
    Очки : 5
    Дата регистрации : 2010-09-06

    [bug] Ритуал призыва

    Сообщение автор fedr в Чт Сен 09, 2010 7:29 pm

    Ядро mangoszero. При использовании спелла "Ритуал призыва" (http://ru.wowhead.com/spell=698 => http://ru.wowhead.com/spell=7720) у цели появляется окошко, при нажатии принять - не портует.
    Код:
    2010-09-05 13:01:22 WORLD: got cast spell packet, spellId - 698, data length = 6
    2010-09-05 13:01:22 Sending SMSG_SPELL_START id=698
    2010-09-05 13:01:27 STORAGE: DestroyItemCount item = 6265, count = 1
    2010-09-05 13:01:27 STORAGE: DestroyItem bag = 255, slot = 29, item = 6265
    2010-09-05 13:01:27 Sending SMSG_SPELL_GO id=698
    2010-09-05 13:01:27 Spell 698 Effect0 : 50
    2010-09-05 13:01:27 AddObject at SpellEfects.cpp EffectTransmitted
    2010-09-05 13:01:27 Object 230924 enters grid[30,23]
    2010-09-05 13:01:35 WORLD: Recvd CMSG_GAMEOBJ_USE Message [guid=230924]
    2010-09-05 13:01:35 WORLD: Recvd CMSG_GAMEOBJ_USE Message [guid=230924]
    2010-09-05 13:01:35 WORLD: Recvd CMSG_GAMEOBJ_USE Message [guid=230924]
    2010-09-05 13:01:41 Sending SMSG_SPELL_START id=7720
    2010-09-05 13:01:41 Remove object (GUID: 230924 TypeId:5) from grid[30,23]
    2010-09-05 13:01:46 Sending SMSG_SPELL_GO id=7720
    2010-09-05 13:01:46 Spell 7720 Effect0 : 85
    2010-09-05 13:01:56 ERROR:ERROR: Attempted to get in ByteBuffer (pos: 8 size: 8) value with size: 1
    2010-09-05 13:01:56 ERROR:WorldSession::Update ByteBufferException occured while parsing a packet (opcode: 684) from client 127.0.0.1, accountid=6.
    2010-09-05 13:01:56 Dumping error causing packet:
    2010-09-05 13:01:56 STORAGE_SIZE: 8
    03 00 00 00 00 00 00 00

    Как я понял: при разборе полученного опкода CMSG_SUMMON_RESPONSE = 0x2AC попытка извлечь значение, которое выходит за пределы. То есть надо найти где разбирается этот опкод и там уже подправить. Не могу найти...


    fedr

    Сообщения : 2
    Очки : 5
    Дата регистрации : 2010-09-06

    Re: [bug] Ритуал призыва

    Сообщение автор fedr в Чт Сен 09, 2010 8:26 pm

    нашел Smile

    Код:
    void WorldSession::HandleSummonResponseOpcode(WorldPacket& recv_data)
    {
        if(!_player->isAlive() || _player->isInCombat() )
            return;

        uint64 summoner_guid;
        bool agree;
        recv_data >> summoner_guid;
        recv_data >> agree;

        _player->SummonIfPossible(agree);
    }
    так-с, uint64 уже 8 байт занимает...

    При согласии приходит опкод, при отказе ничего не идёт. (клиент 1.12.1)
    Код:
        uint64 summoner_guid;
        bool agree = true;
        recv_data >> summoner_guid;
        //recv_data >> agree;

    Можно закрывать тему =)

      Текущее время Вс Ноя 18, 2018 2:05 am