Воскресенье, 24.11.2024 01:23

Меню
Главная страница Форум Доска объявлений Статьи Баннерообмен Правила сайта Чат

Russian blood.pro

Состав клана Устав клана Набор в клан Забить CW Наши Cw Уход из клана

Тактики

De_dust2 De_inferno De_nuke De_train

Продвижение сайтов

TOP сайтов Регистрация доменов Реклама на сайте Создай себе баннер Автораскрутка сайта Бесплатная раскрутка Привлечения поситителей Бесплатная раскрутка №2 Добавить сайт в поисковики SEO,Оптимизация,Раскрутка

Онлайн кинотеатр

Онлайн фильмы Онлайн сериалы Онлайн трэйлеры Онлайн клипы

Система Ucoz

Скрипты Шаблоны Шапки

PhotoShop

Кисти Стили Шрифты Готовые Psd работы

Изготовление

Заказ баннера Заказ шапки Заказ юзербара Заказ аватара Заказ картинок

Counter Strike 1.6

Об игре Cкачать Counter-Strike 1.6 Модели Игроков CS 1.6 Модели Оружия CS 1.6 Другие модели CS 1.6 Программы CS 1.6 Темы меню CS 1.6 Логотипы CS 1.6 Спрайты CS 1.6 Карты CS 1.6 Видео CS 1.6 Патчи CS 1.6 Боты CS 1.6 Моды CS 1.6 Конфиги

Сервер CS 1.6

Готовые сервера Программы Античиты Плагины Карты Боты Моды

Помощь по CS 1.6

Как создать сервер CS Настройка сервера Делаем себя админом AMX команды для админа Запуск сервера через консоль HTTP Fast Download На Ucoz сайтах Скачиваються Wad файлы с сервера Делаем Сервер видимым в find server Как сд.серв на 2 протокола ? Как быть с динамическим IP ? Делаем плагин для AMXMods Установка плагинов Делаем демки HLTV Описание оружия CS

Разное

Делаем цветное лого Делаем фон консоли Делаем фон меню CS
Наша кнопка

Наши баннеры


Категории
Cs Статьи [18]
Сайты персонала
Место свободно
Место свободно
Место свободно
Место свободно
Опрос
За кого играешь?
Всего ответов: 49
Главная » Статьи » Cs Статьи

Делаем плагин для AMXMods
Итак, извлекаем содержимое архива 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, добавив туда строку makeserv_plugin_me.amxx

Скачать с LEtitbit makeserv_plugin_me.amxx

Категория: Cs Статьи | Добавил: [hack] (23.07.2010)
Просмотров: 644 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Чат
Сервер
counter-strike movies stream, кс мувики, counter-strike maps, climb, long jump, bunny hop
Сервер
counter-strike movies stream, кс мувики, counter-strike maps, climb, long jump, bunny hop
Сервер
counter-strike movies stream, кс мувики, counter-strike maps, climb, long jump, bunny hop
Друзья


Все для Counter Strike

Counter-Strike 1.6

Diz-Cs

Clan Cs 1.6

Все для CSS сайтов,PhotoShop и системы uCoz

Все для CS сайтов и системы uCoz

Cs portal

Ваша реклама

Ваша реклама

Статистика
Онлайн:

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

Зарег. на сайте:
Всего: 116
Новых за месяц: 0
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Из них:
Администраторов: 1
Модераторов: 0
Дизайнеров:
Файловиков: 0
Проверенных: 2
Обычных: 113
Забаненых: 0
Из них:
Парней: 110
Девушек: 5
Счетчики:
Рейтинг игровых сайтов
Сегодня нас посетили:


Сайт клана Russian blood.pro - Игровой портал, Классные конфиги для кс | конфиги кс | шаблоны ucoz для cs 1.6 | © 2009-2010 | | Sitemap | Sitemap-Forum
Копирование материалов на другие сайты запрещено!

Шаблоны cs 1.6 uCoz, скачать cfg для ножа, читы для css, скачать cfg на нож, Чит для кс Russian blood.pr