Im Quelltext mit WinHttp gezielte Sachen rausfiltern

  • Diese Seite soll ausgelesen werden

    Die Seite ist folgender Maßen aufgebaut.
    [Blockierte Grafik: http://www.abload.de/img/unbenannt-2yqogw.jpg]

    Das grün umrandete ist das Item.
    Das blau umrandete ist der Name des Items.
    Das orange umrandete sind die Informationen zu dem Item.

    Wichtig: Wenn ihr jetzt denkt das wird ein Bot, falsch gedacht. Das soll ein Programm werden um die gewünschten Items im Spiel zu ändern, es gibt zwar schon ein Programm von dieser Sorte, das aber nicht sehr dolle ist. Die Community unterstützt sogar solche Programme. In der AGB steht nichts der gleichen das es nicht erlaubt ist.


    Ich benötige von der Internetseite nur alle Itemnamen und alle ItemID's.
    Quelltext und Bilder im Anhang, die Bilder sind im Format .ico in einer DLL.

    Was ich davon benötige ist der Name: <div class="champion_name">Übergroßer Stab</div>
    Die ItemID: <img src="http://euw.leagueoflegends.com/sites/default/files/game_data/1.0.0.131/content/item/1058.png" class="champion_icon"> ( In dem Fall grün makiert.)
    Die Bilder habe ich alle in einer DLL.

    Die Bilder sind im Format .ico und sollte in eine ListView geladen werden sowie die ID und der Name, wenn man auf den Namen in eines Item in der ListView klickt sollte die ID ausgelesen werden und ins Input geschrieben werden.


    Ich habe jetzt den Quelltext schon einmal soweit das, das wichtigste noch zu erkennen ist.

    [autoit]

    $url="euw.leagueoflegends.com"
    $folder = "/de/items"
    $file = @ScriptDir & "\quelltext.html"

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

    #include <WinHttp.au3>

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

    $hsession = _winhttpopen("Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0")
    $hconnect = _winhttpconnect($hsession, $url)
    $shtml = _winhttpsimplerequest($hconnect, "GET", $folder)

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

    FileWrite($file, $shtml)

    [/autoit]
  • In der AGB steht nichts der gleichen das es nicht erlaubt ist.


    Dann lies nochmal:

    Zitat

    J. Die Nutzung jeglicher unauthorisierter Drittanbieterprogramme, einschließlich, aber nicht darauf beschränkt, „Mods“, „Hacks“, „Cheats“, „Scripts“, „Bots“, „Trainer“ und automatisierter Programme, die auf beliebige Weise und aus beliebigem Grund mit dem Spiel interagieren, einschließlich, aber nicht darauf beschränkt, das Abfangen, Emulieren oder Umleiten der Kommunikation zwischen der Software und Riot Games, und das Auslesen von Informationen aus Speicherbereichen, die dort von der Software abgelegt wurden.

  • Ich wird es an deiner Stelle nochmal lesen.
    Es ist kein Bot, Hack, Exploit,Mod,Cheat,Trainer etc.
    Ich greife damit nicht auf das Spiel zu.
    Riot Games stellt die Funktion selbst zur Verfügung. ;)

    Mit freundlichen Grüßen

    volle

  • Ich halte es dennoch für nicht koscher.
    Derartige Firmen achten in der Regel penibel darauf das alles nur über ihre Plattform aus benutzt wird.

    Um dein Ziel zu erreichen würde ich dir empfehlen dich mal mit Regulären Ausdrücken zu beschäftigen.
    Mal ein kleines Beispiel für deinen Anwendungsfall:

    [autoit]

    For $i in StringRegExp(BinaryToString(InetRead("http://euw.leagueoflegends.com/de/items")), '<span class="highlight">(.+?)</span>', 3)
    MsgBox(0,"", $i)
    Next

    [/autoit]
  • Es läuft ja über deren Plattform.
    Ich füge nur einen Ordner und eine Datei hinzu die den Charakternamen und die 6 ausgewählten ItemID's enthält

    Mit freundlichen Grüßen

    volle

  • Wenn ihr jetzt denkt das wird ein Bot, falsch gedacht. Das soll ein Programm werden um die gewünschten Items im Spiel zu ändern


    Hat dies etwa keinen Einfluss auf das Spiel? Wenn nicht lass es bleiben, wenn doch gilt

    Zitat

    J. Die Nutzung jeglicher unauthorisierter Drittanbieterprogramme, einschließlich, aber nicht darauf beschränkt, „Mods“, „Hacks“, „Cheats“, „Scripts“, „Bots“, „Trainer“ und automatisierter Programme, die auf beliebige Weise und aus beliebigem Grund mit dem Spiel interagieren, einschließlich, aber nicht darauf beschränkt, das Abfangen, Emulieren oder Umleiten der Kommunikation zwischen der Software und Riot Games, und das Auslesen von Informationen aus Speicherbereichen, die dort von der Software abgelegt wurden.

    mfg autoBert

  • Ihr macht euch viel zu große Gedanken. Das Ganze ist durchaus gestattet, da es absolut nichts mit dem Spiel zu tun hat. Vielmehr ist es mit dem Arsenal von WoW vergleichbar.

  • versuch es einfach mal so:

    [autoit]


    #include <WinHttp.au3>
    #include <array.au3>

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

    $url="euw.leagueoflegends.com"
    $folder = "/de/items"
    $file = @ScriptDir & "\quelltext.html"

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

    $hsession = _winhttpopen("Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0")
    $hconnect = _winhttpconnect($hsession, $url)
    $shtml = _winhttpsimplerequest($hconnect, "GET", $folder)

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

    $aitemname= StringRegExp($shtml,'champion_name">([^<]+)',3)
    $aitemid= StringRegExp($shtml,'item/([^<.]+).png',3)
    _ArrayDisplay($aitemname,"Itemname")
    _ArrayDisplay($aitemid,"Itemid")

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

    FileWrite($file, $shtml)

    [/autoit]
  • Es gibt vorgefertigte Items die man im Spiel für eine gewisse Klasse empfohlen bekommt, die aber meistens Crap sind (Crap bedeutet soviel wie Mist).
    Mit dem hinzufügen einer Datei kann man ganz einfach die Items ändern, es bringt einem kein Vorteil und auch kein Nachteil. Es ist ein direkter Eingriff in das Spiel,Client und auch nicht zum Server. Also is es völlig legal es zu nutzen.

    Mit freundlichen Grüßen

    volle

  • Alles schön und gut, ich nehme aber lieber InetRead, gemischt mit WinHttp und StringRegExp. ^^

    Mit freundlichen Grüßen

    volle