Problem z dzialaniem menu
LCA
03.09.2017
Znalazłem menu u was na stronie lecz nie działa poprawnie
a dokładnie, kiedy wpisuje /sklep poprawnie wyświetlają mi się opcje
lecz gdy nacisnę którąś z nich to wyskakuje mi błąd w konsoli: [CSXGuard] "say /vip": (SD Blocked)
wiem, że jest to wina CSXGuard.ini które jest zainstalowane w cs-ie 1.6 non steam
i moje pytanie jest takie czy pomogliby mi państwo to ominąć tak aby każdy non steamowiec mógł korzystać z menu na serwerze?
#include <amxmodx> public plugin_init() { register_plugin("123", "1.0", "..."); register_clcmd("say /sklep", "ShowMenu", .info = "Otwiera menu sklepu"); register_clcmd("say_team /sklep", "ShowMenu", .info = "Otwiera menu sklepu"); } public ShowMenu(id) { if(is_user_connected(id)) { new menu = menu_create("Sklep", "mymenu_sklep"); menu_additem(menu, "Kup VIP"); menu_additem(menu, "Kup Premium"); menu_setprop(menu, MPROP_BACKNAME, "Wroc"); menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); } } public mymenu_sklep(id, menu, item){ if(item == MENU_EXIT || !is_user_connected(id)){ menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item){ case 0: { cmdExecute(id, "say /vip") } case 1: { cmdExecute(id, "say /premium") } } menu_destroy(menu); return PLUGIN_CONTINUE; } stock cmdExecute( id , const szText[] , any:... ) { #pragma unused szText if ( id == 0 || is_user_connected( id ) ) { new szMessage[ 256 ]; format_args( szMessage ,charsmax( szMessage ) , 1 ); message_begin( id == 0 ? MSG_ALL : MSG_ONE, 51, _, id ) write_byte( strlen( szMessage ) + 2 ) write_byte( 10 ) write_string( szMessage ) message_end() } }
Robiin
03.09.2017
Prosisz o ominięcie blokady wykonywania komend na graczu:
- Nadpisywanie plików gracza,
- Usuwanie plików gracza,
- Kopiowanie plików gracza,
- Kontrola nad komputerem gracza,
- Kontrola nad graczem na serwerze,
- Kontrola nad jego plikami spoza cstrike,
- Możliwość zrobienia dowolnej NIEMORALNEJ i NIEETYCZNEJ rzeczy z komputerem gracza
Głównie dla każdego z powyższych powstały te blokady. Nikt tego nie zrobi, bo nikt nie umie/nie chce mieć problemu.
NEQU#
03.09.2017
a spoko
nie wiedziałem, że tyle można zrobić za pomocą cs
Jest sposób, zamiast wywoływać u gracza użycie komendy wywołującej funkcje, wywołaj funkcję bezpośrednio na graczu.
LCA
03.09.2017
a spoko
nie wiedziałem, że tyle można zrobić za pomocą cs
Jest sposób, zamiast wywoływać u gracza użycie komendy wywołującej funkcje, wywołaj funkcję bezpośrednio na graczu.
jakiś przykład jak to zrobić ?
NEQU#
03.09.2017
Przykładowo
register_clcmd("say /vip", "showvip");
przy czym showvip to nazwa funkcji wywoływanej na graczu po wpisaniu komendy /vip, więc zamiast wymuszać mu użycie komendy użyj funkcji.
switch(item){ case 0: { showvip(id) } case 1: { showpremium(id) }
Wiadomo, że u ciebie będą miały inne nazwy, sprawdź je i dalej już sobie poradzisz.
LCA
03.09.2017
Przykładowo
register_clcmd("say /vip", "showvip");
przy czym showvip to nazwa funkcji wywoływanej na graczu po wpisaniu komendy /vip, więc zamiast wymuszać mu użycie komendy użyj funkcji.
switch(item){ case 0: { showvip(id) } case 1: { showpremium(id) }Wiadomo, że u ciebie będą miały inne nazwy, sprawdź je i dalej już sobie poradzisz.
pomożesz? nwm co zepsułem w tym menu generalnie już nie wyświetla się ten błąd w konsoli ale menu nie działa poprawnie to znaczy wyświetla się ale jak kliknę w jakąś opcje to ona nie działa
// Generated with v3x's AMXX Menu Generator #include <amxmodx> public plugin_init() { register_plugin("My Menu", "1.0", "Me"); register_clcmd("say /menu", "ShowMenu", _, "mh_MyMenu"); } public ShowMenu(id) { new menu = menu_create("MyMenu", "mh_MyMenu"); menu_additem(menu, "Rank", "showrank", 0); // case 0 menu_additem(menu, "Top15", "", 0); // case 1 menu_additem(menu, "Vip", "", 0); // case 2 menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia Strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna Strona"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_NOCOLORS, 1); menu_setprop(menu, MPROP_NUMBER_COLOR, "\y"); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public mh_MyMenu(id, menu, item) { if(item == MENU_EXIT) { menu_cancel(id); return PLUGIN_HANDLED; } new command[6], name[64], access, callback; menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback); switch(item) { case 0: register_clcmd("say /rank", "showrank"); case 1: register_clcmd("say /top15", "showtop15"); case 2: register_clcmd("say /vip", "showvip"); } menu_destroy(menu); return PLUGIN_HANDLED; }
Użytkownik LCA edytował ten post 03.09.2017 23:11
Robiin
04.09.2017
register_clcmd to funkcja rejestrująca komendę. Używasz tego jak /menu, czyli w plugin_init.
W środku case'ów robisz publikację, czyli określasz co opcja w menu ma robić. W twoim przypadku będzie to
client_cmd("say /rank")
Toldi
04.09.2017
Sprawdź.
Załączone pliki
Użytkownik Toldi edytował ten post 04.09.2017 12:50
LCA
04.09.2017
register_clcmd to funkcja rejestrująca komendę. Używasz tego jak /menu, czyli w plugin_init.
W środku case'ów robisz publikację, czyli określasz co opcja w menu ma robić. W twoim przypadku będzie to
client_cmd("say /rank")
case 4:{
client_cmd(id, "say /rank")
}
jak wpisuje w ten sposób to wyświetla mi się
[CSXGuard] "say /rank": (ST Blocked)
dałbyś rade zrobić gotowca z tego menu?
#include <amxmodx> #include <amxmisc> #define PLUGIN "Menu" #define VERSION "1.0" #define AUTHOR "BL!NG +mp8" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /menu", "menu") } public menu(id) { new menu = menu_create("\rMenu Serwera :", "wybieranie") menu_additem(menu, "\wWyrór1", "1", 0) menu_additem(menu, "\wWybór2", "2", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) } public wybieranie(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) // dodaje wybor pod klawisze new key = str_to_num(data) // teraz ustawiamy co ma wykonywac itp kazdy klawisz switch(key) { case 1:{ client_cmd(id, "say /wybór1") } case 2:{ client_cmd(id, "say /wybór2") } } menu_destroy(menu) return PLUGIN_HANDLED }
Toldi
04.09.2017
Przecież dałem ci wyżej kod tego twojego menu z 1 posta tylko lekko zmienione. Nie otwiera się na komendę tylko przez wywołanie funkcji. Sprawdź i napisz czy ci działa bo ja nie testowałem. Masz tu to .sma menu
#include <amxmodx> public plugin_init() { register_plugin("123", "1.0", "..."); register_clcmd("say /sklep", "ShowMenu"); register_clcmd("say_team /sklep", "ShowMenu"); } public ShowMenu(id) { if(!is_user_connected(id)) return PLUGIN_HANDLED; new menu = menu_create("Sklep", "mymenu_sklep"); menu_additem(menu, "Kup VIP"); menu_additem(menu, "Kup Premium"); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_display(id, menu); return PLUGIN_CONTINUE; } public mymenu_sklep(id, menu, item) { if(item == MENU_EXIT || !is_user_connected(id)) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: kup_vipa(id) case 1: kup_premium(id) } return PLUGIN_CONTINUE; } public kup_vipa(id) show_motd(id, "kup_vipa.txt", "Jak kupic vipa?"); // kup_vipa.txt do cstrike public kup_premium(id) show_motd(id, "kup_premium.txt", "Jak kupic Premium?"); //kup_premium.txt do cstrike
LCA
04.09.2017
Toldi jak robie twoim sposobem to prawie wszystko dobrze funkcjonuje po za tym np jak dodam opcje:
public Moj_Rank(id) client_cmd(id, "say /rank"); //kup_predmium.txt do cstrike
w konsoli dalej pokazuje blokade
[CSXGuard] "say /rank": (ST Blocked)
Hiko
05.09.2017
Toldi
05.09.2017
Toldi jak robie twoim sposobem to prawie wszystko dobrze funkcjonuje po za tym np jak dodam opcje:
public Moj_Rank(id) client_cmd(id, "say /rank"); //kup_predmium.txt do cstrikew konsoli dalej pokazuje blokade
[CSXGuard] "say /rank": (ST Blocked)
Nie wiem czy o to ci chodzi? Napisz co ma robić komenda /rank? Pokazać ranking gracza czy jakąś twoją opcję?
Kod:
Wpisanie tych komend powoduje pokazanie się informacji jak kupić vipa/premium.
register_clcmd("say /kupvipa", "kup_vipa"); register_clcmd("say /premium", "kup_premium");
LCA
05.09.2017
Toldi jak robie twoim sposobem to prawie wszystko dobrze funkcjonuje po za tym np jak dodam opcje:
public Moj_Rank(id) client_cmd(id, "say /rank"); //kup_predmium.txt do cstrikew konsoli dalej pokazuje blokade
[CSXGuard] "say /rank": (ST Blocked)Nie wiem czy o to ci chodzi? Napisz co ma robić komenda /rank? Pokazać ranking gracza czy jakąś twoją opcję?
Kod:
Spoiler
Wpisanie tych komend powoduje pokazanie się informacji jak kupić vipa/premium.
register_clcmd("say /kupvipa", "kup_vipa"); register_clcmd("say /premium", "kup_premium");
Nie chodzi mi o wyświetlanie motd, tylko zwykle menu gdzie jak ktoś na serwerze wpisze komendę /menu
to pokażą mu się jakieś tam opcje np 1. Rank 2. Czapki 3.trelele morelee 4. itd.
i kiedy klikna np w czapki to na say automatycznie napiszą /czapki,
kiedy klikna w rank to automatycznie napiszą /rank itd. itdd
szukałem długo w necie i żadne z znalezionych przeze mnie menu nie działają
bo jest jakaś blokada [CSXGuard] której nie potrafie ominąć.
Hiko
05.09.2017
To usun CSXGuard a jak nie to nie baw sie w clientcmd tylko wywoluj public z innych pluginów jak nie sa w tym samym
if(callfunc_begin("public z pluginu bez (id)", "nazwapluginu.amxx")) { callfunc_push_int(id); callfunc_end(); }