• Hallo Fremder! Neu im Forum?
    Habe ich dich hier schon mal gesehen? Um dich hier aktiv zu beteiligen, indem du Diskussionen beitrittst oder eigene Themen startest, brauchst du einen Forumaccount. REGISTRIER DICH HIER!

Ablehnbare Eventquests

Status
Es sind keine weiteren Antworten möglich.

Alidona

Inspirierender Mediator
Gerade wenn Innogames künftig dabei bleibt, einen unzuverlässigen Zufallsgenerator für Quests zu nutzen, sollte es möglich sein, eine Aufgabe zu überspringen. Sprich: Sie abzulehnen wie bei den normalen Questgebern.

Per Hotfix noch für das laufende Event wäre natürlich super. :p
 

Jalemda

Samen des Weltenbaums
Das würde dann analog zur Akademie 50 Diamanten kosten. Für eine andere Aufgabe müsstest du also bei diesem Event 200 Dias zahlen. Lohnt sich nicht.
 

Chaosqueen65

Ehem. Teammitglied
Du meinst also einfach ablehnbar bis eine mir genehme Quest erscheint? So wie in der Schleife? Na das macht ja auch keinen Sinn. Dann mach ich meine normale Produktion und klick halt solange weg bis es passt.
 

TinaLuna

Samen des Weltenbaums
mir gefällt die Idee
und die Auswahl alle ablehnen wäre mir 200 Diamanten wert ;););)
Spaß bei Seite die Idee ist gut könnte man jede Aufgabe 1 bis 2x Ablehnen
 

Alidona

Inspirierender Mediator
Genau so. Ich dachte mir halt, so könnten die Entwickler schneller noch etwas für dieses Event retten wie die Quests nochmal zu fixen, wie die meisten erwarten. Dann ist es auch nicht mehr so schlimm, wenn der Questgenerator Fehler macht und mehrmals wiederholt.
 

Pellemino

Samen des Weltenbaums
Denke mal hier gehts eher wohl um einen sarkastischen Vorschlag.
Ein Event, wo man sich selbst die Aufgaben aussucht, die man erledigen will,
hat ja absolut keinen Reiz. Wäre wesentlich sinnvoller sich hier über
bessere Questaufgaben zu unterhalten als darüber Ablehnbarkeit einzuführen.

Um da mal einen Anreiz zu geben:
Erobere 7 Provinzen oder 35 Turnierprovinzen.
Diese Eventaufgabe hatte ich heute morgen dreimal hintereinander.
a) Zum einen ist das Verhältnis nicht richtig:
Für Erstgenanntes reicht eine einzige achtteilige Provinz, während 9 ganze vierteilige Turnierprovinzen erforderlich sind.
b) Zum zweiten fehlt montags/dienstags die 2. Alternative komplett, weil kein Tunier läuft.
c) Als Endgamer brauche ich 80h zum Erkunden einer Provinz, müßte da also 10 x 8h Zeitbooster einsetzen.
Zu viel meine ich um nur eine einzige Aufgabe zu erledigen.

Würde die Aufgabe durch Halbierung einfacher sowie das Verhältnis stimmiger, hätte ich auch nur den halben Aufwand.
Erobere 4 Provinzen oder 12 Turnierprovinzen.

Bin wirklich der Meinung, dass ein neues Questdesign mit mehr Abwechselung (mehr Quests), weniger Wiederkehr und
geringerem Zeitboosteraufwandt das neue Questdesign wesentlich positiver aussehen ließe.
 

Alidona

Inspirierender Mediator
Denke mal hier gehts eher wohl um einen sarkastischen Vorschlag.
Ein Event, wo man sich selbst die Aufgaben aussucht, die man erledigen will,
hat ja absolut keinen Reiz. Wäre wesentlich sinnvoller sich hier über
bessere Questaufgaben zu unterhalten als darüber Ablehnbarkeit einzuführen.

Um da mal einen Anreiz zu geben:
Erobere 7 Provinzen oder 35 Turnierprovinzen.
Diese Eventaufgabe hatte ich heute morgen dreimal hintereinander.
a) Zum einen ist das Verhältnis nicht richtig:
Für Erstgenanntes reicht eine einzige achtteilige Provinz, während 9 ganze vierteilige Turnierprovinzen erforderlich sind.
b) Zum zweiten fehlt montags/dienstags die 2. Alternative komplett, weil kein Tunier läuft.
c) Als Endgamer brauche ich 80h zum Erkunden einer Provinz, müßte da also 10 x 8h Zeitbooster einsetzen.
Zu viel meine ich um nur eine einzige Aufgabe zu erledigen.

Würde die Aufgabe durch Halbierung einfacher sowie das Verhältnis stimmiger, hätte ich auch nur den halben Aufwand.
Erobere 4 Provinzen oder 12 Turnierprovinzen.

Bin wirklich der Meinung, dass ein neues Questdesign mit mehr Abwechselung (mehr Quests), weniger Wiederkehr und
geringerem Zeitboosteraufwandt das neue Questdesign wesentlich positiver aussehen ließe.
Nein. Ist nicht sarkastisch gemeint. Lies dir mal meine ganzen Antworten durch, bevor du urteilst. Vor Allem geht es um eine schnelle Lösung bei Generatorfehlern (wenn mehrere gleiche Aufgaben direkt hintereinander kommen). Das von dir monierte wäre eine ganz andere Baustelle, die wesentlich mehr Zeit in Anspruch nehmen würde. Auch wenn ich dir diesbezüglich recht gebe.
 

Pellemino

Samen des Weltenbaums
Wenns dir nur um eine schnelle Lösung im laufenden Event geht.
Es ist viel einfacher in den Questgenerator einen Zeitfaktor einzuskripten,
der eine Wiederholbarkeit z.B. binnen 10 Stunden ausschließt
als eine Questablehnbarkeit einzuproggen.
 

Alidona

Inspirierender Mediator
Wenns dir nur um eine schnelle Lösung im laufenden Event geht.
Es ist viel einfacher in den Questgenerator einen Zeitfaktor einzuskripten,
der eine Wiederholbarkeit z.B. binnen 10 Stunden ausschließt
als eine Questablehnbarkeit einzuproggen.
Ein weiteres Pro für Ablehnbarkeit von Quests auch in Events wäre der Fairness-Faktor: Wenn ein Endgamer (als Beispiel) keine Provinz mehr erkunden kann, lehnt er die Quest ab und kriegt die Nächste.

Beim normalen Questgeber lassen sich auch nicht alle Quests gleich und sofort realisieren, aber da hat der Player ja Zeit, die Aufgabe noch umzusetzen. Bei einem Event nicht, da spielt Zeit eine sehr große Rolle.

Es geht nicht um die Qualität der Aufgaben, da hat Innogames sich bestimmt was dabei gedacht. Aber es geht darum, wie ein Player die Aufgaben lösen kann, ob er sie lösen kann und ob er sie lösen WILL. Eine Quest, die abgelehnt wird, schüttet keine Belohnung aus und schadet weder anderen Gamern noch dem Spielebetreiber. Und auch nicht dem Verlauf des Events.
 

Thenduil

Riesenschecke
Wenn ich alle Werkzeugkisten ablehnen könnte, würde ich das tun. Dadurch würde ich in sehr kurzer Zeit ziemliche Mengen Währung erspielen. Die 24h Wartezeit sind zwar nicht amüsant, sorgen aber dafür, dass ich nicht durchs Event rausche, falls ich nicht mit Boostern oder Dias die Zeit verkürze. Das Problem sind ja nicht die langweiligen oder nahezu unerfüllbaren Quests (Endgamer - Forschung/Erkunden/Schwaden), sondern ihre Häufung.

Ich könnte mir eine Variante vorstellen, bei der die Ablehnung sinnvoll wäre: wenn während der letzten 5 Quests die gleiche Aufgabe bereits gestellt wurde. Keine Ahnung, wie aufwendig das zu programmieren ist.
 

Alidona

Inspirierender Mediator
Wenn ich alle Werkzeugkisten ablehnen könnte, würde ich das tun. Dadurch würde ich in sehr kurzer Zeit ziemliche Mengen Währung erspielen. Die 24h Wartezeit sind zwar nicht amüsant, sorgen aber dafür, dass ich nicht durchs Event rausche, falls ich nicht mit Boostern oder Dias die Zeit verkürze. Das Problem sind ja nicht die langweiligen oder nahezu unerfüllbaren Quests (Endgamer - Forschung/Erkunden/Schwaden), sondern ihre Häufung.

Ich könnte mir eine Variante vorstellen, bei der die Ablehnung sinnvoll wäre: wenn während der letzten 5 Quests die gleiche Aufgabe bereits gestellt wurde. Keine Ahnung, wie aufwendig das zu programmieren ist.
Genau wegen der Häufung (die Wiederholungen) kam mir die Idee. Man könnte die abgelehnte Quest ja ans Ende der Schleife stellen, so dass man sie auf jeden Fall einmal machen muss, nur etwas mehr Zeit dafür hat.
 

Eadric

Blüte
[...]
Es ist viel einfacher in den Questgenerator einen Zeitfaktor einzuskripten,
der eine Wiederholbarkeit z.B. binnen 10 Stunden ausschließt
als eine Questablehnbarkeit einzuproggen.
Warum jetzt genau? Der Aufwand ist ungefähr der Selbe. Je nach Sprache, die InnoGames verwendet ein paar Zeilen Unterschied.
Ich gehe mal von guter Normalisierung aus, also dürfte der Arbeitsaufwand in etwa so sein:

Diese Vereinfachung ist nicht optimiert. Sie soll lediglich einen groben Umriss bieten. Um sie zu optimieren wäre das schreiben in einer aktuellen Programmiersprache nötig, nicht in einem Befehlsalgorithmus
Ein Befehlsalgorithmus ist die nächste Entwicklungsstufe nach dem PAP (= Programmablaufplan) bei der Problemlösung und gehört zur Angewandten Informatik, den Algorithmen und Datenstrukturen. Anders als der PAP beinhaltet er bereits Befehle und kann leicht in ein Struktogramm, welches den nächsten Schritt darstellt, umgewandelt werden. Deshalb eignet er sich besonders gut um Ideen über die Umsetzung im Code zu erkennen.
.

function setQuest(x: smallint): smallint;
var

r: smallint;
begin
try

if is.randomized then
// überprüft ob der Zufallsgenerator initialisiert wurde.
begin
r := random(x); // wählt die quest aus.
return(r);
Manche Programmiersprachen unterstützen die Rückgabe einer Funktion nicht [return(random(x));]
end;
catch
// Exception-handling.
ShowMessageToPlayer("Oh da ist etwas schief gelaufen.");
end;
end;

procedure QuestAbgeschlossenKlick(Sender: ButtonAnspruch, abbruch: boolean); //Wird eine Quest abgeschlossen startet eine Neue
var

c: boolean;
h: smallint;
begin
// Hier stände der Code für den Abschluss (Belohnung etc.)
If abbruch = false then
//Alternativ könnte man auch nach dem Sender direkt fragen, das wird meist aber nicht so intuitiv, deshalb der Extraparameter.
begin
... // Belohnung ausschütten.
end; // Keine Belohnung bei Abbruch.
// Hier startet der Code für die Folge-Quest:
x := getNumberOfQuestsFromDBbyEvent(Datenfeld, Event); // Dynamisches Laden der Questanzahl, benutzerdefinierte Funktion.
repeat;

StarteQuestMitID(setQuest(x));
// Procedure mit Funktionsaufruf welche das Questen handled, entfällt bei deiner Version.

h := setQuest(x);
c := getKontrollVarValueOfQuest(h);
until c = false;
/* In diesem Code gibt es kein Handling der Quests weswegen der Zufallsgenerator so oft ausgeführt wird bis er eine Quest findet, die noch nicht gelöst wurde. Da der Random über einen smallint ausgeführt wird, ist er auch nicht sehr Leistungsraubend, weswegen diese Lösung nicht optimal aber praktikabel ist. Man sollte bei dieser Variante in Betracht ziehen, ein Abbruchkriterium wie "alle Quests erledigt" hinzuzufügen, um eine Endlosschleife zu vermeiden. Hängt von der Möglichkeit ab, die die Spieler haben zu rushen. Die Kellervariante gilt es bei vielen Quests zu vermeiden, da der Keller mehr Speicher frisst als einzelne Objektinstanzen. Wie gesagt, alles hier stark vereinfacht.*/
StarteQuestMitID(h);
end;

procedure TimerHandling(Sender: TimerInstanz);
begin

Sender.Interval := 10 h;
// Interval setzen, falls nicht beim initiieren der Instanz, im Intervalformat (bei vielen Programmiersprachen in ms: 36000000)
case Sender of

ID1: begin
// Kontrollvariable auf falsch setzen.
ID1.value := false;
// Zeit für die Quest mit der ID 1 abgelaufen, 10 h war diese Quest nicht mehr in der Auswahl.
end;
ID2: begin
// Kontrollvariable auf falsch setzen.
ID2.value := false;
...
Else ShowAlertFlag("This Quest and Timer does not exist.");
End;
/* Lässt sich sicherlich kürzer realisieren, bzw. wahrscheinlich hat man bereits einen countdown-timer mit interval 1000 der das realisieren könnte, dennoch erfordert es eine Bearbeitung der aktuellen Prozedur. Um alle EventCoolDowns zu Händeln */
end;


function getKontrollVarValueOfQuest(QuestID: smallint): boolean;
begin

// lade die gespeicherte Instanz, die sagt "Diese Quest war schon mal in den letzten 10 h."
return(getDatafromDB(Datenfeld.Kontrollvar, QuestID));
// kann auch in einem Label gespeichert werden, macht nur weniger Sinn. Hier die Variante, wenn eine Programmiersprache Funktionsreturn zulässt.
end;

procedure ButtonAbbruchKlick(Sender: ButtonAbbruch);
begin

QuestAbgeschlossenKlick(Sender, true);
end;
Legende:

Deine Variante:
Die Veränderungen deiner Variante (schwarz + rot) im reinen Funktionscode.
Voraussetzungen: 1 Timerinstanz pro Quest (Init, IntervallSetUp, Hierarchiestruktur), 1 Kontrollvariable pro Quest (evtl. Instanz in die DB ablegen, ggf. Datenbankanpassung, per SQL-Abfrage: +2 Zeilen), Instanzen zu initiieren kann je nach Programmiersprache aufwendig werden. Zudem werden die Timerinstanzen ein ziemlich nerviger Handlingcode und ein Performancekiller. (Falls InnoGames nicht bereits einen 1000-er-Timer hat, der sowieso alles handled.)

Die Button-Variante:
Die andere Variante mit Überspringen Button (schwarz+grün + blau).
Voraussetzungen: 1 Instanz für den Button (In den meisten Programmiersprachen 4 Zeilen: init [style, id/name, caption]; in HTML/PHP/AS: 1 Zeile.) + Funktionsaufruf und Codes für Funktion und Exception ähnlich wie oben.

Schwarz + Grün:
Möglicher Originalzustand. (Da deine Variante einen geänderten Funktionsaufruf (über 2 Zeilen mit Variable) erfordert und die Datenstruktur des Games mir nicht bekannt ist.)

Mein Fazit:

Also wenn du mich fragst, ist der Button etwas schneller eingebaut/geskriptet als eine Timer-Instanz mit dem ganzen Handling, aber die beiden Varianten werden sich sowieso nicht viel nehmen.
Kann natürlich sein, dass es Sprachen gibt, die das einfacher hinbekommen. Hast du vielleicht mehr Informationen über die Umsetzung im Spiel? :)
Von den imperativen/OOP Systemsprachen (Pascal, Basic, Assembler, C, Java, ...) her, würde es sich so wie oben entwickeln.
Ob ActionScript/Flash oder ThunderScript/Python schneller sind, kann ich nicht versprechen, wage es aber zu bezweifeln, wenn ich mir die Veränderung von Java zu JS oder C zu PHP anschaue.
 

Eadric

Blüte
[...]

