Bridge Commander Modding - Wie gehts? - SciFi-Forum

Ankündigung

Einklappen
Keine Ankündigung bisher.

Bridge Commander Modding - Wie gehts?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Bridge Commander Modding - Wie gehts?

    Da ich auf meine Fragen in keinem Thread eine Antwort zum Thema Bridge Commander Modding finden konnte hab ich mir gedacht, dass ein neues Thread mir weiterhelfen könnte....

    1. Welche Programme kann/muss man fürs Erstellen von Mods bei BC verwenden? Womit kann man Model-Dateien erstellen usw. um ein eigenes Schiff für BC zu "bauen". Womit kann man .nif-Dateien öffnen und/oder bearbeiten. Womit kann man .Pyc-Dateien "Salatfrei" öffnen.
    2. Wo und wie kann ich die Schiffsbeschreibungen, die im Quickbattle-menü erscheinen, editieren?
    3. Habt ihr Erfahrungen mit eigenen Mods im Multiplayer?
    4. Warum kann man keine Campagnen-Missionen mehr Spielen, wenn Kobayashi-Maru installiert? Gibts ne Lösung?
    5. Kennt Ihr gute und umfangreiche Seiten (vielleicht auch mal auf Deutsch) zum Downloaden von Mods? (AUSSER FILEFRONT, NATÜRLICH!!!)
    6. Befinden sich die Texturen der Schiffe in den .nif-Dateien? Falls es doch die .TGA-Dateien in den Model-Ordnern sind? Womit kann ich sie korrekt öffnen? Oder sind die .TGA-Dateien nur dieser ...glow kram???

    Wenn Ihr Programme kennt, die frei erhältlich sind, schreibt bitte nen Link auf falls Ihr einen habt.

    Wenn also unter euch ein BC-Modding Veteran ist, dann klärt mich bitte ein wenig auf!!!

    Also dann schon mal vielen Dank für Antworten und viva la muerte

    #2
    Ich versuche mal, auf einige Fragen von dir zu antworten:

    1. Zum bauen der Schiffsmodelle wurde max3d verwendet. Ich kann nur nicht sagen, welche Version benutzt wurde. Mit den neueren Versionen ist Bridge Commander meines Wissens nach nicht kompatibel.
    .pyc-Dateien kann man nicht öffnen. Bearbeiten kann man .py-Dateien ganz normal in einem Texteditor. Diese compiled Python (die Programmiersprache von Bridge Commander) dann beim Spielstart zu .pyc-Dateien. Die Original py-Dateien sind im Bridge Commander SDK enthalten.
    2. Schiffsbeschreibungen befinden sich in der ships.tgl im Verzeichnis \Data\TGL\. Systembeschreibungen in der systems.tgl. Zu editieren mit dem TGL-Editor.
    3. Eigene Erfahrungen beginne ich persönlich erst zu sammeln, indem ich versuche, KM für mich persönlich auf Deutsch zu übersetzen. Sehr zeitraubend. Hab mich auch schon an Hardpoints gewagt, mir is allerding hier die Zeit zu knapp geworden. Is aber net sooo schwer.
    4. Die Kampagnen kann man ganz normal spielen. Einfach alle Mutator (außer den ersten beiden) abschalten.
    5. Einfach mal googlen. Ansonsten kann ich nur noch bckobayashimaru.de -- Index und Bridge Commander Scripters : The New Generation - Index empfehlen. Sind aber leider in Englisch. Aber el cheffe von KM kommt aus Hamburg. Bei Fragen PMste ihn einfach mal an. Hilft eigentlich immer, wenns geht.
    6. Die Texturen sind in den TGA-Dateien. Ich bearbeite sie im Adobe mit TGA-Erweiterung. Ich glaube aber Paint.net ist ein Freeware-Programm, welches das auch kann.

    Ansonsten is das Verändern vorhandener Dateien von BC gar net so schwer. Nur zeitaufwendig. Das völlige Neuerfinden von Sachen, die in Bridge Commander nicht vorhanden sind (z.B. Gravitation wie in GravityFX oder der Wurmloch-Effekt vom DS9FX) ist da dann schon wesentlich anspruchsvoller. Nicht ohne Grund brauchen die Jungs und Mädels von den Mod-Teams so einiges an Zeit für ihre Mods.

    Übrigens: Mit der Anleitung von Defiant vom KM-Team wa es sogar einfach, Schiffe im Multiplayer zusätzlich einzubauen.

    Ich hoffe, ich konnte wenigstens etwas helfen. Können auch mal ein kleines Projekt zusammen machen.

    Gruß Tschensen
    Wer andern eine Bratwurst brät, hat ein Bratwurstbratgerät.

    Kommentar


      #3
      Nice!!!

      Erstmal vielen Dank, ich denk mal deine Infos reichen mehr als aus, um mich die nächsten Wochen beschäftigt zu halten.........

      Vor allem schon mal der TGL editor, ich hab nämlich auch vor, ne Übersetzung zu machen. Also wenn ich damit zurecht komm, könnten wir das ja vielleicht zusammenfügen.

      Mein Projekt ist halt, KM-Pimped ähhhh....zu pimpen, für meinen kleinen LAN Freundeskreis und mich im Wohnblock. Hab aber auch schon darüber nachgedacht, mir die Erlaubnis bei den anderen Moddern, deren Mods ich verwende einzuholen, und es dann online zu stellen, hab mich halt noch nicht weiter informiert. Krass, dass der KM-Chef aus HH kommt, Ich komm selbst aus Neumünster, 60 km nördlich.... Der unendliche Weltraum ist klein..... oder wie heisst das......

      Was die Hardpoints angeht, hast du dich an die Übersetzung gemacht, oder hast du sie auch an sich verändert? Ich habe ein paar erste Erfolge gehabt, und einige fehlerhafte Hardpoints verändert, Torpedorampen die fehlten, Phaser zu stark und sowas halt....

      Zu Punkt 4 Gut werd ich nachher ausprobieren....

      Zu Punkt 5, ...PMste ihn einfach mal an.... Verzeih mir meine unwissenheit, was meinst du mit PM?

      Zur 6, ich habe Paint.net, aber wenn ich die TGA's öffne, sehe ich nur einige wenige Teile, die nicht aussehen, als wären es die Kompletten Texturen, zum Beispiel nur der beleuchtete Teil einer Saucer mit der NCC oder Fragmente, die am Schiff im Spiel halt leuchten. (Deflektor, Warpantrieb, Bussard-kollektoren etc.) - Sieht es bei dir im Adobe anders aus? Ich mein irgendwo muss ja das GANZE Schiff texturiert sein oder nicht?

      Wenn du willst, kann ich dir ne Liste mailen, von dem, was ich bisher in KM-Pimped hinzugefügt und geändert habe, und was noch auf dem Plan steht....

      Gibt es max3d zum Download oder ist das Kaufware?

      Übrigens: Mit der Anleitung von Defiant vom KM-Team war es sogar einfach, Schiffe im Multiplayer zusätzlich einzubauen.
      Heisst das, dass die Schiffe die ich eingefügt habe und die im QB laufen
      nicht im Multiplayer laufen? (Hab noch nicht versucht Online mit meinen Leuten zu zocken, die müssten ja immer wieder meine Version ziehen...)

      Nochma vielen Dank für deine Antworten, hab schon gedacht, ich bin zu noob für die Leudde hier...

      ...Ich hab gerade festgestellt das KM 1.0 fertig ist.... werd jetzt erstmal sehen, ob das mit KM Pimped klarkommt....bin gespannt....

      Grüsse vom Grausamen Admiral...

      Viva la Muerte

      Kommentar


        #4
        Also zu den Hardpoints: Die hab ich verändert. Ist die einfachste Methode, um mit dem modden anzufangen.

        PM ist ne private message im Board von KM, sorry, bin zu oft in den englischen Boards unterwegs.

        Max3d ist Kaufware und zwar ziemlich teuer. Deswegen überlass ich das anderen. Mach mich lieber über Texturen her.

        Die Schiffe sind in Einzelteilen texturiert, was ich persönlich auch besser finde.

        Zum Multiplayer: Schiffe, die du einbaust, müssen in die speciestoship.py eingefügt werden, damit sie im MP benutzbar sind.
        Damit dann alle deine Leutz zusammen spielen können, musst du Bridge Commander einmal starten (damit aus den von dir veränderten .py-Dateien, .pyc-Dateien werden), BC beenden, alle .py-Dateien entfernen (am besten in ein Sicherungsverzeichnis außerhalb von BC verschieben) und allen deinen Leutz dann die .pyc geben. So müssten dann alle die selbe Version haben.

        Ich bau für ein paar Leutz in meiner Umgebung auch den MP um, damit jeder sein eigenes Schiff hat der selben Klasse hat. So haben wir schon mit nem Flottenverband aus 10 verschiedenen Galaxys gespielt.

        Zu KM1.0 kann ich nur sagen: Spitze! Muss nicht wirklich gepimpt werden. Nur ein wenig an den persönlichen Geschmack angepasst.

        Vielleicht sieht man sich im MP!

        Gruß Tschensen
        Wer andern eine Bratwurst brät, hat ein Bratwurstbratgerät.

        Kommentar


          #5
          Niccccccccce.............

          Also jetzt bin ich Platt.... KM 1.0 ist wirklich fett!!!!!

          Pimpen war auch nicht ganz das was ich meinte, ....dem Geschmack anpassen ist wohl eher zutreffend.... Das mit dem Pimpen kam mir halt wegen diesem kleinen "KM Pimped" mod in den Sinn, war wohl zu faul, eigene Wortschöpfungen zu gebrauchen....

          Aber noch mal ne Frage; Hab mir den TGL Editor gezogen, und auch gleich versucht die ships.tgl zu öffnen, kam aber ne Fehlermeldung. Leider hab ich jetzt keinen Screenie davon, aber sinngemäss hiess es soviel wie: Erste Zeile Leer, kann die TGL nicht hinzufügen..... Haste ne Ahnung was da bei mir querläuft? Alle anderen TGL lassen sich problemlos öffnen....Also raff ich das net....

          Was die Texturen angeht, hab mir die neueste Version von Paint.net gesaugt,
          und schon gings; ich kann jetzt auch die Kompletten Texturen sehen/bearbeiten.....very nice....

          Mkay Leudde, ich dank schonma für Antworten....
          und
          Viva la Muerte!!!

          Kommentar


            #6
            Dieses Problem hab ich leider auch nie lösen können. Hab dann halt die ship.tgl vom SDK benutzt. Is nur ne Menge Arbeit, hier alle Schiffe wieder einzutragen, aber ich fand immer, dass sich der Aufwand lohnt.
            Wer andern eine Bratwurst brät, hat ein Bratwurstbratgerät.

            Kommentar


              #7
              Erneut musst du mir meine unwissenheit verzeihen, und mir bitte verraten was SDK heisst, und wo ich den dann diese ship.TGL her kriege.....

              Also nochmal Danke denn....

              Viva La muerte

              Kommentar


                #8
                SDK = Software Development Kit
                Das gibts bei BC Files. Da sind alle Dateien von BC drin, die verändert werden dürfen, unter anderem auch die ships.tgl.
                Ein wirklich weiser Mensch hat immer mehr Fragen als Antworten.
                Wer andern eine Bratwurst brät, hat ein Bratwurstbratgerät.

                Kommentar


                  #9
                  Bridge Commander Multiplayer

                  Nach einigen Anfragen, wie man selber Schiffe in den Multiplayer-Modus einbaut, hier erstmal die Schnell-Variante:

                  Man installiert das Schiff seiner Wahl wie gewohnt in Bridge Commander. In meinem Beispiel ist es die Prometheus von MVAM Infinite.

                  Nun kann man das Schiff im Sofortschlacht (Quick Battle)-Modus einfach benutzen. Um es nun im Multiplayer zu nutzen, nimmt man sich die speciestoship.py zur Brust. Einfach mit dem Windows-eigenen Texteditor öffnen. Selbst wer keine Ahnung von Programmierung hat, braucht sich hier nicht erschrecken. Zum Glück haben die Jungs und Mädels von TotallyGames die Datei schön strukturiert.

                  Die Original speciestoship.py sieht so aus:
                  Code:
                  import App
                  
                  # types for initializing objects create from C.
                  UNKNOWN = 0
                  AKIRA = 1
                  AMBASSADOR = 2
                  GALAXY = 3
                  NEBULA = 4
                  SOVEREIGN = 5
                  BIRDOFPREY = 6
                  VORCHA = 7
                  WARBIRD = 8
                  MARAUDER = 9
                  GALOR = 10
                  KELDON = 11
                  CARDHYBRID = 12
                  KESSOKHEAVY = 13
                  KESSOKLIGHT = 14
                  SHUTTLE = 15
                  CARDFREIGHTER = 16
                  FREIGHTER = 17
                  TRANSPORT = 18
                  SPACEFACILITY = 19
                  COMMARRAY = 20
                  COMMLIGHT = 21
                  DRYDOCK = 22
                  PROBE = 23
                  DECOY = 24
                  SUNBUSTER = 25
                  CARDOUTPOST = 26
                  CARDSTARBASE = 27
                  CARDSTATION = 28
                  FEDOUTPOST = 29
                  FEDSTARBASE = 30
                  ASTEROID = 31
                  ASTEROID1 = 32
                  ASTEROID2 = 33
                  ASTEROID3 = 34
                  AMAGON = 35
                  BIRANUSTATION = 36
                  ENTERPRISE = 37
                  GERONIMO = 38
                  PEREGRINE = 39
                  ASTEROIDH1 = 40
                  ASTEROIDH2 = 41
                  ASTEROIDH3 = 42
                  ESCAPEPOD = 43
                  KESSOKMINE = 44
                  BORGCUBE = 45
                  MAX_SHIPS = 46
                  MAX_FLYABLE_SHIPS = 16
                  
                  # Setup tuples
                  kSpeciesTuple = (
                  	(None, 0, "Neutral", 0),
                  	("Akira", App.SPECIES_AKIRA, "Federation", 1),
                  	("Ambassador", App.SPECIES_AMBASSADOR, "Federation", 1),
                  	("Galaxy", App.SPECIES_GALAXY, "Federation", 1),
                  	("Nebula" , App.SPECIES_NEBULA, "Federation", 1),
                  	("Sovereign" , App.SPECIES_SOVEREIGN, "Federation", 1),
                  	("BirdOfPrey", App.SPECIES_BIRD_OF_PREY, "Klingon", 1),
                  	("Vorcha" , App.SPECIES_VORCHA, "Klingon", 1),
                  	("Warbird" , App.SPECIES_WARBIRD, "Romulan", 1),
                  	("Marauder" , App.SPECIES_MARAUDER, "Ferengi", 1),
                  	("Galor" , App.SPECIES_GALOR, "Cardassian", 1),
                  	("Keldon" , App.SPECIES_KELDON, "Cardassian", 1),
                  	("CardHybrid", App.SPECIES_CARDHYBRID, "Cardassian", 1),
                  	("KessokHeavy" , App.SPECIES_KESSOK_HEAVY, "Kessok", 1),
                  	("KessokLight" , App.SPECIES_KESSOK_LIGHT, "Kessok", 1),  
                  	("Shuttle" , App.SPECIES_SHUTTLE, "Federation", 1),
                  	("CardFreighter", "Cardassian Freighter" , App.SPECIES_CARDFREIGHTER, "Cardassian", 1),
                  	("Freighter" , App.SPECIES_FREIGHTER, "Federation", 1),
                  	("Transport" , App.SPECIES_TRANSPORT, "Federation", 1),
                  	("SpaceFacility" , App.SPECIES_SPACE_FACILITY, "Federation", 1),
                  	("CommArray" , App.SPECIES_COMMARRAY, "Federation", 1),
                  	("CommLight", App.SPECIES_COMMLIGHT, "Cardassian", 1),
                  	("DryDock" , App.SPECIES_DRYDOCK, "Federation", 1),
                  	("Probe" , App.SPECIES_PROBE, "Federation", 1),
                  	("Decoy" , App.SPECIES_PROBETYPE2, "Federation", 1),
                  	("Sunbuster" , App.SPECIES_SUNBUSTER, "Kessok", 1),
                  	("CardOutpost" , App.SPECIES_CARD_OUTPOST, "Cardassian", 1),
                  	("CardStarbase" , App.SPECIES_CARD_STARBASE, "Cardassian", 1),
                  	("CardStation" , App.SPECIES_CARD_STATION, "Cardassian", 1),
                  	("FedOutpost" , App.SPECIES_FED_OUTPOST, "Federation", 1),
                  	("FedStarbase" , App.SPECIES_FED_STARBASE, "Federation", 1),
                  	("Asteroid" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Asteroid1" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Asteroid2" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Asteroid3" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Amagon", App.SPECIES_ASTEROID, "Cardassian", 1),
                  	("BiranuStation", App.SPECIES_SPACE_FACILITY, "Neutral", 1),
                  	("Enterprise", App.SPECIES_SOVEREIGN, "Federation", 1),
                  	("Geronimo", App.SPECIES_AKIRA, "Federation", 1),
                  	("Peregrine", App.SPECIES_NEBULA, "Federation", 1),
                  	("Asteroidh1" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Asteroidh2" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Asteroidh3" , App.SPECIES_ASTEROID, "Neutral", 1),
                  	("Escapepod" , App.SPECIES_ESCAPEPOD, "Neutral", 1),
                  	("KessokMine" , App.SPECIES_KESSOKMINE, "Kessok", 1),
                  	("BorgCube",	App.SPECIES_BORG,		"Borg", 1),
                  	(None, 0, "Neutral", 1))
                  
                  
                  def GetShipFromSpecies (iSpecies):
                  	if (iSpecies <= 0 or iSpecies >= MAX_SHIPS):
                  #		print ("Species out of range")
                  		return None
                  
                  	pSpecTuple = kSpeciesTuple [iSpecies]
                  	pcScript = pSpecTuple [0]
                  
                  	ShipScript = __import__("ships." + pcScript)
                  	ShipScript.LoadModel ()
                  	return ShipScript.GetShipStats ()
                  
                  def GetScriptFromSpecies (iSpecies):
                  	if (iSpecies <= 0 or iSpecies >= MAX_SHIPS):
                  		return None
                  
                  	pSpecTuple = kSpeciesTuple [iSpecies]
                  	return pSpecTuple [0]
                  
                  	
                  # This function is called from code to fill in the spec of
                  # an object that has been serialized over the net.
                  def InitObject (self, iType):
                  	kStats = GetShipFromSpecies (iType)
                  	if (kStats == None):
                  		# Failed.  Unknown type. Bail.
                  		return 0
                  
                  	# Now that we have the stats, initialize the objects.
                  	# Initialize the ship's model.
                  	self.SetupModel (kStats['Name'])
                  
                  	# Load hardpoints.
                  	pPropertySet = self.GetPropertySet()
                  	mod = __import__("ships.Hardpoints." + kStats['HardpointFile'])
                  
                  	App.g_kModelPropertyManager.ClearLocalTemplates ()
                  	reload (mod)
                  
                  	mod.LoadPropertySet(pPropertySet)
                  
                  	self.SetupProperties()
                  
                  	self.UpdateNodeOnly()
                  		
                  	return 1
                  
                  def CreateShip (iType):
                  	# Get ship stats
                  	kStats = GetShipFromSpecies (iType)
                  
                  	if (kStats == None):
                  		# Failed.  Unknown type. Bail.
                  		return None
                  
                  #	print ("Creating " + kStats['Name'] + "\n")
                  	pShip = App.ShipClass_Create (kStats['Name'])
                  
                  	sModule = "ships." + kSpeciesTuple [iType][0]
                  #	print ("*** Setting script module " + sModule)
                  	pShip.SetScript(sModule)
                  
                  	# Load hardpoints.
                  	pPropertySet = pShip.GetPropertySet()
                  	mod = __import__("ships.Hardpoints." + kStats['HardpointFile'])
                  
                  	App.g_kModelPropertyManager.ClearLocalTemplates ()
                  	reload(mod)
                  
                  	mod.LoadPropertySet(pPropertySet)
                  
                  	pShip.SetupProperties()
                  
                  	pShip.UpdateNodeOnly()
                  		
                  	pShip.SetNetType (iType)
                  
                  	return pShip
                  
                  def GetIconNum (iSpecies):
                  	pSpecTuple = kSpeciesTuple [iSpecies]
                  	iNum = pSpecTuple [1]
                  
                  	return iNum
                  
                  def GetSideFromSpecies (iSpecies):
                  	pSpecTuple = kSpeciesTuple [iSpecies]
                  	pcSide = pSpecTuple [2]
                  
                  	return pcSide
                  
                  def GetClassFromSpecies (iSpecies):
                  	pSpecTuple = kSpeciesTuple [iSpecies]
                  	iClass = pSpecTuple [3]
                  
                  	return iClass
                  Wir gehen nun zur Zeile
                  Code:
                  KESSOKMINE = 44
                  BORGCUBE = 45
                  MAX_SHIPS = 46
                  MAX_FLYABLE_SHIPS = 16
                  Unter dem Borgcubus eine Leerzeile einfügen und dort die Prometheus einsetzen. Wichtig hierbei, das wir hier nicht einfach nur PROMETHEUS eintragen, sondern MVAMPROMETHEUS, da das Schiff die mvamprmetheus.py.
                  Nun muss man natürlich noch die Anzahl der Schiffe erhöhen und da wir es ja im MP auch selbst fliegen wollen, auch noch MAX_FLYABLE_SHIPS.
                  Das ganze sieht dann also so aus:
                  Code:
                  KESSOKMINE = 44
                  BORGCUBE = 45
                  MVAMPROMETHEUS = 46
                  MAX_SHIPS = 47
                  MAX_FLYABLE_SHIPS = 17
                  Nun weiter runter scrollen bis zur Zeile:
                  Code:
                  ("Escapepod" , App.SPECIES_ESCAPEPOD, "Neutral", 1),
                  ("KessokMine" , App.SPECIES_KESSOKMINE, "Kessok", 1),
                  ("BorgCube",	App.SPECIES_BORG,		"Borg", 1),
                  (None, 0, "Neutral", 1))
                  Dies wie folgt ändern:
                  Code:
                  ("Escapepod" , App.SPECIES_ESCAPEPOD, "Neutral", 1),
                  ("KessokMine" , App.SPECIES_KESSOKMINE, "Kessok", 1),
                  ("BorgCube",	App.SPECIES_BORG,		"Borg", 1),
                  ("MvamPrometheus" , App.SPECIES_SOVEREIGN, "Federation", 1),
                  (None, 0, "Neutral", 1))
                  Nun speichern, schließen und das Schiff ist im Multiplayer verfügbar. Es gibt nur ein paar kleine Einschränkungen:
                  1. Das Schiff hat das Sovereign-Icon
                  2. Es ist nicht MVAM-fähig.
                  Wer andern eine Bratwurst brät, hat ein Bratwurstbratgerät.

                  Kommentar

                  Lädt...
                  X