Perk Dający Premium
dasiek
10.03.2014
#include <amxmodx> #include <amxmisc> #include <codmod> #define PLUGIN "Premiium" #define VERSION "1.0" #define AUTHOR "CheQo CheQo Lada!" #define FLAGA_PREMIUM ADMIN_LEVEL_H new bool:ma_flage[33]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) cod_register_perk(PLUGIN,"Dodaje Premium"); } public cod_perk_enabled(id) { if(ma_flage[id]) return COD_STOP; set_user_flags(id,FLAGA_PREMIUM); return COD_CONTINUE; } public cod_perk_disabled(id) { if(ma_flage[id]) return COD_CONTINUE; remove_user_flags(id,FLAGA_PREMIUM); return COD_CONTINUE; } public client_authorized(id) { ma_flage[id] = false; if(get_user_flags(id) & FLAGA_PREMIUM) ma_flage[id] = true; } public client_disconnect(id) ma_flage[id] = false;
Było kilka tematów z prośbą o takowy perk. U mnie działa. Instalacja Standardowa - Do pliku - kompilujemy , do plugins , wpisujemy w plugins-codmod.ini i działa.
jako że w codzie standardowo Premium to ADMIN_LEVEL_H tak właśnie ustawiłem. Jeśli macie inaczej zmiencie flagę o tu
#define FLAGA_PREMIUM ADMIN_LEVEL_H
koong
10.03.2014
To działa tak ze jak mam na flage "t" premium
To jak zdobede perk premium to dostaje np klase premium a jak sie skończy perk to klasa premium jest usuwana?
Jadek13
10.03.2014
koong, tak masz to tutaj:
public cod_perk_disabled(id) { if(ma_flage[id]) return COD_STOP; remove_user_flags(id,FLAGA_PREMIUM); return COD_CONTINUE; }
Edit:
Nazwę się zmienia, zmieniając (Premiium) na co chcesz
#define PLUGIN "Premiium"
A opis zmieniając (Dodaje Premium) na co chcesz
cod_register_perk(PLUGIN,"Dodaje Premium");
Użytkownik Jadek13 edytował ten post 10.03.2014 14:25
dasiek
10.03.2014
To jak zdobede perk premium to dostaje np klase premium a jak sie skończy perk to klasa premium jest usuwana?
jak zdobędziesz premium to mozesz takową klasę premium ustawić. Usuniesz perk - to nie będziesz mógł klasy premioum wybrać. Nie pomyślałem żeby usuwać aktualną klasę. Przemyślę to.
A opis i nazwa perku gdzie zmienić?[/quote
][quote name='CheQ' timestamp='1394456455' post='624570']
cod_register_perk(PLUGIN,"Dodaje Premium");
PLUGIN - nazwa
"Dodaje Premioum" - opis.
Mafiozo123
10.03.2014
hmm a jeśli admini są odczytywani z AMXBANSA to zadziała ?
Tak.
Co do perku, co w przypadku kiedy gracz który już posiada flagę premium zdobędzie ten perk i go wyrzuci?
hmm
public cod_perk_disabled(id) { if(ma_flage[id]) return COD_STOP; remove_user_flags(id,FLAGA_PREMIUM); return COD_CONTINUE; }
samo mówi za siebie
jest remove_user_flags więc raczej nie zadziała
dasiek
10.03.2014
Co do perku, co w przypadku kiedy gracz który już posiada flagę premium zdobędzie ten perk i go wyrzuci?
Nigdy go nie zdobędzie. Sprawdzone na localu z "zainstalowanym" jednym perkiem - Nazabijałem się botów i perku nie dostałem.
Mafiozo123
10.03.2014
Przy dawaniu i odbieraniu flagi nie powinieneś przypadkiem wywoływać amx_reloadadmins?
racja bo flaga dopiero zadziała po zmienie mapy a wtedy już gracz perku nie będzie miał
koong
10.03.2014
dasiek
10.03.2014
Wgralem na serwer i działa lecz gracze jak zaczną sobie perk przekazywac dalej tp cały serwer ma klase premium cheq jak byś dał radę zrobić bez perku usuwanie klasy albo zablokować przekazywanie innej osobie było by dobrze, zrobilem wartośc perku 1/2 żeby nie tak łatwo się przekazywalo perk lecz przy zmianie klasy perk się zmienia na losowy.
Przemyślę To. Dziwi mnie gdyż przy przekazaniu perku powinno wykonać się cod_perk_enabled które wyraźnie zabiera flage premium.
koong
10.03.2014

Gargamello
12.03.2014
Buguje się z komendą /daj /wymień gdyż jak perk jest przekazywany, to osoba która przekazała perk, ma premium do końca mapy i osoba która ma ten perk, i tak można dawać i dawać aż każdy na serwerze będzie miał za darmo premium. Testowałem
question?
15.03.2014
Czy jest szansa na poprawę kodu tak by po daniu komuś perka, przywrócało domyślna klasę?
dasiek
15.03.2014
public cod_perk_disabled(id) { cod_set_user_class(id,0, 1); if(ma_flage[id]) return COD_STOP; remove_user_flags(id,FLAGA_PREMIUM); return COD_CONTINUE; }
może to poradzi.
question?
15.03.2014
public cod_perk_disabled(id) { cod_set_user_class(id,0, 1); if(ma_flage[id]) return COD_STOP; remove_user_flags(id,FLAGA_PREMIUM); return COD_CONTINUE; }
NIe pomogło, wręcz spowodowało to, że nie można było wybrać żadnej klasy na serwie.
Gargamello
17.03.2014
ja mam pomysł na ten perk.
zrobiłem w tym perku 1% szans na zdobycie i moje pytanie brzmi, czy ktoś umie zrobić że jak ktoś zdobedzie ten perk, dostanie premium na 30 dni?