Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Bist Du ein Mensch oder ein Roboter ?

Verifizierung, dass diese Aktion durch eine reale Person vorgenommen wird und nicht von einem Programm.

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Ronny
19.08.2016 07:52

Du hast ja die Formel...


Wenn bei drei Bloecken 2.4 rauskaeme... sind wir bei 2,4/3 *100 Prozent.



Bye
Ron

Gast2
19.08.2016 01:08

Kannst Du das mal in Prozent auflisten, was da jeweils ab geht pro Block?

(Wurde nix mit nachts Formeln reinziehen;)

Ronny
18.08.2016 21:08

Wenn ihr erklaeren koennt, warum ein "Rabatt" erst ab >2 Bloecken auftreten soll, dann immer her damit ;-)

Ein hoeherer Wert der Basis (derzeit 0.92) sorgt fuer die entsprechende Verschiebung, die Formel ist aber trotzdem "noch" so, dass bereits bei Block 2 nicht mehr fuer 2 ganze Bloecke bezahlt werden muss.


bye
Ron

Ratz
18.08.2016 20:38

Habe nicht damit gerechnet, dass der zweite Block schon so viel Nachlass enthält.

Da die Zweiblöcker der Fixpunkt meiner Betrachtung sind und ich weder eine Erhöung derer, noch eine generelle Formeländerung verantworten möchte, verhalte ich mich hier, bis auf Weiteres, still.

Gast2
17.08.2016 19:05

@ GetPrice

Das ziehe ich mir mal nachts in Ruhe rein...



@ goldener Schnitt

Nun, linear geht anders. smile


Was ist denn der längste Film, der so vorkommen kann?

Oder soll die Formel auch auf Serien angewendet werden?


Und gerade, wenn Du einen sinkenden Einfluss hast, wirst Du den Effekt haben, daß aber einem Block n kaum noch ein Preisunterschied zu n+1 oder n+10 ist.

Na, später nochmal. smile

Ronny
17.08.2016 08:51

Die ganze Funktion findest Du unter
game.programme.programmedata.bmx : Method GetPrice:int(playerID:int)

		Local value:int = 0
		local priceMod:Float = GetQuality() 'this includes age-adjustments


		'=== FRESHNESS ===
		'this is ~1 yrs
		If (GetMaxTopicality() >= 0.98) Then priceMod :* 1.30
		'this is ~2 yrs
		If (GetMaxTopicality() >= 0.96) Then priceMod :* 1.25
		'this is ~3 yrs
		If (GetMaxTopicality() >= 0.93) Then priceMod :* 1.20


		'=== QUALITY FRESHNESS ===
		'A high quality programme is more expensive if very young.
		'The older the programme gets, the less important is a high
		'quality, they then all are relatively "equal"
		local highQualityIndex:Float = 0.38 * GetQualityRaw() + 0.62 * GetQualityRaw() ^ 4
		local highTopicalityIndex:Float = 0.25 * GetMaxTopicality() + 0.75 * GetMaxTopicality() ^ 4

		priceMod :* highTopicalityIndex * highQualityIndex


		'=== FLAGS ===
		'BMovies lower the price
		If Self.IsBMovie() then priceMod :* 0.90
		'Cult movies increase price
		If Self.IsCult() then priceMod :* 1.05
		'Income generating programmes (infomercials) increase the price
		If Self.IsPaid() then priceMod :* 1.30



		If isType(TVTProgrammeProductType.MOVIE)
			value = 30000 + 1600000 * priceMod
		 'shows, productions, series...
		Else
			value = 25000 + 1400000 * priceMod
		EndIf


		'@ 0.9:
		'variant 1: blocks-1 + x^(blocks-1)
		'variant 2: blocks * x^(blocks-1)
		'           variant 1                variant 2
		'1 Block  = 0.0 + 0.9^0 = 1.00       1 * 0.9^0 = 1
		'2 Blocks = 1.0 + 0.9^1 = 1.90       2 * 0.9^1 = 1.8
		'3 Blocks = 2.0 + 0.9^2 = 2.81       3 * 0.9^2 = 2.43
		'4 Blocks = 3.0 + 0.9^3 = 3.73       4 * 0.9^3 = 2.92
		'5 Blocks = 4.0 + 0.9^4 = 4.66       5 * 0.9^4 = 3.28
		'9 Blocks = 8.0 + 0.9^8 = 8.43       9 * 0.9^8 = 3.87
		'value :* (GetBlocks()-1 + (0.90^(GetBlocks()-1)))
		value :* GetBlocks() * 0.92^(GetBlocks()-1)


		'=== DIFFICULTY ===
		value :* GetPlayerDifficulty(string(playerID)).programmePriceMod


		'=== BEAUTIFY ===
		'round to next "1000" block
'		value = Int(Floor(value / 1000) * 1000)
		value = TFunctions.RoundToBeautifulValue(value)

		return value		

value ist somit der Rueckgabewert der "GetPrice()"-Funktion

Der priceMod beinhaltet Alterungserscheinungen _und_ in gewissem Rahmen die derzeitige Aktualitaet (sprich auch Abnutzung). Danach wird er erhoeht, wenn das Programm _sehr_neu_ ist. Im naechsten Schritt wird es davon beeinflusst, ob es sich um ein sehr neues, oder qualitativ (ohne Alterseinfluss) sehr gutes Programm handelt.
Anschliessend kommen die Flags (Kult etc) zum tragen.

Folgend wird dieser "pro Block"-Wert mit unserer "Blockformel" vermaehlt.

Bevor wir am Ende "schoene Werte" runden, wird noch die Spielerschwierigkeit mit reingenommen.


@ goldener Schnitt
Da haben wir aber einen linearen Zusammenhang - oder? Wir haben ja dann ein "ax + b" (also "Anstieg-pro-Block + Startwert").
Bei laengeren Filmen kommt das zu einem "der 5. Block ist genauso teuer wie der 20."

Ich faende einen sinkenden Einfluss praktischer... eventuell nicht quadratisch...


bye
Ron

Gast2
17.08.2016 04:46

Und wie wirkt das (value-)Produkt auf den Preis?

Als Teiler?


Ich halte die Potenzfunktion nicht für den Königsweg.
Lustigerweise war das erste, was mir einfiel, der goldene Schnitt.

Um einen Gegenvorschlag zu machen, bräuchte es aber die gesamte Formel.

Ronny
17.08.2016 00:50

Das ist ja die Frage: ab wann gehen wir davon aus, dass eine weitere Stunde ein "Risiko" (da einmal eingeloggt, der Film durchlaeuft - egal wie die Quoten aussehen) darstellt?

5 Bloecke? 4 Bloecke?


Momentan ist der Blockeinfluss:

value :* GetBlocks() * 0.92^(GetBlocks()-1)

also
1: 1
2: 1.84
3: 2.54
4: 3.11
5: 3.5819648

Eventuell koennen wir auch auf 0.95 hochgehen:
1: 1
2: 1.9
3: 2.71
4: 3.43
5: 4.07

Damit wuerden aber die Preise fuer "Normalfilme" wieder etwas steigen (da ja die 2-Bloecker etwas ansteigen).


bye
Ron