Page 1 of 11 12 ... LastLast
Results 1 to 30 of 330

Thread: [Tutorial] ManiaLink Forever

  1. #1
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default [Tutorial] ManiaLink Forever

    Forever ManiaLinks
    Eine Einführung in die Forever ManiaLinks



    Letzte Aktualisierungen:

    • 30.07.2010Komplette Überarbeitung des Tutorials



    Übersicht über das Tutorial



    Positionierung und Ausrichtung



    Überblick über die Elemente

    • <frame>Gruppieren mehrerer Elemente
    • <format>Vordefinieren von Formatierungen
    • <quad>Darstellen von Bildern und Formen
    • <label>Darstellen von Texten und Buttons
    • <audio>Ausgabe einer Musikdatei (mit Start/Stop-Button)
    • <music>Ausgabe von Hintergrundmusik (ohne Buttons)
    • <video>Ausgabe einer Videodatei
    • <timeout>Deaktivieren des Caches
    • <include>Importieren einer weiteren XML-Datei
    • <entry>Einfaches Eingabefeld
    • <fileentry>Eingabefeld für einen Dateiupload


    Wissenswertes zum Schluss



    Einleitende Worte
    Die Forever ManiaLinks – für die einen ein Buch mit sieben Siegeln, gehören sie für die anderen mitlerweile zu TrackMania wie der Streckeneditor. Dieses Tutorial soll für alle die, denen beim Stöbern im TMF-Browser nur noch der Mund offen stehen bleibt, einen Einstieg in die Welt der ManiaLinks bieten. In die Welt, wo der Phantasie freien Lauf gegeben werden kann, die Welt der unbegrenzten Möglichkeiten...

    *ähem*

    Ganz so schlimm wird es nicht, das Tutorial ist wirklich nur ein Einstieg in ManiaLinks

    Das Tutorial ist in drei Teile untergliedert. Der eher theoretisch gehaltene erste Teil vermittelt notwendiges Grundwissen, um sich später besser in ManiaLinks zurechtzufinden. Diesen Brocken einmal überstanden, folgt anschließend eine detaillierte Auflistung aller Elemente inklusiver ihrer Attribute, die gleichzeitig als Nachschlagewerk dienen soll. Im letzten Teil finden sich einige Sachverhalte, die hilfreich sein können, für den ersten ManiaLink aber nicht unbedingt notwendig sind.


    Was nicht in diesem Tutorial erklärt wird:

    • Das grundlegende Erstellen einer ManiaLink-Datei
      Es wird vorausgesetzt, dass das Erstellen einer ManiaLink-Datei (bzw. allgemein einer XML-Datei) und das Registrieren eines Codes für diese bekannt ist. Sollte dies nicht der Fall sein, muss ein anderes Tutorial zu Rate gezogen werden.
    • ManiaLinks für Server
      In diesem Tutorial beschränke ich mich auf ManiaLinks, die im Explorer von TMF angezeigt werden. Spezielle Sachen für Server-ManiaLinks werden nicht behandelt.




    United vs. Nations: Die Unterschiede der Spielversionen
    TMUF als kostenpflichtige Version bietet natürlich die uneingeschränkte Nutzung der ManiaLinks. Als TMNF-Spieler muss man hingegen einige Einschränkungen in Kauf nehmen, die hier kurz gelistet werden sollen.


    • Chronisch PleiteAbhängig vom Kontotyp
      TMNF Spieler besitzen keine Coppers, infolgedessen können sie nicht auf kostenpflichtigen ManiaLinks und ManiaCodes zugreifen. Solange die ManiaLinks und ManiaCodes kostenlos sind, können TMNF Spieler diese uneingeschränkt nutzen.
    • Grün ist die WeltAbhängig von der Spielversion
      Das Menü ist in TMNF vorwiegend grün gehalten. Entsprechend kann es zu leichten Farbunterschieden zwischen TMUF und TMNF kommen, wenn die vordefinierten Styles verwendet werden.






    In den Forever ManiaLinks sind alle visuellen Elemente frei auf dem Bildschirm positionierbar. Dies erfordert natürlich ein gewisses Grundkenntnisse über diese Positionierung, ohne diese es nur sehr schwer möglich sein wird, einen ManiaLink zu erstellen.
    In der Vergangenheit hat sich dabei gezeigt, dass sich das ganze zunächst komplizierter anhört, als es sich am Ende herausstellt. Nehmt euch die Zeit, um dieses Wissen zu verinnerlichen, da es wie gesagt wichtig ist. Als kleine Unterstützung gibt es den von mir erstellten ManiaLink Quad, wo ihr "live" die Auswirkungen der Position und Ausrichtung sehen könnt.




    Doppelt hält besser: Die beiden Positionierungsarten
    In den Forever ManiaLink stehen euch zwei verschiedene Arten für die Positionierungen zur Verfügung. Neben der klassischen Positionierung, die von den Ur-ManiaLinks aus TMU übernommen wurde, gibt es die Menü-Positionierung. Letztendlich unterscheiden sich die beiden Arten nur in ihren Wertebereichen, und in den Ausrichtungen der Achsen, davon abgesehen gibt es keinerlei Einschränkungen. Es ist euch also frei gestellt, ob ihr lieber mit der klassischen oder der Menü-Positionierung arbeiten möchtet, euch entstehen durch die Entscheidung keine Nachteile. Es ist zu empfehlen, sich wirklich für eine Art zu entscheiden. Es ist zwar problemlos möglich, beide Arten zu vermischen, allerdings leidet darunter stark die Übersichtlichkeit, da stets umgerechnet werden muss

    Überblick der Positionierungsarten

    • Klassische Positionierung
    • Menü-Positionierung


    Beachtet vor allem die unterschiedliche Ausrichtung der Achsen: Während in der klassischen Positionierung große X-Werte links liegen, so liegen diese in der Menü-Positionierung rechts. (Ähnliches gilt für die Z-Werte). Im folgenden werden beide Positionierungsarten zusammengefasst und nur als pos(n) oder size(n) bezeichnet. Die einzelnen Werte (also bei der Position beispielsweise X, Y und Z) werden dabei einfach mit einem Leerzeichen voneinander getrennt geschrieben: pos(n)="X Y Z" bzw. size(n)="Breite Höhe".

    Wenn Elemente frei positionierbar sind, hat dies unmittelbar zur Folge, dass sie sich überlagern können. Doch welches Element wird von wem verdeckt? Um diese Frage zu klären, gibt es die Z-Werte: Mit ihnen legt man die Reihenfolge der Elemente fest, und somit die Überdeckungen. Es gilt dabei zu beachten, dass Elemente mit gleichen Z-Werten sich zufällig gegenseitig überdecken. Auch Elemente mit ungültigen (dh. außerhalb des Bereichs liegenden) Z-Werten werden zufällig eingereiht, also achtet darauf, dass eure Elemente möglichst verschiedene, gültige Werte haben, wenn sie sich gegenseitig überdecken

    Die Angabe der Position bezieht sich immer auf das Elternelement, wobei <manialink> seinen Ursprung in (0, 0, 0), in der Mitte des Bildschirmes, hat. Ist das Elternelement ein Frame, so bezieht sich die Position auf den dort angegebenen Punkt. In verschachtelten Frames werden die Positionen also entsprechend summiert. (Für weitere Informationen, siehe <frame>.)




    Kurze Verschnaufspause: Erste Beispiele
    An dieser Stelle sollen nun ein paar Code-Beispiele folgen, die die Funktionsweise der Positionen etwas verdeutlichen sollen. Lasst euch dabei nicht von den style und substyle irritieren, diese sind nur enthalten, damit ihr die Quads direkt in euren ManiaLink zum testen kopieren könnt
    An dieser Stelle sei auch nochmal auf meinen ManiaLink Quad hingewiesen, wo man verschiedene Positionen quasi live sehen kann.

    Code:
    <quad style="Bgs1InRace" substyle="BgWindow1" />
    Wird weder eine Position noch eine Größe angegeben, so bekommt das Quad die Standardwerte. Diese liegen bei pos(n)="0 0 0" und size="1 1" bzw. sizen="32 32".

    Code:
    <quad size="0.25 0.25" style="Bgs1InRace" substyle="BgWindow1" />
    <quad sizen="8 8" style="Bgs1InRace" substyle="BgWindow1" />
    Ein wenig handlicher wird unser Quad, wenn wir eine Größe festlegen. Die beiden Werte für Breite und Höhe können dabei beliebig verändert werden, solange sie im gültigen Bereich liegen.
    Im Übrigen: Beide Quads in diesem Beispiel erzeugen das gleiche Viereck. Im Folgenden werde ich nurnoch die Menü-Positionierungen angeben, alle Beispiele sind aber auch mit der klassischen positionierung realisierbar

    Code:
    <quad posn="24 -24 0" sizen="8 8" style="Bgs1InRace" substyle="BgWindow1" />
    Das letzte Quad war immernoch relativ in der Mitte. Nun haben wir hier eine Position angegeben, die dies ändern soll. Frage: Wo wird sich das Quad ungefähr befinden? Oberhalb oder unterhalb der Mitte? Links oder rechts davon?
    Versucht diese Frage zu beantworten, anschließend könnt ihr eure Antwort auf Quad überprüfen

    Code:
    <quad posn="-64 48 0" sizen="128 64" style="Bgs1InRace" substyle="BgWindow1" />
    Zum Schluss noch ein Quad, was sich gut für ein Hintergrundbild eignet: Es füllt den gesamten Bildschirm aus




    Die perfekte Verwirrung: Die Auswirkungen von halign und valign
    Wenn ihr das mit den Positionen (zumindest einigermaßen) verstanden habt, wird es Zeit, ein wenig Verwirrung zu stiften

    Die Position wird auch durch die Ausrichtung des Elementes beeinflusst. Der intuitive Ansatz, mit halign (horizontal alignment = horizontale Ausrichtung) und valign (vertical alignment = vertikale Ausrichtung) würde nur der Inhalt beeinflusst werden (beispielsweise in Labels der Text), der täuscht sich. Die Ausrichtung beeinflusst das gesamte Element. Allerdings kann man auch hier schnell ins Stoplern geraten. Schaut euch dazu mal folgendes Bild an:

    Huch, das Quad mit bottom und right ist oben links, und umgekehrt? Aus unserer Sicht ist das unsinnig, aus Sicht des Quads beginnt es allerdings langsam Sinn zu machen: Mit halign und valign gibt man an, wo sich der Positionierungspunkt befindet. Mit bottom und right soll der Punkt unten rechts sein, und siehe da, das stimmt bei dem oberen linken Quad. Also immer dran denken: Die Ausrichtung bezieht sich auf den Punkt, nicht auf das Element

    Die Standartwerte liegen im übrigen bei halign="top" und valign="left", der Positionierungspunkt also standarmäßig an der oberen linken Ecke.


    Last edited by Marcel; 30.09.2010 at 12:02.

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  2. #2
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default



    Der zweite Teil des Tutorials beschäftigt sich detailliert mit den verwendbaren Elementen sowie deren Attribute. Es ist zu empfehlen, diesen Abschnitt einmalig komplett durchzulesen, um eine grobe Vorstellung zu bekommen, was mit den einzelnen Elementen möglich ist. Gleichzeitig dient die Auflistung als Art Nachschlagewerk, da wohl kaum jemand alle Details behalten kann.




    <frame>
    Der Frame dient zur Gruppierung von logisch zusammengehörigenden Elementen, die innerhalb der <frame>-Tags notiert werden. Der Frame selbst ist dabei nicht sichtbar, die in ihm befindlichen Elemente richten sich aber am Frame aus. Das heißt: Wird der Frame verschoben, so verschieben sich automatisch alle in ihm enthaltenen Elemente mit.
    Frames sollten dafür genutzt werden, alle Elemente, die auf dem finalen ManiaLink ein Objekt (beispielsweise eine Box) bilden, zusammenzufassen. Muss die Position der Box später geändert werden, so reicht das Ändern der Frame-Position aus.
    Frames können dabei beliebig ineinander verschachtelt werden, um eine gewisse Hierarchie im ManiaLink zu erstellen.

    Attribute:

    • pos(n)="X Y Z"Die Position des Frames
    • scale="Faktor"Der Skalierungsfakot des Frames

    Beispiel:
    Code:
    <frame posn="20 20 0">
        <quad posn="10 -10 0" sizen="16 4" style="Bgs1InRace" substyle="BgWindow1" />
        <label posn="10 -10 1" sizen="16 4" text="Hallo Welt!" />
    </frame>
    Dieses Beispiel zeigt einen Frame, welcher ein Quad und ein Label beinhaltet, die sich übereinander befinden. Das ändern der Frame-Position bewirkt automatisch das Verschieben beider Elemente, sodass diese übereinander bleiben. Probier es aus: Verändere die Frame-Position zu beispielsweise posn="10 10 0"


    <format>
    Mit Hilfe des <format>-Tags können ausgewählte Attribute anderer Tags als allgemeine Formatierung festgelegt werden. Diese Formatierungen gelten dabei global für alle Elemente, oder falls es innerhalb eines Frames Platziert ist für diesen Frame und seine untergeordneten Frames. Das Format ist dabei selbst nicht sichtbar, sondern beeinflusst nur, ähnlich wie die Frames, andere Elemente in ihrer Darstellung.
    Das Format beeinflusst die Elemente <label>, <quad>, <entry> und <fileentry>, wobei die vordefinierten Formatierungen jederzeit innerhalb der entsprechenden Elemente überschrieben werden können.

    Attribute:

    • bgcolor="RGBA"Die Hintergrundfarbe der Elemente – Beeinflusst: Quad
      Die Farben werden als vierstellige Hexadezimalzahl angegeben, das heißt jede Ziffer kann die Werte 0 bis 9 oder A bis F annehmen. Die einzelnen Ziffern stehen dabei für Rot, Grün, Blau und Alpha in genau dieser Reihenfolge.
    • textsize="Zahl"Die Textgröße der Elemente – Beeinflusst: Label, Entry, FileEntry
    • textcolor="RGBA"Die Textfarbe der Elemente – Beeinflusst: Label, Entry, FileEntry
    • focusareacolor1="RGBA"Die Hintergrundfarbe (ohne MouseOver) der Elemente – Beeinflusst: Label, Entry, FileEntry
    • focusareacolor2="RGBA"Die Hintergrundfarbe (mit MouseOver) der Elemente – Beeinflusst: Label, Entry, FileEntry
      Die beiden Attribute focusareacolor1 und focusareacolor2 legen die Hintergrundfarbe der Elemente fest. Dabei wird focusareacolor1 angewendet, solange die Maus nicht über dem Label ist, entsprechend focusareacolor2 wenn die Maus drüber ist.
    • style="StyleName"Der Style der Elemente – Beeinflusst: Label, Entry, FileEntry
      Mit dem Attribut style können bestimmte Formatierungen aus dem Spiel im ManiaLink genutzt werden. So kann beispielsweise mit style="CardButtonSmall" ein Label zu einem für TMF typischen weißen Button verändert werden.
      Eine Liste der möglichen Styles ist auf dem ManiaLink Example und auf der Internetseite TM Styles zu finden.
      Es ist zu beachten, dass dieses Attribut keine Auswirkungen auf Quads haben: Diese benötigen noch einen zusätzlichen substyle, der allerdings innerhalb des <format> nicht unterstützt wird.

    Beispiel:
    Code:
    <format textcolor="F00F" />
    <label text="Hallo Welt!" />
    <label posn="0 -4 0" textcolor="FF0F" text="Hallo Welt!" />
    In diesem Beispiel sehen wir ein Format, gefolgt von zwei Labels. Das erste Label übernimmt dabei die vordefinierte rote Farbe des Formats. Das zweite Label besitzt selbst ein textcolor, sodass es die vordefinierte Farbe mit der eigenen Farbe überschreibt: Es erscheint gelb.


    <quad>
    Eines der wichtigsten Elemente in den Forever ManiaLinks ist das Quad zum Anzeigen von Bildern oder Hintergründen. Dabei ist es möglich, auf Spielinterne Designs (sogenannte Styles) zuzugreifen, um so seinen ManiaLink fester in das Design des Spiels zu integrieren. Es ist möglich, ein <quad> zu Verlinken, und diese Verlinkung auch visuell mittels eines MouseOver-Effektes zu verdeutlichen.
    Als Bildformate werden dabei .jpg, .png, .tga und .dds, sowie .bik als animiertes Format akzeptiert. Wid eine BIK-Datei eingebunden, so wird deren Animation nach einem ManiaLink-Wechsel ununterbrochen fortgesetzt, wenn auf dem neuen ManiaLink dieselbe BIK-Datei eingebunden wurde.

    Attribute:

    • pos(n)="X Y Z"Die Position des Quads
    • size(n)="Breite Höhe"Die Größe des Quads
    • scale="Faktor"Der Skalierungsfaktor des Quads
    • halign="left|center|right"Die horizontale Ausrichtung des Quads
    • valign="top|center|bottom"Die vertikale Ausrichtung des Quads
    • style="KategorieName"Die Kategorie des Styles des Quads
    • substyle="StyleName"Der genaue Style des Quads
      Für das Quad müssen immer beide Attribute, style und substyle, angegeben werden, um ein spielinternes Design festzulegen.
      Eine Liste der möglichen Styles ist auf dem ManiaLink Example und auf der Internetseite TM Styles zu finden.
    • image="Bild.jpg"Das Bild des Quads
    • imagefocus="Bild.jpg"Das Bild für den MouseOver-Effekt des Quads
      Die Bilder für image und imagefocus können wahlweise als absolute Pfade (http://localhost/images/bild.jpg) oder zur XML-Datei relative Pfade (./images/bild.jpg) angegeben werden.
      Wird die Maus in das Quad hinein bewegt, so wird das bei image angegebene Bild durch das von imagefocus ersetzt. Wird die Maus wieder hinaus bewegt, kommt das alte Bild wieder zum Vorschein. Dieser Effekt tritt allerdings nur auf, wenn das Quad zusätzlich verlinkt wurde.
    • bgcolor="RGBA"Die Farbe des Quads
      Da die Attribute style/substyle, image/imagefocus und bgcolor die gleiche Eigenschaft, nämlich die Darstellung des Quads, beeinflussen, können nicht alle drei gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet sind: Der Style überschreibt die Bilder, und diese wiederum die Farbe.
    • manialink="ManiaLink"Verlinkung zu einem ManiaLink (Registrierter Code oder URL)
    • url="ExterneSeite.html"Verlinkung zu einer externen Website
      Zum Anzeigen der Website wird TMF minimiert und der Standardbrowser des Systems geöffnet.
    • addplayerid="1"Fügt Benutzerdaten an den Link an
      Genauere Informationen siehe Die PlayerID.

    Beispiel:
    Code:
    <quad style="Bgs1InRace" substyle="BgWindow1" />
    <quad sizen="16 4" 
        image="http://localhost/manialink/menu.png" 
        imagefocus="http://localhost/manialink/menuHover.png" 
        manialink="FunTrackers"
    />
    Das erste Quad wurde mit einem Style versehen, welcher zu einer Darstellung als halb-transparente schwarze Box mit abgerundeten Ecken führt.
    Das zweite Quad definiert hingegen eigene Bilder für die Darstellung.


    <label>
    Neben den Quads sind die Labels die wohl am häufigsten verwendeten Elemente: Sie übernehmen die Ausgabe von Text. Dabei ist "Label" nicht im Sinne von "Bezeichnung" zu sehen, sondern generell als Text-Ausgabe-Element, also zum Beispiel auch ganze Textblöcke. Der Text kann dabei wahlweise als Attribut text angegeben werden, oder zwischen die <label>-Tags geschrieben werden.
    Als besondere Eigenschaft des Labels (oder als Fluch, jenachdem, ob es erwünscht ist oder nicht ) ist anzumerken, dass gewisse Wörter automatisch übersetzt werden: So wird statts dem Wort "Statistics", wenn es alleine im Label steht, bei den deutschen Benutzern "Statistik" angezeigt. Sollte diese Übersetzung nicht erwünscht sein, reicht es, beispielsweise ein Leerzeichen anzuhängen.

    Attribute:

    • pos(n)="X Y Z"Die Position des Labels
    • size(n)="Breite Höhe"Die Größe des Labels
    • scale="Faktor"Der Skalierungsfaktor des Labels
    • halign="left|center|right"Die horizontale Ausrichtung des Labels
    • valign="top|center|bottom"Die vertikale Ausrichtung des Labels
    • text="LabelText"Der Text des Labels
      Der Text kann beliebige $-Formatierungen, die TMF unterstützt, beinhalten. Zeilenumbrüche werden als solche übernommen, sonstige Steuerzeichen wie Tabs sollten vermieden werden.
      Wie bereits erwähnt, kann, statts das Attribut text zu verwenden, dieser auch zwischen die Tags geschrieben werden.
    • style="StyleName"Der Style des Labels
      In Labels genügt die Angabe von style, um eine entsprechende spieleigene Darstellung zu erreichen.
      Eine Liste der möglichen Styles ist auf dem ManiaLink Example und auf der Internetseite TM Styles zu finden.
    • textsize="Zahl"Die Textgröße des Labels
    • textcolor="RGBA"Die Textfarbe des Labels
      Da die Attribute style und textsize/textcolor die gleiche Eigenschaft, nämlich die Darstellung des Textes des Labels, beeinflussen, können nicht beide gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet wurden: Der Style überschreibt die Textgröße und Textfarbe.
    • focusareacolor1="RGBA"Die Hintergrundfarbe (ohne MouseOver) des Labels
    • focusareacolor2="RGBA"Die Hintergrundfarbe (mit MouseOver) des Labels
      Die beiden Attribute focusareacolor1 und focusareacolor2 werden nur angewendet, wenn das Label verlinkt ist.
      Da die Attribute style und focusareacolor1/focusareacolor2 die gleiche Eigenschaft, nämlich die Darstellung des Hintergrundes des Labels, beeinflussen, können nicht beide gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet wurden: Der Style überschreibt die FocusAreaColors.
    • autonewline="1"Aktiviert den Zeilenumbruch
      Mit dem Attribut autonewline kann der automatische Zeilenumbruch aktiviert werden: Zu lange Zeilen werden an Leerzeichen und speziellen Sonderzeichen umgebrochen.
    • maxline="Zahl"Begrenzt die maximale Anzahl an Zeilen
      Mit maxline ist es möglich, die Anzahl der darzustellenden Zeilen zu beschränken. Zeilen, die dieses Limit überschreiten, werden abgeschnitten und ignoriert.
    • manialink="ManiaLink"Verlinkung zu einem anderen ManiaLink (Registrierter Code oder URL)
    • url="ExterneSeite.html"Verlinkung zu einer externen Website
      Zum Anzeigen der Website wird TMF minimiert und der Standardbrowser des Systems geöffnet.
    • addplayerid="1"Fügt Benutzerdaten an den Link an
      Genauere Informationen siehe Die PlayerID.

    Beispiel:
    Code:
    <label posn="-30 -20 5" halign="center" style="CardButtonMedium" text="$o$008Weißer Button mit dunkelblauer Schrift" />
    Ein Label hat neben dem vordefinierten Style, welcher zu einer Darstellung als weißer Button führt, auch einige $-Formatierungen, um beispielsweise trotz Style die Schriftfarbe auf ein dunkles blau zu setzen.


    <audio>
    Wie es der Name schon andeutet, dient der <audio>-Tag zum Abspielen einer Musikdatei. Dabei wird dem Benutzer ein Start/Stopp-Button angeboten, womit er das Abspielen beeinflussen kann. Als Dateiformat wird, wie im Rest des Spiels auch, nur das .ogg und das .mux Format unterstützt.

    Attribute:

    • pos(n)="X Y Z"Die Position des Audios
    • size(n)="Breite Höhe"Die Größe des Audios
    • scale="Faktor"Der Skalierungsfaktor des Audios
    • halign="left|center|right"Die horizontale Ausrichtung des Audios
    • valign="top|center|bottom"Die vertikale Ausrichtung des Audios
    • data="Audio.ogg"Die abzuspielende Musikdatei
    • play="1"Automatischer Start
      Wird das Attribut play auf 1 gesetzt, startet das Abspielen der Musikdatei direkt nachdem diese fertig geladen wurde.
    • looping="0"Deaktivieren des Wiederholens
      Wird das Attribut looping auf 0 gesetzt, so stoppt das Abspielen der Musikdatei, wenn diese zu Ende ist. Im Standardfall wird die Wiedergabe in einer Endlosschleife fortgesetzt werden.

    Beispiel:
    Code:
    <audio data="http://localhost/manialink/music.ogg" play="1" />
    Die angegebene Musikdatei music.ogg wird beim Aufrufen des ManiaLinks automatisch abgespielt werden.


    <music>
    Falls nun eine Musikdatei im Hintergrund abgespielt werden soll, ohne Einfluss durch den Benutzer, so kann der <music>-Tag dafür genutzt werden. Dabei wird das angegebene Musikstück in einer Endlosschleife wiedergegeben. Wie beim <audio> wird auch hier nur das .ogg und das .mux Format unterstützt. Netter Effekt: Wechselt man den ManiaLink, und wurde auf beiden ManiaLinks dieselbe Musikdatei eingebunden, so wird die Wiedergabe ununterbrochen fortgesetzt.

    Hinweis: Das <music> funktioniert nur, wenn es außerhalb aller Frames gelegen ist. Das heißt, als übergeordnetes Element muss es zwingend den <manialink>-Tag besitzen.

    Attribute:

    • data="Musik.ogg"Die abzuspielende Musikdatei

    Beispiel:
    Code:
    <music data="http://localhost/manialink/music.ogg" />
    Die Musikdatei als data angegeben lässt diese im Hintergrund abspielen. Das ist auch schon die ganze Zauberei hinter <music>


    <video>
    Der <video>-Tag hat sehr starke Ähnlichkeit zum <audio>-Tag, mit der einzigen Ausnahme, dass statts Musik ein Video wiedergegeben wird. Auch diese Wiedergabe kann der Benutzer durch einen in das Video integrierten Start/Stopp-Button steuern. Die Videos müssen dabei im .bik-Format vorliegen.

    Attribute:

    • pos(n)="X Y Z"Die Position des Videos
    • size(n)="Breite Höhe"Die Größe des Videos
    • scale="Faktor"Der Skalierungsfaktor des Videos
    • halign="left|center|right"Die horizontale Ausrichtung des Videos
    • valign="top|center|bottom"Die vertikale Ausrichtung des Videos
    • data="Video.bik"Die abzuspielende Videodatei
    • play="1"Automatischer Start
      Wird das Attribut play auf 1 gesetzt, startet das Abspielen der Videodatei direkt nachdem diese fertig geladen wurde.
    • looping="0"Deaktivieren des Wiederholens
      Wird das Attribut looping auf 0 gesetzt, so stoppt das Abspielen der Videodatei, wenn diese zu Ende ist. Im Standardfall wird die Wiedergabe in einer Endlosschleife fortgesetzt werden.

    Beispiel:
    Code:
    <video sizen="16 8" data="http://localhost/manialink/video.bik" looping="0" />
    Auf dem ManiaLink wird das Video video.bik eingebunden. Hat dieses fertig geladen, kann der Benutzer mit einem Klick auf den Start-Button dieses Video starten. Dabei wurde das looping deaktiviert, sodass das Video automatisch nach einem Durchlauf wieder anhält.


    <timeout>
    Um Traffic zu sparen, speichert TMF alle besuchten ManiaLink lokal zwischen, sodass sie bei erneutem Aufruf nicht neu vom Server angefordert werden brauchen. Dieses Cachen der ManiaLink-Dateien kann allerdings zum Problem werden: Ändert sich nach dem ersten Anfordern die Datei, weil ihr beispielsweise noch im Aufbau seid, so bekommt TMF diese Änderungen nicht mit, es wird immernoch die alte Version anzeigen. Besonders bei dynamischen ManiaLinks ist es meist wichtig, dass die Dateien bei jedem Aufruf neu vom Server geladen werden müssen.
    Mit dem <timeout>-Tag kann man das Cachen von TMF beeinflussen: Er gibt an, nach wie vielen Sekunden der Server die Datei neu anfordern soll. Üblicherweise wird mit einer 0 das Cachen komplett deaktiviert.

    Beispiel:
    Code:
    <timeout>0</timeout>
    Die Null, einsam und ungeschützt gegen Wind und Wetter stand sie da... Bis ein mutiger Held vorbeischritt, und sie mit den schützenden <timeout>-Tags umschloss


    <include>
    Den PHP-Programmierern wird die Bezeichnung include wohl bekannt sein: Mit dem <include>-Tag ist es möglich, andere XML-Dateien in die aktuelle Datei einzubinden. Somit können oft genutzte Teile des ManiaLinks, beispielsweise das Menü, in eine seperate Datei ausgelagert und anschließend in allen anderen Dateien eingebunden werden. Das Importieren ist dabei auf eine Ebene beschränkt: Das heißt, in einer eingebundenen Datei kann keine weitere Datei eingebunden werden.
    Weiterhin gilt zu beachten, dass die einzubindende Datei keine <manialink>-Tags besitzen darf. Stellt euch den Import folgendermaßen vor: TMF zerschneidet die aktuelle Datei genau am <include>, holt sich die darin angegebene Datei vom Server, und klebt diese unverändert an diese Stelle. Ein zusätzliches <manialink> würde also stören
    Allerdings stimmt dass so nicht ganz: Da auch die einzubindende Datei als XML interpretiert wird, müssen alle geöffneten Elemente (beispielweise Frames) auch wieder geschlossen werden. Des Weiteren wird nur das erste Element beachtet. (Dies liegt daran, dass ein XML-Dokument nur ein Wurzel-Element haben darf.) Sollen mehrere Elemente eingebunden werden, müssen diese in einen Frame gepackt werden. Aber: Da der <music>-Tag nur außerhalb von Frames funktioniert, muss dieser immer alleine in der einzubindenden Datei stehen.

    Hinweis: Beachtet bitte, dass das Einbinden einer Datei mittels <include> zu einer längeren Ladezeit führt, da die einzubindende Datei seperat vom Server angefordert werden muss. Seid also entsprechend sparsam mit den Includes. Bei dynamischen ManiaLinks sollten anstelle der <include>-Tags lieber die PHP-eigenen include- bzw. require-Befehle verwendet werden.

    Attribute:

    • url="inc.xml"Die URL zur einzubindenden Datei

    Beispiel:
    ManiaLink-Datei:
    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    <manialink>
        <include url="inc.xml"/>
    </manialink>
    Datei inc.xml:
    Code:
    <?xml version="1.0" encoding="utf-8" ?>
    <frame>
        <quad posn="10 -10 0" sizen="16 4" style="Bgs1InRace" substyle="BgWindow1" />
        <label posn="10 -10 1" sizen="16 4" text="Hallo Welt!" />
    </frame>
    Die Hauptdatei enthält hier nur das Include. Damit auch wirklich beide Elemente der einzubindenden Datei angezeigt werden, müssen diese in einen Frame gepackt werden.


    <entry>
    Eine andere Möglichkeit, mit dem Benutzer zu interagieren (außer ihn wählen zu lassen, ob das Katzengejaule des <audio> weiter abgespielt werden soll) sind die Eingabefelder. Diese machen natürlich nur Sinn in dynamischen ManiaLinks, da eine statische XML-Datei die Eingaben nicht verarbeiten kann.
    Die Funktionsweise ist dabei relativ einfach: Dem Entry wird ein eindeutiger Name zugewiesen, und in jedem Link, wo dieser auftaucht, wird er mit dem aktuellen Wert des Eingabefeldes ersetzt. So kann der Inhalt des Entrys als Parameter an die URL angehangen werden.
    Weiterhin gilt zu beachten, dass das Entry immer Strings entgegennimmt. Eine eventuelle Einschränkung auf beispielsweise Zahlen muss im verarbeitenden Script erfolgen.

    Attribute:

    • pos(n)="X Y Z"Die Position des Entrys
    • size(n)="Breite Höhe"Die Größe des Entrys
    • scale="Faktor"Der Skalierungsfaktor des Entrys
    • halign="left|center|right"Die horizontale Ausrichtung des Entrys
    • valign="top|center|bottom"Die vertikale Ausrichtung des Entrys
    • style="StyleName"Der Style des Entrys
      Eine Liste der möglichen Styles ist auf dem ManiaLink Example und auf der Internetseite TM Styles zu finden.
    • textsize="Zahl"Die Textgröße des Entrys
    • textcolor="RGBA"Die Textfarbe des Entrys
      Da die Attribute style und textsize/textcolor die gleiche Eigenschaft, nämlich die Darstellung des Textes des Entrys, beeinflussen, können nicht beide gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet wurden: Der Style überschreibt die Textgröße und Textfarbe.
    • focusareacolor1="RGBA"Die Hintergrundfarbe (ohne MouseOver) des Entrys
    • focusareacolor2="RGBA"Die Hintergrundfarbe (mit MouseOver) des Entrys
      Da die Attribute style und focusareacolor1/focusareacolor2 die gleiche Eigenschaft, nämlich die Darstellung des Hintergrundes des Entrys, beeinflussen, können nicht beide gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet wurden: Der Style überschreibt die FocusAreaColors.
    • name="EntryName"Der eindeutige Name des Entrys
      Wie bereits erwähnt, ist der Name des Entrys wichtig: Jedes Vorkommen des Namens in einer URL wird durch den Inhalt des entsprechenden Entrys ersetzt.
    • default="Wert"Der Standard-Wert des Entrys
      Dieser Wert wird bei Aufruf des ManiaLinks automatisch in das Entry eingetragen. Solange der Benutzer diesen Wert nicht verändert, wird er im Eingabefeld stehen bleiben.
    • autonewline="1"Aktiviert den Zeilenumbruch
      Bei größeren Eingaben ist es hilfreich, den Zeilenumbruch mit Hilfe von autonewline zu aktivieren. Ohne diese Angabe würde die Eingabe immer auf eine Zeile angezeigt werden.

    Beispiel:
    Code:
    <entry posn="15 -8 5" sizen="5 2" style="TextValueSmall" name="inputWert" default="Hallo Welt!" />
    <label posn="15 -12 5" style="CardButtonMedium" text="Link mit Wert" url="http://localhost/verarbeitendesScript.php?wert=inputWert" />
    Das Entry trägt in diesem beispiel den Namen inputWert. Deshalb wird in der Verlinkung des Labels diese Zeichenkette durch den Inhalt des Entrys ersetzt, der standardmäßig "Hello World!" lautet. Innerhalb des verarbeitenden Scriptes kann nun mit $_GET['wert'] auf den Wert des Entrys zugegriffen werden, sobald der Benutzer auf das Label geklickt hat.


    <fileentry>
    Der <fileentry>-Tag funktioniert ähnlich wie ein <entry>, mit dem Unterschied, dass der Benutzer eine Datei auswählen kann, die anschließend zum Server übertragen wird. Auch hier gilt: Dieser Tag macht nur Sinn bei dynamischen ManiaLinks.
    Klickt der Benutzer auf das FileEntry, so öffnet sich der TMF-typische Datei-Dialog, wo er dann eine Datei auswählen kann. Über einen seperaten Link kann diese Datei dann zum Server übertragen werden, ein entsprechendes Beispiel findet sich im dritten Teil des Tutorials.

    Hinweis: Das unüberprüfte Hochladen von Dateien kann eine enorme Sicherheitslücke darstellen, deshalb sollte die hochgeladene Datei stets überprüft werden. Ansonsten ist es dem Benutzer möglich, ein PHP-Skript hochzuladen, und dieses auf dem Server auszuführen!

    Attribute:

    • pos(n)="X Y Z"Die Position des FileEntrys
    • size(n)="Breite Höhe"Die Größe des FileEntrys
    • scale="Faktor"Der Skalierungsfaktor des FileEntrys
    • halign="left|center|right"Die horizontale Ausrichtung des FileEntrys
    • valign="top|center|bottom"Die vertikale Ausrichtung des FileEntrys
    • style="StyleName"Der Style des FileEntrys
      Eine Liste der möglichen Styles ist auf dem ManiaLink Example und auf der Internetseite TM Styles zu finden.
    • textsize="Zahl"Die Textgröße des FileEntrys
    • textcolor="RGBA"Die Textfarbe des FileEntrys
      Da die Attribute style und textsize/textcolor die gleiche Eigenschaft, nämlich die Darstellung des Textes des FileEntrys, beeinflussen, können nicht beide gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet wurden: Der Style überschreibt die Textgröße und Textfarbe.
    • focusareacolor1="RGBA"Die Hintergrundfarbe (ohne MouseOver) des FileEntrys
    • focusareacolor2="RGBA"Die Hintergrundfarbe (mit MouseOver) des FileEntrys
      Da die Attribute style und focusareacolor1/focusareacolor2 die gleiche Eigenschaft, nämlich die Darstellung des Hintergrundes des FileEntrys, beeinflussen, können nicht beide gleichzeitig angegeben werden. Um genau zu sein ist die Priorität in der Reihenfolge, wie sie gelistet wurden: Der Style überschreibt die FocusAreaColors.
    • name="FileEntryName"Der eindeutige Name des FileEntrys
      Der Name des FileEntries hat die gleiche Funktion wie beim <entry>. Dieser wird in den URLs durch den ausgewählten Dateinamen ersetzt.
    • folder="OrdnerPfad"Der Pfad des obersten Ordners
      Wird der Dialog des FileEntry geöffnet, so wird dieser Ordner als erstes angezeigt. Des Weiteren ist es dem Benutzer nicht möglich, in einen höheren Ordner zu wechseln. Die Angabe erfolgt relativ zum TrackMania-Ordner in den Eigenen Dateien bzw. Dokumenten, dieser stellt gleichzeitig den obersten Ordner dar, der möglich ist.
    • default="Wert"Der Standardwert des FileEntries
      Dieser Wert wird solange im FileEntry angezeigt, bis der Benutzer eine Datei ausgewählt hat.
    • autonewline="1"Aktiviert den Zeilenumbruch
      autonewline hat den gleichen Effekt wie im <entry>, nur macht er hier wenig Sinn, da die Pfade meist nicht allzu lang werden.

    Beispiel:
    Code:
    <fileentry posn="16 -28 0" sizen="39 2" style="TextValueSmall" name="inputTrackFile" folder="tracks\challenges" default="Strecke auswählen"/>
    <label posn="1 -32 0" style="CardButtonMediumWide" manialink="POST(http://localhost/manialink/verarbeitendesScript.php?file=inputTrackFile,inputTrackFile)" text="Strecke absenden"/>
    Hier wird ein FileEntry mit dem Namen "inputAvatarFile" festgelegt, wo der Benutzer einen Avatar aus dem Ordner Skins\Avatars auswählen kann. Das darunter befindliche Label sendet die Datei mittels POST() zum verarbeitenden Script.
    Last edited by Marcel; 04.10.2010 at 09:28.

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  3. #3
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default


    Zu schön um wahr zu sein: Bekannte Probleme
    Über die Zeit sind einige Probleme aufgetreten, die hier kurz genannt werden sollen, um wiederholtes Fragen danach möglichst zu vermeiden.


    • AddPlayerID in Quads und Labels leicht manipulierbar
      Die Angaben, die mit Hilfe von addplayerid an die Links angefügt werden können, lassen sich leicht manipulieren, indem der Link einfach manuell eingegeben wird und dabei falsche Werte für die PlayerID vorgetäuscht werden. Für kritische Bereiche ist also von der PlayerID abzuraten!
    • bplaced.net blockt den Zugriff von TMF
      Da das Angebot von bplaced in der Vergangenheit zu stark missbraucht wurde, werden sämtliche Zugriffe von TMF auf die Server von bplaced mit dem HTTP-Fehler 403 (Forbidden) abgeblockt. Infolgedessen können keine ManiaLinks auf bplaced gehostet werden.




    Komplexes Beispiel
    An dieser Stelle möchte ich euch ein etwas komplexeres Beispiel zeigen und ein wenig erläutern. Es handelt sich dabei um das Eingabefenster der ersten Version des Quad-ManiaLinks, und zeigt recht gut, wie ein vollständiger ManiaLink am Ende aussehen könnte.

    Code:
    01 <?xml version="1.0" encoding="utf-8" ?>
    02 <manialink>
    03   <frame posn="-60 -10 5">
    04     <label posn="25 -2 15" sizen="40 4" halign="center" style="TextTitle3" text="Input Window (Menu Mode)"/>
    05     <quad  posn="25 -1 10" sizen="40 4" halign="center" style="Bgs1InRace" substyle="BgTitle3_4" manialink="http://localhost/manialink/quad/index.php?type=classic&amp;lang=en&amp;x=inputx&amp;y=inputy"/>
    06     <label posn="15   -6 5" halign="center" style="TextStaticSmall" text="$o$ff0Position:"/>
    07     <label posn="15 -8.5 5" halign="right"  style="TextStaticSmall" text="$oX = "/>
    08     <label posn="15  -11 5" halign="right"  style="TextStaticSmall" text="$oY = "/>
    09     <entry posn="15 -8.5 5" sizen="5 2" style="TextValueSmall" name="inputx" default="0"/>
    10     <entry posn="15  -11 5" sizen="5 2" style="TextValueSmall" name="inputy" default="0"/>
    11     <label posn="35   -6 5" halign="center" style="TextStaticSmall" text="$o$ff0Size:"/>
    12     <label posn="37 -8.5 5" halign="right"  style="TextStaticSmall" text="$oWidth = "/>
    13     <label posn="37  -11 5" halign="right"  style="TextStaticSmall" text="$oHeight = "/>
    14     <entry posn="37 -8.5 5" sizen="5 2" style="TextValueSmall" name="inputwidth"  default="32"/>
    15     <entry posn="37  -11 5" sizen="5 2" style="TextValueSmall" name="inputheight" default="32"/>
    16     <label posn="25   -15 5" halign="center" style="TextStaticSmall" text="$o$ff0Alignment:"/>
    17     <label posn="25 -17.5 5" halign="right"  style="TextStaticSmall" text="$ohalign = "/>
    18     <label posn="25   -20 5" halign="right"  style="TextStaticSmall" text="$ovalign = "/>
    19     <entry posn="25 -17.5 5" sizen="10 2" style="TextValueSmall" name="inputhalign" default="left"/>
    20     <entry posn="25   -20 5" sizen="10 2" style="TextValueSmall" name="inputvalign" default="top"/>
    21     <quad  posn=" 7 -25.5 5" sizen="6 3" halign="center" image="http://localhost/manialink/quad/en.png" manialink="http://localhost/manialink/quad/index.php?type=menu&amp;lang=en&amp;x=inputx&amp;y=inputy"/>
    22     <quad  posn="43 -25.5 5" sizen="6 3" halign="center" image="http://localhost/manialink/quad/de.png" manialink="http://localhost/manialink/quad/index.php?type=menu&amp;lang=de&amp;x=inputx&amp;y=inputy"/>
    23     <label posn="25 -25 5" halign="center" style="CardButtonMedium" manialink="http://localhost/manialink/quad/index.php?type=menu&amp;lang=en&amp;x=inputx&amp;y=inputy" text="Apply Values"/>
    24     <quad  sizen="50 30" style="Bgs1InRace" substyle="BgWindow2"/>
    25   </frame>
    26 </manialink>
    Hier auch noch ein Screenshot, wie das ganze im Spiel aussieht:


    Erläuterungen:

    • Zeilen 03 und 25Der Umschließende Frame
      Diese beiden Zeilen enthalten den Frame, der das gesamte Eingabefenster umschließt. Der Sinn ist folgender: Wenn ich nun das Fenster doch lieber etwas weiter oben platzieren möchte, so brauche ich lediglich die Position des Frames zu ändern, und alle in ihm enthaltenen Elemente, also das komplette Eingabefenster, "rutscht" hinterher, da sich ja alle Elemente an dem Punkt des Frames ausrichten.
      Zwei negative Angaben bei der Position des Frames in der Menü-Positionierung bedeutet, dass das Fenster unten links angezeigt werden wird.
    • Zeile 24Das Fenster an sich
      Das Quad in Zeile 24 erzeugt das Fenster an sich, also das abgerundete Viereck. Die Position wurde weggelassen. Es übernimmt als Positionierungspunkt somit den Punkt des Frames. Die Größe bestimmt, wie groß letztendlich unser Fenster erscheint. Ohne dieses Quad würden die Eingabefelder und Labels nur verlassen auf dem Bildschirm rumhängen, so werden sie optisch zu einer Einheit zusammengefasst. Das abgerundete Viereck wird dabei mit dem "BgWindow2" aus der Kategorie "Bgs1InRace" erzeugt.
    • Zeilen 04 und 05Die Titelleiste
      Das Label und das Quad in diesen beiden Zeilen sind zusammen für die grüne Titelleiste des Fenster zuständig. Diese beide Elemente überlagern sich dabei exakt, und mit einem niedrigeren Z-Wert wird das Quad hinter das Label gezwungen.
      Das Label hat als Style "TextTitle3", damit die Schrift wie ein Titel aussieht. Es zeigt letztendlich das "Input Window (Menu Mode)" an.
      Für das Quad wurde als Style "BgTitle3_4" aus der Kategorie "Bgs1InRace" gewählt, welches sowohl in TMUF als auch in TMNF eine grüne Farbe besitzt. Des Weiteren seht ihr, dass ich das Quad verlinkt habe: Es ruft diese Datei wieder auf, nur mit abgeänderten Wert, sodass zwischen den Positionierungsarten gewechselt wird.
    • Zeilen 06 bis 08, 10 bis 13 und 16 bis 18Bezeichnungen der Eingabefelder
      Diese 9 Labels sind für die Bezeichnungen zuständig. Die Positionierung war ganz schöne Arbeit, bis ich die passend hatte ^^ Also das Try'n'Error-Prinzip kommt auch oft zum Einsatz, bis so ein schickes Fenster entsteht Jedes Wort hat dabei sein eigenes Label, das jeweils als Style "TextStaticSmall" (eben für statischen Text) hat, sowie jeweils ein $o, um die Schrift fetter zu machen, und die "Überschriften" noch eine gelbe Farbe.
    • Zeilen 09, 10, 14, 15, 19, 20Die Eingabefelder
      Jeder Wert braucht natürlich sein eigenes Feld. Der Name ist dabei jeweils "input" und um welchen Wert es sich handelt. Dies wird bei Zeile 23 dann interessant. Ansonsten ist ja nicht so viel zu erklären: Positionierung und Ausrichtung sollte eigentlich klar sein, mit Style="TextValueSmall" erreicht man das Aussehen des Eingabefeldes mit gelber Schrift und leichter Schattierung.
      Die Standardwerte sind passend gesetzt: Während X, Y, Width und Height Zahlenwerte sind, kommt bei Halign und Valign natürlich left bzw. top hin. Alles andere wäre unpassend und nur verwirrend ^^
    • Zeile 23Button mit Verlinkung, inklusive Wertübergabe der Entries
      An diesem Label seht ihr, wie die Werte an das Script (hier an sich selbst) übergeben werden: Wenn der Name des Entries in einer URL steht, wird dieser automatisch durch den Inhalt des Feldes ersetzt.
      Beachtet, dass das &-Zeichen durch & ersetzt werden muss, da es sonst fehlinterpretiert wird. Würden nun die Werte in den Eingabefeldern geändert werden, so ändern sich automatisch die Werte in den URLs mit, sodass immer die aktuellen Eingaben übergeben werden.
      Mit Style="CardButtonMedium" wird ein mittelgroßer weißer Button erzeugt, der den angegebenen Text ("Apply Values") enthält. Der Button sollte euch im Spiel schon des öfteren mal begegnet sein Eine Angabe der Größe ist bei Verwendung der Button-Styles überflüssig, da der Style selbst die Größe festlegt.
    • Zeilen 21 und 22Zwei eigene Bilder
      Diese beiden Quads zeigen die zwei Flaggen, mit dehnen die Sprache ausgewählt werden kann. Das Bild wurde dabei, wie oben beschrieben, mit image angegeben. Ich hätte auch ein zweites Bild mit imagefocus angeben können, um einen MouseOver-Effekt zu erzielen, aber man muss ja nicht überall auf die Maus reagieren ^^
      Als ManiaLink wurde wieder auf die eigene Datei verwiesen, nur mit angepasster Sprache (lang=de/en).




    Der ManiaKlick: Verlinken via TMTP-Protokoll
    Mit dem Forever Addon gibt es eine Möglichkeit, durch entsprechende Verlinkung die ManiaLinks direkt aus dem Browser heraus mit nur einem Klick aufzurufen (quasi ein ManiaKlick ). Dafür kommt das TMTP-Protokoll zum Einsatz: Hat man während der Installation von TMF am Ende ausgewählt, dass TMTP-Links automatisch an TMF geschickt werden sollen, wird sich das Spiel nach Anklicken eines solchen Links (und nach Bestätigen einer eventuellen Nachfrage durch den Browser) öffnen und den entsprechenden Inhalt anzeigen. Läuft TMF bereits, wird der Inhalt dort angezeigt. (Sollte das TMTP-Protokoll nicht mit TMF verknüpft worden sein, ist hier nachzulesen, wie dies nachträglich getan werden kann.)

    Der Umgang mit solchen TMTP-Links ist dabei genauso einfach wie mit HTTP-Links. Folgende Möglichkeiten gibt es für die Verlinkung von ManiaLinks:


    • Aufruf eines ManiaLinks über die komplette URL
      Um einen ManiaLink über dessen (vollständige) URL aufzurufen, muss lediglich das http:// durch ein tmtp:// ersetzt werden. Anschließend folgt wie gewohnt die Domain sowie die Ordnerstruktur auf dem Server, eben wie bei normalen HTTP-Links.
      Beispiel: tmtp://funtrackers.incredispace.net/
    • Aufruf eines ManiaLinks über seinen registrierten Code
      Es ist möglich, einen ManiaLink auch über dessen registrierten Code aufzurufen, indem vor diesen einfach "tmtp:///:" gesetzt werden. Die drei / sind dabei wichtig, da sonst manche Browser fälschlicherweise ein abschließendes / an den gesamten Link anhängen, was im Spiel dann für ein Fehler sorgt. Der dritte Slash verhindert dies, und alles sollte funktionieren.
      Beispiel: tmtp:///:FunTrackers
      Vorsicht bei Sonderzeichen: Da diese in URLs umgewandelt werden, wird die Verlinkung nicht funktionieren. Zum Beispiel wird ein Leerzeichen zu "%20" umgewandelt, sodass aus "tmtp:///:Test Quad" schnell ein "tmtp:///:Test%20Quad" wird. Da dieser Code nicht existiert, kann TMF diesen TMTP-Link also nicht korrekt umsetzen. Ausnahme bildet hier der Internet Explorer, welcher tatsächlich "Test Quad" an TMF weitergibt, und somit Sonderzeichen in TMTP-Links mit diesem Browser funktionieren.

    Das TMTP-Protokoll kann im Übrigen auch für das Joinen des Servers und andere Sachen verwendet werden. Da dies aber nicht Bestandteil des Tutorials ist, habe ich dies großzügigerweise weggelassen




    What he said? Mehrsprachige ManiaLinks
    In TMF ist es möglich, die Sprache der ManiaLinks automatisch an die Spracheinstellung des Spiels anzupassen. Dabei werden für die zu unterstützenden Sprachen die jeweiligen Wörter, Wortgruppen oder Sätze seperat notiert, und das Spiel wählt die passende Version zum Anzeigen aus. Im Folgenden soll das Erstellen eines mehrsprachigen ManiaLinks etwas erläutert werden.

    Die ManiaLink-Datei:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <manialink>
      <timeout>0</timeout>
    
      <include url="http://localhost/manialink/lang.xml" />
    
      <label posn="-20 0 1" textid="example" />
      <label posn="-20 -10 1" textid="nadeo" />
      <quad sizen="10 5" imageid="img" />
    
    </manialink>
    Hier seht ihr, wie die eigentliche ManiaLink-Datei aufgebaut ist. Es ist euch freigestellt, ob ihr die Mehrsprachigkeit direkt mit in die Haupt-Datei einbaut, oder, so wie hier, mittels <include> einbindet. Ein weiterer Unterschied ist, dass bei den Elementen nun nicht mehr text und image stehen, sondern textid und imageid. Des weiteren ist auch der eigentliche Wert nicht mehr angegeben, sondern als Platzhalter eine ID für die zu verwendende Sprachvariable.

    Die Sprachdatei: lang.xml:
    Code:
    <dico>
        <language id="de">
            <example>Beispiel</example>
            <nadeo>Danke Nadeo für diese ManiaLinks</nadeo>      
            <img>http://localhost/manialink/de.png</img>
        </language>
    
        <language id="en">
            <example>Example</example>
            <nadeo>Thanks Nadeo for these ManiaLinks</nadeo>
            <img>http://localhost/manialink/en.png</img>
        </language>
    </dico>
    Hier seht ihr die Sprachdatei mit den beiden Sprachen Deutsch und Englisch.
    Jede Sprache wird durch ein <language id="CODE"></language> umschlossen, wobei der CODE dem Sprachcode entspricht (unten findet ihr eine Liste dazu).
    Innerhalb des Language-Tags kommen nun die IDs zum Einsatz: Den Inhalt der öffnenden < > und schließenden </ > Tags könnt ihr frei wählen. Den Wert, den ihr hier angibt, ist dabei genau die ID, die oben bspw. als textid angegeben wurde. Zwischen die Tags kommt nun der Inhalt, der anstelle der ID eingesetzt werden soll.


    Einige Hinweise:

    • Die Wahl der ID
      Eine ID muss mit einem Buchstaben oder einem Underline _ beginnen, danach können auch Zahlen folgen. Dies ist der sicherste Weg, Syntax-Problemen aus dem Weg zu gehen
    • Fehlende IDs einer Sprache
      Sollte eine ID in einer Sprache nicht vorhanden sein, so wird versucht, die Englische Entsprechung zu nutzen. Fehlt auch diese, so wird für die ID nichts angezeigt werden. Entsprechend sollte man darauf achten, dass mindestens Englisch vollständig ist.
    • Sonderzeichen
      Werden irgendwelche Sonderzeichen verwendet, muss die Sprach-XML-Datei mit der Kodierung UTF-8 abgespeichert werden. (Dies ist meist im Speichern-Dialog oder im Menü einstellbar.) Generell ist zu empfehlen, alle XML-Dateien als UTF-8 abzuspeichern, da dies die Standard-Kodierung für XML ist.


    Unterstützte Attribute:

    • <quad>image, imagefocus, url, manialink
    • <label>text, url, manialink
    • <audio>data
    • <video>data

    Um eine ID zu verwenden, muss lediglich "id" an das jeweilige Attribut angehangen werden. So wird beispielsweise aus "text" einfach "textid", aus "image" wird "imageid" usw.


    Liste der Sprachcodes:

    • czTschechisch
    • deDeutsch
    • enEnglisch
    • esSpanisch
    • frFranzösisch
    • huUngarisch
    • itItalienisch
    • jpJapanisch
    • krKroatisch
    • nlNiederländisch
    • plPolnisch
    • ptPortugisisch
    • ruRussisch
    • skSlowakisch
    • zhChinesisch

    (Für diese Codes existieren Sprachdateien für das Spiel, deshalb wird angenommen, dass sie alle als Sprache unterstützt werden.)




    Ausweis bitte: Die PlayerID
    PHP-Kenntnisse erforderlich.

    Bei verlinkbaren Elementen, also bei Labels und Quads, ist es möglich, mittels setzen von addplayerid benutzerspezifische Daten an den Link zu übergeben. Die Daten werden dabei als zusätzliche Parameter an die URL angehangen, dh. der Zugriff auf diese erfolgt somit über $_GET.


    Übergebene Daten:

    • playerlogin="m4rcel"Der Accountname des Spielers
    • lang="de"Die Sprache des Spiels
    • nickname="FT»Marcel"Der Nickname des Spielers
      Der Nickname wird inklusive aller Formatierungen übergeben. Die Sonderzeichen erscheinen in der URL zwar verfälscht (genauer gesagt URL-kodiert), das Script dekodiert diese Werte aber automatisch, sodass die unverfälschten Werte direkt zur Verfügung stehen.
    • path="World|Germany|Thuringia|Erfurt"Die Zone des Spielers

    Hinweis: Da die Daten an die URL angehangen werden, lassen sich diese leicht manipulieren, indem die URL manuell eingegeben wird und dabei falsche Werte vorgetäuscht werden. Für kritische Bereiche ist also von der PlayerID abzuraten!




    Gebt her eure Daten: Ein Beispiel zu Entry und FileEntry
    PHP-Kenntnisse erforderlich.

    Mit Entrys und FileEntrys ist es dem Benutzer möglich, Eingaben bzw. Dateien zum ManiaLink zu übertragen. Dieser Abschnitt soll ein kurzes Beispiel liefern, wie das auf Script-Seite aussehen kann.

    Beispiel zu Entry
    Das Verwenden von Entrys ist relativ einfach, da die Werte direkt an die URL angehangen werden können.

    XML-Code:
    Code:
    <entry posn="15 -8 5" sizen="5 2" style="TextValueSmall" name="inputWert" default="Hallo Welt!" />
    <label posn="15 -12 5" style="CardButtonMedium" text="Link mit Wert" manialink="ManiaLink?wert=inputWert" />
    Verarbeitendes Script:
    PHP Code:
    <?php
    // Einlesen des übergebenen Wertes
    $wert $_GET['wert'];

    // Ausgabe des ManiaLinks
    header('Content-Type: text/xml');
    echo <<<EOT
    <?xml version="1.0" encoding="utf-8" ?>
    <manialink>
        <timeout>0</timeout>
        <label text="
    {$wert}" />
    </manialink>
    EOT;
    ?>
    In der XML-Datei findet sich ein Entry mit dem Namen inputWert. Dieser Wert wird anschließend im Label als Parameter verwendet: ?wert=inputWert. Das heißt, wir bekommen den Inhalt des Entrys als wert geliefert.
    Im Script selbst wird nun einfach der empfangene Wert ausgelesen, und anschließend ein vollständiger ManiaLink generiert, der den übergebenen Wert als Label ausgibt.

    Beispiel zu FileEntry
    Das Verwenden von FileEntry ist etwas komplexer, da der Inhalt einer Datei nicht an die URL angehangen werden kann, sondern seperat (mittels POST-Methode) übertragen werden muss.

    XML-Code:
    Code:
    <fileentry posn="16 -28 0" sizen="39 2" style="TextValueSmall" name="inputTrackFile" folder="tracks\challenges" default="Strecke auswählen"/>
    <label posn="1 -32 0" style="CardButtonMediumWide" manialink="POST(ManiaLink?file=inputTrackFile,inputTrackFile)" text="Strecke absenden"/>
    Verarbeitendes Script:
    PHP Code:
    <?php
    // Einlesen der empfangenen Datei
    $name $_GET['file'];
    $file file_get_contents('php://input');

    // Empfangene Datei auf dem Server speichern
    file_put_contents("tracks/{$name}"$file);

    // Größe der Streckendatei ermitteln für die Ausgabe
    $size filesize("tracks/{$name}");

    // Ausgabe des ManiaLinks
    header('Content-Type: text/xml');
    echo <<<EOT
    <?xml version="1.0" encoding="utf-8" ?>
    <manialink>
        <timeout>0</timeout>
        <label text="Empfangene Strecke: 
    {$name} (Größe: {$size})" />
    </manialink>
    EOT;
    ?>
    Der XML-Code ähnelt dem des ersten Beispiels. Herauszuheben ist nur die Angabe im manialink-Attribut des FileEntry: Dort steht nicht nur der eigentliche ManiaLink, sondern es wird mit POST(ManiaLink?file=inputTrackFile,inputTrackFile) gesagt, dass er die bei inputTrackFile (hinter dem Komma) ausgewählte Datei an ManiaLink?file=inputTrackFile (vor dem Komma) senden soll. Doch wieso wird die Strecke nochmal als Parameter an die URL angehangen? Damit im Script der Original-Dateiname vorhanden ist. Ohne diesen Parameter würde der Streckenname verloren gehen, dieser wird allerdings (in diesem Beispiel) zum Speichern benötigt. (Heißt auch: Wird der Dateiname nicht benötigt, kann der Parameter in der URL entfallen.)
    Im Script selbst wird nun der Name und die Datei eingelesen, die Datei selbst gespeichert, und anschließend der Name und die Größe der Datei ausgegeben. Der Code sollte eigentlich selbst erklärend sein.

    Hinweis: An dieser Stelle sei nochmals darauf hingewiesen, dass das unkontrollierte Hochladen und Abspeichern von Dateien eine enorme Sicherheitslücke darstellt. Überprüft also auf jeden Fall, ob ihr eine erwartete Datei bekommen habt, und dass nicht versucht wurde, eine schädliche Datei unterzujubeln.
    Im Beispiel wäre eine einfache Kontrolle, dass der Dateiname auf ".Challenge.Gbx" enden muss. Ein besserer, allerdings auch schwieriger zu realisierender Schutz wäre, den XML-Header der Strecken-Datei auszulesen und zu überprüfen, ob dieser gültige Werte beispielsweise für Streckenname und Author hat.




    Alles hat ein Ende...
    Somit sind wir am Ende meines Tutorial angelangt. Ich habe alles gesagt, was ich zu sagen hatte, auf alles hingewiesen, worauf es hinzuweisen galt. Nun liegt es bei euch, das hier niedergelegte Wissen anzuwenden. Lasst eurer Phantasie freien lauf, und taucht ein in die Welt der unbegrenzten Möglichkeiten...

    Natürlich freue ich mich über jegliche Kommentare zum Tutorial. Wenn es irgendeinen Fehler gibt, oder irgendetwas nicht stimmt, so weist darauf hin, auf dass ich ihn noch in diesem Jahrtausend ausbessern werde ^^ Wenn ihr ein Problem zu den ManiaLinks habt, öffnet bitte ein eigenes Thema dafür (nachdem ihr die Suchfunktion verwendet habt ), in diesem Thread sollten nur Dinge gepostet werden, die unmittelbar etwas mit dem Tutorial zu tun haben.

    Zum Schluss folgen noch ein paar Danksagungen an diejenigen, die mich beim Schreiben des Tutorials unterstützt haben:
    Zum einen wären da die Betatester von TMF, die mir einige meiner Fragen zu den damals neuen ManiaLinks beantworten konnten, und mich das ganze besser haben verstehen lassen.
    Zum anderen geht ein Dank an die Member des FT Clans und den ehemaligen Partnerclan ECU, die mich auf unpassende, fehlerhafte oder unverständliche Textstellen hingewiesen haben.
    Zu letzt geht noch ein besonderer Dank an FT»kastun. Er hat mich nicht nur schon bei der ersten Version des Tutorials unterstützt, sondern auch die Komplett-Überarbeitung mit kritischem Blick begutachtet.




    Möge die 42 mit euch sein.
    FT»Marcel
    Last edited by Marcel; 07.09.2010 at 16:33.

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  4. #4
    Join Date
    07.07.2006
    Posts
    519

    Default

    grosse arbeit, gutes resultat!

  5. #5
    Join Date
    02.07.2007
    Alter
    21
    Posts
    4,225

    Default

    Habe es ja schon im vorraus lesen können, super Arbeit

  6. #6
    Join Date
    12.11.2005
    Alter
    32
    Posts
    240

    Default

    vielen dank für die erleuchtung marcel san
    *verbeug*
    >><<
    Feedback und Kritik zu meinem Manialink bitte in diesen Fred schreiben und ab und an mal hier klicken.

  7. #7
    Keks's Avatar
    Keks is offline - failed at leaving
      early enough -
    Join Date
    25.01.2008
    Alter
    20
    Posts
    545

    Default

    ach son mist...
    jetz hatten wir grad den ML fertig un dann wirds anders... =(
    könntet ihr mir vielleicht mal die index.xml und die tracks.xml in der standerd version schicken wies jetz sein sollte ???
    weil ichs net gescheit versteh...

    wär total extrem nett!!!
    danke schon mal...

  8. #8
    Join Date
    20.06.2005
    Alter
    26
    Posts
    636

    Default

    Keine Panik, das mit dem schnallen kommt schon noch, habs auch nicht beim ersten Lesen gleich kapiert

    Spitzen Tutorial übrigens, nur Schade, dass label keine Hintergrundfarbe hat

  9. #9
    Join Date
    18.03.2004
    Alter
    32
    Posts
    5,572

    Default

    Schade ist auch das ein quad mit image seine hintergrundfarbe verliert Oder hab ich was falsch gemacht?

    Aber Tutorial is super!

  10. #10
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default

    Quote Originally Posted by Benny View Post
    ach son mist...
    jetz hatten wir grad den ML fertig un dann wirds anders... =(
    könntet ihr mir vielleicht mal die index.xml und die tracks.xml in der standerd version schicken wies jetz sein sollte ???
    weil ichs net gescheit versteh...

    wär total extrem nett!!!
    danke schon mal...
    Wie kastun schon sagte: Es bedarf einiger zeit, bis dann der Aha-Effekt einsetzt. Als ich das erste mal die neuen Tags im betaforum gesehen hab, wusste ich auch nicht sofort, wie das gehen soll. Zahlreiche Tests haben mich dann das Ganze erst verstehen lassen

    Ansonsten: Ich habe ja mehrmals erwähnt, dass die alten ManiaLinks (mit Lines und Cells) komplett unterstützt werden. Es zwingt dich also niemand, die neuen Elemente zu nutzen, du kannst genauso gut die ManiaLinks in der bekannten Weise weiterbauen

    @ Others: Danke für das Feedback

    EDIT:
    Quote Originally Posted by Sascha View Post
    Schade ist auch das ein quad mit image seine hintergrundfarbe verliert Oder hab ich was falsch gemacht?

    Aber Tutorial is super!
    Ja das habe ich auch bemerkt: bgcolor, image/imagefocus und style/substyle heben sich gegenseitig auf, sodass immer nur einer von diesen dreien letztendlich dargestellt wird
    Eine Notlösung wäre eventuell, einfach nen 2. Quad exakt dahinter zu platzieren, nicht elegant, aber so bekommst du den Effekt hin ^^

    EDIT2: Um genau zu sein ist die Rangordnung: Style > Image > Farbe

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  11. #11
    Keks's Avatar
    Keks is offline - failed at leaving
      early enough -
    Join Date
    25.01.2008
    Alter
    20
    Posts
    545

    Default

    ja ich weiß aber ich habs schon 3 mal gelesen un ich versths trotzdem nich richtig..
    also ich weiß net wie ich anfangen soll...
    naja oke schon
    erst ma des mit <xml...> un so dann <manialink> un dann weiß ich net wie ich des mit dem neuen machen soll...

  12. #12
    Join Date
    18.03.2004
    Alter
    32
    Posts
    5,572

    Default

    Thx für die info marcel
    Die idee mit dem zweiten Quad ist eigentlich auch ganz gut, wäre da nicht ein PHP Script das alles für mich erzeugt und sowas eigentlich nicht beachtet, jetzt muss ich den xml Code weiter aufblasen

    Eine Frage hab ich noch, gibt es irgendeine Möglichkeit eine Standart-Hintergrundfarbe zu setzen? Weil momentan geb ich jedem Quad eine Farbdefinition mit was den XMLCode ziemlich groß macht

  13. #13
    Join Date
    20.06.2005
    Alter
    26
    Posts
    636

    Default

    Vieleicht einfach mit nem Quad weit hinten?

    Code:
      <quad
       pos="1 0.75 0.4"
       size="2 1.5"
       bgcolor="222F">
      </quad>
    oder einfach mit dem alten Tag, soll ja auch noch gehen:
    Code:
    <background bgcolor='222F' bgborderx='1.5' bgbordery='1.5'></background>

  14. #14
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default

    @ Benny:
    Du schreibst einfach die Codes direkt hinein. Anstelle von <Line> und <Cell> kommt direkt eben <quad> oder <label> hin.
    Hmm ich seh grad. Es wäre günstiger wenn ich im komplexen Beispiel das <xml...> und <manialink> mit angeb, werd ich bei nächster Gelegenheit ändern

    @ Sascha:
    Habe mal bissl rumprobiert, und bin auf folgenden Trick gekommen:
    Anscheinend unterstützt das <format> ebenfalls bgcolor="RGBA", also kannst du es einmalig im <format> angeben. Die Farbe wird dann auf alle Quads angewendet. (Auf Label, Entry und FileEntry würde bgcolor auch angewendet werden, aber die unterstützen dass nicht)
    bgcolor gehört also zu den <Format>-Attributen.
    Werd ich bei nächster Gelegenheit oben mit updaten

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  15. #15
    Join Date
    20.06.2005
    Alter
    26
    Posts
    636

    Default

    Hmm ich glaub ich hab da noch was entdeckt, wenn kein Manialink im Quad als Link angegeben ist funktioniert imagefocus nicht, solltets du vielleicht nochmal im Tutorial hinzufügen.

    Oder mach ich was falsch?

  16. #16
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default

    Stimmt, du hast recht. Wenn ein Quad nicht verlinkt ist, gibt es kein MouseOver-Effekt. Ich werde es dazuschreiben.

    Aber ich sehe es auch so: Wenn ein Bild auf die Maus reagiert, heißt es normalerweise, dass man es anklicken kann. Somit wäre der MouseOver Effekt immer da. Es wäre dagegen verwirrend, wenn eine Fläche auf die Maus reagiert, die nicht zum anklicken ist

    » Komplexes Beispiel ergänzt

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  17. #17
    Keks's Avatar
    Keks is offline - failed at leaving
      early enough -
    Join Date
    25.01.2008
    Alter
    20
    Posts
    545

    Default

    ehm kastun?
    nur mal was zu deinem aktuellen manialink:
    aaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhh!!!!!!!!!!!!!!!! !!!!!!!
    scheisseeeee! is der geil mannn!!!!!
    sachma wie stink langweilig muss dir gewesen sein dass du des hingekriegt hast???
    so extremst geil

    und ich hätt ne frage:
    wie machst du des dass du da mitten rein was schreibst also halt so versetzt? des sieht so extrem geil aus
    un noch was: des sieht extrem geil aus
    (hab ich des schon ma gesagt)

  18. #18
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default

    Sowas gehört nun wirklich nicht hierher. Da es direkt an kastun gerichtet ist, wäre eine PM angebrachter
    (Der Thread muss nicht unnötig belastet werden )

    Ansonten:
    » Fehlender MouseOver-Effekt bei imagefocus erwähnt
    » Möglichkeit genannt, dass bgcolor auch im <format> stehen kann (das steht direkt beim quad mit drin, weil es ja nur auf das Quad auswirkung hat)

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  19. #19
    Join Date
    16.04.2008
    Posts
    20

    Default

    Schönes tutorial ...

    Gibts eigentlich schon ein manialink-forensystem? wenn nicht .. wer hat lust soetwas mit PHP zu programmieren .. also nen basis-system ?
    dabei stellt sich nur folgendes problem .. wie bekommt man die eintragungen vom nutzer zum server .. es gibt ja keine form mit POST methode und kein TEXTAREA feld und so.. oder doch?

    @ Sascha :

  20. #20
    Join Date
    14.09.2005
    Alter
    26
    Posts
    3,617

    Default

    Das könnte man alles mit Entries erledigen, und ein POST gibt es zumindest bei fileentry. Inwiefern dass auch bei entry genutzt werden kann weiß ich nicht. (Müsste getestet werden, hab von POST aber nicht ganz so viel Ahnung)

    Aber mit einem entry kannst du auch größere Textfelder machen, kommt eben nur drauf was du bei size(n) angibst.
    Ein kleiner schneller Test hat gezeigt, dass für mehrzeilige Eingabefelder das Attribut autonewline="1" angegeben werden kann, ansonsten hätte man nur eine Zeile
    (Wieder nen Punkt en ich hinzufügen kann ^^)

    Ansonsten nen ganzes Forensystem als ManiaLink: Ziemlich aufwändig sage ich mal. SanxX hat schon nen halbes forum als ML, vielleicht macht er ein ganzes draus ^^

    EDIT:
    » Das Attribut autonewline zu <entry> und <fileentry> hinzugefügt
    » Hinweis auf schwerwiegenden Bug in <fileentry> hinzugefügt:

    Folder muss zwingend angegeben werden, ansonsten stürzt TMF komplett ab. folder="" ist dabei zulässig und bezeichnet den TM-Ordner in den eigenen Dateien

    @ Justi unten: Musst ja nicht sofort auf der Stelle überarbeiten, hat ja Zeit
    Last edited by Marcel; 17.04.2008 at 18:47.

    [Tutorial] ManiaLinks ForeverKein Support für ManiaLinks via PM! Nutzt das Forum!

  21. #21
    Join Date
    24.09.2006
    Alter
    21
    Posts
    1,199

    Default

    joa Marcel ich durfte ja schon vor Release in das Tut blicken und ich finde es einfach HAMMER!

    Richtig geil zu lesen

    ich werde allerdings bei den alten ML-System bleiben hab im mom einfach keine Zeit da iwas umzustellen

    MfG Justicool

  22. #22
    Join Date
    05.05.2005
    Posts
    4,974

    Default

    nettes tut scheint ja ne lange arbeit wärend der beta gewesen sein
    werd mir das mal in den ferien anschauen
    __________________

  23. #23
    Join Date
    16.04.2008
    Posts
    20

    Default

    wer oder was is denn dieser SanxX ..? und wie komm ich aus TMNF auf die seite ?

    PS.: bastel selber auch rum .. is zwar nichts gescheites .. kan aber noch werden .. immerhin bekomm ich den text zum server geschickt ...:
    Manialink : http://scienci.111mb.de/manialink/manialink.php

  24. #24
    Join Date
    01.02.2006
    Posts
    325

    Default

    Also ich wollte endlich mal meine ManiaLink Seite machen und jetzt muss ich entsetzt feststellen, dass es mit TMF ein neuer Aufbau, der noch komplexer ist, gibt. Hat natürlich auch den Vorteil, dass so nicht jeder Depp einen ManiaLink macht, weil es dafür zu viel Arbeit macht. Aber für mich, der nur ab und zu spielt, aber gerne seine Strecken und Schilder auch in TMF direkt anbieten möchte, ist das doch etwas zu viel des Guten. Da hätte ich es echt gut gefunden, wenn Nadeo gleich noch einen Editor mitgeliefert hätte, mit dem nicht ganz so zeitraubend eine einfache Seite erstellt werden kann. Ich soll mir also quasi nur wegen einem Spiel eine Art neue Programmiersprache (das es auf XML beruht tut hier ja eigentlich nicht so viel zur Sache, ist ja nur die Struktur, die Befehle sind ganz eigene) aneignen? Muss ich mir noch mal durch den Kopf gehen lassen, so ganz einfach ist das nämlich nicht und wenn ich sowas mache solls auch nach was aussehen (am liebsten mit PHP aufgebaut). Nur würde das wesentlich mehr Zeit verschlingen, als ich eigentlich da rein stecken wollte.

    Naja, mal sehen, wie ich mich kenne werds ichs am Ende doch machen, ist ja nicht so das ich total unerfahren auf dem Gebiet wäre, nur die Befehle und wie man sie anwenden muss sind mir fremd und gerade der Gedanke "ich muss(!) dafür was neues lernen" schreckt mich eher ab.
    Last edited by Balmung; 21.04.2008 at 08:36.
    - Meine TMN Forever Tracks - Thread - Balmung F02 - letztes Update: 29.04.08
    - Meine TM Nation Tracks - Thread - Balmung 01-17 - letztes Update: 11.03.06
    - Mein TMN Schilder Pack - Thread - 12 Stück - letztes Update: 25.12.09
    - Alles und eine Rekord Liste auch auf meinem Manialink: Balmung oder http://tmf.baltools.de

  25. #25
    Join Date
    12.11.2005
    Alter
    32
    Posts
    240

    Default

    @Balmung:
    Ich finde es ist durch das neue TMUF Manialink Handling einfacher geworden, schönere und besser verwaltbare Inhate zu erstellen, im vergleich zum vorherigen gecelle bei den TMU Manialinks. Ich mache es allerdings auch nicht über PHP.
    >><<
    Feedback und Kritik zu meinem Manialink bitte in diesen Fred schreiben und ab und an mal hier klicken.

  26. #26
    Join Date
    01.02.2006
    Posts
    325

    Default

    @spookster: stimmt, es ist einfacher, da hat mich wohl das alte System dazu verleitet, dass mehr Möglichkeiten = noch komplizierter sein würde, was aber nicht zutrifft. Man kann mehr machen obwohl es jetzt einfacher ist.


    Ein Lob noch von mir für das Tutorial, hab das Ganze doch schneller gecheckt als ich dachte. Mit den neuen Befehlen könnte man glatt ein ganzes Forum in TMF umsetzen. Jedenfalls wird meine Seite nun doch komplexer als geplant, ist eben typisch für mich, wenn gewisse Möglichkeiten vorhanden sind, will ich die auch richtig nutzen.


    Noch eine Sicherheitsfrage: der PlayerLogin Name bei addplayerid="1" ist der, den man beim einloggen zusammen mit dem Passwort angeben muss und somit bei jedem Spieler einzigartig ist? Dann kann man den also als ID benutzen? Korrekt?


    Hier noch ein Tipp, wenn ihr wollt, dass die Seite nicht im normalen Browser angezeigt wird, benutzt folgenden Code direkt als erstes in eurem Quellcode:

    PHP Code:
    if ($_SERVER['HTTP_USER_AGENT'] != "GameBox")
     die (
    "This is a ManiaLink, use it in TrackMania Forever"); 
    Hintergrund: Mit der Variable $_SERVER['HTTP_USER_AGENT'] kann man abfragen mit welchem Client die Seite aufgerufen wurde und so für normale Webseiten nur eine kurze Hinweis Meldung ausgeben lassen. Kugelsicher ist das Ganze allerdings nicht, mit Tricks kann man auch einen normalen Webbrowser dazu kriegen sich als "GameBox" auszugeben, aber es schützt wenigstens ein bisschen davor im Quellcode rum zu schnüffeln. Natürlich könnt ihr statt einem kurzen Hinweistext auch eine Umleitung oder gar eine komplexere Seite anzeigen lassen.

    Nadeo hätte hier ruhig diese Variable besser nutzen können, um so z.B. zwischen TMUF und TMNF unterscheiden zu können. Bei einem normalen Browser kriegt man nämlich sowas zurück (FF2 unter XP Pro): "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14". Das hätte es nämlich ermöglicht TMNF Nutzern auch nur Stadion Strecken anzeigen zu lassen. Oder gibt es eine andere Möglichkeit raus zu finden, ob TMUF oder TMNF zum Browsen auf einem ManiaLink benutzt wurde?
    Last edited by Balmung; 21.04.2008 at 08:49.
    - Meine TMN Forever Tracks - Thread - Balmung F02 - letztes Update: 29.04.08
    - Meine TM Nation Tracks - Thread - Balmung 01-17 - letztes Update: 11.03.06
    - Mein TMN Schilder Pack - Thread - 12 Stück - letztes Update: 25.12.09
    - Alles und eine Rekord Liste auch auf meinem Manialink: Balmung oder http://tmf.baltools.de

  27. #27
    Join Date
    20.06.2005
    Alter
    26
    Posts
    636

    Default

    Selbst wenn es die gibt, hilft das nicht viel.
    Im Tutorial steht ja, das Maniacodes in TMNF nicht funktionieren, wozu dann also denen nur Stadium Tracks anzeigen, wenn die ohnehin nicht runtergeladen werden können?

    Und soweit ich das verstanden hab muss man bei addplayerid="1" kein Password angeben, es reicht ja schon der Login, der ist ja auch einzigartig.

  28. #28
    Join Date
    01.02.2006
    Posts
    325

    Default

    Daran hab ich bereits gedacht und hab daher die entsprechende Antwort parat: Für TMNF Spieler, die ihren TDU Login benutzen.

    Nur da der Login lediglich an die URL Adresse angehängt wird, macht den ganzen mist unbrauchbar da total unsicher (jeder Depp kann das manuell in die Adresszeile eingeben und so seine Daten faken). Hab ich eben schon in einem extra Thread drüber gemosert.


    Gibt es eigentlich eine Möglichkeit den Text in einem Label zu zentrieren? Der wird bei mir über mehrere Zeilen immer linksbündig geschrieben.
    Last edited by Balmung; 21.04.2008 at 12:13.
    - Meine TMN Forever Tracks - Thread - Balmung F02 - letztes Update: 29.04.08
    - Meine TM Nation Tracks - Thread - Balmung 01-17 - letztes Update: 11.03.06
    - Mein TMN Schilder Pack - Thread - 12 Stück - letztes Update: 25.12.09
    - Alles und eine Rekord Liste auch auf meinem Manialink: Balmung oder http://tmf.baltools.de

  29. #29
    Join Date
    20.06.2005
    Alter
    26
    Posts
    636

    Default

    Das ändert nichts daran, dass die in TMNF nihcts runterladen können (ich hoffe ich hab das was du geschreiben hast verstanden^^).

    Hmm, ich dachte der wird so mitgesendet und kann nicht eingegeben werden, wäre viel sinnvoller gewesen. Aber so hast du natürlich Recht.
    @Marcel: Schreib mal im Tutorial dazu, dass es leicht umgangen werden kann.

    Mit halign="center" du musst dann allerdings beachten, das das label dann auch am positonierungspunkt zentriert wird.

  30. #30
    Join Date
    01.02.2006
    Posts
    325

    Default

    Wenn man sich mit dem TMU Account in TMNF einloggt, dann werden die gesperrten Funktionen freigeschaltet, das ist definitiv auch hier der Fall, ich kann jedenfalls über TMNF Coppers erfahren, daher sollte auch das gehen.

    halign="center" bringt leider gar nichts, hatte ich bereits schon so.

    Mir scheint die ML Befehle haben sich zwar stark verbessert, aber von perfekt sind sie immer noch seeeehr weeeiiiiit entfernt.

    Die Nadeo Lösung mit den User Daten regt mich jetzt echt auf, wirft bei mir die Planung teils doch stark über den Haufen.
    - Meine TMN Forever Tracks - Thread - Balmung F02 - letztes Update: 29.04.08
    - Meine TM Nation Tracks - Thread - Balmung 01-17 - letztes Update: 11.03.06
    - Mein TMN Schilder Pack - Thread - 12 Stück - letztes Update: 25.12.09
    - Alles und eine Rekord Liste auch auf meinem Manialink: Balmung oder http://tmf.baltools.de

Page 1 of 11 12 ... LastLast

Similar Threads

  1. Clan-Manialink: Funtrackers
    By Marcel in forum Showcase
    Replies: 38
    Last Post: 15.12.2009, 11:26
  2. [TM] Unterschied: TM United und United Forever
    By JuliSniper2 in forum [DEUTSCH]
    Replies: 8
    Last Post: 29.07.2008, 16:24
  3. ManiaLink : DD (Team Devil Driver)
    By Ol´Dirty in forum Showcase
    Replies: 3
    Last Post: 05.05.2008, 09:09
  4. Da schau her: United Forever Update ist da!
    By Oliver Beck in forum [DEUTSCH]
    Replies: 46
    Last Post: 19.04.2008, 10:49
  5. Ergebnisse zum Deep Silver Trackscontest
    By Maupi in forum [DEUTSCH]
    Replies: 221
    Last Post: 27.04.2007, 21:34

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •