Komendy przez register_clcmd czy wyłapywan...
Ossal
23.10.2015
Chyba jasne, chodzi o wyłapywanie komend wpisywanych na chacie przez graczy, który sposób lepszy?
dla każdej komendy register_clcmd w plugin_init np tak:
register_clcmd("say /cos","FunckjaKomendyCos") register_clcmd("say /cos2","FunckjaKomendyCos2") register_clcmd("say /cos3","FunckjaKomendyCos3") register_clcmd("say /cos4","FunckjaKomendyCos4")
czy może wyłapanie say w plugin_init na przykład tak:
register_concmd("say","handle_say",ADMIN_USER) register_concmd("say_team","handle_say",ADMIN_USER)po czym odczytanie argumentu komendy i porównywanie stringów czy wpisany tekst to komenda?
Który sposób lepszy (dla serwera, NIE programisty), ewentualnie: przy jakiej ilości komend się opłaca zamienić metodę na inną?
Pytanie niby proste, bo funckja handle_say wywoła się przy każdym jakimkolwiek tekscie- potem porównywanie stringów (tyle razy ile jest komend), a funkcje poszczególnych komend są przypisane tylko do tych komend i tylko one je uruchomią, ale amx jest dziwny więc wole zapytać A czy przypadkiem register_clcmd nie działa właśnie tak jak ten drugi sposób?
Ze względu na to, że często otrzymuję odpowiedzi nie na moje pytanie to powtórzę to pytanie:
Który sposób lepszy (dla serwera, NIE programisty), ewentualnie: przy jakiej ilości komend się opłaca zamienić metodę na inną?
radim
26.10.2015
Automatyczna wiadomość
Ten temat został przeniesiony z forum
AMX Mod X > Pytania
do
Scripting AMXX > Pytania
Ten temat został przeniesiony z forum
AMX Mod X > Pytania
do
Scripting AMXX > Pytania
grankee
10.11.2015
Jest to tak prosta komenda, że nie sądze aby to miało znaczenie strategiczne w sensie zużycia zasobów itp.
Skoro jednak musisz wiedzieć to zacznę trop.
register_clcmd("say /cos","FunckjaKomendyCos")
Co się dzieje? Czy Droga Silnik->metamod->amxmodx->plugin jest pokonywana raz? Jesli tak to nie ma to kompletnie zaczenia, jeśli więcej to wychodzi na to, że drugi sposób lepszy.
Inna sprawa jeśli wtedy i tak przy kazdym sayu jest alarmowana funkcja i porównywana tresc - wówczas to bez znaczenia.
Ja obstawiam, że
register_clcmd("say /cos","FunckjaKomendyCos")
jest lepszym wyjściem.
Użytkownik grankee edytował ten post 10.11.2015 05:36