Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Komendy przez register_clcmd czy wyłapywanie ich z każdego say?



  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 Ossal

    Wszechwidzący

  • Użytkownik

Reputacja: 20
Życzliwy

  • Postów:273
  • GG:
  • Lokalizacja:Warszawa
Offline

Napisano 23.10.2015 23:20

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ą?
  • +
  • -
  • 0

#2 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 26.10.2015 08:28

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod X > Pytania

do

Scripting AMXX > Pytania
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#3 Puchate

    Wszechobecny

  • Użytkownik

Reputacja: 204
Profesjonalista

  • Postów:433
  • Lokalizacja:Polska
Offline

Napisano 28.10.2015 09:16

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


  • +
  • -
  • 0

#4 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 10.11.2015 05:32

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

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych:

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych