• 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?

Zu viele Questgeber auf einer Position

DeletedUser20722

Zwar schon im April 2015 auf der Beta gemeldet, aber da sich anscheinend kein Entwickler bisher bemüßigt fühlte:

Programmieranfängerfrage: Was passiert, wenn ich auf das 7. Element eines Arrays mit 6 Elementen zugreife?
Antwort:
Code:
Uncaught TypeError: Cannot read property '1' of undefined

So auch wieder mal bei Edward D. Cope.
Code:
Map.Radialmenu.positions = [[-70,-40],[-70,40],[70,40],[70,-40],[0,-75],[0,75]]; // 6 positions. No more, no less.
// ...
$.each( this.elements, function( k, v ) { var css = { top: pos.top + Map.Radialmenu.positions [k][1], // ...


/** map data for {x: 43601, y: 3465} - Coyote desert of Capura **/
/*       
employer: […]
    0: {key: "desert", name: "Kojotenwüste von Capura", visible: false, activate: 230, deactivate: 233}
    1: {key: "gunslinger", name: "Der Revolverheld", visible: false, activate: 481, deactivate: 488}
    2: {key: "pablo_salvador_e1", name: "Pablo Salvador", visible: false, activate: 837, deactivate: 840}
    3: {key: "emilio_vargas_e1", name: "Emilio Vargas", visible: false, activate: 840, deactivate: 841}
    4: {key: "mainstory_7_cheyenne", name: "Das Versteck von Cheyenne", visible: false, activate: 2004,…}
    5: {key: "bob_ford", name: "Bob Ford", visible: false, activate: null, deactivate: 2144}
    6: {key: "cope", name: "Edward D. Cope", visible: true, activate: null, deactivate: 127}
*/


Lösungsmöglichkeit: Map.Radialmenu.positions um ein Element [0,0] erweitern.
Arbeitsaufwand: 2 Sekunden.

Elegantere (zusätzliche) Lösung: Nur sichtbare Questgeber auf die verfügbaren Positionen verteilen. Dann können auch 99 Questgeber an einer Position sein, solange nur maximal 6 (7) davon sichtbar sind.
Arbeitsaufwand: 3 Minuten.
 

DeletedUser24725

Elegantere (zusätzliche) Lösung:
Nur sichtbare Questgeber auf die verfügbaren Positionen verteilen. Dann können auch 99 Questgeber an einer Position sein, solange nur maximal 6 (7) davon sichtbar sind.
Arbeitsaufwand: 3 Minuten.
Ist schon was mehr als 3 Minuten, bedenke das du das Array immer wieder neu erstellen musst.
Was ist wenn 2 Questgeber die gleiche vorgeschriebene Position hat beim Questgeber? Position wird wohl in der Datenbank stehen.
Was ist wenn ein Spieler an einem Questgeber 7 oder mehr offene Quest hat?
Lösungsmöglichkeit: Map.Radialmenu.positions um ein Element [0,0] erweitern.
Arbeitsaufwand: 2 Sekunden.
Brauchst du auch einen Platz um die Grafik am Questgeber anzuzeigen, also auch viel mehr Aufwand.
Das alles muss bedacht werden.
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser20722

ruheloser, gib Ruhe! ^^
Brauchst du auch einen Platz um die Grafik am Questgeber anzuzeigen, also auch viel mehr Aufwand.
Nein. Das [0,0] zeigt die Grafik genau da an, wo sie jetzt auch schon sichtbar ist - zentriert in der Mitte. Nur dass JavaScript-Fehler verschwindet, und der damit einhergehende Bug, dass auf keinen Questgeber mehr (auf der gesamten Karte) zugegriffen werden kann bis das Spiel neu geladen wird, wenn durch Questabschluss ein solcher 'überzähliger' Questgeber entfernt wird (resp. werden sollte).

Was ist wenn 2 Questgeber die gleiche vorgeschriebene Position hat beim Questgeber? Position wird wohl in der Datenbank stehen.
Nein.

Was ist wenn ein Spieler an einem Questgeber 7 oder mehr offene Quest hat?
Dann sollten das die Quest-/Gamedesigner mit den Devs absprechen, oder sich andere Positionen suchen.

Ist schon was mehr als 3 Minuten, bedenke das du das Array immer wieder neu erstellen musst.
Lerne programmieren, dann schau dir den Quellcode an, und dann melde dich nochmal.
 

DeletedUser24725

ruheloser, gib Ruhe! ^^

Nein. Das [0,0] zeigt die Grafik genau da an, wo sie jetzt auch schon sichtbar ist - zentriert in der Mitte. Nur dass JavaScript-Fehler verschwindet, und der damit einhergehende Bug, dass auf keinen Questgeber mehr (auf der gesamten Karte) zugegriffen werden kann bis das Spiel neu geladen wird, wenn durch Questabschluss ein solcher 'überzähliger' Questgeber entfernt wird (resp. werden sollte).

Nein.
Woher nimmst du diese Erkenntnis Das [0,0] die Position darstellt?

Dann sollten das die Quest-/Gamedesigner mit den Devs absprechen, oder sich andere Positionen suchen.
Und schon sind deine 3 Minuten im Eimer. Schau dir mal an wie viele Questgeber noch Platz haben.


Lerne programmieren, dann schau dir den Quellcode an, und dann melde dich nochmal.
Grööööhl, ich kann wahrscheinlich besser programmieren als du und zwar in C++, Delphi, Javascript, PHP, Basic etc.. Ich bin gelernter Informatiker/Programmierer mit Abschluss. Nur mal so erwähne.

Und denn Quellcode kannst du nicht einsehen, wäre ganz neu wenn du denn PHP Code sehen könntest also halte du still, mache dir ein paar Datenbanktabellen und probiere selbst aus, aber mit allen möglichkeiten. Das ganze Questsystem müsste überarbeitet werden habe, ich aber auch in der TW-Times mal einen Artikel zu geschrieben.
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser20722

Sorry an alle, die schon Popcorn besorgt haben - ruheloser hat es eben geschafft, meine Ignoreliste zu entjungfern.
Für fundierten Austausch mit qualifiziertem Personal stehe ich gerne per PN zur Verfügung :)
 

DeletedUser12276

Das Probem ist nur dass du trotz ignoreliste die Reaktionen anderer auf seine Posts zum lesen bekommst.
Und das ist dann meiner Erfahrung nach noch nerviger :-)
 

DeletedUser24725

Sorry an alle, die schon Popcorn besorgt haben - ruheloser hat es eben geschafft, meine Ignoreliste zu entjungfern.
Für fundierten Austausch mit qualifiziertem Personal stehe ich gerne per PN zur Verfügung :)

Gröööhl, woher meinst du denn kommt das Array mit den Objekten was du so schön zeigst? Richtig von PHP und das durch Datenbankabfrage oder meinst du Javascript weiß welche Quests man grade offen hat, das wäre fatal. Nochmal: lege ein paar Datenbanktabellen für Quest und eine für User an und teste selbst, wenn du es nicht kannst ist das dein Problem, bist halt Amateur.
 
Zuletzt bearbeitet von einem Moderator:
Oben