Так как в 3.3.5 нет тех событий, на которых реализован данный функционал в 5.4.8 и далее, пришлось реализовать основной функционал на событии
CHAT_MSG_LOOT (обработка сообщений распределения добычи в чате).
При анализе сообщений чата нет вообще никакой информации о
rollID для разыгрываемого предмета. Можно только косвенно определить какой из предметов еще не был разыгран и записывать результаты бросков для не разыгранного предмета.
Это пораждает следующую проблему:
Актуально только для случая, когда разыгрывается сразу несколько одинаковых предметов (например одновременно выпало сразу 2 "Тигровый глаз").
При таком выпадении одинаковых предметов значения ролла могут быть перепутаны и записаны для другого предмета. Визуально это не заметно, просто имейте ввиду.
Поясню на примере.
У нас в группе есть игрок A и игрок B.
Выпадает сразу 2 предмета:
- №1 "Тигровый глаз" имеет rollID = 10
- №1 "Тигровый глаз" имеет rollID = 35
Оба игрока ролят следующим образом:
Для предмета "Тигровый глаз" №1:
- игрок A выбирает "Мне это нужно" и выбрасывает 30
- игрок B выбирает "Мне это нужно" и выбрасывает 65 (он выиграл)
Для предмета "Тигровый глаз" №2:
- игрок A выбирает "Мне это нужно" и выбрасывает 99 (он выиграл)
- игрок B выбирает "Мне это нужно" и выбрасывает 37
Но при записи результатов бросков может записать историю вот так:
Для предмета "Тигровый глаз" №1:
- игрок A выбирает "Мне это нужно" и выбрасывает 99 (он выиграл)
- игрок B выбирает "Мне это нужно" и выбрасывает 37
Для предмета "Тигровый глаз" №2:
- игрок A выбирает "Мне это нужно" и выбрасывает 30
- игрок B выбирает "Мне это нужно" и выбрасывает 65 (он выиграл)
Как видите, данные записаны для "неправильного" предмета.
[свернуть]