TVTower / TVTower

A tribute to Mad TV. Written in BlitzMax, Lua and a bit of C.
http://www.tvtower.org
Other
106 stars 35 forks source link

Drehbuch im Studio gesperrt #299

Closed nittka closed 3 years ago

nittka commented 3 years ago

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

GWRon commented 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...

nittka commented 3 years ago

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.

GWRon commented 3 years ago

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).

nittka commented 3 years ago

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)

GWRon commented 3 years ago

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 ...

GWRon commented 3 years ago

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.

GWRon commented 3 years ago

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.

GWRon commented 3 years ago

Ahh ich glaube ich habe die Ursache gefunden.

nittka commented 3 years ago

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.

GWRon commented 3 years ago

Hab noch einen Commit der gleich hochgeladen wird.

Betrifft den Studiomanagerdialog - und wann er "mehr Einkaufslisten" erlaubt ...

GWRon commented 3 years ago

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.

GWRon commented 3 years ago

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.

nittka commented 3 years ago
GWRon commented 3 years ago

Ja ich denke das ist erst durch Deine Aenderung reingekommen...bzw an die Oberflaeche gekommen.

Morningshow guck ich mir mal noch an.

nittka commented 3 years ago

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)

nittka commented 3 years ago

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.

GWRon commented 3 years ago

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

GWRon commented 3 years ago

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.

GWRon commented 3 years ago

Man kann nun auch Drehbuecher auf die Einkaufslisten-Liste droppen - sollte man nicht koennen.

Bedarf wohl einiger spezifischer Fixes.

GWRon commented 3 years ago

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.

nittka commented 3 years ago

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.

GWRon commented 3 years ago

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.

nittka commented 3 years ago

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.

GWRon commented 3 years ago

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).

GWRon commented 3 years ago

Kannst Du mit dem aktuellen Masterstand mal schauen ob Du da jetzt noch im Studio Drehbuchprobleme hast?

nittka commented 3 years ago

Mit einem frisch gestarteten Spiel sind mir erstmal keine Probleme im Studio begegnet. Ich mache dieses Ticket zu.