Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0002155EresseaGeneralöffentlich2017-12-05 19:50
ReporterCTD Bearbeitung durchEnno  
PrioritätnormalSchweregradschwerer FehlerReproduzierbarimmer
Status geschlossenLösungerledigt 
Produktversion3.7.0 
Zielversion3.7.0Behoben in Version3.7.0 
Zusammenfassung0002155: Open Problems in mosters.c
Beschreibung

Was mir noch bei den Monstern aufgefallen ist:

In *get_money_for_dragon:

        if (u2 != u && is_guard(u2, GUARD_TAX) && u->faction!=u2->faction) {
            /*In E3 + E4 etwas problematisch, da der Regionsbesitzer immer bewacht. Der Drache greift also immer die Burg an!*/

Esetzen durch

        if (u2 != u && is_guard(u2, GUARD_TAX) && u->faction!=u2->faction && !inside_building(u2)) {

um endlich das Regionsbesitzer Problem zu lösen. Loot geht bei Fliegern auch wenn nicht Flieger bewachen, ein Angriff auf Bewacher in einer Burg ist also nicht nötig. Könnte auch ganz raus.

Der check ob das Monster bewacht sollte vieleicht nach *monster_attack

Sowie

    keyword_t kwd = keyword_disabled(K_TAX) ? K_LOOT : K_TAX;
    return create_order(kwd, default_locale, NULL);

ersetzen durch

return create_order(K_LOOT, default_locale, NULL);

wie auch schon weiter oben im code. Es gibt keinen Grund das je nach Laune der Drachen in E2 mal Tax and mal Loot benutzt wird.

monster_is_waiting

bool monster_is_waiting(const unit * u) { if (fval(u, UFL_ISNEW | UFL_MOVED)) return true; return false; }

Sollte eher auf ISNEW und auf Turn < 30 oder so Checken. Da Monster die nicht bewachen nicht angreifen, ist so schon eine Runde Vorwarnzeit eingebaut. Im moment sind es 2 da waiting Monster auch kein Bewache setzten. Auch sorgt dies im Moment dafür das sich Drachen immer ein Feld bewegen, dann eine Runde stehen bleiben und nix machen, dann wieder ein Feld bewegen (auch auf dem Ozean) usw.

In eaten_by_monster wird ein Multiplikator für die Weltgröße benutzt:

multi = RESOURCE_QUANTITY * newterrain(T_PLAIN)->size / 10000.0;

in

absorbed_by_monster

und

scared_by_monster

nicht. Ebendso nicht in

int income(const unit * u) (in der economy.c (Da das glaube ich nur für Monster genutzt wird, warum ist das nicht bei den Monstern) Das sollte auch noch geändert werden.

TagsKeine Tags zugeordnet.
Parteicode
SpielE3
Report331

Notizen / Dateien

Enno

Enno

2015-11-11 12:46

Administrator   ~0006238

Nochmal durchgehen:

  1. Drachen brauchen Bewacher eigentlich nicht angreifen, wenn sie keine Steuern mehr eintreiben. Dass sie das momentan trotzdem tun, ist reine Bosheit (aber vielleicht will man das? siehe Mailingliste)
  2. Drachen können einfach immer LOOT benutzen statt TAX. Einverstanden.
  3. RESOURCE_QUANTITY wird von der Monster-AI uneinheitlich verwendet. De facto ist das aber ohnehin eine Konstante, die sich nicht von Spiel zu Spiel ändert, man könnte die also einfach mal löschen?
Enno

Enno

2015-11-11 15:06

Administrator   ~0006239

Zuletzt bearbeitet: 2015-11-11 15:07

https://github.com/eressea/server/pull/384

RESOURCE_QUANTITY habe ich noch nicht angefasst, mache ich separat.

CTD

CTD

2015-11-11 19:54

Entwickler   ~0006241

Bitte nicht das newterrain(T_PLAIN)->size / 10000.0 übersehen. In E3+E4 haben Ebenen nur 4000 Arbeitzplätze, nicht 10000 wie in E2. Da ist also ein nicht unerheblicher Unterschied.

CTD

CTD

2015-11-11 20:01

Entwickler   ~0006242

Es gibt auch noch in der config XML/json (E3+E4). Möglicherweise ist dieser Wert an einigen Stellen sinnvoller (nicht bei den Monstern, da ist die Ebenengröße schon der richtige Wert).

Enno

Enno

2015-11-12 13:10

Administrator   ~0006245

Das hat mit diesem Problem nichts zu tun, glaube ich.

ResourceFactor() wird nur in resources.c benutzt, von add_resource. Das erzeugt beim terraforming die Rohstoffe in der Region, und der Faktor sorgt dafür, dass es in einer E3+E4 Region nur etwa ein viertel der Ressourcen gibt, die man in E2 findet. Die Welt wird damit also insgesamt zu Anfang ärmer.

RESOURCE_QUANTITY hingegen scheint ein Multiplikator auf die Geschwindigkeit des wöchentlichen Wachstum zu sein, welches demnach in allen drei Spielen gleich schnell ist.

Enno

Enno

2015-11-16 13:49

Administrator   ~0006273

Mit PR 384 ist das wichtigste erledigt, das Aufräumen um RESOURCE_FACTOR herum habe ich verschoben in github issue 385. Monster sind bereit für Version 3.7

Eintrags-Historie

Änderungsdatum Benutzername Feld Änderung
2015-11-11 11:03 CTD Neuer Eintrag
2015-11-11 12:46 Enno Notiz hinzugefügt: 0006238
2015-11-11 14:38 Enno Bearbeitung durch => Enno
2015-11-11 14:38 Enno Status neu => zugewiesen
2015-11-11 15:06 Enno Notiz hinzugefügt: 0006239
2015-11-11 15:06 Enno Status zugewiesen => erledigt
2015-11-11 15:06 Enno Behoben in Version => 3.7.0
2015-11-11 15:06 Enno Lösung offen => erledigt
2015-11-11 15:07 Enno Notiz bearbeitet: 0006239
2015-11-11 19:54 CTD Notiz hinzugefügt: 0006241
2015-11-11 19:54 CTD Status erledigt => Rückmeldung
2015-11-11 19:54 CTD Lösung erledigt => wiedereröffnet
2015-11-11 20:01 CTD Notiz hinzugefügt: 0006242
2015-11-11 20:01 CTD Status Rückmeldung => zugewiesen
2015-11-12 13:10 Enno Notiz hinzugefügt: 0006245
2015-11-16 13:49 Enno Notiz hinzugefügt: 0006273
2015-11-16 13:49 Enno Status zugewiesen => erledigt
2015-11-16 13:49 Enno Lösung wiedereröffnet => erledigt
2017-12-05 19:50 Enno Status erledigt => geschlossen