Closed nittka closed 3 years ago
Kann ich nachvollziehen. Muss jetzt erstmal auseinanderdroeseln was da wie wo genau passiert (Limits, Was wurde bisher produziert...)
Kleiner Seitenbug: aufgehobene Einkaufslisten lassen den Studio-Drehbuch-Bereich aufleuchten...
Ich vermute, dass die isDragable-Implementierung im TGuiScript falsch ist. Das Script ist nicht mehr tradable, da schon was produziert wurde, aber für dragable sollte das nur in der Drehbuchagentur verboten sein, nicht im Studio.
ja soweit bin ich auch schon. "tradeable" koennte theoretisch auch durch was anderes entfernt worden sein (temporaer) ... aber ja. Ich denke fuer "Studio" sollte eine solche temporaere Blockade dann eine eigene Flag nutzen ("studio fixed" oder sowas).
Dass der Studioleiter keine Einkaufslisten mehr anbietet ist korrekt, da ich schon alle geholt hatte. Das sieht man auch im Supermarkt. In der Liste im Studio werden aber nicht mehr alle gezeigt - wenn ich sie im Studio alle wegwerfe, bleiben im Supermarkt trotzdem welche sichtbar. (Ich kann dann eine Folge auch noch planen und die Produktion starten, aber die Listenansicht im Studio unten ist kaputt)
also ... eines der Probleme ist, dass die Spielregeln ein Limit GameRules.maxProductionConceptsPerScript
haben - das ist "8" - mehr Einkaufslisten koennten "gedroppt" werden. Eventuell koennte man hier auf 10 aufstocken...mehr passen grafisch denke ich nicht ohne weiteres hin.
Die von dir im Studio abgelegte Serie hat 12 Folgen ...
Ein weiterer "Fehler" ist, dass CanGetProducedCount()
fuer die Shoppinglisten und die Dialoge genutzt wird.
Die Funktion liefert aber zurueck, wie oft ein Drehbuch produziert werden kann - und bei einer Serie, wie oft sie KOMPLETT produziert werden kann - und nicht "wie viele Episoden noch produziert werden koennen".
Deine Serie hat 2 von 12 Episoden abgedreht - und nun gibt die Funktion CanGetProducedCount()
0 zurueck - da die ersten beiden nicht mehr produziert werden koennen.
Zwecks Der Konzeptlisten im Supermarkt - und der geringeren Anzahl im Studio.
Das ist denke ich ein "handfester" Bug.
Supermarkt listet naemlich ALLE Produktionskonzepte (egal welcher Spieler). Ruft sie also von GetProductionConceptCollection().entries.Values()
ab.
Das Studio hingegen, ruft nur die Konzepte des Spielers ab: programmeCollection.GetProductionConcepts()
.
In deinem Fall existieren also Produktionskonzepte noch in der "Gesamtliste", aber nicht mehr beim Spieler. Natuerlich sollte der Supermarkt nur Konzepte des Spielers auflisten. Soweit so gut - aber die Frage "wieso gibt es die Diskrepanz" ist dann trotzdem noch offen.
Ahh ich glaube ich habe die Ursache gefunden.
Ich habe mir die letzten Commits noch nicht angeschaut - werde ich noch machen und Rückmeldung geben.
Ich habe aber das Gefühl, dass der beschriebene Fehler "neu" ist. Zumindest war mir das bei vorigen Testspielen noch nicht aufgefallen. Bei Serien waren die fertiggestellten Folgen im Studio gar nicht mehr sichtar - das ist auch korrekt, da man dafür ja keine Einkaufszettel mehr braucht. Insofern ist das Anzeige-Limit im Studio auch kein Problem, da durch das Fertigstellen immer wieder Platz wird.
Hab noch einen Commit der gleich hochgeladen wird.
Betrifft den Studiomanagerdialog - und wann er "mehr Einkaufslisten" erlaubt ...
Momentan wird beim Neuerzeugen der GUI-Elemente im Studio auch ein "kaputtes" Savegame repariert (ueberschuessige Einkaufslisten).
game.roomhandler.studio.bmx: Zeile 686ff.
'repair borked up savegames
if studioScript.GetSubScriptCount() > 0
For Local subScript:TScript = EachIn studioScript.subScripts
For Local pc:TProductionConcept = EachIn GetProductionConceptCollection().GetProductionConceptsByScript(subScript)
if programmeCollection.HasProductionConcept(pc) Then continue
'we also pay back potentially paid deposits
If pc.IsDepositPaid()
GetPlayerFinance(pc.owner).SellMisc(pc.GetDepositCost())
TLogger.Log("Studio.RefreshGuiElements", "productionconcept exists but does not fit in guiListDeskProductionConcepts - concept removed and deposit refunded.", LOG_ERROR)
Else
TLogger.Log("Studio.RefreshGuiElements", "productionconcept exists but does not fit in guiListDeskProductionConcepts - concept removed.", LOG_ERROR)
EndIf
'remove from player's collection and also from global
'conception list
programmeCollection.DestroyProductionConcept(pc)
Next
Next
endif
Das koennten wir entweder sofort mit rausnehmen (sollte nur in exotischen Situationen aufgetreten sein) oder drin lassen ...?
Wenn alle Deine beobachteten Fehler aus dem Issue behoben sein sollten, ruhig zumachen.
Und die Sortierung der Seriendrehbücher im Supermarkt entspricht nicht der Serienreihenfolge.
Aehm ... willst du die Sortierung der Einkaufslisten im Supermarkt so, wie du sie im Studio angeordnet hast ? (man kann ja dort die Episoden umsortieren - bspweise den Piloten am Ende produzieren, damit der Cast im Piloten erfahrener ist und somit "mehr" Zuschauer moeglich waeren).
in dem Fall muesste SortProductionConceptsBySlotAndEpisode
vom game.roomhandler.studio.bmx zu game.production.productionconcept.bmx geschoben werden, dann koennte es vom supermarkt-bildschirm (production) benutzt werden um die gleiche Sortierung zu erhalten.
Ja ich denke das ist erst durch Deine Aenderung reingekommen...bzw an die Oberflaeche gekommen.
Morningshow guck ich mir mal noch an.
Sortierung: mir scheint die Sortierung im Supermarkt schon so zu sein, wie sie auch im Studio ist. Zumindest gerät nach Umsortieren um Studio die Reihenfolge im Supermarkt "durcheinander". Das ist für mich aber ein nachrangiges Problem
Die Behandlung der Einkaufslisten muss nochmal komplett geprüft werden: Im angehängten Spielstand habe ich mir die Morgenshow-geholt (4 mögliche Folgen)
Ich glaube, das Aufspalten in GUI-Studio-Script hat dazu geführt, dass das Wegwerfen von Einkaufslisten kaputt gegangen ist. Bei der Serie war das Problem durch die Reparatur eines kaputten Spielstands verschleiert.
Moeglich
Am 7. März 2021 10:59:17 MEZ schrieb Alexander Nittka notifications@github.com:
Ich glaube, das Aufspalten in GUI-Studio-Script hat dazu geführt, dass das Wegwerfen von Einkaufslisten kaputt gegangen ist. Bei der Serie war das Problem durch die Reparatur eines kaputten Spielstands verschleiert.>
-- > You are receiving this because you commented.> Reply to this email directly or view it on GitHub:> https://github.com/TVTower/TVTower/issues/299#issuecomment-792249342
Ich schau mir das an, wenn ich endlich die Dialoge gefixt habe - durch die Textcaches kommt es zum "Flackern" wenn ma bspweise schnell auf den "Weitere Einkaufsliste"-Eintrag klickt. Bin der Ursache nun glaube langsam auf der Spur.
Man kann nun auch Drehbuecher auf die Einkaufslisten-Liste droppen - sollte man nicht koennen.
Bedarf wohl einiger spezifischer Fixes.
Die Menge angezeigter geplanter Produktionen stimmt in dem einen Spielstand von Dir nicht ueberein, da noch n der "Collection" welche zum Skript hinterlegt sind (als noch bei fehlerhafter Spiellogik uebriggeblieben sind).
Diese werden dann immer "gefunden" und dazuaddiert. Eventuell koennte man diese immer zum Spieler hinzufuegen, bis er sie "ordentlich" loescht.
Es ist schon wieder eine Weile her, aber ich glaube ein Problem bestand auch noch bei einem neu gestarteten Spiel (Morgenshow Listen holen und gleich wieder löschen und wenn man den temporären Reparaturcode entfernt, besteht das Problem auch bei Serien - ich probiere das nochmal aus). Folgende Fälle müssen getestet werden:
Tatsächlich wäre es für solche Tests schön, wenn man ein DEV-Property MaxProductionTime setzen könnte (z.B. 5 min), damit man auch viele Folgen hintereinander abdrehen und sich dann den Zustand im Studio anschauen kann. So muss man immer ziemlich lange die Zeit vorspulen.
jein - also das Problem in dem Speicherstand von dir ist: Die productionConceptCollection hat productionConcept-Elemente die nicht mehr in der PlayerProgrammeCollection.productionConcepts vorhanden waren, aber die auch nicht mit "isProduced" markiert waren (alte abgeschlossene Konzepte koennten ja aufgehoben werden ... damit die dazugehoerige Information im Nachhinein noch abgerufen werden kann (falls irgendwo per ID referenziert). So aehnlich wie die Programmquoten-Simulationen (Maerkte zum Zeitpunkt). Also hier im Hinblick auf den "Eigenproduktionsbildschirm" mit Extrainfos.
Die von dir angesprochenen Punkte (mehr Einkaufslisten im Dialog angeboten als moeglich) sind davon unbetroffen - das sind andere Bugs.
Mein nun einzufuehrender Fix entfernt die "verwaisten" Eintraege beim Speicherstand einladen. Danach stimmt auch die Anzahl-Information im Dialog.
Ich denke, wir nähern uns dem gewünschten Ergebnis. Immer noch kaputt ist "neue Einkaufsliste" für die Morning-Show, Serien mit weniger als 8 Folgen und Filmen holen. Selbst wenn schon alle möglichen Listen geholt wurden, kann noch eine weitere angefordert werden. Ich denke, das liegt an CanCreateProductionConcept in TPlayerProgrammeCollection. Hier wird die Anzahl der Einkaufslisten zurückgegeben, nicht aber ob diese Anzahl kleiner als die Anzahl der insg. möglichen Produktionen ist.
Japp - bin da noch dran (vielleicht ueber die Mittagspause). Hatte nur erstmal die Sache mit dem Dialogflackern (wenn man schnell auf "neue Einkaufsliste" klickte, sah man kurz falsch dimensionierte Antwortboxen) klaeren muessen.
Naja und noch, wieso die Konzepte nicht richtig "geloescht" wurden (was sie ja doch taten).
Kannst Du mit dem aktuellen Masterstand mal schauen ob Du da jetzt noch im Studio Drehbuchprobleme hast?
Mit einem frisch gestarteten Spiel sind mir erstmal keine Probleme im Studio begegnet. Ich mache dieses Ticket zu.
Ich habe schon Teile einer Serie produziert. Nun möchte ich zwischedurch einen anderen Film drehen. Das aktuelle Drehbuch lässt sich aber nicht aufheben. Außerdem sieht es so aus, als ob noch Einkaufszettel verfügbar wären. Der Studioleiter bietet aber keine an. Und die Sortierung der Seriendrehbücher im Supermarkt entspricht nicht der Serienreihenfolge.
studio.xml.tar.gz