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.
|




Kobieta
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 ![]()
kontakt_vanilla.sma 2,67 KB 54 Ilość pobrań
kontakt_vanilla.amxx



Moja zawartość