←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Prefixy po aktualizacji

  • +
  • -
Vakos - zdjęcie Vakos 12.07.2017

 

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

 

Sprawdzone. Jak na razie działa :)

Odpowiedz

  • +
  • -
Vakos - zdjęcie Vakos 12.07.2017

public handleSayText(msgId,msgDest,msgEnt)
{
	new id = get_msg_arg_int(1);
	
	if(!is_user_connected(id) && user_gang[id])   
	return PLUGIN_CONTINUE;
	{
		new szTmp[192], szTmp2[192];
		get_msg_arg_string(2, szTmp, charsmax(szTmp));
		
		new szInt[10], szPrefix[64], szPrefix2[64];
		num_to_str(user_gang[id], szInt, 9);
		TrieGetString(gnGangName, szInt, szPrefix2, 11);
		
		formatex(szPrefix,charsmax( szPrefix ),"^x01*^x03[%s]^x01*",szTmp2);
		
		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
	}
}

Dodałem prefix do gangów, lecz po dodaniu jeżeli ktoś nie posiada gangu wyskakuje *[]* Nick

Może ktoś pomóc?


Użytkownik Vakos edytował ten post 12.07.2017 17:45
Odpowiedz

  • +
  • -
Informatyk.exe - zdjęcie Informatyk.exe 12.07.2017

 

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

 

Widać wystarczyło w tak prosty sposób, działa wszystko. 

Plus dla Ciebie. 

Odpowiedz

  • +
  • -
Gift`akaCheater - zdjęcie Gift`akaCheater 12.07.2017

Mógłby ktoś zrobić mi ten plugin? Dodaję ten kod co wyżej lecz dalej nie działa. Zamiast nicków jest napis "s" bez treści wiadomości.

 

Załączone pliki

Odpowiedz

  • +
  • -
Informatyk.exe - zdjęcie Informatyk.exe 12.07.2017

A tu kod konkretnie pod VIP'a / SVIp'a . 

public handleSayText(msgId,msgDest,msgEnt){	

    new id = get_msg_arg_int(1);
    
    if(is_user_connected(id) && g_Vip[id]){  
    
    new szTmp[192], szTmp2[192];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    new szPrefix[64] = "^x04[VIP]";
    
    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;
}
Odpowiedz

  • +
  • -
Lizka - zdjęcie Lizka 12.07.2017

Łapcie poprawkę, liczę na Repke :)

Proszę usunąć jeśli może ktoś odebrać to jako spam ale tu mam trochę więcej.

http://paintballmod....tualizacji_5050

Załączone pliki


Użytkownik Lizka edytował ten post 12.07.2017 21:46
Odpowiedz

  • +
  • -
_McHappy - zdjęcie _McHappy 12.07.2017

Cała filozofia tkwi w ręcznym formatowaniu wiadomości, zamiast używania pre-formatowanych zapisów klienta. Aktualizacja odrzuciła kompatybilność wsteczną dla wiadomości SayText oraz TxtMsg.

Oficjalny raport błędu: https://github.com/V...ife/issues/1819
Użytkownik _McHappy edytował ten post 12.07.2017 23:02
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 13.07.2017

Zaktualizowałem kod w poradniku

Odpowiedz

  • +
  • -
Gift`akaCheater - zdjęcie Gift`akaCheater 13.07.2017

https://forums.allie...ad.php?t=173113

 

dałby rade ktoś zaaktualizować kod?

Odpowiedz

  • +
  • -
adam1924 - zdjęcie adam1924 13.07.2017

Ja żadnego pluginu nie przerabiałem tylko dodałem nowy plugin pod ; Chat / Messages 
Problem na serwerze się rozwiązał. https://forums.allie...806#post2534806Tutaj macie plugin który wgrałem i działa.

Odpowiedz

  • +
  • -
vanillah - zdjęcie vanillah 13.07.2017

Ja żadnego pluginu nie przerabiałem tylko dodałem nowy plugin pod ; Chat / Messages 
Problem na serwerze się rozwiązał. https://forums.allie...806#post2534806Tutaj macie plugin który wgrałem i działa.

zacznie ci bugowac 

Odpowiedz

  • +
  • -
_McHappy - zdjęcie _McHappy 13.07.2017

Ja żadnego pluginu nie przerabiałem tylko dodałem nowy plugin pod ; Chat / Messages 
Problem na serwerze się rozwiązał. https://forums.allie...806#post2534806Tutaj macie plugin który wgrałem i działa.

 

Powiem tak, łatka z podanego forum tylko częściowo wpływa na problem pluginu, do którego link został podany przez autora tematu.

Częściowo znaczy, że wciąż istnieje problem zachowania oryginalnej koloryzacji linii z wiadomością.

 

Jeżeli ktoś nie używa prefixów, owa łatka jest jedynie obciążeniem dla serwera.

Testowane na czystym serwerze Windows Steam z ostatnią aktualizacją.

Odpowiedz

  • +
  • -
Lizka - zdjęcie Lizka 14.07.2017

