• Howdy, Freund! Du scheinst neu hier zu sein. Warum erstellst du dir nicht einen Forenaccount, um mitdiskutieren zu können? Du kannst dich hier registrieren.
    Du hast schon einen Forenaccount? Dann kannst du dich hier einloggen. Viel Spaß!

    Was denkst du zum Beispiel über diese Themen?

Kopie aller Items in Datenbank

DeletedUser17980

Hallo zusammen,

aufgrund der Anpassung der benötigten Fertigkeiten für FKs und anpassen der Formel hab ich mich an ein Programm gemacht, welches die neue beste Kleidung berechnen soll. Aktuell arbeite ich nur mit Testdaten (ich nutze kein Greasemonkey dafür, läuft aktuell mit C#)

Ich habe ein handvoll Items manuell in meine Datenbank eingetragen.

Gibt es eine Möglichkeit alle Items mit Boni von TW einmalig abzurufen und in meine DB zu importieren?
 

Tom Robert

Moderator
The West-Team
Wenn du es schaffst, könntest du auch gleich eine Berechnung für Speed Klamotten machen? Ich habs mal versucht, bin aber nicht weit gekommen :D
 

DeletedUser15389

Geht glaub ich nicht so einfach, weil selbst der Cloth Calc hat nur eine Näherung verwendet (oder war zumindest eine Zeit lang so)
Ja, da spielen neben den Kleidungsboni für Geschwindigkeit zusätzlich auch noch die Reiten-FPs mit rein, was das alles dann arg kompliziert macht.

@D.o.m.i
Wenn Du es aber umsetzen könntest, dann wäre es echt geil, wenn man dann seine Kleidung auch auf die Besten Kombis für XP, Glück, Lohn, Regeneration usw. checken lassen könnte. Das war ein Feature, welches der CC leider nie umgesetzt hatte :)
 

DeletedUser17980

Sobald ich das mit den Items habe, schaue ich mir das gerne an. Ist alles eine Frage der Berechnung. Bei ClothCalc ging es da eher um die Berechnungszeit.
Evtl. muss ich das ganze dann aber doch auch mit Greasemonkey machen, C# bzw. WPF Anwendungen sind ja nicht mehr so in bei Browsergames ;(
 

stewue

Revolverheld
Der Cloth Calc hat am Schluss glaub ich alles auf der Serverseite mit einer C++ Library für PHP berechnet, deshalb war die Berechnung sehr flott. D.h. du brauchst dann wohl auch irgendetwas (Userscript oder ähnliches) um zwischen deiner Berechnung und dem Spiel "kommuniziert"
 

DeletedUser17980

