To steal or not to steal...

Hier kann alles rund um Freewar diskutiert werden.
X-idor
Feuerwolf
Beiträge: 109
Registriert: 20. Sep 2005, 14:58

To steal or not to steal...

Beitrag von X-idor » 2. Aug 2013, 17:37

Diese frage stellt man sich oft wenn man wiedermal einige Diebstahlzauber bei sich im Inventar entdeckt. Soll man im vorbeilaufen schnell mal was klauen oder die lieber einfach im Shop loswerden? Zum glück gibt es ja den Zauber 'Sicht der Dinge', in den guten alten Zeiten, als man nicht mit 10 Speed angefangen hat, konnte man in Terasi mal schnell spicken ob ein kleiner Spieler ausser seinen zwei Waffen einen Beutel mit 200 Pfeilen herumträgt und diesen problemlos entreissen (auch wenn es etwas gemein ist).
Jetzt, da man erwachsen ist, lässt man die kleinen in Ruhe (gibt ja auch nicht mehr so viele in FW) und legt sich eher mit Leuten seines Kalibers an. Nur tragen die blöderweise ein haufen Müll mit sich herum, bis man da mit sicht der Dinge alles durchgeschaut hat ist das Opfer über alle Berge. Und selbst wenn nicht, kann man leicht übersehen dass eins dieser Items 200 kleine energiesplitter sind.

Wäre doch toll wenn man eben schnell den Erwartungswert des Diebesgutes ausrechnen könnte, ist dieser grösser als der Preis eines Diebi - so greift man zu, wenn nicht - läuft man weiter.

Now there is an App for it!

Download me

Es funktioniert zwar bereits, ist aber nicht sehr komfortabel zu bedienen, deswegen erkläre ich mal kurz wie das funktioniert

> Es ist KEIN bot sondern nur ein textanalyse-tool, welches mit sehr vielen String operationen aus einem Text, wie ihn Sicht der dinge erzeugt, die Namen und Anzahl der Items extrahiert
> Zu jedem Itemnamen gibt es einen Shoppreis (FWWiki entnommen) und eventuell einen Marktpreis (den man selbst definieren kann)
> und das wars eigentlich schon, aus den anzahl-preis paaren kann man alles berechnen was man will, zum beispiel den mittleren marktwert des (noch nicht) gestohlenen items


Wie benutzt man es?
SpoilerShow
Zum ausführen braucht man Python, wer absolut keine Ahnung hat was ich meine, sollte nicht seine Schlange im Terrarium fragend anschauen, sondern am besten Python(x,y) mit den standardeinstellungen installieren, da sollte alles nötige dabei sein.

Dann entpackt man das Archiv irgendwo

Hat man ein potenzielles Opfer gefunden, wendet man sicht der dinge an, kopiert die gesamte ausgabe in die Datei inventory.txt (Strg+A, Strg+C, Strg+V)

Dann öffnet man ein Terminal und navigiert in den Ordner mit den gerade entpackten dateien. Windows 8 hat dafür die Option Datei - Eigabeaufforderung öffnen oder mit Rechtsklick - Open Enhanced console here (von Pythonxy ins menü eingefügt, nicht nur bei Win8)

Nun gibt man einfach ein: python test.py (Das alles kann man natürlich machen bevor man sich auf opfersuche begibt, nur wenn man enter drückt, sollte das richtige inventar kopiert sein)
Und jetzt mal etwas ausführlicher, es sind einige dateien dabei die man nicht braucht, aber ich hab sie trotzdem da gelassen, falls jemand damit weiterarbeiten will:
inventory.txt braucht man, ausser man arbeitet unter windows mit der zwischenablage. da kopiert man das inventar rein
itemnames.txt bracuht man nicht. enthält nur die itemnamen, aus der wikiliste (die nur 200 pro seite anzeigt) kopiert
price_scraper.py bracuht man. enthält die ganzen funktionen zum filtern des inventars und auch zum herunterladen der preise aus dem wiki. Die funktion download_prices() sollte man nicht aufrufen, da es immerhin alle 1200 itemseiten des wiki aufruft, das verursacht wahrscheinlich einen hohen traffic, dauert so 5-10 minuten und stürzt zwischendurch 2-3 mal ab, da nach etwa 400 items entweder die IP kurzzeitig blockiert wird oder der puffer voll ist (obwohl die CPU/RAM/Netzwerkauslastung währenddessen nicht nennenswert zunimmt)
shopprices.py braucht man, enthält die shoppreise aller items
marketprices.py braucht man nicht, aber wenn man hier für items einen preis definiert, überschreibt dieser den shoppreis bei der mittelwertberechnung (und sonst auch)
shopprices_original.pybraucht man nicht, enthält die gleichen shoppreise, nur in der "richtigen" grossschreibung wie sie aber im spiel selbst nicht verwendet wird
test.py bracuht man. ruft die funktionen aus pricescraper auf und produziert die eigentliche ausgabe

