←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Komendy przez register_clcmd czy wyłapywan...

  • +
  • -
Ossal - zdjęcie 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? :D
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ą?
Odpowiedz

  • +
  • -
radim - zdjęcie radim 26.10.2015

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod X > Pytania

do

Scripting AMXX > Pytania
Odpowiedz

  • +
  • -
Puchate - zdjęcie Puchate 28.10.2015

Teoretycznie pierwszy bo nie musisz co każdy say porównywać argumentu.

Odpowiedz

  • +
  • -
grankee - zdjęcie 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
Odpowiedz