Исходник Police Tools | Advance RolePlay | Такой себе пример

ImPasha

Software Developer & System Administrator
Автор темы
Друг
1,788
2,141
Дисклеймер!
То, что вы увидите внутри исходника - лютейший говнокод, который желательно не использовать в своих проектах, дабы избежать всех проблем, с которыми когда-то сталкивался я сам. Если вы, конечно же, являясь бессмертным человеком, решились использовать мой код в ваших проектах, то предупреждаю, что я снимаю с себя всю ответственность за его использование и любых возникшие у вас проблемы. Выкладывая ваши разнообразные переделки, если таковые есть, меняйте им название, ибо Police Tools ещё существует и поддерживается разработчиком. Рекомендуется серьезно относится к таким вещам, ибо от Takedown'a никто не застрахован, а защищать авторские права на свой продукт я намерен до конца поддержки данного скрипта. Вопрос с авторскими правами относится не только к публикации на BlastHack, но и на всех площадках в целом. Спасибо за понимание!

Приятного изучения!


DD0Zq.png



Добрейшего времени суток, господа LUA'шники. Сегодня, первого января 2019 года, я бы хотел представить Вам полноценный исходный код своего скрипта Police Tools. Дабы люди не побежали создавать свои копии моего детища, скажу, что данная версия является достаточно старой, чтобы её системы перестали представлять опасность для моего основного проекта. Сразу скажу, что я выкладываю этот проект сюда, т.к. хочу помочь людям, которые хотят познать LUA, научиться. Не тупо скопировать код, поменять название и выдать проект за свой, а именно получить знания. Я, как никто другой, понимаю, что такое начинать полностью с нуля, не имея под рукой более менее хорошего примера. Также не стану заявлять, что этот проект прекрасен. Я начал писать его в 2017 году, тогда я сам только начинал заниматься скриптингом на LUA, могут быть ужасные системы.


Огромная часть кода закомментирована, на неё можно даже не смотреть, мне было лень её вырезать.


Рекомендую прочитать эту тему полностью, ведь иначе Вы, вероятнее всего, ничего не поймёте, когда откроете исходный код. Готовы читать? Надеюсь, что Ваш ответ положительный. Давайте начнём.


Сам исходник состоит из некоторых, очень сложных для освоения новичкам, вещей:

• ImGUI-окна и оверлеи [ основной интерфейс ]
• Работа с сетью [ асинхронные запросы / обычные HTTP запросы ]
• Работа с INI-конфигами [ настройки скрипта ]
• Работа с многоступенчатыми диалогами [ дополнительный интерфейс ]
• Работа с регулярными выражениями [ lua pattern ]
• Чуть-чуть работы с SAMP LUA.


А теперь давайте обсудим проблемные части моего исходника:

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


Если говорить о плюсах, то можно выделить вот что:

• 10k чистого кода + ещё 3k иногда полезных комментариев.
• Приватные системы, за которые за некогда выкладывал свои кровные.
• Добротные системы, которые могут послужить исходниками сетевых функций.


Также упрощу Вам задачу и перечислю интересные функции:
Автоматическая отыгровка оружия.
Можно найти в main, комментарий [ WEAPON_FUNCTION_BEGIN ].
Слегка переделанная система цикличных асинхронных запросов.
Можно найти через поиск, функция [ loop_async_http_request ].
Полноценная система внутрискриптового чата на функции выше.
Можно найти на строке [ 3985 ] или по ключ. слову [ getmsg2.php ].
Полноценная база данных МВД, сойдет как пример.
Можно найти на строке [ 8124 ] или по ключ. слову [ cmd_database ].
Полноценная система внутрискриптового биндера с тэгами.
Мини MVDHelper, как многие считают, можно найти по всему скрипту.


Данный исходник использует следующие библиотеки:

• samp.lua
• dear imgui
• memory
• encoding [ для ImGUI, соответственно ]



Возможно, я ещё дополню эту тему полезной и интересной информацией. Сами понимаете, ночь после нового года всегда сложная. Если я что-то забыл добавить, и вы нашли это в исходнике, то напишите в теме, буду Вам очень признателен. Надеюсь, что я своим исходником смогу помочь хоть кому-то из тех, кто начинает изучать LUA, либо же пытается написать свой первый скрипт. Если у Вас есть вопросы по исходнику, то Вы также можете задавать их в данной теме. Если хотите оставить отзыв, пожалуйста, дерзайте, вся тема в Вашем распоряжении. И ещё раз напомню, начинал писать этот скрипт я, когда сам только учился, поэтому не стоит его сильно критиковать. Все мы люди, все мы совершаем ошибки так или иначе. Огромная просьба, создавайте уникальные скрипты, не стоит повторять за другими, если, конечно, вы не учитесь на чужом примере. Запомните, если у Вас что-то не получается, пробуйте дальше - когда-нибудь обязательно всё получиться, если не сдаваться. Не старайтесь закрывать свой код, пусть люди посмотрят на что Вы способны. Ведь только так Вас смогут признать как человека, который может писать код и не боится его показать. Я понимаю, что я далеко не первый, кто публикует огромный проект, но и надеюсь, что я не последний, кто так делает. Ну а с Вами был на связи Pavel Garson, учитесь и добьётесь всего, чего пожелаете. И да, предоставляю я этот исходник для ознакомления, а не для наглого копирования. Если уж копируйте, то пишите, где взяли. А так спасибо, всего.


Собственно, думаю, что Вам абсолютно плевать, что я написал выше, вы просто ищите исходник.
Огромное уважение тем людям, кто прочитал весь текст, который я придумывал после НГ =))
 

Вложения

  • policetools(OS).lua
    543.4 KB · Просмотры: 1,121
Последнее редактирование:

BlackGoblin

Известный
520
216
Скачал, завтра гляну что там такого у тебя. Действительно интересно! Как раз пытаюсь в Lua разобраться и да, ты прав, примеров мало очень :(
 
  • Нравится
Реакции: ImPasha

Aniki

🐰
Администратор
1,228
1,558
А там есть тот самый функционал с админкой и киками/слапами от модераторов скрипта через собственно этот скрипт? И конечно же возможность писать в чат от лица юзеров!
@shamanije нормального человека стошнит от того быдлокода, не буду распространять шок-контент!
 
  • Нравится
Реакции: ImPasha

ImPasha

Software Developer & System Administrator
Автор темы
Друг
1,788
2,141
Скачал, завтра гляну что там такого у тебя. Действительно интересно! Как раз пытаюсь в Lua разобраться и да, ты прав, примеров мало очень :(
Теперь есть целых два масштабных примера на твой вкус и цвет.
А там есть тот самый функционал с админкой и киками/слапами от модераторов скрипта через собственно этот скрипт? И конечно же возможность писать в чат от лица юзеров!
Чат остался, небольшая часть админки вроде тоже.
 

Di3

Участник
432
20
Щас типо модно крупные проекты скриптов сливать?
 

ImPasha

Software Developer & System Administrator
Автор темы
Друг
1,788
2,141
Щас типо модно крупные проекты скриптов сливать?
Не сливать крупные проекты, а дарить исходный код тем, кто хочет научиться скриптингу.
И да, это мой проект, и что с ним делать решать тоже мне. :sneaky:
 
  • Нравится
Реакции: executor_lzt

ImPasha

Software Developer & System Administrator
Автор темы
Друг
1,788
2,141
Перезагрузил скрипт, т.к. в старой версии была ошибка
 

dmitri4

Известный
452
78
Перезагрузил скрипт, т.к. в старой версии была ошибка
[18:40:08.942112] (error) Police Tools: D:\Games\WINTER GTA\moonloader\policetools(OS).lua:3261: attempt to compare string with nil
stack traceback:
D:\Games\WINTER GTA\moonloader\policetools(OS).lua: in function 'resolve'
D:\Games\WINTER GTA\moonloader\policetools(OS).lua:205: in function <D:\Games\WINTER GTA\moonloader\policetools(OS).lua:195>
[18:40:08.945109] (error) Police Tools: Script died due to an error. (0BBCD08C)
 

Frapsy

Известный
Проверенный
393
227
Посмотрела код, на мой взгляд, учится на нём самое то!
Что нового из кода узнала? Или от балды сказануть лишь бы? Я вот не вижу логики в простых действиях, по типу этого(это асинхронный запрос):
Lua:
  function (result)
        if result then
            if result:find('Emptymsg') then

            elseif result:find('PTCHAT') then
Если такое простое действие делается так херого - то, что дальше? Я пролистал весь исходник, и, честно, не в обиду, мусора очень много, ну очень.
Улыбнуло это:
Lua:
sampRegisterChatCommand('testwindow', function() sampShowDialog(435, '{ff5555}Бан аккаунта', '{ffffff}Дата: 25 августа 2018 г.\nВаш ник: Pavel_Garson\nНик администратора: Smart_Jackson\nКоличество дней: 1000\nПричина: Кража аккаунтов\n\n{b2ff66}Если вы не согласны с наказанием, сделайте скриншот (F8)\nи оставьте жалобу на форум forum.advance-rp.ru', 'Закрыть') end)

Едрить.. Количество sampRegisterChatCommand.. Ты черт.
Строки от 9953 до 10055 - это нечто ;D

За старания - молодец, но внутри - грустно.
 
Последнее редактирование:
  • Нравится
Реакции: AnWu, r4nx и user116675

ImPasha

Software Developer & System Administrator
Автор темы
Друг
1,788
2,141
[18:40:08.942112] (error) Police Tools: D:\Games\WINTER GTA\moonloader\policetools(OS).lua:3261: attempt to compare string with nil
stack traceback:
D:\Games\WINTER GTA\moonloader\policetools(OS).lua: in function 'resolve'
D:\Games\WINTER GTA\moonloader\policetools(OS).lua:205: in function <D:\Games\WINTER GTA\moonloader\policetools(OS).lua:195>
[18:40:08.945109] (error) Police Tools: Script died due to an error. (0BBCD08C)
Автообновление нужно убрать, чтобы он запустился.

Я пролистал весь исходник, и, честно, не в обиду, мусора очень много, ну очень.
Ну так я про это писал, там очень много мусора. В основном он просто закомментирован.
 
  • Нравится
Реакции: atizoff

Di3

Участник
432
20
Какие доп файлы нужны?) Вылазит загрузка и скрипт останавливается
 

Ded Perded

Участник
61
48
13к строк, ох тыж, ладно, может это так надо. Код по быстрому пролистыванию чище известного АХКашника - North'a,

UDP:
Мог бы везде URL запихнуть в переменную, а то хаус какой-то, где-то в строке, где-то в переменной.
 

ImPasha

Software Developer & System Administrator
Автор темы
Друг
1,788
2,141
Какие доп файлы нужны?) Вылазит загрузка и скрипт останавливается
В теме написано. В принципе можешь скачать установщик и украсть оттуда библиотеки.
Police Tools(https://www.policetools.ru/)
13к строк, ох тыж, ладно, может это так надо. Код по быстрому пролистыванию чище известного АХКашника - North'a,
Ну не знаю, не знаю.

Короче парни, завтра сяду и почищу исходник от мусора в виде комментариев. Надеюсь на поддержку =)