Был обычный субботний вечер. Мне нужно было готовиться к аттестации, но моя лень убеждала меня в том, что нет никакой необходимости готовиться. И я начинал ей верить.

Ещё моя лень, говорит что я очень хочу разобраться как же пишутся плагины для CS:GO SourceMod. Чем я в итоге и решил заняться, но перед этим, нужно настроить “рабочую среду”.

Любимый Sublime Text

Для тех кто не знает, Sublime Text, это текстовый редактор, с большим полезным для разработчиков функционалом. Короче много всяких плюшек и фишечек. Редактор условно-бесплатный, бесплатная версия от платной отличается тем, что периодически появляется окошко с предложением купить программу, и надписью (UNREGISTERED) в окне, в остальном функционал тот же.

Sublime Text, идем на сайт и качаем, версия по сути нам не очень важна. Просто знайте 3 версия сейчас в бете. Скачали, установили.

Все бы хорошо, но мы же хотим простым способом устанавливать дополнительные пакеты, расширяющие функционал Sublime Text.

Sublime Package Control

Sublime Package Control установка проста, выбираем версию вашего Sublime. Копируем выданный вам код, переходим в окно Sublime, жмём Ctrl + ` (там где ‘ё’, кто не в курсе), делаем вставку, нажимаем Enter. Процесс установки будет виден на нижней панельке, а после установки попросит перезапустить Sublime. Что и нужно сделать.

Source​Pawn Syntax Highlighting

Гораздо удобнее редактировать код который подсвечивается, но поддержки подсветки Pawn, в редакторе у нас нет, а вот Package Control есть. Вот им и воспользуемся чтобы поставить подсветку.

Жмём Ctrl + Shift + P, набираем в появившемся окне “Package Control”, в списке находим “Package Control: Install Package”. В новом окне набираем SourcePawn, кликаем по “Source​Pawn Syntax Highlighting”. Ждём окончания установки, теперь у нас есть подсветка синтаксиса Pawn.

Быстрая компиляция кода

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

Первым делом скачаем компилятор. SourceMod идем по ссылке, и качаем подходящий для вас вариант. Разархивируем, я к примеру разместил его в корне диска C. Для компиляции нам понадобится всё, что находится в sourcepawn\addons\sourcemod\scripting.

Теперь переходим в Sublime. Tools → New Plugin…

import sublime, sublime_plugin, os

class SourcePawnCommand(sublime_plugin.TextCommand):
	def run(self, edit):
		self.view.window().run_command('pawn_compile')

class PawnCompileCommand(sublime_plugin.WindowCommand):
	def run(self):
		filePath = self.window.active_view().file_name()
		dirName = os.path.dirname(filePath)

		os.system("C:\sourcepawn\\addons\sourcemod\scripting\spcomp.exe \""+filePath+"\" -D\""+dirName+"\" & pause")

Вписываем код, объяснять что означает каждая строчка не буду, но нужно обратить внимание на две вещи:

  • Вместо C:\sourcepawn\\addons\sourcemod\scripting\spcomp.exe нужно вписать свой путь до аналогичного файла.
  • А так же, почему тут C:\sourcepawn\\addons… стоит два слэша. Так как, \a воспринимается как спецсимвол, поэтому мы экранируем сам слэш, вторым.

Сохраняем код, при сохранении будет открыта папка User. Переходим на папку выше, создаем папку PawnCompiler, в неё сохраняем файл с таким же названием.

Осталась одна маленькая деталь, привязать компиляцию к комбинации клавиш.

Preferences → Key Bindings – User. И между квадратных скобок добавляем:

{ "keys": ["ctrl+shift+c"], "command": "source_pawn" }

Ну вот и всё.

P.S. Думаю будет ещё пара статей, о написании плагинов для Sublime Text. Пока писал этот пост, пришлось разобраться и с Sublime. А так же напишем простенький плагин для CS:GO.