vanillah tylko że ja podałem ten sam plugin pod nazwa poprawka lecz czasami się buguje :)


Użytkownik Lizka edytował ten post 14.07.2017 06:06
Odpowiedz

  • +
  • -
adi330 - zdjęcie adi330 16.07.2017

@_McHappy

Przez ten kod - działa, ale pokazuje 2 razy prefix [VIP]. Co zrobić ?

Odpowiedz

  • +
  • -
_McHappy - zdjęcie _McHappy 16.07.2017

@_McHappy
Przez ten kod - działa, ale pokazuje 2 razy prefix [VIP]. Co zrobić ?


Upewnij się, czy żaden inny plugin nie ingeruje w modyfikację prefix'u.
Odpowiedz

  • +
  • -
Batonik - zdjęcie Batonik 19.07.2017

Po wgraniu dwóch wersji łatek mam losowe crashe: 

Reason: Server shutting down
L 07/15/2017 - 14:26:40: Server shutdown
L 07/15/2017 - 14:26:40: Log file closed
L 07/15/2017 - 14:26:40: FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message SayText of 230 bytes to client, user message size limit is 192 bytes


FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message SayText of 230 bytes to client, user message size limit is 192 bytes

Spróbowałem wyłączyć ad_manager ale bez zmian. Gdzie szukać problemu?


Użytkownik Batonik edytował ten post 19.07.2017 17:53
Odpowiedz

  • +
  • -
_McHappy - zdjęcie _McHappy 19.07.2017

Błąd wynikający z zbyt długiej wiadomości wysyłanej na chat.
Poprawka dla kodu Dark'a (1. Post)
https://amxx.pl/topi...ji/#entry741015

Musisz się upewnić, czy żaden inny plugin nie ingeruje w formatowanie linii czatu.

Jeżeli modyfikujesz 2. argument wiadomości wystawiając do niego gotową, sformatowaną linię wiadomości, pamiętaj o wyzerowaniu argumentu 4. zawierającego jej treść (domyślnie używane jako %s2, lecz podmiana 2. argumentu wyłącza opcję użycia preformatowanych zapisów klienta)
Odpowiedz

  • +
  • -
Batonik - zdjęcie Batonik 20.07.2017

Błąd wynikający z zbyt długiej wiadomości wysyłanej na chat.
Poprawka dla kodu Dark'a (1. Post)
https://amxx.pl/topi...ji/#entry741015

Musisz się upewnić, czy żaden inny plugin nie ingeruje w formatowanie linii czatu.

Jeżeli modyfikujesz 2. argument wiadomości wystawiając do niego gotową, sformatowaną linię wiadomości, pamiętaj o wyzerowaniu argumentu 4. zawierającego jej treść (domyślnie używane jako %s2, lecz podmiana 2. argumentu wyłącza opcję użycia preformatowanych zapisów klienta)

Widzę, że nie tylko ja mam ten problem: https://forums.allie...84&postcount=80

Nie ma jakiegoś rozwiązania w postaci pluginu? Posiadam csgov3, a jak wiadomo plugin zamknięty i nic nie zrobię w tym wypadku.

Odpowiedz

  • +
  • -
_McHappy - zdjęcie _McHappy 20.07.2017

Posiadasz jakiegoś csgo moda od jakiejś osoby... a więc powinieneś się zgłosić do tej 'jakiejś' osoby...

 

Tak czy inaczej, jeżeli kolega <pytajnik> zrobił prefixy sposobem opisanym przez Dark'a, to masz tu łatkę niezależną - dopisz na samym dole plugins.ini

 

 

Załączone pliki

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 21.07.2017

No dobrze, a co z wiadomościami typu #Game_Ra

#include <amxmodx>

new g_iMsgTextMsg
#define print_chat_colored 5

public plugin_init() 
{
	register_plugin("", "1.0", "asda")
	g_iMsgTextMsg 	 = get_user_msgid("TextMsg");
	register_message(g_iMsgTextMsg, "MsgTextMsg");
}

public MsgTextMsg(iMesgId, iMsgType, id)
{
	if(get_msg_args() != 5 || get_msg_arg_int(1) != print_chat_colored)
		return PLUGIN_CONTINUE;
		
	// 2 - id
	// 3 - #Game_radio
	// 4 - nick
	// 5 - #Fire_in_the

	static s_iMessage[192], szMessage[192];
	get_msg_arg_string(3, s_iMessage, 191);
	if(equal(s_iMessage, "#Game_radio"))
	{
		get_msg_arg_string(5, szMessage, 192)

		new msg[192], name[33]
		get_user_name(id, name, 32)
		formatex(msg, 191, "^4%s (RADIO) : %s", name, szMessage)
		set_msg_arg_string(4, "");
		set_msg_arg_string(5, msg);

	}

	return PLUGIN_CONTINUE;
}

JAkieś wskazówki jak się za to zabrać?

dio, bo też nie działają. Spędziłem ponad godzinę nad tym, niestety nie potrafię tego zrobić :o

 

 

Odpowiedz