Problem:
SVIP zakupiony przez /sklepsms
[SVIP][VIP] <=== chciałbym pozbyć się tego prefiksu z chatu oraz żeby nie zmieniało statusu w hudzie na VIP'a z SVIP
SVIP dodany przez 1shota:
[SVIP] <== pomija VIPA i nic nie nadaje.
nocny_vipek.sma:
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.
|
Najlepsza odpowiedź Boski Z Polski , 09.01.2020 09:06
Pomyliłem znak.
Zrób tak:
if(get_user_flags(id) & FLAGA_VIP && !(get_user_flags(id) & ADMIN_LEVEL_G)Przejdź do postu
Napisano 09.01.2020 00:37
Problem:
SVIP zakupiony przez /sklepsms
[SVIP][VIP] <=== chciałbym pozbyć się tego prefiksu z chatu oraz żeby nie zmieniało statusu w hudzie na VIP'a z SVIP
SVIP dodany przez 1shota:
[SVIP] <== pomija VIPA i nic nie nadaje.
nocny_vipek.sma:
Napisano 09.01.2020 00:51
#include <amxmodx> #define OD_GODZINY 22 #define DO_GODZINY 8 #define FLAGA_VIP ADMIN_LEVEL_H #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author" new Forward_amxbans; new iRet; new bool:g_bDarmowyVip; public plugin_init() { new szGodzina[4], iGodzina; register_plugin(PLUGIN, VERSION, AUTHOR); get_time("%H", szGodzina, 3); iGodzina = str_to_num(szGodzina); Forward_amxbans = CreateMultiForward("amxbans_admin_connect",ET_IGNORE,FP_CELL) if(OD_GODZINY <= iGodzina || iGodzina <= DO_GODZINY) g_bDarmowyVip = true; } public client_authorized(id) { set_task(5.0,"daj",id); } public daj(id) { if(g_bDarmowyVip) { if(!(get_user_flags(id) & ADMIN_LEVEL_G)) { set_user_flags(id, get_user_flags(id) | FLAGA_VIP); ExecuteForward(Forward_amxbans, iRet, id); } }
Sprawdź teraz.
Użytkownik Boski Z Polski edytował ten post 09.01.2020 00:59
Napisano 09.01.2020 01:13
Nie działa. Jest tak samo jak było ale dalej mam co innego na myśli.
Mam na myśli to, aby usuwało tylko prefiks VIP, jeśli posiadamy SVIP'a i nie zmieniało nam statusu z SVIP'a na VIP'a.
Bo jeśli płacimy za SVIP'a to czemu mamy mieć VIP'a?
Napisano 09.01.2020 01:34
W pluginie od vipa zamień funkcję od prefixu na:
public handleSayText(msgId,msgDest,msgEnt) { new id = get_msg_arg_int(1); if(g_Vip[id] && !(get_user_flags(id,ADMIN_LEVEL_G)) { new szTmp[192], szTmp2[192]; get_msg_arg_string(2, szTmp, charsmax(szTmp)); new szPrefix[64]; formatex(szPrefix,charsmax(szPrefix),"^x04[VIP]^x03"); 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(get_user_flags(target) & ADMIN_LEVEL_H) format(sz_status, sizeof(sz_status), "VIP"); else if(get_user_flags(id) & ADMIN_LEVEL_G) format(sz_status, sizeof(sz_status), "SVIP"); else format(sz_status, sizeof(sz_status), "FREE");
A w pluginie od HUD'A (tego co wrzuciłeś) to zamień na:
if(get_user_flags(id) & ADMIN_LEVEL_G) { format(sz_status, sizeof(sz_status), "SVIP"); } else if(get_user_flags(id) & ADMIN_LEVEL_H) { format(sz_status, sizeof(sz_status), "VIP"); } else { format(sz_status, sizeof(sz_status), "FREE"); } // to do target: if(get_user_flags(target) & ADMIN_LEVEL_G) { format(sz_status, sizeof(sz_status), "SVIP"); } else if(get_user_flags(target) & ADMIN_LEVEL_H) { format(sz_status, sizeof(sz_status), "VIP"); } else { format(sz_status, sizeof(sz_status), "FREE"); }
Następnym razem pisz tutaj: https://amxx.pl/foru...scripting-amxx/
Użytkownik Boski Z Polski edytował ten post 09.01.2020 01:45
Napisano 09.01.2020 02:22
Po próbie edycji tego:
if(g_Vip[id] && !(get_user_flags(id,ADMIN_LEVEL_G))
w to:
if(get_user_flags(id) & FLAGA_VIP) && !(get_user_flags(id),ADMIN_LEVEL_G)
Dostaję błędy kompilacji:
// C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : error 029: invalid expression, assumed zero // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213 -- 214) : error 028: invalid subscript (not an array or too many subscripts): "get_user_flags" // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213 -- 215) : error 001: expected token: "}", but found "new" // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213 -- 215) : fatal error 107: too many error messages on one line //
Mogę zmniejszyć ilość błędów kompilacji robiąc to:
if(get_user_flags(id) & FLAGA_VIP) && !(get_user_flags(id),ADMIN_LEVEL_G)
Po czym dostaję takie błędy kompilacji:
// C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : error 029: invalid expression, assumed zero // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213 -- 214) : error 029: invalid expression, assumed zero
Mogę co jedynie dodać, że przy ostatniej edycji pluginu VIP pozbyłem się wszystkich wartości g_Vip[id]
Jeśli biorę id w nawias kwadratowy to dostaje to:
// C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : error 028: invalid subscript (not an array or too many subscripts): "get_user_flags" // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : warning 215: expression has no effect // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : error 001: expected token: ";", but found "]" // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : error 029: invalid expression, assumed zero // C:\Users\dabst\Desktop\Wszystko\Kompilator 1.9\1.9\vip.sma(213) : fatal error 107: too many error messages on one line
Napisano 09.01.2020 09:06 Najlepsza odpowiedź
Pomyliłem znak.
Zrób tak:
if(get_user_flags(id) & FLAGA_VIP && !(get_user_flags(id) & ADMIN_LEVEL_G)
0 użytkowników, 0 gości, 0 anonimowych