PDA

Просмотр полной версии : [RP] Geebrox



Geebrox
20.04.2017, 11:47
http://i.imgur.com/XG2wWHP.jpg



Автор: Geebrox


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


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



http://i.imgur.com/bA0XyzS.png


Обновлении:




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




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




Скрины:


GRP v1 (http://imgur.com/a/b40fB)



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




https://www.youtube.com/watch?v=MqVtjOreLdI



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



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



Ссылки:


Скачать проект (https://github.com/Geebrox/GRP/releases)
Исходный код (https://github.com/Geebrox/GRP)
Сообщить о найденном баге сюд (https://github.com/Geebrox/GRP/issues)а



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


ziggi (http://pro-pawn.ru/member.php?4223-ziggi) за помощь при исправление багов и за предоставление таких инклюдов как rustext и mdialog, что очень полезны в стадии разработки.
DeimoS (http://pro-pawn.ru/member.php?2548-DeimoS) за предоставление идей и помощи при реализации некоторых функций.




P.S.:


Критерии приветствуются
Жду ваших идей для дальнейших разработок
Не забудьте оставить отзыв
Не забудьте следить за обновлениями мода, если он вам понравился :)

Web
20.04.2017, 13:26
Порадовала регистрация/авторизация

Nurick
20.04.2017, 16:43
Можно узнать подробнее о include "rustext". Данный includ не в зависимости от русификатора(если нет его) всё равно выводит русские тексты в Текстдраве?

Nash_Brigers
20.04.2017, 17:17
Можно узнать подробнее о include "rustext". Данный includ не в зависимости от русификатора(если нет его) всё равно выводит русские тексты в Текстдраве?
http://pro-pawn.ru/showthread.php?14309-rustext-%D1%80%D1%83%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F-%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%B0-%D1%80%D1%83%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D0%BE%D0%B2

SooBad
20.04.2017, 17:47
Всё, конечно, хорошо реализовано, но вопрос лично к автору: самому-то удобно вносить помодульные правки? Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать. А так, всё это разделение - дешевые понты, которые только будут отнимать время, особенно, если модули с конструктивной зависимостью друг от друга.

DeimoS
20.04.2017, 19:22
Всё, конечно, хорошо реализовано, но вопрос лично к автору: самому-то удобно вносить помодульные правки? Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать. А так, всё это разделение - дешевые понты, которые только будут отнимать время, особенно, если модули с конструктивной зависимостью друг от друга.

Если выкинуть Pawno в окно, забыв о нём как о страшном сне, и начать пользоваться нормальными редакторами, которые поддерживают удобный формат работы с проектами (тот же ST (http://www.sublimetext.ru/documentation/projects)), то такие помодульные правки становятся крайне удобными, если организовать это самое разделение на модули адекватно (хороший пример от Ziggi (https://ziggi.org/arhitektura-pawn-proekta-dlya-sa-mp/), который я в своё время слегка доработал под себя, благодаря чему код стал в разы понятнее => отладка в разы быстрее). Нужно лишь привыкнуть к такой модульности и, собственно, продумать её самостоятельно, дабы помнить и понимать где находится тот или иной участок кода и почему.


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

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

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

SooBad
20.04.2017, 19:48
Если выкинуть Pawno в окно, забыв о нём как о страшном сне, и начать пользоваться нормальными редакторами, которые поддерживают удобный формат работы с проектами (тот же ST (http://www.sublimetext.ru/documentation/projects)), то такие помодульные правки становятся крайне удобными, если организовать это самое разделение на модули адекватно (хороший пример от Ziggi (https://ziggi.org/arhitektura-pawn-proekta-dlya-sa-mp/), который я в своё время слегка доработал под себя, благодаря чему код стал в разы понятнее => отладка в разы быстрее). Нужно лишь привыкнуть к такой модульности и, собственно, продумать её самостоятельно, дабы помнить и понимать где находится тот или иной участок кода и почему.

Интересно, откуда взята ин-фа про использование стандартного компилятора?
Помимо ST, кстати, их существует огромное множество, и большинство из них можно адаптировать под pawn, типо E-Builder'а и проч.

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

Geebrox
20.04.2017, 21:21
Всё, конечно, хорошо реализовано, но вопрос лично к автору: самому-то удобно вносить помодульные правки? Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать. А так, всё это разделение - дешевые понты, которые только будут отнимать время, особенно, если модули с конструктивной зависимостью друг от друга.


Интересно, откуда взята ин-фа про использование стандартного компилятора?
Помимо ST, кстати, их существует огромное множество, и большинство из них можно адаптировать под pawn, типо E-Builder'а и проч.

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

Лично мне работать с модульными файлами гораздо удобнее чем рыться в куче говне кода и все время скроллить то вниз то вверх в поисках той или иной информации. В своем ответе я попытаюсь максимально передать почему же так удобно работать с модульными файлами при разработке проекта.


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

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


Минусы:

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


Скриншоты:


Как выглядит этап разработки с модульными файлами (http://imgur.com/Yy9ixSD)
Дерево проекта, что делает удобно доступ к нужным ресурсам (http://imgur.com/a/yjyH8)



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



Помодульное разделение стоит рассматривать только там, где оно приносит больше удобства и пользы, нежели затруднений в корректировке кода.

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

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


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

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



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

Да я об этом знал уже когда подключал сам инклюд. Но это же не конец разработки, верно? Я сейчас работаю над этим, спасибо за идею с вариантом, тех у кого нет русификации вовсе, возможно для них сделаю отдельную регистрацию на диалогах.

SooBad
20.04.2017, 21:29
Никто не говорит, что использовать разбиение по модулям в целом - бред, но злоупотреблять, как это сделано в данном случае - совершенно другое понятие. Модули нужны, и выносить в них из мода всякие левые участки, т.е., иными словами, отделять мусор - важно, но строить зависимость между файлами (хоть они и компилятся в единой виртуальной машине) - не что иное, как понтокод.
Не спорю, может кому-то так удобнее работать, и я сам по себе иногда практикую такие подходы, но в меру удобства и пользы.

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

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

Это вообще не проблема, так как любом нормальном редакторе есть поиск по файлам всего проекта.

Geebrox
20.04.2017, 21:46
Никто не говорит, что использовать разбиение по модулям в целом - бред, но злоупотреблять, как это сделано в данном случае - совершенно другое понятие. Модули нужны, и выносить в них из мода всякие левые участки, т.е., иными словами, отделять мусор - важно, но строить зависимость между файлами (хоть они и компилятся в единой виртуальной машине) - не что иное, как понтокод.
Не спорю, может кому-то так удобнее работать, и я сам по себе иногда практикую такие подходы, но в меру удобства и пользы.

Не вижу злоупотребление, да и модули не используются, чтобы сделать их не зависящими друг от друга, все во всем мире зависит от чего-либо, и я не хотел доказывать что компилятор будет их компилировать по отдельности. Это чисто из за удобства разработки. Какие же удобства? Можешь глянуть на пост выше. Ты так написал, что в твоем случае разработки, часть кодов не зависит друг от друга.

DeimoS
20.04.2017, 23:32
Да это минус, но только в том случае, если быть не внимательным во время разработки. У меня была похожая проблема, когда впервые написал систему одного проекта. Но здесь, если ты читал код перехватов, то можешь заметить, те части кода которые должны идти первыми в зависимости от их важности, те идут первыми без каких либо окончание кода (return). Те части кода, которыми можно пренебречь во время выполнение, те идут после всех перехватов. Но я этим не отрицаю, что у меня могут возникнуть проблемы в будущем. Но максимально стараюсь избегать от этого. И это мой первый проект с открытым исходным кодом) конечно буду учитывать мнение каждого пользователя и постараюсь подстраиваться под ними.

Я просто говорю тебе про это так как сам столкнулся с данной проблемой в своё время. Я тоже начинал использование модулей с перехватами, но когда этих модулей становится большое количество, становится не очень удобно и читаемо.
Просто приготовься к тому, что всё придётся переписывать в один прекрасный момент, когда вдруг осознаешь, что лучше всё сделать чуть иначе для дальнейшего удобства :) Я так раз 5 всё переписывал, меняя и структуру проекта, и приёмы построения кода, и саму реализацию некоторых систем. Модули - штука удобная, но только если изначально всё сделать максимально продуманно и удобно.




Интересно, откуда взята ин-фа про использование стандартного компилятора?


Выводы из слов о том, что модульное построение проекта неудобно.
В нормальном редакторе, который написан не тремя калеками и не ориентирован на скриптовый недоязык, предусмотрено всё для того, чтоб сделать работу с несколькими файлами максимально удобной для разработчика. Ни один крупный проект, особенно если над ним работает большая команда, не пишется в одном файле (сейчас речь не о SA-MP, если что), так что логично предположить, что люди, разрабатывающие редакторы, снабдили свои детища всем нужным, не?


Помимо ST, кстати, их существует огромное множество, и большинство из них можно адаптировать под pawn, типо E-Builder'а и проч.

Да ну? А я и не знал... :facepalm:


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

Очень похоже на "я просто привык писать всё в одном файле, поэтому вы все неправы!!!!!"...

Из всего тобой написанного я соглашусь лишь с тем, что автор переборщил с количеством модулей для одной системы. Можно было бы ограничиться тремя модулями: textdraw (исключительно код создания текстдравов), settings (настройки) и account (вся остальная система: переменные/диалоги/показ текстдравов и т.п.). Хотя даже и содержимое модуля textdraw можно закинуть в модуль account (куда-нибудь в конец), чтоб всё было под рукой. А уже сам модуль account изнутри (оформлением) логически разбить на части, отделив авторизацию от регистрации и т.п. Дотошное разделение и правда пользы не принесёт, ибо для редактирования одной лишь системы регистрации нужно держать открытыми аж 4 вкладки
(а через пару месяцев разработки, когда число систем за несколько десятков перейдёт, в редакторе вообще каша из вкладок будет). Но автор, я думаю, до этого и сам дойдёт, когда в его моде появится ещё пара-тройка систем, поэтому внимание на это и не заострял (я сам, когда только начал реализовывать использование модулей в своём проекте, продумывал и переписывал структуру модулей по ходу, ибо изначально ты не всегда понимаешь как и что должно выглядеть для большего удобства).

В остальном же, как я писал выше, если модульность организовать правильно, от неё будет лишь польза. Я модули использовал для отделения одной системы от другой (1 модуль = 1 система). В итоге всё получалось вполне себе компактно и удобно.

SooBad
21.04.2017, 00:28
Выводы из слов о том, что модульное построение проекта неудобно.

Очень похоже на "я просто привык писать всё в одном файле, поэтому вы все неправы!!!!!"...

Да не, это больше похоже на домыслы, взятые с потолка. Птички что ли нашептали?)
Допустим, я тоже задействую в своём проекте, от силы, 5-6 инклюдов, не включая стандартные, но это далеко не говорит о том, что всё построено на помодульном разделении. Нет, далеко нет. Это примерно 25-30% от общего объема кода. И туда помещены только независимые системы, которые корректируются раз в 2-3 недели, а то и реже.

Задам риторический вопрос: зачем нужен .pwn файл, если всё можно разделить на модули? Только для компиляции?

DeimoS
21.04.2017, 00:40
Да не, это больше похоже на домыслы, взятые с потолка. Птички что ли нашептали?)

Ну так тогда приведи хотя бы 3 аргумента против модульности, кроме "мне неудобно".


Допустим, я тоже задействую в своём проекте, от силы, 5-6 инклюдов, не включая стандартные, но это далеко не говорит о том, что всё построено на помодульном разделении. Нет, далеко нет. Это примерно 25-30% от общего объема кода. И туда помещены только независимые системы, которые корректируются раз в 2-3 недели, а то и реже.

Задам риторический вопрос: зачем нужен .pwn файл, если всё можно разделить на модули? Только для компиляции?

Отвечу риторическим вопросом на риторический вопрос: зачем нужны инклуды, если есть .pwn файл? Помещай содержимое всех инклудов (в том числе и стандартных) в .pwn тогда, раз модули не нужны.

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

SooBad
21.04.2017, 01:09
Ну так тогда приведи хотя бы 3 аргумента против модульности, кроме "мне неудобно".
Окей.
1) Читабельность такого кода в "открытом", т.е. "пабликовском" виде, другими юзерами. Кстати, ты сам же и объяснил тот факт, что о таком понятии, как "разделение на модули" не знает почти никто. А если и знают, то используют его в приватной разработке.
P.S.: как минимум - это первый мод, который я встретил в паблике, с применением данной "фичи" или "особенности", если её так можно назвать.
2) Сложность в самостоятельном прочтении такого кода. Это уже относится к большому количеству модулей. К примеру, в количественном эквиваленте > 40-50 штук. Хотя, кому как. Некоторые во вред себе быдлокодят, поэтому смысла в этом аргументе такие юзеры не найдут. Отсылочка.
3) Оригинальность и актуальность. Это даже можно отнести к первому пункту, но, стоит, наверно, затронуть это отдельно. Многие из тех, кто знает про модули, - не используют их, в том числе в своих проектах, либо задействуют частично. Полноценное использование, опять же, я встретил впервые, на примере данной темы.
4) Даже лишний пункт, но его, наверное, стоит оставить. Использовать какие-либо возможности, или нет - дело каждого. Да, есть общепринятые нормы написания кода, но они не распространяются на индивидуальные мнения юзеров в плане нестандартных решений. Автор просил конструктивной критики/предложений по написанию мода, и даже подчеркнул, что будет ориентироваться, исходя из общего мнения юзеров, - он её получил. Именно поэтому, своё мнение я тут никому не навязываю. Надо - используй, не надо - выбрось.



Отвечу риторическим вопросом на риторический вопрос: зачем нужны инклуды, если есть .pwn файл? Помещай содержимое всех инклудов (в том числе и стандартных) в .pwn тогда, раз модули не нужны.

Как-то не совсем корректно сам вопрос поставлен, вернее, даже, просто противоположно. Модули задействовать следует, и порой, это даже удобно. Но переусердствовать, и переводить всё на них - это уже чересчур. Собственно, из этого и возник спор. Думаю, я понятно объяснил?

Geebrox
21.04.2017, 06:42
Окей.
1) Читабельность такого кода в "открытом", т.е. "пабликовском" виде, другими юзерами. Кстати, ты сам же и объяснил тот факт, что о таком понятии, как "разделение на модули" не знает почти никто. А если и знают, то используют его в приватной разработке.
P.S.: как минимум - это первый мод, который я встретил в паблике, с применением данной "фичи" или "особенности", если её так можно назвать.

Вот именно я обозреваю всем этот проект, чтобы те кто не знали о таком методе использовали его, если посчитают это удобным. Если к примеру придумать что-то новое и сказать "Это людям покажется слишком тяжелым", то человечество не чуть не сдвинется с места, в плане развитии. Почему придумали компьютеры и прочие изобретение и не говорили "Это людям покажется слишком тяжелым"? Всем же впервые все кажется сложным и не достигаемым, не? Ты все время говоришь про читабельность от лиц всех остальных людей, если это для тебя не читабельный, то это не значит, что так покажется и остальным.



2) Сложность в самостоятельном прочтении такого кода. Это уже относится к большому количеству модулей. К примеру, в количественном эквиваленте > 40-50 штук. Хотя, кому как. Некоторые во вред себе быдлокодят, поэтому смысла в этом аргументе такие юзеры не найдут. Отсылочка.

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



3) Оригинальность и актуальность. Это даже можно отнести к первому пункту, но, стоит, наверно, затронуть это отдельно. Многие из тех, кто знает про модули, - не используют их, в том числе в своих проектах, либо задействуют частично. Полноценное использование, опять же, я встретил впервые, на примере данной темы.

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



4) Даже лишний пункт, но его, наверное, стоит оставить. Использовать какие-либо возможности, или нет - дело каждого. Да, есть общепринятые нормы написания кода, но они не распространяются на индивидуальные мнения юзеров в плане нестандартных решений. Автор просил конструктивной критики/предложений по написанию мода, и даже подчеркнул, что будет ориентироваться, исходя из общего мнения юзеров, - он её получил. Именно поэтому, своё мнение я тут никому не навязываю. Надо - используй, не надо - выбрось.

Правильно, я просил критиковать или оставлять идеи, но не говорил, что не буду спорить с оставленными отзывами и идеями, мне нужно доказательство того, что если предложенная идея будет реализовано, то это принесет пользы проекту. Не удалю же я проект, если предложат такого, верно?



Как-то не совсем корректно сам вопрос поставлен, вернее, даже, просто противоположно. Модули задействовать следует, и порой, это даже удобно. Но переусердствовать, и переводить всё на них - это уже чересчур. Собственно, из этого и возник спор. Думаю, я понятно объяснил?

Ты сначала говоришь, что проект реализованный через модули, сложно читаемый. А потом говоришь, что следует задействовать их, и так далее по кругу, во всех твоих постах. Остановишься в одном мнении?

DeimoS
21.04.2017, 14:30
Окей.
1) Читабельность такого кода в "открытом", т.е. "пабликовском" виде, другими юзерами.

Сугубо дело привычки. При том, привычки не очень хорошей.
Итог: такой себе аргумент



Кстати, ты сам же и объяснил тот факт, что о таком понятии, как "разделение на модули" не знает почти никто.

Большинство "скриптеров" и об оптимизации алгоритмов ничего не знают. Так что, теперь и на неё забивать?


А если и знают, то используют его в приватной разработке.
P.S.: как минимум - это первый мод, который я встретил в паблике, с применением данной "фичи" или "особенности", если её так можно назвать.

Open GTO, который с каменных веков разрабатывается - не? Ах да, это же первый мод, который ТЫ встретил. С этого и следует начинать


2) Сложность в самостоятельном прочтении такого кода. Это уже относится к большому количеству модулей. К примеру, в количественном эквиваленте > 40-50 штук. Хотя, кому как.

Я не зря каждый раз говорю о том, что модульность должна быть продуманной. Если под одну систему выделять один модуль, то проблем никаких не будет.
Итог: такой себе аргумент


3) Оригинальность и актуальность. Это даже можно отнести к первому пункту, но, стоит, наверно, затронуть это отдельно. Многие из тех, кто знает про модули, - не используют их, в том числе в своих проектах, либо задействуют частично. Полноценное использование, опять же, я встретил впервые, на примере данной темы.

Кто эти люди? Можешь конкретно перечислить все ники, а лучше привести их в эту тему, дабы они показали нам скрины своих проектов?
И повторюсь ещё раз: глупо ориентироваться на сообщество, которое на 90% состоит из людей, которые даже пару ошибок компилятора исправить не могут нормально, не говоря уже о чём-то более серьёзном. Сообщество SA-MP полно всяких нелогичных и глупых решений, от которых в других языках давно отказались, а в SA-MP они есть просто потому, что большая часть сообщества толком и не углубляется в программирование, а кодит абы как.


4) Даже лишний пункт, но его, наверное, стоит оставить. Использовать какие-либо возможности, или нет - дело каждого. Да, есть общепринятые нормы написания кода, но они не распространяются на индивидуальные мнения юзеров в плане нестандартных решений. Автор просил конструктивной критики/предложений по написанию мода, и даже подчеркнул, что будет ориентироваться, исходя из общего мнения юзеров, - он её получил. Именно поэтому, своё мнение я тут никому не навязываю. Надо - используй, не надо - выбрось.

Не стоит путать общепринятые нормы и простое незнание альтернативы. Тема с модульностью равносильна теме поклонников Pawno, которые отказываются переходить на более удобные редакторы просто потому, что они привыкли к стандартному недо-редактору. То, что эти люди полны консерватизма, не делает стандартный редактор Pawno удобным. Он лишь доказывает, что людям лень изучать что-то новое, что впоследствии принесёт лишь пользу. Им проще пользоваться устаревшими и неудобными, но проверенными методами (методами, которыми они начали пользоваться в самом начале изучения языка. То бишь, стагнацией заниматься любят люди).


Как-то не совсем корректно сам вопрос поставлен, вернее, даже, просто противоположно. Модули задействовать следует, и порой, это даже удобно. Но переусердствовать, и переводить всё на них - это уже чересчур. Собственно, из этого и возник спор. Думаю, я понятно объяснил?

Так а где та самая черта, после которой использование модулей = "чересчур"? Там, где ТЫ решил?

SooBad
21.04.2017, 15:09
Вот именно я обозреваю всем этот проект, чтобы те кто не знали о таком методе использовали его, если посчитают это удобным.

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

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

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

Ты сначала говоришь, что проект реализованный через модули, сложно читаемый. А потом говоришь, что следует задействовать их, и так далее по кругу, во всех твоих постах. Остановишься в одном мнении?

Да не, если бы я услышал про модули впервые, я наверное бы пошёл писать комментарии, типа: "Ах, как же это прелестно. Как круто построен весь алгоритм проекта!!!" (Нет)
От каких ВСЕХ лиц? Найди хотя бы один такой СЕРВЕР, построенный на модулях, в ПАБЛИКЕ. Среднестатистических модов сотни, и некоторые авторы из них достаточно продвинутые в сфере pawn-скриптинга, поэтому я могу смело сослаться на эти показатели. Тебе паблик весь пролистать что ли, в поисках иголки в стоге сена? Это кстати, и ответ DeimoS'у на его пост.

Да, я говорю за себя, также, как это делаете и вы. Довольно интересный довод: "Почему мы должны делать так, как это говоришь ты?". Ну тогда почему я должен делать так, как говорите вы? "Модули - это же альтернатива!1!1!". Ну, тогда почему иную альтернативу описывает та же самая официальная документация? Сначала ты говоришь о том, что разрабы просто забили на это, но в то же время критикуешь юзеров, которые фичу не используют. Несостыковочка выходит. Те, кто захотят что-либо найти - всегда находят это самое "что-либо". "Этого нет в интернете!!1!1!" - всего лишь нелепый отмазон, который подчёркивает "желание" юзера вкусить все тонкости.

Кому-то что-то доказывать тут бессмысленно, - уже давно понял, ты попросил доводы - я тебе их привёл. Сочная ягодка в лесу не для всех растёт, поэтому идти позади толпы по одной тропе - значит утонуть в первом же болоте. Я это про "стандартизированные" мнения форумых юзеров.

Собственно, ещё, по поводу той части скриптеров, кои относятся к этому 10% количеству "продвинутых": большинство из таких людей имеет собственные игровые проекты. Они - самоучки, которые развивают свои сервера, в то же время не просиживая драгоценное время на форумах, и не споря в каждой теме с "общепринятым" мнением. Это - разработчики известных крупных серверов, и я, в принципе, могу назвать их поимённо, ибо с несколькими из них мне довелось пообщаться. S: Сочувствую тем, чей круг общения ограничен быдлокодерами и прочими "недо-программистами".

DeimoS
21.04.2017, 15:50
Найди хотя бы один такой СЕРВЕР, построенный на модулях, в ПАБЛИКЕ.

Я тебе уже третий или четвёртый раз указываю на такой - Open-GTO (https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiTurjxuLXTAhVHDZoKHYXVAqoQFgglMAA&url=https%3A%2F%2Fgithub.com%2FOpen-GTO%2FOpen-GTO&usg=AFQjCNEJo755heqxt1fZDnXkirLsFsuCpA&sig2=4L6fPN5LiNqHzmezB_lgpg&cad=rjt).
Есть и ещё, но я, увы, не интересуюсь паблик модами, поэтому названия так просто не скажу.




Среднестатистических модов сотни, и некоторые авторы из них достаточно продвинутые в сфере pawn-скриптинга, поэтому я могу смело сослаться на эти показатели. Тебе паблик весь пролистать что ли, в поисках иголки в стоге сена? Это кстати, и ответ DeimoS'у на его пост.

И опять же на что ты ссылаешься? На паблик моды, большинство из которых написаны новичками, которые собрали их из кусков других модов и паблик-работ. И качество у них соответствующее. Они написаны так не потому, что так удобнее, а потому что люди альтернативы не видели и знания не позволяют дойти до чего-то большего.
Понятие "большинство" не всегда равно понятию "правильно". И в данном случае мнение большинства обусловлен безграмотностью в поставленном вопросе. Хочешь ориентироваться на это мнение - пожалуйста. Но не нужно убеждать окружающих, что данное мнение - истина.


Довольно интересный довод: "Почему мы должны делать так, как это говоришь ты?". Ну тогда почему я должен делать так, как говорите вы?

Эмм, а кто тебя призывает делать так, как говорим мы? О_о Ты пришёл в тему и начал утверждать, что модули не нужны и тебе просто говорят, что это не так. Ты сам пришёл в эту тему, пытаясь отстоять своё собственное мнение, а не мы позвали тебя или пришли в твою тему.


"Модули - это же альтернатива!1!1!". Ну, тогда почему иную альтернативу описывает та же самая официальная документация?

А вот тут подробнее, пожалуйста. В какой это документации и что описывается? Можно ссылочки?



Сначала ты говоришь о том, что разрабы просто забили на это, но в то же время критикуешь юзеров, которые фичу не используют.

Какие разрабы и на что забили? И кто критикует юзеров? О чём ты?



Кому-то что-то доказывать тут бессмысленно, - уже давно понял, ты попросил доводы - я тебе их привёл. Сочная ягодка в лесу не для всех растёт, поэтому идти позади толпы по одной тропе - значит утонуть в первом же болоте. Я это про "стандартизированные" мнения форумых юзеров.

Это не доводы, которые подтверждают твои слова, а твоё личное мнение, которое не подкреплено ничем.


Собственно, ещё, по поводу той части скриптеров, кои относятся к этому 10% количеству "продвинутых": большинство из таких людей имеет собственные игровые проекты. Они - самоучки, которые развивают свои сервера, в то же время не просиживая драгоценное время на форумах, и не споря в каждой теме с "общепринятым" мнением. Это - разработчики известных крупных серверов, и я, в принципе, могу назвать их поимённо, ибо с несколькими из них мне довелось пообщаться. S: Сочувствую тем, чей круг общения ограничен быдлокодерами и прочими "недо-программистами".

Эмм, это ты так похвастался или что? И мне не очень понятны попытки съязвить. Если это попытка поставить себя выше других, то она не очень удачная, увы.


P.S. Я просто не пойму: ты действительно считаешь, что гораздо удобнее выискивать нужный код среди десятков тысяч строк, нежели зайти в файл конкретной системы и всё? Если это так, то ты явно какой-то мазохист и не особо ценишь своё собственное время.

SooBad
21.04.2017, 16:28
Я тебе уже третий или четвёртый раз указываю на такой - Open-GTO (https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiTurjxuLXTAhVHDZoKHYXVAqoQFgglMAA&url=https%3A%2F%2Fgithub.com%2FOpen-[QUOTE=DeimoS;84137]GTO%2FOpen-GTO&usg=AFQjCNEJo755heqxt1fZDnXkirLsFsuCpA&sig2=4L6fPN5LiNqHzmezB_lgpg&cad=rjt).
Есть и ещё, но я, увы, не интересуюсь паблик модами, поэтому названия так просто не скажу.

Ок. С этим, я думаю, разобрались. Примеров такого использования - считанные единицы.



И опять же на что ты ссылаешься? На паблик моды, большинство из которых написаны новичками, которые собрали их из кусков других модов и паблик-работ. И качество у них соответствующее. Они написаны так не потому, что так удобнее, а потому что люди альтернативы не видели и знания не позволяют дойти до чего-то большего.
Понятие "большинство" не всегда равно понятию "правильно". И в данном случае мнение большинства обусловлен безграмотностью в поставленном вопросе. Хочешь ориентироваться на это мнение - пожалуйста. Но не нужно убеждать окружающих, что данное мнение - истина.

Я ориентируюсь только на своё собственное суждение, доказанные факты, и индивидуальные тесты. Неоправданные мнения никогда не интересовали, думаю, это понятно.
Ты попросил обосновать слова "ВСЕ", или "БОЛЬШИНСТВО", - я обосновал их. И далеко не все авторы известных модов, хоть и копий - новички. Есть и более-менее структурированные моды, с неплохой оптимизацией и проч.



Эмм, а кто тебя призывает делать так, как говорим мы? О_о Ты пришёл в тему и начал утверждать, что модули не нужны и тебе просто говорят, что это не так. Ты сам пришёл в эту тему, пытаясь отстоять своё собственное мнение, а не мы позвали тебя или пришли в твою тему.

Никто и не призывает. Просто такое чувство, что тут все основываются на мнениях других?! На самом деле это в корне не так...
Я высказал своё личное мнение, при этом, обоснованно, изначально задействуя данный приём в относительной степени. Да, мой мод не полностью построен на модулях, но они там присутствуют -> частично. Как можно вообще говорить об их полном отсутствии, если стандартно-подгружаемые инклюды/библиотеки - те же модули, без которых сервер, по дефолту, не может работать? (Тут я именно про библиотеки)


А вот тут подробнее, пожалуйста. В какой это документации и что описывается? Можно ссылочки?

Твои слова:



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

Ровным счётом - ты сам это и подразумевал, ибо никакой полной информации о помодульном разделении и не существует. Возможно, только лишь в приватных каналах.
Спроси любого юзера, как по другому называется инклюд, или текстовый файл, и, примерно, в 90% случаях ты не получишь ответа "модуль".



И кто критикует юзеров? О чём ты?

Опять же, твоя цитата:



Не стоит путать общепринятые нормы и простое незнание альтернативы. Тема с модульностью равносильна теме поклонников Pawno, которые отказываются переходить на более удобные редакторы просто потому, что они привыкли к стандартному недо-редактору. То, что эти люди полны консерватизма, не делает стандартный редактор Pawno удобным. Он лишь доказывает, что людям лень изучать что-то новое, что впоследствии принесёт лишь пользу. Им проще пользоваться устаревшими и неудобными, но проверенными методами (методами, которыми они начали пользоваться в самом начале изучения языка. То бишь, стагнацией заниматься любят люди).

Думаю, это можно отнести к косвенной критике, ведь ты ссылаешься на "непродуктивность" юзеров.


Эмм, это ты так похвастался или что? И мне не очень понятны попытки съязвить. Если это попытка поставить себя выше других, то она не очень удачная, увы.

Интересно, где проявляется моя попытка поставить себя "выше других"? Очередной апофеоз, взятый с потолка, и ничем не обоснованный.
Ты начал разговор со стороны БОЛЬШИНСТВА - как юзеров, которые не способы написать нормальный код. Так вот, я и привёл тебе статистику среди таких юзеров. Разве это не может подтолкнуть на мнение о том, что ты специально высчитываешь их в количественном эквиваленте? Поэтому, тезис предельно ясен.



P.S. Я просто не пойму: ты действительно считаешь, что гораздо удобнее выискивать нужный код среди десятков тысяч строк, нежели зайти в файл конкретной системы и всё? Если это так, то ты явно какой-то мазохист и не особо ценишь своё собственное время.


Думаю, что потеря времени тут заключается только у тех, кто строит весь мод, основанный исключительно на модулях, с пустым .pwn файлом. Я бы не придирался к структуре, если бы всё было иначе (Если это можно назвать придиркой). Но что мы видим на данный момент - весь мод состоит из десятков .txt, и сам "компиляционный файл" задействуется напрямую, для компиляции. Где тут удобство? Рыться в маленьких отрывках кода, в поисках нужного?

VVWVV
21.04.2017, 20:58
Некоторые моменты:

Структура модулей не является идеалом. Например, в основной папке (geebox) очень много внешних библиотек, которые, я думаю, стоило бы переместить в отдельную директорию. В ней они не будут мешать работе с модулями, т.к., ИМХО, очень трудно выбрать какой-то из модулей "на ходу". Тем более, что количество файлов в главной директории будет постепенно увеличиваться, что, соответственно, приведёт к большему беспорядку, таким образом, замедлив скорость разработки.
Мне кажется, что лучше использовать автономную версию foreach из форка, т.к. она наиболее полезнее и безопаснее, чем старые версии, для которых давно уже не было обновлений. Об итераторах и foreach-версиях я говорил в этом уроке (http://pro-pawn.ru/showthread.php?15081#different_versions).
Какой смысл использовать оператор "#" для указания строки? Я думаю многие текстовые редакторы и IDE уже имеют опцию автоматически закрывать кавычки.
Следует помнить, что всё ещё есть люди, которые используют старый компилятор, а в нём, как известно, есть file guard. Таким образом, используя два файла с одинаковыми названиями, компилятор просто не включит один из них, что довольна неприятно, ибо этот файл является основным.
У пользователей Unix могут быть проблемы с компиляцией мода, поскольку используется обратный слэш, который допустим только в Windows.


Немного ответов:


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


Могут возникнуть трудности при перехватах, если быть не достаточно внимательным, как говорил DeimoS
Можно использовать разные библиотеки, например, y_hooks. Хотя, мне кажется, библиотеки YSI мало кто использует у себя в проекте, только лишь западные пользователи.

Geebrox
22.04.2017, 00:26
Некоторые моменты:

Структура модулей не является идеалом. Например, в основной папке (geebox) очень много внешних библиотек, которые, я думаю, стоило бы переместить в отдельную директорию. В ней они не будут мешать работе с модулями, т.к., ИМХО, очень трудно выбрать какой-то из модулей "на ходу". Тем более, что количество файлов в главной директории будет постепенно увеличиваться, что, соответственно, приведёт к большему беспорядку, таким образом, замедлив скорость разработки.
Мне кажется, что лучше использовать автономную версию foreach из форка, т.к. она наиболее полезнее и безопаснее, чем старые версии, для которых давно уже не было обновлений. Об итераторах и foreach-версиях я говорил в этом уроке (http://pro-pawn.ru/showthread.php?15081#different_versions).
Какой смысл использовать оператор "#" для указания строки? Я думаю многие текстовые редакторы и IDE уже имеют опцию автоматически закрывать кавычки.
Следует помнить, что всё ещё есть люди, которые используют старый компилятор, а в нём, как известно, есть file guard. Таким образом, используя два файла с одинаковыми названиями, компилятор просто не включит один из них, что довольна неприятно, ибо этот файл является основным.
У пользователей Unix могут быть проблемы с компиляцией мода, поскольку используется обратный слэш, который допустим только в Windows.


Спасибо за советы, будут реализованы в дальнейших версиях, но 4 пункт не рассматривается. Я не могу заботится о редакторах каждого юзера.



Немного ответов:


Можно использовать разные библиотеки, например, y_hooks. Хотя, мне кажется, библиотеки YSI мало кто использует у себя в проекте, только лишь западные пользователи.


Мне не особо нравится вся эта библиотека YSI, я знал про y_hooks, но ради него не хочу подключать всю остальную часть библиотеки YSI. Если есть в просторах интернета вырезанный из этой библиотеки только функционал y_hooks, предоставь ссылку, буду очень признателен, хотел бы конечно использовать его.

Daniel_Cortez
22.04.2017, 10:49
Этот мод нелегален по одной простой причине: несовместимость лицензий GPL (плагин MySQL и, как следствие, сам мод, ибо виральная лицензия) и MPL 1.1 (sscanf2, foreach).

Long-
22.04.2017, 14:34
Сугубо дело привычки. При том, привычки не очень хорошей.
Итог: такой себе аргумент




Большинство "скриптеров" и об оптимизации алгоритмов ничего не знают. Так что, теперь и на неё забивать?



Open GTO, который с каменных веков разрабатывается - не? Ах да, это же первый мод, который ТЫ встретил. С этого и следует начинать



Я не зря каждый раз говорю о том, что модульность должна быть продуманной. Если под одну систему выделять один модуль, то проблем никаких не будет.
Итог: такой себе аргумент



Кто эти люди? Можешь конкретно перечислить все ники, а лучше привести их в эту тему, дабы они показали нам скрины своих проектов?
И повторюсь ещё раз: глупо ориентироваться на сообщество, которое на 90% состоит из людей, которые даже пару ошибок компилятора исправить не могут нормально, не говоря уже о чём-то более серьёзном. Сообщество SA-MP полно всяких нелогичных и глупых решений, от которых в других языках давно отказались, а в SA-MP они есть просто потому, что большая часть сообщества толком и не углубляется в программирование, а кодит абы как.



Не стоит путать общепринятые нормы и простое незнание альтернативы. Тема с модульностью равносильна теме поклонников Pawno, которые отказываются переходить на более удобные редакторы просто потому, что они привыкли к стандартному недо-редактору. То, что эти люди полны консерватизма, не делает стандартный редактор Pawno удобным. Он лишь доказывает, что людям лень изучать что-то новое, что впоследствии принесёт лишь пользу. Им проще пользоваться устаревшими и неудобными, но проверенными методами (методами, которыми они начали пользоваться в самом начале изучения языка. То бишь, стагнацией заниматься любят люди).



Так а где та самая черта, после которой использование модулей = "чересчур"? Там, где ТЫ решил?

Помню ты всем говорил что если выкладываешь что-то на публику , то нужно придерживаться всеобщих рекомендаций форума(Этого, и прочих), Geebrox, не сможет прогнуться под все редакторы пользователей которые будут качать мод, а в большинстве(Почти все юзеры) используют стандартный редактор(Пусть даже тот же Zeex), поэтому стоило этот мод как минимум не разбивать на модули, хотя бы объекты/маппинг и прочее, ибо юзерам вообще будет неудобно с ним работать(Нет поддержки вкладок), конечно те у кого Atom/ST можно и удобно с ним работать, но простых юзеров тоже не нужно принуждать(Заставлять) качать другие редакторы ST/Atom(У большинства Atom даже и не пойдет, ибо требует очень много(Вспомнил Стяжкина xD)), а так мод хорош.

Geebrox
22.04.2017, 14:43
Помню ты всем говорил что если выкладываешь что-то на публику , то нужно придерживаться всеобщих рекомендаций форума(Этого, и прочих), Geebrox, не сможет прогнуться под все редакторы пользователей которые будут качать мод, а в большинстве(Почти все юзеры) используют стандартный редактор(Пусть даже тот же Zeex), поэтому стоило этот мод как минимум не разбивать на модули, хотя бы объекты/маппинг и прочее, ибо юзерам вообще будет неудобно с ним работать(Нет поддержки вкладок), конечно те у кого Atom/ST можно и удобно с ним работать, но простых юзеров тоже не нужно принуждать(Заставлять) качать другие редакторы ST/Atom(У большинства Atom даже и не пойдет, ибо требует очень много(Вспомнил Стяжкина xD)), а так мод хорош.

Где же в всеобщих рекомендациях указана, что нужно использовать стандартный редактор Pawno? А про то что у всех разные редакторы я писал чуть выше:


Я не могу заботится о редакторах каждого юзера.


А так, спасибо за отзыв.

Long-
22.04.2017, 14:47
Изменил.




Где же в всеобщих рекомендациях указана, что нужно использовать стандартный редактор Pawno? А про то что у всех разные редакторы я писал чуть выше:




А так, спасибо за отзыва.

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

ziggi
22.04.2017, 15:10
Этот мод нелегален по одной простой причине: несовместимость лицензий GPL (плагин MySQL и, как следствие, сам мод, ибо виральная лицензия) и MPL 1.1 (sscanf2, foreach).

Я думаю, что почти все SA-MP моды/скрипты нелегальны, с лицензиями никто не заморачивается. Например, fixes.inc никто не может использовать, ибо там даже лицензии нет.

Nexius_Tailer
22.04.2017, 17:30
Где же в всеобщих рекомендациях указана, что нужно использовать стандартный редактор Pawno? А про то что у всех разные редакторы я писал чуть выше:
Да если бы даже и написано было, то всё равно это ничего бы не поменяло, т.к. выбор у каждого в итоге свой.

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

VVWVV
22.04.2017, 18:21
Я лично думаю, что следует сначала написать большую кодовую базу, чтобы уже смотреть на более-менее обросший функционалом мод в плане эффективности именно такого разбиения на файлы, хотя скорее всего рефакторинг в любом случае будет неизбежным.

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

DeimoS
22.04.2017, 20:11
Ровным счётом - ты сам это и подразумевал, ибо никакой полной информации о помодульном разделении и не существует. Возможно, только лишь в приватных каналах.

Эмм, то бишь автор языка должен ещё и объяснять для чего может пригодится директива, которая позволяет помещать содержимое сторонних файлов внутрь других? Самого определения: "Директива #include вставляет содержимое указанного файла в текущую позицию" - для тебя не является объяснением? О_о Сам хоть понимаешь о чём пишешь?


Спроси любого юзера, как по другому называется инклюд, или текстовый файл, и, примерно, в 90% случаях ты не получишь ответа "модуль".

Примерно в 90% случаев я услышу "я хз. Сам никогда не создавал такие и не представляю как их создать"


Опять же, твоя цитата:

Думаю, это можно отнести к косвенной критике, ведь ты ссылаешься на "непродуктивность" юзеров.

Я критикую не юзеров, которые не разбираются в Pawn, а тебя как человека, который ссылается на мнение этих юзеров. С таким же успехом можно где-нибудь на семинаре по химии в университете ссылаться на мнение школьника Васи из 8Б, который только первый год проходит химию и вообще ей не особо интересуется.
Большей части сообщества SA-MP какое-либо углублённое программирование вообще никаким образом не сдалось. Им нужно просто запустить сервер, вставить в мод пару систем с паблика и всё (так была создана большая часть модов для паблика). И глупо ориентироваться на мнение этих людей, так как они банально не интересуются обсуждаемым вопросом.



Интересно, где проявляется моя попытка поставить себя "выше других"? Очередной апофеоз, взятый с потолка, и ничем не обоснованный.
Ты начал разговор со стороны БОЛЬШИНСТВА - как юзеров, которые не способы написать нормальный код. Так вот, я и привёл тебе статистику среди таких юзеров. Разве это не может подтолкнуть на мнение о том, что ты специально высчитываешь их в количественном эквиваленте? Поэтому, тезис предельно ясен.

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

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


Думаю, что потеря времени тут заключается только у тех, кто строит весь мод, основанный исключительно на модулях, с пустым .pwn файлом. Я бы не придирался к структуре, если бы всё было иначе (Если это можно назвать придиркой). Но что мы видим на данный момент - весь мод состоит из десятков .txt, и сам "компиляционный файл" задействуется напрямую, для компиляции. Где тут удобство? Рыться в маленьких отрывках кода, в поисках нужного?

Достаточно лишь адекватно называть все модули, чтоб поиск нужного занимал минимум времени для стороннего человека, который видит мод впервые. Это на случай, если человек не слышал о поиске по файлам.
Если же ты пишешь код сам и сам продумываешь структуру проекта - даже без поиска по файлам поиск нужного кода занимает считанные секунды.
И да, то, как задействовал модули автор - неудачный пример. И мы это ещё несколько сообщений назад решили.



Помню ты всем говорил что если выкладываешь что-то на публику , то нужно придерживаться всеобщих рекомендаций форума(Этого, и прочих), Geebrox, не сможет прогнуться под все редакторы пользователей которые будут качать мод, а в большинстве(Почти все юзеры) используют стандартный редактор(Пусть даже тот же Zeex), поэтому стоило этот мод как минимум не разбивать на модули, хотя бы объекты/маппинг и прочее, ибо юзерам вообще будет неудобно с ним работать(Нет поддержки вкладок), конечно те у кого Atom/ST можно и удобно с ним работать, но простых юзеров тоже не нужно принуждать(Заставлять) качать другие редакторы ST/Atom(У большинства Atom даже и не пойдет, ибо требует очень много(Вспомнил Стяжкина xD)), а так мод хорош.

Ты сейчас путаешь тёплое с мягким.

Одно дело - придерживаться общего стиля написания кода. Тут и глазу приятно будет, и упрощается сама работа с кодом (учитывая то, что все рекомендации форума не являются распространёнными среди сообщества SA-MP и они созданы как раз для того, чтоб сделать код опрятнее).
Например, если бы все придерживались общего стиля именования функций/переменных и нормально знали английский, дабы давать правильные имена, то можно было бы спокойно пользоваться поиском для нахождения какого-либо участка кода, например, в паблик моде. То бишь, если переменная создана для хранения ID автомобиля, она будет называться "vehicleid", а не "v/vid/veh/car/avto/bibika" и т.п. С таким подходом ты мог бы открывать любой чужой скрипт и чувствовать себя в нём максимально комфортно: всё, что от тебя требовалось бы - это прочесть код, не расшифровывая имена функций на транслите, чтоб понять алгоритм работы системы и всё.

Другое дело - структурирование проекта и прочие подобные вещи, которые к скриптингу толком не относятся.
То, что кто-то до сих пор разводит огонь с помощью трения палки о палку, не обязывает производителей газовых печей делать специальную выемку в печи, где бы наш первобытный человек мог бы добывать огонь.
То же самое и с публикуемыми скриптами: мне, например, не очень удобно работать с модом, у которого не продумана структура, а какому-нибудь американцу Джеймсу неудобно читать русский текст, что присутствует в данном моде, ибо он не знает русский язык. Так что, автору теперь нужно писать сразу и модульную версию, и "монолитную", а заодно и на все языки мира переводить их?

Это всё я к тому, что таких вот "придирок", которые не относятся к скриптингу, можно найти огромное множество и всё равно всем не получится угодить. А те же самые рекомендации, которые ты упомянул, как раз направлены на вещи, относящиеся к скриптингу. Поэтому не вижу связи тут.



Nexius_Tailer, разве тут SooBad критикует конкретно подход этого проекта?

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

Если написать более-менее большую базу, разбить её на модули окажется сложнее, нежели если продумывать модульность изначально. Начиная тем, что у систем могут появится зависимости в виде каких-то общих переменных (например, в начале коллбэка записывается ID авто, в котором находится игрок и уже эта переменная используется во всём коде ниже. Это самый простой вариант) и заканчивая банальной ленью. Гораздо эффективнее изначально заняться разделением проекта на модули и на ходу продумывать/корректировать всю структуру.

SooBad
22.04.2017, 23:42
Эмм, то бишь автор языка должен ещё и объяснять для чего может пригодится директива, которая позволяет помещать содержимое сторонних файлов внутрь других? Самого определения: "Директива #include вставляет содержимое указанного файла в текущую позицию" - для тебя не является объяснением? О_о Сам хоть понимаешь о чём пишешь?


Как минимум, в документации и термин "модуль" не задействован. И отсылка к разделению также отсутствует. До самых зеленых такое понятие на дойдёт.



Я критикую не юзеров, которые не разбираются в Pawn, а тебя как человека, который ссылается на мнение этих юзеров.
Большей части сообщества SA-MP какое-либо углублённое программирование вообще никаким образом не сдалось. Им нужно просто запустить сервер, вставить в мод пару систем с паблика и всё (так была создана большая часть модов для паблика). И глупо ориентироваться на мнение этих людей, так как они банально не интересуются обсуждаемым вопросом.


Исходя из твоей логики, я делаю вывод, что в такой структуре мода разберется лишь пару процентов от общего числа юзеров, посетивших данную тему. Тогда смысл проект вообще выкладывать в паблик? Более-менее опытные скриптеры ничего нового тут не увидят, остальные, с отмашкой "сложнааа" закроют вкладку.



Ну так если ты знаком со многими скриптерами и владельцами крупных серверов, то возьми и попроси у них пару вырезок кода с их скриптов


Как же я раньше не додумался до этого? (*сарказм*) Наверное, и доводы я свои привёл, на основе данного факта. В целом, некоторые разрабы даже исходников плагинов не скрывают, и предоставляют части своих работ на показ игроков. Пример таких проектов: Absolute RP, OrioN RPG и другие.



Достаточно лишь адекватно называть все модули, чтоб поиск нужного занимал минимум времени для стороннего человека, который видит мод впервые. Это на случай, если человек не слышал о поиске по файлам.
Если же ты пишешь код сам и сам продумываешь структуру проекта - даже без поиска по файлам поиск нужного кода занимает считанные секунды.


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

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

Geebrox
23.04.2017, 00:03
Тогда смысл проект вообще выкладывать в паблик? Более-менее опытные скриптеры ничего нового тут не увидят, остальные, с отмашкой "сложнааа" закроют вкладку.

Не все малоопытные пользователи, которые не знают про модули, "убегут" из этой темы, тебе этого не доказать. Вот именно для таких пользователей, которые еще не знают про модули, я и делаю этот проект. Это лишь пример как можно пользоваться модулями, но я никого не вынуждаю именно так реализовать их, повторюсь ЭТО ЛИШЬ ПРИМЕР как можно пользоваться модулями.



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

Я и не собираюсь переделывать модули и остальные части проекта, как я говорил, сначала я должен увидеть пользу в оставленных советах, чтобы реализовать их. Но пока что таких советов от тебя не видать. Вот к примеру советы от пользователя VVWVV довольно хорошие.

Nexius_Tailer
23.04.2017, 00:41
Nexius_Tailer, разве тут SooBad критикует конкретно подход этого проекта?

Как мне кажется, слова: "Куда проще вынесни туда лишь соединение с бд, к примеру, античит и ещё несколько систем, которые не нужно будет постоянно редактировать." - подразумевают то, что в модули стоит выносить лишь некоторые системы, а всё остальное писать в основном файле, то бишь, осуждение желания построить проект на модулях.
Ну очевидно, что этого проекта, раз пишет в теме этого проекта.
И не вижу осуждения. Вижу лишь, что модульность стоило бы делать в более мягком ключе, что тоже бы являлось модульностью.


Если написать более-менее большую базу, разбить её на модули окажется сложнее, нежели если продумывать модульность изначально. Начиная тем, что у систем могут появится зависимости в виде каких-то общих переменных (например, в начале коллбэка записывается ID авто, в котором находится игрок и уже эта переменная используется во всём коде ниже. Это самый простой вариант) и заканчивая банальной ленью. Гораздо эффективнее изначально заняться разделением проекта на модули и на ходу продумывать/корректировать всю структуру.
Я говорю конкретно про этот мод, который уже структурирован. И как видно, за неимением опыта в таком деле сразу организовать структуру проекта грамотно далеко не у всех получается, и на практике потом с очень большой вероятностью что-то переделывать в этом плане всё равно придётся.

...Наверное это ещё одна преграда на пути создания структурированного проекта у тех, кто таким до этого не занимался

DeimoS
23.04.2017, 04:24
Как минимум, в документации и термин "модуль" не задействован. И отсылка к разделению также отсутствует. До самых зеленых такое понятие на дойдёт.

В документации много чего не описано, чем, в итоге, пользуются многие как в SA-MP, так и в других проектах, где используется Pawn. И этими "тайными знаниями" почему-то всё равно пользуются...
Это касаемо идеи о том, что всё должно быть обязательно описано.

Теперь касаемо модульности. Так а чем тебя не устраивает то определение для директивы, что есть сейчас в документации? Если я вдруг решу создать отдельный инклуд и прописать в нём "print("Hello, World!);", а потом подключить его в скрипт, он так же будет считаться модулем, как и любой другой инклуд. Или автору нужно было перечислить все возможные синонимы слова "модуль", дабы удовлетворить тебя? В чём смысл твоих слов?



Исходя из твоей логики, я делаю вывод, что в такой структуре мода разберется лишь пару процентов от общего числа юзеров, посетивших данную тему. Тогда смысл проект вообще выкладывать в паблик? Более-менее опытные скриптеры ничего нового тут не увидят, остальные, с отмашкой "сложнааа" закроют вкладку.

Для таких людей есть море других модов, которые собраны на коленке и имеют "понятную" структуру. Правда большинство из них не поддерживается более и багов там полно, ну да не беда.
Оставшимся же процентам этот мод может зайти, если автор продолжит его развивать и доведёт до ума структуру проекта.



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

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


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

Так никто и не говорит, что ты кого-то что-то заставляешь делать. Как и тебя никто не заставляет что-то делать. Мы просто ведём диалог на тему модульности и не более.

Если брать проект в его текущем виде - естественно нет.
Но если учесть, что проект будет развиваться и со временем систем станет больше в несколько десятков раз - то определённо да, модульное разделение будет только плюсом, ибо:
1) Если некий Вася возьмёт данный мод за основу в момент, когда версия мода будет равна 1.0, а через неделю автор выпустит версию 1.1, где добавит несколько новых систем в виде отдельных модулей, то тот самый Вася сможет скачать эти самые модули и вшить их в свой мод без особых трудностей, при этом не теряя собственных наработок.
2) Если вдруг в какой-то системе обнаружится баг, а Вася уже как неделю активно дорабатывает мод по собственному усмотрению, то автор сможет выпустить багфикс, указав на исправленный модуль и Вася, опять же, не теряя собственных наработок, сможет заменить багнутый модуль на зафикшенный и радоваться жизни.
И таких плюсов можно ещё достаточно найти (например, если Вася решит, что система домов из этого мода ему не нравится, он сможет легко её отключить и вырезать подходящую ему с другого мода/написать свою).

