Pawn з нуля? реально написати власний плагін для сервера Тиждень 4
Про матеріал

Тиждень 4: Функції та багатовимірні масиви
- Функції
- Що таке функції та навіщо вони потрібні
- Як оголошувати та викликати функції
- Як передавати аргументи у функції
- Що таке значення, яке повертає функція
Приклад роботи з функціями:
main()
{
new x = 5;
new y = 10;
new z = add(x, y); // Вызов функции add
print(z);
}
add(num1, num2) // Визначення функції add
{
new result = num1 + num2;
return result; // Возвращаем сумму num1 и num2
}
Пояснення:
add(num1, num2)- оголошення функції add, яка приймає два аргументиnew result = num1 + num2- обчислення суми num1 і num2 та збереження у змінну resultreturn result- повернення результату виконання функції
- Багатовимірні масиви
- Що таке багатовимірні масиви та навіщо вони потрібні
- Як оголошувати та використовувати багатовимірні масиви
Приклад роботи з багатовимірними масивами:
main()
{
new matrix[3][3]; // Объявляем двумерный массив размером 3x3
for(new i = 0; i < 3; i++)
{
for(new j = 0; j < 3; j++)
{
matrix[i][j] = i + j; // Присваиваем каждому элементу массива значение i+j
}
}
for(new i = 0; i < 3; i++)
{
for(new j = 0; j < 3; j++)
{
print(matrix[i][j]); // Выводим каждый элемент массива на экран
}
}
}
Пояснення:
new matrix[3][3]- оголошення двовимірного масиву розміром 3x3matrix[i][j] = i + j- присвоєння кожному елементу масиву значення i+jprint(matrix[i][j])- виведення кожного елемента масиву на екран
Це лише приклади того, що ви можете вивчити протягом тижня, і ви можете докладніше вивчати ці концепції та застосовувати їх у складніших програмах. Удачі!
Ну і найважливіше перший плагін для Counter Strike
#include < amxmodx >
#include < amxmisc >
#include < hamsandwich >
public plugin_init()
{
register_plugin("Simple Plugin", "1.0", "Your Name");
register_clcmd("hello", "Say hello to the player", "Syntax: hello", "1", "z");
register_event("Round_Start", "OnRoundStart", "a", "1=0");
}
public OnRoundStart()
{
client_print(0, print_chat, "Round started!");
}
public plugin_precache()
{
precache_model("models/player/terror/terror.mdl");
precache_sound("weapons/ak47-1.wav");
precache_generic("sprites/smoke.spr");
}
public client_cmd(id, cmd[])
{
if(!strcmp(cmd, "hello", true))
{
client_print(id, print_chat, "Hello, player!");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
Цей приклад плагіна реєструє кілька функцій, які можна використовувати в Counter-Strike:
plugin_init()- Функція ініціалізації плагіна, у ній можна зареєструвати команди та події.register_plugin()- Функція для реєстрації плагіна, приймає назву, версію та автора плагіна.register_clcmd()- Функція для реєстрації клієнтських команд, які гравці можуть вводити в чаті. Приймає назву команди, опис команди та інші параметри.register_event()- Функція для реєстрації ігрових подій, наприклад початку раунду. Приймає назву події, функцію обробки події та інші параметри.OnRoundStart()- Функція, яка викликається на початку раунду. У цьому випадку вона просто виводить повідомлення в чат.plugin_precache()- Функція для попереднього завантаження моделей, звуків та інших ресурсів на сервері.precache_model(),precache_sound(),precache_generic()- Функції для попереднього завантаження моделей, звуків та інших ресурсів на сервері.client_cmd()- Функція, яка викликається, коли гравець вводить клієнтську команду в чаті. У цьому випадку вона перевіряє, чи була введена команда "hello", і виводить повідомлення в чат.
Приклад плагіна досить простий і демонструє базові можливості Pawn для роботи із сервером Counter-Strike. Звісно, залежно від конкретного завдання плагін може бути складнішим і використовувати інші функції та бібліотеки.






Коментарі (3)