Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Jak dodać prefix do pluginu?


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 WeBsteR

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 26.06.2016 21:55

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

  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#2 Master Yoga

    Support Team | Mocarz

  • Support Team

Reputacja: 136
Zaawansowany

  • Postów:275
  • Lokalizacja:Magistrala Adresowa
Offline

Napisano 26.06.2016 22:11

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


Master Yoga (26.06.2016 22:13):
Długość stringu możesz sprawdzić tą funkcją: strlen

  • +
  • -
  • 3

HTML ★ CSS ★ JAVASCRIPT ★ AJAX ★ JQUERY ★ PHP ★ C++ ★ PAWN ★ SQL ★ Objective-C++


MKW0tb8.pngMKW0tb8.pngMKW0tb8.png


#3 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 26.06.2016 22:18

 

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

 

Dzięki, na coś takiego liczyłem ;) Jutro Ci powiem, co udało mi się zrobić :D


  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!

#4 WeBsteR

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:297
  • Imię:dawid
  • Lokalizacja:Rzeszów
Offline

Napisano 27.06.2016 10:44

 

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

 

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

  • +
  • -
  • 0
Zabijaka Gryps to mój autorytet!




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych