←  Gotowe funkcje

AMXX.pl: Support AMX Mod X i SourceMod

»

Prefix przed nickiem

  • +
  • -
DarkGL - zdjęcie DarkGL 15.11.2011

W plugin_init

register_message(get_user_msgid("SayText"),"handleSayText");

potem w dowolnym miejscu w pluginie

 

Kod Po Aktualizacji ( Kod od użytkownika _McHappy )

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[Nasz Prefix]";
    
    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;
}

Kod Przed Aktualizacją

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] = "[Nasz Prefix]";

	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;

}

tutaj ustalamy nasz prefix

new szPrefix[64] = "[Nasz Prefix]";

w zmiennej id mamy id gracza który wysłał wiadomość

 

https://amxx.pl/topi...o-aktualizacji/

Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 16.11.2011

:wstyd: fajne
Odpowiedz

  • +
  • -
Muzzi - zdjęcie Muzzi 16.11.2011

Proste a zarazem śmieszne, nice ;D
Odpowiedz

  • +
  • -
Jak się nazwać - zdjęcie Jak się nazwać 27.11.2011

Działa ale wyświetla wszystko na żółto a wydaje mi się że powinno wyświetlać tak:
Prefix-na zielono
nick- zależny od teamu
- i treść

Proszę o poprawę
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 27.11.2011

No jak ktoś jest na tyle niemądry, żeby nie widzieć, że w zmiennej "szPrefix" może dodać co chce, czyli także chociażby ^4 (wtedy wszystko za ^4 będzie na zielono), to już nie jest niczyja wina...
Odpowiedz

  • +
  • -
Dmk880 - zdjęcie Dmk880 27.11.2011

Ekhem, mam podobną funkcję na to i jest mały ukryty błąd :)

Jeżeli na serwerze mamy różne komendy które wpisuje się na say to przestają one działać np. gdy gracz z takim prefiksem wpisze na say /kup to nic się nie stanie.
Odpowiedz

  • +
  • -
Jak się nazwać - zdjęcie Jak się nazwać 27.11.2011

Tu ten błąd jest naprawiony ponieważ ta funkcja nie podmienia wiadomości całkowicie tylko ją przechwytuje, edytuje i tyle ;P

@ Sebul
wydaje mi się że widzę tu ^x03 więc prefix powinien być drużyny a nie żółty.
:
add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2");

Może tak ;P. Dajcie mi to żeby prefix był na zielono nick na team kolor a zawartość na żółto, proszę ;d

@@ DOWN
Już sobie poradziłem właśnie tak jak napisałeś ;P Ale + za chęci
Użytkownik Jak się nazwać edytował ten post 27.11.2011 11:24
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 27.11.2011

Tu ten błąd jest naprawiony ponieważ ta funkcja nie podmienia wiadomości całkowicie tylko ją przechwytuje, edytuje i tyle ;P

@ Sebul
wydaje mi się że widzę tu ^x03 więc prefix powinien być drużyny a nie żółty.
:
add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2");

Może tak ;P. Dajcie mi to żeby prefix był na zielono nick na team kolor a zawartość na żółto, proszę ;d

:facepalm:
Kolor prefixu zmieniasz tutaj
new szPrefix[64] = "[Nasz Prefix]";

a dokładniej tutaj
"[Nasz Prefix]"

Czyli dajesz przed [Nasz Prefix] taki kod ^4 i masz zielony prefix. I poczytaj może co daje funkcja add add.

Ekhem, mam podobną funkcję na to i jest mały ukryty błąd :)

Jeżeli na serwerze mamy różne komendy które wpisuje się na say to przestają one działać np. gdy gracz z takim prefiksem wpisze na say /kup to nic się nie stanie.

Nie wydaje mi się, że masz podobną funkcję, bo ta jest całkowicie inne od tych innych co krążą po necie.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 27.11.2011

Jeżeli na serwerze mamy różne komendy które wpisuje się na say to przestają one działać np. gdy gracz z takim prefiksem wpisze na say /kup to nic się nie stanie.

nie
Odpowiedz

  • +
  • -
Cherry - zdjęcie Cherry 27.11.2011

Może ktoś podać screena z wyglądem tego pluginu wgranego na serwer?:)
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 27.11.2011

to jest funkcja do użycia w pluginie a nie plugin
przykład użycia tego
http://steamcommunit...6583520053945/?
Odpowiedz

  • +
  • -
Najkon - zdjęcie Najkon 28.11.2011

DarkGL, widze że w prefixie pobrałeś nawe klasy. Mógłbyś mi powiedzieć jak ? :>

Bo chce pobrać
rangi[level[id]]
a nie wiem jak :<
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 28.11.2011

załóż nowy temat ;)
Odpowiedz

Kukol - zdjęcie Kukol 04.12.2011

DarkGL, widze że w prefixie pobrałeś nawe klasy. Mógłbyś mi powiedzieć jak ? :>

Bo chce pobrać

rangi[level[id]]
a nie wiem jak :<



new szPrefix[64];
format(szPrefix, charsmax(szPrefix), "%s", rangi[level[id]]);


@Topic

Czy dzięki temu nie będą się bugować inne komendy?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 04.12.2011

nie nie będą
Odpowiedz

  • +
  • -
RX-8 - zdjęcie RX-8 04.12.2011

dobra rzecz, naprawdę przyda się na święta, można wpisać "Wesolych Swiat zyczy"
naprawdę mi się podoba :)
Odpowiedz

Kukol - zdjęcie Kukol 04.12.2011

Da się coś zrobić, by było mniej odstępów między nickiem, prefixem a tekstem? Oraz prefix na inny kolor?

Bo tak lipa, wszystko żółte. ;/
Użytkownik Kukol edytował ten post 04.12.2011 22:25
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 05.12.2011

do kolorowania używaj znaków ^x01 ^x03 ^x04
Odpowiedz

  • +
  • -
fbang - zdjęcie fbang 05.12.2011

Może ktoś przerobić
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];
format(szPrefix, charsmax(szPrefix), "%s", nazwy_klas[klasa_gracza[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;
}

żeby prefix był na zielono, nick na colorteam, a tekst na zwykly kolor?
+++
/edit
pardon
Użytkownik metfiu edytował ten post 05.12.2011 00:16
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 05.12.2011

załóż nowy temat
Odpowiedz