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

iMessage - dodanie informacje o rankingu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
10 odpowiedzi w tym temacie

#1 MrStrajker

    Zaawansowany

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 12.02.2023 17:37

Witam,

 

Czy byłby ktoś tak dobry i dodał do pluginu imessage w wiadomości hud informacje o aktualnej pozycji w rankingu danego gracza oraz jej całkowitą ilość?

Aktualnie wygląda to tak:

amx_imessage "Witamy na serwerze %hostname%\nZyczmy udanej zabawy!" "000100255"

A potrzebowałbym coś na zasadzie:

amx_imessage "Witamy na serwerze %hostname%\nTwoj ranking wynosi %rank% na %rankmax% graczy\nZyczymy udanej zabawy!" "000100255"

Załączone pliki


  • +
  • -
  • 0

#2 Boski Z Polski

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:178
  • Steam:steam
  • Imię:Olgierd
  • Lokalizacja:Leszno
Offline

Napisano 12.02.2023 19:34

Pewnie można byłoby inaczej pobrać index gracza, do której idzie wiadomość.

 

Załączone pliki


  • +
  • -
  • 1

#3 MrStrajker

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 12.02.2023 19:41

%rankmax% wyświetla poprawnie natomiast przy %rank% jest 0


  • +
  • -
  • 0

#4 Boski Z Polski

    Profesjonalista

  • Użytkownik

Reputacja: 60
Pomocny

  • Postów:178
  • Steam:steam
  • Imię:Olgierd
  • Lokalizacja:Leszno
Offline

Napisano 12.02.2023 20:37

%rankmax% wyświetla poprawnie natomiast przy %rank% jest 0

Interesujące. U mnie na serwerze wszystko normalnie pokazuje. Pozdrawiam 


  • +
  • -
  • 0

#5 MrStrajker

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 13.02.2023 04:13

No to nie mam pojęcia co jest nie tak, ponieważ testowałem na dwóch różnych klientach i u mnie %rank% wyświetla jako 0


  • +
  • -
  • 0

#6 PANDA_2zl

    Guru

  • Power User

Reputacja: 173
Profesjonalista

  • Postów:712
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 14.02.2023 16:18

A głupie pytanie, byłeś wogóle w rankingu? Czy zmieniałes konto i po wbiciu od razu sprawdzałeś?
  • +
  • -
  • 0

#7 MrStrajker

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 14.02.2023 16:46

A głupie pytanie, byłeś w ogóle w rankingu? Czy zmieniałes konto i po wbiciu od razu sprawdzałeś?


Na pierwszym koncie steamowym jestem na 2 miejscu spośród tysiąca graczy a na drugim nonsteamowym również wyświetla się 0 pomimo tego, że jestem wysoko w ranku.
  • +
  • -
  • 0

#8 MrStrajker

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 14.02.2023 18:51

Zresetowałem całkowicie ranking na serwerze i teraz %rank% pokazuje, lecz pokazuje różne rankingi graczy którzy są aktualnie na serwerze.

Czyli jeśli jestem ja i kolega na serwerze to wyświetla na zmianę w wiadomości raz jego rank raz mój.


Użytkownik MrStrajker edytował ten post 14.02.2023 19:10

  • +
  • -
  • 0

#9 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 14.02.2023 19:21

Musisz przypisać identyfikator do funkcji infoMessage() bo jest ona wywoływana taskiem więc użycie pętli for może nie być skutecznym rozwiązaniem w tym przypadku.
 

Zamień:

if (freq_im > 0.0)
set_task(freq_im, "infoMessage", 12345)

Na:
 

if (freq_im > 0.0) {
for(new i=1; i<=32; i++) {
if(!is_user_connected(i) || is_user_hltv(i)) continue;
set_task(freq_im, "infoMessage", i+12345)
}
}

Oraz te podmień te funkcje
 

public infoMessage(id)
{
	id -= 12345
	if (g_Current >= g_MessagesNum)
		g_Current = 0
	
	// No messages, just get out of here
	if (g_MessagesNum==0)
	{
		return;
	}
	
	new values[3];
	new Message[384];
	
	ArrayGetString(g_Messages, g_Current, Message, charsmax(Message));
	ArrayGetArray(g_Values, g_Current, values);
	
	new hostname[64];
	
	get_cvar_string("hostname", hostname, charsmax(hostname));
	replace(Message, charsmax(Message), "%hostname%", hostname);
	
	new rankmax[10];
	formatex(rankmax, charsmax(rankmax), "%i", get_statsnum());
	replace(Message, charsmax(Message), "%rankmax%", rankmax);
	
	set_hudmessage(values[0], values[1], values[2], X_POS, Y_POS, 0, 0.5, HOLD_TIME, 2.0, 2.0, -1);
		
	new stats[8], bodyhits[8] //tworzymy tablice na dane statystyk
	new pos = get_user_stats(id, stats, bodyhits) // pobieramy statysytki gracza
		
	new rank[10];
	formatex(rank, charsmax(rank), "%i", pos);
	replace(Message, charsmax(Message), "%rank%", rank);
		
	show_hudmessage(i, "%s", Message);
	
	client_print(0, print_console, "%s", Message);
	++g_Current;
	
	new Float:freq_im = get_pcvar_float(amx_freq_imessage);
	
	if (freq_im > 0.0)
		set_task(freq_im, "infoMessage", id+12345);
}

Powyższa funkcja jest modyfikacją modyfikacji boskiego wiec nie gwarantuje ze sie skompiluje, ale jest przykładem jak to powinno działać


Użytkownik Deus Vult edytował ten post 14.02.2023 19:28

  • +
  • -
  • 1

#10 MrStrajker

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:109
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 16.02.2023 10:39

Zeedytowałem plugin i chyba coś poknociłem, bo występują dwa błędy:

1) Po zmianie mapy/restarcie serwera pierwsza wiadomość wyświetla na serwerze zamiast prawidłowego ranku wyświetla 0 a każda kolejna pojawiająca się wiadomość wyświetla już poprawnie rank.

2) Mam dodane kilka wiadomości które powinny jedna po drugiej się pojawiać natomiast często jest tak, że pojawiają się wszystkie na raz i nachodzą na siebie.

Załączone pliki


  • +
  • -
  • 0

#11 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 16.02.2023 11:39

1) ranking ładuje się dopiero po odrodzeniu gracza więc, jeżeli dołączy i mu się wyświetli wiadomość przed respawnem to ranking będzie zawsze 0. Można to łatwo ominąć ustawiając start pierwszej wiadomości gdy gracz się odrodzi. (event)
2) Zamień show_hudmessage(i, "%s", Message); zamiast i wpisz id

Użytkownik Deus Vult edytował ten post 16.02.2023 11:43

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych