Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

LangMotd


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

#1 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 26.08.2009 12:16

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ć
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.

Załączone pliki


  • +
  • -
  • 1

#2 berix

    Wszechwidzący

  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:254
  • Lokalizacja:Ruda sl (slaskie)
Offline

Napisano 31.08.2009 19:58

ok a jak zrobic jak plik html bedzie na zewnętrzym serwerze (http) poniewaz chce aby plik mial wiecej niz ok ~1,5 KB
  • +
  • -
  • 0

#3 R3X

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 31.08.2009 20:10

file_exists nie działa przez http://, więc problemem byłoby sprawdzać istnienie pliku

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 ;>
  • +
  • -
  • 0




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

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