←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

engclient_cmd wykonuje polecenie say, ale...

  • +
  • -
Robiin - zdjęcie Robiin 22.05.2016

Cześć,

 

przykładowy kod;

		case 0:  
		{
			engclient_cmd(id, "say", "/czapki")
		}

jeden z case'ów menu, który ma wykonywać "say /czapki" u gracza, ale problem jest taki, że rzeczywiście "gracz pisze" na sayu /czapki, ale komenda nie jesy wychwytywana przez inny plugin, w tym przypadku czapki, które mają komendę /czapki.

 

Czyli na czacie jest wpisywane "say /czapki", bez błędów itp, tylko że nie wykrywa to komendy. Natomiast wpisanie ręcznie na say'u /czapki już daje efekt taki jaki bym chciał, czyli pokazuje menu czapek.

Odpowiedz

  • +
  • -
GeDox - zdjęcie GeDox 22.05.2016

Bo ona emuluje, spróbuj:

client_cmd(id, "say /czapki");
Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 22.05.2016

Wtedy będzie niepoprawnie wykonane i nie zadzaiała ;>

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 22.05.2016

Wtedy będzie niepoprawnie wykonane i nie zadzaiała ;>

 

Skoro wiesz lepiej, dlaczego ten temat? "say /czapki", a nie "say" "/czapki" bedzie dzialac poprawnie.

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 22.05.2016

 

Wtedy będzie niepoprawnie wykonane i nie zadzaiała ;>

 

Skoro wiesz lepiej, dlaczego ten temat? "say /czapki", a nie "say" "/czapki" bedzie dzialac poprawnie.

 

 

Temat po to żeby się dowiedzieć w czym problem, bo skoro "say" "/czapki" nie jest wyłapywane jako komenda, a "say /czapki" nie działa w ogóle, bo protectory na steamie, to więcej pomysłów nie mam. Próbowałem sposobów ze strony  dark'a.

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 22.05.2016

Co maja do tego protectory na steamie? :facepalm:  Komenda typu say, moze byc bez problemowo wywolana u wszystkich graczy nie zaleznie od platformy gry. Jezeli uzycie komendy "say /czapki" nie wylapuje takowej, ktora zarejestrowana zostala przez taka sama nazwe to bledow upatrywalbym sie gdzies indziej. Jakis plugin do blokady komend, lub zmiany tekstu w say jest? wyłącz lub przypisz w plugins na samym dole.

Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 22.05.2016

Co maja do tego protectory na steamie? :facepalm:  Komenda typu say, moze byc bez problemowo wywolana u wszystkich graczy nie zaleznie od platformy gry. Jezeli uzycie komendy "say /czapki" nie wylapuje takowej, ktora zarejestrowana zostala przez taka sama nazwe to bledow upatrywalbym sie gdzies indziej. Jakis plugin do blokady komend, lub zmiany tekstu w say jest? wyłącz lub przypisz w plugins na samym dole.

 

 

 

 

Czysty serwer z amxx'em (próbowałem 1.8.1, 1.8.2 i 1.8.3), prosty plugin 

register_clcmd("say /test", "test", _, "testtt")

public test(id)
{
 client_cmd(id, "say Testuje")
}

Koniec.

 

Nie działa. Pisałem już o tym temat. Próbowałem sposobów od Dark'a, pisałem na hostingach(pukawce i 1s1k), i nikt nie wpadł na nic bardziej kreatywnego niż użycie client_cmd przez engine'a.

 

Używałem pluginów które są na amxx'ie od paru lat, i działają na 100%. Nie zadziałały. Jedyne co osiągnąłem to właśnie użycie client_cmd przez engine'a, i problem jest opisany wyżej. Od hostingów i darkgl.pl dowiedziałem się że steam/ns mają protectory, a amxx 1.8.3 miało podobno wprowadzić jakąś łatkę, bo właśnie client_cmd i inne funkcje nie działały przez jakiś tam (chyba) update steam.

 

Naprawdę Twoja zarozumiałość nie pomaga, bo po pomoc tutaj przyszedłem. Bądź dalej Power Userem który wie wszystko, ale mi pomóż, co dalej już mnie nie obchodzi.

Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 25.05.2016

Może już sporo zapomniałem, ale za moich czasów to amx nie wykrywał niczego co sam robił. Jeśli wykonujesz na graczu komendę amxem to amxem jej już nie wyłapiesz. Innymi słowy ona się wykona, ale nie zaalarmuje innych pluginów w amxie, że takową gracz wykonał. Możesz ewentualnie zmienić kolejność pluginów wykonującego i wyłapującego, ale nie sądzę, żeby to coś dało.

Odpowiedz

  • +
  • -
GeDox - zdjęcie GeDox 25.05.2016

W takim razie spróbuj:

https://amxx.pl/doku.../callfunc_begin

Odpowiedz

  • +
  • -
Master Yoga - zdjęcie Master Yoga 25.05.2016

Wiem o co ci chodzi i z tego co pamiętam na 100% da się to osiągnąć w/w funkcją ( tj. Client_cmd ).
Zrób to w taki sposób do pluginy z czaspkami dodaj jeszcze jedna komendę.
NP. Register_concmd("moja_komenda", "funkcja11") zmierzam tutaj do tego by nie było komendy typu say + argument.
A potem za pomocą client_cmd wywołaj tą komendę czyli:
Client_cmd(id,"moja_komenda")
Odpowiedz

  • +
  • -
Robiin - zdjęcie Robiin 25.05.2016

Wiem o co ci chodzi i z tego co pamiętam na 100% da się to osiągnąć w/w funkcją ( tj. Client_cmd ).
Zrób to w taki sposób do pluginy z czaspkami dodaj jeszcze jedna komendę.
NP. Register_concmd("moja_komenda", "funkcja11") zmierzam tutaj do tego by nie było komendy typu say + argument.
A potem za pomocą client_cmd wywołaj tą komendę czyli:
Client_cmd(id,"moja_komenda")

 

Może już sporo zapomniałem, ale za moich czasów to amx nie wykrywał niczego co sam robił. Jeśli wykonujesz na graczu komendę amxem to amxem jej już nie wyłapiesz. Innymi słowy ona się wykona, ale nie zaalarmuje innych pluginów w amxie, że takową gracz wykonał. Możesz ewentualnie zmienić kolejność pluginów wykonującego i wyłapującego, ale nie sądzę, żeby to coś dało.

 

 

Wyjaśnione, przez cmdExecute od Dark'a;

 

http://darkgl.pl/201...torow-i-blokad/

 

 

Na początku nie działało, bo raczej ctrl+c/v potrafię, ale ostatnio mi zadziałało po lekkiej zmianie kodu. Ten sposób jako jedyny zadziałał anyway ;)

Odpowiedz