Korochansky

Разрабатываю IDE для скриптеров серверов SAMP

В теме 30 сообщений

Здравствуйте. Я заметил что нет нормальных полноценных IDE для Pawn, большинство IDE какие-то багованнные, выскакивают разнообразные ошибки, в "Extreme Studio" к примеру. А в Pawno работать не удобно и в нём довольно скудный функционал. Ну вот.

 

Вот, сейчас я разрабатываю IDE которое называется "Spawn"(Samp pawn), которое потом будет много раз тестироваться, чтобы минимизировать самые разные ошибки если они будут. Когда будет закончена основа IDE, программа будет разрабатывать по предпочтениям пользователей/скриптеров, чтобы они хотели увидеть в программе, а там я уже буду решать реально ли требуется это программе или нет.

Главная цель программы по максимуму упростить разработку серверов SAMP.

Также программа будет как для Windows так и для Linux.

Распространяться будет по лицензии GPL с закрытым исходным кодом. 

 

Я немного опишу что можно будет делать в в программе, что уже реализовано и что хочу сделать:

 - Уже закончена работа над графической частью с которой взаимодействует пользователь(Меню, панель инструментов, диалог настроек, редактор и т. д.)

- Реализована подсветка синтаксиса Pawn

- Файлы будут открываться в вкладках редактора

- Реализована "Карта документа (Document map)" в правой стороне редактора с которой можно взаимодействовать(прямо как Sublime Text)(В настройках можно будет скрыть)

- Автоматическое закрытие скобок -> {}() ""

- Подсветка скобок которые взаимосвязаны между собой, на которые указал пользователь курсором.(Настраивается)

- Будет реализованы подсказки вызова(Call Tips) и авто-дополнение кода.

- Реализована настройка подсветки языка и настройка шрифта

- Live templates(Живые шаблоны)

- Поддержка компиляторов от SAMP Team, Zeex и модификацией Zeex(которая на удивление очень быстро компилирует исходники) и конечно же переключение между ними

И многое другое. 

 

Есть сообщество Spawn, там можно найти так называемую статью "Roadmap"(или Карта разработки) которая регулярно обновляется, там так же отмечается что уже закончено.

Сообщество: https://vk.com/spawnsoftware

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Скриншотиков бы... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6254244f2470c_.png.8633c8922edc605a1b26444d261d5ba2.png@DEST Лови скриншот :) 

Отредактировано пользователем Daniil Korochansky
Причина: Добавил скриншот

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
35 минут назад, Daniil Korochansky сказал:

6254244f2470c_.png.8633c8922edc605a1b26444d261d5ba2.png@DEST Лови скриншот :) 

Баганулось немного, исправлю, новый скриншот опубликую

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST Лови ещё один :) Доделал карту. Теперь она реально как  в Sublime Text62546722d951d_.png.40bf43fd0c624aa08df6f0d2968efe60.png

Отредактировано пользователем Daniil Korochansky
Причина: Небольшие поправки в тексте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разочарован в отсутствии опен сурса

Отредактировано пользователем user408337

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@user408337 Это временно. Да, пока идёт разработка программы исходники будут закрыты даже когда будут выходить первые версии. Как только работа над программой будет закончена, исходники буду опубликованы в мой GitHub репозиторий. Но лицензия не измениться(GPL).

Отредактировано пользователем Daniil Korochansky
Причина: Поправился в тексте

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неплохо :bravo:, желаю удачи в разработке! :)

А на чем кстати пишете? На каком ЯП? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST 

7 часов назад, DEST сказал:

Неплохо :bravo:, желаю удачи в разработке! :)

А на чем кстати пишете? На каком ЯП? 

Python

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я решил пока убрать Document Map из за ресурсоёмкости и багованности.

Для решения проблем с Document Map потребуется много времени что совсем замедлит разработку, поэтому я решил оставить работу над Document Map на какое-то время.

