Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
fixed_cost = feste Betriebskosten
#51
(18-06-2020, Thursday-19:27:07 )Leartin schrieb:
(18-06-2020, Thursday-17:16:53 )makie schrieb: Wie gesagt ich würde das nur bei der Anzeige des Gewinns machen.
Solange das auch die Anzeige unter der Geschwindigkeit betrifft mecker ich da nicht.
Im Fahrzeugfenster?
Das ist ein Jahresgewinn, der geht am Monatsanfang nicht ins Minus. Nur am Jahresanfang im Januar.
Schau meinen Screenshot nochmal genau an. Der ist vom 1. Dezember ca 4 Uhr
Zitieren
#52
Dann stimmt aber Kontostand, Finanzfenster, und KI-Übersicht nicht überein. Wenn dann konsequent, würde ich sagen. Da läuft halt auch die Anzeige der Instandhaltung jeden Monat hoch.
Zitieren
#53
Ich sehe schon da müssen wir gründlicher darüber reden, sonst reden wir aneinander vorbei.

Gehe ich recht in der Annahme Leartin redet über die Felder die ich grün umrandet habe?
Und Prissi redet über die Felder die ich Pink umrandet habe?

[Bild: bkost2.png]
Zitieren
#54
Noch mehr, nämlich Betriebskosten und Instandhaltung im Finanzdialog, sonst gibt es Verwirrung, gerade wenn noch nicht viel auf der Karte los ist. Sonst sehe ich die Verwirring wenn der eine Bus nicht den Betriebsgewiin im Finanfenster ergibt.
Zitieren
#55
Wenn das alles von vorne bis hinten aufgehen soll, dann werden wir um ein tageweise oder anderen festen Intervall Buchen nicht herum kommen.

Dann sind wir recht nahe an meinem ursprünglichen Patch.
Dann muss das Buchen in eine eigene Routine.
Zitat:/**
 * convoi add there fixed cost per month per day / per syncpoint
 */
void convoi_t::add_fixed_cost()
{  part_of_fixed_cost = sum_fixed_costs / wie oft "add_fixed_cost" pro Monat aufgerufen wird;
 jahresgewinn += part_of_fixed_cost;

 waytype_t wtyp = ignore_wt;
 if(schedule_t* s = get_schedule())
 {
 wtyp = s->get_waytype();
 }
 else
 {
 wtyp = fahr[0]->get_waytype();
 }

 get_owner()->book_running_costs( part_of_fixed_cost, wtyp);

 book( part_of_fixed_cost, CONVOI_OPERATIONS );
 book( part_of_fixed_cost, CONVOI_PROFIT );
}

und an geeigneter Stelle dann der Aufruf

Zitat:// call book monthly fixed cost for convois
 FOR(vector_tpl<convoihandle_t>, const cnv, convoi_array) {
 cnv->add_fixed_cost();
 }
Zitieren
#56
Nee, es muss im sync_step gebucht werden, denn der wird ausgeführt bevor die Anzeige mit dem Vermögen untern angezeigt wird. Es gibt keine Tage in Simutrans, ein Monat hat entweder 24h, oder 3 Tage, oder halt 28-31 Tage je nach Einstellung in der Simuconf.tab. (Bei kleinere bisper_month kriegt man sonst mit Tag und Nachtmodus epileptische Anfälle.)

D.h. der Convoi muss seine Fixkosten in sync_step() (mit korrektem Rest, also noch ein sint64 mit dem jeweils nicht gebuchten Rest) buchen. Die anderen Unterhaltskosten für Weg usw. müssen dann im karte_t:Confusedync_step() gebucht werden.
Zitieren
#57
(20-06-2020, Saturday-05:14:33 )prissi schrieb: Nee, es muss im sync_step gebucht werden,
OK, es soll ja nur einigermaßen gleichmäßig verteilt werden. Smile
Gibt es eine fest Zuordnung zwischen Sync_step und Monat?
Wieviel Sync_step hat das Monat?
Zitieren
#58
Ein synnc_step hat eine beliebige Dauer von Millisekunden, abhängig von Auslastung. Allerdings hat ein Monat eine feste Länge (2^bit_per_month). Daher kann man ja die Kosten für eine Millisekunden mit bits_per_month nach rechts schieben und mit ms multiplizeiren. Nat@rlich muss man exkt den Rest mitnehmen (halt alle bits, die Rechts rausgefallen sind).
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste