stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
{
static i, name[32], num[5], menu, menuname[32]
vformat(menuname, charsmax(menuname), title, 7)
menu = menu_create(menuname, callback)
for(i = 1; i <= g_MaxClients; i++)
{
if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
continue
if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num, 0)
}
}
menu_display(id, menu)
}
public Menu_FreeDay(id)
{
if(prowadzacy_id == id && prowadzacy == 1 && is_user_alive(id))
menu_players(id, CS_TEAM_T, id, 1, "wybor_gracza_freeday", "\yWybierz gracza:")
return PLUGIN_CONTINUE
}
public wybor_gracza_freeday(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
new target[33], body
get_user_aiming(id, target[id], body)
get_user_name(id, nick, 31)
get_user_name(target[id], nick2, 31)
set_hudmessage(0, 255, 0, -1.0, 0.24, 0, 6.0, 5.0)
show_hudmessage(0, "%s dal FreeDay'a wiezniowi %s", nick, nick2)
blokada[target[id]] = true
freeday = true
entity_set_int(target[id], EV_INT_skin, 3)
return PLUGIN_HANDLED
}
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
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.
|
[ROZWIĄZANE] Problem z wyświetleniem nicku gracza
#1
Napisano 22.11.2012 10:47
Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...
Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104
#2
Napisano 22.11.2012 20:13
http://amxx.pl/topic...tworzenia-menu/
Tam masz ładny przykład jak dobrze zrobić menu z graczami. Możesz dodać swoje warunki tam i wszystko będzie ładnie działać. Twój sposób jest trochę na "dziko", zobacz jakie błędy popełniasz.
get_user_name z podanym 0 jako indeks powinno pokazać nazwę serwera... Tak mi się przynajmniej wydaje, sprawdź to
Więc skoro to prawda, to gdzieś musiało Ci się 0 wkraść do get_user_name.
Użytkownik GwynBleidD edytował ten post 22.11.2012 20:31
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
#3
Napisano 23.11.2012 03:28
public show_przelew(id, wartosc) {
new menu = menu_create("Wybierz gracza do przelania kasy", "handle_przelew");
new players[32], num;
new name[32], info[3];
get_players(players, num);
for(new i=0; i<num; ++i) {
get_user_name(players[i], name, 31);
info[0] = wartosc;
info[1] = players[i];
info[2] = get_user_userid(players[i]);
menu_additem(menu, name, info);
}
menu_display(id, menu);
}
public handle_przelew(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new info[3], access, callback;
menu_item_getinfo(menu, item, access, info, 3,_, _, callback);
if(is_user_connected(info[0]) && info[2] == get_user_userid(info[0]))
przelej_kase(id, info[1], info[0]);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...
Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104
#4
Napisano 23.11.2012 07:22
info[0] = wartosc;
wartość zapewne może przyjmować spore wartości i właśnie przy tych większych wartościach będzie to źle działać, bo 3 parametr "menu_additem" ma ograniczenia i większych liczb jak 127 nie przyjmie, a raczej powyżej takiej liczby, będą działy się "cuda".
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
#5
Napisano 23.11.2012 07:42
public ShowMenu(id){ new Menu = menu_create("Wybierz gracza:", "MenuChoose"); new szBuffer[2][64]; for(new i = 1; i < 33; i++) { if(is_user_alive(i)){ get_user_name(i, szBuffer[0], 63); num_to_str(i, szBuffer[1], 63); menu_additem(Menu, szBuffer[0], szBuffer[1]); } } menu_setprop(Menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, Menu); } public MenuChoose(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } new iAccess, i, iCallBack; new szInfo[64]; menu_item_getinfo(menu, item, iAccess, szInfo, 63, _, _, iCallBack); i = str_to_num(szInfo); // id wybranej osoby if(is_user_alive(i)){ //Kod } menu_destroy(menu); return PLUGIN_HANDLED; }
If you can dream it, you can do it.
#6
Napisano 23.11.2012 10:43
Zgadzam się z kol. sebul, to nie będzie działać jak za id, userid albo wartosc podstawi się zbyt dużą liczbę... Ale i na to jest obejście, można podzielić liczbę na kilka mniejszych. Poprawiony kod z Twoimi warunkami:
stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
{
new menu, menuname[32]
vformat(menuname, charsmax(menuname), title, 7)
menu = menu_create(menuname, callback)
new players[32], num;
new name[32], info[4];
get_players(players, num);
for(new i=0; i<num; ++i) {
if(alive && !is_user_alive(i))
continue;
if(skip == i)
continue;
if(cs_get_user_team(i) != team)
continue;
get_user_name(players[i], name, 31);
info[0] = players[i];
new userid = get_user_userid(players[i]);
info[1] = userid%256;
info[2] = userid/256;
info[3] = 0; // musimy udawać, że to string, więc null na końcu
menu_additem(menu, name, info);
}
menu_display(id, menu);
}
PS. fajny warunek
!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT)
nie prościej true?
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
#7
Napisano 23.11.2012 11:44
get_user_name(id, nick, 31)
get_user_name(target[id], nick2, 31)
set_hudmessage(0, 255, 0, -1.0, 0.24, 0, 6.0, 5.0)
show_hudmessage(0, "%s dal FreeDay'a wiezniowi %s", nick, nick2)
blokada[target[id]] = true
freeday = true
entity_set_int(target[id], EV_INT_skin, 3)
Użytkownik Andrzejek edytował ten post 23.11.2012 11:45
Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...
Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104
#8
Napisano 25.11.2012 08:34
public ShowMenu(id){ new Menu = menu_create("Wybierz gracza:", "MenuChoose"); new szBuffer[2][64]; for(new i = 1; i < 33; i++){ if(is_user_alive(i) && get_user_team(i) == 1){ get_user_name(i, szBuffer[0], 63); num_to_str(i, szBuffer[1], 63); menu_additem(Menu, szBuffer[0], szBuffer[1]); } } menu_setprop(Menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, Menu); } public MenuChoose(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } new iAccess, i, iCallBack; new szInfo[64]; menu_item_getinfo(menu, item, iAccess, szInfo, 63, _, _, iCallBack); i = str_to_num(szInfo); // id wybranej osoby if(is_user_alive(i) && get_user_team(i) == 1){ //Kod dla wybranego gracza np. set_user_health(i, 120); new g_Name[2][64]; get_user_name(id, g_Name[0], 63); get_user_name(i, g_Name[1], 63); set_hudmessage(0, 255, 0, -1.0, 0.24, 0, 6.0, 5.0); show_hudmessage(0, "%s dal FreeDay'a wiezniowi %s", g_Name[0], g_Name[1]); blokada[i] = true; freeday = true; entity_set_int(i, EV_INT_skin, 3); } menu_destroy(menu); return PLUGIN_HANDLED; }
If you can dream it, you can do it.
#9
Napisano 25.11.2012 12:24
Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...
Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104
#10
Napisano 25.11.2012 12:30
If you can dream it, you can do it.
#11
Napisano 25.11.2012 12:35
blokada[i] = true;
Ale zawsze można zrobić osobna
Użytkownik Andrzejek edytował ten post 25.11.2012 12:36
Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...
Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104
#12
Napisano 25.11.2012 12:39
public ShowMenu(id){ new Menu = menu_create("Wybierz gracza:", "MenuChoose"); new szBuffer[2][64]; for(new i = 1; i < 33; i++){ if(is_user_alive(i) && get_user_team(i) == 1 && !blokada[i]){ get_user_name(i, szBuffer[0], 63); num_to_str(i, szBuffer[1], 63); menu_additem(Menu, szBuffer[0], szBuffer[1]); } } menu_setprop(Menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, Menu); } public MenuChoose(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } new iAccess, i, iCallBack; new szInfo[64]; menu_item_getinfo(menu, item, iAccess, szInfo, 63, _, _, iCallBack); i = str_to_num(szInfo); // id wybranej osoby if(is_user_alive(i) && get_user_team(i) == 1 && !blokada[i]){ //Kod dla wybranego gracza np. set_user_health(i, 120); new g_Name[2][64]; get_user_name(id, g_Name[0], 63); get_user_name(i, g_Name[1], 63); set_hudmessage(0, 255, 0, -1.0, 0.24, 0, 6.0, 5.0); show_hudmessage(0, "%s dal FreeDay'a wiezniowi %s", g_Name[0], g_Name[1]); blokada[i] = true; freeday = true; entity_set_int(i, EV_INT_skin, 3); } menu_destroy(menu); return PLUGIN_HANDLED; }
If you can dream it, you can do it.
#13
Napisano 25.11.2012 12:54
Można zamknać
Użytkownik Andrzejek edytował ten post 25.11.2012 13:20
Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...
Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104
#14
Napisano 25.11.2012 15:39
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych