Prośba o modyfikację pluginu free vip na r...
Kompetentny
14.01.2016
http://amxx.pl/topic...zy-na-serwerze/
Prosiłbym o modyfikację tego pluginy, tak aby zamiast rund, dawał graczowi vipa po 30 sekundach od startu 1 rundy. Posiadam serwer Dm i chciałbym aby mi na nim to działało. Czyli powiedzmy po 20 sekundach sprawdza stan graczy, gdy jest powyżej 18 to daje losowemu graczowi vipa.
Dziobak?
15.01.2016
Coś takiego ci zrobiłem. Po 20 sekundach od rozpoczęcia rundy losuje.
#include <amxmodx> #include <fun> #include <colorchat> #define LOSOWANIE_VIP_OD 15 #define LOSOWANIE_VIP_DO_SVIP_OD 28 #define FLAGA_VIP ADMIN_LEVEL_H #define FLAGA_SVIP ADMIN_LEVEL_G new iPlayer new tmp; public plugin_init(){ register_plugin("Losowanie vipa", "1.0", "Wielkie Jooool"); register_logevent("Poczatek_Rundy", 2, "1=Round_Start") set_task(30.0, "UsunVipa", .flags="d") //set_task(120.0, "advert", _, _, _, "b") } /* public advert() ColorChat(0, GREEN, "[FREE VIP]^x01 Zawsze w %d rundzie bedzie losowany^x03 VIP.^x01 Na serwerze musi byc conajmniej %d graczy, by losowanie sie odbylo!", LOSOWANIE_W_KTOREJ_RUNDZIE, LOSOWANIE_VIP_OD); */ public Poczatek_Rundy() { set_task(20.0, "sprawdz", _, _, _, "b") } public sprawdz() { ColorChat(0, GREEN, "[DARMOWY VIP]^x01 Uwaga! za moment zostanie rozlosowany^x03 darmowy vip^x01 na ta mape!"); if(LOSOWANIE_VIP_DO_SVIP_OD > get_playersnum()>= LOSOWANIE_VIP_OD) { Losuj_Vipa(FLAGA_VIP) tmp = FLAGA_VIP return PLUGIN_HANDLED } if(get_playersnum()>=LOSOWANIE_VIP_DO_SVIP_OD){ Losuj_Vipa(FLAGA_SVIP) tmp = FLAGA_SVIP; return PLUGIN_HANDLED } for(new i=1; i<=32; i++){ if(is_user_connected(i)) ColorChat(i, GREEN, "[DARMOWY VIP]^x01 Niestety, na serwerze nie bylo %d osob! Losowanie nie odbedzie sie", LOSOWANIE_VIP_OD); } return PLUGIN_CONTINUE } public client_disconnect(id){ if(id == iPlayer){ remove_user_flags(iPlayer, tmp) } } public Losuj_Vipa(FLAGA) { new players[32], count; get_players(players, count, "ch"); if(count) { iPlayer = players[random(count)]; if(get_user_flags(iPlayer) & FLAGA_VIP || get_user_flags(iPlayer) & FLAGA_SVIP){ ColorChat(0, RED, "[FREE VIP]^x01 Zostala wylosowana osoba, ktora jest VIPEM! Losowanie przepada.^x04 Do nastepnej mapy!"); return PLUGIN_HANDLED } new Name[32]; get_user_name(iPlayer, Name, charsmax(Name)) set_user_flags(iPlayer, get_user_flags(iPlayer) | FLAGA); ColorChat(0, TEAM_COLOR, "^x04[DARMOWY VIP]^x01 Gratulacje dla gracza ^x03 %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA"); set_hudmessage(255, 125, 0, -1.0, 0.40) show_hudmessage(0, "Gratulacje dla gracza %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA") } return PLUGIN_CONTINUE; } public UsunVipa(){ ColorChat(0, TEAM_COLOR, "[KONIEC] Dziekujemy za udzial w zabawie. Vip zostal usuniety. Nastepne losowanie na nastepnej mapie w zaleznosci od ilosci graczy"); remove_user_flags(iPlayer, tmp); }
Dziobak?
16.01.2016
Wgrałem na serwer, plugin szaleje i każdemu graczowi rozdaje vipa
Oj soory, pomyliło mi się xDD
#include <amxmodx> #include <fun> #include <colorchat> #define LOSOWANIE_VIP_OD 15 #define LOSOWANIE_VIP_DO_SVIP_OD 28 #define FLAGA_VIP ADMIN_LEVEL_H #define FLAGA_SVIP ADMIN_LEVEL_G new iPlayer new tmp; public plugin_init(){ register_plugin("Losowanie vipa", "1.0", "Wielkie Jooool"); register_logevent("Poczatek_Rundy", 2, "1=Round_Start") set_task(30.0, "UsunVipa", .flags="d") //set_task(120.0, "advert", _, _, _, "b") } /* public advert() ColorChat(0, GREEN, "[FREE VIP]^x01 Zawsze w %d rundzie bedzie losowany^x03 VIP.^x01 Na serwerze musi byc conajmniej %d graczy, by losowanie sie odbylo!", LOSOWANIE_W_KTOREJ_RUNDZIE, LOSOWANIE_VIP_OD); */ public Poczatek_Rundy() { set_task(20.0, "sprawdz") } public sprawdz() { ColorChat(0, GREEN, "[DARMOWY VIP]^x01 Uwaga! za moment zostanie rozlosowany^x03 darmowy vip^x01 na ta mape!"); if(LOSOWANIE_VIP_DO_SVIP_OD > get_playersnum()>= LOSOWANIE_VIP_OD) { Losuj_Vipa(FLAGA_VIP) tmp = FLAGA_VIP return PLUGIN_HANDLED } if(get_playersnum()>=LOSOWANIE_VIP_DO_SVIP_OD){ Losuj_Vipa(FLAGA_SVIP) tmp = FLAGA_SVIP; return PLUGIN_HANDLED } for(new i=1; i<=32; i++){ if(is_user_connected(i)) ColorChat(i, GREEN, "[DARMOWY VIP]^x01 Niestety, na serwerze nie bylo %d osob! Losowanie nie odbedzie sie", LOSOWANIE_VIP_OD); } return PLUGIN_CONTINUE } public client_disconnect(id){ if(id == iPlayer){ remove_user_flags(iPlayer, tmp) } } public Losuj_Vipa(FLAGA) { new players[32], count; get_players(players, count, "ch"); if(count) { iPlayer = players[random(count)]; if(get_user_flags(iPlayer) & FLAGA_VIP || get_user_flags(iPlayer) & FLAGA_SVIP){ ColorChat(0, RED, "[FREE VIP]^x01 Zostala wylosowana osoba, ktora jest VIPEM! Losowanie przepada.^x04 Do nastepnej mapy!"); return PLUGIN_HANDLED } new Name[32]; get_user_name(iPlayer, Name, charsmax(Name)) set_user_flags(iPlayer, get_user_flags(iPlayer) | FLAGA); ColorChat(0, TEAM_COLOR, "^x04[DARMOWY VIP]^x01 Gratulacje dla gracza ^x03 %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA"); set_hudmessage(255, 125, 0, -1.0, 0.40) show_hudmessage(0, "Gratulacje dla gracza %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA") } return PLUGIN_CONTINUE; } public UsunVipa(){ ColorChat(0, TEAM_COLOR, "[KONIEC] Dziekujemy za udzial w zabawie. Vip zostal usuniety. Nastepne losowanie na nastepnej mapie w zaleznosci od ilosci graczy"); remove_user_flags(iPlayer, tmp); }
Kompetentny
16.01.2016
Wszystko się już prawie zgadza, oprócz tego, że losuje vipa dla dwóch osób
Dziobak?
16.01.2016
Wszystko się już prawie zgadza, oprócz tego, że losuje vipa dla dwóch osób
Tak powinno być w tym pluginie bo jest svip i vip. Jak nie chcesz to łap to powinno pomóc.
#include <amxmodx> #include <fun> #include <colorchat> #define LOSOWANIE_VIP_OD 15 #define LOSOWANIE_VIP_DO_SVIP_OD 28 #define FLAGA_VIP ADMIN_LEVEL_H #define FLAGA_SVIP ADMIN_LEVEL_G new iPlayer new tmp; public plugin_init(){ register_plugin("Losowanie vipa", "1.0", "Wielkie Jooool"); register_logevent("Poczatek_Rundy", 2, "1=Round_Start") set_task(30.0, "UsunVipa", .flags="d") //set_task(120.0, "advert", _, _, _, "b") } /* public advert() ColorChat(0, GREEN, "[FREE VIP]^x01 Zawsze w %d rundzie bedzie losowany^x03 VIP.^x01 Na serwerze musi byc conajmniej %d graczy, by losowanie sie odbylo!", LOSOWANIE_W_KTOREJ_RUNDZIE, LOSOWANIE_VIP_OD); */ public Poczatek_Rundy() { set_task(20.0, "sprawdz") } public sprawdz() { ColorChat(0, GREEN, "[DARMOWY VIP]^x01 Uwaga! za moment zostanie rozlosowany^x03 darmowy vip^x01 na ta mape!"); if(get_playersnum()>=LOSOWANIE_VIP_DO_SVIP_OD){ Losuj_Vipa(FLAGA_SVIP) tmp = FLAGA_SVIP; return PLUGIN_HANDLED } else if(LOSOWANIE_VIP_DO_SVIP_OD > get_playersnum()>= LOSOWANIE_VIP_OD) { Losuj_Vipa(FLAGA_VIP) tmp = FLAGA_VIP return PLUGIN_HANDLED } for(new i=1; i<=32; i++){ if(is_user_connected(i)) ColorChat(i, GREEN, "[DARMOWY VIP]^x01 Niestety, na serwerze nie bylo %d osob! Losowanie nie odbedzie sie", LOSOWANIE_VIP_OD); } return PLUGIN_CONTINUE } public client_disconnect(id){ if(id == iPlayer){ remove_user_flags(iPlayer, tmp) } } public Losuj_Vipa(FLAGA) { new players[32], count; get_players(players, count, "ch"); if(count) { iPlayer = players[random(count)]; if(get_user_flags(iPlayer) & FLAGA_VIP || get_user_flags(iPlayer) & FLAGA_SVIP){ ColorChat(0, RED, "[FREE VIP]^x01 Zostala wylosowana osoba, ktora jest VIPEM! Losowanie przepada.^x04 Do nastepnej mapy!"); return PLUGIN_HANDLED } new Name[32]; get_user_name(iPlayer, Name, charsmax(Name)) set_user_flags(iPlayer, get_user_flags(iPlayer) | FLAGA); ColorChat(0, TEAM_COLOR, "^x04[DARMOWY VIP]^x01 Gratulacje dla gracza ^x03 %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA"); set_hudmessage(255, 125, 0, -1.0, 0.40) show_hudmessage(0, "Gratulacje dla gracza %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA") } return PLUGIN_CONTINUE; } public UsunVipa(){ ColorChat(0, TEAM_COLOR, "[KONIEC] Dziekujemy za udzial w zabawie. Vip zostal usuniety. Nastepne losowanie na nastepnej mapie w zaleznosci od ilosci graczy"); remove_user_flags(iPlayer, tmp); }
TomuśPL
21.05.2016
Mogę wiedzieć gdzie to wkleić ? w sensie w jaki folder, aby działało elegancko na serwerze.
mayday245 26.05.2016
Mogę wiedzieć gdzie to wkleić ? w sensie w jaki folder, aby działało elegancko na serwerze.
-Przekopiowujesz kod
-Otwierierasz np. notatnik
-wklejasz
-nadajesz nazwe np. freevip.sma PAMIETAJ O .SMA
-kompilujesz
-wgrywasz .amxx (te cos co ci sie skompilowalo) do plugins
-dopisujesz nazwe pluginu do plugins.ini np. freevip.amxx