Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Problem z wyświetleniem nicku gracza


  • Zamknięty Temat jest zamknięty
13 odpowiedzi w tym temacie

#1 Andrzejek

    Ucze się :]

  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 22.11.2012 10:47

Witam, mam pewien problem z wyświetleniem nicku gracza tylko wyświetla się nazwa serwera o to funkcja chodzi o nick2:


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
}

  • +
  • -
  • 0

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 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 22.11.2012 20:13

Nie czytałeś widzę mojego poradnika:
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.
speedkill (22.11.2012 20:15):
Tak, get_user_name z indeksem 0 pokaże nazwę serwera ;)

Użytkownik GwynBleidD edytował ten post 22.11.2012 20:31

  • +
  • -
  • 2

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ę.
 
1988650.png?theme=dark


#3 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 23.11.2012 03:28

No mam funkcje, ale nie wiem za bardzo jak to dodać do tego:


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;
}

  • +
  • -
  • 0

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 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 23.11.2012 07:22

Nie możesz robić czegoś takiego
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".
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 23.11.2012 07:42

Z Deathrun_wyścig:
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;
}

  • +
  • -
  • 1

If you can dream it, you can do it.


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 23.11.2012 10:43

No to widzę, że kolega jakoś szczególnie biegły w programowaniu nie jest, więc trzeba więcej pomocy ;)

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 :D
!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT)

nie prościej true? ;)
  • +
  • -
  • 1

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ę.
 
1988650.png?theme=dark


#7 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 23.11.2012 11:44

Ten warunek był z gotowca. Chodzi mi dokładnie o menu które wyświetla wszystkich żyjących graczy z tt oraz nie wyświetla graczy którzy maja juz fd. Po wybraniu gracza wlacza się:


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

  • +
  • -
  • 0

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 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 25.11.2012 08:34

O takie coś chodzi ?
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;
}

  • +
  • -
  • 0

If you can dream it, you can do it.


#9 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 25.11.2012 12:24

A jak gracz juz ma freedaya to tez go pokazuje?
  • +
  • -
  • 0

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 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 25.11.2012 12:30

Która zmienna odpowiada za to, czy gracz ma freeday'a czy nie ;) ?
  • +
  • -
  • 0

If you can dream it, you can do it.


#11 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 25.11.2012 12:35

chyba ta:
blokada[i] = true;


Ale zawsze można zrobić osobna

Użytkownik Andrzejek edytował ten post 25.11.2012 12:36

  • +
  • -
  • 0

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 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

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;

}

  • +
  • -
  • 1

If you can dream it, you can do it.


#13 Andrzejek

    Ucze się :]

  • Autor tematu
  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 25.11.2012 12:54

Dzięki masz +

Można zamknać

Użytkownik Andrzejek edytował ten post 25.11.2012 13:20

  • +
  • -
  • 0

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 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 25.11.2012 15:39

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

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