Итак пришла идея создать некую замену неработающему рейдфайндеру, будет много букофф.
Идея аддона одновременно проста и в то же время техническая реализация требует затрат времени со стороны администрации.
Дизайн:
Таблица со столбцами:
|Персонаж/Playername|Количество ливов/Leave count|Лутграббер/LootGrabber|Голосование/Vote|
Строки сохраняются на все время, пока не будет выполнено расформирование группы.
Персонаж/Playername - Имя персонажа
Количество ливов/Leave count - Количество репортов на игрока за лив с рейда
Лутграббер/LootGrabber - Количество репортов на игрока за сбор добычи себе без последующей раздачи другим игрокам (кидалово на лут)
Голосование/Vote - Кнопка начала голосования
Первая функция аддона сбор репортов на игроков которые ливают с рейда и лутграбберов
Техническая реализация:
1.1 Репорт на игрока за лив с рейда и лутграббинг
При нажатии на кнопку Голосование/Vote, игроку открывается фрейм со следующими кнопками "Leaver" "LootGrabber"
Необходимые действие со стороны Администрации: Создание БД для аддона, комманд.
Переменные:
LeaveCount - Количество принятых ливов персонажа
LeaverReports - Количество текущих репортов на персонажа, сбрасывается до значение 0 каждые 10мин.
LGCount - Количество принятых ЛГ персонажа
LGReports - Количество текущих репортов на персонажа, сбрасывается до значение 0 каждые 10мин.
1.1.1 При нажатии на кнопку Leaver отсылается команда .crf playervoteleaver %playername% (команду можно отправить 1 раз в 11 минут)
1.1.2 Серверная часть по принятию данной команды сравнивает ID КД текущего рейда игрока отправившего запрос и указанного в команде, если true то заносит ID персонажа во временную таблицу с переменной LeaveReports=1, если LeaveReports для текущего ID персонажа больше либо равно 5, то LeaveCount=LeaveCount+1
1.2.1 При нажатии на кнопку LootGrabber отсылается команда .crf playervotelootgrabber %playername% (команду можно отправить 1 раз в 11 минут)
1.2.2 Серверная часть по принятию данной команды сравнивает ID КД текущего рейда игрока отправившего запрос и указанного в команде, если true то заносит ID персонажа во временную таблицу с переменной LGReports=1, если LGReports для текущего ID персонажа больше либо равно 5, то LGCount=LGCount+1
Функция - РейдFinding
Дизайн:
Таблица со следующими кнопками столбцами:
Кнопки: |Найти рейд|Обновить|
Столбцы: |Персонаж/Playername|Класс/Class|Специализация/Specialization|SpecCount|Итемлвл/Ilvl|Ищу/LF|Прогресс/Progress|
SpecCount - Количество дпс/хпс/хпанбаф (заполняется игроком)
Ищу/LF - Поиск рейдов на выбор в ОП ДД и пр. (выбирает игрок)
Прогресс/Progress - заполняется автоматически согласно полученным достижениям игрока
Фрейм "Найти рейд"
Кнопки "Отправить"
Фрейм со следующими функциями Специализация(checkbox), SpecCount(textarea), Ищу/LF(checkbox).
Техническая реализация:
Со стороны администрации создание бд и команд.
1.1 При нажатии кнопки "Отравить" аддон отправляет на сервер команду .CRF playerlf [ClassID] [SpecID] [SpecCount] [ilvl] [LF] [Achievments ID] (команду можно отправить не чаще чем в 5 мин)
1.2 Серверная часть часть фильтрует команду и добавляет строку в временную таблицу. Параметр [Achievments ID] переводится [Progress] с помощью фильтра в следующий вид [DS х/8(O) x/8(H)] [FL х/7(O) x/7(H)] после логаута игрока строка удаляется, после получения игроком КД на подземелье строка удаляется.
2.1 При нажатии на кнопку "Обновить" аддон отправляет команду .crf refresh (команду можно отправить не чаще чем в 5 мин)
2.2 Серверная часть отправляет игроку информацию в виде [Player] [Class] [Spec] [SpecCount] [ilvl] [LF] [Progress], всех игроков во временной таблице текущего реалма игрока.
Ну и собственно добавление новой услуги "Clearstats" за бонусы, дабы удалить свою статистику с ливами и кидаловом.
Вроде все, пинайте.