LangMotd
R3X
26.08.2009
LangMotd
v1.01
To rozszerzenie pozwala na pokazywanie graczowi okna z zawartością zależną od jego języka.
Kod powstał dzięki pomysłowi berix`a http://amxx.pl/topic... ... t17682.htm
Funkcja rejestrująca langmotd; zwraca wskaźnik, który należy przechować
const szExt[] - rozszerzenie plików językowych
const szDefaultFile[] - pokaże ten plik, gdy nie znajdzie odpowiedniego dla języka gracza i serwa
Funkcja pokazująca langmotd, zwraca true lub false, zależy to od tego, czy znaleziono jakiś plik do pokazania
langmotd - wskaźnik zwrócony przez register_langmotd
const szHeader[] - nagłówek okienka
Jak to działa?
Od gracza pobierany jest kod języka, np. pl, en. W folderze szCustomDir odszukiwany jest plik o nazwie tego kodu i podanym rozszerzeniu:
Gdy go nie znajdzie poszukuje w identyczny sposób tylko kod pobiera od serwera.
Gdy nie znajdzie pliku nawet dla serwera pokaże szDefaultFile (czyli w obu przykładach help.txt)
Wszystkie ścieżki podawane są od cstrike/
Jak go użyć w swoim pluginie?
W nagłówkowej części plugin należy dopisać:
Można dowolnie zmieniać ilość obsługiwanych motd przez definicję stałej MAX_MOTDS nad include; np:
Domyślna wartość to 3.
v1.01
To rozszerzenie pozwala na pokazywanie graczowi okna z zawartością zależną od jego języka.
Kod powstał dzięki pomysłowi berix`a http://amxx.pl/topic... ... t17682.htm
Funkcja rejestrująca langmotd; zwraca wskaźnik, który należy przechować
register_langmotd(const szCustomDir[], const szExt[], const szDefaultFile[])szCustomDir[] - folder w który znajdują się pliki językowe
const szExt[] - rozszerzenie plików językowych
const szDefaultFile[] - pokaże ten plik, gdy nie znajdzie odpowiedniego dla języka gracza i serwa
Funkcja pokazująca langmotd, zwraca true lub false, zależy to od tego, czy znaleziono jakiś plik do pokazania
show_langmotd(id, langmotd, const szHeader[])id - index gracza
langmotd - wskaźnik zwrócony przez register_langmotd
const szHeader[] - nagłówek okienka
Jak to działa?
Od gracza pobierany jest kod języka, np. pl, en. W folderze szCustomDir odszukiwany jest plik o nazwie tego kodu i podanym rozszerzeniu:
gpHelp = register_langmotd("help/","txt","help.txt");gdy mam język "pl" szuka pliku
help/pl.txt
gpHelp = register_langmotd("addons/amxmodx/lang/help/","html","help.txt");gdy mam język "en" szuka pliku
addons/amxmodx/lang/help/en.html
Gdy go nie znajdzie poszukuje w identyczny sposób tylko kod pobiera od serwera.
Gdy nie znajdzie pliku nawet dla serwera pokaże szDefaultFile (czyli w obu przykładach help.txt)
Wszystkie ścieżki podawane są od cstrike/
Jak go użyć w swoim pluginie?
W nagłówkowej części plugin należy dopisać:
#include "langmotd.inl"a plik langmotd.inl umieścić w tym samym folderze co .sma
Można dowolnie zmieniać ilość obsługiwanych motd przez definicję stałej MAX_MOTDS nad include; np:
#define MAX_MOTDS 10 #include "langmotd.inl"i możesz zarejestrować 10 różnych LangMotd.
Domyślna wartość to 3.
Attached Files
berix
31.08.2009
ok a jak zrobic jak plik html bedzie na zewnętrzym serwerze (http) poniewaz chce aby plik mial wiecej niz ok ~1,5 KB
R3X
31.08.2009
file_exists nie działa przez http://, więc problemem byłoby sprawdzać istnienie pliku
jeśli usuniesz:
jeśli usuniesz:
if(!file_exists(szFile)){ get_pcvar_string(gcvarLang, szLang, 3); prepareLangKey(szLang, 3); get_langmotd_file(langmotd, szLang, szFile, LEN_DEFFILE); if(!file_exists(szFile)){ copy(szFile, LEN_DEFFILE, gszDefFile[langmotd]); if(!file_exists(szFile)) return false; } }Możesz użyc funkcji tak:
gpHelp = register_langmotd("http://www.google.pl","html","http://www.google.pl/help.html");z tym, że brak plik oznacza puste okno ;>