Du bist nicht angemeldet.
Seiten: 1
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
Offline
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.
Offline
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
Offline
@ GetPrice
Das ziehe ich mir mal nachts in Ruhe rein...
@ goldener Schnitt
Nun, linear geht anders.
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.
Offline
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.
Offline
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
Offline
Seiten: 1