Podmień ta linijkę bo zapomniałem i wtedy zobacz
register_event("TextMsg", "RoundRestart", "a", "2&#Game_w");
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Vanilla nie posiada znajomych
Napisane przez P3neR
w 17.03.2021 16:14
Napisane przez P3neR
w 17.03.2021 16:39
Napisane przez Żuk
w 17.03.2021 16:41
Usuń ten event który kolega podaje wyżej całkowicie ponieważ jest już jeden przypisany do tego samego publica, dlatego czas pokazuje się dwukrotnie.
i zamień
public disconnect(id)
na
public disconnected(id)
zniknie warning podczas kompilacji
btw. Tobie chodziło cały czas o realną godzinę? bo jestem przekonany że autorowi temat chodziło o coś calkowicie innego tak to bym nie kombinował co jest nie tak..
Napisane przez Żuk
w 17.03.2021 16:55
Napisane przez P3neR
w 16.03.2021 23:03
Napisane przez Roughster
w 15.03.2021 20:02
Napisane przez Żuk
w 09.03.2021 16:33
nie jestem w stanie przetestowac ale zerknij, bany zapisywały się w pliku nvault "banct" w którym też zapisany jest czas gry graczy, aczkolwiek stare bany nie będą brane pod uwage
#include <amxmodx> #include <amxmisc> #include <nvault> #include <cstrike> #include <jailbreak> #include <colorchat> #define PLUGIN "JailCzasGry" #define VERSION "1" #define AUTHOR "Vanilla" new valut; new pCvarSteam, pCvarTiem, pCvarCtToTT; new CzasGry[MAX+1]; new dane_gracza[MAX+1]; new nazwa_gracza[MAX+1][64]; new bool:wczytane[MAX+1]; new FlagiAdmina[] = "c"; /* Tutaj zmieniasz flagi z którymi admina nie obowiązuje ograniczenie X CT na Y TT */ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /czasgry", "PokazCzasGry"); pCvarTiem = register_cvar("jail_ct_time", "60"); pCvarCtToTT = register_cvar("jail_tt_to_ct", "6"); pCvarSteam = register_cvar("jail_ct_steam", "0"); pCvarCtToTT = max(get_pcvar_num(pCvarCtToTT), 1); pCvarTiem = get_pcvar_num(pCvarTiem)*60; pCvarSteam = get_pcvar_num(pCvarSteam); valut = nvault_open("banct"); } public OnJoinTeam(id, team, tt, ct) { if(team == 2) { if(!is_user_steam(id) && pCvarSteam) { ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] NonSteam nie moze grac w CT!"); return JAIL_FORCE_TT; } if((ct && (ct*pCvarCtToTT >= tt)) && !(get_user_flags(id) & read_flags(FlagiAdmina))) { ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Druzyna CT pelna! Dolaczyles do wiezniow!"); return JAIL_FORCE_TT; } if(!dane_gracza[id] && ((get_user_time(id,1)+CzasGry[id]) < pCvarTiem) && !(get_user_flags(id) & read_flags(FlagiAdmina))) { ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Masz za malo czasu przegrane na serwerze by grac w CT! Potrzebujesz %d minut.", pCvarTiem/60); return JAIL_FORCE_TT; } } return JAIL_CONTINUE; } public client_putinserver(id) { dane_gracza[id] = 0; CzasGry[id] = 0; wczytane[id] = false; if(pCvarSteam) { if(is_user_steam(id)) { get_user_authid(id, nazwa_gracza[id], 63); CzasGry[id] = WczytajCzas(id); } return; } if(is_user_steam(id)) get_user_authid(id, nazwa_gracza[id], 63); else get_user_name(id, nazwa_gracza[id], 63); CzasGry[id] = WczytajCzas(id); } public WczytajCzas(id) { new vaultdata[256]; wczytane[id] = true; if(nvault_get(valut, nazwa_gracza[id], vaultdata, 255)) { if(vaultdata[1] == '#') { new left[10]; strtok(vaultdata, left, 9, vaultdata, 255, '#', 1); return str_to_num(vaultdata); } else dane_gracza[id] = (vaultdata[0]-'0'); } return 0; } public client_disconnected(id) { if(pCvarSteam) { if(is_user_steam(id)) { ZapiszCzas(id); } return; } ZapiszCzas(id); } public ZapiszCzas(id) { if(!dane_gracza[id] && wczytane[id]) { new czas = CzasGry[id]+get_user_time(id,1); if(czas <= pCvarTiem) { new vaultdata[256]; formatex(vaultdata, 255, "0#%i", czas); nvault_set(valut, nazwa_gracza[id], vaultdata); } else nvault_set(valut, nazwa_gracza[id], "1"); } } public PokazCzasGry(id) { new times = get_user_time(id,1); if((times+CzasGry[id]) < pCvarTiem && !dane_gracza[id]) ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Spedziles na serwerze^x03 %d^x01 min.", (times+CzasGry[id])/60); else ColorChat(id, TEAM_COLOR, "^x01[^x04JailBreak^x01] Przegrales ponad %d minut na serwerze", pCvarTiem/60); return PLUGIN_HANDLED; } stock is_user_steam( id ) { new g_Steam[ 32 ] get_user_authid( id, g_Steam, charsmax( g_Steam ) ) return bool:( '0' <= g_Steam[ 8 ] <= '1' ); } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Napisane przez Zuzza
w 22.02.2021 20:10
W pluginie adminchat.sma masz kod odpowiedzialny za wyświetlanie wiadomości na @@
To jest kawałek kodu z tego pluginu w którym trzeba dokonać zmiany:
switch ( get_pcvar_num(amx_show_activity) ) { case 3, 4: { new maxpl = get_maxplayers(); for (new pl = 1; pl <= maxpl; pl++) { if (is_user_connected(pl) && !is_user_bot(pl)) { if (is_user_admin(pl)) { show_hudmessage(pl, "%s : %s", name, message[i + n]) client_print(pl, print_notify, "%s : %s", name, message[i + n]) } else { show_hudmessage(pl, "%s", message[i + n]) client_print(pl, print_notify, "%s", message[i + n]) } } } } case 2: { show_hudmessage(0, "%s : %s", name, message[i + n]) client_print(0, print_notify, "%s : %s", name, message[i + n]) } default: { show_hudmessage(0, "%s", message[i + n]) client_print(0, print_notify, "%s", message[i + n]) } }
Polecam stworzyć funkcje która będzie zwracać odpowiedni prefix dla odpowiedniej flagi o na przykład tako:
public RetunrPrefix(id){ new szPrefix[11] if( has_flag(id, "a" ) ) format(szPrefix, 10, "HEADADMIN ") else if( has_flag(id, "c") ) format(szPrefix, 10, "ADMIN ") return szPrefix }
Teraz skoro funkcja na prefix już jest wystarczy to połączyć tak o:
case 2: { show_hudmessage(0, "%s%s : %s", RetunrPrefix(id), name, message[i + n]) client_print(0, print_notify, "%s : %s", name, message[i + n]) }
W case 3, 4 również jest wyświetlany nick admina tylko adminom więc można by to tam również dodać ale to już wierze że dasz rade samodzielnie
Napisane przez sharkowy
w 26.02.2021 21:46
Cytując Darka z przed paru lat;
Lepiej używać jest cs_get_user_team druga funkcja czyli get_user_team w pewnych przypadkach zwróci nieprawdziwe dane
Więc dmuchając na zimne słuchajmy się rad naszego miszcza
if(get_user_flags(id) & FLAGA_USERA && cs_get_user_team(id) == CS_TEAM_T || cs_get_user_team(id) == CS_TEAM_CT)
Tutaj już można wspomóc się zmienną, bo trochę długa linijka wychodzi no ale co tam.
Napisane przez Zuzza
w 25.02.2021 00:46
Nie, absolutnie nie powinno działać tak jak myślisz. Działa tak jak jest zaprogramowane.
if(get_user_flags(id) & FLAGA_USERA && get_user_team(id) == 1 && get_user_team(id) == 2)
Taki oto if oznacza:
Jeżeli gracz ma falage_usera i jest jego drużyna to 1 i jego drużyna to 2
Nie możliwym jest spełnienie warunku bycia w drużynie 1 i bycia w drużynie 2 w tym samym czasie.
To czego szukasz to nie AND tylko OR
Potrzebujesz napisać if który sprawdzi czy gracz posiada flagę i ( drużyna = 1 lub drużyna = 2 )
Ważne jest to aby zrozumieć różnice pomiędzy
"AND" czyli ,,i", "oraz" - &&
a
"OR" czyli "lub" - ||
Taki warunek będzie wyglądać następująco
if( get_user_flags(id) & FLAGA_USERA && ( get_user_team(id) == 1 || get_user_team(id) == 2 ) ) lub: if( get_user_flags(id) & FLAGA_USERA ){ if( get_user_team(id) == 1 || get_user_team(id) == 2 ){ //Tu instrukcje } }
Warunek w warunku to jak AND
Polecam używać zamiast
get_user_flags(id) to: has_flag(id, "abce") has_flag(id, "a")
Napisane przez Obelix
w 25.02.2021 00:25
Napisane przez Zuzza
w 22.02.2021 20:41
formatex(szDay, 90, "| ** Dzien %i - %s ** |^n| > Prowadzacy: Brak < |^n^n^n| > Typ dnia: Normalny < |^n| > Wiezniow: %i/%i < |", jail_day, dni_tygodnia[jail_day%7], ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]);
90 zmień na 200 jak w innych linijkacah tylko pytanie wtedy po co szDay ma 256, skoro i tak wszędzie i tak tylko 200 znaków edytujesz.
formatex(szDay, 90
Napisane przez Roughster
w 19.02.2021 17:47
Nie kopiuj wszystkiego na siłę.
Masz w public menu_admin(id)
menu4, więc wszędzie musi być menu4 i analogicznie w reszcie.
Dodatkowo jak dodajesz nową osobę to musisz przypisać id case, który będzie kierować do public infoX.
Tutaj łap kod z komentarzem:
#include <amxmodx> #include <amxmisc> #include <cstrike> #define PLUGIN "Kontakt Admins" #define VERSION "1.0" #define AUTHOR "Anonymuss" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /kontakt", "menu_kontakt"); } public menu_kontakt(id) { new menu = menu_create("\dKontakt z Adminami:", "menu_case_kontakt") menu_additem(menu, "\d[\r~\rHead\dAdmini\r~\d]", "1", 0) menu_additem(menu, "\d[\r~\dAdmini\r~\d]^n", "2", 0) menu_additem(menu, "\d[\r~\dStraznicy\r~\d]", "3", 0) menu_setprop(menu, MPROP_EXITNAME, "\d| \rWyjdz \d|"); menu_display(id, menu); } public menu_case_kontakt(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1 : menu_wlasciciel(id) case 2 : menu_opiekun(id) case 3 : menu_admin(id) case 4 : info1(id) //case, ktory przypisujesz do konkretnej osoby w tym przypadku "Szefowa: Acnologia" w public menu_wlasciciel(id) case 5 : info2(id) case 6 : info3(id) case 7 : info4(id) } return PLUGIN_HANDLED } public menu_wlasciciel(id) { new menu2 = menu_create("\rHead\dAdmini:", "menu_case_kontakt") menu_additem(menu2, "\rSzefowa\w: Acnologia", "4", 0) //"4" oznacza case 4, ktory kieruje do public info1(id) menu_setprop(menu2, MPROP_EXITNAME, "\d| \rWyjdz \d|") menu_display(id, menu2) } public menu_opiekun(id) { new menu3 = menu_create("\dAdmini:", "menu_case_kontakt") menu_additem(menu3, "\yAdmin\w: smutnyChlopiec", "5", 0) menu_setprop(menu3, MPROP_EXITNAME, "\d| \rWyjdz \d|") menu_display(id, menu3) } public menu_admin(id) { new menu4 = menu_create("\dStraznicy:", "menu_case_kontakt") menu_additem(menu4, "\wStraznik: _0xforestx0_", "6", 0) menu_additem(menu4, "\wStraznik: _0xforestx0_", "7", 0) menu_setprop(menu4, MPROP_EXITNAME, "\d| \rWyjdz \d|") menu_display(id, menu4) } public info1(id) //public, ktory wykona sie po kliknieciu osoby do ktorej zostal przypisany case w tym przypadku "Szefowa: Acnologia" { show_menu(id, 1023, "\rSzefowa\w: Acnologia^n^n\y> \wSteam - \rsimpacnologia^n\y> \wGG - \r66718578^n\y> \wDiscord - \rxanax#1775", -1, "Kontakt"); return PLUGIN_HANDLED; } public info2(id) { show_menu(id, 1023, "\yAdmin\w: smutnyChlopiec^n^n\y> \wSteam - \ysmutny_chlopczyk^n\y> \dGG - \dBrak^n\y> \wDiscord: \ySmutny_Chłopiec#1975", -1, "Kontakt"); return PLUGIN_HANDLED; } public info3(id) { show_menu(id, 1023, "\wStraznik: _0xforestx0_^n^n\y> \wSteam: \dNie podano^n\y> \wGG - \dNie podano^n\y> \wDiscord - 0xforestx0#3521", -1, "Kontakt"); return PLUGIN_HANDLED; } public info4(id) { show_menu(id, 1023, "\wStraznik: _0xforestx0_^n^n\y> \wSteam: \dNie podano^n\y> \wGG - \dNie podano^n\y> \wDiscord - 0xforestx0#3521", -1, "Kontakt"); return PLUGIN_HANDLED; }
Napisane przez Roughster
w 19.02.2021 16:28
#include <amxmodx> #include <amxmisc> #include <cstrike> #define PLUGIN "Kontakt Admins" #define VERSION "1.0" #define AUTHOR "Anonymuss" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /kontakt", "menu_kontakt"); } public menu_kontakt(id) { new menu = menu_create("\dKontakt z Adminami:", "menu_case_kontakt") menu_additem(menu, "\d[\r~\rHead\dAdmini\r~\d]", "1", 0) menu_additem(menu, "\d[\r~\dAdmini\r~\d]^n", "2", 0) menu_additem(menu, "\d[\r~\dStraznicy\r~\d]", "3", 0) menu_setprop(menu, MPROP_EXITNAME, "\d| \rWyjdz \d|"); menu_display(id, menu); } public menu_case_kontakt(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) new key = str_to_num(data) switch(key) { case 1 : menu_wlasciciel(id) case 2 : menu_opiekun(id) case 3 : menu_admin(id) case 4 : info1(id) case 5 : info2(id) case 6 : info3(id) case 7 : info4(id) } return PLUGIN_HANDLED } public menu_wlasciciel(id) { new menu2 = menu_create("\rHead\dAdmini:", "menu_case_kontakt") menu_additem(menu2, "\rSzefowa\w: Acnologia", "4", 0) menu_additem(menu2, "\rSzefowa\w: Acnologia", "5", 0) menu_setprop(menu2, MPROP_EXITNAME, "\d| \rWyjdz \d|") menu_display(id, menu2) } public menu_opiekun(id) { new menu3 = menu_create("\dAdmini:", "menu_case_kontakt") menu_additem(menu3, "\yAdmin\w: smutnyChlopiec", "6", 0) menu_setprop(menu3, MPROP_EXITNAME, "\d| \rWyjdz \d|") menu_display(id, menu3) } public menu_admin(id) { new menu4 = menu_create("\dStraznicy:", "menu_case_kontakt") menu_additem(menu4, "\wStraznik: _0xforestx0_", "7", 0) menu_setprop(menu4, MPROP_EXITNAME, "\d| \rWyjdz \d|") menu_display(id, menu4) } public info1(id) { show_menu(id, 1023, "\rSzefowa\w: Acnologia^n^n\y> \wSteam - \rsimpacnologia^n\y> \wGG - \r66718578^n\y> \wDiscord - \rxanax#1775", -1, "Kontakt"); return PLUGIN_HANDLED; } public info2(id) { show_menu(id, 1023, "\rSzefowa\w: Acnologia^n^n\y> \wSteam - \rsimpacnologia^n\y> \wGG - \r66718578^n\y> \wDiscord - \rxanax#1775", -1, "Kontakt"); return PLUGIN_HANDLED; } public info3(id) { show_menu(id, 1023, "\yAdmin\w: smutnyChlopiec^n^n\y> \wSteam - \ysmutny_chlopczyk^n\y> \dGG - \dBrak^n\y> \wDiscord: \ySmutny_Chłopiec#1975", -1, "Kontakt"); return PLUGIN_HANDLED; } public info4(id) { show_menu(id, 1023, "\wStraznik: _0xforestx0_^n^n\y> \wSteam: \dNie podano^n\y> \wGG - \dNie podano^n\y> \wDiscord - 0xforestx0#3521", -1, "Kontakt"); return PLUGIN_HANDLED; }
Napisane przez Roughster
w 19.02.2021 16:31
Tutaj łap gotowca, ale polecam przeanalizować kod żebyś w przyszłości nie miał problemu z dodaniem nowej osoby