Santa_Claus

Адаптируем Visual Studio Code под Pawn

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

 

Visual Studio Code - визуальный редактор кода, с красивым дизайном.
Сегодня мы будем адаптировать эту программу под язык Pawn.

 

АВТОР -  shinra.tensei 

  shinra.tensei (открыть спойлер)

Видеоролик по установки Visual Studio Code:

Click!

Кому-то легко сделать по видеоролику, кому-то читая статью...

 

Там наглядно все показано!

 

 

 

После обновления VSC некоторые кнопки изменились, в видео показан новый способ кодировки и компилировании..

 

 

Начало

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

После того, как мы насладились этим прекрасным интерфейсом, следует нажать на этот значок:

  Открыть! (открыть спойлер)

 

Открывается такое меню, в котором нам нужно ввести pawn и установить первое расширение в списке.

  Открыть! (открыть спойлер)

Теперь перезапускаем программу, жмем Файл > Открыть папку, и открываем папку с вашим сервером.

  Открыть! (открыть спойлер)

Теперь мы можем открыть наш мод, если виден синтаксис павна, то мы все сделали правильно :)

 

Компилирование

Зайдем в папку нашего сервера и создадим папку .vscode

  Открыть! (открыть спойлер)

 

 

Теперь нужно настроить компилирование, для этого заходим в Задачи > Настроить задачи.

  Открыть! (открыть спойлер)

Далее тыкаем все как на скринах ниже:

 

  Открыть! (открыть спойлер)

У нас открылся файл tasks.json
Содержимое этого файла нужно заменить на следующее и сохранить:

{
    "version": "2.0.0",
    "tasks": [
      {
        "label": "build-normal",
        "type": "shell",
        "command": "${workspaceRoot}/pawno/pawncc.exe",
        "args": ["'${fileBasename}'", "'-D${fileDirname}'", "'-;+'", "'-(+'", "'-d3'"],
        "group": {
          "kind": "build",
          "isDefault": true
        },
        "isBackground": false,
        "presentation": {
          "reveal": "silent",
          "panel": "dedicated"
        },
        "problemMatcher": "$pawncc"
      }
    ]
  }

 

Основная часть закончена, теперь нужно забиндить клавишу F5 под компилирование.
Для этого переходим в Файл > Параметры > Сочетание клавиш

  Открыть! (открыть спойлер)

 

Теперь нужно кликнуть по keybindings.json

  Открыть! (открыть спойлер)

 

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

[  
    { "key": "f5", "command": "workbench.action.tasks.build" }  
]  
  Открыть! (открыть спойлер)

 

Кодировка

 

Переходим в Файл > Параметры > Параметры

Вводим в поиск слово 'Кодировка'

(если у вас стоит русская локализация на Visual Studio Code)

и меняете кодировку на:

"windows1251"

 

Конец

 

Поздравляю, мы все сделали. Теперь мы можем компилировать наш мод нажатием F5. :happy:

Изображение

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

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


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

У меня проблема, все работает, все окей, все замечательно... но после компиляции amx файл мода появляется не в gamemode а за пределелами папки.

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


Ссылка на сообщение
Поделиться на другие сайты
  В 8/6/2020 в 13:36, alodayn3232 сказал:

У меня проблема, все работает, все окей, все замечательно... но после компиляции amx файл мода появляется не в gamemode а за пределелами папки.

Читать далее...  

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

 

P.S возможно проблема в tasks.json в папке .vscode // 

 

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

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


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

Собственно, проблема та же. Скомпилированный .amx появляется в корневой папке.

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


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

@20th century 

Действительно, проблема есть.

Попробуйте в папку .vscode вместе с tasks.json добавить текстовый документ launch.json, после этого открыть его и добавить такие строчки:

  Код (открыть спойлер)
  Изображения (открыть спойлер)

 

 

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

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


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

@Santa_Claus Ещё раз можешь скинуть под спойлер всё, что находится в твоей папке .vscode?
Более часа потратил уже, компилируется по прежнему в корневую.

У тебя правильно компилируется?

 

Похоже, что без PawnVSCode не обойтись, но у меня он не устанавливается, ибо VS Code не установлен в папке Program Files (x86).

 

Не поленился и переустановил. Для будущих посетителей данной темы, у которых .amx файл тоже кидается в корневую:

  tasks.json (открыть спойлер)

 

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


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

@20th century, я исправлю в теме, спасибо.

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


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

Desktop\Mod\gamemodes' '-;+' '-(+' '-d3'" (код выхода: 1). Подскажите пожалуйста, что делать?

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


Ссылка на сообщение
Поделиться на другие сайты
  В 2/8/2021 в 20:44, Гость Аккерман сказал:

Desktop\Mod\gamemodes' '-;+' '-(+' '-d3'" (код выхода: 1). Подскажите пожалуйста, что делать?

Читать далее...  

Вы видимо не по инструкции всё делали.

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • djxxx
      От djxxx
      приветствую всех.
       
      Задался таким вопросом при добавлении одной системы на DIALOG_STYLE_TABLIST_HEADERS.
       
      Суть проблемы в том, что диалог не выравнивается под нужные показатели, а просто как будто находиться по середине, в диалоге используется \t, но они особо не помогают в решении, также не ровно.
       
      а если попытаться выравнивать большим количеством \t, оно компилируется но в игре происходят вылеты
       
      Код такой:
      DialogAdmShop ( playerid, DIALOG_EPOINTSHOP, DIALOG_STYLE_TABLIST_HEADERS, fmt_str, ""BR"номер\t"BR"наименование\t"BR"доступное действие\n"\ "{EB4C42}#1\t{FFFFFF}Виртуальная валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#2\t{FFFFFF}Донат валюта\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#3\t{FFFFFF}Вип статусы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#4\t{FFFFFF}Кейсы\t{888888}нажмите для взаимодействия\n"\ "{EB4C42}#5\t{FFFFFF}Уникальные аксессуары\t{888888}нажмите для взаимодействия", "Выбрать", "Закрыть" ); }  
      сток dialogadmshop:
      stock DialogAdmShop(playerid, dialogid, style, title[], text[], button[], button2[]) {   if(style == 5)   {      ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "...", "...", "...", "");    }   ShowPlayerDialog(playerid, dialogid, style, title, text, button, button2);   return 1; }  
    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }
    • MetaLife Online
      От MetaLife Online
      Приветствую! Код мода не отпровляет данные на БД все правильно подключенно и написанно(копировал с phpmyadmin) но данные не отпровляет. но с БД на сервер приходит сообщение 
       
      new MySQL:dbHandle; new MySQL:dbHandle; #define Host "127.0.0.1" #define User "root" #define DataBase "metalife" #define Password_SQL "" dbHandle = mysql_connect(Host,User,Password_SQL, DataBase);     if(mysql_errno())     {         printf("Подключение к базе данных %s не удалось.",DataBase); // %s означает строку. То есть будет выводить название базы данных которое указано в #define DataBase     }     else     {         printf("Подключение к базе данных %s успешно",DataBase);     }     format(query, sizeof(query), "INSERT INTO `Users`(`Nick`, `Password`, `Gender`, `Skin`) VALUES ('%s','%s','%d','%d')",player_name, player_info[playerid][P_PASS], player_info[playerid][P_GENDER], player_info[playerid][P_SKIN]);     mysql_tquery(dbHandle, query); SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [15:34:54] weburl = "www.sa-mp.com"  (string) [15:34:54]  [15:34:54] Server Plugins [15:34:54] -------------- [15:34:54]  Loading plugin: mysql [15:34:55]  >> plugin.mysql: R41-4 successfully loaded. [15:34:55]   Loaded. [15:34:55]  Loaded 1 plugins. [15:34:55]  [15:34:55] Filterscripts [15:34:55] --------------- [15:34:55]   Loaded 0 filterscripts. [15:34:55] Подключение к базе данных metalife успешно [15:34:55]  ---------------------------------- [15:34:55]  MetaLife Online [15:34:55] ---------------------------------- [15:34:55] Number of vehicle models: 1 При Регестрации не опровляються данные (фото)
      Но если записать рукой данные (фото 2)  
      выполняеться эта эта функция(фото 3(чат) и код )
      forward CheckAccountFromMySql(playerid); public CheckAccountFromMySql(playerid) {     new str[256];     if(cache_num_rows() == 0)     {         new player_name[MAX_PLAYER_NAME + 1];         GetPlayerName(playerid, player_name, MAX_PLAYER_NAME);         format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником %s нет\nДля Регестрации придумайте и введите пароль в поле ниже!", player_name);         SPD(playerid, DLG_REG, DSP, "Регестрация", str, "Войти", "Выйти");     }     else     {         SCM(playerid, color_green, "Вы  зарегестрырованы!");     }     return 1; } // выполняеться else  ошибу и варнинги mysql
      [15:47:39] [WARNING] mysql_connect: no password specified (C:\Project\Metalife\gamemodes\MetaLife.pwn:92) dbHandle = mysql_connect(Host,User,Password_SQL, DataBase); // 92 строка