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

Prefixy po aktualizacji


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

#1 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 11.07.2017 18:03

Witam. Jak zapewne wszyscy zauważyli, po wczorajszej aktualizacji nie działają poprawnie prefixy przed nickami. Niezależnie od wersji serwera.

Do tej pory korzystałem z kodu DarkGL https://amxx.pl/topi...-przed-nickiem/

Wiadomo już może jak rozwiązać problem ? :)


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#2 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 11.07.2017 18:24

ruskie jakieś łatki w własnym colorchacie robili wiec pewnie tam problem :V


  • +
  • -
  • 0

#3 NEQU#

    Wszechpomocny

  • Użytkownik

Reputacja: 54
Pomocny

  • Postów:363
  • GG:
Offline

Napisano 11.07.2017 18:27

Działać działa po wywaleniu 1 rzeczy, ale jest problem z kolorami. Próbowałem na różne sposoby, jednak za każdym razem nick pozostaje w kolorze poprzedniej informacji(wyjątek pisząć na say_team, wtedy wszystko działa tak jak powinno)

 

edit. Kiedy gracz jest martwy też wszystko działa.


Użytkownik NEQU# edytował ten post 11.07.2017 18:29

  • +
  • -
  • 0

#4 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 11.07.2017 18:35

ruskie jakieś łatki w własnym colorchacie robili wiec pewnie tam problem :V

Z tego co widzę to całkowicie ignoruje ^x01 (kolor żółty)


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#5 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 11.07.2017 18:47

Nie wiem czy to też przez te aktualizację ale amxx na New Game przestał mi działać chociaż przed aktualizacją działał bezbłędnie. Nawet wgranie go na nowo nie pomogło (wcześniej zawsze pomagało). Tak w ogóle ludzie ode mnie z forum skarżą się na ten sam problem że zamiast nicku mają "s1" a zamiast wiadomości "s2".


  • +
  • -
  • 0

#6 NEQU#

    Wszechpomocny

  • Użytkownik

Reputacja: 54
Pomocny

  • Postów:363
  • GG:
Offline

Napisano 11.07.2017 18:52

 

ruskie jakieś łatki w własnym colorchacie robili wiec pewnie tam problem :V

Z tego co widzę to całkowicie ignoruje ^x01 (kolor żółty)

 

Nie do końca.

 

Mi w ten sposób działa tak jak powinien. Mały wyjątek kolor nicku.. działa jedynie gdy jesteś martwy lub piszesz na say_team może ktoś coś wymyśli.

public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(!is_user_connected(id))      return PLUGIN_CONTINUE;
	
	new szTmp[256],szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
	
	new szPrefix[64]
	
	if(zp_class_nemesis_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Nemesis - %d]^x01",PlayerLevel[id])
	else if(zp_class_assassin_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Assassin - %d]^x01",PlayerLevel[id])
	else if(zp_class_survivor_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Survivor - %d]^x01",PlayerLevel[id])
	else if(zp_class_sniper_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Sniper - %d]^x01",PlayerLevel[id])
	else if(zp_core_is_zombie(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Zombie - %d]^x01",PlayerLevel[id])
	else
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Czlowiek - %d]^x01",PlayerLevel[id])
	
	
	add(szTmp2,charsmax(szTmp2),szPrefix);
	add(szTmp2,charsmax(szTmp2),szTmp);
	
	set_msg_arg_string(2,szTmp2);
	
	return PLUGIN_CONTINUE;
}


Użytkownik NEQU# edytował ten post 11.07.2017 19:04

  • +
  • -
  • 1

#7 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 11.07.2017 19:13

 

 

ruskie jakieś łatki w własnym colorchacie robili wiec pewnie tam problem :V

Z tego co widzę to całkowicie ignoruje ^x01 (kolor żółty)

 

Nie do końca.

 

Mi w ten sposób działa tak jak powinien. Mały wyjątek kolor nicku.. działa jedynie gdy jesteś martwy lub piszesz na say_team może ktoś coś wymyśli.

public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(!is_user_connected(id))      return PLUGIN_CONTINUE;
	
	new szTmp[256],szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
	
	new szPrefix[64]
	
	if(zp_class_nemesis_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Nemesis - %d]^x01",PlayerLevel[id])
	else if(zp_class_assassin_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Assassin - %d]^x01",PlayerLevel[id])
	else if(zp_class_survivor_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Survivor - %d]^x01",PlayerLevel[id])
	else if(zp_class_sniper_get(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Sniper - %d]^x01",PlayerLevel[id])
	else if(zp_core_is_zombie(id))
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Zombie - %d]^x01",PlayerLevel[id])
	else
		formatex(szPrefix,charsmax( szPrefix ),"^x04[Czlowiek - %d]^x01",PlayerLevel[id])
	
	
	add(szTmp2,charsmax(szTmp2),szPrefix);
	add(szTmp2,charsmax(szTmp2),szTmp);
	
	set_msg_arg_string(2,szTmp2);
	
	return PLUGIN_CONTINUE;
}

 

Na rozwiązanie ad hoc się nada ;)

 

//edit Jednak problem pojawia się gdy użyjemy trzeciego koloru w stringu, a nie konkretnie żółtego.


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#8 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 11.07.2017 19:21

Nie działa i raczej nie będzie działało ( przy zastosowaniu podobnej metody ).

Rozchodzi się o problem pobrania 'podstringów' ze stringa, którym jest wiadomość.

 

Zaczerpnięta z Internetu lista wiadomości na czacie powinna trochę rozjaśnić o czym mowa:

"Game_radio"               " %s1 (RADIO): %s2"
"Cstrike_Chat_CT"            " (Counter-Terrorist) %s1 :  %s2"
"Cstrike_Chat_T"            " (Terrorist) %s1 :  %s2"
"Cstrike_Chat_CT_Dead"            " *DEAD*(Counter-Terrorist) %s1 :  %s2"
"Cstrike_Chat_T_Dead"            " *DEAD*(Terrorist) %s1 :  %s2"
"Cstrike_Chat_Spec"            " (Spectator) %s1 :  %s2"
"Cstrike_Chat_All"            " %s1 :  %s2"
"Cstrike_Chat_AllDead"            " *DEAD* %s1 :  %s2"
"Cstrike_Chat_AllSpec"            " *SPEC* %s1 :  %s2"
"Cstrike_Name_Change"            " * %s1 changed name to %s2"

Jak widać, powyżej jest dosyć znajoma forma formatu stringa zawarta w pluginie Dark'a.

Problem dotyczy znaków formatu '%s1' i '%s2' co oznacza kolejno nick oraz treść wiadomości - tego się już chyba wszyscy domyślili.

 

Zastanawiam się, czy cała sprawa jest związana z tą częścią update (żródło http://steamcommunit...1455081754809):

Fixed crash when entering certain malformed strings into the game console. Thanks to Marshal Webb from BackConnect, Inc for reporting this.

Niby say korzysta z messagemode, ale nijak się ma do wyświetlania wiadomości...

 

Możnaby symulować ColorChatem wiadomości od graczy, jednak jeżeli ten też nie działa to na kolorek na czacie sobie trochę poczekamy...


  • +
  • -
  • 0

#9 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 11.07.2017 19:41

Znaki specjalne są kompletnie ignorowane czy jakoś inaczej to działa ? Nie mam obecnie możliwości przetestować tego nigdzie


  • +
  • -
  • 0

#10 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 11.07.2017 20:05

Znaki specjalne są kompletnie ignorowane czy jakoś inaczej to działa ? Nie mam obecnie możliwości przetestować tego nigdzie

Z tego co teraz zaobserwowałem to tak:

- 2 kolory OK

- Przy 3 kolorach ignoruje ostatni kolor lub żółty (???) np.

 

^x04 ^x01 ^x04 daje cały tekst zielony

^x01 ^x04 ^x02 daje żółty i dalej tylko zielony


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#11 Informatyk.exe

    Życzliwy

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:25
  • Lokalizacja:Andrychów
Offline

Napisano 11.07.2017 20:12

Nie sprawdzałem dokładnie ale po usunięciu " ^x01" i pozostawieniu jedynie " %s1 : %s2"  w przypadku vipa wyświetla mi:

"[VIP] %s1 : %s2" .

public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(is_user_connected(id) && g_Vip[id]){
		new szTmp[256],szTmp2[256];
		get_msg_arg_string(2,szTmp, charsmax(szTmp))
		
		new szPrefix[64] = "[VIP]";
		
		if(!equal(szTmp,"#Cstrike_Chat_All")){
			add(szTmp2,charsmax(szTmp2),szPrefix);
			add(szTmp2,charsmax(szTmp2)," ");
			add(szTmp2,charsmax(szTmp2),szTmp);
		}
		else{
			add(szTmp2,charsmax(szTmp2),szPrefix);
			add(szTmp2,charsmax(szTmp2),"%s1 :  %s2");
		}
		set_msg_arg_string(2,szTmp2);
	}
	return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1

qomUOaH.png


#12 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 11.07.2017 20:40

Znaki specjalne są kompletnie ignorowane czy jakoś inaczej to działa ?


Dokładnie (przykład kolegi wyżej).
Wschodni przyjaciele rozwiązują problem poprzez formatowanie wiadomości i wyswietlanie jej ColorChatem (ręcznie dobierając odbiorców itp).
  • +
  • -
  • 0

#13 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 12.07.2017 01:09

Argumenty są po prostu ignorowane napewno jest to związane z updatem czyżby istniał jakiś exploit wykorzystujący argumenty message i formatowania stringu o którym nie było wiadomo ;) albo zmienili to tylko o tak.

 

Metoda ColorChat może nie współgrać z niektórymi plugami przy metodzie modyfikowania message plugin był transparentny dla innych pluginów.

 

Pliki w kliencie steam również nie wyglądają na modyfikowane

"Game_radio"					"%s1 (RADIO): %s2"
"Cstrike_Chat_CT"				"(Counter-Terrorist) %s1 :  %s2"
"Cstrike_Chat_T"				"(Terrorist) %s1 :  %s2"
"Cstrike_Chat_CT_Dead"				"*DEAD*(Counter-Terrorist) %s1 :  %s2"
"Cstrike_Chat_T_Dead"				"*DEAD*(Terrorist) %s1 :  %s2"
"Cstrike_Chat_Spec"				"(Spectator) %s1 :  %s2"
"Cstrike_Chat_All"				"%s1 :  %s2"
"Cstrike_Chat_AllDead"				"*DEAD* %s1 :  %s2"
"Cstrike_Chat_AllSpec"				"*SPEC* %s1 :  %s2"
"Cstrike_Name_Change"				"* %s1 changed name to %s2"

PS. Nie spodziewałem się ze po 6 lat od publikacji trzeba będzie aktualizować kod :D


  • +
  • -
  • 2

#14 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 12.07.2017 08:02

Szybkim rozwiązaniem będzie napisanie API chatu przechwytującego wiadomość i wywołującego forward z jej treścią. Dzięki temu można uzyskać pełną kompatybilność z innymi pluginami (po drobnych modyfikacjach). Ostatecznie, zmieniona w forwardzie wiadomość mogłaby być rozesłana poprzez ColorChat do odpowiednich graczy...
  • +
  • -
  • 0

#15 Informatyk.exe

    Życzliwy

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:25
  • Lokalizacja:Andrychów
Offline

Napisano 12.07.2017 09:56

Więc jak mi udało się osiągnąć sukces częściowo. 

Zastosowałem taki kod do SVIP'a:

 

public handleSayText(msgId,msgDest,msgEnt){
new id = get_msg_arg_int(1);


if(!is_user_connected(id))      return PLUGIN_CONTINUE;


new szTmp[256],szTmp2[256];
get_msg_arg_string(2,szTmp, charsmax( szTmp ) )


new szPrefix[64]


if(is_user_connected(id) && g_Vip[id])
formatex(szPrefix,charsmax( szPrefix ),"^x04[SVIP]^x03")
else
formatex(szPrefix,charsmax( szPrefix ),"^x04[GRACZ]^x03")

add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2),szTmp);


set_msg_arg_string(2,szTmp2);


return PLUGIN_CONTINUE;
}

Minus był taki że nick i treść wiadomości miałem w kolorze teamu. 

Wiec odpaliłem cstrike_english i edytowałem go tak:

"Cstrike_Chat_All"				"[STX]%s1[SOH] :  %s2"

I wszystko śmiga, nie wiem jedynie jak to wymusić u innych graczy. 

 

Edit:.

Wstawiam screena jak ten plik wygląda dokładnie u mnie:

jjXvECH.png

 


Użytkownik Informatyk.exe edytował ten post 12.07.2017 09:59

  • +
  • -
  • 0

qomUOaH.png


#16 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 12.07.2017 10:31

Edycja plików graczy nie wchodzi w grę.
 


  • +
  • -
  • 0

#17 Mavxvx

    Profesjonalista

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:151
  • GG:
Offline

Napisano 12.07.2017 10:39

Napisze ktoś jak przerobić te prefixy żeby wszystko działało poprawnie?

http://darkgl.pl/201...w-say-cod-nowy/

 

również chcę się zapytać czy generator vipa amxx posiada już załatany ten błąd z prefix ?


  • +
  • -
  • 0

Jeżeli pomogłem rozwiązać Twój problem daj mi Reputację na ;) 
 
Wymienię środki z zabijaki na psc/doładownie
*KLIKNIJ ABY DOWIEDZIEĆ SIĘ WIĘCEJ*


#18 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 12.07.2017 14:24

*
Popularny

@UP

Jeżeli można - niech ktoś podmieni kod wyżej i usunie ten post.

Poprawka na przekroczenie limitu 191 znaków:

public handleSayText(msgId,msgDest,msgEnt){	

    new id = get_msg_arg_int(1);
    
    if(!is_user_connected(id))      return PLUGIN_CONTINUE;
    
    new szTmp[192], szTmp2[192];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    new szPrefix[64] = "^x04[Test]";
    
    if(!equal(szTmp,"#Cstrike_Chat_All")){
        add(szTmp2, charsmax(szTmp2), "^x01");
        add(szTmp2, charsmax(szTmp2), szPrefix);
        add(szTmp2, charsmax(szTmp2), " ");
        add(szTmp2, charsmax(szTmp2), szTmp);
    }
    else{
        new szPlayerName[64];
        get_user_name(id, szPlayerName, charsmax(szPlayerName));
        
        get_msg_arg_string(4, szTmp, charsmax(szTmp)); //4. argument zawiera treść wysłanej wiadomości
        set_msg_arg_string(4, ""); //Musimy go wyzerować, gdyż gra wykorzysta wiadomość podwójnie co może skutkować crash'em 191+ znaków.
    
        add(szTmp2, charsmax(szTmp2), "^x01");
        add(szTmp2, charsmax(szTmp2), szPrefix);
        add(szTmp2, charsmax(szTmp2), "^x03 ");
        add(szTmp2, charsmax(szTmp2), szPlayerName);
        add(szTmp2, charsmax(szTmp2), "^x01 :  ");
        add(szTmp2, charsmax(szTmp2), szTmp)
    }
    
    set_msg_arg_string(2, szTmp2);
    
    return PLUGIN_CONTINUE;
}

Użytkownik _McHappy edytował ten post 12.07.2017 14:29

  • +
  • -
  • 6

#19 Mavxvx

    Profesjonalista

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:151
  • GG:
Offline

Napisano 12.07.2017 14:27

Kolego wyżej spróbowałbyś przerobić ten plugin? 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "Prefixy COD"
#define VERSION "1.0"
#define AUTHOR "DarkGL"

new pCvarPrefixy;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_message(get_user_msgid("SayText"),"handleSayText");
	
	pCvarPrefixy	=	register_cvar("cod_prefix","3");
}

public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(!is_user_connected(id))      return PLUGIN_CONTINUE;
	
	new szTmp[256],szTmp2[256],szTmp3[256];
	get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
	
	new szPrefix[64]
	
	switch(get_pcvar_num(pCvarPrefixy)){
		case 1:{
			cod_get_class_name(cod_get_user_class(id),szTmp3,charsmax( szTmp3 ))
			formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",szTmp3);
		}
		case 2:{
			formatex(szPrefix,charsmax( szPrefix ),"^x04[%d]",cod_get_user_level(id));
		}
		case 3:{
			cod_get_class_name(cod_get_user_class(id),szTmp3,charsmax( szTmp3 ))
			formatex(szPrefix,charsmax( szPrefix ),"^x04[%s - %d]",szTmp3,cod_get_user_level(id));
		}
	}
	
	if(!equal(szTmp,"#Cstrike_Chat_All")){
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2)," ");
		add(szTmp2,charsmax(szTmp2),szTmp);
	}
	else{
		add(szTmp2,charsmax(szTmp2),szPrefix);
		add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 :  %s2");
	}
	
	set_msg_arg_string(2,szTmp2);
	
	return PLUGIN_CONTINUE;
}

Bardzo potrzebuję a nie potrafię


  • +
  • -
  • 0

Jeżeli pomogłem rozwiązać Twój problem daj mi Reputację na ;) 
 
Wymienię środki z zabijaki na psc/doładownie
*KLIKNIJ ABY DOWIEDZIEĆ SIĘ WIĘCEJ*


#20 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 12.07.2017 14:35

Jeżeli powyższy kod Ci działa - podmień na tę funkcję:

Spoiler

Użytkownik _McHappy edytował ten post 12.07.2017 14:37

  • +
  • -
  • 3




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

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