Santa_Claus

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

9 posts in this topic

 

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

 

АВТОР -  shinra.tensei 

Спойлер

Было взято с другого сайта -

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

Click!

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

 

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

 

 

 

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

 

 

Начало

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

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

Спойлер

MLJrfntClk8.jpg

 

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

Спойлер

i31xJz7k3Ok.jpg

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

Спойлер

0i_kT-t6eiY.jpg

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

 

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

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

Спойлер

24Ud_hx2rjU.jpg

 

Изображение

 

 

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

Спойлер

Изображение

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

 

Спойлер

Изображение

 

Изображение

У нас открылся файл 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:

Изображение

Edited by Santa_Claus

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
4 часа назад, alodayn3232 сказал:

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

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

 

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

 

Edited by Santa_Claus

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@20th century 

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

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

Спойлер

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${file}"
        }
    ]
}

 

Спойлер

XTrhjGVzvW?quality=85&format=jpegMkOBTcCDUr?quality=85&format=jpegYLWuSIU0bP?quality=85&format=jpeg

 

 

Edited by odosenok

Share this post


Link to post
Share on other sites

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

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

 

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

 

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

Спойлер

{
    "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"
      }
    ]
  }

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
В 08.02.2021 в 23:44, Гость Аккерман сказал:

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

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

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Vadim Grineev
      By Vadim Grineev
      пишу /park в чате выдаёт авто припарковано когда пытаюсь заново загрузить оно припарковано возле автосалона как и после покупки
      Вот код:
      CMD:park(playerid, params[]) { if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xCECECEFF, "Вы должны находиться в транспорте"); new vehicleid; if(GetPlayerOwnableCar(playerid) != GetPlayerVehicleID(playerid) && GetPlayerOwnablCar(playerid) != GetPlayerVehicleID(playerid)) return SendClientMessage(playerid, 0xCECECEFF, "Вы должны находиться в личном транспорте"); else { vehicleid = GetPlayerVehicleID(playerid); } new green_zone_id = GetPVarInt(playerid, "player_in_green_zone") - 1; if(green_zone_id != -1) { if(!g_green_zones[green_zone_id][GZ_ALLOW_PARK]) { new fmt_text[144]; format(fmt_text, sizeof fmt_text, "На территории {FFFF00}'%s' {3399FF}парковка личного транспорта запрещена. Выберите другое место для парковки", g_green_zones[green_zone_id][GZ_NAME]); SendClientMessage(playerid, 0x3399FFFF, fmt_text); return 1; } } new query[912]; new index = GetVehicleData(vehicleid, V_ACTION_ID); new Float: x, Float: y, Float: z, Float: angle; GetVehiclePos(vehicleid, x, y, z); GetVehicleZAngle(vehicleid, angle); format(query, sizeof query, "UPDATE ownable_cars SET pos_x=%f,pos_y=%f,pos_z=%f,angle=%f WHERE id=%d LIMIT 1", x, y, z, angle, GetOwnableCarData(index, OC_SQL_ID)); mysql_tquery(mysql, query, "", ""); GetVehiclePos(vehicleid, GetOwnableCarData(index, OC_POS_X), GetOwnableCarData(index, OC_POS_Y), GetOwnableCarData(index, OC_POS_Z)); GetVehicleZAngle(vehicleid, GetOwnableCarData(index, OC_ANGLE)); SaveOwnableCar(vehicleid); return SendClientMessage(playerid, 0x66CC00FF, "Транспорт припаркован"); }  
    • Guik
      By Guik
      Всем привет! Сегодня я столкнулся с проблемой выдачи rcon администратора. Я играю с телефона и не знаю как это делать. Помогите пожалуйста!!!
      Если что мод "SAMP MOBILE".
    • Impossible
      By Impossible
      Всем привет,проблема следующая.
       
      Установил на сервер PawnBots,всё работает но,при команде .pbots (настройка ботов) у меня появляеться диалоговое окно,и при нажатии на любой из пунктов меня сразу кикает античит за Dialog Hider.

      Вот нашёл код кика в моде:

       
      { if(GetPVarInt(playerid,"USEDIALOGID") != dialogid) { SendClientMessage(playerid, -1, "{FF0000}Вы были отключены за использование постороннего ПО {FFFFFF}( Dialog Hider )"),GKick(playerid); return true; } if(PlayerInfo[playerid][pDialog] != true) { SendClientMessage(playerid, -1, "{FF0000}Вы были отключены за использование постороннего ПО {FFFFFF}( Dialog Hider #1 )"),GKick(playerid); return true; }
      Помогите пожалуйста,буду очень благодарен.
       
      P.S. Чайник в Pawno