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