@up:
<
> @top: Zacznijmy od indentacji kodu.
Spoiler
/* Plugin generated by AMXX -Studio */ #include #include #include #define PLUGIN "Standard Tools" #define VERSION "1.5" #define AUTHOR "Shio" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /zestaw", "ZestawBroni") //rejestrujemy komende /zestaw register_clcmd("say /zestawinfo", "ZestawMotd") //rejestrujemy komende motd /zestawinfo register_clcmd("say /zestaw", "losowanie", 0); //rejestracja komendy losowania register_logevent("pokaz_info",2,"1=Round_Start") } public ZestawMotd(id) { show_motd(id, "zestaw.txt", "zestaw.txt"); //pokazuje motd z info o zestawach return PLUGIN_HANDLED; } public pokaz_info(id) { client_print(0,print_chat,"[INFO]Aby Zobaczyc jak zestawy mozna wylosowac wpisz /zestawinfo") } public ZestawBroni(id) { //daje nam m4a1 deagle i he strip_user_weapons (id) give_item(id,"weapon_m4a1") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"weapon_deagle") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"weapon_knife") give_item(id, "weapon_hegrenade"); client_print(id, print_center, "[INFO]Otrzymales M4A1, Deagle oraz He Granade !") //info na sayu } public losowanie(id) //Uruchamia fuknkcje losowania { new rand rand = random_num(0,4); switch (rand) { case 0: { //zestaw pierwszy give_item(id, "weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegrenade"); } case 1: { //zestaw drugi give_item(id, "weapon_ak47"); //Case nr 1 = m4a1 give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 2: { //zestaw trzeci give_item(id, "weapon_awp"); //case nr 2 = awp give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 3: { //zestaw czwarty give_item(id, "weapon_m249"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegranade"); } case 4: { //zestaw piaty give_item(id, "weapon_scout"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "ammo_556nato") give_item(id, "weapon_hegranade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_smokegranade"); } }
Pierwsze 2 linijki usuwamy, nie są nam do niczego potrzebne.
Po nazwach #include należy podać nazwy bibliotek w nawiasie trójkątnym.
Obowiązkowo, podajemy
amxmodx , a następnie będziemy załączać biblioteki, z których będziemy korzystać.
Przy okazji dodam nowe linie, by kod był czytelniejszy.
Klamry otwierające ustawiasz raz w tej samej linii, co parametry funkcji, raz pod nią.
Zachowanie dość dziwne, więc ustalę styl, jaki wolę, tj. klamry w tej samej linii.
Spoiler
#include <amxmodx> #define PLUGIN "Standard Tools" #define VERSION "1.5" #define AUTHOR "Shio" public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /zestaw", "ZestawBroni") //rejestrujemy komende /zestaw register_clcmd("say /zestawinfo", "ZestawMotd") //rejestrujemy komende motd /zestawinfo register_clcmd("say /zestaw", "losowanie", 0); //rejestracja komendy losowania register_logevent("pokaz_info",2,"1=Round_Start") } public ZestawMotd(id){ show_motd(id, "zestaw.txt", "zestaw.txt"); //pokazuje motd z info o zestawach return PLUGIN_HANDLED; } public pokaz_info(id){ client_print(0,print_chat,"[INFO]Aby Zobaczyc jak zestawy mozna wylosowac wpisz /zestawinfo") } public ZestawBroni(id){ //daje nam m4a1 deagle i he strip_user_weapons (id) give_item(id,"weapon_m4a1") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"weapon_deagle") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"weapon_knife") give_item(id, "weapon_hegrenade"); client_print(id, print_center, "[INFO]Otrzymales M4A1, Deagle oraz He Granade !") //info na sayu } public losowanie(id){ //Uruchamia fuknkcje losowania new rand rand = random_num(0,4); switch (rand) { case 0: { //zestaw pierwszy give_item(id, "weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegrenade"); } case 1: { //zestaw drugi give_item(id, "weapon_ak47"); //Case nr 1 = m4a1 give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 2: { //zestaw trzeci give_item(id, "weapon_awp"); //case nr 2 = awp give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 3: { //zestaw czwarty give_item(id, "weapon_m249"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegranade"); } case 4: { //zestaw piaty give_item(id, "weapon_scout"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "ammo_556nato") give_item(id, "weapon_hegranade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_smokegranade"); } }
Teraz dodamy bibliotekę FUN, z której korzystasz, tj za pierwszą linią dodajemy linijkę
#include <fun>
Ewidentnie funkcja losowanie nie ma klamry zamykającej, o czym krzyczy debugger.
Dodajemy ją na samym końcu i… plugin się kompiluje.
Teraz przejdziemy do kodu samego w sobie. Dla przypomnienia, wersja z poprawionymi błędami stylistycznymi i składniowymi:
Spoiler
#include <amxmodx> #include <fun> #define PLUGIN "Standard Tools" #define VERSION "1.5" #define AUTHOR "Shio" public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /zestaw", "ZestawBroni") //rejestrujemy komende /zestaw register_clcmd("say /zestawinfo", "ZestawMotd") //rejestrujemy komende motd /zestawinfo register_clcmd("say /zestaw", "losowanie", 0); //rejestracja komendy losowania register_logevent("pokaz_info",2,"1=Round_Start") } public ZestawMotd(id){ show_motd(id, "zestaw.txt", "zestaw.txt"); //pokazuje motd z info o zestawach return PLUGIN_HANDLED; } public pokaz_info(id){ client_print(0,print_chat,"[INFO]Aby Zobaczyc jak zestawy mozna wylosowac wpisz /zestawinfo") } public ZestawBroni(id){ //daje nam m4a1 deagle i he strip_user_weapons (id) give_item(id,"weapon_m4a1") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"weapon_deagle") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"weapon_knife") give_item(id, "weapon_hegrenade"); client_print(id, print_center, "[INFO]Otrzymales M4A1, Deagle oraz He Granade !") //info na sayu } public losowanie(id){ //Uruchamia fuknkcje losowania new rand rand = random_num(0,4); switch (rand) { case 0: { //zestaw pierwszy give_item(id, "weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegrenade"); } case 1: { //zestaw drugi give_item(id, "weapon_ak47"); //Case nr 1 = m4a1 give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 2: { //zestaw trzeci give_item(id, "weapon_awp"); //case nr 2 = awp give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 3: { //zestaw czwarty give_item(id, "weapon_m249"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegranade"); } case 4: { //zestaw piaty give_item(id, "weapon_scout"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "ammo_556nato") give_item(id, "weapon_hegranade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_smokegranade"); } } }
ZestawMotd :: show_motd (18)
Musimy sprawdzić, czy gracz jest podłączony z serwerem (is_user_connected), aby wyświetlić mu MOTD.
Na czystą logikę, nie będziemy pokazywać MOTD osobie, która np. łączy się dopiero z serwerem, ale wpisała w konsoli tę komendę.
pokaz_info :: ARGS (24)
Event Round_Start jest eventem globalnym i nie przyjmuje argumentów, więc id z argumentu funkcji należy usunąć.
register_clcmd("say /zestaw", "ZestawBroni") //rejestrujemy komende /zestaw
register_clcmd("say /zestaw", "losowanie", 0); //rejestracja komendy losowania
(10,12) Nie możesz przypisać jednej, identycznej komendzie, dwóch różnych funkcji.
26-45
Spoiler
public ZestawBroni(id){ //daje nam m4a1 deagle i he strip_user_weapons (id) give_item(id,"weapon_m4a1") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"ammo_556nato") give_item(id,"weapon_deagle") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"ammo_50ae") give_item(id,"weapon_knife") give_item(id, "weapon_hegrenade"); client_print(id, print_center, "[INFO]Otrzymales M4A1, Deagle oraz He Granade !") //info na sayu }
a następnie linijkę 10. wywalamy z ww. powodu.
W linijce 11
register_clcmd("say /zestaw", "losowanie", 0);
usuwamy zero na końcu, jest ono irracjonalne.
Uzyskujemy kod postaci:
Spoiler
#include <amxmodx> #include <fun> #define PLUGIN "Standard Tools" #define VERSION "1.5" #define AUTHOR "Shio" public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /zestawinfo", "ZestawMotd") //rejestrujemy komende motd /zestawinfo register_clcmd("say /zestaw", "losowanie"); //rejestracja komendy losowania register_logevent("pokaz_info",2,"1=Round_Start") } public ZestawMotd(id){ if(is_user_connected(id)){ show_motd(id, "zestaw.txt", "zestaw.txt"); //pokazuje motd z info o zestawach } return PLUGIN_HANDLED; } public pokaz_info(){ client_print(0,print_chat,"[INFO]Aby Zobaczyc jak zestawy mozna wylosowac wpisz /zestawinfo") } public losowanie(id){ //Uruchamia fuknkcje losowania new rand rand = random_num(0,4); switch (rand) { case 0: { //zestaw pierwszy give_item(id, "weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegrenade"); } case 1: { //zestaw drugi give_item(id, "weapon_ak47"); //Case nr 1 = m4a1 give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 2: { //zestaw trzeci give_item(id, "weapon_awp"); //case nr 2 = awp give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 3: { //zestaw czwarty give_item(id, "weapon_m249"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegranade"); } case 4: { //zestaw piaty give_item(id, "weapon_scout"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "ammo_556nato") give_item(id, "weapon_hegranade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_smokegranade"); } } }
Została nam do sprawdzenia jedynie funkcja losowanie.
new rand rand = random_num(0,4);
Używanie random_num przy chęci pozyskania skończonej liczby początkowych liczb naturalnych jest jak polowanie na muchę armatą.
Użycie tej funkcji w tym wypadku nie dość, że wydłuża czas wykonania komendy, to jeszcze zużywa więcej pamięci. Wystarczy nam w zupełności
new rand=random(5);
którego wyniekiem jest pseudolosowe x∈ℕ∩[0;5>
Kolejna sprawa, give_item. NIE MOŻESZ dawać przedmiotu graczowi, jeśli nie jesteś pewien, że gracz ten żyje!
Dlatego dodamy warunek na samym początku funkcji, jeszcze przed deklaracją zmiennej rand i pseudolosowaniem jej wartości:
if(!is_user_alive(id)){ return PLUGIN_HANDLED; }
Na samym końcu zwracamy PLUGIN_HANDLED i tym samym uzyskujemy kod
Spoiler
#include <amxmodx> #include <fun> #define PLUGIN "Standard Tools" #define VERSION "1.5" #define AUTHOR "Shio" public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /zestawinfo", "ZestawMotd") //rejestrujemy komende motd /zestawinfo register_clcmd("say /zestaw", "losowanie"); //rejestracja komendy losowania register_logevent("pokaz_info",2,"1=Round_Start") } public ZestawMotd(id){ if(is_user_connected(id)){ show_motd(id, "zestaw.txt", "zestaw.txt"); //pokazuje motd z info o zestawach } return PLUGIN_HANDLED; } public pokaz_info(){ client_print(0,print_chat,"[INFO]Aby Zobaczyc jak zestawy mozna wylosowac wpisz /zestawinfo") } public losowanie(id){ //Uruchamia fuknkcje losowania if(!is_user_alive(id)){ return PLUGIN_HANDLED; } new rand=random(5); switch (rand) { case 0: { //zestaw pierwszy give_item(id, "weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegrenade"); } case 1: { //zestaw drugi give_item(id, "weapon_ak47"); //Case nr 1 = m4a1 give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 2: { //zestaw trzeci give_item(id, "weapon_awp"); //case nr 2 = awp give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_flashbang"); } case 3: { //zestaw czwarty give_item(id, "weapon_m249"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "weapon_hegranade"); } case 4: { //zestaw piaty give_item(id, "weapon_scout"); give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") give_item(id, "ammo_556nato") give_item(id, "weapon_hegranade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_smokegranade"); } } return PLUGIN_HANDLED; }
Aby dodać kevlar, skorzystaj z funkcji z modułu cstrike:
cs_set_user_armor