Bekannte Bugs / geplante Verbesserungen:
SpoilerShow
Das einlesen des kopierten texts aus der zwischenablage benutzt windowsspezifische funktionen, unter anderen betriebssystemen soll man also in price_scraper.py die zeile 2 und alles ab 75 löschen oder auskommentieren

Linux/Windows/Mac benutzen unterschiedliche EOL-characters, soweit ich weiss '\n', '\r\n' und '\r' entsprechend, ich habs aber nicht getestet, da ich annehme die meisten hier benutzen windows, und nur deswegen hab ich keine lust linux zu installieren, selbst in einer VM. auch komisch ist, dass man '\r\n' nur in der zwischenablage sieht, fügt man den text in eine datei ein, so sieht man nur noch '\n'

Angelegte Waffen können nicht geklaut werden, auch wenn sie nicht geschützt sind, da man nicht weiss welche es sind, werden die trotzdem mit eingerechnet. Zum glück scheinen das die meisten nicht zu wissen und schützen ihre waffen trotzdem vor diebstahl sodass es keine auswirkungen haben sollte

Die marktpreise sind ganz grob geschätzt, aber die größenordnung müsste stimmen, hauptsache die fixpreisdrops wie ölfässer/mäuse/knochen/kuhköpfe/pilze sind richtig

Items mit variablem Namen (Zeichnung von NPC, Gewebeprobe von SPIELER, Geschenk von SPIELER, ...) werden nicht erkannt. Könnte man zwar beheben, aber meistens sind die nichts wert, sodass der default-wert von 5gm es meist ganz gut trifft

Ladungen der Items werden ignoriert (Pfeilbeutel, ZKs, ausgebrannter geisterschild..) kann man auch beheben und ich sollte es auch machen, der preis pro ladung würde sich dann nach dem preis für einen pfeil/kleine zk/geisterfunke richten

einzelne items mit sehr hohem marktwert (gelber prismakristall/schattenglas etc.) verzerren den mittelwert stark, leute die sowas bei sich haben, warten nicht seelenruhig bis man ihnen 100 items geklaut hat. Da sollte man den quantil im auge behalten oder die n-ten momente ausrechnen...

... und da die nächte version eine GUI haben wird (sobald ich mich da eingelesen habe) warum nicht gleich ein histogramm plotten

