#include <amxmodx>
#include <fun>
#include <colorchat>
public plugin_init() {
register_plugin("2 Fragi", "Autorska", "Mister Silenzo");
register_event("DeathMsg", "EventDeath", "a"); // Wydarzenie odpowiedzialne za wyłapywanie zabójstw
}
public EventDeath() {
new kid = read_data(1); // Numer ID osoby, która zabiła
new vid = read_data(2); // Numer ID osoby, która ZOSTAŁA zabita
new hs = read_data(3); // Zwraca 1 jeżeli zabójstwo było przez headshot, lub 0 gdy było strzałem/kosą w ciało
// read_data() służy do odczytywania parametrów wydarzenia, jeżeli użyłem złego słowa do opisania tej funkcji i jej funkcji to proszę o poprawienie mnie xd
if(kid == vid || kid == 0) return; // Jeżeli OFIARĄ jest ZABÓJCA (czyt. samobójstwo) lub ZABÓJCA jest zerem (KID jest równe 0 gdy spada się z wysokości, lub admin używa SLAY ;-;)
new name[2][32]; // Tablica dwuwymiarowa o dwóch polach z indeksami od 0 do 31 (Jeżeli źle wytłumaczyłem to proszę o poprawienie mnie ;/)
if(get_user_weapon(kid) == CSW_KNIFE) { // Jeżeli bronią ZABÓJCY jest NÓŻ
get_user_name(kid, name[0], 31); // Pobierz nick ZABÓJCY do pierwszego pola tablicy.
get_user_name(vid, name[1], 31); // Pobierz nick OFIARY do drugiego pola tablicy.
ColorChat(kid, RED, "^1Zdobywasz dodatkowego fraga za zabicie ^4%s^1 z ^4NOZA^1!", name[1]); // Wyświetl ZABÓJCY informację o dodaniu fraga
for(new i = 0; i < get_maxplayers(); i++) { /* Tutaj spotykamy się ze słowem kluczowym "for", które definiuje pętlę.
W pętli tworzymy nową zmienną "new i" i przypisujemy jej wartość zero "new i = 0;".
Warunek obrotu pętli, czyli "i < get_maxplayers();", co ma się stać po obrocie pętli, czyli "i++".*/
if(!is_user_connected(i) || is_user_bot(i) || is_user_hltv(i) || i == kid) continue; /* I jest numerem ID gracza w tej pętli,
więc jeżeli gracz z pętli jest zabójcą, jest niepołączony, jest botem lub hltv to go pomijamy :P
Pomijamy zabójcę w pętli, ponieważ dla niego wiadomość została wyświetlona wcześniej, więc nie ma potrzeby pokazywać mu
po raz kolejny tego samego, prawda? :P*/
ColorChat(i, RED, "^4%s ^1zdobywa dodatkowego fraga za zabicie ^4%s ^1NOZEM!", name[0], name[1]);
}
set_user_frags(kid, get_user_frags(kid) + 1); // Dodajemy do obecnej ilości fragów ZABÓJCY jednego fraga.
return; // Przerywa dalsze działanie kodu, gdyż gdyby zabójstwo nożem odbyło by się poprzez HS gracz dostał by dwa dodatkowe fragi zamiast jednego.
}
// Tutaj robimy to samo co powyżej z tą różnicą, że funkcja nie rozpoczyna się od sprawdzenia czy gracz ma nóż, lecz czy zabójstwo odbyło się poprzez HS.
if(hs == 1) {
get_user_name(kid, name[0], 31);
get_user_name(vid, name[1], 31);
ColorChat(kid, RED, "^1Zdobywasz dodatkowego fraga za zabicie ^4%s HEADSHOTEM^1!", name[1]);
for(new i = 0; i < get_maxplayers(); i++) {
if(!is_user_connected(i) || is_user_bot(i) || is_user_hltv(i) || i == kid) continue;
ColorChat(i, RED, "^4%s ^1zdobywa dodatkowego fraga za zabicie ^4%s ^1HEADSHOTEM!", name[0], name[1]);
}
set_user_frags(kid, get_user_frags(kid) + 1);
return;
}
/*
Mam nadzieję, że nauczyłeś się czegokolwiek XD Jeżeli czegoś nie wiesz to zapraszam na PW, bądź pisz w temacie, chętnie "pouczę" podstaw, gdyż jak na razie sam znam tylko podstawy :P
*/
}
Proszę, oto kompletny kod z komentarzami, miłej lektury (o ile chcesz się czegoś nauczyć

Jeżeli nie to wrzuć w kompilator i tyle

).
Użytkownik Mister Silenzo edytował ten post 04.03.2014 22:01