Losowy vip dla X osób
Rivit
13.03.2020
Plugin jest prosty w zamyśle - losuje X vipów w danej rundzie. Wylosowane vipy znikają po zmianie mapy. Plugin nie bierze do losowania botów oraz ludzi mających vipa.
https://amxx.pl/topi...-pluginów-amxx/
Nie chciało mi sie cvarów dodawać do pluginów. Wszystko jest do ustawione w .sma
#define LOSOWANIE_VIP_OD 5 #define LOSOWANIE_W_KTOREJ_RUNDZIE 3 #define ILE_VIPOW_LOSOWAC 3 #define FLAGA_VIP ADMIN_LEVEL_H
Myśle, że jest to samo-tłumaczące się
Po zmianach należy skompilować ponownie i wrzucić na serwer.
Załączone pliki
Użytkownik TibacK edytował ten post 13.03.2020 18:36
Assorri
03.04.2020
Jeśli na serwerze mam SVIPa i chcę żeby mi losowało SVIPy to wystarczy zmienic linijkę
#define FLAGA_VIP ADMIN_LEVEL_H ?
/edit Nie działa, wyskakuje na Hudzie ze Gracz X dostał darmowego vipa i nic
Użytkownik Assorri edytował ten post 03.04.2020 01:08
Rivit
03.04.2020
Jeśli używasz vipa z generatora to zajrzyj tutaj: https://amxx.pl/topi...zytaniem-flagi/
Konrad26
04.01.2021
Witam mam problem z kompilatorem nie mogę Dodać flagi "T" cały czas jak chce zrobić do AMXX to pokazuje tak co proszę o pomoc
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team losowanievipow.sma(46) : error 017: undefined symbol "ADMIN_LEVEL_T" losowanievipow.sma(69) : error 017: undefined symbol "ADMIN_LEVEL_T" losowanievipow.sma(69) : error 088: number of arguments does not match definition 3 Errors. Could not locate output file losowanievipow.amxx (compile failed).
A plik SMA wygląda tak
#include <amxmodx> #include <colorchat> #define LOSOWANIE_VIP_OD 5 #define LOSOWANIE_W_KTOREJ_RUNDZIE 3 #define ILE_VIPOW_LOSOWAC 3 #define FLAGA_VIP ADMIN_LEVEL_T new runda = 0; new Float:hudpos = 0.4; new const prefix[] = "[DARMOWY VIP]" public plugin_init(){ register_plugin("Losowanie X vipĂłw", "1.0", "RiviT"); register_logevent("Poczatek_Rundy", 2, "1=Round_Start") set_task(120.0, "advert", _, _, _, "b") } public advert(){ ColorChat(0, GREEN, "%s^x01 Zawsze w %d rundzie bedzie losowany^x03 VIP.^x01 Na serwerze musi byc conajmniej %d graczy, by losowanie sie odbylo!", prefix, LOSOWANIE_W_KTOREJ_RUNDZIE, LOSOWANIE_VIP_OD); } public Poczatek_Rundy(){ runda++ if(runda == LOSOWANIE_W_KTOREJ_RUNDZIE){ ColorChat(0, GREEN, "%s^x01 Uwaga! za moment zostanie rozlosowany^x03 darmowy vip^x01 na ta mape!", prefix); if(get_playersnum() >= LOSOWANIE_VIP_OD){ LosujVipy(); }else{ ColorChat(0, GREEN, "%s^x01 Niestety, na serwerze nie bylo %d osob! Losowanie nie odbedzie sie", prefix, LOSOWANIE_VIP_OD); } } } public LosujVipy() { new Array:players = ArrayCreate(1, 32); for(new id = 1; id <= get_maxplayers(); id++){ if(!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id)){ //pomin niepolaczonych, botow, hltv continue; } if(get_user_flags(id) & FLAGA_VIP){ //pomin jak ktos juz ma vipa continue; } ArrayPushCell(players, id); } new ile_losowac = ILE_VIPOW_LOSOWAC, wybrany_idx, target; while(ile_losowac > 0 && ArraySize(players) > 0){ wybrany_idx = random(ArraySize(players)); target = ArrayGetCell(players, wybrany_idx); ArrayDeleteItem(players, wybrany_idx); przyznajVipa(target) ile_losowac--; } ArrayDestroy(players) } public przyznajVipa(id){ new Name[33]; get_user_name(id, Name, charsmax(Name)) set_user_flags(id, FLAGA_VIP); ColorChat(0, TEAM_COLOR, "^x04%s^x01 Gratulacje dla gracza ^x03 %s, ktory uzyskal w wyniku losowania darmowego VIPA na tej mapie!", prefix, Name); set_hudmessage(255, 125, 0, -1.0, hudpos) show_hudmessage(0, "Gratulacje dla gracza %s, ktory uzyskal w wyniku losowania darmowego VIPA na tej mapie!", Name); hudpos += 0.05; // zeby sie nie nakladaly hudmessage }
Użytkownik Konrad26 edytował ten post 04.01.2021 11:52
Toldi
04.01.2021
Nie tak
#define FLAGA_VIP ADMIN_LEVEL_T
tylko tak
#define FLAGA_VIP ADMIN_LEVEL_H
Masz opis flag tutaj: https://amxx.pl/vipgenerator/