Skocz do zawartości

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

Updater


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

#1 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 17.04.2009 19:34

Updater
Autor: Pavulon
Wersja: 0.1.1


Opis:
Zdarzyło się wam kiedyś że chcieliście dać komuś możliwość uaktualniania plików(pluginów/dźwięków itd) na waszym serwerze, ale bez dawania mu kompletnego dostępu do ftp ?
A może masz sieć serwerów i chcesz by pewne pliki były na wszystkich takie same ale nie zawsze pamiętasz wszędzie je wrzucić ?
A może po prostu chcesz żeby pliki były pobierane z jakiegoś zewnętrznego hostingu ?
To może być wszystko: lista adminów, mapcykl, strefy rash'u, dźwięki, grafiki. Wystarczy odpowiednio skonfigurowany plugin ;)

Instalacja:
Standardowo wrzucić plik .amxx do amxmodx/plugin oraz dopisać go do configs/plugins.ini a .sma do amxmodx/scripting
Wszystkie pliki konfiguracyjne oraz logi będą znajdowały się w katalogu amxmodx/configs/updater więc jeżeli po pierwszym uruchomienie plugin nie stworzy tego folderu oraz plików (files_to_update.ini; files_to_update_NET.ini) należy je stworzyć ręcznie i nadać odpowiednie uprawnienia folderom/plikom umożliwiając ich zapis.
Ważne jest też żeby wszystkie pliki które chcemy aktualizować nie były chronione przed zapisem.

files_to_update.ini - w tym pliku znajduje się aktualna konfiguracja.

;[Updater] LOCAL
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage
;Zawartosc pliku zostanie zastapiona podczas aktualizacji
;Linijki "host" i "config" powinny byc przed plikami
;"host" "jakis.host.pl"
;"config" "/kilka/folderow/plik.rozszerzenie"
;"plik" "wersja"
;"addons/amxmodx/plugins/plugin.amxx" "1.0"
;"!amxx/scripting/plugin.sma" "1.0"

Umieszczamy w nim adres hosta na którym znajduje się z dostępnymi wersjami (config), oraz listę plików które chcemy uaktualniać wraz z ich aktualnymi wersjami.

files_to_update_NET.ini - nazwa i położenie dowolne(należy umieścić na zewnętrznym serwerze), określone w files_to_update.ini. Zawiera dostępne aktualizacje.

;[Updater] NET
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage
;Linijki "host" i "config" powinny byc przed plikami
;"host" "host.na.ktorym.znajduje.sie.config"
;"config" "/polozenie/tego/pliku/na.serwerze"
;"plik" "plik.aktualizacyjny" "wersja"
;"!amxx/plugins/plugin.amxx" "!host/pobierz/stad/plugins/plugin.amxx" "1.1"
;"addons/amxmodx/scripting/plugin.sma" "host.na.ktorym.znajduje.sie.config/pobierz/stad/plugins/plugin.amxx" "1.1"

Umieszczamy w nim host i config do przyszłego sprawdzenia(co za tym idzie możemy sprawdzać kilka plików na różnych serwerach, byle były odpowiednie odwołania), oraz listę dostępnych plików wraz z miejscem skąd można je pobrać oraz wersją.

Oczywiście możemy też przekopiować odpowiedni folder(plik) z załącznika. Znajdują się w nim również pliki umożliwiające przykładową aktualizację tego pluginu.

Wymagane moduły:
  • sockets

Konfiguracja:

Cvary:
  • update_hour "5" - w której godzinie(0-23) aktualizować pliki
    -1 = tylko ręczne uruchomienie aktualizacji

Komendy:
  • amx_update - przy update_hour == -1 uruchamia aktualizacje (#ADMIN_RCON wymagany#)

Zamienniki:
W plikach przy podawaniu adresu pliku(na serwerze CS) możemy użyć:
  • !amxx == katalog amxmodx'a: przeważnie addons/amxmodx/
W plikach przy podawaniu adresu pliku aktualizacyjnego(do pobrania z zewnętrznego serwera) możemy użyć:
  • !host == wartość podana w host pliku z konfiguracją aktualizacji
Zamieniane są tylko jeśli podane na początku ścieżki.

Katalogiem głównym pobieranych plików jest cstrike/ Dlatego też przykładowo adres pliku server.cfg jest jego nazwą - "server.cfg" "wersja" a adres pliku amxx.cfg to albo "!amxx/configs/amxx.cfg" "wersja" albo "addons/amxmodx/configs/amxx.cfg" "wersja"

Jeżeli za wersję pliku podamy minus "-" to plik ten będzie aktualizowany za każdym razem niezależnie od wersji zdalnej. Jeżeli wersja zdalna tego pliku będzie inna niż lokalna to oczywiście zostanie ona zastąpiona, dlatego dla utrzymania ciągłości należy ustawić w obu config'ach wersję "-"

p.s.
Więcej o użyciu mogą jeszcze powiedzieć przykładowe pliki konfiguracyjne...

Załączone pliki


  • +
  • -
  • 3

#2 Zelimus

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:16
  • GG:
Offline

Napisano 18.04.2009 19:54

nie bardzo rozumiem hihi xD
  • +
  • -
  • 0

#3 Proximus

    Zaawansowany

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:95
  • GG:
  • Steam:steam
  • Imię:Paweł
  • Lokalizacja:Ostrowiec Św.
Offline

Napisano 18.04.2009 20:03

W skrócie - jeżeli masz serwer na jakimś hostingu i nie chcesz dawać komuś danych do ftp, ale chcesz żeby mógł wrzucać pliki to właśnie robi ten plugin z tego co zrozumiałem.
  • +
  • -
  • 0

#4 mgr inż. Pavulon

    C35H60Br2N2O4

  • Autor tematu
  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 18.04.2009 20:06

Proximus, nom coś takiego.
W skrócie możesz tym pluginem pobierać pliki z serwerów www.
A do czego konkretnie się go użyje to zależy od fantazji ;)
  • +
  • -
  • 0

#5 Abes Mapper

    Repulsion Gel

  • Przyjaciel

Reputacja: 2 017
Godlike

  • Postów:7 356
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Sulejówek
Offline

Napisano 18.04.2009 20:10

Ale jak wrzucamy coś na hosting serwa? W czasie gry? Czy jak?
  • +
  • -
  • 0

#6 mgr inż. Pavulon

    C35H60Br2N2O4

  • Autor tematu
  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 18.04.2009 21:43

Najlepiej będzie jak wytłumaczę wszystko od początku na przykładzie.
Mamy ustawiony update_hour 4 i config lokalny:

;[Updater] LOCAL
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage
;Zawartosc pliku zostanie zastapiona podczas aktualizacji
;Linijki "host" i "config" powinny byc przed plikami
"host" "pavulon.net"
"config" "/amxmodx/files_to_update_NET.ini"
"addons/amxmodx/plugins/updater.amxx" "0.1"
"!amxx/scripting/updater.sma" "0.1"

Przy takim cvarze plugin uruchomi się tylko o godzinie 4 (w innych będzie PAUSED).
Najpierw pobierze z pliku files_to_update.ini adres host'a i ścieżkę pliku configuracyjnego a następnie wczyta listę plików wraz z ich aktualnymi wersjami, czyli plugin updater.amxx w wersji 0.1 (znajdujący się w addons/amxmodx/plugins/) oraz źródło tego pluginu updater.sma także w wersji 0.1 (znajdującego się w addons/amxmodx/scripting/).
Następnie połączy się z hostem pavulon.net i pobierze z niego config znajdujący się w /amxmodx/files_to_update_NET.ini {czyli tak jak byśmy ręcznie pobrali plik http://pavulon.net/a..._update_NET.ini }

;[Updater] NET
;Srednik na poczatku oznacza ze dana linijka nie jest brana pod uwage
;Linijki "host" i "config" powinny byc przed plikami
"host" "pavulon.net"
"config" "/amxmodx/files_to_update_NET.ini"
"addons/amxmodx/plugins/updater.amxx" "pavulon.net/amxmodx/plugins/updater.amxx" "0.1"
"!amxx/scripting/updater.sma" "!host/amxmodx/scripting/updater.sma" "0.1"

I tak jak w przypadku configu lokalnego pobierze z niego host i config które w przypadku aktualizacji zastąpią poprzednie wartości.
Następnie wczyta plik do aktualizacji addons/amxmodx/plugins/updater.amxx, miejsce skąd można go pobrać pavulon.net/amxmodx/plugins/updater.amxx oraz dostępną wersję 0.1 i tak z następnym plikiem (oraz wszystkimi kolejnymi o ile występują).
Po wczytaniu wszystkich danych z obu plików następuje porównanie wersji.
Z configu lokalnego 1. jest updater.amxx w wersji 0.1. Plik ten znajduje się też w configu zdalnym, więc jest sprawdzana jest jego wersja 0.1==0.1. Pliki są w tej samej wersji więc o ile występuje plik lokalny nie pobiera się nic i sprawdzany jest kolejny plik. W przypadku gdy plik lokalny nie występuje lub dostępna jest inna wersja pobierany jest nowy plik na miejsce starego, a stary wciąż istnieje z dodaną końcówką .bak. I tak każdy plik lokalny jest porównywany ze zdalnym config'iem.
Po zakończeniu pobierania plików w przypadku zamiany choć jednego nowego zostaje zapisany nowy config lokalny z uwzględnieniem nowych wersji.
Pliki do pobrania nie muszą być na tym samym serwerze co config zdalny byle by zostało to wszystko uwzględnione, np:

"banned.cfg" "0.9"

"banned.cfg" "blacklisted.pl/get_config.php" "1.0"

możemy zapisać to np. zamiast do banned.cfg do blacklisted.cfg a w config.cfg dać exec blacklisted.cfg i cieszymy się aktualną listą banów blacklisted bez edycji naszych banów.
Pliki normalnie pobierają się trakcie gry i stają się aktualne na następnej mapie - tak samo jak przy ręcznej aktualizacji/edycji.

Dodam jeszcze odpowiedni cvar żeby pliki mogły być pobierane bez sprawdzania wersji ;)
  • +
  • -
  • 1

#7 mgr inż. Pavulon

    C35H60Br2N2O4

  • Autor tematu
  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 18.04.2009 23:09

Updated.
Przykładowo jeżeli chcemy żeby plik blacklisted.cfg (katalog cstrike/) był aktualizowany codziennie o godz 5 w nocy to ustawiamy cvar:
update_hour 5
lub pozostawiamy go bez zmian bo taki jest standardowy, w .cfg lokalnym dajemy:
"blacklisted.cfg" "-"

a w .cfg zdalnym:
"blacklisted.cfg" "blacklisted.pl/get_config.php" "-"

Dodatkowo w obu na początku przykładowo:
"host" "pavulon.net"
"config" "/amxmodx/files_to_update_NET.ini"


a żeby bany z blacklisted działały na serwerze to w server.cfg dodajemy:
exec blacklisted.cfg

i nie przejmujemy się już niczym - codziennie będzie z automatu ten plik aktualizowany.
  • +
  • -
  • 1




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

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