Updates per Root?

  • Hallo.

    Ich bin ja derzeit an einem Launcher dran.

    Da dieser ja ein Spiel starten soll, soll dieser auch automatisch neue bzw. geänderte Dateien von einem Root lesen und downloaden.

    Ich habe zwar Erfahrung was nun die Basic's von AutoIt betrifft, jedoch bisher keine Erfahrung wie man eine Verbindung zu einem FTP ggf. Root herstellt.

    Daher wollte ich fragen, wie dies am leichtesten zu bewältigen ist.

  • [autoit]

    _FTP_Open
    _FTP_Connect
    _FTP_FileGet
    _FTP_ListToArray
    _FTP_Close

    [/autoit]

    Das sollte dafür reichen
    Haben die Updates irgendwelche merkmale (Versionsname, Releasedatum?)
    du willst ja nicht jedes mal alles herunterladen denke ich ;)

    21 is only half the truth.

  • Nein, ich denke nicht das die Dateien eine spezielle Version oder Releasedatum haben.

    Wäre es möglich, durch eine .txt Datei, die Dateien, die verändert wurden zu suchen und herunterzuladen?

    Also, das die .txt Datei so aussieht:

    Spoiler anzeigen

    \images\character\jono.bin
    \data\bin\config.dat
    \data\textures\vil22.oxc

    und der Script diese Dateien sucht und herunterlädt, gleichzeitig aber auch in den richtigen Ordner verschiebt bzw. herunterlädt?

  • Du könntest natürlich auch die Dateigröße vergleichen:

    _FTP_FileGetSize
    FileGetSize

    Den Zielort kannst du am besten bestimmen indem der "Updater" im Ordner des Spiels ist und die Dateien einfach nach @Scriptdir kopierts ;)

    Mit so einer Textdatei gehts natürlich auch, nur ist es halt zu Pflegen..und bei verschiedenen Versionsständen bekommst du wahrscheinlich Probleme ^^

    21 is only half the truth.

  • Nur, da kann der Fehler vorkommen, das zwar die Dateien verändert wurden, die Größe aber identisch bleibt.

    Denke ich mir zumindest.

    ~EDIT~

    Ich habe nunmal versucht, die Verbindung im Script zu definieren.

    Ich würde gerne wissen, ob dies richtig gesetzt wurde.

    [autoit]

    #include <FTPEx.au3>

    [/autoit][autoit][/autoit][autoit]

    $server = '127.0.0.1'
    $username = 'Root'
    $pass = 'password'
    $s_RemoteFile = '\root\'
    $s_LocalFile = 'update.txt'

    [/autoit][autoit][/autoit][autoit]

    $Open = _FTP_Open('Updater')
    $Conn = _FTP_Connect($Open, $server, $username, $pass)
    _FTP_FileGet($Open, $s_RemoteFile, $s_LocalFile [, $fFailIfExists = False])
    $Close = _FTP_Close($Open)

    [/autoit]

    Er soll die Datei "update.txt" im Root-Verzeichnis des Servers downloaden.

    ~EDIT~

    Die .txt Datei sieht so aus.

    Spoiler anzeigen

    ./data/Config/config.pk3,e7cda9326fc30705e25650cec602dff5
    ./data/Effect/add.gb,b48bb81ccef4ea70a858f6978653f4e4
    ./data/Effect/Around/Effect_Around.GTX,959a30d3b93b8863a95982541a9f4127
    ./data/Effect/BangPe PG.gb,f26957921f75437f491e97862fba0426
    ./data/Effect/black.gb,1d7a26b251f2b46fe5458c046e393094
    ./data/Effect/choigun.dat,081866061d090e76a7a27f9fde3b92f1

    Das Wirrwar hinter dem Komma ist MD5.
    Zudem lautet die Datei file.list, ist aber mit einem normalen Editor zu lesen.

    4 Mal editiert, zuletzt von Kazuto (18. Juni 2010 um 00:32)

  • Damit es nicht so unübersichtlich wird.

    Fasse ich meine Beiträge nochmal kurz zusammen.

    Das Script soll eine Datei herunterladen, in der weitere Dateien stehen die verändert wurden.
    Diese Datei heißt file.list und sieht wie folgt aus:

    Spoiler anzeigen

    ./data/Config/config.pk3,e7cda9326fc30705e25650cec602dff5
    ./data/Effect/add.gb,b48bb81ccef4ea70a858f6978653f4e4
    ./data/Effect/Around/Effect_Around.GTX,959a30d3b93b8863a95982541a9f4127
    ./data/Effect/BangPe PG.gb,f26957921f75437f491e97862fba0426
    ./data/Effect/black.gb,1d7a26b251f2b46fe5458c046e393094
    ./data/Effect/choigun.dat,081866061d090e76a7a27f9fde3b92f1

    Als erstes sieht man den Pfad, dann die Datei und am Ende ein MD5.

    Nun bräuchte ich als erstes Hilfe dabei, das er die o.g. Datei downloaded und ausliest.
    Danach soll er die Dateien suchen die in der file.list stehen und diese ebenfalls downloaden.