[URL] https://amxx.pl/topic/135342-system-perków/
![[Image: opis.png]](http://amxx.pl/foty/grafikap/opis.png)
Jest to zmodyfikowany plugin od [QTM. Peyote](https://amxx.pl/user/8794-qtm-
peyote/ "Profil użytkownika"), dzięki której otrzymujemy tylko perk po zabiciu
gracza.
Perk ten dodaje nam dodatkowe atrybuty np. dodatkowe życie, bądź
niewidzialność - jest ich wiele i każdy się czymś wyróżnia.
W podstawce jest 27 zwykłych perków, 10 premium, 2 trudne do zdobycia oraz 1
premium i trudny do zdobycia.
![[Image: komendy.png]](http://amxx.pl/foty/grafikap/komendy.png)
/perk - Pokazuje informacje o posiadanym perku.
/perki - Otwiera menu opisów perków.
/sprzedaj - Sprzedaje aktualny perk.
/sell - Sprzedaje aktualny perk.
/zamien - Możliwość zamiany perkami z graczami.
/wymien - Możliwość zamiany perkami z graczami.
/pomoc - Menu pomocy.
![[Image: komendyadmina.png]](http://amxx.pl/foty/grafikap/komendyadmina.png)
/dajperk - Menu dawania perków
![[Image: cvary.png]](http://amxx.pl/foty/grafikap/cvary.png)
money_sellperk "500" - Ile mamy otrzymać pieniędzy za sprzedanie perku.
![[Image: inneinformacje.png]](http://amxx.pl/foty/grafikap/inneinformacje.png)
Ten system perków wykorzystuje moduł "perki" (nie "codmod" i tworzenie ich
jest nieco inne, więcej informacji niżej).
[
[**perki.inc**](https://amxx.pl/index.php?app=core&modul...h_id=66908
"Pobierz załącznik") **2,04 KB** 314 Ilość pobrań
native get_user_perk(id, &wartosc=0);
/*------------------------------
Zwraca perk gracza,
oraz przypisuje zmiennej wartosc wartosc perku
------------------------------*/
native set_user_perk(id, perk, wartosc=-1, pokaz_info=1);
/*------------------------------
Ustawia perk gracza.
Jezeli wartosc = -1,
wartosc perku bedzie losowa.
Jezeli perk = -1 perk
bedzie losowy
------------------------------*/
native get_perkid(const nazwa_perku[]);
/*------------------------------
Zwaca numer perku o podanej nazwie
------------------------------*/
native get_perks_num();
/*------------------------------
Zwaca ilosc perkow
------------------------------*/
native get_perk_name(perk, Return[], len);
/*------------------------------
Kopiuje nazwe perku do Return
------------------------------*/
native get_perk_desc(perk, Return[], len);
/*------------------------------
Kopiuje opis perku do Return
------------------------------*/
native register_perk(const nazwa[], const opis[], min_wartosc=0, max_wartosc=0);
/*------------------------------
Rejestruje nowy perk oraz zwraca jego numer
------------------------------*/
forward perk_changed(id, perk);
/*------------------------------
Forward wysylany do wszystkich pluginów w momencie zmiany perku
------------------------------*/
forward perk_enabled(id, wartosc, perk);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie aktywacji
------------------------------*/
forward perk_disabled(id, perk);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie dezaktywacji
------------------------------*/
forward perk_used(id);
/*------------------------------
Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie uzycia perku
------------------------------*/
Jak widzicie, nie wszystkie natywy oraz forwardy tu się znajdują, dodatkowo
nie mają przyrostka "cod_".
Nie musimy nic dopisywać do plugins.ini
Aby dodać nowy perk należy dopisać go w: **plugins-perki.ini**
![[Image: konfiguracja.png]](http://amxx.pl/foty/grafikap/konfiguracja.png)
* Perki z codmod'a możemy swobodnie przerabiać usuwając wszędzie przyrostki "cod_"
Spoiler
**czyli na przykład:**
cod_register_perk(nazwa, opis);
na:
register_perk(nazwa, opis);
public cod_perk_enabled(id)
na
public perk_enabled(id)
**oraz zamieniając moduł**
#include <codmod>
na
#include <perki>
* Nie istnieją natywy cod_give_weapon oraz cod_take_weapon, dlatego najlepiej zastosować give_item.
* Aby zrobić perk premium:
Spoiler
Wystarczy zmodyfikować perk w "_public perk_enabled_ ", w taki podobny sposób:
public perk_enabled(id, wartosc)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_B)) // tu ustawiasz flage
{
client_print(id, "Ten perk jest premium, niestety nie mozesz go otrzymac!")
return PERK_STOP
}
//kod, tu: ma_perk i co tam masz
return PERK_CONTINUE
}
* Aby zrobić trudny perk do zdobycia:
Spoiler
Odbywa się w ten sposób, że gdy gracz dostanie dostanie perk zaczyna się
losowanie czy go otrzyma.
Możemy zmieniać wartości losowań (łatwiej, trudniej).
Wystarczy zmodyfikować perk w "_public perk_enabled_ ", w taki podobny sposób:
public perk_enabled(id, wartosc)
{
if(random_num(1, 5)==1 || 2 || 3 || 4) // losowanie jest od 1 do 5; jesli trafimy na 1,2,3,4 to nie otrzymamy perku, jesli trafimy na 5 to otrzymamy perk
{
client_print(id, "[Nazwa Perku] Niestety nie otrzymasz perku! Nie udalo ci sie go wylosowac!")
return PERK_STOP
}
//kod, tu: ma_perk i co tam masz
return PERK_CONTINUE
}
**Polecam na serwery 4fun.**
Załączone pliki
* [url=https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=66911 "Pobierz załącznik"]
![[Image: rar.gif]](https://amxx.pl/public/style_extra/mime_types/rar.gif)
Załączniki:
cstrike.rar
perki.inc