Вообще, если автор не забьёт на мод к моменту, когда уже в его голове сформируется видение правильной структуры проекта, то все последующие обновы можно выпускать именно в виде модулей или делать несколько вариаций одной и той же системы, что, в итоге, превратит этот мод в "конструктор", из которого любой желающий сможет собрать нужную себе основу или же готовый мод.Да и любой желающий сможет написать модуль с какой-либо системой для этого проекта и предложить его автору, дабы тот закрепил его в данной теме.
В общем, потенциал у модульного проекта громадный. Главное всё продумать на начальном этапе и не забрасывать.



Ну очевидно, что этого проекта, раз пишет в теме этого проекта.

А если он на деле выразил мысль по поводу модульности в целом, а не касаемо данного проекта? Не очень-то и очевидно выходит, не?



Я говорю конкретно про этот мод, который уже структурирован. И как видно, за неимением опыта в таком деле сразу организовать структуру проекта грамотно далеко не у всех получается, и на практике потом с очень большой вероятностью что-то переделывать в этом плане всё равно придётся.

...Наверное это ещё одна преграда на пути создания структурированного проекта у тех, кто таким до этого не занимался

Так а что мешает автору переработать структуру в следующей же обнове? Он, собственно, и опубликовал мод в таком виде как раз для критики и советов, кои и получил в итоге.

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

Nexius_Tailer
23.04.2017, 11:39
А если он на деле выразил мысль по поводу модульности в целом, а не касаемо данного проекта? Не очень-то и очевидно выходит, не?
Не. Никаких уточнений об осуждении или о модульности в целом там не было.


Так а что мешает автору переработать структуру в следующей же обнове? Он, собственно, и опубликовал мод в таком виде как раз для критики и советов, кои и получил в итоге.
Что мешает автору я знать могу вряд ли, но для меня это было бы потерей времени постоянно перекапывать мод, чтобы найти для него наилучшую структуру. Так сказать, создание самому себе неудобств с целью сделать удобнее.

DeimoS
23.04.2017, 12:15
Не. Никаких уточнений об осуждении или о модульности в целом там не было.

Как и о том, что он говорит конкретно про данный мод. Всё, что додумывается после, является именно додуманным, а не истиной. Так что говорить, что что-то там очевидно, как минимум, странно.



Что мешает автору я знать могу вряд ли, но для меня это было бы потерей времени постоянно перекапывать мод, чтобы найти для него наилучшую структуру. Так сказать, создание самому себе неудобств с целью сделать удобнее.

Так его и не нужно постоянно перекапывать...
В общем, ладно. Видимо, модульность в таком виде нужно просто попробовать самостоятельно, чтоб понять о чём я говорю

Nexius_Tailer
23.04.2017, 12:50
Как и о том, что он говорит конкретно про данный мод. Всё, что додумывается после, является именно додуманным, а не истиной. Так что говорить, что что-то там очевидно, как минимум, странно.
Странно как и говорить, что в посте выше что-то осуждалось.


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

SooBad
23.04.2017, 15:18
В документации много чего не описано, чем, в итоге, пользуются многие как в SA-MP, так и в других проектах, где используется Pawn. И этими "тайными знаниями" почему-то всё равно пользуются...
Это касаемо идеи о том, что всё должно быть обязательно описано.


Всё от того, что скриптеры сами открывают некоторые фичи, кои не описаны в PIG и проч. гайдах. Это называется самотестирование.
Кстати, кругозор такая методика расширяет намного больше, нежели обычное чтение документации.



Теперь касаемо модульности. Так а чем тебя не устраивает то определение для директивы, что есть сейчас в документации? Если я вдруг решу создать отдельный инклуд и прописать в нём "print("Hello, World!);", а потом подключить его в скрипт, он так же будет считаться модулем, как и любой другой инклуд. Или автору нужно было перечислить все возможные синонимы слова "модуль", дабы удовлетворить тебя? В чём смысл твоих слов?


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



1) Если некий Вася возьмёт данный мод за основу в момент, когда версия мода будет равна 1.0, а через неделю автор выпустит версию 1.1, где добавит несколько новых систем в виде отдельных модулей, то тот самый Вася сможет скачать эти самые модули и вшить их в свой мод без особых трудностей, при этом не теряя собственных наработок.
2) Если вдруг в какой-то системе обнаружится баг, а Вася уже как неделю активно дорабатывает мод по собственному усмотрению, то автор сможет выпустить багфикс, указав на исправленный модуль и Вася, опять же, не теряя собственных наработок, сможет заменить багнутый модуль на зафикшенный и радоваться жизни.
И таких плюсов можно ещё достаточно найти (например, если Вася решит, что система домов из этого мода ему не нравится, он сможет легко её отключить и вырезать подходящую ему с другого мода/написать свою).


А если багфиксы/обновления выйдут сразу в нескольких модулях? Что тогда? Тут, как в моде, придётся методом тыка смотреть на описание обновлений и корректировать их вручную. В целом, разница между текстовиками и единым файлом не велика. И даже если поиск осуществляется для всех модулей одновременно, о чём говорил ziggi - разницы не будет.



Мы просто ведём диалог на тему модульности и не более.


Именно поэтому никакой смены точки зрения ожидать не стоит. Я не стал цитировать кусок поста выше, в котором ты говоришь о том, что изначально считал модульность ненужной, а потом сменил концепцию (Что-то в этом роде). Тут нужны более серьёзные аргументы, чем те, что приводим мы, потому наши взгляды по разную сторону баррикад.

DeimoS
23.04.2017, 15:31
Странно как и говорить, что в посте выше что-то осуждалось.

Так ведь он неодобряет использование модулей в том виде, в котором использует автор? Не одобряет. Неодобрение = осуждение



По опыту людей, которые этим занялись изначально, у большинства в итоге стояла проблема с тем, что структура всё равно требовала каких-то переработок.

Естественно. Как и в любых других проектах за пределами SA-MP. Только во время реализации модульности ты до конца понимаешь то, удобна ли текущая структура или нет


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

Ну за количество модулей для одно системы автору уже раза 4 сказали. Думаю, он прислушается

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


Всё от того, что скриптеры сами открывают некоторые фичи, кои не описаны в PIG и проч. гайдах. Это называется самотестирование.
Кстати, кругозор такая методика расширяет намного больше, нежели обычное чтение документации.

Так а причём тут открытие фич и использование директивы #include, которая подключает один файл к другому, для разделения файла на несколько? Ладно бы речь шла о том же перехвате функций при помощи директивы #define - тут да, я соглашусь, что скриптеры нашли "скрытое" применение для директивы, которое не описано в документации. Но когда директива для подключения файлов используется, собственно, для подключения файлов - странно слышать, что эта "фича" открыта скриптерами самостоятельно.
Тут, скорее, просто эти самые скриптеры просто не додумались о таком её применении.




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

Ответ на это сообщение выше


А если багфиксы/обновления выйдут сразу в нескольких модулях? Что тогда? Тут, как в моде, придётся методом тыка смотреть на описание обновлений и корректировать их вручную. В целом, разница между текстовиками и единым файлом не велика. И даже если поиск осуществляется для всех модулей одновременно, о чём говорил ziggi - разницы не будет.

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


Именно поэтому никакой смены точки зрения ожидать не стоит. Я не стал цитировать кусок поста выше, в котором ты говоришь о том, что изначально считал модульность ненужной, а потом сменил концепцию (Что-то в этом роде). Тут нужны более серьёзные аргументы, чем те, что приводим мы, потому наши взгляды по разную сторону баррикад.

Так у меня и нет цели переубедить тебя. Есть цель выслушать твою точку зрения и привести свои аргументы на тот счёт, дабы другие могли прочесть наш с тобой диалог и сделать свои выводы. Это гораздо лучше, нежели если бы, например, я написал статью о модульности, где расхваливал бы её или ты сделал тоже самое, только уже гнобил бы её. Смысл как раз в двух мнениях по разную сторону баррикад :)

SooBad
23.04.2017, 16:57
Так а причём тут открытие фич и использование директивы #include, которая подключает один файл к другому, для разделения файла на несколько? Ладно бы речь шла о том же перехвате функций при помощи директивы #define - тут да, я соглашусь, что скриптеры нашли "скрытое" применение для директивы, которое не описано в документации. Но когда директива для подключения файлов используется, собственно, для подключения файлов - странно слышать, что эта "фича" открыта скриптерами самостоятельно.
Тут, скорее, просто эти самые скриптеры просто не додумались о таком её применении.


Тут, наверное, мне стоило обобщить. О помодульном разделении не гласит не одна документация, связанная с применением pawn к разработке самп-проекта. Т.е. какой-то юзер открыл эту возможность, вследствие, её стали применять и другие.



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


Отчасти соглашусь. Но багфиксы и доработки сразу в нескольких модулях - фактически, одно и тоже. Это либо поправки, либо добавление/улучшение какой-то части некоего инклюда. Если мы будем осуществлять поиск среди всех модулей, то это будет примерно равнозначно поиску по всему моду. Да, небольшое превосходство модуля в этом есть, иной код не будет мешать. Но это всё лишь визуально, поэтому, тезис не слишком весомый, чтобы сразу переходить на разделение.

Стоит добавить, что изначальное построение проекта, основанное на модулях - это одно, а вот перестроение уже полностью/частично готового проекта - другое, и наоборот. Я, наверное, больше сведусь к тому, что модули стоит применять частично, дабы адаптация под такой лад была у всех юзеров. 40-50% - модули, 50-60% - основной каркас мода. Тут и у самого автора проблем не возникнет, можно будет представить свой проект в плане отдельных текстовых файлов, и единым блоком. Довольно рациональное решение для всех, как по мне. Наверное, стоит закрепить свою позицию на данной отметке.

ziggi
23.04.2017, 17:28
Тут, наверное, мне стоило обобщить. О помодульном разделении не гласит не одна документация, связанная с применением pawn к разработке самп-проекта. Т.е. какой-то юзер открыл эту возможность, вследствие, её стали применять и другие.

Открою секрет - ни в одном из языков программирования в документации не пишут о паттернах разработки. Ты не найдёшь информацию об MVC в документации к PHP.

Делить проект на файлы - это обычное дело, призванное структуризировать код. Есть книга, где об этом хорошо написано - Совершенный код (Макконнелл).

P.S. Я бы не называл это "модулями". Ибо модули, как правило, можно отключать, при этом не терять работоспособность всего проекта. В SA-MP модулями можно назвать какие-нибудь FS, интегрированные с самим модом.

DeimoS
23.04.2017, 20:36
Тут, наверное, мне стоило обобщить. О помодульном разделении не гласит не одна документация, связанная с применением pawn к разработке самп-проекта. Т.е. какой-то юзер открыл эту возможность, вследствие, её стали применять и другие.

Ну тут Ziggi уже ответил тебе, сказав то, что я пытаюсь которое сообщение подряд тебе донести, так что промолчу.




Отчасти соглашусь. Но багфиксы и доработки сразу в нескольких модулях - фактически, одно и тоже. Это либо поправки, либо добавление/улучшение какой-то части некоего инклюда. Если мы будем осуществлять поиск среди всех модулей, то это будет примерно равнозначно поиску по всему моду. Да, небольшое превосходство модуля в этом есть, иной код не будет мешать. Но это всё лишь визуально, поэтому, тезис не слишком весомый, чтобы сразу переходить на разделение.

Поиск по модулям никоим образом не будет равносилен поиску по всему моду в том случае, если либо ты сам писал весь мод и продумывал модульность => ты чётко знаешь где и что находится, либо ты уже достаточно долго возился с модом и так же разобрался с тем, как реализована структура - суть одна: если ты знаешь структуру мода, ты легко найдёшь нужный тебе файл. А далее у тебя будет лишь код нужной тебе системы и небе не нужно будет по всему моду "летать" в поисках кусков нужной тебе системы с целью что-то в ней изменить.

Подобное структурирование доставляет неудобства исключительно на первых порах, когда ты ещё отвыкаешь от работы с одним большим файлом и "переучиваешься" на работу с модулями. Только вникнешь во всю суть и поймёшь каким образом лучше всего структурировать проект - сразу начнёшь видеть плюсы от подобного структурирования.
Я когда сам начал свой проект писать с использованием модулей, где-то месяц не заглядывал в чужие скрипты, ибо не брал заказов. Всё это время я работал со своим модом и, собственно, модулями. После этого я взял очередной заказ и открыл мод, что мне прислали... Преимущества модульности сразу дали о себе знать. Тащемта, это, примерно, так же, как и в ситуации с работой в Pawno после того, как ты долгое время работал в других, более навороченных и удобных редакторах: сразу чувствуется некая скованность и неудобство.



Стоит добавить, что изначальное построение проекта, основанное на модулях - это одно, а вот перестроение уже полностью/частично готового проекта - другое, и наоборот.

Естественно это разные вещи. Часто перестроение готового проекта будет гораздо затратнее в плане сил, нежели если изначально писать мод, разбивая его на файлы. Тащемта, про это я говорил в одном из сообщений выше.



Я, наверное, больше сведусь к тому, что модули стоит применять частично, дабы адаптация под такой лад была у всех юзеров. 40-50% - модули, 50-60% - основной каркас мода. Тут и у самого автора проблем не возникнет, можно будет представить свой проект в плане отдельных текстовых файлов, и единым блоком. Довольно рациональное решение для всех, как по мне. Наверное, стоит закрепить свою позицию на данной отметке.

Ориентироваться под юзеров - не лучшая затея. Среднестатистический юзер не проч, если бы ты и названия все писал на транслите, и вообще прикрутил к компилятору поддержку кириллицы, чтоб весб код можно было целиком на русском писать. А так же вообще весь мод за него написал, ибо юзеру лень.
Если за тенденциями и следовать, то только за хорошими тенденциями, которые зародились не просто потому-что кто-то чего-то не знал, а потому что многие скриптеры пробовали сделать по разному, но, в итоге, пришли к одному, самому наилучшему варианту. Иначе сообщество так и останется в неокрепшем зародыше, где процветает транслит, массивы по 4096 ячеек и прочие распространённые "фишки".

P.S. Взять те же рекомендации (http://pro-pawn.ru/showthread.php?8347-%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D0%BE-%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8E-%D0%BA%D0%BE%D0%B4%D0%B0), что есть на этом форуме. Зайди на п-и, поищи темы 2011-2013 годов и посмотри на код, который в них будет. Даже о самых банальных пунктах из рекомендации там не слышно и тогда такой стиль кодинга считался нормой. Если бы все придерживались тех же принципов: "Ну большинство же так делает, значит так и надо" - сейчас до сих пор бы "профессионалы" кодили так, как нынче даже нубам кодить стыдно должно быть. И может пример не самый удачный, ибо мне следовало бы конкретные ссылки предоставить, но суть в том, что "старое и распространённое" - не всегда "правильное и хорошее". Нужно уметь ставить под сомнение общепринятые истины, ибо часто эти истины ошибочны (Земля круглая/Все рыжие = ведьмы/Единоросы не победят на выборах и т.п.). Вооот

Daniel_Cortez
23.04.2017, 20:59
Я думаю, что почти все SA-MP моды/скрипты нелегальны, с лицензиями никто не заморачивается. Например, fixes.inc никто не может использовать, ибо там даже лицензии нет.
Что верно, то верно. Но упомянуть про несовместимость лицензии плагина MySQL со многими работами под MPL 1.1 (многие из которых принадлежат Y_Less'у), думаю, всё же стоило, ибо мало кто здесь знает об этом факте.

Касаемо случая с fixes.inc, остаётся только надеяться, что для этого инклуда удастся решить вопрос с перелицензированием.
Кстати, не мог бы отметить меня в списке согласных на смену лицензии в том самом issue на GitHub?

Long-
23.04.2017, 21:51
Открою секрет - ни в одном из языков программирования в документации не пишут о паттернах разработки. Ты не найдёшь информацию об MVC в документации к PHP.

Делить проект на файлы - это обычное дело, призванное структуризировать код. Есть книга, где об этом хорошо написано - Совершенный код (Макконнелл).

P.S. Я бы не называл это "модулями". Ибо модули, как правило, можно отключать, при этом не терять работоспособность всего проекта. В SA-MP модулями можно назвать какие-нибудь FS, интегрированные с самим модом.

Странно, а что модули нельзя отключать?Закомментировав этот модуль?(Допустим в нем лежит одна система).
В случае закомментирования этот модуль станет неактивен, а на работоспособность всего проекта это никак не повлияет (Лишь повлияет на ту систему которая была в модуле)

ziggi
23.04.2017, 22:14
Что верно, то верно. Но упомянуть про несовместимость лицензии плагина MySQL со многими работами под MPL 1.1 (многие из которых принадлежат Y_Less'у), думаю, всё же стоило, ибо мало кто здесь знает об этом факте.

Согласен, я сам этого не знал.


Кстати, не мог бы отметить меня в списке согласных на смену лицензии в том самом issue на GitHub?

Сделано.


Странно, а что модули нельзя отключать?Закомментировав этот модуль?(Допустим в нем лежит одна система).
В случае закомментирования этот модуль станет неактивен, а на работоспособность всего проекта это никак не повлияет (Лишь повлияет на ту систему которая была в модуле)

Информация из wiki (https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5): Модульное программирование — это организация программы как совокупности небольших независимых блоков. А тут идёт обсуждение единой системы, где почти каждая часть зависит от какой-либо другой, поэтому называть это модулем некорректно. Поэтому это не модули, а системы, разбитые на несколько файлов.

И да, здесь "модули" нельзя отключать: отключи систему аккаунтов/БД/что-либо ещё и всё перестанет работать (если вообще скомпилируется).

Geebrox
23.04.2017, 22:21
Что верно, то верно. Но упомянуть про несовместимость лицензии плагина MySQL со многими работами под MPL 1.1 (многие из которых принадлежат Y_Less'у), думаю, всё же стоило, ибо мало кто здесь знает об этом факте.

Касаемо случая с fixes.inc, остаётся только надеяться, что для этого инклуда удастся решить вопрос с перелицензированием.
Кстати, не мог бы отметить меня в списке согласных на смену лицензии в том самом issue на GitHub?

Касаемо GPL и MPL, хотел переписать a_mysql.inc под MPL и перелицензировать весь проект под MPL,
но со случаем fixes я ничего не могу предпринять.

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



И да, здесь "модули" нельзя отключать: отключи систему аккаунтов/БД/что-либо ещё и всё перестанет работать (если вообще скомпилируется).

я работаю над новой архитектурой проекта, возможно это будет исправлено

DeimoS
23.04.2017, 22:27
Что верно, то верно. Но упомянуть про несовместимость лицензии плагина MySQL со многими работами под MPL 1.1 (многие из которых принадлежат Y_Less'у), думаю, всё же стоило, ибо мало кто здесь знает об этом факте.

Касаемо случая с fixes.inc, остаётся только надеяться, что для этого инклуда удастся решить вопрос с перелицензированием.
Кстати, не мог бы отметить меня в списке согласных на смену лицензии в том самом issue на GitHub?

Это всё, конечно, здорово, но на деле кто вообще хоть раз заморачивался с лицензиями в SA-MP? Если сейчас нагрянуть на какой-нибудь крупный проект со словами: "Открывайте нам исходный код вашего мода, ибо вы используете инклуды под лицензиями, обязующими делать это" - нам просто в лицо посмеются и забанят. И ничего тут не поделать.

Nexius_Tailer
23.04.2017, 22:46
Так ведь он неодобряет использование модулей в том виде, в котором использует автор? Не одобряет. Неодобрение = осуждение
"в том виде, в котором использует автор" - уже видимо и сам соглашаешься, что речь о конкретной реализации



Я думаю, что почти все SA-MP моды/скрипты нелегальны, с лицензиями никто не заморачивается. Например, fixes.inc никто не может использовать, ибо там даже лицензии нет.
Кстати, лицензия ведь налагает какие-то обязательства или свободы, но раз её нет, то почему тогда это не может использоваться?)
Мне это немного народное творчество напоминает - у него лицензии тоже вроде как нет, и ограничений на распространении также не имеется. А fixes изначально позиционировался именно как фиксы от всего комьюнити, а не конкретного человека

DeimoS
23.04.2017, 23:07
"в том виде, в котором использует автор" - уже видимо и сам соглашаешься, что речь о конкретной реализации

Эмм, а если написать другой мод и оформить "модульность" в том же виде, то SooBad уже не будет против?
В своём сообщении он "против" активного разделения мода на кучу файлов: не зависимо от того, будет ли это "1 файл = 1 система" или "куча файлов = 1 система". Он пишет, что лучше отделять только определённые куски кода в отдельные файлы, а остальное писать в одном.
Это не речь о конкретной реализации, что придумал автор, а речь о разделении всего мода на файлы в целом.

Daniel_Cortez
24.04.2017, 06:00
Касаемо GPL и MPL, хотел переписать a_mysql.inc под MPL и перелицензировать весь проект под MPL,
но со случаем fixes я ничего не могу предпринять.
Звучит сомнительно хотя бы потому, что это всего лишь заголовочный файл? Что в нём такого можно переписать? Не говоря уже о возможных обвинениях в копировании чужого кода. Хотя вообще автор плагина обязан был применить лицензию GPL только к тем файлам, которые статически или динамически линковались с исходниками СУБД MySQL. К файлу a_mysql.inc такое требование не относится, т.к. он никак не линкуется к плагину - он всего лишь описывает интерфейс для виртуальной машиной AMX. В то же время в инклуде никакой лицензии нет, поэтому по умолчанию подразумевается та же лицензия, что и для всего плагина - GPL.
Советую обратиться к автору плагина MySQL или к текущему сопровождающему, чтобы узнать, попадает ли файл под действие GPL, чтобы устранить неопределённость с лицензией.



Если сейчас нагрянуть на какой-нибудь крупный проект со словами: "Открывайте нам исходный код вашего мода, ибо вы используете инклуды под лицензиями, обязующими делать это" - нам просто в лицо посмеются и забанят.
Возможно. Но они и не обязаны этого делать - они же не выкладывали в публичный доступ и не скидывали тебе лично *.amx от мода. А даже если и выкладывали, то могут особо не спешить - GPL предусматривает срок в 3 года на предоставление исходников.


UPD: Проверил, у плагина почему-то лицензия BSD (https://github.com/pBlueG/SA-MP-MySQL/blob/master/LICENSE) - явно недосмотр со стороны разработчика плагина и ещё один повод спросить.

Geebrox
24.04.2017, 07:58
Daniel_Cortez, раз так зацикливаться на лицензии проекта самп, то можно считать почти все публичные проекты не легальными, а не только этот проект. Я не продаю или еще в каких-то коммерческих целях использую этот проект. Что именно требуете от меня, указав, что этот проект не легален?

Nexius_Tailer
24.04.2017, 12:57
Эмм, а если написать другой мод и оформить "модульность" в том же виде, то SooBad уже не будет против?
В своём сообщении он "против" активного разделения мода на кучу файлов: не зависимо от того, будет ли это "1 файл = 1 система" или "куча файлов = 1 система". Он пишет, что лучше отделять только определённые куски кода в отдельные файлы, а остальное писать в одном.
Это не речь о конкретной реализации, что придумал автор, а речь о разделении всего мода на файлы в целом.
Речь шла и о разделении систем, которые редактируются не так часто (и это далеко не тот случай, когда вынесены будут только инклуды с нативами, как сейчас у многих, а довольно немалое количество редко редактируемых систем, и это тоже было бы модульностью). Из этого можно сделать вывод, что разговор именно о конкретной реализации разбиения на файлы.

DeimoS
24.04.2017, 13:57
Речь шла и о разделении систем, которые редактируются не так часто (и это далеко не тот случай, когда вынесены будут только инклуды с нативами, как сейчас у многих, а довольно немалое количество редко редактируемых систем, и это тоже было бы модульностью). Из этого можно сделать вывод, что разговор именно о конкретной реализации разбиения на файлы.

Так я и говорю: для SooBad хорошей модульностью является та, где, максимум, в отдельные файлы убраны редко редактируемые системы. Полное разбитие проекта на файлы для него является неудобным и своё мнение он обобщает на всё сообщество. Он не говорил "сократи/увеличь количество модулей на одну систему". Он говорил автору "Зачем ты убираешь систему аккаунтов в отдельный модуль? Убирай в модули лишь то, что будешь редко изменять, а всё остальное оставляй в .pwn файле".
Это равносильно тому, что я сейчас начну советовать автору начинать писать DM мод, ибо RP мне не очень нравится - то бишь, SooBad не даёт советы по тому, как автору реализовать то, что хочет сам автор, а пытается навязать автору свои вкусы. Ты, кажется, не совсем понимаешь различие между этим...
И я, собственно, пытался указать на то, что и в проекте, который целиком разбит на файлы, хватает своих плюсов. И что все его суждения не имеют никаких существенных оснований, кроме банальной привычки.

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


Возможно. Но они и не обязаны этого делать - они же не выкладывали в публичный доступ и не скидывали тебе лично *.amx от мода. А даже если и выкладывали, то могут особо не спешить - GPL предусматривает срок в 3 года на предоставление исходников.

Ты слишком преувеличиваешь важность этих лицензий для сообщества, где большая часть пользователей - дети. Посыл о том, что следует соблюдать пункты, описанные в лицензиях, конечно правильный, но:
1) Я уверен, что многие авторы просто лепят первую попавшуюся лицензию на свою работу просто потому, что видели такую у кого-то ещё, особо не вникая в то, зачем она нужна и что потом делать. Следовательно, это лишь трудности создаёт и не более.
2) Не думаю, что тот же Y_Less как-то следит за тем, что все пункты из лицензии, под которой он выпустил свой продукт, выполняются. Да и ты, думаю, тоже не следишь. Их прикрепляют, в основном, для того, чтоб был дополнительный повод предъявить в ситуации, когда твою разработку откровенно пытаются выдать за свою - то бишь, борьба с явным плагиатом. В остальном же всем глубоко плевать на то, как ты используешь их работу в своих проектах, ибо их именно для того и выкладывали в общий доступ, чтоб другие использовали.
И я понял бы твоё упоминание лицензий в том случае, если бы автор пытался авторство всех инклудов/плагинов приписать себе. Но ничего такого нет и суть твоего замечания не совсем ясна. С таким же успехом можно вообще весь SA-MP вне закона определить, ибо использование SA-MP подразумевает наличие лицензионной версии GTA, которой может далеко не каждый игрок похвастаться.

VVWVV
24.04.2017, 14:19
Кстати, я вот тут нашёл тему (https://habrahabr.ru/post/276593/) прошлого года, где написаны критерии хорошей архитектуры. Я думаю, все эти пункты можно считать весомым аргументом в разделении проекта.

SooBad
24.04.2017, 15:46
Так я и говорю: для SooBad хорошей модульностью является та, где, максимум, в отдельные файлы убраны редко редактируемые системы.


Именно поэтому, я, фактически, вышел из спора. Донести свою позицию удалось, и её поняли. Смысла корректировать что-либо уже не вижу.



Это равносильно тому, что я сейчас начну советовать автору начинать писать DM мод, ибо RP мне не очень нравится - то бишь, SooBad не даёт советы по тому, как автору реализовать то, что хочет сам автор, а пытается навязать автору свои вкусы.


Не, не равносильно. Изначально я пробовал строить проект на модулях, т.е. вся система регистрации/авторизации, сохранения и некоторых основных фич были в разных текстовых файлах. "Масса" занимала скромные 5-10% от общего кода, и включала в себя только базовые настройки конфигурации сервера, стримера, логирования mysql и некоторых других плагинов.
Поэтому, я знаю, о чём пишу. Почему я решил изменить архитектуру проекта - написал выше. Согласен кто-то с этим или нет - не так важно, именно поэтому заострил внимание на этой теме, и сделал отсылку автору. Да, не в плане реализации, а в плане некоего вариационного пояснения. Выбирать или нет - решать ему.



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


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

P.S. Спор совершенно не конструктивен, в плане того, что никакой прибавки в производительности он не несет. Другое дело: скорость, растрата памяти и т.п. Тут, наверное, свою позицию можно было подкрепить какими-либо тестами.
P.S.S. Знаю, что ответ не мне. Но не перецитировать увы, не мог.

DeimoS
24.04.2017, 16:31
Не, не равносильно.

Почему же? Ну я тоже могу рассказать тебе историю о том, как я пробовал играть в RP режимы, но мне не зашло и я вернулся в DM. Суть в том, что это мой опыт и мои предпочтения. Тебе, автору или кому-либо ещё на них наплевать, ибо у вас так же есть свои предпочтения и свой опыт. Поэтому и смысла в подобных "советах" нет.


Изначально я пробовал строить проект на модулях, т.е. вся система регистрации/авторизации, сохранения и некоторых основных фич были в разных текстовых файлах. "Масса" занимала скромные 5-10% от общего кода, и включала в себя только базовые настройки конфигурации сервера, стримера, логирования mysql и некоторых других плагинов.
Поэтому, я знаю, о чём пишу. Почему я решил изменить архитектуру проекта - написал выше. Согласен кто-то с этим или нет - не так важно, именно поэтому заострил внимание на этой теме, и сделал отсылку автору. Да, не в плане реализации, а в плане некоего вариационного пояснения. Выбирать или нет - решать ему.

Ну так никто и не осуждает твой выбор.
Ты поделился своим мнением, основанным на собственном опыте, а я поделился своим, который так же основан на собственном опыте. Сделал я это не для того, чтоб попытаться переубедить тебя или доказать, что твой выбор неверен. Я это сделал лишь для того, чтоб другие люди видели, что в данном вопросе нет какой-то нерушимой истины и всё завязано лишь на собственных предпочтениях.



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

Тащемта, я изначально писал тебе о том, что всё завязано на привычке :) И из нас двоих явно не я пытался убедить тебя в том, что моя привычка более верна, ибо многие делают так же. В общем, радует, что мы пришли к взаимопониманию.


P.S. Спор совершенно не конструктивен, в плане того, что никакой прибавки в производительности он не несет. Другое дело: скорость, растрата памяти и т.п. Тут, наверное, свою позицию можно было подкрепить какими-либо тестами.

Ну тут я бы поспорил :) Если организовать структуру правильно, то прирост производительности будет виден отчётливо. Правда не в плане обработки кода машиной, а в плане поддержки этого кода программистом, что так же важно.

Daniel_Cortez
24.04.2017, 21:51
Daniel_Cortez, раз так зацикливаться на лицензии проекта самп, то можно считать почти все публичные проекты не легальными, а не только этот проект. Я не продаю или еще в каких-то коммерческих целях использую этот проект. Что именно требуете от меня, указав, что этот проект не легален?
Пока что ничего, хотя по-хорошему следовало бы устранить проблему с несовместимостью либо убедив разработчика плагина MySQL перелицензировать его под GPLv2 и отдельно лицензировать инклуд под чем-нибудь кроме GPL.



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




1) Я уверен, что многие авторы просто лепят первую попавшуюся лицензию на свою работу просто потому, что видели такую у кого-то ещё, особо не вникая в то, зачем она нужна и что потом делать. Следовательно, это лишь трудности создаёт и не более.

Так и есть. И с этим нужно как-то бороться, если есть возможность. Собственно, поэтому я и поднял всю эту тему - всяко лучше, чем сидеть сложа руки.




2) Не думаю, что тот же Y_Less как-то следит за тем, что все пункты из лицензии, под которой он выпустил свой продукт, выполняются. Да и ты, думаю, тоже не следишь. Их прикрепляют, в основном, для того, чтоб был дополнительный повод предъявить в ситуации, когда твою разработку откровенно пытаются выдать за свою - то бишь, борьба с явным плагиатом. В остальном же всем глубоко плевать на то, как ты используешь их работу в своих проектах, ибо их именно для того и выкладывали в общий доступ, чтоб другие использовали.

Только Y_Less здесь не единственный, чьи права нарушаются в данном случае. Несовместимость идёт прежде всего с лицензией плагина MySQL, выбор которой обусловлен лицензией на исходный код клиента к СУБД MySQL (принцип прост: используешь исходники под GPL - весь твой продукт тоже должен быть под GPL). Правообладателем последней является корпорация Oracle - та самая, что пыталась засудить Google на несколько миллиардов за альтернативную реализацию Java.
Тут также следует иметь в виду, что MySQL доступен под двумя лицензиями: GNU GPL и коммерческая. Второй вариант как раз для тех, кому не подходит использование под условиями GPL - например, в продуктах с закрытым исходным кодом или там, где конфликт лицензий с GPL, как в данной теме. Т.е. в этом случае если Y_Less и другие участники сообщества, которые внесли свой небольшой вклад в развитие sscanf2 и foreach, ещё могут закрыть глаза на нарушение, т.к. они не получают с этого никакого профита, то для Oracle это уже упущенная выгода с продажи коммерческих лицензий.
Я, конечно же, сомневаюсь, что Oracle будет подавать в суд на столь мелких нарушителей, но кто знает... А если и будут, то мы об этом до последнего не сможем узнать - они, скорее всего, заставят нарушителей подписать NDA (договор о неразглашении) взамен на снижение суммы штрафа, чтобы другие не могли заранее узнать о грядущих исках.



С таким же успехом можно вообще весь SA-MP вне закона определить, ибо использование SA-MP подразумевает наличие лицензионной версии GTA, которой может далеко не каждый игрок похвастаться.
Это уже на совести пользователей SA-MP, а не его разработчиков.



UPD: Ок, для разработчиков открытого ПО предусмотрено исключение (https://www.mysql.com/about/legal/licensing/foss-exception/), которое позволяет использовать клиентские библиотеки MySQL и лицензировать свои работы под любой лицензией из приведённого в исключении списка. Видимо, именно этим исключением и пользуются разработчики плагина MySQL для SA-MP, т.к. у них 3-пунктовая лицензия BSD.
Хотел бы принести свои извинения за дезинформацию по поводу лицензии плагина MySQL. Впрочем, самым первым, насколько я помню, тему легальности модов, использующих MySQL, поднял Y_Less на оффе, обсуждая ошибочность изначального выбора MPL 1.1 для своих работ (и я так понимаю, сейчас этот пост уже удалён вместе со всеми его темами).

Тем не менее, проблема с легальностью мода ещё не решена, т.к. в лицензиях многих инклудов содержится требование включать упоминание об авторских правах и текст самих лицензий во все копии ПО - под последними могут пониматься как исходники мода, так и бинарный релиз (*.amx мода). Также в работах под MPL есть требование предоставить конечному получателю (как исходного кода, так и бинарников) исходники этих работ.
Выполнить эти требования можно добавлением в файл README (или любой другой - например, LICENSES или NOTICES) вышеупомянутых текстов лицензий и ссылок, а также включением этого файла в бинарный релиз.

Geebrox, я могу помочь с реализацией всего вышеперечисленного, но для начала мне нужно будет ваше разрешение.

Geebrox
25.04.2017, 01:02
Daniel_Cortez, был бы рад, если помогли бы решить эту проблему.

Nexius_Tailer
25.04.2017, 02:44
Так я и говорю: для SooBad хорошей модульностью является та, где, максимум, в отдельные файлы убраны редко редактируемые системы. Полное разбитие проекта на файлы для него является неудобным и своё мнение он обобщает на всё сообщество. Он не говорил "сократи/увеличь количество модулей на одну систему". Он говорил автору "Зачем ты убираешь систему аккаунтов в отдельный модуль? Убирай в модули лишь то, что будешь редко изменять, а всё остальное оставляй в .pwn файле".
Это равносильно тому, что я сейчас начну советовать автору начинать писать DM мод, ибо RP мне не очень нравится - то бишь, SooBad не даёт советы по тому, как автору реализовать то, что хочет сам автор, а пытается навязать автору свои вкусы. Ты, кажется, не совсем понимаешь различие между этим...
И я, собственно, пытался указать на то, что и в проекте, который целиком разбит на файлы, хватает своих плюсов. И что все его суждения не имеют никаких существенных оснований, кроме банальной привычки.
Так я и не про эти различия говорил, хотя это и так вроде ясно, если читать посты. Как уже ниже было написано, никто ничего не навязывал. А я лишь вёл к тому, что разделение на модули это не только разделение каждой системы, но и менее глобальное.
Разбиение мода "не целиком" будет иметь большинство плюсов модульности, и при этом не будет такой сильной фрагментации каждой системы и как следствие возможных проблем с их взаимодействием.

Хотя это дело каждого проекта и автора, я ничего здесь не советую

Daniel_Cortez
27.04.2017, 23:44
Почти закончил работу над файлом LEGAL.md, в котором будут перечислены все лицензии.

Некоторые (не)интересные моменты, с которыми пришлось столкнуться:
Старая версия sscanf2.
Откуда взят инклуд foreach? Тоже, скорее всего, устаревшая версия.
Другие инклуды/плагины также могут быть устаревшими. Предлагаю проверить их самостоятельно по ссылкам в тексте ниже.
Перевод мода с лицензии MIT под GPLv3 никак не оправдан. Впрочем, скорее всего, в этом и я виноват отчасти из-за дезинформацией с лицензией плагина MySQL.
В некоторых инклудах (mdialog.inc, rustext.inc, a_mysql.inc) не было лицензии - пришлось выискивать их оригинальные репозитории на GitHub, чтобы скопировать текст лицензии из отдельного файла, что не очень-то удобно. И хотя лицензия сделана в отдельном файле, в самом тексте лицензии сказано, что она должна быть воспроизведена в лицензируемом коде. Т.е. файл отдельный, но для легального использования он всё равно должен распространяться в тандеме с инклудом. Назревает закономерный вопрос к авторам инклудов: так и задумано?

Как только все эти проблемы будут решены (за исключением последней - это уже к авторам инклудов/плагинов), я доделаю LEGAL.md и сделаю PR.

Собственно, сам текст файла (предварительная версия, ссылки на foreach и sscanf2 могут быть неверны):


This gamemode uses the following includes and plugins:
* Pawn.CMD (https://github.com/urShadow/Pawn.CMD)
* MySQL plugin (https://github.com/pBlueG/SA-MP-MySQL)
* CrashDetect (https://github.com/Zeex/samp-plugin-crashdetect)
* fixes.inc (https://github.com/Open-GTO/sa-mp-fixes)
* foreach (https://github.com/Open-GTO/foreach)
* mdialog (https://github.com/Open-GTO/mdialog)
* rustext (https://github.com/ziggi/rustext)
* sscanf2 (https://github.com/maddinat0r/sscanf)
* Streamer plugin (https://github.com/samp-incognito/samp-streamer-plugin)


The corresponding licenses are reproduced below:

[список лицензий]

DeimoS
28.04.2017, 16:08
Так и есть. И с этим нужно как-то бороться, если есть возможность. Собственно, поэтому я и поднял всю эту тему - всяко лучше, чем сидеть сложа руки.

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


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

Тебе самому не кажутся эти слова слишком фантастическими?
Oracle, как и другим компаниям, нет смысла подавать в суд, так как в SA-MP для них нет потенциального рынка, который они теряют при нарушении их лицензий. Да и с кого им спрашивать-то? Со школьника Васи? Они больше потеряют с этих исков, чем приобретут. В случае с Google ситуация была же совершенно противоположная, так что странно приводить в пример её.




Почти закончил работу над файлом LEGAL.md, в котором будут перечислены все лицензии.

Некоторые (не)интересные моменты, с которыми пришлось столкнуться:
Старая версия sscanf2.
Откуда взят инклуд foreach? Тоже, скорее всего, устаревшая версия.
Другие инклуды/плагины также могут быть устаревшими. Предлагаю проверить их самостоятельно по ссылкам в тексте ниже.
Перевод мода с лицензии MIT под GPLv3 никак не оправдан. Впрочем, скорее всего, в этом и я виноват отчасти из-за дезинформацией с лицензией плагина MySQL.
В некоторых инклудах (mdialog.inc, rustext.inc, a_mysql.inc) не было лицензии - пришлось выискивать их оригинальные репозитории на GitHub, чтобы скопировать текст лицензии из отдельного файла, что не очень-то удобно. И хотя лицензия сделана в отдельном файле, в самом тексте лицензии сказано, что она должна быть воспроизведена в лицензируемом коде. Т.е. файл отдельный, но для легального использования он всё равно должен распространяться в тандеме с инклудом. Назревает закономерный вопрос к авторам инклудов: так и задумано?

Как только все эти проблемы будут решены (за исключением последней - это уже к авторам инклудов/плагинов), я доделаю LEGAL.md и сделаю PR.

Собственно, сам текст файла (предварительная версия, ссылки на foreach и sscanf2 могут быть неверны):


This gamemode uses the following includes and plugins:
* Pawn.CMD (https://github.com/urShadow/Pawn.CMD)
* MySQL plugin (https://github.com/pBlueG/SA-MP-MySQL)
* CrashDetect (https://github.com/Zeex/samp-plugin-crashdetect)
* fixes.inc (https://github.com/Open-GTO/sa-mp-fixes)
* foreach (https://github.com/Open-GTO/foreach)
* mdialog (https://github.com/Open-GTO/mdialog)
* rustext (https://github.com/ziggi/rustext)
* sscanf2 (https://github.com/maddinat0r/sscanf)
* Streamer plugin (https://github.com/samp-incognito/samp-streamer-plugin)


The corresponding licenses are reproduced below:

[список лицензий]


Мартышкин труд, не?
Я просто не понимаю кто в реальности будет заглядывать в этот файл и проверять, выполняется ли всё написанное в нём на деле или нет. Те, кто ищут мод для доработки, не закроют вкладку по причине того, что в моде не соблюдаются какие-то там лицензии. Компаниям, разработки которых используются в плагинах, тоже как-то ни холодно, ни жарко от этого всего (10 лет существования SA-MP должны дать понять это). Да и, как я уже сказал выше, общей картины это никак не изменит, ибо модов, что забили на все лицензии, в разы больше и все ваши старания просто затеряются. Дело, конечно, ваше, но пока это всё больше походит на пустую трату времени

Geebrox
22.05.2017, 06:47
Обновлен до версии 2:




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



http://i.imgur.com/bA0XyzS.png

vovandolg
22.05.2017, 13:59
А как ты архитектуру нарисовал красиво, это прога какая то или сам ручками?

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

в джите не шарю как там по коду предложки делать или ещё что то подобное, поэтому отпишусь из своего опыта по античиту тута:blush2:

твой код к примеру (https://github.com/Geebrox/GRP/blob/master/pawno/src/protection/armour_hack.inc)

Почему бы не ускорить всё и сделать к примеру так:


#if defined _armour_hack_protection
#endinput
#endif
#define _armour_hack_protection

#if !defined ARMOUR_HACK_UPDATE_INTERVAL
#define ARMOUR_HACK_UPDATE_INTERVAL 1000
#endif


forward ahp_CheckPlayer(playerid);


static ahp_timer[MAX_PLAYERS], ahp_tick[MAX_PLAYERS char];


stock ahp_OnPlayerLogin(playerid)
{
ahp_timer[playerid] = SetTimerEx(!"ahp_CheckPlayer",
ARMOUR_HACK_UPDATE_INTERVAL, true, !"i", playerid); // пусть сам циклится, чё теребонькать то?))

return 1;
}


public ahp_CheckPlayer(playerid)
{
new
Float:player_armour,
Float:account_armour;

GetPlayerArmour(playerid, player_armour);
GetAccountArmour(playerid, account_armour);
if(ahp_tick[playerid] > 0) // зачем теребонькать функцию таймера, когда можно сделать легонько, переменной
{
ahp_tick[playerid]--;
goto skip_check;
}

if(_:player_armour == _:account_armour) goto skip_check; // floatcmp не вызываем если броня не менялась(самый частый юз алгоритма будет)

else if(player_armour < account_armour) // второй по счёту юз алгоритма если на этом сервере будут играть адекватные игроки
{
SetAccountArmour(playerid, player_armour);
}
else if(player_armour > account_armour) // ну и третий если обнаружим читера(самый мало срабатываемый)
{
Kick(playerid, KICK_TEXT_REASON"\
Ïîäîçðåíèå â ÷èòåðñòâå, êîä: #ahp_CP"KICK_TEXT_TIP);
return 0;
}
skip_check:
// можно убрать goto и заменить возвратами; писал goto пока не увидел что ещё таймер вызывается частенько
return 1;
}


stock ahp_GetPlayerArmour(playerid, &Float:armour)
{
return GetAccountArmour(playerid, armour);
}
#if defined _ALS_GetPlayerArmour
#undef GetPlayerArmour
#else
#define _ALS_GetPlayerArmour
#endif
#define GetPlayerArmour ahp_GetPlayerArmour


stock ahp_SetPlayerArmour(playerid, Float:armour)
{
new result; // зачем тут 1 устанавливать, если ниже однозначно установится какое то значение из SetPlayerArmour
ahp_tick[playerid] = 2; //2 секунды раз таймер односекундый
SetAccountArmour(playerid, armour);
result = SetPlayerArmour(playerid, armour);
return result;
}
#if defined _ALS_SetPlayerArmour
#undef SetPlayerArmour
#else
#define _ALS_SetPlayerArmour
#endif
#define SetPlayerArmour ahp_SetPlayerArmour


stock ahp_OnPlayerDisconnect(playerid)
{
KillTimer(ahp_timer[playerid]); // зачем было тогда тут ставить килл если таймер не циклился, в прочем теперь он тут пригодится...
return 1;
}


А и кстате почему каждый античит в отдельном таймере? Зачем плодить таймеры как кроликов?
Один глобальный таймер и индивидуальный один каждому игроку я думаю вполне норма будет...

Geebrox
22.05.2017, 21:01
А как ты архитектуру нарисовал красиво, это прога какая то или сам ручками?

Photoshop CC



// пусть сам циклится, чё теребонькать то?))

Сам циклится? Тогда с течением времени появится зазоры между времени срабатывание функции и таймера, то есть пока функция обрабатывается проходит несколько миллисекунд, и через какое-то время функция будет вызываться по 2, 3, 4 и тд раза. Из за этого я переместил таймер в саму функцию и отключил повтор.



// зачем теребонькать функцию таймера, когда можно сделать легонько, переменной

Что значит "требонькать"? Я не вижу смысла так делать.



// зачем тут 1 устанавливать, если ниже однозначно установится какое то значение из SetPlayerArmour

Клац (http://pro-pawn.ru/showthread.php?15086-%D0%9E-%D0%BD%D0%B5%D1%8F%D0%B2%D0%BD%D0%BE%D0%B9-%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8)

+ Откуда ты знаешь что будет устанавливаться 1? а может функция ничего не возвратит? Может будет изменение в самой функции в дальнейшем?



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

Опять таки, откуда ты гадаешь, что при выходе игрока не будет запущен таймер? Может игрок выйдет именно тогда когда запуститься новый таймер, не?



А и кстате почему каждый античит в отдельном таймере? Зачем плодить таймеры как кроликов?
Один глобальный таймер и индивидуальный один каждому игроку я думаю вполне норма будет...

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

vovandolg
23.05.2017, 12:35
:rofl: так ладно ясно понятно, у меня мод готовый есть и я там всё так же делал как и тут предлагаю, что то ты с таймерами там не уверенный какой то))
опыта у тебя видать ещё маловато поэтому так говоришь, ладно всё делай как знаешь))

DeimoS
23.05.2017, 13:20
:rofl: так ладно ясно понятно, у меня мод готовый есть и я там всё так же делал как и тут предлагаю, что то ты с таймерами там не уверенный какой то))
опыта у тебя видать ещё маловато поэтому так говоришь, ладно всё делай как знаешь))

Разделяя каждый античит на отдельный таймер, можно, соответственно, каждый античит отключать/включать индивидуально для игрока, а не делать заглушки в виде кучи проверок. Так что всё вполне оправдано. А идея лепить всё в один таймер пошла не от того, что этот вариант самый лучший, а, как и многое в сампе, по незнанию альтернатив

Nexius_Tailer
23.05.2017, 14:43
Клац (http://pro-pawn.ru/showthread.php?15086-%D0%9E-%D0%BD%D0%B5%D1%8F%D0%B2%D0%BD%D0%BE%D0%B9-%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8)

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

А насчёт возвратов большинства функций, включая SetPlayerArmour - они всегда будут возвращать либо 1 либо 0, и даже когда какая-то функция не возвращает ничего, она возвращает 0 по умолчанию. Собственно, вместо заведения дополнительных переменных я бы лучше сразу вынес саму функцию в проверку на её выполненность.

Geebrox
11.06.2017, 22:15
Дальнейшая разработка проекта не возможна, так как в нашей стране GTA:SA попал в список запрещенных игр (звучит очень смешно, сам был в шоке). Если есть желающие, то могут продолжать разработку проекта, но при этом обсудив это автором (со мной), спасибо за понимание.

ziggi
12.06.2017, 00:43
Дальнейшая разработка проекта не возможна, так как в нашей стране GTA:SA попал в список запрещенных игр (звучит очень смешно, сам был в шоке). Если есть желающие, то могут продолжать разработку проекта, но при этом обсудив это автором (со мной), спасибо за понимание.

И что теперь? В нашей стране много чего запрещено, однако все всё делают.

vovandolg
12.06.2017, 01:53
ну так MP for SA не попал под запрет, так что можешь разрабатывать его дальше,
просто "самоудалятор" для SA сделать на всякий пожарный))

Geebrox
12.06.2017, 22:31
И что теперь? В нашей стране много чего запрещено, однако все всё делают.

У нас не так)



ну так MP for SA не попал под запрет, так что можешь разрабатывать его дальше,
просто "самоудалятор" для SA сделать на всякий пожарный))


Я же не буду использовать только MP во время разработки, в процесс входит и сама игра GTA:SA. Но идея про "самоудалятор" понравился)

Я продолжу разработку (пока не спалят :mosking:)

vovandolg
13.06.2017, 00:20
в вашей стране полюбас нормальных шпионских технологий нету
запретили, а сами не подумали что не отследят такие вещи,
по сути не чего и не изменилось, разве что играть придется с зашторенными окнами чтобы не доипались потом:fool:

Geebrox
13.06.2017, 00:40
в вашей стране полюбас нормальных шпионских технологий нету
запретили, а сами не подумали что не отследят такие вещи,
по сути не чего и не изменилось, разве что играть придется с зашторенными окнами чтобы не доипались потом:fool:

Да уклон был не домашним ПК юзерам, а в основном пострадали компьютерные клубы, да и вообще я думаю они не будут заходить в дом каждого пк юзера и проверять какие игры установлены - это уже совсем выходит за рамки разумного. "Мега шпионских" технологий у нас нет, но все передаваемые пакеты в мировую сеть у нас под контролем, именно через этот метод блокируют связи Skype и следят за сообщениями Telegram (без шутки). Можно использовать VPN, но нормального провайдера с отличной скоростью интернета нет. Причем VPN тоже запрещен. Ну это уже другие темы, а насчет самп, я думаю можно продолжить.

DeimoS
13.06.2017, 02:24
Мне кажется, что запрет больше даже не на клубы распространяется, а на торговлю и распространение этих игр. То, что ты будешь играть в неё дома, не сделает из тебя преступника, ибо просто никто об этом не узнает, а если и узнает, то всем будет плевать (ну реально, им что ли делать нечего, кроме как наказывать тебя за то, что ты играл в компьютерную игру?).

vovandolg
13.06.2017, 07:32
Ну раз в законе оглашено что игра запрещена в стране, то собираются все аспекты в едино, то бишь торговля, скачивание, использование, хранение.
Просто за всем этим просто так не уследишь, это тоже самое если я напишу античит на аир который полностью нельзя пофиксить, ходить следить админкой и всё, бестолковая беготня и постоянные рейды.

Kovshevoy
13.06.2017, 09:34
Предлагаю сделать более менее РП систему смерти. То есть, при убийстве ты переспаунишься и появляешься на том же месте где и был убит, заморожен, и в аннимации. Проходит таймер на определенное время, и ты можешь либо потерять сознание (что приведет к появлению в больнице и сразу же удаление таймера), а можно сделать выбор, что остаться и ждать приезда скорой, после того чего медикам передастся: "Вызов от очевидца(или же рандомный ник нэйм): Нужна помощь медиков, парень (или девушка), видимо ранен (или другую причину, в зависимости от того каким образом он был вогнан в стадию ранения, то есть или нанесение тяжких телесных если бита, или пулевое ранение, или просто избит и потерял сознание)." И соответственно примерный район поиска. Для администраторов можно сделать команду которая выводит из стадии, то есть убирает таймер, и восстанавливает здоровье до 100.

Daniel_Cortez
13.06.2017, 09:51
просто "самоудалятор" для SA сделать на всякий пожарный))
Только следует иметь в виду, что обычным удалением затираются только метаданные файла (имя, местоположение на носителе, размер и т.д.), содержимое самого файла остаётся. Если нужно избавиться от всех следов, то поможет только перезапись того содержимого (нулевыми байтами, например).



ну реально, им что ли делать нечего, кроме как наказывать тебя за то, что ты играл в компьютерную игру?
Как показывает практика последних лет, да, нечего. Взять например тот случай в нашей стране, когда женщина во время южноосетинского конфликта в 2008-м написала знакомому из Грузии SMS, в котором было сказано, что в их населённый пункт зашли российские войска - получила 5 лет. И только в прошлом году, когда её всё же оправдали, дело предали огласке.



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

DeimoS
13.06.2017, 13:23
Ну раз в законе оглашено что игра запрещена в стране, то собираются все аспекты в едино, то бишь торговля, скачивание, использование, хранение.

Именно поэтому и распространяется всё именно на торговлю и распространение - контролировать другие аспекты у государства не получится эффективно. И когда этот закон придумывали, никто не подразумевал, что если ты будешь играть в GTA, то тебя начнут уголовно преследовать за это. Никому это просто не надо. Закон просто закрывает рынок для определённых игр и не более.


Как показывает практика последних лет, да, нечего. Взять например тот случай в нашей стране, когда женщина во время южноосетинского конфликта в 2008-м написала знакомому из Грузии SMS, в котором было сказано, что в их населённый пункт зашли российские войска - получила 5 лет. И только в прошлом году, когда её всё же оправдали, дело предали огласке.

Ну так нашёл с чем сравнивать. Там велись конкретные боевые действия и логично, что правительство отслеживало всё это дело, дабы те самые войска не попали в какую-нибудь засаду, в итоге. Я не говорю, что её наказали за дело. Но в той ситуации вполне логично, что правительство отслеживало все каналы связи и немудрено, что её, в итоге, поймали.
Но как вся эта ситуация относится к запрету игр и автору темы? Какая ситуация может привести к тому, что правительство начнёт отслеживать всех играющих в GTA?


В этом и суть последних законов: неприметный повод, суровое наказание и избирательное действие.

Первое: такое было всегда. Просто при той же монархии это было нормой и тогда особо не требовались какие-то законы или указы. А сейчас всё пытаются обернуть в демократическую обертку с кучей законов и все вдруг удивляются, хотя дальше удивлений и не заходит пока.
Второе: так а как к автору темы, опять же, это относится?

P.S. Просто подумайте, пиратство ведь тоже запрещено в России на законодательном уровне. Но к вам хоть раз врывались в дом ФСБшники и проверяли компьютер на предмет пиратского софта и игр? Правильно, нет. Весь этот закон распространяется лишь на распространение пиратской продукции (но есть куча лазеек) и на коммерческие предприятия, где ходит финансовая инспекция, которая может наложить штраф, если предприятие будет использовать какой-то пиратский софт. Всё. Никто не будет сажать пол страны за то, что они в какую-то там игрушку играют.

vovandolg
13.06.2017, 16:41
Надень резинку короче и предохраняйся:rofl:

Daniel_Cortez
13.06.2017, 17:50
Но в той ситуации вполне логично, что правительство отслеживало все каналы связи и немудрено, что её, в итоге, поймали.
Ничуть не логично, ибо инфа и так была в общем доступе. Кстати, по поводу 5 лет я запамятовал, на самом деле их было 7. И осужденную не оправдали. Её помиловал президент после того, как эту историю растиражировали в оппозиционных СМИ. Но в любом случае, есть ещё, как минимум, 4 подобных дела.
И да, чтобы не быть пустословом: http://5cek.livejournal.com/906645.html



Но как вся эта ситуация относится к запрету игр и автору темы?
Я всего лишь привёл пример того, как правительству может быть "плевать". Если выдают от 7 до 12 лет за SMS с общедоступной информацией, то почему бы не упрятать кого-нибудь за "запретную" игру?



Какая ситуация может привести к тому, что правительство начнёт отслеживать всех играющих в GTA?
Например, такая, в которой местному отделу "представителей власти" нужно создать видимость работы (как в той статье по ссылке выше). Для этого необязательно даже ходить по домам, достаточно устроить проверку в какой-нибудь школе, где кто-то из учащихся, будучи не в курсе о последних законах, установил на компьютере в кабинете информатики GTA или ещё что-нибудь запрещённое. А уж ответственного найдут, план-то выполнять надо.



Первое: такое было всегда. Просто при той же монархии это было нормой и тогда особо не требовались какие-то законы или указы.
Вот только мы сейчас живём отнюдь не в монархии.



А сейчас всё пытаются обернуть в демократическую обертку с кучей законов и все вдруг удивляются, хотя дальше удивлений и не заходит пока.
Говорят, если кинуть лягушку в кастрюлю с кипятком, она выпрыгнет, но если поместить её в кастрюлю с холодной водой и нагревать постепенно, она ничего не поймёт и сварится. Примерно такой же принцип и здесь. Страшны не столько сами "сомнительные" законы, сколько тенденция к их принятию.



Второе: так а как к автору темы, опять же, это относится?
Просто хотел выразить свою солидарность с ним, ибо не он один живёт в стране с тенденциями к всё большему законодательному бреду.

Kovshevoy
13.06.2017, 18:16
Просто хотел выразить свою солидарность с ним, ибо не он один живёт в стране с тенденциями к всё большему законодательному бреду.
Тут половина форума таких граждан, где в их странах происходит законодательный бред.

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

Я конечно все понимаю, но этого я не понимаю.


pawno\include\../src/player/account/account_system.inc(178) : error 075: input line too long (after substitutions)
pawno\include\../src/player/account/account_system.inc(185) : error 010: invalid function or declaration
pawno\include\../src/player/account/account_system.inc(186) : error 010: invalid function or declaration
pawno\include\../src/player/account/account_system.inc(198) : error 075: input line too long (after substitutions)
pawno\include\../src/player/account/account_system.inc(244) : error 075: input line too long (after substitutions)
pawno\include\../src/player/account/account_system.inc(269) : error 010: invalid function or declaration
pawno\include\../src/player/account/account_system.inc(440 -- 443) : error 001: expected token: "-string end-", but found "-identifier-"
pawno\include\../src/player/account/account_system.inc(508 -- 510) : error 032: array index out of bounds (variable "join_text")
pawno\include\../src/player/account/account_system.inc(529 -- 531) : error 032: array index out of bounds (variable "join_text")
pawno\include\../src/player/account/account_system.inc(1077 -- 1080) : error 001: expected token: "-string end-", but found "-identifier-"
pawno\include\../src/player/account/account_system.inc(1139 -- 1141) : error 032: array index out of bounds (variable "join_text")
pawno\include\../src/player/account/account_system.inc(1203 -- 1205) : error 032: array index out of bounds (variable "join_text")
pawno\include\../src/player/account/account_system.inc(1362 -- 1363) : error 001: expected token: "-string end-", but found "-identifier-"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


13 Errors.

DeimoS
13.06.2017, 19:21
Компилятор от Zeex (https://github.com/Zeex/pawn/releases) всех спасёт

Kovshevoy
13.06.2017, 19:24
Компилятор от Zeex (https://github.com/Zeex/pawn/releases) всех спасёт

Факт в том, что его и юзаю, но возможно не последний релиз. Пойду экспериментировать в общем.

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

Update: Ага, так оно и есть, на последней версии компилятора все скомпилилось как и нужно, не первый раз выручаешь, спасибо Деймос)

Pa4enka
13.06.2017, 22:56
По этому поводу нужно видеть закон. Ведь сейчас многие законы делаются неопытными людьми, которые ничего не понимают в политике. А значит прогнозировано, что в законе существуют дыры. Да и все пункты, которые охватывает закон, там описаны 100%.

Kovshevoy
25.07.2017, 19:16
Че там, обновления будут?

Geebrox
25.07.2017, 22:31
Че там, обновления будут?

Да, конечно. Я был занят экзаменами в ВУЗ, сейчас начал работать на проектом. Скоро будут, идей мало для реализации.

whale
12.11.2017, 18:47
Жду обновлений, интересно посмотреть. Если нужны будут какие-либо идеи для реализации - обращайся (click (https://vk.com/twixyck)).

Geebrox
25.11.2017, 00:40
Ведется разработка над локализацией сервера (EN, RU). Изменена архитектура. В скором времени будет публикация новой версии проекта.

Kovshevoy
25.11.2017, 16:30
Ведется разработка над локализацией сервера (EN, RU). Изменена архитектура. В скором времени будет публикация новой версии проекта.

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

Geebrox
25.11.2017, 20:57
Не вижу для тебя смысл делать еще и инглишь локализацию на сервере. Если ты думаешь, что на сервер одновременно зайдут два человека один русскоговорящий, а другой англоговорящий - особо толку не будет, если они пересекутся они друг друга не поймут.
Если ты хочешь просто нацелить мод еще и на иностранную аудиторию - претензий нет, все более чем понятно тогда.

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

Geebrox
08.12.2017, 01:59
Введется разработка над ГИП, пока что сделан новый ГИП регистрации:
https://i.imgur.com/cN9w5kP.jpg

Kovshevoy
20.02.2018, 20:43
Шо по обновам, Geebrox?

Geebrox
20.02.2018, 22:42
Шо по обновам, Geebrox?

:grin: Да не знаю даже, что сказать. Учёба за**олбала. Занимаюсь парсерами для вызова функций из других модулей.

fivenet
21.04.2018, 20:53
Как запустить данный мод помогите, и кстати как компилировать :dirol:geebrox.pwn:dirol: просто так не запускается

Kovshevoy
01.06.2018, 00:54
Пс, парень, чо по обновам? Пол года уже прошло хД

Kovshevoy
16.09.2018, 14:02
А время то идет....