В первой версии программы, Document Map скорее всего не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Голосуем за то что хотите увидеть в Spawn'e и что не хотите. Просто нужно ответить на мои опросы. PS. Опросы не ограничены по времени.

Опросы: https://vk.com/makespawnbetter

625562b6cb39c_.png.fe3ebbbace930151b2fa08ab5be7bab5.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@DEST Добавил обозначение изменённых строк;)

status1.png.6a64059cceb4bbf25a78413678ada4a0.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перешёл с Python на C++. Программа теперь на ЯП C++

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хочу редактор-компилятор pawn для андроид) а на ПК пока Vs code или notepad++ устраивает. В любом случае успехов в разработке)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Danich, зачем? Прежде всего это огромная нагрузка на глаза и, к тому же, горы не свернете, работая с мобильных устройств (или не с мобильных, если у вас ОС Android установлена в каком-нибудь умном холодильнике :bk:). 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Сократить потраченное время у людей- то для чего программирование было придумано мне кажеца)) но в любом случае по поводу темы данного поста - удачи со sPawn. + За опенсорс))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Danich Как по мне Pawno-редактор на устройство телефон Android, не лучшая идея. 1.Ты не сможешь так быстро писать код, как на ПК. 2. Ты не сможешь быстро решить ошибки в написании кода, и протестировать его. 3. Автозаполнение не так сильно решает в написании скрипта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, на ПК удобнее, но на андроиде это что-то новое) в целом ещё одно IDE кроме как для опыта самого разработчика смысла не вижу)) в чем собсна желаю успехов. Вот ещё пару идей: + отображение отдельного списка всех функций в файле, + автозаполнение функций и тех что в соседних подключенных (или открытых) файлов, возможно это уже и имелось ввиду. :bravo:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 18.04.2022 в 20:53, Danich сказал:

Да, на ПК удобнее, но на андроиде это что-то новое) в целом ещё одно IDE кроме как для опыта самого разработчика смысла не вижу)) в чем собсна желаю успехов. Вот ещё пару идей: + отображение отдельного списка всех функций в файле, + автозаполнение функций и тех что в соседних подключенных (или открытых) файлов, возможно это уже и имелось ввиду. :bravo:

;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 18.04.2022 в 20:53, Danich сказал:

Да, на ПК удобнее, но на андроиде это что-то новое) в целом ещё одно IDE кроме как для опыта самого разработчика смысла не вижу)) в чем собсна желаю успехов. Вот ещё пару идей: + отображение отдельного списка всех функций в файле, + автозаполнение функций и тех что в соседних подключенных (или открытых) файлов, возможно это уже и имелось ввиду. :bravo:

Я разрабатываю такую IDE которая позволит ускорить разработку серверов за счёт встроенных инструментов, особых функции и фишек "Spawn" в отличии от других IDE для Pawn. Я думаю такой среды разработки очень не хватает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поменял все иконки. А также исправил баги и вернул карту документа.

Безымянный.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добавлены возможности закомментирования и раскомментирования строк, а также скрытие и раскрытие фрагментов кода в скобках. Приложил GIF файл для наглядности.

Анимация2.gif

Отредактировано пользователем Daniil Korochansky
Причина: Забыл уточнить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выглядит хорошо желаю удачи в разработке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разрабатываю собственную IDE для Pawn. Главная цель ускорить и облегчить написание собственного SAMP сервера.
Будет неплохо если расскажите о проблемах и рутине при написании серверов SAMP.

А также интересно, что ускорило бы написание сервера?

Заметка от Cawfee , создано

