[URL] https://amxx.pl/topic/62193-advanced-access-control/
Advanced Access Control by MarWit
![[Image: opis.png]](http://amxx.pl/foty/grafikap/opis.png)
Jest to plugin-biblioteka, dodajacy możliwość dodawania zaawansowanych
uprawnien, czyli alternatywa dla ADMIN_*.
Dzięki niemu mamy dostęp do większej liczby flag ( każdy znak może byc flagą!,
[ wyj. ^ i " ] ), które można przechowywać w dowolnym pliku.
Jak korzystać z tego rozwiązania w swoich pluginach? Oto przykład:
#include <amxmodx>
native aac_get_user_flags(id, szOutput[], iLen) // Dodajemy aby korzystać z funkcji biblioteki.
native aac_user_has_flags(id, const szFlags[]) // Tak jak wyżej.
public plugin_init() {
register_plugin("Test AAC", "0.1", "MarWit")
register_clcmd("say /test", "cmdTest")
}
public cmdTest(id)
{
if(aac_user_has_flags(id, "$#Z")) // Sprawdzamy czy gracz posiada flagi $#Z
{
client_print(id, print_chat, "Posiadasz flagi $#Z
![[Image: smile.png]](https://amxx.pl/public/style_emoticons/default/smile.png)
return PLUGIN_CONTINUE
}
client_print(id, print_chat, "Nie posiadasz wszystkich wymaganych flag
![[Image: sad.png]](https://amxx.pl/public/style_emoticons/default/sad.png)
return PLUGIN_CONTINUE
}
![[Image: konfiguracja.png]](http://amxx.pl/foty/grafikap/konfiguracja.png)
Do pliku z konfiguracja ( org. "aac_users.ini ) dodajemy graczy w formacie:
"nick_gracza/sid_gracza/ip_gracza" "flagi_gracza" "czas_posiadania_flag" "haslo_gracza"
Czas posiadania flag wpisujemy w formacie:
1\. "ddmmrrrr" np. "16102011" - 16-10-2011
2\. "ddmmrrrrggMM" np. "161020111147" - 16-10-2011 11:47
3\. Wpisujemy "0", dzięki czemu dana osoba doststaje flagi pernametnie ( można
usunąć gracza komendą "aacdel" )
d - dzień (1-31) , m - miesiąc(1-12) , r - rok ( xxxx ), gg - godzina ( 1-12
), - minuta ( 0-59 )
Hasła nie wpisujemy, jeżeli w 1 polu daliśmy coś innego niż nick.
Oczywiście graczy możemy dodawać i usuwać także komendami.
**Zmiana nazwy pliku konfiguracyjnego:**
Szukamy
new const g_szFileName[128] = "aac_users.ini"
Gdzie "aac_users.ini", zmieniamy na własną nazwe
**Hasło:**
Gdy ustawimy graczowi hasło na nick, musi on wpisać do konsoli:
setinfo "_aacpw" "haslo"
Inaczej dostanie kicka z informacja o błędnym haśle.
![[Image: komendy.png]](http://amxx.pl/foty/grafikap/komendy.png)
**Dodawanie gracza:**
aacadd "nick_gracza" "flagi_gracza" "czas_posiadania_flag" "haslo_gracza"
Hasła nie wpisujemy, jeżeli w 1 polu daliśmy coś innego niż nick.
Czas posiadania flag wpisujemy w formacie:
1\. "ddmmrrrr" np. "16102011" - 16-10-2011
2\. "ddmmrrrrggMM" np. "161020111147" - 16-10-2011 11:47
3\. Wpisujemy "0", dzięki czemu dana osoba doststaje flagi pernametnie ( można
usunąć gracza komendą "aacdel" )
d - dzień (1-31) , m - miesiąc(1-12) , r - rok ( xxxx ), gg - godzina ( 1-12
), - minuta ( 0-59 )
**Usuwanie gracza:**
aacdel "nick_gracza"
**Menu:**
aacmenu
Wszystkie komendy wymagają flagi **ADMIN_IMMUNITY**
![[Image: inneinformacje.png]](http://amxx.pl/foty/grafikap/inneinformacje.png)
**Natywy:**
aac_get_user_flags(id, szOutput[], iLen)
Zwraca flagi w postaci stringa. Przykład:
new szFlags[64]
aac_get_user_flags(id, szFlags, 63)
\----------------------------------------------------------------
aac_user_has_flags(id, const szFlags[])
Sprawdza czy gracz posiada dane flagi. Przykład ( sprawdzi czy gracz posiada
flagi "adt" ):
aac_user_has_flags(id, "adt")
**!! UWAGA !!**
Plugin dopisujemy NA SAMYM POCZĄTKU plugins.ini, przed wszystkimi pluginami
korzystającymi z tej biblioteki!!
![[Image: download.png]](http://amxx.pl/foty/grafikap/download.png)
Załączone pliki
* [url=https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=25112 "Pobierz załącznik"]
![[Image: unknown.gif]](https://amxx.pl/public/style_extra/mime_types/unknown.gif)
* [url=https://amxx.pl/index.php?app=core&module=attach§ion=attach&attach_id=25113 "Pobierz załącznik"]
![[Image: sma.gif]](https://amxx.pl/public/style_extra/mime_types/sma.gif)
[
![[Image: amxx.gif]](http://amxx.pl/public/style_extra/mime_types/amxx.gif)
"Pobierz plik AMXX")
Użytkownik **MarWit** edytował ten post 16.10.2011 10:53
Załączniki:
AdvancedAccessControl.sma