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.
|
Pobieranie tekstu
#1
Napisano 06.07.2011 08:46
#2
Napisano 06.07.2011 09:07
#include <amxmodx> #include <amxmisc> #define PLUGIN "Sprawdz Co Napisal" #define VERSION "0.0.0.0.1" #define AUTHOR "Harsay" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd ( "say", "SprawdzCoNapisal" ) } public SprawdzCoNapisal(id) { new said[192] // wiem że w tym zapisuje się ciąg znaków read_args ( said, 191 ) // a tutaj chyba odczytuje zmienną client_print(0, print_chat, "[Sprawdz Co Napisal] Ktos napisal - %s", said) }
Na takiej zasadzie działa swear replacement. A co do wyjaśnień to się tylko domyślam
Szkoda że nie jest read_args opisane w dokumentacji na amxx.pl
Dokumentacja AMXX.pl: Core >> amxmodx > read_args
Ale raczej służy do odczytywania ciągu znaków
@edit
Działa na 100%
Steam Community :: hry mix óń :: Screenshots
Użytkownik Harsay edytował ten post 06.07.2011 09:18
#3
Napisano 06.07.2011 09:29
register_clcmd ( "say !", "SprawdzCoNapisal" )
to przeczyta mi to co jest dalej po "!" ?
#4
Napisano 06.07.2011 09:32
@edit
poczekaj...
register_clcmd ( "say ^"!", "SprawdzCoNapisal" )
Wtedy powinno zareagować. Jeżeli nie to zaraz napiszę jak trzeba
@edit2
Jednak nie. Sekunda...
@edit3
#include <amxmodx> #include <amxmisc> #define PLUGIN "Sprawdz Co Napisal" #define VERSION "0.0.0.0.1" #define AUTHOR "Harsay" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd ( "say", "SprawdzCoNapisal" ) } public SprawdzCoNapisal(id) { new said[192] read_args ( said, 191 ) if ( containi ( said, ! ) != -1 ) // Sprawdzamy czy tekst zawiera ! Jezeli nie zwroci -1 tp nie wywola client_print client_print(0, print_chat, "[Sprawdz Co Napisal] Ktos napisal - %s", said) }
Zdaje mi się że ! musi być na początku a ten kod pokaże tekst zawierający w każdym miejscu.
Więc containi musi zwrócić 0
#include <amxmodx> #include <amxmisc> #define PLUGIN "Sprawdz Co Napisal" #define VERSION "0.0.0.0.1" #define AUTHOR "Harsay" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd ( "say", "SprawdzCoNapisal" ) } public SprawdzCoNapisal(id) { new said[192] read_args ( said, 191 ) if ( containi ( said, ! ) == 0 ) client_print(0, print_chat, "[Sprawdz Co Napisal] Ktos napisal - %s", said) }
Użytkownik Harsay edytował ten post 06.07.2011 09:53
#5
Napisano 06.07.2011 10:16
Error: Invalid expression, assumed zero on line 19
w linijce
if ( containi ( said, ! ) != -1 )
#6
Napisano 06.07.2011 10:23
if ( containi ( said, "!" ) != -1 )a tak po za tym to wiesz ze to się wykona nawet w takim przypadku ?
say "Elo ludzie !" albo "elo! ludzie"
#7
Napisano 06.07.2011 11:11
new g_sSomeoneSaid[33][128];
//...
g_sSomeoneSaid[id] = vArgs;
#8
Napisano 06.07.2011 12:49
#9
Napisano 06.07.2011 15:20
Nie ma co domniemywać, czy to będzie działało, czy nie, po prostu sprawdźcie kod, zanim go zamieścicie...
Proszę:
/* vaverix, amxx-dev.pl, amxx.pl */ #include <amxmodx> #define MAX 128 // maksymalna dlugosc wiadomosci new g_text[128]; public plugin_init() { register_plugin("Nowy Plugin","1.0","#Vaverix."); register_clcmd("say","cmd_say"); register_clcmd("say_team","cmd_say"); } public cmd_say(id) { new arg[MAX]; // deklarujemy zmienną w której będzie wysłana wiadomość read_argv(1, arg, MAX-1); // pobieramy wiadomość (można też przez read_args, bez znaczenia) if(!equal("!",arg,1)) // sprawdzamy, czy na początku wiadomości znajduję się wykrzyknik return PLUGIN_CONTINUE; // jeśli nie, to zostawiamy wiadomość w spokoju // jeśli tak to informujemy o tym gracza client_print(id, print_chat, "Twoja wiadomosc zawiera wykrzyknik i zostala przechowana w zmiennej g_text..."); replace(arg, MAX-1, "!", ""); // usuwamy wykrzynik na początku wiadomości copy(g_text, MAX-1, arg); // zapisujemy wiadomość bez wykrzyknika do stringu g_text return PLUGIN_HANDLED; // i nie pokazujemy tej wiadomości na czacie... }
Coś takiego?
ogólnie to chodzi mi o to, żeby pobierało mi tekst gdy jest na początku ! (dla przykładu)
W efekcie jak wyślesz wiadomość zawierającą na początku wykrzyknik, to zostanie ona zapisana do stringu g_text, czyli dokładnie tak, jak chciałeś...
Pozdrawiam.
Użytkownik vaverix edytował ten post 06.07.2011 15:26
#10
Napisano 06.07.2011 16:08
Do zamknięcia
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych