Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 10 1 2 3 ... ПоследняяПоследняя
Показано с 1 по 10 из 96

Тема: Geebrox

  1. #1
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±

    Geebrox




    Автор: Geebrox


    Описание:
    Geebrox - проект с жанром Role Play, который будет обновляться по просьбам и идеям пользователей.


    Архитектура проекта:

      Открыть/закрыть


    Обновлении:

     GRP v1

    • Разработаны системы регистрации и авторизации
    • Добавлена защита от быстрого переподключение игроков
    • Создана База Данных проекта
    • Сделан красивый дизайн авторизации и регистрации
    • Реализована функция проверки и отправки кода подтверждении на почту игрока


     GRP v2

    • Полностью переделан архитектура проекта
    • Регистрация переделана с использованием автоматонов, что теперь позволяет регистрироваться через обычный режим в диалогах, для тех игроков у которых не установлен локализация
    • Также переделана система авторизации через автоматоны
    • Разработан система администрации
    • Разработан система бана на время
    • Сделаны античиты на здоровье/бронью/деньги
    • Созданы несколько команд для администраторов
    • Сделан чат для администраторов
    • !! Система администратора находится в разработке, назначать администратора нужно вручную через базу данных



    Скрины:




    Видеообзор мода:

     GRP v1


    Дополнительная информация:


    • Хранение данных происходит в базе данных и используется плагин MySQL для взаимодействии с базой данных
    • Командный процессор Pawn.CMD
    • Используется инклюд fixes для исправление множество багов самп
    • Используется инклюд mdialog для повышение удобства при работе с диалогами
    • Используется плагин rustext для русификации текстдравов сервера
    • И много других полезных инклюдов/плагинов
    • Проект разделен на модули, что трудно будет понять для новичков
    • В каждой системе есть/будет отдельный инклюд settings, с которым можно изменить множество настроек системы/мода и будут находится они в самой папке системы



    Ссылки:




    Благодарности:

    • ziggi за помощь при исправление багов и за предоставление таких инклюдов как rustext и mdialog, что очень полезны в стадии разработки.
    • DeimoS за предоставление идей и помощи при реализации некоторых функций.




    P.S.:

    • Критерии приветствуются
    • Жду ваших идей для дальнейших разработок
    • Не забудьте оставить отзыв
    • Не забудьте следить за обновлениями мода, если он вам понравился :)
    Последний раз редактировалось Geebrox; 25.04.2018 в 22:21. Причина: v2.0

  2. #2
    Аватар для Web
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2014
    Сообщений
    67
    Репутация:
    8 ±
    Порадовала регистрация/авторизация

  3. #3
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    Можно узнать подробнее о include "rustext". Данный includ не в зависимости от русификатора(если нет его) всё равно выводит русские тексты в Текстдраве?

  4. #4
    Аватар для Nash_Brigers
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Адрес
    Moscow
    Сообщений
    167
    Репутация:
    44 ±
    Цитата Сообщение от Nurick Посмотреть сообщение
    Можно узнать подробнее о include "rustext". Данный includ не в зависимости от русификатора(если нет его) всё равно выводит русские тексты в Текстдраве?
    http://pro-pawn.ru/showthread.php?14...80%D0%BE%D0%B2
    Член сообщества Green Square.

  5. #5
    Аватар для SooBad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.04.2017
    Адрес
    Краснодар
    Сообщений
    83
    Репутация:
    20 ±
    Всё, конечно, хорошо реализовано, но вопрос лично к автору: самому-то удобно вносить помодульные правки? Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать. А так, всё это разделение - дешевые понты, которые только будут отнимать время, особенно, если модули с конструктивной зависимостью друг от друга.

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от SooBad Посмотреть сообщение
    Всё, конечно, хорошо реализовано, но вопрос лично к автору: самому-то удобно вносить помодульные правки? Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать. А так, всё это разделение - дешевые понты, которые только будут отнимать время, особенно, если модули с конструктивной зависимостью друг от друга.
    Если выкинуть Pawno в окно, забыв о нём как о страшном сне, и начать пользоваться нормальными редакторами, которые поддерживают удобный формат работы с проектами (тот же ST), то такие помодульные правки становятся крайне удобными, если организовать это самое разделение на модули адекватно (хороший пример от Ziggi, который я в своё время слегка доработал под себя, благодаря чему код стал в разы понятнее => отладка в разы быстрее). Нужно лишь привыкнуть к такой модульности и, собственно, продумать её самостоятельно, дабы помнить и понимать где находится тот или иной участок кода и почему.


    Это касается модульности в целом. Но вот то, что автор решил всю модульность реализовать через перехваты - существенный минус в плане удобства, как по мне. И он это поймёт в момент, когда начнёт писать системы, которые будут зависеть от того, в какой момент времени будет обрабатываться их код в коллбэках (например, будет один из инклудов содержать античит на скрытие диалоговых окон и, соответственно, его код должен выполняться первым в OnDialogResponse. Довольно велика вероятность, что какой-то из других инклудов, в которых есть работа с OnDialogResponse, будет подключён раньше этого инклуда с античитом благодаря банальной невнимательности и всё, античит уже на этот инклуд не распространяется => в моде есть дыра. И это самый банальный пример). В случае с перехватами порядок вызова кода не так нагляден, в отличии от варианта, в котором в инклудах создаются функции с нужным кодом и потом все эти функции вызываются в каждом из коллбэков мода (такое сейчас в Open-GTO можно увидеть).
    В общем, ради мнимой пользы от того, что подключение кода происходит "автоматически" (хотя писать придётся гораздо больше строк, чем с вариантом Open-GTO), теряется наглядность кода как для автора, так и, в особенности, для тех, кто решит сей мод использовать (таким подходом ты, Geebrox, создал хороший такой плацдарм для создания различных багов и ошибок).

    - - - Добавлено - - -

    И да, что-то я не заметил момента, когда ты используешь функции rustext и позволяешь выбрать подключившемуся игроку нужный русификатор. Просто попробуй банально скачать русификатор, отличный от твоего (а лучше поставить чистую GTA с "охлаждённотраханным" переводом) и посмотри во что твои текстдравы превратятся.
    Стоило первым пунктом твоей регистрации как раз сделать выбор подходящего русификатора, а уж если такого нет, сделать вариант регистрации на диалоговых окнах (как минимум, для всех текстдравов, где есть текст).
    Последний раз редактировалось DeimoS; 20.04.2017 в 19:13.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для SooBad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.04.2017
    Адрес
    Краснодар
    Сообщений
    83
    Репутация:
    20 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если выкинуть Pawno в окно, забыв о нём как о страшном сне, и начать пользоваться нормальными редакторами, которые поддерживают удобный формат работы с проектами (тот же ST), то такие помодульные правки становятся крайне удобными, если организовать это самое разделение на модули адекватно (хороший пример от Ziggi, который я в своё время слегка доработал под себя, благодаря чему код стал в разы понятнее => отладка в разы быстрее). Нужно лишь привыкнуть к такой модульности и, собственно, продумать её самостоятельно, дабы помнить и понимать где находится тот или иной участок кода и почему.
    Интересно, откуда взята ин-фа про использование стандартного компилятора?
    Помимо ST, кстати, их существует огромное множество, и большинство из них можно адаптировать под pawn, типо E-Builder'а и проч.

    Помодульное разделение стоит рассматривать только там, где оно приносит больше удобства и пользы, нежели затруднений в корректировке кода. Кстати, данные исходники к этому полу-полезному разделению также относятся. Зачем создавать 100500 текстовиков, когда достаточно вынести из коренного скрипта независимые данные, которые можно будет редактировать и подстраивать, при этом, не затрагивая и не изменяя другие модули?!
    Одно дело, использовать это преднамеренно, зная, что проблем не возникнет, но другое - это просто увлечься и юзать эти модули повсеместно.
    Дело, конечно, автора, как и что ему использовать, но читабельность это портит, и даже пометка "будет сложно для понимания новичкам" вряд ли скроет некомпетентную структуру построения кода данного проекта.

  8. #8
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±

    Ответы на вопросы

    Цитата Сообщение от SooBad Посмотреть сообщение
    Всё, конечно, хорошо реализовано, но вопрос лично к автору: самому-то удобно вносить помодульные правки? Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать. А так, всё это разделение - дешевые понты, которые только будут отнимать время, особенно, если модули с конструктивной зависимостью друг от друга.
    Цитата Сообщение от SooBad Посмотреть сообщение
    Интересно, откуда взята ин-фа про использование стандартного компилятора?
    Помимо ST, кстати, их существует огромное множество, и большинство из них можно адаптировать под pawn, типо E-Builder'а и проч.

    Помодульное разделение стоит рассматривать только там, где оно приносит больше удобства и пользы, нежели затруднений в корректировке кода. Кстати, данные исходники к этому полу-полезному разделению также относятся. Зачем создавать 100500 текстовиков, когда достаточно вынести из коренного скрипта независимые данные, которые можно будет редактировать и подстраивать, при этом, не затрагивая и не изменяя другие модули?!
    Одно дело, использовать это преднамеренно, зная, что проблем не возникнет, но другое - это просто увлечься и юзать эти модули повсеместно.
    Дело, конечно, автора, как и что ему использовать, но читабельность это портит, и даже пометка "будет сложно для понимания новичкам" вряд ли скроет некомпетентную структуру построения кода данного проекта.
    Лично мне работать с модульными файлами гораздо удобнее чем рыться в куче говне кода и все время скроллить то вниз то вверх в поисках той или иной информации. В своем ответе я попытаюсь максимально передать почему же так удобно работать с модульными файлами при разработке проекта.


    Плюсы такого подхода:

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



    Минусы:

    • Могут возникнуть трудности при перехватах, если быть не достаточно внимательным, как говорил DeimoS



    Скриншоты:




    Может тебе это кажется дешевыми понтами, но мне нет. Ну как говорится "Не попробуешь не узнаешь". Зачем создавать 100500 файлов? Для удобства наверное, ну конечно это не заметить редактором pawno ничего не поделаешь. Лично я пользуюсь редактором ST3 и там можно создавать проекты с личными настройками и помечать места разработки этого проекта (этими словами я не хочу сказать, что такая фича имеется только в ST3, никак нет). Подробнее в скриншоте.


    Помодульное разделение стоит рассматривать только там, где оно приносит больше удобства и пользы, нежели затруднений в корректировке кода.
    Не понимаю суть твоей логике, а где еще стоит это использовать, если именно не в этом случае? Почему ты думаешь что затрудняется корректировка кода, когда вся система перед твоими глазами, а не каша из ~30к строк кода. И поищи там куда ты дел переменную для хранение какой либо информации, все время будешь юзать комбинацию "ctrl+f" в поисках части кода. Поверь ты тратишь больше времени с таким подходом разработки, чем я.

    - - - Добавлено - - -

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Но вот то, что автор решил всю модульность реализовать через перехваты - существенный минус в плане удобства, как по мне. И он это поймёт в момент, когда начнёт писать системы, которые будут зависеть от того, в какой момент времени будет обрабатываться их код в коллбэках (например, будет один из инклудов содержать античит на скрытие диалоговых окон и, соответственно, его код должен выполняться первым в OnDialogResponse. Довольно велика вероятность, что какой-то из других инклудов, в которых есть работа с OnDialogResponse, будет подключён раньше этого инклуда с античитом благодаря банальной невнимательности и всё, античит уже на этот инклуд не распространяется => в моде есть дыра. И это самый банальный пример). В случае с перехватами порядок вызова кода не так нагляден, в отличии от варианта, в котором в инклудах создаются функции с нужным кодом и потом все эти функции вызываются в каждом из коллбэков мода (такое сейчас в Open-GTO можно увидеть).
    В общем, ради мнимой пользы от того, что подключение кода происходит "автоматически" (хотя писать придётся гораздо больше строк, чем с вариантом Open-GTO), теряется наглядность кода как для автора, так и, в особенности, для тех, кто решит сей мод использовать (таким подходом ты, Geebrox, создал хороший такой плацдарм для создания различных багов и ошибок).
    Да это минус, но только в том случае, если быть не внимательным во время разработки. У меня была похожая проблема, когда впервые написал систему одного проекта. Но здесь, если ты читал код перехватов, то можешь заметить, те части кода которые должны идти первыми в зависимости от их важности, те идут первыми без каких либо окончание кода (return). Те части кода, которыми можно пренебречь во время выполнение, те идут после всех перехватов. Но я этим не отрицаю, что у меня могут возникнуть проблемы в будущем. Но максимально стараюсь избегать от этого. И это мой первый проект с открытым исходным кодом) конечно буду учитывать мнение каждого пользователя и постараюсь подстраиваться под ними.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    И да, что-то я не заметил момента, когда ты используешь функции rustext и позволяешь выбрать подключившемуся игроку нужный русификатор. Просто попробуй банально скачать русификатор, отличный от твоего (а лучше поставить чистую GTA с "охлаждённотраханным" переводом) и посмотри во что твои текстдравы превратятся.
    Стоило первым пунктом твоей регистрации как раз сделать выбор подходящего русификатора, а уж если такого нет, сделать вариант регистрации на диалоговых окнах (как минимум, для всех текстдравов, где есть текст).
    Да я об этом знал уже когда подключал сам инклюд. Но это же не конец разработки, верно? Я сейчас работаю над этим, спасибо за идею с вариантом, тех у кого нет русификации вовсе, возможно для них сделаю отдельную регистрацию на диалогах.
    Последний раз редактировалось Geebrox; 20.04.2017 в 21:25.

  9. #9
    Аватар для SooBad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.04.2017
    Адрес
    Краснодар
    Сообщений
    83
    Репутация:
    20 ±
    Никто не говорит, что использовать разбиение по модулям в целом - бред, но злоупотреблять, как это сделано в данном случае - совершенно другое понятие. Модули нужны, и выносить в них из мода всякие левые участки, т.е., иными словами, отделять мусор - важно, но строить зависимость между файлами (хоть они и компилятся в единой виртуальной машине) - не что иное, как понтокод.
    Не спорю, может кому-то так удобнее работать, и я сам по себе иногда практикую такие подходы, но в меру удобства и пользы.

    Могу описать первый цикл проблем, с которыми ты можешь столкнуться:
    Пример: система администрирования, где каждый из модулей зависит от коренного, с этой самой системой. Проверки, значения переменных и прочее, в случае, если ты хочешь сделать глобальное обновление - придётся корректировать во всех модулях. Что тебе удобнее, - crtl+f в едином коде и ctrl+v, либо перебор всех модулей методом тыка, а также ctrl+f - ctrl+v? А если такая система не одна? А если модулей много, и ты уже не помнишь, где есть проверка/подсистема, а где нет?
    Думаю, логика теперь понятна.

  10. #10
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от SooBad Посмотреть сообщение
    Могу описать первый цикл проблем, с которыми ты можешь столкнуться:
    Пример: система администрирования, где каждый из модулей зависит от коренного, с этой самой системой. Проверки, значения переменных и прочее, в случае, если ты хочешь сделать глобальное обновление - придётся корректировать во всех модулях. Что тебе удобнее, - crtl+f в едином коде и ctrl+v, либо перебор всех модулей методом тыка, а также ctrl+f - ctrl+v? А если такая система не одна? А если модулей много, и ты уже не помнишь, где есть проверка/подсистема, а где нет?
    Думаю, логика теперь понятна.
    Это вообще не проблема, так как любом нормальном редакторе есть поиск по файлам всего проекта.

 

 
Страница 1 из 10 1 2 3 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •