←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Perk Dający Premium

  • +
  • -
dasiek - zdjęcie 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
Odpowiedz

  • +
  • -
kukla1910 - zdjęcie kukla1910 10.03.2014

Dobra robota cheq-u dziś wgram do siebie

Odpowiedz

  • +
  • -
koong - zdjęcie koong 10.03.2014

Noo dobre;d
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?
Odpowiedz

  • +
  • -
koong - zdjęcie koong 10.03.2014

A opis i nazwa perku gdzie zmienić?
Odpowiedz

Jadek13 - zdjęcie 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
Odpowiedz

  • +
  • -
dasiek - zdjęcie 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. 

Odpowiedz

Jadek13 - zdjęcie Jadek13 10.03.2014

Uprzedziłeś mnie CheQ ;D

Odpowiedz

Mafiozo123 - zdjęcie Mafiozo123 10.03.2014

hmm a jeśli admini są odczytywani z AMXBANSA to zadziała ?

Odpowiedz

Mafiozo123 - zdjęcie 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? :P

 

 

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 :D

jest remove_user_flags więc raczej nie zadziała :)

Odpowiedz

  • +
  • -
dasiek - zdjęcie 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.


sharkowy (10.03.2014 14:57):
if(ma_flage[id])
return COD_STOP;

Tego nie zauważyłem xD
dasiek (10.03.2014 14:58):
Dodatowo zmieniłęm że jak ma Perk a ma flagę ti dropnie to "będzie mógł dropnąć"
Odpowiedz

Mafiozo123 - zdjęcie 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ł xD


sharkowy (10.03.2014 15:06):
Nie zadziała po zmianie mapy, bo nie ma tu zapisu flag. set_user_flags działa tylko na czas mapy
Odpowiedz

  • +
  • -
koong - zdjęcie koong 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.
Odpowiedz

  • +
  • -
dasiek - zdjęcie 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. 

Odpowiedz

  • +
  • -
koong - zdjęcie koong 10.03.2014

Zabiera flage premium ok i gracz nie ma tej flagi ale nadal gra klasa premium żeby stracić klase to musi się mapa zmienić albo klase zmienić;)
Odpowiedz

  • +
  • -
wicia_200 - zdjęcie wicia_200 12.03.2014

perk by był naprawdę fajny gdyby był bardzo trudny do zdobycia :)

Odpowiedz

Gargamello - zdjęcie 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

Odpowiedz

  • +
  • -
question? - zdjęcie question? 15.03.2014

Czy jest szansa na poprawę kodu tak by po daniu komuś perka, przywrócało domyślna klasę?

Odpowiedz

  • +
  • -
dasiek - zdjęcie 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.


sharkowy (15.03.2014 14:13):
Nie. Zdobycie perku poprzez wymianę działa na takiej samej zasadzie, co zdobycie go poprzez zabójstwo. Dlatego też właśnie czasami kiedy ludzie wymieniają się perkiem, perk ma inną wartość, np. koleś miał 1/4 z deagla, a po wymianie ktoś ma 1/3 lub 1/5 :P
dasiek (15.03.2014 14:19):
Czyli wykonuje się cod_perk_enabled i disabled - więc zerwoanie klasy gracza ma sens czy muszę inaczej kombinować? xD
Odpowiedz

  • +
  • -
question? - zdjęcie 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.

Odpowiedz

Gargamello - zdjęcie 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? :P

Odpowiedz