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

Dwa prefixy w jednym pluginie


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

#1 Żuk

    Wszechwidzący

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:291
  • Lokalizacja:Katowice
Offline

Napisano 23.01.2021 12:37

Mam kod na prefix przed nickiem tutaj z forum

public handleSayText(msgId,msgDest,msgEnt){	

    new id = get_msg_arg_int(1);
    
    if(is_user_connected(id) && g_Vip[id]){  
    
    new szTmp[192], szTmp2[192];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    new szPrefix[64] = "^x04[VIP]";
    
    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;
}

 

I od godziny próbuję wykombinować, jak dodać tam drugi prefix dla gracza z flagą A ? W sensie, jeśli gracz ma flagę ADMIN_IMMUNITY oraz jest vipem, to ma prefix ustawiony dla flagi ADMIN_IMMUNITY, bo aktualnie co bym nie robił zawsze mam podwojony prefix lub w ogóle nie dochodzę do kompilacji bo sypie błędami ;s

 


  • +
  • -
  • 0

#2 faken

    Profesjonalista

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:192
  • Lokalizacja:Warszawa
Offline

Napisano 23.01.2021 14:48

public handleSayText(msgId,msgDest,msgEnt){	

    new id = get_msg_arg_int(1);

    if(is_user_connected(id) && get_user_flags(id) & ADMIN_IMMUNITY){  
    
    new szTmp[192], szTmp2[192];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    new szPrefix[64] = "^x04[Admin]";
    
    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;
    }		
    
    if(is_user_connected(id) && g_Vip[id]){  
    
    new szTmp[192], szTmp2[192];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    new szPrefix[64] = "^x04[VIP]";
    
    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;
}

Spróbuj :)


  • +
  • -
  • 1

#3 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 23.01.2021 15:06

Spróbuj tego. Nie testowałem bo nie mam teraz czasu ale myślę że zda egzamin.

public handleSayText(msgId,msgDest,msgEnt){	

    new id = get_msg_arg_int(1);
    
    if(is_user_connected(id) && g_Vip[id])
    {  
    
    new szTmp[192], szTmp2[192], szPrefix[64];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    formatex(szPrefix, charsmax(szPrefix), "^x04%s[VIP]", (get_user_flags(id) & ADMIN_IMMUNITY) ? "[ADMIN] ": "");
    
    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;
}

  • +
  • -
  • 0

#4 Żuk

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:291
  • Lokalizacja:Katowice
Offline

Napisano 23.01.2021 16:27

Od toldiego nie działa, dwa prefixy są. Od fakena jest ok


  • +
  • -
  • 0

#5 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 24.01.2021 12:42

Od toldiego nie działa, dwa prefixy są. Od fakena jest ok

Działać działa tyle że na szybkiego sprawdzałem i zrozumiałem że gracz z imunitetem i vipem ma mieć 2 prefixy. Niżej bardziej optymalna kod od tego wyżej.

public handleSayText(msgId,msgDest,msgEnt){	

    new id = get_msg_arg_int(1);
    
    if(is_user_connected(id) && g_Vip[id])
    {  
    
    new szTmp[192], szTmp2[192], szPrefix[64];
    get_msg_arg_string(2, szTmp, charsmax(szTmp));
    
    formatex(szPrefix, charsmax(szPrefix), "^x04%s", (get_user_flags(id) & ADMIN_IMMUNITY) ? "[ADMIN] ": "[VIP]");
    
    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;
}

  • +
  • -
  • 1

#6 vanillah

    nie wiem

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:324
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 24.01.2021 13:50

sprawdz to 

public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);

	if(!is_user_connected(id))
		return PLUGIN_HANDLED;

	new szTmp[256],szTmp2[256];
	get_msg_arg_string(2,szTmp, charsmax(szTmp))

	new szPrefix[64];
	format(szPrefix, 63, "^x04%s", (get_user_flags(id) & ADMIN_IMMUNITY) ? "[ADMIN] ": (g_Vip[id] ? "[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;
}

  • +
  • -
  • 0

Wykonam pluginy, paczki (amxx) kontakt GG: 32263742, Steam: https://steamcommuni...om/id/vankillah

Multi-Head.pl





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

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