Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 5 von 5
  1. Beiträge anzeigen #1 Zitieren
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    5.802
     
    Fisk2033 ist gerade online

    Einzelteile einer Zen zusammenschließen

    Der Threadtitel ist nicht ganz glücklich formuliert, aber ich weiß auch nicht wie man das genau nennt.

    Als ich vor einigen Jahren die ZEN von den BlackStars übernommen habe, bestand die einzelne ZEN scheinbar mal aus Makros bzw. verschiedenen Weltteilen. Das hat nun zur folge, dass in der Objekliste von Spacer verschiedene Level samt der zugehörigen VOBs existieren. Siehe Screen:
    [Bild: nervig.PNG]

    Ich hätte gern wieder alles in einem "Level" bzw einer Liste. Ist das irgendwie möglich?

  2. Beiträge anzeigen #2 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.484
     
    Cryp18Struct ist offline
    Falls die vobs als children an den zCVobLevelCompo hängen, sollte das mit zSlang möglich sein (WLD_CollectOrphans um genau zu sein).
    https://forum.worldofplayers.de/foru...Spacerprobleme
    Müsstest halt allen vobs ein von dir gewähltes zCVobLevelCompo als root geben.

    Zitat Zitat von zSlang Dokumentation
    void WLD_CollectOrphans(var object root)
    Ein Waise sei für den Moment ein Vob, das entweder kein Elternobjekt hat, oder dessen Elternobjekt
    ein zCVobLevelCompo ist. Die Funktion WLD_CollectOrphans nimmt alle
    Waisen in der Welt und hängt sie (mitsamt ihren Kindern) und hängt sie an root.
    Der Nutzen erschließt sich erst, wenn man sich eine per Spacermakro zusammengebaut
    Welt im Spacer anschaut. Ordnerstrukturen sind in mehrfacher Ausführung
    vorhanden (eine für jedes zCVobLevelCompo) was es schwierig macht sich in der
    Vobliste zurechtzufinden. Wird WLD_CollectOrphans mit einem (beliebigen)
    zCVobLevelCompo als root ausgeführt, so werden alle anderen zCVobLevel-
    Compo kinderlos und hängen an root. Das macht (auf den Autor) einen aufgeräumteren
    Eindruck.
    Geändert von Cryp18Struct (03.10.2018 um 19:47 Uhr)

  3. Beiträge anzeigen #3 Zitieren
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    5.802
     
    Fisk2033 ist gerade online
    Hi Cryp,

    ich habe das heute früh mal so probiert:
    Code:
    WLD_Load ("WORLD_OLD.ZEN");
    WLD_CollectOrphans (WLD_GetObject("#38"));
    WLD_Save ("WORLD_NEW.ZEN");
    Die VOBs hängen nun an keinem Levelcompo mehr. Die Ordnerstruktur(en) sind einfach verschwunden.
    Muss ich die vorher erst vom LevelCompo lösen um sie dann mit CollectOrphans zu verbinden? Eigentlich sollten sie ja am Objekt "#38" (ein Levelcompo) hängen - oder habe ich irgendeinen Denkfehler? Ich habe vorher noch nie mit ZSlang gearbeitet, kann sein dass ich irgendwas triviales übersehe. \../
    Geändert von Fisk2033 (11.10.2018 um 11:27 Uhr)

  4. Beiträge anzeigen #4 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.484
     
    Cryp18Struct ist offline
    Zitat Zitat von Fisk2033 Beitrag anzeigen
    Code:
    WLD_GetObject("#38");
    Ich nehme an das dir hier nicht das richtige Objekt gefunden wird. "#38" ist ja wahrscheinlich bei visual angegeben, nicht beim Namen.
    Lass dir da am besten ein paar Werte des Objekts ausgeben.
    Oder versuch mal WLD_GetVobByVisual oder WLD_GetVobsOfClass(wobei du dir da dann aus der zurück gegebenen Selektion eines raus suchen musst).

    edit: Das hier scheint bei mir zu funktionieren:
    Code:
    // datei für sSlang Interpreter
    
    
    #include<stdlib.zsl>
    
    func void main() {
    	WLD_Load("ADDONWORLDNEW.ZEN");
    
    	var selection levelCSel;
    	levelCSel = WLD_GetVobsOfClass("zCVobLevelCompo");
    	
    	foreach vob in levelCSel{
    		debugVob(vob);
    		if(vob.visual == "ADDON_PART_ADANOSTEMPLE_P01.3DS"){
    			Warn("found new parent!");
    			WLD_CollectOrphans (vob);
    		};
    	}
    	
    	WLD_Save("ADDONWORLDNEW_OrphansCollected.ZEN");
        
    }
    
    func void debugVob(var object v){
    	Warn(" ");
    	if(v.className == "oCTriggerScript"){
    		Warn("name:" + v.name);
    		Warn("triggerTarget:" + v.triggerTarget);
    		Warn("scriptFunc:" + v.scriptFunc);
    		Warn("classHierarchy:" + v.classHierarchy);
    		Warn("filterFlags:" + v.filterFlags);
    		Warn(" . ");
    		
    	}else if(v.className == "zCTrigger"){
    		Warn("name:" + v.name);
    		Warn("triggerTarget:" + v.triggerTarget);
    		Warn("classHierarchy:" + v.classHierarchy);
    		Warn(" . ");
    		
    	}else{
    		Warn("vobName:" + v.vobName);
    		Warn("classname:" + v.className);
    		Warn("name:" + v.name);
    		Warn("visual:" + v.visual);
    		Warn("classHierarchy:" + v.classHierarchy);
    		Warn(" . ");
    		
    	};
    	Warn(" ");
    };
    Geändert von Cryp18Struct (11.10.2018 um 12:42 Uhr)

  5. Beiträge anzeigen #5 Zitieren
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    5.802
     
    Fisk2033 ist gerade online
    Hat funktioniert, vielen lieben Dank!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide