KOTOFF.NET
  • Главная
  • Пользователи
  • Контакты
  • Статистика
  • Правила
  • О нас
  • Вход / Регистрация

Счетчик репортов с сохранением для CRMP/SAMP + исходники

Программы


Когда я был администратором на одном из проектов CRMP, я написал себе программу для подсчета репортов (/ans) так как статистику на всегда скидывали, да и норму выполнять так было проще. Программа сохраняет все результаты, суммируя с прошлыми.

P. S. Программу писал по памяти изучения данного языка в 2009 году, поэтому код очень грубый, при желании можете доработать/переписать.

Если Вы являетесь действующим администратором проекта «Amazing RP» то Вы можете запустить программу и сразу пользоваться, для остальных проектов потребуется изменение кода, делается это очень легко и просто, ниже я опишу как это сделать. Скачать архив с исходниками и самой программой можно в самом низу поста.

Как работать с программой и ее функционал.
Для начала распакуйте архив, там лежат 2 основных файла, Project1.exe и stats.ini программа и файл для сохранения результатов.
Запускаем, в этой версии я уже дописал автоматическое определение ника из реестра, там хранится ник с самого клиента CRMP, поэтому его указывать больше не нужно. Если не нашел ник или он другой, укажите нужный в Multiplayer'e

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

В архиве вас ждет новая версия 3.0, с небольшими доработками. Запускаем и пользуемся.


Как изменить исходник, скомпилировать и пользоваться.

Эта часть самая трудоемкая, если ранее Вы вообще ничего не писали подобного. Вам потребуется установить среду программирования Borland Delphi 7 версии 2002 года, именно на ней я писал эту программу, на ней и буду показывать примеры, она самая легкая, по сравнению с новыми версиями.

Я использую Delphi XE8 2015 года, но там сложная процедура установки, и весит она в разы больше, да и она не нужна Вам для такой простой программы, тут можно обойтись старой версией.





После установки самой среды, скачиваем архив с программой и исходником, распаковываем и запускаем Project1.dbr

И ищем данную процедуру с функцией
procedure TForm1.BitBtn4Click(Sender: TObject);
function CountWords(substr,str: string): Integer;
const
  Delims: set of Char=[#10,#13,' ',',','.'];
var
  p: Integer;
begin
  Result:=0;
  str:=' '+str+' ';
  substr:=trim(substr);
  p:=1;
  repeat
    p:=PosEx(substr,str,p);
    if (p>0) and (str[p-1] in Delims) and (str[p+Length(substr)] in Delims)
      then Inc(Result);
    Inc(p);
  until p=1;
end;

begin
Label12.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' [' + Label5.Caption + '] для' , Memo1.Text)));  // Репорт
Label30.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' [' + Label5.Caption + '] для' , Memo1.Text)));   // Репорт
Label14.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' выдал предупреждение' , Memo1.Text)));      //  Варны
Label17.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' посадил в деморган' , Memo1.Text)));        //  Джаилы
Label18.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' наказал' , Memo1.Text)));                   // Джаилы
Label13.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' кикнул' , Memo1.Text)));                       // кик
Label16.Caption :=  IntToStr(StrToInt(Label17.Caption)+StrToInt(Label18.Caption)) ;     //



end;


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

Строки типа:
Label12.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' [' + Label5.Caption + '] для' , Memo1.Text)));  // Репорт
Label30.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' [' + Label5.Caption + '] для' , Memo1.Text)));   // Репорт
Label14.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' выдал предупреждение' , Memo1.Text)));      //  Варны
Label17.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' посадил в деморган' , Memo1.Text)));        //  Джаилы
Label18.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' наказал' , Memo1.Text)));                   // Джаилы
Label13.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' кикнул' , Memo1.Text)));                       // кик
Label16.Caption :=  IntToStr(StrToInt(Label17.Caption)+StrToInt(Label18.Caption)) ;     //
В этом случае в файле ChatLog.txt хранится ответ вот в таком формате:
Администратор NickName [228] для Tom_Friman: Приятной игры!

Мы ищем только: 
Администратор NickName [228] для 


Их и нужно переписывать, к примеру Вы администратор на другом проекте и у Вас в ChatLog.txt сохраняется текст в таком формате:

Администратор NickName (228) ответил игроку Tom_Friman: Приятной игры!

Переписываем строки
Label12.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' [' + Label5.Caption + '] для' , Memo1.Text)));  // Репорт
Label30.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' [' + Label5.Caption + '] для' , Memo1.Text)));
 
на

Label12.Caption := (IntToStr(CountWords('Администратор  '+ Label3.Caption + ' (' + Label5.Caption + ')  ответил игроку ' , Memo1.Text)));  // Репорт
Label30.Caption := (IntToStr(CountWords('Администратор '+ Label3.Caption + ' (' + Label5.Caption + ')  ответил игроку ' , Memo1.Text)));

В этом случае программа уже ищет текст в таком виде:
Администратор NickName (228) ответил игроку 

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

Если развернуть окно в Delphi 7, то мы увидим скрытые компоненты, они нужны для корректной работы программы и сохранения копии ChatLog.txt, так как после закрытия, она его отчищает.


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

Компилируем и собираем проект в исполняемый файл Project1.exe

Можем пользоваться. Проект сохранится в папку с которой Вы его запустили.


Если редактировать ничего не нужно и Вы администратор проекта «Amazing RP» можете сразу запускать программу после распаковки архива и пользоваться. Она максимально простая и компактная, по исходникам можете убедится сами что никаких ваших данных я не получаю и ,вообще, программа не работает с сетью. (За код прошу извинить grin )

kotoff_net_stats.rar

Для агентов поддержки // Amazing
agent.rar
  • Сергей Котов
  • 15.02.2019
  • 9 525
  • 1
Как создать образ с Windows 7/10 USB DVD Download Tool / Media Creation Tool
Как создать образ с Windows 7/10 USB DVD Download Tool / Media Creation Tool
25-12-2018, 16:50, Статьи / Программы
Unchecky - Программа, которая снимает галочки за вас!
Unchecky - Программа, которая снимает галочки за вас!
26-12-2018, 18:30, Программы
Улучшаем графику в SAMP/CRMP и добавляем приятные тени
Улучшаем графику в SAMP/CRMP и добавляем приятные тени
24-12-2018, 15:09, Игры
  1. Гость Роман

    Гость Роман Гость 9 января 2022 03:46

    При компиляции выдаёт ошибку - программа не может найти указанный файл и где путь к чатлогу после user выдаёт непонятные символы User\PcPcPc ( тип такого )

{login}

Твой комментарий..

Заказывай!
Разработка ботов на заказ, любой сложности, обращаться:
 VK KOTOFF.net - Сообщество, в личные сообщения или по контактам указанным там 
 mail: [email protected]

Рекламный блок
  • Новости
  • Платная категория
  • Блог
  • Игры
  • Обновления
  • Программы
  • Статьи
    • PHP
    • Python
    • JS
  • Дизайн
    • PSD исходники
  • DLE
    • Шаблоны
    • Модули
    • Хаки
  • Магазин
    • Скрипты
Комментарии
Система комментариев на PHP
<Script>Alert("hello");</Script>
Генерация всевозможных комбинаций из набора символов — комбинаторика в Python (itertools)
Qwertyuiopasdfghjklzxcvbnm 1234567890
Система комментариев на PHP
Полезная статья
Создание простого Telegram-бота с клавиатурой и inline-кнопками [Часть 2]
Класс, хорошая тема
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Как отключить вывод результата cron в папку modules/cron в Open Server? Крон запускает несколько
Все комментарии..
Полный список последних комментариев
Лучшие новости
Всего публикаций: 115
Добавлено за сутки: +0
Записей в блоге: 1
Добавлено за сутки: +0
Комментариев: 938
Добавлено за сутки: +0
Пользователей: 4125
Добавлено за сутки: +0
Полная статистика..
Подробная статистика сайта
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter

Полезные ссылки
  • О проекте
  • Наши контакты
  • Администрация
  • Рекламные материалы
  • Идеи и предложения
  • Ответы на вопросы
Информация
  • Условия сделки
  • Способы оплаты
  • Поддержка / F.A.Q
  • Онлайн документация
  • Статистика сайта
  • Список пользователей
Услуги/Работа
  • Разработка ботов ВК
  • Обновление проекта
  • Консультация/поддержка
KOTOFF.net

Copyright © Footer 2019-2023. All right reserved.
KOTOFF.net - Уроки по PHP, SQL, IT новости
Быстрый вход

Используйте социальные сети для быстрой регистрации и авторизации.

Google
ВКонтакте
Яндекс
Mail.ru
Создать аккаунт / Регистрация
Авторизация

Я забыл свой пароль