und wenn von den linuxleuten genügend feedback kommt, kann ich auch die cross-plattform compatibilität hinbiegen
Nach all dem frag ich mich aber, warum es nicht bereits eine Starke Sicht der Dinge gibt, die genau das macht
1|= y()u (4|| r3@d 7#][5, y0|_| / 3 @ IVI0//$+3|2 &33|<

X-idor
Feuerwolf
Beiträge: 109
Registriert: 20. Sep 2005, 14:58

Re: To steal or not to steal...

Beitrag von X-idor » 2. Aug 2013, 17:37

V1.5
Minimalistische Ein-Tasten-GUI
+ nimmt wenig platz ein
+ immer im vordergrund, kann man leicht hin und zurück wechseln
+ liest die daten direkt aus der zwischenablage
+ sollte auf allen betriebssystemen funktionieren (evtl. muss man unter Linux das encoding von 'cp1252' auf 'utf8' überall wechseln)
- ich musste letzendlich cheaten (from __future__ import unicode_literals) um die doofen umlaute in den griff zu bekommen
(und der checkbutton hat wirklich keinen effekt, noch nicht)

V1.5 (diesmal ist nur das nötigste dabei)

in aktion (in schlechter gif-qualität)
Bild


Die nächste Version wird dann die versprochenen histogramme haben und ausser nur sicht der dinge analysieren zu können, auch das eigene inventar und das bank-SF (weil warum nicht?)
und die (sowie die jetzige, minimalistische) quetche ich dann vielleicht auch in eine stand-alone .exe (aber ist es die mühe wert? dann schreien wieder alle "Virus!" und die, die keine lust haben dafür Python zu installieren, werden noch weniger lust haben die .exe zu decompilieren um ganz sicherzugehen dass es kein virus ist)
Zuletzt geändert von X-idor am 6. Aug 2013, 23:40, insgesamt 1-mal geändert.
1|= y()u (4|| r3@d 7#][5, y0|_| / 3 @ IVI0//$+3|2 &33|<

Caludoi
Feuerwolf
Beiträge: 96
Registriert: 15. Dez 2011, 10:08

Re: To steal or not to steal...

Beitrag von Caludoi » 2. Aug 2013, 18:36

virus

Benutzeravatar
Blue.Shark
großer Laubbär
Beiträge: 2860
Registriert: 5. Okt 2008, 21:27

Re: To steal or not to steal...

Beitrag von Blue.Shark » 2. Aug 2013, 18:47

Ich frag mich warum ein solches Tool nicht online im Web angeboten wird. Wäre viel einfacher zu nutzen als es hier geschildert wurde.
Macht alle bei meinem Spiel mit -> Wörter raten
Meine aktuelle User-Idee: Errungenschaften auf Zeit
Meine Wunsch-Idee: Das Haus der Statistiken, Liebligskarte: Etume - das Flusstal. Andere Userideen: Zauber der globalen Wunder

Benutzeravatar
Giga
Gelbbart-Yeti
Beiträge: 2088
Registriert: 1. Jan 2007, 19:58

Re: To steal or not to steal...

Beitrag von Giga » 2. Aug 2013, 18:55

Machs doch einfach selbst.
Vince Ebert hat geschrieben:Vor hundertfünfzig Jahren war man sich in der Fachwelt einig, das größte Zukunftsproblem in Großstädten werde der Pferdemist sein. Halten Sie mich für verrückt, aber Pferdemist ist derzeit nicht unser größtes Problem.

Benutzeravatar
-=Buzzeron=-
Zauberer der Bergwiesen
Beiträge: 461
Registriert: 9. Jul 2011, 18:33
Wohnort: Regensburg

Re: To steal or not to steal...

Beitrag von -=Buzzeron=- » 2. Aug 2013, 19:05

Wir klauen grundsätzlich in 5-10er Gruppen Leute mit tausenden Diebstahlzaubern komplett leer, scheißegal, was der dabeihat, wieviel XP, whatever. Es geht ums Prinzip.
Bild
Bild

X-idor
Feuerwolf
Beiträge: 109
Registriert: 20. Sep 2005, 14:58

Re: To steal or not to steal...

Beitrag von X-idor » 2. Aug 2013, 19:11

Caludoi hat geschrieben:virus
du spacko, das sind grade mal 100 zeilen code, lies das vielleicht mal durch, oder um Dieter Nuhr zu zitieren: "Wenn man keine Ahnung hat, einfach mal die Fresse halten"
Blue.Shark hat geschrieben:Ich frag mich warum ein solches Tool nicht online im Web angeboten wird. Wäre viel einfacher zu nutzen als es hier geschildert wurde.
Naja, weil man es dann auf einem Webserver hosten muss und sich mit Javascript rumschlagen muss. Einen platz zum hosten habe ich nicht und nur deswegen Javascript zu lernen hab ich keine Lust
Könnte man aber eventuell in FWTools aufnehmen, weiss nur nicht ob es sich direkt übersetzen lässt.

Wie gesagt, ist nur die vorabversion, geplant ist ein kleines fenster mit einer Taste. Man kopiert das inventar, drückt die taste und bekommt dei ganzen informationen hübsch präsentiert.
-=Buzzeron=- hat geschrieben:Wir klauen grundsätzlich in 5-10er Gruppen Leute mit tausenden Diebstahlzaubern komplett leer, scheißegal, was der dabeihat, wieviel XP, whatever. Es geht ums Prinzip.
Das ist... interessant. Seid ihr in Welt 3 aktiv? Ich bin mir aber noch nicht sicher ob ich euch aus dem Weg gehen-, in den Arsch treten oder mitmachen will.
1|= y()u (4|| r3@d 7#][5, y0|_| / 3 @ IVI0//$+3|2 &33|<

Benutzeravatar
Cembon
Gelbbart-Yeti
Beiträge: 1793
Registriert: 6. Mai 2011, 19:09
Wohnort: Am See des Friedens
Kontaktdaten:

Re: To steal or not to steal...

Beitrag von Cembon » 2. Aug 2013, 20:31

Wenn du es mit Javascript / PHP baust, dann kann ich es gerne online stellen.
Bild

Benutzeravatar
Dumme Weisheit
Wächter des Vulkans
Beiträge: 299
Registriert: 26. Mär 2012, 22:37

Re: To steal or not to steal...

Beitrag von Dumme Weisheit » 2. Aug 2013, 20:33

X-idor hat geschrieben:
-=Buzzeron=- hat geschrieben:Wir klauen grundsätzlich in 5-10er Gruppen Leute mit tausenden Diebstahlzaubern komplett leer, scheißegal, was der dabeihat, wieviel XP, whatever. Es geht ums Prinzip.
Das ist... interessant. Seid ihr in Welt 3 aktiv? Ich bin mir aber noch nicht sicher ob ich euch aus dem Weg gehen-, in den Arsch treten oder mitmachen will.
ich würde mich dem ja anschließen, wenn ich dazu noch in der lage wäre :P
aber buzzi hat vollkommen recht! app unnötig! hat doch eh jeder genug reichtum da alle groß ;D
Die Überflieger die bis auf meine I-Liste geflogen sind:
SpoilerShow
Trianon - Hängen geblieben zw. dem Vorher & Jetzt
Underworld - Wannabe-G mit Dauertränen, weil PK böse zu ihm
DasTier - WORSTE! - WORSTE! Troll - not eu! - JUST WW! (und das im Forum)

X-idor
Feuerwolf
Beiträge: 109
Registriert: 20. Sep 2005, 14:58

Re: To steal or not to steal...

Beitrag von X-idor » 2. Aug 2013, 20:55

Cembon hat geschrieben:Wenn du es mit Javascript / PHP baust, dann kann ich es gerne online stellen.
Hmm, Javascript hat sogar die gleiche Syntax für dictionaries, kann man das einfach im gleichen Stil wie ein lokales kommandozeilenprogram schreiben oder muss man bei einer webApp was besonderes beachten? Man kann wahrscheinlich nicht so einfach Daten in eine andere Datei auslagern, und ich weiss noch nichtmal wie ich das kompiliere oder ausführe...

Egal, Ich übersetze es einfach mal und schicke es dir wenns fertig ist
1|= y()u (4|| r3@d 7#][5, y0|_| / 3 @ IVI0//$+3|2 &33|<

Benutzeravatar
Blue.Shark
großer Laubbär
Beiträge: 2860
Registriert: 5. Okt 2008, 21:27

Re: To steal or not to steal...

Beitrag von Blue.Shark » 2. Aug 2013, 22:01

Giga hat geschrieben:Machs doch einfach selbst.
Mein Post war im Bezug auf "Virus"
Macht alle bei meinem Spiel mit -> Wörter raten
Meine aktuelle User-Idee: Errungenschaften auf Zeit
Meine Wunsch-Idee: Das Haus der Statistiken, Liebligskarte: Etume - das Flusstal. Andere Userideen: Zauber der globalen Wunder

Benutzeravatar
Cembon
Gelbbart-Yeti
Beiträge: 1793
Registriert: 6. Mai 2011, 19:09
Wohnort: Am See des Friedens
Kontaktdaten:

Re: To steal or not to steal...

Beitrag von Cembon » 2. Aug 2013, 22:27

Das integrieren kann ich dann schon machen, am besten ist das am Ende einfach ein JS-File.
Bild

Benutzeravatar
Giga
Gelbbart-Yeti
Beiträge: 2088
Registriert: 1. Jan 2007, 19:58

Re: To steal or not to steal...

Beitrag von Giga » 2. Aug 2013, 22:38

Blue.Shark hat geschrieben:
Giga hat geschrieben:Machs doch einfach selbst.
Mein Post war im Bezug auf "Virus"
Mein Post war im Bezug auf "deinen Post"
Vince Ebert hat geschrieben:Vor hundertfünfzig Jahren war man sich in der Fachwelt einig, das größte Zukunftsproblem in Großstädten werde der Pferdemist sein. Halten Sie mich für verrückt, aber Pferdemist ist derzeit nicht unser größtes Problem.

Benutzeravatar
Lenore
Kriechlapf
Beiträge: 54
Registriert: 22. Okt 2008, 21:31

Re: To steal or not to steal...

Beitrag von Lenore » 6. Aug 2013, 05:49

Auch wenn ich keinerlei Verwendung für das Tool habe und wahrscheinlich auch niemals haben werde (ganz davon zu abgesehen das ich keine lust habe alle Zeilen zu kontrollieren/verstehen ;) ) möchte ich mich zumindest für die Mühe bedenken die Preise zusammen zu sammeln und maschinenlesebar zu machen, kann mir vorstellen dass das ne heiden Arbeit war :)

Tipp am Rande, das "du spacko" hättest dir schenken können, die Message wäre sicherlich auch so rübergekommen und hätte dich nicht wie ein unreifes Kind aussehen lassen. Vieleicht werde ich aber auch nur alt und die Kids reden heute so ;)

Benutzeravatar
Lenore
Kriechlapf
Beiträge: 54
Registriert: 22. Okt 2008, 21:31

Re: To steal or not to steal...

Beitrag von Lenore » 6. Aug 2013, 06:10

hm stimmt die normalen Preise sind relativ einheitlich, dann habe ich mir damals wohl beim spielermarkt die Zähne ausgebissen :|

Das Zentrallager in Hewien hätte sicher ebenfalls eine Verwendung für ein ähnliches Verfahren, für den Fall das du alternativen suchst um Python zu üben. Zu schauen ob bei 15% Shops ein Gewinn bei rum kommt. Hätte auch den Vorteil das die Gegenstände da nicht unbedingt weglaufen(Zumindest nicht die etwas wertloseren).

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 26 Gäste