Prefix przed nickiem
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ść
Jak się nazwać
27.11.2011
Prefix-na zielono
nick- zależny od teamu
- i treść
Proszę o poprawę
sebul
27.11.2011
Dmk880
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.
Jak się nazwać
27.11.2011

@ 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

@@ DOWN
Już sobie poradziłem właśnie tak jak napisałeś

Użytkownik Jak się nazwać edytował ten post 27.11.2011 11:24
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
@ 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. Dajcie mi to żeby prefix był na zielono nick na team kolor a zawartość na żółto, proszę ;d

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

Nie wydaje mi się, że masz podobną funkcję, bo ta jest całkowicie inne od tych innych co krążą po necie.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.
DarkGL
27.11.2011
nieJeż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.
DarkGL
27.11.2011
przykład użycia tego
http://steamcommunit...6583520053945/?
Najkon
28.11.2011

Bo chce pobrać
rangi[level[id]]a nie wiem jak :<
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?
RX-8
04.12.2011
naprawdę mi się podoba

Kukol
04.12.2011
Bo tak lipa, wszystko żółte. ;/
Użytkownik Kukol edytował ten post 04.12.2011 22:25
fbang
05.12.2011
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