Перейти к содержанию

Незачисление ДКП но вычет при откате


Рекомендуемые сообщения

Отследил ещё одну проблему при работе EQDKP в игре Aion.

Дело в том, что ники в игре могут начинаться с маленькой\содержать_более_одной_большой буквы, и содержать цифры [FaraoN].

Вначале я не придавал этому значения, когда видел как добавленный персонаж переименовывался по шаблону ВоВа [FaraoN -> Faraon].

Когда импортировал людей с форума и их персонажей, они были добавлены с ником как в игре (т.е. не по ВоВ шаблону).

Тут всплывает проблема:

+Когда добавляешь рейд и персонажа из списка (он добавляется как FaraoN) и жмёшь сохранить, людям с неВоВа никами очки не идут.

+Когда удаляешь рейд, во-первых в списке человек с ником ВоВа (уже Faraon), а во-вторых дкп за откат у него вычитаются (человек уходит в минус).

+При индивидуальном изменении такого не происходит(или я не заметил).

Как отключить систему привода ников персонажей к шаблону "только первая буква заглавная и без цифр" (ВоВ)?

Как объясняется несимметричность действий прибавления\вычитания по этому поводу (казалось бы, раз не прибавилось, значит и не вычтет - ник же не совпадает)?

Ссылка на комментарий
Поделиться на другие сайты

Когда импортировал людей с форума и их персонажей, они были добавлены с ником как в игре (т.е. не по ВоВ шаблону).

Каким образом вы проводили это импортирование?

Ссылка на комментарий
Поделиться на другие сайты

через самодельный скрипт, копирующий данные из нашей старой дкп системы (которая делала это в свою очередь из форума) и создающий персонажа в бд в новой. после регистрации пользователь привязывает к себе из имеющихся в бд.

очевидно такая система не соблюдает указанные правила, хотя имена игровые.

Изменено пользователем keybad
Ссылка на комментарий
Поделиться на другие сайты

Я так понимаю что при удалении проверка на валидность имени кушает "некорректные имена", сбоит только при добавлении рейда?

В таком случае откройте файл /admin/addraid.php и замените 185-186 строки на, скажем

$raid_attendees = preg_replace('/[[:space:]]/i', ' ', $_POST['raid_attendees']);

Затем сообщите о результате.

Ссылка на комментарий
Поделиться на другие сайты

спасибо за наводку

$raid_attendees = strtolower(preg_replace('/[[:space:]]/i', ' ', $_POST['raid_attendees']));

$raid_attendees = ucwords($raid_attendees);

делает имена маленькими буквами с заменой спецсимвола на пробел, а затем делает первую букву слов заглавной.

так как в аион пробелы в именах отсутствуют, а регистр букв не изменяется от оригинала, можно заменить на

$raid_attendees = $_POST['raid_attendees'];

интересно теперь узнать, где ещё происходит такой алгорит, потому что "точное соответствие" к никам тут всё ещё не добавляет ДКП, а точнее не делает рабочей полностью во всех смыслах (вероятно ещё и при выводе суммы дкп и других вещах...)

Скажем, теперь TEST получает дкп, а при обновлении рейда записывается как Test и начинается та же чехарда с разными именами.

Изменено пользователем keybad
Ссылка на комментарий
Поделиться на другие сайты

В том же /admin/addraid.php 312-я строка еще - это как раз к обновлению рейда.

Создание персонажей администратором - 162 и 246 строки файла /admin/mm/mm_addmember.php

Создание персонажей через менеджер профилей - 204 строка файла /plugins/charmanager/include/chartools.class.php

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...