Воскресенье, 24.11.2024, 04:09:21


Рекомендуем!
Категории
Counter-Strike 1.6
Категории раздела
Counter-Strike 1.6 [32]
Counter-Strike Source [2]
Тактики [15]
Новости [4]
Про читы [4]
Учимся играть в CS [68]
Голосование
Какое оружие вы предпочитаете ?
Всего ответов: 19924
Популярные файлы
CounterStrike v1.6: Warcraft 3 Frozen Throne MOD (2006) RUS
Читы для CS 1.6 Cheats Pack 6
Читы для CS 1.6 Cheats Pack 5
Читы для CS 1.6 Cheats Pack 4
Читы для CS 1.6 Cheats Pack 1
Читы для CS 1.6 Cheats Pack 2
Скачать бесплатно Скачать чит 4K4 v2 hook для CS-1.6
Counter-Strike 1.6 Portable Version
Counter-Strike v.1.6 Professional Edition
Читы для CS 1.6 Cheats Pack 3
Counter Strike 1.6 v35 Full (NOSTEAM) (RUS) [Repack]
Counter Strike 1.6 v35 Full (NOSTEAM) (RUS) [Repack]
BioHaZarD!
Скачать Бесплатно Counter-Strike 1.6 No Steam
Прицел для авп
Спрайт Blue-Yellow Muzzleflashes
Прицел - копия реальной електронной оптики.
GunGame Server 2.00
zoom_mod
Counter-Strike Online Beta (2008)
Скачать чит I-LoVe-iT 2.6 для CS-1.6
Прицел для AWP
Counter-Strike v.1.6 Professional Edition
Пак Ботов!
Пак De_maps
Разные Тэги
CS-1.6 чит для CS-1.6 чит для Myac 1.5.9 WallHack v6.5 скачать wallhack для cs 1.6 все для cs модели оружия counter-strike модели игроков для counter-strike Супер читы для steam cs бесплатные сервера cs 1.6 Скачать все для counter-strike Скачать все для cs1.6
Партнеры
Реклама:

Главная » Статьи » Counter-Strike 1.6

Делаем свой плагин.
null
Итак, извлекаем содержимое архива 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 generated by AMXXX-Studio */

#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Admin"


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

// Add your code here...
}

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

#include 
#include 

Директивой #include включается определённый модуль для работы с его объявлениями, как в С. Все эти модули хранятся в папке scripting/include. При использовании тех или иных модулей, нужно обязательно учесть, что получившийся в результате плагин будет требовать от пользователя включения этих модулей в файле modules.ini, который лежит в папке configs. Для включения модуля, достаточно раскомментировать соответствующую ему строку.
Следующие три строчки

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Admin"

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

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

// Add your code here...
}

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

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

register_plugin(PLUGIN, VERSION, AUTHOR)

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

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

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

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

godme(id,level,cid){

}

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

if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

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

return PLUGIN_HANDLED

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

public godme(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
}

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

new health[32] 
new name[32]
read_argv(1, name, 31)
read_argv(2,health, 31) 
new player = cmd_target(id, name, 5)
new hps = str_to_num(health)
set_user_health (player, hps) 
return PLUGIN_HANDLED 

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

public godme(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new health[32] 
new name[32]
read_argv(1, name, 31)
read_argv(2,health, 31) 
new player = cmd_target(id, name, 5)
new hps = str_to_num(health)
set_user_health (player, hps) 
return PLUGIN_HANDLED 
}

Теперь нужно пояснить всё написанное.
Начнём со строки 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 и со второй позиции

read_argv(2,health, 31)

Далее видим

new player = cmd_target(id, name, 5)

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), возвращающим значение строки в виде числа.
Теперь нам остаётся лишь сделать бессертным нашего избранника функцией

set_user_health (player, hps) 

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

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

register_concmd("godme","godme",ADMIN_SLAY,"godme")

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

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

#include 
#include 
#include 

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

/* Plugin generated by AMXXX-Studio */

#include 
#include 
#include 

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Admin"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("godme","godme",ADMIN_SLAY,"godme")
}

public godme(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new health[32] 
new name[32]
read_argv(1, name, 31)
read_argv(2,health, 31) 
new player = cmd_target(id, name, 5)
new hps = str_to_num(health)
set_user_health (player, hps) 
return PLUGIN_HANDLED 
}

Теперь жмём кнопку Compile, похожую на зелёный треугольник и наш скрипт превращается в откомпиллированный готовый плагин и отправляется в папку plugins.
Нам остаётся лишь зарегистрировать его в файле plugins.ini, добавив туда строку moi_plugin.amxx
Категория: Counter-Strike 1.6 | Добавил: [Skk] (08.04.2010)
Просмотров: 962 | Теги: свой, плагин., Делаем | Рейтинг: 0.0/0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Рекомендуем!


Поиск

Полный поиск по Форуму

Случайная каринка

Любая из картинок в модуле Фото:)

Добавить свой скрин
Последний файл
Готовый Zombie Plague 4.3 Сервер
(Загрузок:931)

Скачать - battle hardened m4-203
(Загрузок:400)

Прицел для AWP
(Загрузок:0)

Alfa Antiterror v2
(Загрузок:429)

SpeedHack
(Загрузок:1581)

Скачать чит для CS 1.6 - Wallhack чит v.4
(Загрузок:909)

Готовый publick сервер для cs1.6(виден в интернете) на 2 протокола
(Загрузок:1390)

Готовый Сервер Deathrun 2011
(Загрузок:1069)

GooD Knife cfg by CBERX
(Загрузок:150)

OpenGL Multihack
(Загрузок:1395)

Видео недели

Видео недели, смотреть!
Статистика
Онлайн:

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Зарег. на сайте:
Всего: 761
Новых за месяц: 0
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Из них:
Администраторов: 1
Модераторов: 0
Дизайнеров:
Файловиков: 0
Проверенных: 1
Обычных: 759
Забаненых: 0
Из них:
Парней: 723
Девушек: 36
Счетчики:
Информеры тИЦ и PR, html справочник Проверка тиц
Сегодня нас посетили:

Counter-Strike Тег

wallhack для cs 1.6 скачать wallhack для cs 1.6 читы для cs скачать читы для cs 1.6 скачать читы для кс cs 1.6 скачать бесплатно скачать wh для cs 1.6 скачать чит для cs 1.6 cs 1.6 читы читы для cs 1.6 wallhack opengl32.dll чит скачать читы для cs cs 1.6 читы скачать чит для cs 1.6 скачать бесплатно скачать wallhack скачать читы для cs 1.6 бесплатно wh для cs 1.6 скачать wallhack opengl32.dll speedhack для cs 1.6 openg32.dll wh+aim для Cs source супер wallhack разные читы wallhack source FFightX скачать FFX супер чит steam читы(new) читы для cs steam wallhack steam wh для cs 1.6 скачать opengl32.dll скачать cs 1.6 бесплатно speedhack для cs 1.6 скачать бесплатно самые лутшие читы скачивали бесплатно Читы чит Сборка читов 2010 Скачать чит Скрипт AWP-шников для CS-1.6 Скачать чит Xeon Limmid FX Коды к игре Call of Duty 5 Simple ESP v3.7 - AIM читы Читы для cs 1.6, скачать читы для cs 1.6 Чит для 11х11 Скачать чит Plan-B - Counter-Strike - test hook v0.1 - modify By -sky- Скачать чит BadBoy v5.0 - Counter-S Спидхак под 3.1.2-3.1.3 Сборка читов 2010 m0d_s0beit v4.0.0.3 Сборка популярных читов