@stewue Ich kann mein Invetar und meine aktuell angelegte Kleidung auslesen. Leider habe ich hier nur die item_id, z.B:
Code:
"inventory" : {
       "bag" : {
         "right_arm" : [{
             "count" : 2,
             "item_id" : 10000,
             "inv_id" : 152485848,
             "type" : "right_arm"
           }
Ok, ich weiß also, dass ich 2x das Item mit der ID 10000 im meinem Inventar habe, woher bekomme ich nun aber heraus, dass 10000 Figaros Rasierklinge ist, und welche Attribute diese hat? Du meinstest, dies liegt alles per Javaskript Objekten vor, ich habe bisher nur alle Arbeiten, mein Inventar, das aktuell angelegte Inventar und meine Skillung gefunden.

Wo ist das Objekt mit den Items ?
 

DeletedUser17980

Ok, habs mir mal angeschaut Kann mir jemand sagen, was das Objekt _memo bedeuten soll? Haben nur wenige Items und ist für mich nicht ganz verständlich. z.B. Item 50146 oder 50147
Code:
"50146" : {
     "_memo" : {
       "{\"reflex\":1,\"shot\":2,\"leadership\":1,\"appearance\":1}" : 67,
       "{\"tough\":1,\"reflex\":1,\"leadership\":1,\"tactic\":1,\"appearance\":1}" : 102,
       "{\"reflex\":1,\"hide\":1,\"shot\":1,\"leadership\":1,\"appearance\":1}" : 70,
       "{\"ride\":1,\"pitfall\":1,\"leadership\":1,\"tactic\":1,\"animal\":1}" : 27,
       "{\"punch\":1,\"tough\":2,\"finger_dexterity\":1,\"tactic\":1}" : 70,
       "{\"build\":1,\"tough\":1,\"reflex\":1,\"leadership\":1,\"tactic\":1}" : 102,
       "{\"reflex\":1,\"shot\":1,\"leadership\":1,\"appearance\":2}" : 70,
       "{\"tough\":1,\"reflex\":1,\"swim\":1,\"trade\":2}" : 87,
       "{\"reflex\":2,\"hide\":1,\"pitfall\":1,\"animal\":1}" : 98,
       "{\"reflex\":2,\"finger_dexterity\":1,\"repair\":1,\"tactic\":1}" : 95,
       "{\"tough\":1,\"ride\":1,\"trade\":1,\"appearance\":2}" : 44,
       "{\"tough\":1,\"endurance\":1,\"leadership\":1,\"animal\":2}" : 59,
       "{\"punch\":2,\"reflex\":2,\"repair\":1}" : 98,
       "{\"swim\":1,\"shot\":1,\"leadership\":1,\"tactic\":1,\"appearance\":1}" : 27,
       "{\"tough\":1,\"endurance\":1,\"ride\":1,\"leadership\":1,\"tactic\":1}" : 59,
       "{\"reflex\":1,\"pitfall\":2,\"leadership\":1,\"trade\":1}" : 67,
       "{\"punch\":1,\"tough\":1,\"leadership\":1,\"animal\":2}" : 59,
       "{\"punch\":2,\"reflex\":1,\"leadership\":1,\"tactic\":1}" : 73,
       "{\"reflex\":2,\"swim\":2,\"tactic\":1}" : 101
     },
     "item_id" : 50146000,
     "item_level" : 0,
     "short" : "4july_2016_hat_3",
     "name" : "Lieblingshut des Fremden",
     "type" : "head",
     "description" : "",
     "active" : true,
     "level" : 1,
     "duelLevel" : 0,
     "price" : 4000,
     "sell_price" : 2000,
     "image" : "/images/items/head/4july_2016_hat_3.png?5",
     "wear_image" : "/images/items/head/wear/4july_2016_hat_3.png?5",
     "stackAmount" : 2147483647,
     "characterClass" : null,
     "characterSex" : null,
     "speed" : null,
     "bonus" : {
       "attributes" : [],
       "skills" : [],
       "fortbattle" : {
         "offense" : 0,
         "defense" : 0,
         "resistance" : 0
       },
       "fortbattlesector" : {
         "defense" : 0,
         "offense" : 0,
         "damage" : 0
       },
       "item" : [{
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "attribute",
             "name" : "strength",
             "value" : 0.02
           },
           "desc" : "+0.02 Stärke (pro Stufe)",
           "roundingMethod" : "ceil"
         }, {
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "attribute",
             "name" : "flexibility",
             "value" : 0.02
           },
           "desc" : "+0.02 Beweglichkeit (pro Stufe)",
           "roundingMethod" : "ceil"
         }, {
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "attribute",
             "name" : "charisma",
             "value" : 0.02
           },
           "desc" : "+0.02 Charisma (pro Stufe)",
           "roundingMethod" : "ceil"
         }, {
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "skill",
             "name" : "leadership",
             "value" : 0.1,
             "desc" : "+0.1 Leiten"
           },
           "desc" : "+0.1 Leiten (pro Stufe)",
           "roundingMethod" : "ceil"
         }, {
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "skill",
             "name" : "reflex",
             "value" : 0.3,
             "desc" : "+0.3 Reflex"
           },
           "desc" : "+0.3 Reflex (pro Stufe)",
           "roundingMethod" : "ceil"
         }, {
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "skill",
             "name" : "aim",
             "value" : 0.2,
             "desc" : "+0.2 Zielen"
           },
           "desc" : "+0.2 Zielen (pro Stufe)",
           "roundingMethod" : "ceil"
         }, {
           "type" : "character",
           "key" : "level",
           "bonus" : {
             "type" : "skill",
             "name" : "tough",
             "value" : 0.2,
             "desc" : "+0.2 Zähigkeit"
           },
           "desc" : "+0.2 Zähigkeit (pro Stufe)",
           "roundingMethod" : "ceil"
         }
       ]
     },
     "set" : "set_4july_2016_3",
     "auctionable" : true,
     "action" : "",
     "dropable" : false,
     "traderlevel" : 99,
     "tradeable" : false,
     "sellable" : true,
     "named" : false,
     "usebonus" : null,
     "cooldown" : null,
     "has_cooldown" : false,
     "unique" : false,
     "usetype" : "none",
     "bufftype" : 0,
     "spec_type" : "none",
     "upgradeable" : true,
     "rotating_banner_bg" : null,
     "item_base_id" : 50146
   }