Объединил прежнюю тему с новой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • danya_white
      От danya_white
      Оригинальный мод SA:MP Reinforce RP
      Скачать файл Доброго времени суток, хочу выставить на продажу уникального игровой мод проекта Reinforce RP
      Игровой мод написан с нуля, мод по своему уникальный так как полностью состоит из TextDrawax.
      Из паблика ничего не используется. На момент открытие проект держал онлайн в 800+ человек беспроблемно.
      На момент продажи все найденные баги/недоработки были исправлены.
       
      Информация о моде:
      Версия MYSQL - R39-6
      Античит - Самописный античит
      Стример - Streamer Plugin v2.9.4 by Incognito
      Командный процессор - ZCMD
      Хэширование паролей - MD5
      Остальное Все плагины обновлены до последней версии

      Функционал, интерфейс можно посмотреть по скриншотам и видеообзорам ниже.
       
      Видеообзоры/скриншоты:
       

      Почти всё реализовано на текстдравах, с возможностью смены цвета интерфейса под игрока. Цвета можно без проблем добавлять.
      Количество копий на продажу ограничено. 
      Добавил danya_white Добавлено 21.02.2025 Категория Моды Автор danya_white  
    • danya_white
      От danya_white
      Доброго времени суток, хочу выставить на продажу уникального игровой мод проекта Reinforce RP
      Игровой мод написан с нуля, мод по своему уникальный так как полностью состоит из TextDrawax.
      Из паблика ничего не используется. На момент открытие проект держал онлайн в 800+ человек беспроблемно.
      На момент продажи все найденные баги/недоработки были исправлены.
       
      Информация о моде:
      Версия MYSQL - R39-6
      Античит - Самописный античит
      Стример - Streamer Plugin v2.9.4 by Incognito
      Командный процессор - ZCMD
      Хэширование паролей - MD5
      Остальное Все плагины обновлены до последней версии

      Функционал, интерфейс можно посмотреть по скриншотам и видеообзорам ниже.
       
      Видеообзоры/скриншоты:
       

      Почти всё реализовано на текстдравах, с возможностью смены цвета интерфейса под игрока. Цвета можно без проблем добавлять.
      Количество копий на продажу ограничено. 
    • kirill1995
      От kirill1995
      Крч делаю свой сервер пытаюсь запустить его и у меня вылазит ошибка [MySQL R41-4]: Подключиться к базе данных не удалось.
      может кто шарит как это пофиксить заплачу!

    • Dev_Persona
      От Dev_Persona
      Приветствую, вот ищу код для скрытия кнопки прыжка, пробовал коды HUD_JUMP, HUD_ELEMENT_JUMP, не чего не помогло, подскажите кто знает код для скрытие кнопки прыжка в крмп
    • Tappert
      От Tappert
      Диалог команды работает и отображается, после выбора любой должности пустота
      CMD:ahelp(playerid) {     if (admin_level[playerid] < 1 || !admin_logged[playerid]) return 1;     SPD(playerid, 1234, DIALOG_STYLE_LIST, ""c_server"Команды администрации","\         "c_server"1 "c_white"- Помощник администрации\n\         "c_server"}2 "c_white"- Стажёр модерации\n\         "c_server"3 "c_white"- Младший администратор\n\         "c_server"4 "c_white"- Опытный администратор\n\         "c_server"5 "c_white"- Куратор сервера\n\         "c_server"6 "c_white"- Заместитель главы администрации\n\         "c_server"7 "c_white"- Глава администрации\n\         "c_server"8 "c_white"- Куратор игрового процесса\n\         "c_server"9 "c_white"- Директор проекта\n\         "c_server"10 "c_white"- Создатель", "Выбрать", "Закрыть");          return 1; }         case 9992: return pc_cmd_leaders(playerid, "");         case 9993: return pc_cmd_offleaders(playerid, "");         case 9996: return MenuAtms(playerid); // основной банковский счет         case 9997: return OprDialog(playerid); // система счетов банк         case 9998: return BankDialog(playerid); // банкдиалог         case 9999: return pc_cmd_menu(playerid, ""); // /mm         case 1234:         {         if (!response) return 1;         switch (listitem)         {                 case 0:                 {                     if (admin_level[playerid] < 1 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                                          SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/sc"c_white" — чат игровых помощников\n\                     "c_server"/alogin"c_white" — авторизоваться в панели администратора\n\                     "c_server"/aexit"c_white" — выйти из панели администратора\n\                     "c_server"/ans"c_white" — ответить игроку\n\                     "c_server"/srep"c_white" — список вопросов в порядке живой очереди\n\                     "c_server"/admins"c_white" — список администрации в сети", "Закрыть", "");                 }                 case 1:                 {                     if (admin_level[playerid] < 2 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                          SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/a"c_white" — чат администрации\n\                     "c_server"/arep"c_white" — список жалоб в порядке живой очереди\n\                     "c_server"/sp | /offsp"c_white" — начать / завершить слежку за игроком\n\                     "c_server"/pstats | /offpstats"c_white" — посмотреть статистику игрока\n\                     "c_server"/frz"c_white" — заморозить / разморозить игрока\n\                     "c_server"/ajail"c_white" — посадить игрока в тюрьму (< 30)\n\                     "c_server"/mute"c_white" — заблокировать чат игроку (< 60)\n\                     "c_server"/spawn"c_white" — отправить игрока на место возрождение\n\                     "c_server"/kick"c_white" — отключить игрока от сервера\n\                     "c_server"/hp"c_white" — восстановить здоровье игроку\n\                     "c_server"/okay"c_white" — подтвердить изменение nonRP ник\n\                     "c_server"/nookay"c_white" — отменить изменение nonRP ника", "Закрыть", "");                 }                 case 2:                 {                     if (admin_level[playerid] < 3 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                          SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/ban"c_white" — заблокировать аккаунт игроку (< 10)\n\                     "c_server"/warn"c_white" — выдать предупреждение игроку\n\                     "c_server"/ajail"c_white" — посадить игрока в тюрьму (< 120)\n\                     "c_server"/mute"c_white" — заблокировать чат игроку (< 120)\n\                     "c_server"/goto"c_white" — телепортироватся к игроку\n\                     "c_server"/gethere"c_white" — телепортировать игрока к себе\n\                     "c_server"/fix"c_white" — починить транспорт (ID)\n\                     "c_server"/gotcar"c_white" — телепортироваться к транспорту\n\                     "c_server"/getcar"c_white" — телепортировать транспорт к себе\n\                     "c_server"/recar"c_white" — заспавнить транспорт (ID)\n\                     "c_server"/skick"c_white" — тихо отключить игрока от сервера", "Закрыть", "");                 }                 case 3:                 {                     if (admin_level[playerid] < 4 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/ban"c_white" — заблокировать аккаунт игроку (< 30)\n\                     "c_server"/fip"c_white" — имеющиеся аккаунты по IP адресу\n\                     "c_server"/banip"c_white" — заблокировать IP адрес\n\                     "c_server"/unwarn"c_white" — снять предупреждение с игрока\n\                     "c_server"/unmute"c_white" — разблокировать чат игроку\n\                     "c_server"/unajail"c_white" — выпустить игрока из тюрьмы\n\                     "c_server"/slap"c_white" — подкинуть игрока\n\                     "c_server"/veh"c_white" — создать транспорт\n\                     "c_server"/delveh"c_white" — удалить созданный транспорт\n\                     "c_server"/delvehall"c_white" — удалить весь созданный транспорт\n\                     "c_server"/plveh"c_white" — выдать временный транспорт игроку\n\                     "c_server"/getip"c_white" — узнать IP игрока\n\                     "c_server"/offmute"c_white" — заблокировать чат игроку в оффлайне\n\                     "c_server"/offajail"c_white" — посадить игрока в тюрьму в оффлайне\n\                     "c_server"/offwarn"c_white" — выдать предупруждение игроку в оффлайне\n\                     "c_server"/offban"c_white" — заблокировать аккаунт в оффлайне\n\                     "c_server"/spveh"c_white" — заспавнить транспорт в радиусе\n\                     "c_server"/spawncars"c_white" — заспавнить весь свободный транспорт", "Закрыть", "");                 }                 case 4:                 {                     if (admin_level[playerid] < 5 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/aad"c_white" — OOC сообщение для игроков\n\                     "c_server"/skin"c_white" — выдать временную одежду игроку\n\                     "c_server"/setskin"c_white" — выдать постоянную одежду игроку\n\                     "c_server"/templeader"c_white" — назначить себя временным руководителем\n\                     "c_server"/getonline"c_white" — информация онлайна игрока\n\                     "c_server"/unban"c_white" — разблокировать аккаунт\n\                     "c_server"/unbanip"c_white" — разблокировать IP адрес\n\                     "c_server"/setfaction"c_white" — принять игрока в организацию\n\                     "c_server"/infoip"c_white" — информация о IP адресе\n\                     "c_server"/getfake"c_white" — поиск информации по IP адресу\n\                     "c_server"/setvw"c_white" — переместиться в другой виртуальный мир\n\                     "c_server"/setint"c_white" — переместиться в другой интерьер", "Закрыть", "");                 }                 case 5:                 {                     if (admin_level[playerid] < 6 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/givegun"c_white" — выдать оружие игроку\n\                     "c_server"/settime"c_white" — изменить время на сервере\n\                     "c_server"/agl"c_white" — выдать лицензии игроку\n\                     "c_server"/fullgwh"c_white" — пополнить склады всем организациям\n\                     "c_server"/auninvite"c_white" — уволить игрока из организации", "Закрыть", "");                 }                 case 6:                 {                     if (admin_level[playerid] < 7 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/makeadmin"c_white" — назначить администратора\n\                     "c_server"/unadmin"c_white" — снять администратора\n\                     "c_server"/createpromo"c_white" — создать новый промокод\n\                     "c_server"/promo"c_white" — список доступных промокодов\n\                     "c_server"/ahouse"c_white" — телепортироваться к дому\n\                     "c_server"/abiz"c_white" — телепортироваться к бизнесу\n\                     "c_server"/afuel"c_white" — телепортироваться к заправке\n\                     "c_server"/freezepanel"c_white" — статусы заморозки банд\n\                     "c_server"/delacc"c_white" — удалить аккаунт", "Закрыть", "");                 }                 case 7:                 {                     if (admin_level[playerid] < 8 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/alog"c_white" — действия администратора\n\                     "c_server"/addnotify"c_white" — добавить сообщение для игрока (при входе)\n\                     "c_server"/asellhouse"c_white" — продать дом государству\n\                     "c_server"/asellbiz"c_white" — продать бизнес государству\n\                     "c_server"/asellfuel"c_white" — продать запраку государству\n\                     "c_server"/bonus"c_white" — панель управления бонусами\n\                     "c_server"/setprod"c_white" — установить всем бизнесам 20,000 продуктов\n\                     "c_server"/setbizname"c_white" — изменить название бизнеса\n\                     "c_server"/sptext"c_white" — написать сообщение от лица игрока", "Закрыть", "");                 }                 case 8:                 {                     if (admin_level[playerid] < 9 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/saveall"c_white" — сохранить все данные\n\                     "c_server"/payday"c_white" — запустить PayDay\n\                     "c_server"/setlevel"c_white" — установить игроку уровень", "Закрыть", "");                 }                 case 9:                 {                     if (admin_level[playerid] < 10 || !admin_logged[playerid])                     {                         SendClientMessage(playerid, col_grey, "Вы не достигли такого уровня.");                         return 1;                     }                     SPD(playerid, 1234, DIALOG_STYLE_MSGBOX, "", "\                     "c_server"/restart"c_white" — перезагрузить сервер\n\                     "c_server"/anticheat"c_white" — настройки античита\n\                     "c_server"/givemoney"c_white" — выдать игровую валюту игроку\n\                     "c_server"/givedonate"c_white" — выдать донат рубли игроку\n\                     "c_server"/giveoskolok"c_white" — выдать осколки тайника игроку", "Закрыть", "");                 }                            }         }