Ich könnte mir eine Variante vorstellen, bei der die Ablehnung sinnvoll wäre: wenn während der letzten 5 Quests die gleiche Aufgabe bereits gestellt wurde. Keine Ahnung, wie aufwendig das zu programmieren ist.
Circa so aufwendig, aber etwas kleiner, wie die Rote Variante. Anstelle der TimerKontrollvariable und des Timers wird ein Integerwert zurückgespeichert.
Diesen kann man dann entweder jedes mal inkrementieren (+1), müsste das aber für alle Questinstanzen machen. Anschließend wird der Zufallsgenerator mit dem Wert der Quest verglichen, ist dieser größer 5, darf die Quest sein, wenn nicht startet der Zufallsgenerator neu.

Oder durch das mitschleppen eines Kellers realisieren. Abspeichern der 5 letzten IDs und den Zufallsgenerator stets mit den im Keller gespeicherten 5 IDs vergleichen. Das Kellerhandling kann aufwendig werden aber ist auch schnell implementiert. Man kann auch hier den "Schleifentrick" anwenden, indem man sagt:

Code:
repeat;
   ... // Auswahl der Quest.
until (AktuelleQuestID <> KellerQuestID1) and (AktuelleQuestID <> KellerQuestID2) and (AktuelleQuestID <> KellerQuestID3) and (AktuelleQuestID <> KellerQuestID4) and (AktuelleQuestID <> KellerQuestID5);
Also von Programmiertechnischer Seite sollte die Umsetzung eurer Vorschläge keine Probleme darstellen. Und die Leute von Innogames sind sicher auf einem höheren Level als ich. ;)

PS: Sorry für 2 Postteile: Aber irgendwie verzählt sich die Forensoftware. Es wurde gesagt der Beitrag in BB hätte mehr als 10000 Zeichen, aber es waren nur 9937. :)
 
Zuletzt bearbeitet:

Thenduil

Riesenschecke
@Alidona Das Problem ist nur, dass wir ja im Moment keinen Block mit einer festen Anzahl jeder möglichen Quest haben, sondern eine willkürliche Auswahl mit Übergewicht auf bestimmten Aufgaben. Wenn man quasi jede 2. Quest ablehnen müsste, um nicht tgl. eine WZ-Kiste herstellen zu müssen, stimmt mit dem System an sich ja was nicht. Ablehnung wäre sozusagen nur ein Pflaster.
 

Alidona

Inspirierender Mediator
@Alidona Das Problem ist nur, dass wir ja im Moment keinen Block mit einer festen Anzahl jeder möglichen Quest haben, sondern eine willkürliche Auswahl mit Übergewicht auf bestimmten Aufgaben. Wenn man quasi jede 2. Quest ablehnen müsste, um nicht tgl. eine WZ-Kiste herstellen zu müssen, stimmt mit dem System an sich ja was nicht. Ablehnung wäre sozusagen nur ein Pflaster.
Genau als Pflaster wars auch gedacht. Falls mal wieder was schief geht mit Questschleifen. Das wäre sozusagen eine Notbremse für Innogames als Hotfix. Eine Endlösung ists natürlich eher nicht, die Quests, die auf Zufallsgenerator basieren, sind einfach nur Mist.
 

LexiTargaryen

Forum Moderator
Elvenar Team
Dieser Thread wird in den nächsten paar Tagen archiviert werden, da die letzte Antwort schon über 2 Wochen zurück liegt. Die Idee kann natürlich jederzeit im übergeordneten Forum (Ideen und Vorschläge) offiziell vorgeschlagen werden.
 

Alidona

Inspirierender Mediator
Hallo Lexi,

lasst es bitte noch ein paar Tage stehen. Ich möchte die bisherigen Antworten noch einmal durchgehen, ein Fazit ziehen und dann ausarbeiten. Momentan komme ich nur nicht dazu. :)

Gruß Alidona
 

Tanysha

Weicher Samt
na dann schreibe ich mal hier was damit es nicht ins archiv geht :)

ablehnbare quests hätten mir leider in diesem event auch nicht wirklich weiter geholfen da ich mit meinem hauptacc der glückliche gewinner der niemals endenen erkunden erschwaden schleife war/bin o_O

da hätte ich mir bloß nen wolf geklickt und kaum schlüsssel bekommen ;)
 
Status
Es sind keine weiteren Antworten möglich.