Последние ответы на форуме

Популярные темы на форуме

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Создание и настройка серверов Cs 1.6 » Плагины » Создание своих плагинов для amxx №2
Создание своих плагинов для amxx №2
GLAKДата: Пятница, 21.01.2011, 14:06 | Сообщение # 1
Главный Администратор
Группа: Главные Администраторы
Сообщений: 100013
Репутация: 32767
Статус: Offline
Всегда сохраняйте написанное. Кто знает когда отключат электричество . Попробуйте откомпилировать данный плагин. Если есть ошибки, то их проще найти сейчас, чем потом ковырять груду кода. �*то значительно упрощает поиск ошибок.
Сохраните плагин и запустите sc. bat. sc. bat – это командный файл, который осуществляет поиск всех sma-файлов в директории source. Компилирует и складывает в директории compiled с расширением . amx. Если вы хотите откомпилировать только свой плагин, то нужно запустить sc. exe с параметром равный названию файла в котором сохранён плагин ( sc. exe helloworld. sma). Файл с расширением .amx будет сохранен в текущем каталоге.

Если что-то не так при компиляции проверьте правильность написания плагина.

Нам осталось написать последнюю функцию – вывод сообщения на экран. Мы зарегистрировали команду которая будет выполнятся в консоли, сообщение выводимое на экран тоже зарегистрировали. Теперь осталось создать функцию которая будет всё это делать:public myfunction(id,level,cid) {
if (!cmd_access(id,level,cid,1)) {
return PLUGIN_HANDLED
}
}

Я не буду расписывать как работает функция cmd_ access(). Скажу только, что она проверяет может ли клиент использовать данную команду.

Хочу прокомментировать следующее – id. Id – это уникальный номер каждого присутствующего на сервере. Оно будет ему присвоено при входе и отобрано при выходе. �*то уникальный номер каждого играющего, одинаковых быть не может. Если сервер рассчитан на 32 игрока, то id будет от 1 до 32. Движок Half- Life более 32 игроков не держит. Если сервер рассчитан на 16, то от 1 до 16.

Id используется по разному. В cmd_ access() через id проверяется уровень доступа этого текучего пользователя, и никого другого. Надеюсь это понятно.

Следующая линия кода: client_print(0,print_center,"Hello world!!!")

�*то та строчка кода, которая отвечает за печатание сообщения у клиента. с lient_ print является названием функции, которая берёт три параметра (может требоваться больше, но об этом в других уроках). Первый параметр (0) отвечает за то кому будет выведена данная команда. Если поставить id номер игрока, то сообщение будет выведено ему и вам. В данном случае выведено будет для всех присутствующих на сервере (живым или мертвым). Т.е. когда вам надо сделать со всеми что-то или сообщить всем что-то надо использовать 0. Второй параметр указывает где следует выводить сообщение. Можно поместить сообщение в районе чата - print_ chat или print_ notify – отображает только в консоле. И третий параметр – само сообщение. То, что в пределах кавычек то и есть сообщение, которое будет печататься на экран. Не теряйте кавычек.

Мы почти написали наш первый плагин. Осталось только дописать следующую строчку в функцию myfunction():return PLUGIN_HANDLED

�*то важная строчка. Её терять нельзя. Помните, это последнее что вы должны добавить во всех ваших функциях, которые вызываются командами, напечатанные в консоле сервера или в консоле клиента. Если вы этого не сделаете, то AMX не будет знать, что команда выполнена, выведет сообщение на экран, а в консоле появится следующая ошибка: Unknown command: amx_helloworld

Поэтому всегда заканчивайте функцию return PLUGIN_HANDLED.

Полностью наш плагин выглядит так:/*
Hello world, v0.1
By JGHG
*/

#include
#include

public myfunction(id,level,cid) {
if (!cmd_access(id,level,cid,1)) {
return PLUGIN_HANDLED
}

client_print(0,print_center,"Hello world!!!")

return PLUGIN_HANDLED
}

public plugin_init() {
register_plugin("Hello world","0.1","jghg")
register_clcmd("amx_helloworld","myfunction",ADMIN _VOTE," : prints Hello world!!! to everyone")

}

Всё, плагин готов. Откомпилируйте его и убедитесь, что нет ошибок во время компиляции. Если при компиляции вы получаете сообщение warning 217: loose indentation, перейдите на указанную строчку и проследите что бы углубление (" tab" – помните…) было одинаково везде в вашем плагине.

Тперь можете поместить файл helloworld. amx в папку amx\ plugins и прописать плагин в amx\ config\ plugins. ini. Добавьте строчку helloworld. amx в самый конец списка плагинов. Теперь запускайте сервер. Если сервер запущен можно в консоле сервера использовать команду restart. Вместе с рестартом карты произойдет пересчитывание плагинов и новый добавленный плагин будет использован AMX.

Теперь заходите в игру и пропишите amx_ helloworld и убедитесь что всё отображается как надо. Удостоверьтесь, что при вводе команды amx_ help описание соответствует тому, что использовали мы. Если плагин не работает, в консоле сервера введите amx plugins и убедитесь, что плагин загружен. Возможно вы забыли прописать себя админом.


Заходи и посматри на него
http://cscom.clan.su/forum/10-29-1#42
 
Форум » Создание и настройка серверов Cs 1.6 » Плагины » Создание своих плагинов для amxx №2
Страница 1 из 11
Поиск: