Jak dodać prefix do pluginu?
WeBsteR
26.06.2016
Witam serdecznie. Korzystam z klanów na CodMod'a od donaciak'a ( https://amxx.pl/topic/152515-klany/ ) i mam problem z dodaniem prefixu, do najnowszej wersji jego pluginu.
W starej wersji to było:
register_message(get_user_msgid("SayText"),"msg_SayText");
public msg_SayText(iMsgId, iMsgDest, iMsgEnt) { new id = get_msg_arg_int(1); if(!is_user_connected(id)) return PLUGIN_CONTINUE; new iGroup = g_iPlayerGroup[id]; if(iGroup == -1) return PLUGIN_CONTINUE; new szTmp[256],szTmp2[256], szPrefix[64]; get_msg_arg_string(2, szTmp, 255); ArrayGetString(g_szGroupName, iGroup, szPrefix, 63); 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; }
Lecz nowa wersja klanów została napisana przez autora od nowa, nie posiada już tablic dynamicznych, ma inne nazwy zmiennych itd. Stare dodawanie prerfixu już nie współgra z nowym.
Chciałbym, aby każdy członek klanu posiadał przed nickiem prefix z nazwą jego grupy, a członek, który nie posiada żadnej grupy nie wyświetlał żadnego prefixu - tak było w starej wersji.
Chciałbym jeszcze, aby nazwa prefixu była wyświetlana w takich nawiasach: "[nazwa_klanu]" i miała kolor zielony - niestety w starej wersji prefix był wyświetlany w sposób: "nazwa_klanu" bez żadnych nawiasów oraz miał kolor żółty.
Teraz prośba do Was, czy ktoś podpowie mi jak taki efekt osiągnąć? Jeżeli komuś nie chce się dawać gotowego kodu, to prosiłbym chociaż o wytłumaczenie mi tego czarno na białym, abym mógł to osiągnąć.
Kod .sma nowej wersji klanów bez prefixu znajduje się w załączniku.
Załączone pliki
Użytkownik WeBsteR edytował ten post 26.06.2016 21:57
Master Yoga
26.06.2016
Lecz nowa wersja klanów została napisana przez autora od nowa, nie posiada już tablic dynamicznych, ma inne nazwy zmiennych itd. Stare dodawanie prerfixu już nie współgra z nowym.
new iIdAktKlanu = g_iIdAktywnegoKlanuGracza[id];
g_szNazwaAktywnegoKlanu[iIdAktKlanu] <-- zmienna zawierająca nazwę klanu gracza
Aby Nazwa klanu była wyświetlana na zielono musisz dodać "^4" przed " [ ... ] ".
W skrócie:
[...] new szPrefix[33] format(szPrefix,32,"^4[ %s ]",g_szNazwaAktywnegoKlanu[iIdAktKlanu])
Jeżeli chcesz pominąć prefix dla osób, które nie mają klanu sprawdź np długość wyżej wymienionej zmiennej i pomiń procedurę dodawania prefix'u
WeBsteR
26.06.2016
Lecz nowa wersja klanów została napisana przez autora od nowa, nie posiada już tablic dynamicznych, ma inne nazwy zmiennych itd. Stare dodawanie prerfixu już nie współgra z nowym.
new iIdAktKlanu = g_iIdAktywnegoKlanuGracza[id];g_szNazwaAktywnegoKlanu[iIdAktKlanu] <-- zmienna zawierająca nazwę klanu graczaAby Nazwa klanu była wyświetlana na zielono musisz dodać "^4" przed " [ ... ] ".
W skrócie:[...] new szPrefix[33] format(szPrefix,32,"^4[ %s ]",g_szNazwaAktywnegoKlanu[iIdAktKlanu])Jeżeli chcesz pominąć prefix dla osób, które nie mają klanu sprawdź np długość wyżej wymienionej zmiennej i pomiń procedurę dodawania prefix'u
Dzięki, na coś takiego liczyłem Jutro Ci powiem, co udało mi się zrobić
WeBsteR
27.06.2016
Lecz nowa wersja klanów została napisana przez autora od nowa, nie posiada już tablic dynamicznych, ma inne nazwy zmiennych itd. Stare dodawanie prerfixu już nie współgra z nowym.
new iIdAktKlanu = g_iIdAktywnegoKlanuGracza[id];g_szNazwaAktywnegoKlanu[iIdAktKlanu] <-- zmienna zawierająca nazwę klanu graczaAby Nazwa klanu była wyświetlana na zielono musisz dodać "^4" przed " [ ... ] ".
W skrócie:[...] new szPrefix[33] format(szPrefix,32,"^4[ %s ]",g_szNazwaAktywnegoKlanu[iIdAktKlanu])Jeżeli chcesz pominąć prefix dla osób, które nie mają klanu sprawdź np długość wyżej wymienionej zmiennej i pomiń procedurę dodawania prefix'u
Jeszcze raz dzięki wielkie za pomoc. Już wszystko mi działa tak jak chciałem
Ogólnie to zamiast format użyłem formatex oraz, aby pominąć prefix dla osób, które nie mają klanu zrobiłem sprawdzenie ID Aktywnego Klanu, który pomija procedurę dodania prefixu w razie niepowodzenia, oraz na przyszłość zrobiłem, że zamiast robić tablicę [33] to dałem [MAX_PLAYERS+1].
Jakby ktoś chciał to wstawiam tu gotowca:
W plugin_init:
register_message(get_user_msgid("SayText"),"handleSayText");
Gdzieś niżej w kodzie:
public handleSayText(msgId,msgDest,msgEnt) { new id = get_msg_arg_int(1); new iIdAktKlanu = g_iIdAktywnegoKlanuGracza[id]; if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(!iIdAktKlanu) return PLUGIN_CONTINUE; new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax( szTmp ) ); new szPrefix[MAX_PLAYERS+1]; formatex(szPrefix,32,"^4[Klan: %s]",g_szNazwaAktywnegoKlanu[iIdAktKlanu]); 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),"^3 %s1^1 : %s2"); } set_msg_arg_string(2,szTmp2); return PLUGIN_CONTINUE; }
Temat uważam w całości wyczerpany, pomoc udzielona.
Użytkownik WeBsteR edytował ten post 27.06.2016 10:46