Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Sebik
Gangsta Mapper
Dołączył: 17 Sie 2006
Pochwał: 1 Ostrzeżeń: 1 Posty: 772
Skąd: Śląskie/Leszczyny
|
Wysłany: 18 listopada 2009, 16:35 Temat postu: Manialinks Turtorial... [90% done] |
|
|
I. WSTĘP
1. Wprowadzenie
Manialinki to specialnie przygotowane strony, ktore można przeglądać w przeglądarce dołączonej do gry. Wbrew pozorom możliwe jest to także dla użytkowników wersji Nations. Takie strony dają dużo możliwości (głównie szybki dostęp do zawartości bez wychodzenia z gry)! Pliki manialinków można generować głównie przez odpowiednie tagi w plikach xml, choć nic nie stoi na przeszkodzie, aby funckję generatora pełnił interpreter PHP.
2. Przygotowanie
Do stworzenia manialinka po pierwsze będziemy potrzebowali miejsca w sieci. Im więcej opcji oferuje nam dany hosting tym lepiej, jednak nie zapominajmy, iż na nasze potrzeby wystarcza naprawdę niewiele. Dodatkowo, jeżeli posiadamy wersję United można tworzy przekierowania do złożonych adresów URL poprzez proste skojarzeniowe hasła.
Przed tworzeniem manialinka zalecana jest wcześniejsza styczność choćby z HTMLem
3. Rejestrowanie manialinka
Nasz manialink nie wymaga rejestracji, jednak zostawiając go bez niej będziemy musieli podawać pełne adresy URL, aby dostać się do podstron, oraz nie będziemy mogli stosować tzw. ManiaCodes (o nich póniej), dlatego odsyłam na stronę:
http://official.trackmania.com/tmf-playerpage/
Po zalogowaniu na stronę klikamy na zakładkę"Manialinks/Maniacodes", a kolejno rejestrujemy nasz plik wpisując w Code pożądaną nazwę (np. tmpl), można też dodać podstrony (np. tmpl:newsy, konwencją jest oddzielanie podstron dwukropkiem). Kolejny parametr URL - to pełny adres manialinka (np. http://www.tmpl.info/manialink/index.xml). Jako typ ustawiamy oczywiście Manialink i akceptujemy.
II. PODSTAWY
4. Szkielet manialinka
Praktycznie każdy manialink powinien zaczynać się deklaracją pliku XML oraz znacznikami <manialink> oraz </manialink> (wyjątek stanowią includowane kody). Na pewno zauważycie analogię w stosunku do innych języków kodowania stron. Między tymi znacznikami znajdzie się cała zawartość manialinka.
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<!-- Nasz pierwszy manialink! -->
</manialink> |
Przykład 1 - http://www.mlpl.y0.pl/tutek/przyklad01.xml
Narazie wyświetli nam się puste tło, ale za niedługo spróbujemy je czymś wypełnić. Jak poznać po kodzie kodujemy w utf-8, więc nie będzie problemów z polskimi znakami
5. Budowanie manialinka
Zasadniczą różnicą jest jednak traktowanie przez wewnętrzną przeglądarkę wszystkich elementów jako niezależne częci strony. W praktyce to oznacza, że jeżeli wstawimy do kodu dwa obiekty tekstowe bez ustawienia ich pozycji elementy nałożą się na siebie. Zatem pozycjonowanie będzie tutaj kluczowe. Także, wszystkie występujące tam tagi będą wymagały domknięcia.
6. Trochę o frame'ach...
Aby ułatwić sobie pracę z pozycjonowaniem rozbudowującego się manialinka można grupować elementy w tagi <frame>. Zmieniając jego pozycję, przesuniemy wszystko, co znajduje się wewnątrz niego. Spójrzmy na przykład:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<!-- Elementy wewnątrz frame -->
</frame>
</manialink> |
Poznaliśmy także pierwszy atrybut określający pozycję (istnieje także atrybut pos z poprzedniej generacji manialinków, ale jest bardzo niewygodny). Zwróćmy uwagę, iż każda wartość bezwzględnie musi być wzięta w cudzysłowy! Wbrew pozorom określamy aż 3 kierunki w trybucie posn:
Pierwsza wartość (czyli z lewej do prawej) waha się od wartości -64 do 64, za igreka (z dołu do góry) najlepiej przyjąć wartości od -48 do 48, a parametr Z (obiekt o większym "Z" pokrywa te o mniejszym) przyjmuje wartości od -32 do 32. Możliwe jest oczywiście użycie wartości z commą, np. 31.8.
7. Label'e - elementy tekstowe
Skoro już tak długo i wytrwale czytacie moje ględzenie czas wykonać coś, co da efekt! Do tego między innymi służy tag <label>, jak wiadomo najlepiej się temu przyjrzeć w praktyce:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<label posn="0 0 0" text="O kurde, to działa?!"></label>
</frame>
</manialink> |
Przykład 2 - http://www.mlpl.y0.pl/tutek/przyklad02.xml
Atrybut posn już znamy i działa w sumie analogicznie jak we <frame>. Oprócz tego dodałem atrybut text, którego wartość to po prostu tekst, który ma zostać wypisany. Także polecam atrybut autonewline o wartości "1", który automatycznie przy dłuższych opisach przeniesie nam kolejne linijki do odpowiednich linii. Oprócz tego istnieje wiele innych atrybutów takich jak url, manialink, scale oraz, które na tym poziomie wtajemniczenia nam się na przydadzą. Pełny ich spis zamieszczam na dole poradnika.
8. Wygodny zapis
Jeżeli <manialink> i <frame> wymaga od nas zamknięcia trochę póniej niż otwarcia ze względu na to, że zawiera w sobie elementy o tyle <label> w środku jest pusty. A jako, że nie lubimy pisać, skrócimy sobie zapis tak:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<label posn="0 0 0" text="O kurde, to działa?!" />
</frame>
</manialink> |
Zapis w punkcie powyżej i w tym są równoważne. Od teraz będę używać skróconej wersji zapisu.
9. Atrybuty wyrównywania halign i valign
Jako, że Nadeo słynie z dziwnych pomysłów postanowiło zaskoczyć nas i tym razem! Na logikę człowiek stwierdziłby, że halign zapewne dotyczy wysokości, a valign wyrównywania w poziomie. Jednak okazuje się że jest zupełnie na odwrót. Atrybut valign może przyjąc atrybuty top, center lub bottom, co oznacza odpwiednio wyrównanie do góry, środka i spodu. Natomiast atrybut halign przyjmie odpwiednio wartości left, center lub right.
10. Quad'y - ramki oraz tło
Quad to kolejny tag, który tym razem będzie ustawiał swojego rodzaju ramkę. Oprócz pozycji dość ważny będzie także rozmiar ustalany w atrybucie sizen oraz wygląd. TrackMania umożliwia nam używanie gotowych styli, dzięki czemu nie musimy czekać na załadowanie się poszczególnych obrazków jednakże z drugiej strony wybór jest ograniczony. Wykaz styli między innymi znajdziecie na tym manialinku: http://smurf1.free.fr/mle/index.xml lub na stronie: http://fish.stabb.de/styles/. Tak więc przykładowy quad może wyglądać tak:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<quad posn="0 0 -5" sizen="30 30" halign="center" valign="center" style="Bgs1" substyle="BgWindow1" />
</frame>
</manialink> |
Przykład 3 - http://www.mlpl.y0.pl/tutek/przyklad03.xml
Również nic nie stoi na przeszkodzie by ustawić quada o wymiarach 128 na 96 jako tło strony. Jeśli rogi są zaokrąglone sam quad można poszerzyć. Nie zapomnimy dać w miarę niskiego parametru Z, tak aby na pewno nie przesłonił innego elementu strony:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<quad posn="0 0 -32" sizen="128 96" halign="center" valign="center" style="Bgs1" substyle="BgTitle3_3" />
<quad posn="0 0 -5" sizen="30 30" halign="center" valign="center" style="Bgs1" substyle="BgWindow1" />
</frame>
</manialink> |
Przykład 4 - http://www.mlpl.y0.pl/tutek/przyklad04.xml
Także quady obejmują szeroką grupę przycisków. Dodamy teraz do tego jeszcze jeden atrybut url, który przenosi do wybranej strony (można użyć także manialink, jeśli poruszam się po manialinku):
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<quad posn="0 0 0" sizen="10 10" halign="center" valign="center" style="Icons64x64_1" substyle="ButtonLeagues" url="http://www.tmpl.info" />
</frame>
</manialink> |
Przykład 5 - http://www.mlpl.y0.pl/tutek/przyklad05.xml
Na przyszłość jeżeli będziemy poruszać się wewnątrz manialinka jako atrybut manialink możemy podać wartość:
Kod: |
manialink="./podstrona.xml" |
Co odniesie nas od razu do wybranego pliku w obrębie katalogu. Dość znacznie ułatwia pisanie oraz w pewnym stopniu uniezależnia od działania po przeniesieniu w inne miejsce.
12. Wyrównywanie quadów i labeli
Jeżeli będziemy chcieli ustawić więcej quadów możemy posłużyć się albo opcją <frame>, albo wyrównamy quady. Jeżeli nie będzie nam to utrudniało sprawy w dołączaniu kolejnych elementów możemy spróbować pobawić się z wyrównywaniem. Jeżeli ustawimy halign na "left" a valign na "top" to quad ustawi się stykając się górnym lewym rogiem z punktem ustalonym w atrybucie posn. Najlepiej pokaże to rysunek zaczerpnięty z pewnego turtoriala:
Spójrzymy na przykład:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="-10 -10 0">
<quad posn="0 0 0" sizen="10 10" halign="right" valign="top" style="Bgs1" substyle="BgTitle3" />
<quad posn="0 0 0" sizen="30 10" halign="left" valign="top" style="Bgs1" substyle="BgTitle3_1" />
<quad posn="0 0 0" sizen="10 30" halign="right" valign="bottom" style="Bgs1" substyle="BgTitle3_2" />
<quad posn="0 0 0" sizen="30 30" halign="left" valign="bottom" style="Bgs1" substyle="BgTitle3_3" />
</frame>
</manialink> |
Przykład 6 - http://www.mlpl.y0.pl/tutek/przyklad06.xml
Nie musimy się obawiać o badanie pozycji ponieważ wszystkie quady odnoszą się do tego samego punktu (warto też zwrócić uwagę na pierwsze praktyczne wykorzystanie frame'a. Z labelami będzie podobnie. Ja proponuję jako za atrybut halign użyć left, wtedy tekst ładnie będzie zaczynać się od nowej linii. Ale, żeby nie było proponuję także spojrzeć, jak będzie wyglądał efekt, gdy użyjemy każdej z wersji:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<quad posn="0.1 0 -1" sizen="1 96" halign="center" valign="center" style="Icons64x64_1" substyle="TagTypeNone" />
<label posn="0 5 0" halign="right" valign="center" text="HALIGN=RIGHT" />
<label posn="0 0 0" halign="center" valign="center" text="HALIGN=CENTER" />
<label posn="0 -5 0" halign="left" valign="center" text="HALIGN=LEFT" />
</frame>
</manialink> |
Przykład 7 - http://www.mlpl.y0.pl/tutek/przyklad07.xml
13. <include> - dzielimy kod na części
Podczas rozbudowy naszego manialinka na pewno zechcemy pogrupować elementy. Na przykład menu czy stopka powinny trafić do osobnych plików xml. Jak wykonać taką operację?
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<include url="./naglowek.xml"/>
</frame>
</manialink> |
A tak prezentuje się plik naglowek.xml :
Kod: |
<frame>
<label posn="0 40 0" scale="1.5" style="TextRaceChrono" text="Mój manialink!" />
</frame> |
Warto zwrócić uwagę na, to iż nasz includowany .xml nie ma podstawowych znaczników jak <manialink> oraz deklaracji xml'a. Za to całość musi być ujęta w znaczniki <frame>. Inaczej zostałaby odczytana wyłącznie pierwsza linijka dokumentu. Zachęcam także, do ekspeymentów
14. <format> - manialinkowy CSS
Jeżeli na przykład mamy zamiar wypisać kilka labeli ale nie chcemy dla każdego wpisywać atrybutów można ominąć to sprytnym sposobem - tagiem <format>. Tag ten obowiązuje wyłącznie we frame'u, w którym został wpisany (jeżeli zagnieździmy kolejne <frame>'y te odziedziczą wpisane we <format> wartości). Zerknijmy na poniższy przykład:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<manialink>
<frame posn="0 0 0">
<format style="TextValueSmall" />
<label posn="0 10 0" halign="center" valign="center" text="Tekst 1" />
<frame posn="0 0 0">
<format textsize="0.5" textcolor="080f" />
<label posn="0 5 0" halign="center" valign="center" text="Tekst 2" />
<frame posn="0 0 0">
<format style="TextRaceChrono" />
<label posn="0 0 0" halign="center" valign="center" text="Tekst 3" />
</frame>
<label posn="0 -5 0" halign="center" valign="center" text="Tekst 4" />
</frame>
<label posn="0 -10 0" halign="center" valign="center" text="Tekst 5" />
</frame>
</manialink> |
Przykład 8 - http://www.mlpl.y0.pl/tutek/przyklad08.xml
III. INDEKS ATRYBUTÓW
15. Spis atrybutów - label:
* posn="X Y Z" – pozycja tekstu
* sizen="X Y" – szerokość i wysokość tekstu
* scale="skala" - przeskalowanie tekstu o daną wartość, 1 to domyślna wartość
* halign="left/center/right" – wyrównanie w poziomie
* valign="top/center/bottom" – wyrównanie w pionie
* text="tekst" – tekst, pojawiający się w labelu (można używać formatowania $...)
* autonewline="0/1" – gdy wartość jest równa 1 tekst jest przenoszony do kolejnych linii
* url="link" – link do zewnętrznej strony WWW
* manialink="link" – link do manialinka
* maniazones="link" – link do forum ManiaZones
* addplayerid="0/1" - gdy wartość wynosi 1 do manialinka doczepione zostają dodatkowe informacji np. loginu, nicku oraz narodowości gracza (playerlogin, nickname, lang, path)
16. Spis atrybutów - quad:
* posn, sizen, scale, halign, valign, url. manialink, maniazones, addplayerid - opisane w labelu
* image="link" – alternatywnie zamiast stylu można utworzyć ramkę, której tekstura to wybrany obraz (obsługa formatów .jpg, .tga and .dds, .gif .png)
* imagefocus="link" – obraz pokazujący się po najechaniu na quad (musi posiadać odsyłacz do innej strony lub manialinka)
* style="kategoria", substyle="styl" – jeden z predefiniowanych stylów wyglądu quada
* bgcolor="RGBA" – wybrany kolor quada (R-czerwony, G-zielony, B-niebieski, A-kanał alfa)
* url="externalHomepage.html" – Link to a external page
* manialink="ManiaLink" – Link to a Manialink (registered code or URL)
* maniazones="Maniazones-Link" – Link to ManiaZones
17. Spis atrybutów - format:
* textsize="wartość" – rozmiar tekstu
* textcolor="RGBA" – kolor tekstu
* style="styl" - predefinowany styl (labela)
18. Spis atrybutów - frame:
* posn="X Y Z" - pozycja frame'a
19. Spis atrybutów - include:
* url="link" - ścieżka to pliku, który ma być załadowany i włączony do kodu strony
IV. MANIACODES
20. ManiaCodes - wbudowane skrypty
Do zarejestrowanych Manialinków (patrz: rodział 3) można dodawać także tzw. pliki ManiaCode (ich kodowanie są post niżej - dzięki Rhino!). Są to po prostu pliki .xml które nie zawierają w sobie kodu strony lecz instrukcje jak wykonać daną akcję (np. pewnien ManiaCode może być odpowiedzialny za wykrycie trasy na serwerze i ściągnięcie jej na nasz komputer do odpowiedniego katalogu). Instrukcje maniacode mogą być użyte wielokrotnie.
Warto pamiętać, jeżeli już udostępniamy jakiś maniacode, aby nie ujawniała adresu zawartości (po wtedy można sobie adres wklepać i ściągnąć coś za darmo) oraz należy Maniacode przetestować aby działał prawidło (niejeden gracz by się zdenerwował, gdyby po zapłaceniu 500 miedziaków maniacode zwrócił by mu bład zamiast skina czy moda). Cen za wykonanie skryptu nie ustalamy w samym pliku lecz dopiero przy rejestracji jego na PlayerPage'u.
Spis dostępnych tagów jak już pisałem przedstawiony jest post niżej
V. PLAYERPAGE
21. Wstęp
Playerpage to strona umożliwiająca nam zarejestrowania ManiaLinka lub ManiaCode co daje nam wiele korzyści - po pierwsze skrócony i wygodny adres, a po drugie umożlwia nam ustalenie cen na wykonanie skryptów ManiaCode i monitorowania zysków.
22. Logowanie
Jedyną przeszkodą do zalogowania się i zajrzenia w listę manialinków będzie albo nieznajomość naszego loginu/hasła z gry, albo posiadanie wersji konta Nations. Co prawda zalogujemy się, ale tylko gracze United będą mogli dodawać swoje Manialinki (dla graczy Nations po prostu ta zakładka będzie niewidoczna). Podając nasz login i hasło z gry logujemy się na tej stronie - PLAYERPAGE. Następnie po lewej widnieje zakładka "Manialinks/Maniacodes". Klikając na nią znajdziemy się we właściwym menu.
23. Dodawanie Manialinków
Aby dodać ManiaLink należy podać dwa parametry. Pierwszy to "Code" - oznaczajacy hasło skojarzeniowe, po którego wpisaniu znajdziemy się na stronie wypisanej poniżej w polu "URL". Np. za code przyjmę tmpl, a za url http://www.tmpl.info/ml/index.xml, znowu tworząc tmpl:klany wpiszę adres http://www.tmpl.info/ml/clans.xml. Po wybraniu typu kodu jako "ManiaLink" i zaakceptowaniu formularza przyciskiem "Save this code" na liście pojawi się nowy wprowadzony kod.
Od teraz działa on także w grze. Dużą wadą tego rozwiązania jest to, że każdą stronę trzeba wpisywać ręcznie na stronie. Rozwiązaniem może być albo wprowadzenie małej ilości podstron, albo zarejestrowanie wyłącznie strony startowej i o ile nie zachodzi taka potrzeba podawanie w odnośnikach w kodzie .xml pełnych adresów URL.
23. Dodawanie Maniacode'ów
Dodawanie to wygląda bardzo podobnie jak w kwestii ManiaLinka, jednak z tym, że typ to "ManiaCode" oraz że można ustawić opłatę za dostęp do kodu. W polu "Coppers Cost" ustawiamy całą stawkę, którą gracz będzie musiał uiścić, aby otrzymać dostęp. Poniżej są wypisani gracze, którzy otrzymają miedziaki rozdzielone z całej puli. Nadeo MUSI otrzymać 5% całego zarobku, dlatego najlepiej jako całkowity koszt ustawiać sumy podzielne przez 20, aby jak najmniej na tym stracić. Inaczej zysk Nadeo trzeba zaokrąglić w górę, że przy 50 miedziakach Nadeo musi otrzymać 3 (5% z 50 = 2,5). Resztę miedziaków w "Beneficial players" można rozdysponować pomiędzy dowolną liczbę loginów (najczęściej jednak jest to 1 login - autora manialinka ). Każdą akcję - czy dodanie loginu, czy zmianę ilości miedziaków trzeba aktualizować "Save this Code". Nie lubię działania tego skryptu, bo zapisuje tylko 1 zmianę, ale trzeba brać co dają. Po każdym kliknięciu "Save this code" pokaże się w polu "Sum" kontrolna liczba miedziaków rozdanych poszczególnym graczom. Jeśli nie jest ona zgodna z "Coppers Cost" formularz nie zostanie zapisany. Jeśli jednak wszystko się zgadza wciśnięcia "Save this code" powinno dodać nasz ManiaCode do listy.
24. Lista aktualnych kodów
Poniżej formularza znajduje się lista dodanych przez nasz kodów. Podane są tam informacje wskazanie przez nas w formularzu oraz przyciski "Delete" - usuń oraz "Edit" - edytuj. Przy Maniacodes warto zobaczyć także na zakładkę "Revenues", która oznacza nasz profit. Na samym dole "Total Revenues" sumuje wszystkie zyski i wskazuje cały nasz dochód z ManiaLinka. Po zaktualizowaniu listy można się wylogować.
ToDo
wielojęzyczne manialinki[/list]
Btw. praca autorska, we własnych potach ;d
Fave Fun!
_________________
Ostatnio zmieniony przez Sebik dnia 06 marca 2010, 22:12, w całości zmieniany 9 razy
|
|
|
Powrót do góry |
|
|
Rhino
Jeździ konno
Dołączył: 18 Lut 2009
Ostrzeżeń: 1 Posty: 18
Skąd: z Europy ;p
|
Wysłany: 18 listopada 2009, 17:31 Temat postu: |
|
|
No to ja tu omówię tagi z listy Do-Zrobienia:
I.MANIALINK
1.ENTRY
Znacznik <entry> służy do umieszczenia na manialinku pola tekstowego, w którym można coś napisać. Oczywiście nie można tych danych odebrać od użytkownika w samym XMLu, tu trzeba użyć PHP (albo innego języka skryptowego).
Tak jak wszystkie poprzednie elementy, i ten zawiera atrybuty pos (posn), size (sizen) i halign oraz valign, pozwalające zmieniać położenie czy wielkość elementu.
Dodatkowe atrybuty dla tego znacznika są następujące:
name - nazwa zmiennej, która po uruchomieniu skryptu będzie miała wartość wpisaną w polu tekstowym;
default - domyślny tekst wyświetlany w polu tekstowym zaraz po załadowaniu strony;
autonewline - jeśli wartość tego atrybutu to 1, gra pozwala wpisywać tekst w kilku linijkach i w wypadku przekroczenia dostępnej liczby znaków na linijkę, przenosi wyraz do kolejnej linii; wartość 0 oznacza, że pole będzie zawierać tylko jedną linię; nie można podawać innych wartości niż 0 lub 1.
Oto mały przykład użycia tego znacznika:
Kod: |
<entry posn="0 0 0" sizen="20 2" autonewline="0" name="text" default="Tu wpisz jakiś tekst" style="TextValueSmall"/>
<label posn="0 10 0" text="Kliknij aby wysłać swój wpis" url="http://www.abcdefgh.pl/manialink/skrypt.php?value=text" style="CardButtonMediumWide"/>
|
2.FILEENTRY
Ten znacznik służy do wysyłania plików na serwer. Tutaj podam tylko jego opis, natomiast jego obsługa w PHP jest nieco trudniejsza (nie jest to tak proste jak uploadowanie przez zwykłą stronę WWW), jednak postaram się pokrótce ją omówić.
Prócz standardowych atrybutów ten tag posiada również następujące:
name - nazwa zmiennej (jak w <entry>);
folder - ustala folder, z którego będzie można wysyłać pliki (np. "Skins\Avatars" albo "Tracks\Replays"); oto mała wskazówka: jeśli w znaczniku <fileentry> brakuje atrybutu folder, po uruchomieniu takiego manialinka gra natychmiast się wyłączy (można się w ten sposób bawić, prosząc ludzi o kliknięcie itp., ale to już zupełnie inna historia); jednak takie wyłączenie gry nie spowoduje żadnego błędu i po ponownym jej uruchomieniu będzie można swobodnie ją kontynuować;
autonewline - podobne działanie jak w znaczniku <entry>, choć szczerze mówiąc, nie wiem, do czego ten atrybut może się przydać w <fileentry> ;
default - tekst wyświetlany w polu, zanim nie wybierzesz pliku.
Oto kolejny przykład:
Kod: |
<fileentry posn="0 0 0" sizen="25 3" name="pliczek" folder="Tracks\Challenges" default="Kliknij aby wybrać plik" style="TextValueSmall"/>
<label posn="0 10 0" manialink="POST(http://www.blabla.com/jakis_folder/skrypcior.php?file=pliczek,pliczek)" addplayerid="0" style="CardButtonMediumWide"/>
<!-- powyżej w ścieżce URL podanie dwa razy wartości zmiennej "file" nie jest błędem - tak ma wyglądać poprawnie zapisany przycisk uruchamiający skrypt - "file=pliczek" po pytajniku zapewni wyświetlenie nazwy pliku w adresie (będzie można ją pobrać metodą GET), natomiast "pliczek" po przecinku określa dane, które zostaną wysłane metodą POST -->
|
A teraz opiszę krótko odbieranie pliku przez serwer.
Nie ma możliwości zrobienia tego w następujący sposób:
Kod: |
<?php
move_uploaded_file ($_FILES["pliczek"]["tmp_name"], "gdziestam/".$_FILES["pliczek"]["name"]);
?>
|
Ten przykład w przypadku manialinka nie zadziała. Należy to zrobić tak:
Kod: |
<?php
copy ("php://input", "gdziestam/".$_GET["pliczek"]);
// uwaga: powyższy przykład jest mało bezpieczny i nie należy go stosować w obecnej postaci
?>
|
php://input to oczywiście wejściowy ciąg danych wysyłany metodą POST.
W przypadku skryptu zachowuje się on tak jak zwykły plik - można stosować na nim funkcje file_get_contents(), file(), fopen() i inne.
Nie muszę chyba zaznaczać, jak ważne jest zabezpieczenie skryptu przed wysyłaniem niepożądanych plików (np. o innym rozszerzeniu lub treści zawierającej wirusa) - ale sądzę, że jeśli znasz się choć trochę na PHP, będziesz potrafił taki skrypt zabezpieczyć.
3.TIMEOUT
Omówienie tego znacznika nie zajmuje wiele czasu, bo nie ma on żadnych atrybutów. Jedyna funkcja jaką spełnia, to zapobieganie cache'owaniu strony przez grę. Podaje się ilość sekund, po których strona zostanie ponownie odczytana z serwera. Nie podaje się tej wartości jako atrybutu, lecz między znacznikiem otwierającym (<timeout>) a zamykającym (</timeout>). Jeśli chcesz całkowicie zapobiec cache'owaniu, podaj wartość 0.
Oto przykład użycia:
Kod: |
<timeout>0</timeout>
|
4.MUSIC
Ten znacznik służy do odtwarzania muzyki w tle, posiada on tylko jeden atrybut.
data - URL pliku muzycznego, który ma zostać odtworzony (formaty Ogg Vorbis lub WAVE - .ogg i .wav).
Przykład:
Kod: |
<music data="http://jakiś-serwer.net/plik_muzyczny.ogg"/>
|
5.AUDIO
Ten znacznik również służy do odtwarzania muzyki, ale zasadnicza różnica między nim a <music> polega na tym, że plik podany jako atrybut tego znaczniku będzie odtwarzany/zatrzymywany po kliknięciu przycisku start/stop (który wyświetla się po dodaniu znacznika).
Atrybuty tego znacznika są następujące:
data - podobnie jak w przypadku <music>, URL pliku muzycznego;
play - ten atrybut może mieć tylko dwie wartości - 1 lub 0; jeśli jego wartość to 1, plik muzyczny będzie odtwarzany automatycznie po załadowaniu strony;
looping - jak nazwa atrybutu wskazuje, nadanie mu wartości 1 spowoduje zapętlenie odtwarzania pliku.
Kolejny mały przykład:
Kod: |
<audio posn="0 0 0" sizen="10 10" data="http://jakiś-serwer.net/plik_muzyczny.ogg" play="1" looping="0"/>
|
6.VIDEO
Jak można się łatwo domyślić, ten znacznik powoduje odtworzenie pliku wideo podanego jako atrybut. Plik odtworzony zostanie jedynie, jeśli jest w formacie BINK VIDEO (.bik).
Atrybuty znacznika są identyczne jak atrybuty taga <audio>, jednak dla pewności je powtórzę:
data - adres pliku wideo;
play - podobnie jak w <audio>;
looping - jak wyżej.
I, jak zwykle, prosty przykład:
Kod: |
<video posn="0 0 0" sizen="400 200" data="http://jakiś-serwer.net/plik_wideo.bik" play="1" looping="0"/>
|
II.MANIACODE
1.PODSTAWY
Plik Maniacode również jest plikiem XML, udostępnia jednak nieco inne możliwości niż zwykły manialink. Pozwala np. sprzedawać za miedziaki trasy, samochody, zapisane powtórki i tak dalej.
Oczywiście nie można zapomnieć o deklaracji pisania w języku XML.
Kod Maniacode musi być umieszczony pomiędzy dwoma znacznikami: otwierającym (<maniacode>) i zamykającym (</maniacode>).
Tak więc na początku pracy nad plikiem Maniacode, zawartość tego pliku powinna wyglądać tak:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<maniacode>
<!-- tu zostanie umieszczony kod -->
</maniacode>
|
Uwaga: po wykonaniu skryptu Maniacode TrackMania domyślnie wyświetli komunikat "Skrypt Maniacode wykonany". Jeśli chcesz, żeby ten komunikat się nie pojawiał, do znacznika <maniacode> dodaj atrybut noconfirmation i nadaj mu wartość 1.
Przykład użycia:
Kod: |
<?xml version="1.0" encoding="utf-8" ?>
<maniacode noconfirmation="1">
<!-- tu zostanie umieszczony kod -->
</maniacode>
|
2.SHOW_MESSAGE
Ten znacznik służy do wyświetlenia okienka zawierającego podany tekst oraz przycisk "OK". Zatem można się domyślić, że przez ten znacznik nie dochodzi do żadnej interakcji użytkownika z serwerem.
Jednak wiadomości nie wyświetla się bezpośrednio znacznikiem <show_message>. W nim należy umieszczać znaczniki <message> - właśnie one zajmują się wyświetlaniem tekstu. Jeśli ktoś nie do końca rozumie - zapewne oświeci go poniższy przykład:
Kod: |
<show_message>
<message>Witaj!</message>
<message>Kliknij przycisk OK, aby zakończyć działanie skryptu Maniacode.</message>
</show_message>
|
3a.INSTALL_TRACK
Poprzez ten znacznik można pobrać z serwera trasę i zapisać ją na dysku.
Między tagami <install_track> a </install_track> należy umieścić dwa inne znaczniki - <name> i <url>. <name> ustala nazwę pliku, pod jaką trasa zapisze się na dysku. <url> zaś podaje dokładny adres do trasy.
Oto kolejny przykład:
Kod: |
<install_track>
<name>MiniChallenge01</name>
<url>http://www.abcdef123456.com/jakis_folder/trasa1.Challenge.Gbx</url>
</install_track>
|
3b.PLAY_TRACK
Między znacznikami <play_track> a </play_track> należy umieścić takie same tagi jak w przypadku <install_track>. Różnica polega na tym, że na trasie pobranej za pomocą znacznika <play_track> będzie można zagrać tylko raz - nie zapisze się ona na dysku, tylko w pamięci RAM, a po przejechaniu zostanie skasowana.
Przykład:
Kod: |
<play_track>
<name>MiniChallenge02</name>
<url>http://www.abcdef123456.com/jakis_folder/trasa2.Challenge.Gbx</url>
</play_track>
|
3c.INSTALL_TRACK_PACK
W/w znacznik pozwala pobrać na dysk całą paczkę tras.
Powinien zostać zastosowany w sposób podany poniżej:
Kod: |
<install_track_pack>
<name>Paczka tras</name>
<track>
<name>Trasa 01</name>
<url>http://www.adres.com/trasy/trasa01.Challenge.Gbx</url>
</track>
<track>
<name>Trasa 02</name>
<url>http://www.adres.com/trasy/trasa02.Challenge.Gbx</url>
</track>
</install_track_pack>
|
Oczywiście znaczników <track> powinno być tyle, ile jest w paczce tras.
4a.INSTALL_REPLAY
Wewnętrzne znaczniki tego taga są identyczne, jak znaczniki taga <install_track>. Przez ten znacznik dana powtórka jest pobierana i zapisywana na dysku.
Przykład zastosowania:
Kod: |
<install_replay>
<name>Replay1</name>
<url>http://www.abcxyz.pl/replay01.Replay.Gbx</url>
</install_replay>
|
4b.VIEW_REPLAY
Różnica między <install_replay> a <view_replay> jest analogiczna jak między <install_track> a <play_track>. Powtórka jest pobierana i odtwarzana tylko raz.
Kod: |
<view_replay>
<name>Replay2</name>
<url>http://www.abcxyz.pl/replay02.Replay.Gbx</url>
</view_replay>
|
4c.PLAY_REPLAY
Parametry tego taga są identyczne, jak parametry <install_replay> i <view_replay>. Ten znacznik pozwala pobrać powtórkę, a akcja wykonywana po jej zapisaniu na dysku to uruchomienie jej w trybie wyścigu (aby móc się ścigać z zapisanym duchem).
Kod: |
<play_replay>
<name>Replay3</name>
<url>http://www.abcxyz.pl/replay03.Replay.Gbx</url>
</play_replay>
|
5.GET_SKIN
Ten tag pozwala pobrać na dysk skórkę samochodu.
Prócz parametrów <name> i <url>, zawiera on też parametr <file>, który określa, gdzie zostanie zapisana skórka.
Przykład:
Kod: |
<get_skin>
<name>Skórka 01</name>
<url>http://www.adres.com/pliki/skorka.zip</url>
<file>Skins/Vehicles/CarCommon/skorka.zip</file>
</get_skin>
|
6.GOTO
Znacznik <goto> przekierowuje użytkownika do innego manialinka bądź pliku maniacode. Pozwala to na np. pobranie od niego za jakiś element strony więcej niż 500 miedziaków (jest to maksymalna dostępna ilość do zarejestrowania na player page'u <o tym więcej za chwilę>).
Prawidłowe zastosowanie <goto> wygląda tak:
Kod: |
<goto>
<link>nazwa_manialinka / adres_manialinka</link>
</goto>
|
7.JOIN_SERVER
Ten tag pozwala na dołączenie do wybranego serwera po podaniu jego IP w kodzie jako parametru <ip>.
Przykład:
Kod: |
<join_server>
<ip>ADRES_IP:PORT</ip>
</join_server>
|
8.ADD_FAVOURITE
Znacznik <add_favourite>, jak łatwo się domyślić, pozwala zapisać wybrany serwer na liście ulubionych. Należy podać parametr <ip> LUB parametr <login> (login do konta, na którym hostowany jest serwer - nie musi być to fizyczna osoba).
Przykład użycia z <ip>:
Kod: |
<add_favourite>
<ip>ADRES_IP:PORT</ip>
</add_favourite>
|
Przykład użycia z <login>:
Kod: |
<add_favourite>
<login>superserv</login>
</add_favourite>
|
9.ADD_BUDDY
Ostatni znacznik który omówię - <add_buddy> - posiada tylko jeden parametr - <login>.
Przydatne jest to, gdy na swoim manialinku chcemy umieścić opcję "dodaj mnie do znajomych".
Wtedy jako parametr <login> podajemy nasz login z gry.
Kod: |
<add_buddy>
<login>wiciox</login>
</add_buddy>
|
Jakieś pytania, wątpliwości?
Pisz na Xfire, na login "wiciox".
Ostatni edit: 03.03.2010, jeszcze nie wszystko dopisałem (napiszę co nieco o Player Page w wolnym czasie)
_________________
HowFastAreYou - nowy programik - zobacz
Ostatnio zmieniony przez Rhino dnia 14 stycznia 2011, 22:55, w całości zmieniany 2 razy
|
|
|
Powrót do góry |
|
|
Sebik
Gangsta Mapper
Dołączył: 17 Sie 2006
Pochwał: 1 Ostrzeżeń: 1 Posty: 772
Skąd: Śląskie/Leszczyny
|
|
Powrót do góry |
|
|
tomek0055
Jeździ konno
Dołączył: 02 Wrz 2008
Posty: 17
Skąd: z wielkopolski
|
Wysłany: 14 czerwca 2010, 19:11 Temat postu: |
|
|
ale jeszcze nie dałeś jak się wstawia tło (chodzi mi o obrazek pod okienkami)
|
|
|
Powrót do góry |
|
|
Sebik
Gangsta Mapper
Dołączył: 17 Sie 2006
Pochwał: 1 Ostrzeżeń: 1 Posty: 772
Skąd: Śląskie/Leszczyny
|
|
Powrót do góry |
|
|
devt
Doświadczony driver
Dołączył: 14 Sty 2009
Posty: 168
|
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Możesz usuwać swoje posty Nie możesz głosować w ankietach
|
|