Jump to content

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


Recommended Posts

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

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

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

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

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

Edited by keybad
Link to comment
Share on other sites

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

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

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

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

Link to comment
Share on other sites

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

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

$raid_attendees = ucwords($raid_attendees);

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

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

$raid_attendees = $_POST['raid_attendees'];

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

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

Edited by keybad
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...