1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.1 (101) [PHP] Скрипт бана чата/персонажей/аккаунтов

Тема в разделе 'PW Разработки', создана пользователем wsok, 9 апр 2014.

  1. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Решил выложить свой скрипт по бану игрового чата, персонажей и аккаунтов. Проверял в 1.4.4 и в 1.5.1, работает норм. Правда для бана аккаунта, придется войти своим гм персонажем(1024) в игру, так при бане аккаунта система проверяет в сети ли банящий ГМ. Увы не удалось обойти это.

    1112226.jpg 1112227.jpg

    Спасибо за консультации по пакетам Алексу, Ёжику и другим =)

    Скрипт подойдет как для использования в чистом виде, так и для встраивания в ЛК.
    PS: У Ёжика есть похожий скрипт, но я так и не смог понять формирование его пакетов (первый сегмент байтов сильно отличался от моего), пришлось сделать свою версию скрипта и плюс добавил возможность банить аккаунты (увы, при нахождении указанного ГМа в игре).

    PSS: Скрипт по разбану игровых аккаунтов можно скачать на моем сайте.

    Вложения:

    • banned.zip
      Размер файла:
      1,6 КБ
      Просмотров:
      139
    Последнее редактирование: 9 апр 2014
    Rudja, LeoMessi, alexdnepro и ещё 1-му нравится это.
  2. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    А вместо банящего ГМа пробовал ставить -1?
  3. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    попробовал, увы, не сработало (
  4. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Для бана персонажа нужно использовать пакет 360 GMKickoutRole на деливери, бан аккаунта тот, что давал ранее.
    SilverSil нравится это.
  5. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Да персонаж и так вроде без проблем банится, вот для бана аккаунта приходится заходить в игру )) Найти бы решение, при котором это тоже срабатывает без нужды нахождения в игре.
  6. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    А сервер проверяет именно онлайн самого персонажа? Или статус gm-аккаунта? (online/offline)
    --- добавлено: 9 апр 2014 в 18:05 ---
    По идеи еще должны проверяться права gm'а. Имеет ли он права давать этот тип бана или нет.
    Последнее редактирование модератором: 17 апр 2014
  7. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Хм, проверю сейчас. пропишу ид не ГМа.
    Последнее редактирование модератором: 17 апр 2014
  8. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Можно дать акку ГМ , только убрать права на выдачу банов, и проверить)
  9. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    ну, если гма указать того у кого нет прав, бана не происходит, хоть персонаж с указанным ид в сети. Но это не причина. По идее система должна проверять права у указанного ид, даже если он в оффлайне, ведь БЧ и БП происходит нормально даже если ГМ перс не в сети, а БА не происходит без ГМа...
  10. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Как вариант, сервер может проверять онлайн не именно персонажа, а аккаунта (в таблице point). Попробуй выйти с ГМ аккаунта , а потом в таблице point для этого ГМ аккаунта zoneid измени с NULL на 1 и сразу же (ибо сервер периодически обновляет статус) попробуй дать бан от имени этого ГМ'а.
  11. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    попробовал, не прокатило...
  12. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Значит все-таки перса проверяет (
  13. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    видимо двойная проверка - наличие перса в сети и его права...
    --- добавлено: 9 апр 2014 в 18:48 ---
    однако странно, что при БЧ и БП обходится без ГМа в сети. Очень странно...
    Последнее редактирование модератором: 17 апр 2014
  14. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Ох уже эти китайцы...
  15. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    но повторюсь... БЧ и БП не требует ГМа в сети...
  16. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Ну как вариант - они запилили БЧ и БП , а когда дошло дело до БА то вспомнили, что все-таки надо какую-то проверку добавить :D
    --- добавлено: 9 апр 2014 в 18:59 ---
    По другому хз как это объяснить )
    Последнее редактирование модератором: 17 апр 2014
  17. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Как решить проблему? На ум только одно приходит, чтоб при бане ака выкидывало игрока, отправлять пакет БП (его выкинет на страницу авторизации) и сразу пакет БА в БД для записи бана ака... Т.е. два запроса (деливери для линка и в геймдбд для записи БА)

    Громоздко конечно, но более простого решения пока на ум не пришло.
    Последнее редактирование модератором: 17 апр 2014
  18. salitypw Программист Пользователи

    Сообщения:
    673
    Лайки:
    458
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Ну в принципе можно и так.
  19. alexdnepro Эксперт AngeliCore Пользователи Open Source Contributor White List

    Сообщения:
    754
    Лайки:
    1.313
    Пол:
    Мужской
    Репутация:
    6
    Я это и имел в виду, ничего страшного нет в 2-х запросах.
    wsok нравится это.
  20. TopicStarter Overlay

    wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Обновил скрипт до 1.1 бета. Что нового.

    1. Возможность банить аккаунт без необходимости пребывания ГМа в игре
    2. Убрал селект бокс с выбором режимов секунды, минуты, часы, дни, месяцы, годы. Вызвано техническими причинами. О них ниже.

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

    Секунды: не более 9999999
    Причина бана: не более 30-35 знаков(если русский текст)


    Для БЧ или БП, я думаю можно указать значения и подлинее.
    И пока не знаю, как себя будет вести скрипт, если указывать более длинные ид персонажей, длинее чем 1024 или 1056 и т.п., например 342845. Хоть в пхп опыт 10 лет, но пакетными данные я занялся недавно и пока для меня это проблема, правильно формировать пакет, даже при наличии структуры.

    Кстати, для разработчиков, я даже пробовал делать пакет используя опкод cuint(8004) и структуру, итог скрипт упорно не работал, потому пришлось использовать пакет, который я отловил в снифере. Получилось криво, зато работает (и там совсем другой опкод оО)

    PS: жаль нет возможности редактировать свои посты спустя время, оформление темы увы от этого только хромает.

    Вложения:

Черновик сохранён Черновик удалён
Similar Threads
  1. Napalm Rain
    Ответов:
    14
    Просмотров:
    3.432
  2. Oxxxy007
    Ответов:
    1
    Просмотров:
    1.394
  3. RealSteel
    Ответов:
    10
    Просмотров:
    1.687
  4. 6apik

    1.2.6 (1.3.4) Логи чата

    6apik, 26 июл 2013, в разделе: PW Сервер
    Ответов:
    23
    Просмотров:
    6.654
  5. autosnikers
    Ответов:
    42
    Просмотров:
    9.732
Загрузка...

Поделиться этой страницей