Eine Doku über sowas wird es wohl für die ext. Programmierer nicht geben?^^
 

stayawayknight

Erleuchteter
Ehemaliges Teammitglied
Die rechte Zahl sieht verdächtig nach der Job-ID aus, daher vermute ich mal, dass es sich um eine Aufteilung handelt, welche Fertigkeiten bei welcher Arbeit benötigt werden. Keine Ahnung, ob/wozu das gebraucht wird.

Das einzige, was meinem Wissen nach für uns dokumentiert ist, ist die The-West-API.
 

DeletedUser20722

Kann mir jemand sagen, was das Objekt _memo bedeuten soll?
Ohne Garantie - soweit ich noch weiß werden da die resultierenden Boni bei levelbasierten Stats zwischengespeichert, wenn sie der Inno-Calc einmal berechnet hat, so dass es für diese angegebenen Jobskills beim nächsten Berechnen [bis zum nächsten Logout/ Schließen der Seite natürlich] schneller gehen sollte (was aber nicht ins Gewicht fällt, den Löwenanteil machen immer noch die Set-Kombinationen aus)

tl;dr: Vergiss die _memo-Werte :)
 

DeletedUser17980

Kurze Frage und ich wollte dafür nicht extra einen Thread aufmachen. Wann genau wird bei veredelten Gegenständen gerundet?
Gerundet wird mit ceil, also aufgerundet

Beispiel Villas Schal, Veredelung Level 4, eigenes Level 146, nur HP betrachtet:
Villas Schal gibt +0.04 Stärke (pro Stufe) und +0.3 Lebenspunkte (pro Stufe).
Laut TW ergibt das 8 Stärke und 62 Lebenspunkte

Lebenspunkte: 0,04 * 146 * 1,4 = 8,176, gerundet 9 -> Stimmt nicht
Stärke: 0,3 * 146 * 1,4 = 61,32, gerundet 62 -> Stimmt

Zum Test hab ich folgendes getestet, Villas Schal auf Level 0 und Level 1

Level 0: 6 Stärke, 44 LP
Level 1: 7 Stärke, 48 LP

Veredelung von 0 -> 1:
0,04 * 146 * 1,1 = 6,424, aufgerundet 7 -> Stimmt
0,3 * 146 * 1,1 = 48,18, aufgerundet 49 -> Stimmt nicht

Kann mir das einer erklären?

dann noch eine zweite Frage. Ich finde im ItemManager zwar die Zugehörigkeit der Items zu den Sets, aber kann ich die Setboni auch "abfragen". Will das alles dynamisch halten (set wird erweitert) und das nicht hard kodieren. Vielleicht hab ichs auch nur übersehen.
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser17980

Perfekt, danke. Kann ich die eigentlich auch abfragen, ohne in TW eingeloggt sein zu müssen, und dann
Code:
javascript:JSON.stringify(west.storage.ItemSetManager);
eingeben zu müssen?
 

GeMini

Revolverheld
Ich glaube die Multiplikation (und Rundung) für die Veredelung findet erst nach der Berechnung (und Rundung) der Werte für Stufe 0 statt.
Und bei den FP wird vermutlich nicht aufgerundet sondern normal gerundet.
 

stewue

Revolverheld
Ich glaube die Multiplikation (und Rundung) für die Veredelung findet erst nach der Berechnung (und Rundung) der Werte für Stufe 0 statt.
Und bei den FP wird vermutlich nicht aufgerundet sondern normal gerundet.

Ja genau das ist das Problem. Hat Bluep glaub ich auch mal in einem anderen Thread erwähnt. Etwas allgemeiner gesagt: Eigentlich immer wenn der Cloth Calc nicht exakt ist, liegt es daran, dass es kleinere Rundungsfehler sind, die man halt nicht auslesen kann, oder es keine offzielle Formel gibt und man deshalb eine numerische Lösung approximiert.
 
Oben