Как сделать плагин для cs go

Обновлено: 08.07.2024

Хотите установить скины и ножи на свой сервер КС ГО? Не спешите, с !ws и !knife есть пару подвохов для новичка. Valve банит токен сервера за ножи, скины, перчатки, ранги, музыку и коины. Вообщем за все, то на чем они зарабатывают деньги. Сообщество не смирилось с данным запретом и придумало обходной путь - Автосмена токенов. Токены по прежнему будут банить, но теперь у вас в распоряжении их огромное количество.

За смену токена придется не много заплатит, а конкретно 3 рубля = 1 токен. Компания банит токены по определенным дням - понедельник, среда и пятница, но бывают и исключения. В неделю нам понадобится 3 токена, соответственно 9 рублей в неделю или, примерно, 42 рубля в месяц.

В этой статье разберем все виды плагинов на скины, ножи и подробно расскажу как их установить на сервер CS:GO.

Какой плагин на скины и ножи (!ws, !knife) выбрать для сервера?

Существует несколько плагинов на скины для оружия, но разберем основные:

  • Weapon & Knives
  • Weapon Paints Private
  • Weapon Skin

Weapon & Knives

На данный момент этот плагин лучший вариант для новичка. Он полностью бесплатен и добавляет сразу скины на оружие и ножи. Скачайте плагин с github. Для установки плагина, перекиньте все файлы на сервер, будьте внимательны и перекидываете в нужное место:

плагины на сервер кс го на скины

Для этого плагина необходимо расширение PTaH, которое вы можете скачать от сюда. Команды плагина: !ws и !knife.

После того как все перекинули в /csgo/addons/sourcemod/configs/core.cfg нужно поменять или добавить переменные:

Меняем "FollowCSGOServerGuidelines" "yes" на "no" и "BlockBadPlugins" "yes" на "no", иначе у вас просто не будут работать скины на оружие. Вот уже настроенный файл core.cfg.

Если у вас сервер на MyArena и после данной манипуляции ничего не изменилось, то нужно полностью переустановить соурсмод, так как там стоит лок.

Подробнее о установке смотрите видео:

Weapon Paints Private

Данный плагин бесплатный, полностью переведенную версию на русский вы можете скачать от сюда, если ссылка не работает скачайте с github. Установка данного плагина проста, нужно перекинуть содержимое на сервер в /csgo/addons/sourcemod. Внимательно посмотрите куда вы перекидываете файлы, папка должна выглядеть примерно так:

плагин на скины в кс го

После чего нужно в папке configs найти databases.cfg и вписать следующее:

Вот тут посмотрите как должна выглядеть база данных. Также чтобы плагин заработал, добавьте в server.cfg следующее:

sm_weaponpaints_c4 "1" // 1 = включить возможность применять скины к бомбе. 0 = отключить.

sm_weaponpaints_roundtimer "20" // Время в секундах, с момента начала раунда, в течении которого игроки смогут поменять скин. Значение -1 означает, что игроки всегда смогут менять скин.

sm_weaponpaints_rmenu "1" // 1 = меню выбора скина остается открытым после выбора скина, 0 = меню выбора скина будет закрыто после выбора скина.

sm_weaponpaints_onlyadmin "0" // 1 = плагином смогут пользоваться только админы, 0 = все игроки.

sm_weaponpaints_zombiesv "0" // 1 = предотвращать краши на зомби серверах и на серверах 1 на 1. 0 = не предотвращать (отключено).Команды для открытия меню: !wskins, !ws и !paints.

После того как все перекинули в /csgo/addons/sourcemod/configs/core.cfg нужно поменять или добавить переменные:

Меняем "FollowCSGOServerGuidelines" "yes" на "no" и "BlockBadPlugins" "yes" на "no", иначе у вас просто не будут работать скины на оружие. Вот уже настроенный файл core.cfg.

Если у вас сервер на MyArena и после данной манипуляции ничего не изменилось, то нужно полностью переустановить соурсмод, так как там стоит лок.

Подробнее о установке смотрите видео:

Weapon Skin

Последний в этом списке плагин на скины. Данный плагин является платным и стоит 200 рублей по привязке по IP сервера. (200 р. плагин на один сервер). Приобрести его можете на сайте zizt. Для этого плагина необходимо расширение PTaH, которое вы можете скачать от сюда. Плагин довольно сложный для новичков, он имеет много настроек, поэтому новичку лучше подойдет Weapon & Knives, он более понятен.

Установка плагина элементарна, после покупки вам дадут ссылку на скачивание плагина, его перекиньте в эту папку /csgo/addons/sourcemod/plugins. Также нужно будет перекинуть конфигурации в папку /csgo/addons/sourcemod/configs. Вот настроенный конфиг weapon_skin.

После того как все перекинули заходим в /csgo/addons/sourcemod/configs/core.cfg нужно поменять или добавить переменные:

Меняем "FollowCSGOServerGuidelines" "yes" на "no" и "BlockBadPlugins" "yes" на "no", иначе у вас просто не будут работать скины на оружие. Вот уже настроенный файл core.cfg.

Если у вас сервер на MyArena и после данной манипуляции ничего не изменилось, то нужно полностью переустановить соурсмод, так как там стоит лок.

Какой плагин на ножи (!knife) выбрать для сервера?

Если вы решили установить Weapon Paints Private и Weapon Skin, то вам также нужно поставить плагин на ножи. Вот несколько основных:

Команды для плагинов: !knife.

Knife choice

Плагин можете скачать на zizt или от сюда. Для работы плагина требуется PTaH, которое вы можете скачать от сюда. Перекиньте необходимые файлы на сервер и установите расширение.

Видео инструкция по установке плагина:

Knife Upgrade


Что такое Sourcemod. Pawn.
SourceMod является Metamod плагином для игр на движке Source. Такие как Half-Life 2; Counter-Strike Source/GO; Portal 1,2; Left 4 Dead 2, Dota2.
При помощи плагинов для Sourcemod, вы можете создать различные сценарии для Source Engine и модов, написанных с помощью Source SDK. Это означает что знания полученные в этой статье вы сможете так же применить и для всех игр на движке Source.
Язык программирования с которым мы будем работать называется SourcePawn.
SourcePawn это вариация языка Pawn используемая в SourceMod.

  • compile.exe - обычная компиляция с логом (лучше использовать данный компилятор, т.к в нем мы можем отследить ошибки и замечания в отличии от второго варианта);
  • spcomp.exe - быстрая компиляция;

Основные команды SourceMod (для отладки плагина).
(вводятся в консоль сервера)


sm plugins load имя - плагин с именем имя;
sm plugins unload имя - отключает плагин с именем имя;
sm plugins reload имя - перезапускает плагин с именем имя;
sm plugins list - список всех активных плагинов;


И так наши первые шаги как программистов!
1 шаг. Создадим файл с именем first.sp (можете задать любое имя! главное что бы файл имел расширение .sp!).

2 шаг. Нажмем на "Кодировки -> Преобразовать в UTF-8 (без BOM)", данное действие необходимо для поддержки русского языка в вашем плагине! (рис. 1).

3 шаг. Сейчас ознакомимся с основами SourcePawn'a!
И так разберем следующий код:


Прикрепленные рисунки

b0d3004718441e142ebf4c18ad08a713.jpg

Источники

Заключение:
Я советую ознакомиться с источниками и информацией в них (хотя бы в краце), для второго урока!
Я считаю данной статьи достаточно для первого урока!
Следующий урок в течении 2х дней.

Как создать плагин.

Описание: Дополнительная информация по создание своего плагина для Counter Strike 1.6 с помощью программы AmxStudio.

Статью делал не я поэтому претензии не ко мне :D

Итак, извлекаем содержимое архива AMX Studio в папку scripting нашего AMXX-мода и запускаем
AMXX-Studio.

Теперь необходимо настроить рабочую среду для себя как можно удобнее. Неп Мат им вариантом было бы сделать так, чтобы готовые плагины сразу помещались в папку plugins. Для этого жмём Tools, затем Settings. В появившемся окне видим слева структурное дерево, в котором выбираем ветвь Compiller settings. В поле Compiller указываем путь к файлу amxxpc.exe (наш компилятор), который лежит в папке scripting. В Default Output Directory вписываем путь к папке plugins нашего AMXX мода. Настройка завершена, жмём Ок.

