Polecam zmienić nazwy zmiennych na angielskie i bardziej odpowiadające ich przeznaczeniu.
To samo z funkcjami takimi jak 'drawPlayer', żeby wszystkie były nazywane według jednego stylu, np. snake_case.
Bez reszty kodu nic wiecej nie zdziałamy.
To równanie zostało stworzone przy pomocy kodu LaTeX:
Edytor LaTeX online: CodeCogs.com/latex/eqneditor.php
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.
|
Napisane przez Robiin w 08.01.2022 17:55
public sprawdz() { new tt_count = ilosc_tt2(); if(!tt_count) { for(new i = 1; i < MAX_PLAYERS; i++) { if(is_user_alive(i)) { user_silentkill(i); } } scrim_print(0, "^x01 Ostatni szukajacy ^x03%s^x01 opuscil gre.", terro); switch(ilosc_ct()) { case 0..8: ilosc_tt = 1; case 9..15: ilosc_tt = 2; case 16..23: ilosc_tt = 3; case 24..32: ilosc_tt = 4; } drawPlayer(); } }
Polecam zmienić nazwy zmiennych na angielskie i bardziej odpowiadające ich przeznaczeniu.
To samo z funkcjami takimi jak 'drawPlayer', żeby wszystkie były nazywane według jednego stylu, np. snake_case.
Bez reszty kodu nic wiecej nie zdziałamy.
Napisane przez G[o]Q w 07.09.2014 14:40
jak to dobrze ze podales wszystkie informacje na temat tego co zmieniles i jak dodatkowo musze Cie pochwalić za to że umieściłeś swój kod zanim ktoś Cie o to poprosił co wpłynie na szybkość udzielanej Ci pomocy.
Tutaj masz rozwiązanie:
Napisane przez Anonymuss w 30.06.2021 12:44
Jeny ile z tym zabawy to już chyba wolę by to się wyświetlał w modt. Chyba że się da zrobić plugin ktory po wejściu na server wymusi to graczom. Bo kurcze i tak nikt raczej z tego nie będzie korzystać.
Nie można wymusić na graczu wyłączenia CSX Guarda a modyfikowanie plików graczom jest zabronione. Jest pewna opcja z ReChecker (jeśli masz ReHLDS na serwerze), który by wykrywał ten skrypt i kickował dopóki NS go nie usunie ale wtedy podejrzewam, że prawie nikt by u Ciebie nie grał.
Napisane przez Anonymuss w 29.06.2021 22:37
Witam powoli uczę się pisać plugini i za pomocą jednego z poradników zrobiłem menu z komendami. i okazuje się, że ludzie z non steam nie działa
Zasada pluginu jest prosta wpisujesz /komendy masz listę komend wybierasz i się wywołuje. ale graczom non steam pojawia się takie coś [CSXGuard] "say /sklep": (SD Blocked)
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "komendy" #define VERSION "1.0" #define AUTHOR "xmox" new komendy; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /komendy", "nowemenu"); komendy = menu_create("lista komend","nowemenuhandle"); menu_additem(komendy,"Zaloguj sie ");//item = 0 menu_additem(komendy,"Sklep ");//item = 1 menu_additem(komendy,"Sklep SmS");//item = 2 menu_additem(komendy,"Przekaz guziki ");//item = 3 menu_additem(komendy,"Widok z trzeciej osoby ");//item = 4 menu_additem(komendy,"Widok z pierwszej osoby ");//item = 5 menu_additem(komendy,"Wycisz gracza ");//item = 6 menu_additem(komendy,"Menu rang ");//item = 7 menu_additem(komendy,"Info o VIP ");//item = 8 menu_additem(komendy,"wyłącz HUD");//item = 9 menu_setprop(komendy, MPROP_EXITNAME, "Wyjscie"); } public nowemenu(id){ menu_display(id, komendy); return PLUGIN_HANDLED; } public nowemenuhandle(id, menu, item){ if(item == MENU_EXIT) { return PLUGIN_HANDLED; } switch(item) { case 0:{ client_cmd(id, "say /konto"); } case 1:{ client_cmd(id, "say /sklep"); } case 2:{ client_cmd(id, "say /sklepsms"); } case 3:{ client_cmd(id, "say /daj"); } case 4:{ client_cmd(id, "say /thirdperson"); } case 5:{ client_cmd(id, "say /firstperson"); } case 6:{ client_cmd(id, "say /mute"); } case 7:{ client_cmd(id, "say /rangmenu"); } case 8:{ client_cmd(id, "say /vip"); } case 9:{ client_cmd(id, "say /hud"); } } return PLUGIN_HANDLED; }Z góry dziękuję za pomoc i pozdrawiam.
Skoro uczysz się pisać pluginy to dam Ci wskazówkę. Najlepiej jakby to menu było napisane w ten sposób:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "komendy" #define VERSION "1.0" #define AUTHOR "xmox" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /komendy", "nowemenu"); } public nowemenu(id) { new komendy = menu_create("lista komend", "nowemenuhandle"); menu_additem(komendy, "Zaloguj sie ");//item = 0 menu_additem(komendy, "Sklep ");//item = 1 menu_additem(komendy, "Sklep SmS");//item = 2 menu_additem(komendy, "Przekaz guziki ");//item = 3 menu_additem(komendy, "Widok z trzeciej osoby ");//item = 4 menu_additem(komendy, "Widok z pierwszej osoby ");//item = 5 menu_additem(komendy, "Wycisz gracza ");//item = 6 menu_additem(komendy, "Menu rang ");//item = 7 menu_additem(komendy, "Info o VIP ");//item = 8 menu_additem(komendy, "wyłącz HUD");//item = 9 menu_setprop(komendy, MPROP_EXITNAME, "Wyjscie"); menu_display(id, komendy); return PLUGIN_HANDLED; } public nowemenuhandle(id, menu, item) { if(item == MENU_EXIT) return PLUGIN_HANDLED; switch(item) { case 0: client_cmd(id, "say /konto"); case 1: client_cmd(id, "say /sklep"); case 2: client_cmd(id, "say /sklepsms"); case 3: client_cmd(id, "say /daj"); case 4: client_cmd(id, "say /thirdperson"); case 5: client_cmd(id, "say /firstperson"); case 6: client_cmd(id, "say /mute"); case 7: client_cmd(id, "say /rangmenu"); case 8: client_cmd(id, "say /vip"); case 9: client_cmd(id, "say /hud"); } return PLUGIN_HANDLED; }
[CSXGuard] "say /sklep": (SD Blocked)
Takie coś wyskakuje wszystkim ns'om którzy pobrali cs z cssetti, ponieważ tam w standardzie jest dodawany skrypt csx guard, który blokuje komendy z configu tego skryptu "CSXGuard.ini" wykonywane przez serwer na graczu. W tym pliku są wpisane komendy "say" i "say_team" dlatego przez natyw client_cmd nie zadziała to na ns'ach.
Albo ludzie którym nie działa Twoje menu, w CSXGuard.ini (w folderze swojego cs'a) wyłączą sobie ten skrypt w ten sposób
Enabled = True
na
Enabled = False
bądź w konsoli gry wpiszą sobie komendę csx guarda
csx_setcvar2 "Enabled" "False"
Albo są jeszcze dwie metody ale ja używam tylko jednej dlatego drugą niech Ci wytłumaczy ktoś kto używa tego natywu https://amxx.pl/doku.../callfunc-begindo omijania guarda
Musisz edytować wszystkie pluginy, które chcesz aby odpalały się przez Twoje menu /komendy, dlatego w tym przypadku prawdopodobnie będziesz miał problem z komendą /sklepsms, ponieważ zapewne go kupiłeś i posiadasz sam plik .amxx bez .sma. W każdym pluginie trzeba zrobić natyw do funkcji którą chcesz wywołać przez swoje menu. Na koniec do swojego pluginu /komendy dopisujesz gdzieś nad "public plugin_init()" wszystkie te natywy z innych pluginów, a później w "case" używasz tych natywów zamiast client_cmd.
Przykład jak stworzyć natyw w jakimś randomowym pluginie:
#include <amxmodx> #define PLUGIN ".." #define VERSION ".." #define AUTHOR ".." public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /konto", "menu_kont"); } public plugin_natives() { register_native("natyw_menukont", "menu_kont", 1); } public menu_kont(id) { //jakis tam kod na menu }
Przykład jak go użyć w Twoim menu:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #define PLUGIN "komendy" #define VERSION "1.0" #define AUTHOR "xmox" native natyw_menukont(id); // na gorze kodu dodajemy stworzony przez nas natyw new komendy; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /komendy", "nowemenu"); komendy = menu_create("lista komend","nowemenuhandle"); menu_additem(komendy,"Zaloguj sie ");//item = 0 menu_additem(komendy,"Sklep ");//item = 1 menu_additem(komendy,"Sklep SmS");//item = 2 menu_additem(komendy,"Przekaz guziki ");//item = 3 menu_additem(komendy,"Widok z trzeciej osoby ");//item = 4 menu_additem(komendy,"Widok z pierwszej osoby ");//item = 5 menu_additem(komendy,"Wycisz gracza ");//item = 6 menu_additem(komendy,"Menu rang ");//item = 7 menu_additem(komendy,"Info o VIP ");//item = 8 menu_additem(komendy,"wyłącz HUD");//item = 9 menu_setprop(komendy, MPROP_EXITNAME, "Wyjscie"); } public nowemenu(id){ menu_display(id, komendy); return PLUGIN_HANDLED; } public nowemenuhandle(id, menu, item){ if(item == MENU_EXIT) { return PLUGIN_HANDLED; } switch(item) { case 0:{ natyw_menukont(id); // tu go uzywamy omijajac w ten sposob csx guarda } case 1:{ client_cmd(id, "say /sklep"); } case 2:{ client_cmd(id, "say /sklepsms"); } case 3:{ client_cmd(id, "say /daj"); } case 4:{ client_cmd(id, "say /thirdperson"); } case 5:{ client_cmd(id, "say /firstperson"); } case 6:{ client_cmd(id, "say /mute"); } case 7:{ client_cmd(id, "say /rangmenu"); } case 8:{ client_cmd(id, "say /vip"); } case 9:{ client_cmd(id, "say /hud"); } } return PLUGIN_HANDLED; }
Napisane przez DarkGL w 29.06.2021 14:01
Napisane przez DarkGL w 29.06.2021 16:48
Napisane przez Misiu. w 17.05.2021 07:02
Sprawdź
#include <amxmodx> #include <fun> #include <hamsandwich> public plugin_init(){ register_plugin("Niesmiertelne TT","1.0" ,"Mysiu." ) RegisterHam(Ham_Spawn, "player", "spawn_gracza", 1); } public spawn_gracza(id) { if(get_user_team(id) == 1) { client_print(id,print_chat,"[GODMODE] Jako TT otrzymujesz GODa") set_user_godmode(id,1) } else { if(get_user_team(id) == 2) { set_user_godmode(id,0) } } }