←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak sprawdzić czy "gracz" jest ser...

  • +
  • -
szelbi - zdjęcie szelbi 28.05.2014

Jak w temacie. Jak sprawdzić czy "gracz" jest serwerem? Potrzebuję tego, ponieważ wgrałem prefix dla VIP'a i kiedy na czacie wyświetla się komunikat, np. z pluginu na RS'y to też ma prefix :)

Odpowiedz

  • +
  • -
Klakier - zdjęcie Klakier 28.05.2014

id == 0 ?

Odpowiedz

  • +
  • -
BlackPerfum - zdjęcie BlackPerfum 28.05.2014

Gracz nie może być serwerem :D ( pomijam opcje w cs'ie "nowa gra" bo to nic do tematu nie wprowadza ). Ja na twoim miejscu sprawdzał bym w pluginie z rs'ami czy gracz jest podłączony do serwera lub poprawił bym pętlę ( to tylko moje przypuszczenia musiał bym zobaczyć plugin z rs'ami aby je poprzeć )
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 28.05.2014

Jeśli pojawia się prefix przed wiadomością z RSów to albo RSy są wyświetlane przez say w konsoli, albo plugin na prefixy jest do niczego. Szukasz sposobu na poprawienie tego naokoło zamiast przyjrzeć się wprost jaki jest problem.
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 28.05.2014

Wyświetlanie wiadomości w RS'ach:

ShowPrint( id, const sMsg[], { Float, Sql, Result, _ }:... )
    {
        static
    //  - - - - - - - - -
            newMsg[191],
            message[191],
    //      |
            tNewMsg;
    //  - - - - - - - - -

        tNewMsg = charsmax( newMsg );
        vformat( newMsg, tNewMsg, sMsg, 3 );

        replace_all( newMsg, tNewMsg, "!t", "^3" );
        replace_all( newMsg, tNewMsg, "!g", "^4" );
        replace_all( newMsg, tNewMsg, "!n", "^1" );

        formatex( message, charsmax( message ), "^4[ERS]^1 %s", newMsg );

        emessage_begin( MSG_ONE, g_msgSayText, _, id );
        ewrite_byte( id );
        ewrite_string( message );
        emessage_end();
    }

Natomiast kod na prefixy jest autorstwa Darka, więc nie sądzę, aby był do niczego :)

Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 29.05.2014

A ja wątpię w słuszność Twoich powątpiewań, bo uwierz mi, nawet Darkowi się zdarzają wpadki :) Więc pokaż ten kod, bo mam jakieś dziwne przeczucie, że łapie on msgSayText bez rozpoznawania czy to say kienta, czy inne badziewie.

A Ty używasz w swoim kodzie emessage, więc błąd mamy po części z obu stron. Jednak lepiej załatać to po stronie prefixów, bo więcej pluginów może być tym dotkniętych.
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 29.05.2014

A Ty używasz w swoim kodzie emessage, więc błąd mamy po części z obu stron.

Używam pluginu Alternative End Round Sounds, chyba że masz lepszą, działającą alternatywę bez zbędnych bajerów.
 
Kod na prefixy:

public handleSayText(msgId,msgDest,msgEnt)
{
	new id = get_msg_arg_int(1);
	
	if(!is_user_connected(id) || !bVip[id])
	return PLUGIN_CONTINUE;
	
	new szTmp[256], szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax(szTmp));
	
	new szPrefix[64];
	formatex(szPrefix ,charsmax(szPrefix), "^x04[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),"^x03 %s1^x01 :  %s2");
	}
	
	set_msg_arg_string(2,szTmp2);
	
	return PLUGIN_CONTINUE;
}
Odpowiedz

GT Team - zdjęcie GT Team 29.05.2014

dodaj do if'a : "id == 0" then sprawdź

 

@CheQ

 

Dokładnie, takie przyzwyczajenie


dasiek (29.05.2014 14:47):
"then" z pascala... <3

Użytkownik GT Team edytował ten post 29.05.2014 15:01
Odpowiedz

  • +
  • -
szelbi - zdjęcie szelbi 19.06.2014

Nic to nie dało. RS'y nadal mają prefix.

Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 19.06.2014

Zmień w RSach emessage na message.
Odpowiedz