Теперь мы можем приступить к написанию скриптов - будущих плагинов. Язык, используемый для написания AMX-скриптов, называется Pawn, именно с ним мы и будем работать. Жмём File , New , Plugin. На экране появляется окно для редактирования с текстом.

Сразу следует пояснить что всё это значит. Начнём с первой строки - она ограничена символами /* */ - это символические скобки, в которые можно записывать комментарии. Комментарии сохраняются только в скрипте, а при компилировании они просто игнорируются. Следовательно от комментариев только польза.
Далее мы видим строки

Сообщают информацию об имени будущего плагина, его версии и авторе в виде констант. Эти константы в дальнейшем могут использоваться, и далее мы это видим

Итак, мы подошли к первой функции нашего скрипта plugin_init(). Вы, возможно, уже заметили, что все модули, написанные на Pawn, не содержат классов. В тонкости языка мы углу Мат ся не будем, но лишь отметим, что данный язык используется для написания высокопроизводительных и быстродействующих модулей с монолитной структурой. Эти модули затем компиллируются в бинарные файлы. Тем самым обеспечиваются все необходимые условия для максимального быстродействия.

Вернёмся к нашей функции plugin_init(). Эту функцию исполняет сервер при старте, либо переходе на следующую карту. В теле функции обязательно должна присутствовать строка

register_plugin(PLUGIN, VERSION, AUTHOR)
которая регистрирует плагин в памяти функцией уже другого модуля register_plugin()

О чём говорит строка // Add your code here. я думаю догадаться можно легко :).

Итак, я пояснил некоторые особенности языка скриптинга амх-мода, теперь можно создать один простой плагин в качестве примера. Этот плагин будет делать игрока бессмертным, в какой-то степени, а именно будет давать 999999 HP к здоровью.

Начнём. Жмём File, New, Plugin.
Сразу после закрывшейся фигурной скобки функции plugin_init() создаём новую функцию

id, level, cid - аргументы функции (параметры), причём эти параметры уже имеет каждый клиент, поэтому их инициализация в теле функции не трабуется (инициализация - присвоение начального значения переменной). Эти аргументы уже имеют свои значения, например человек, подключившийся к серверу получает на нём номер id, обычно соответствующий номеру занемаемого им слота (например level - уровень привелегий (например level = ADMIN - уровень привилегий администратора), параметр cid нам не нужен, поэтому оставим его без внимания. Эти параметры понадобятся нам для того, чтобы ограничить доступ к функции бессмертия, предоставив его лишь администраторам сервера.
Используем эти параметры в следующей конструкции:

Эта запись читается так: Если игрок не имеет уровень привелегий ADMIN, то прерывание работы плагина и возврат в его начало.
Возврат в начало организуется строкой

При этом весь код, расположенный ниже, не выполняется.
Применим эту конструкцию к нашей функции:

после строки
return PLUGIN_HANDLED
пишем код, который будет выполняться в случае, если игрок - админ. А именно нам необходимо реализовать присвоение 999999 HP. Это делается следующим образом:

В результате мы будем иметь готовую функцию, которая присваивает очень много здоровья игроку

Теперь нужно пояснить всё написанное.
Начнём со строки new health[32] - так задаётся строка в С (как массив из символов, где каждый символ - это его числовой код), имеющая длину 32 символа. Стоит отметить, что символы здесь нумеруются от 0 до 31, а не от 1 до 32. Следующая строка задаётся также.

Далее функцией read_argv(pos,output[],len) производим чтение данных при вводе с консоли, то есть наша функция будет выполняться консольной командой dodme (user) (health), которую мы позже зарегистрируем, а сейчас нужно понять лишь то, что в строке read_argv(1, name, 31) функция read_argv будет читать имя игрока (user) , распологающееся на первой позиции, которому мы хотим дать много здоровья и заносить его в строку name.
Дале читаем с консоли количество сообщаемого здоровья той же функцией, но уже в строку health и со второй позиции

player - это переменная, число неопределённого типа, компилятор сам подбирает для него тип, мы лишь задаём значение переменной. А значением для переменной player будет возвращаемое значение функции cmd_target(id, name, 5).
Эта функция меет очень важное значение для управления командой. Он позволяет по отрезку из имени игрока определить его id. Например, если ник игрока -=~PRO100Otec ~=-, то достаточно будет написать в консоле godme otec 999999 для того, чтобы этому игроку присвоить много здоровья.
Id игрока, определённый данным методом помещается в переменную player.
Далее строка new hps = str_to_num(health) - тут задаётся новая переменная hps, которая будет содержать количество здоровья в виде числа (так как при чтении с консоли образуется строка, то её необходимо перевести в число для использования в функции set_user_health(player, health). Перевод строки в число производится функцией str_to_num(str), возвращающим значение строки в виде числа.
Теперь нам остаётся лишь сделать бессертным нашего избранника функцией

В конце добавляем return PLUGIN_HANDLED, чтобы прекратилось выполнение плагина. В нашем случае он и без этой строки будет исправно работать, но во многих случаях следует использовать данную конструкцию.

Теперь необходимо зарегистрировать консольную команду godme, которой мы будем добавлять здоровье. Для этого в конец тела метода plugin_init() вписываем строку

название команды задаётся в кавычках на первой позиции после открытия скобок (оно не обязательно должно совпадать с именем функции, просто в качестве простого примера я решил сделать именно так), далее идёт имя функции в ковычках, а затем уровень привелегий level, по которому и идёт проверка в теле нашей функции. В нашем случае level = ADMIN_SLAY, тоесть каждый админ, имеющий в своих правах директиву 'e' (имеется ввиду директива прав в файле users.ini например "botinok" "12345" "bcdefghijklmnopqrstuvwxy" "a"), отвещающую за slap и slay команды, может иметь право делать бессмертным любого другого игрока.

Осталось лишь подключить используемые модули. Помимо стандартных нужно подключить ещё 2 дополнительных модуля: fun и AMXXmisc, так как метод set_user_health() принадлежит модулю fun, а cmd_access() - AMXXmisc. Для этого запишем в самом верху скрипта

Всё, скрипт готов, если вы всё делали правильно, то он примет следующий вид:

Андрей Ковязин

Уроки по созданию плагинов для cs1.6.

Для базы (первых пары десятков уроков) будет достаточно 1,2, 3,4 и 5. Для нормального понимания нужно посмотреть все (особенно функции).

Учить вас никто не заставляет, важно понимать как это все строится.

Андрей Ковязин

Урок 1.
Тема: Основа плагиностроения.
У плагинов есть небольшая основа, без которой плагин работать не будет.
Базовая структура плагина делится на 3 части:
1) Инклюды (библиотеки)
2) Переменные
3) Инициализация плагина.
В amxxstudio генерируется стандартный шаблон плагина, в котором содержится базовый инклюд и функция инициализации плагина plugin_init.

2) Область объявления. Несмотря на то, что переменные, массивы и т.д, по факту, вы можете объявлять в любом месте программы, но т.к у нас код последовательный, то если вы объявите переменные где-то в конце, то функции, находящиеся выше этой переменной в коде не смогут её использовать, поэтому принято объявлять переменные сразу после инклюдов.

3) Инициализация плагина:
В любом плагине есть функция plugin_init, она вызывается (срабатывает), каждый раз, когда происходит загрузка плагина (т.е логично предположить, что это происходит 1 раз, при загрузке карты). В нем происходит регистрация событий, инициализация переменных (установка им первоначальных значений), хотя это так-же можно сделать и в других местах, но логичнее и правильнее делать здесь., т.е все базовые приготовления.

Давайте теперь посмотрим на шаблон, который дает нам amxxstudio.

// Add your code here. //Тут нам предлагают писать уже наш код, но об этом в следующих уроках.
>

Андрей Ковязин

public plugin_init() register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /hello', "hello_world")
>

public hello_world(id)
client_print(0, print_chat, "Hello world")
>

Здесь мы не добавили новых инклюдов, заменили имя плагина и добавили свою функцию и зарегистрировали команду.

Далее мы с вами создали функцию hello_world(id).
Все функции могут принимать id в качестве аргумента.
id - это уникальный идентификатор игрока на сервере. По нему мы можем выдать, например здоровье определенному игроку. Когда игрок напишет команду /hello функция получит id именно этого игрока.

Для этого нужно немножко доработать нашу функции hello_world.

public hello_world(id)
new name[33];
get_user_name(id, name, 32)

client_print(0, print_chat, "Hello world [Написал %s]", name);
>

new name[33] - инициализация массива размерностью 33 символа (отмечу, что нумерация в массивах с 0).
get_user_name получает имя игрока по Id и записывает его массив.
get_user_name( , , ) //32 вместо 33 т.к резервируем 1 символ

Андрей Ковязин

public plugin_init() register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /chatname", "chat_name")
>
public chat_name(id)
new name[32]
get_user_name(id, name, 31)

ColorChat(id, RED, "Я %s ГЕРОЙ", name)
>
Проверьте.Скомпилировался или нет.У меня скомпилировался.
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

~~~Всем спасибо~~~Уроки не откуда не сворованы писал лично!~~~С вами был SwimUp~~~

Андрей Ковязин

public plugin_init() register_plugin(PLUGIN, VERSION, AUTHOR)
hud = CreateHudSyncObj()
register_clcmd("say /hudmas", "hud_message_mas")
register_clcmd("say /hud", "hud_message")
>
public hud_message_mas(id)
new name[32]
get_user_name(id,name,31)

Установка SM плагинов на сервер CS:GO

Многие начинающие создатели своих серверов CS:GO задаются вопросом как установить плагин на сервер CS:GO , в этой статьи подробно будет рассказано какие файлы и для чего они служат и в конце статьи вы уже будете знать как правильно и без особых усилий установить любой плагин для сервера CS:GO.

Если вы ещё не установили SourceMod тогда для начала прочитайте статью Установка SourceMod на сервер csgo , если все установлено , пропускаем и идем дальше.

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

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

В это папке находятся скомпилированные (готовые) плагины с расширением .smx

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

Здесь лежат исходники плагинов с расширением.sp которые предназначены для редактирования и последующей компиляции в .smx

Некоторые плагины используют так называемые инклюды в которых имеется дополнительные функции без которых плагин не будет работать , для правильной компиляции такого плагина в этой папке должен находится соответсвенный .inc файл.

В данной папке хранятся файлы локализации с расширением .txt (языковые файлы) иногда в некоторых плагинах их не используют и весь текст вписывают на прямую в исходник , по этому если вы не найдете данной папке/файла в плагине , не беспокойтесь , скорее всего весь перевод в исходнике.

Ну а теперь приступим к практике , попробуем установить плагин например Levels Ranks.
Скачиваем его и открываем архив , вы сразу же заметите знакомые названия папок и файлов из выше перечисленного описания.

Конечно проще было бы взять и все содержимое архива закинуть в папку /csgo/ с заменой , но вы должны научится компилировать плагин вдруг вам попадется плагин без smx , а только с .sp (исходником) вот тут то вам и потребуются знания компиляции , не беспокойтесь , это достаточно просто , не пугайтесь громких слов , сейчас все объясню.

В корне папке scripting вашего сервера , есть файл compile.exe , это и есть тот самый компилятор.

Берем из папки /scripting/ нашего плагина файл LevelsRanks.sp и кидаем его в соответственную папку на сервере , после этот файл перетаскиваем на compile.exe


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


Compilation aborted.
1 Error.

Это значит что наш плагин не скомпилировался , все потому что , в папке scripting нашего плагина есть дополнительный файл в папке /scripting/include/ , о котором я писал выше , берем из папки include файл knife_colors.inc и кидаем его в соответственную папку на сервере и пробуем скомпилировать наш плагин повторно.


Compilation Time: 0,89 sec

Теперь в той же папке открываем /scripting/compiled и видим там наш готовый плагин LevelsRanks.smx , копируем его и вставляем в папку /plugins/ , раскидываем остальные файлы плагина если вы не сделали это до компиляции и запускаем наш сервер CS:GO. В консоле сервера вписываем sm plugins list в появившимся списке ищем наш плагин.


Если увидели в списке плагин , значит все хорошо , плагин установлен и работает.

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

Читайте также: