a
b
c
Jak ktoś wpisze w chat jedno z tych liter to wyśw. się słowo "
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.
|
Napisano 02.06.2011 14:29
Napisano 02.06.2011 14:56
#include <amxmodx>
#include <amxmisc>
#include <celltrie>
#define PLUGIN "Slowa"
#define VERSION "1.0"
#define AUTHOR "R3X"
//wywal jak trzeba wpisac dokladnie tak jak w configu
//zostaw jesli Haslo i hASlO maja oznaczac to samo slowo
#define IGNORE_CASE
new Trie:Slowa;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
//Hook czatu
register_clcmd("say", "cmdSay");
}
public plugin_cfg(){
//inicjalizacja drzewa
Slowa = TrieCreate();
static szFile[198];
//budowa sciezki do pliku
get_configsdir(szFile, charsmax(szFile));
add(szFile, charsmax(szFile), "/slowa.txt");
//otworz plik do odczytu tekstowego
new fp = fopen(szFile, "rt");
if(fp){
//jesli istnieje
while( !feof(fp) ){ //dopoki nie koniec pliku
//odczytaj linijke
fgets(fp, szFile, charsmax(szFile));
//usun spacje z poczatku i z konca
trim(szFile);
#if defined IGNORE_CASE
//jesli wielkosc liter nie ma znaczenia zamien wszystkie na male
strtolower(szFile);
#endif
//ustaw klucz '<slowo>' w drzewie
TrieSetCell(Slowa, szFile, 1);
}
fclose(fp);
}
}
public cmdSay(id){
static szMessage[198];
//odczytaj co powiedzial gracz
read_args(szMessage, 197);
//usun ""
remove_quotes(szMessage);
//usun spacje z poczatku i z konca
trim(szMessage);
#if defined IGNORE_CASE
//jesli wielkosc liter nie ma znaczenia zamien wszystkie na male
strtolower(szMessage);
#endif
if(TrieKeyExists(Slowa, szMessage)){
client_print(id, print_chat, "XD");
}
}
Napisano 02.06.2011 22:08
Napisano 03.06.2011 09:53
Napisano 03.06.2011 10:00
Napisano 03.06.2011 10:02
Napisano 03.06.2011 10:11
if(TrieGetString(Slowa, szMessage, szMessage, 63)){
client_print(id, print_chat, "XD - %s", szMessage);
}
if(TrieGetString(Slowa, szMessage, szMessage, 63, DrugieSlowo, 63)){
client_print(id, print_chat, "XD - %s, %s", szMessage, DrugieSlowo);
}
if(3 != parse(szFile, szFile, 31, szText, 64))
continue;
Użytkownik GoldeN edytował ten post 03.06.2011 10:12
Napisano 03.06.2011 10:15
Napisano 03.06.2011 15:37
public cmdSay(id){
new szMessage[192];
read_args(szMessage, 191);
new txt[512];
for(new i = 0; i <= ArraySize(Command); i++)
{
ArrayGetString(Command, i, txt, charsmax(txt));
if(containi(szMessage, txt) != -1)
client_print(id, print_chat, "XD");
}
}
Użytkownik GoldeN edytował ten post 04.06.2011 00:29
Napisano 04.06.2011 17:52
Napisano 04.06.2011 22:09
Użytkownik GoldeN edytował ten post 05.06.2011 10:14
0 użytkowników, 0 gości, 0 anonimowych