Dwa prefixy w jednym pluginie
Żuk
23.01.2021
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
faken
23.01.2021
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
Toldi
23.01.2021
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; }
Toldi
24.01.2021
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; }
vanillah
24.01.2021
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; }